' ########################################################################################
' Microsoft Windows
' File: WinCodec.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_wincodec_PBI)
#DEFINE PBX_wincodec_PBI
%EQUATE `WINCODEC_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/System/WTypes.inc"
#INCLUDE ONCE "Legacy/System/PropIdl.inc"
#INCLUDE ONCE "Legacy/COM/OCIdl.inc"
'#include <intsafe.h>
%EQUATE `WINCODEC_SDK_VERSION = &H0236
$CLSID_WICImagingFactory = GUID$("{CACAF262-9370-4615-A13B-9F5539DA4C0A}")
$GUID_VendorMicrosoft = GUID$("{F0E749CA-EDEF-4589-A73A-EE0E626A2A2B}")
$GUID_VendorMicrosoftBuiltIn = GUID$("{257A30FD-06B6-462B-AEA4-63F70B86E533}")
$CLSID_WICBmpDecoder = GUID$("{6B462062-7CBF-400D-9FDB-813DD10F2778}")
$CLSID_WICPngDecoder = GUID$("{389EA17B-5078-4CDE-B6EF-25C15175C751}")
$CLSID_WICIcoDecoder = GUID$("{C61BFCDF-2E0F-4AAD-A8D7-E06BAFEBCDFE}")
$CLSID_WICJpegDecoder = GUID$("{9456A480-E88B-43EA-9E73-0B2D9B71B1CA}")
$CLSID_WICGifDecoder = GUID$("{381DDA3C-9CE9-4834-A23E-1F98F8FC52BE}")
$CLSID_WICTiffDecoder = GUID$("{B54E85D9-FE23-499F-8B88-6ACEA713752B}")
$CLSID_WICWmpDecoder = GUID$("{A26CEC36-234C-4950-AE16-E34AACE71D0D}")
$CLSID_WICBmpEncoder = GUID$("{69BE8BB4-D66D-47C8-865A-ED1589433782}")
$CLSID_WICPngEncoder = GUID$("{27949969-876A-41D7-9447-568F6A35A4DC}")
$CLSID_WICJpegEncoder = GUID$("{1A34F5C1-4A5A-46DC-B644-1F4567E7A676}")
$CLSID_WICGifEncoder = GUID$("{114F5598-0B22-40A0-86A1-C83EA495ADBD}")
$CLSID_WICTiffEncoder = GUID$("{0131BE10-2001-4C5F-A9B0-CC88FAB64CE8}")
$CLSID_WICWmpEncoder = GUID$("{AC4CE3CB-E1C1-44CD-8215-5A1665509EC2}")
$GUID_ContainerFormatBmp = GUID$("{0AF1D87E-FCFE-4188-BDEB-A7906471CBE3}")
$GUID_ContainerFormatPng = GUID$("{1B7CFAF4-713F-473C-BBCD-6137425FAEAF}")
$GUID_ContainerFormatIco = GUID$("{A3A860C4-338F-4C17-919A-FBA4B5628F21}")
$GUID_ContainerFormatJpeg = GUID$("{19E4A5AA-5662-4FC5-A0C0-1758028E1057}")
$GUID_ContainerFormatTiff = GUID$("{163BCC30-E2E9-4F0B-961D-A3E9FDB788A3}")
$GUID_ContainerFormatGif = GUID$("{1F8A5601-7D4D-4CBD-9C82-1BC8D4EEB9A5}")
$GUID_ContainerFormatWmp = GUID$("{57A37CAA-367A-4540-916B-F183C5093A4B}")
$CLSID_WICImagingCategories = GUID$("{FAE3D380-FEA4-4623-8C75-C6B61110B681}")
$CATID_WICBitmapDecoders = GUID$("{7ED96837-96F0-4812-B211-F13C24117ED3}")
$CATID_WICBitmapEncoders = GUID$("{AC757296-3522-4E11-9862-C17BE5A1767E}")
$CATID_WICPixelFormats = GUID$("{2B46E70F-CDA7-473E-89F6-DC9630A2390B}")
$CATID_WICFormatConverters = GUID$("{7835EAE8-BF14-49D1-93CE-533A407B2248}")
$CATID_WICMetadataReader = GUID$("{05AF94D8-7174-4CD2-BE4A-4124B80EE4B8}")
$CATID_WICMetadataWriter = GUID$("{ABE3B9A4-257D-4B97-BD1A-294AF496222E}")
$CLSID_WICDefaultFormatConverter = GUID$("{1A3F11DC-B514-4B17-8C5F-2154513852F1}")
$CLSID_WICFormatConverterHighColor = GUID$("{AC75D454-9F37-48F8-B972-4E19BC856011}")
$CLSID_WICFormatConverterNChannel = GUID$("{C17CABB2-D4A3-47D7-A557-339B2EFBD4F1}")
$CLSID_WICFormatConverterWMPhoto = GUID$("{9CB5172B-D600-46BA-AB77-77BB7E3A00D9}")
'typedef UINT32 WICColor;
' // Size = 16 bytes
TYPE WICRect DWORD
 X AS LONG ' INT X
 Y AS LONG ' INT Y
 Width AS LONG ' INT Width
 Height AS LONG ' INT Height
END TYPE
'typedef BYTE* WICInProcPointer;
' enum WICColorContextType
%EQUATE `WICColorContextUninitialized = 0
%EQUATE `WICColorContextProfile = &H1
%EQUATE `WICColorContextExifColorSpace = &H2
'typedef /* [public] */ REFGUID REFWICPixelFormatGUID;
'typedef /* [public] */ GUID WICPixelFormatGUID;
$GUID_WICPixelFormatDontCare = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc900}")
$GUID_WICPixelFormatUndefined = $GUID_WICPixelFormatDontCare
$GUID_WICPixelFormat1bppIndexed = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc901}")
$GUID_WICPixelFormat2bppIndexed = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc902}")
$GUID_WICPixelFormat4bppIndexed = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc903}")
$GUID_WICPixelFormat8bppIndexed = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc904}")
$GUID_WICPixelFormatBlackWhite = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc905}")
$GUID_WICPixelFormat2bppGray = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc906}")
$GUID_WICPixelFormat4bppGray = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc907}")
$GUID_WICPixelFormat8bppGray = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc908}")
$GUID_WICPixelFormat8bppAlpha = GUID$("{e6cd0116-eeba-4161-aa85-27dd-9fb3a895}")
$GUID_WICPixelFormat16bppBGR555 = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc909}")
$GUID_WICPixelFormat16bppBGR565 = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90a}")
$GUID_WICPixelFormat16bppBGRA5551 = GUID$("{05ec7c2b-f1e6-4961-ad46-e1cc-810a87d2}")
$GUID_WICPixelFormat16bppGray = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90b}")
$GUID_WICPixelFormat24bppBGR = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90c}")
$GUID_WICPixelFormat24bppRGB = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90d}")
$GUID_WICPixelFormat32bppBGR = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90e}")
$GUID_WICPixelFormat32bppBGRA = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc90f}")
$GUID_WICPixelFormat32bppPBGRA = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc910}")
$GUID_WICPixelFormat32bppGrayFloat = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc911}")
$GUID_WICPixelFormat32bppRGBA = GUID$("{f5c7ad2d-6a8d-43dd-a7a8-a29935261ae9}")
$GUID_WICPixelFormat32bppPRGBA = GUID$("{3cc4a650-a527-4d37-a916-3142c7ebedba}")
$GUID_WICPixelFormat48bppRGB = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc915}")
$GUID_WICPixelFormat48bppBGR = GUID$("{e605a384-b468-46ce-bb2e-36f180e64313}")
$GUID_WICPixelFormat64bppRGBA = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc916}")
$GUID_WICPixelFormat64bppBGRA = GUID$("{1562ff7c-d352-46f9-979e-42976b792246}")
$GUID_WICPixelFormat64bppPRGBA = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc917}")
$GUID_WICPixelFormat64bppPBGRA = GUID$("{8c518e8e-a4ec-468b-ae70-c9a35a9c5530}")
$GUID_WICPixelFormat16bppGrayFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc913}")
$GUID_WICPixelFormat32bppBGR101010 = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc914}")
$GUID_WICPixelFormat48bppRGBFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc912}")
$GUID_WICPixelFormat48bppBGRFixedPoint = GUID$("{49ca140e-cab6-493b-9ddf-60187c37532a}")
$GUID_WICPixelFormat96bppRGBFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc918}")
$GUID_WICPixelFormat128bppRGBAFloat = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc919}")
$GUID_WICPixelFormat128bppPRGBAFloat = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91a}")
$GUID_WICPixelFormat128bppRGBFloat = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91b}")
$GUID_WICPixelFormat32bppCMYK = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91c}")
$GUID_WICPixelFormat64bppRGBAFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91d}")
$GUID_WICPixelFormat64bppBGRAFixedPoint = GUID$("{356de33c-54d2-4a23-bb04-9b7b-f9b1d42d}")
$GUID_WICPixelFormat64bppRGBFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc940}")
$GUID_WICPixelFormat128bppRGBAFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91e}")
$GUID_WICPixelFormat128bppRGBFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc941}")
$GUID_WICPixelFormat64bppRGBAHalf = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc93a}")
$GUID_WICPixelFormat64bppRGBHalf = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc942}")
$GUID_WICPixelFormat48bppRGBHalf = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc93b}")
$GUID_WICPixelFormat32bppRGBE = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc93d}")
$GUID_WICPixelFormat16bppGrayHalf = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc93e}")
$GUID_WICPixelFormat32bppGrayFixedPoint = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc93f}")
$GUID_WICPixelFormat32bppRGBA1010102 = GUID$("{25238D72-FCF9-4522-b514-5578e5ad55e0}")
$GUID_WICPixelFormat32bppRGBA1010102XR = GUID$("{00DE6B9A-C101-434b-b502-d0165ee1122c}")
$GUID_WICPixelFormat64bppCMYK = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc91f}")
$GUID_WICPixelFormat24bpp3Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc920}")
$GUID_WICPixelFormat32bpp4Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc921}")
$GUID_WICPixelFormat40bpp5Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc922}")
$GUID_WICPixelFormat48bpp6Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc923}")
$GUID_WICPixelFormat56bpp7Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc924}")
$GUID_WICPixelFormat64bpp8Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc925}")
$GUID_WICPixelFormat48bpp3Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc926}")
$GUID_WICPixelFormat64bpp4Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc927}")
$GUID_WICPixelFormat80bpp5Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc928}")
$GUID_WICPixelFormat96bpp6Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc929}")
$GUID_WICPixelFormat112bpp7Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92a}")
$GUID_WICPixelFormat128bpp8Channels = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92b}")
$GUID_WICPixelFormat40bppCMYKAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92c}")
$GUID_WICPixelFormat80bppCMYKAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92d}")
$GUID_WICPixelFormat32bpp3ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92e}")
$GUID_WICPixelFormat40bpp4ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc92f}")
$GUID_WICPixelFormat48bpp5ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc930}")
$GUID_WICPixelFormat56bpp6ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc931}")
$GUID_WICPixelFormat64bpp7ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc932}")
$GUID_WICPixelFormat72bpp8ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc933}")
$GUID_WICPixelFormat64bpp3ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc934}")
$GUID_WICPixelFormat80bpp4ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc935}")
$GUID_WICPixelFormat96bpp5ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc936}")
$GUID_WICPixelFormat112bpp6ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc937}")
$GUID_WICPixelFormat128bpp7ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc938}")
$GUID_WICPixelFormat144bpp8ChannelsAlpha = GUID$("{6fddc324-4e03-4bfe-b185-3d77-768dc939}")
' enum WICBitmapCreateCacheOption
%EQUATE `WICBitmapNoCache = 0
%EQUATE `WICBitmapCacheOnDemand = &H1
%EQUATE `WICBitmapCacheOnLoad = &H2
%EQUATE `WICBITMAPCREATECACHEOPTION_FORCE_DWORD = &H7fffffff
' enum WICDecodeOptions
%EQUATE `WICDecodeMetadataCacheOnDemand = 0
%EQUATE `WICDecodeMetadataCacheOnLoad = &H1
%EQUATE `WICMETADATACACHEOPTION_FORCE_DWORD = &H7fffffff
' enum WICBitmapEncoderCacheOption
%EQUATE `WICBitmapEncoderCacheInMemory = 0
%EQUATE `WICBitmapEncoderCacheTempFile = &H1
%EQUATE `WICBitmapEncoderNoCache = &H2
%EQUATE `WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = &H7fffffff
'enum WICComponentType
%EQUATE `WICDecoder = &H1
%EQUATE `WICEncoder = &H2
%EQUATE `WICPixelFormatConverter = &H4
%EQUATE `WICMetadataReader = &H8
%EQUATE `WICMetadataWriter = &H10
%EQUATE `WICPixelFormat = &H20
%EQUATE `WICAllComponents = &H3f
%EQUATE `WICCOMPONENTTYPE_FORCE_DWORD = &H7fffffff
'enum WICComponentEnumerateOptions
%EQUATE `WICComponentEnumerateDefault = 0
%EQUATE `WICComponentEnumerateRefresh = &H1
%EQUATE `WICComponentEnumerateDisabled = &H80000000
%EQUATE `WICComponentEnumerateUnsigned = &H40000000
%EQUATE `WICComponentEnumerateBuiltInOnly = &H20000000
%EQUATE `WICCOMPONENTENUMERATEOPTIONS_FORCE_DWORD = &H7fffffff
' // Size = 24 bytes
TYPE WICBitmapPattern QWORD FILL
 Position AS QUAD ' ULARGE_INTEGER
 Length AS DWORD ' ULONG
 Pattern AS BYTE PTR ' BYTE *
 Mask AS BYTE PTR ' BYTE *
 EndOfStream AS LONG
END TYPE
'enum WICBitmapInterpolationMode
%EQUATE `WICBitmapInterpolationModeNearestNeighbor = 0
%EQUATE `WICBitmapInterpolationModeLinear = &H1
%EQUATE `WICBitmapInterpolationModeCubic = &H2
%EQUATE `WICBitmapInterpolationModeFant = &H3
%EQUATE `WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = &H7fffffff
'enum WICBitmapPaletteType
%EQUATE `WICBitmapPaletteTypeCustom = 0
%EQUATE `WICBitmapPaletteTypeMedianCut = &H1
%EQUATE `WICBitmapPaletteTypeFixedBW = &H2
%EQUATE `WICBitmapPaletteTypeFixedHalftone8 = &H3
%EQUATE `WICBitmapPaletteTypeFixedHalftone27 = &H4
%EQUATE `WICBitmapPaletteTypeFixedHalftone64 = &H5
%EQUATE `WICBitmapPaletteTypeFixedHalftone125 = &H6
%EQUATE `WICBitmapPaletteTypeFixedHalftone216 = &H7
%EQUATE `WICBitmapPaletteTypeFixedWebPalette = %WICBitmapPaletteTypeFixedHalftone216
%EQUATE `WICBitmapPaletteTypeFixedHalftone252 = &H8
%EQUATE `WICBitmapPaletteTypeFixedHalftone256 = &H9
%EQUATE `WICBitmapPaletteTypeFixedGray4 = &Ha
%EQUATE `WICBitmapPaletteTypeFixedGray16 = &Hb
%EQUATE `WICBitmapPaletteTypeFixedGray256 = &Hc
%EQUATE `WICBitmapPALETTETYPE_FORCE_DWORD = &H7fffffff
'enum WICBitmapDitherType
%EQUATE `WICBitmapDitherTypeNone = 0
%EQUATE `WICBitmapDitherTypeSolid = 0
%EQUATE `WICBitmapDitherTypeOrdered4x4 = &H1
%EQUATE `WICBitmapDitherTypeOrdered8x8 = &H2
%EQUATE `WICBitmapDitherTypeOrdered16x16 = &H3
%EQUATE `WICBitmapDitherTypeSpiral4x4 = &H4
%EQUATE `WICBitmapDitherTypeSpiral8x8 = &H5
%EQUATE `WICBitmapDitherTypeDualSpiral4x4 = &H6
%EQUATE `WICBitmapDitherTypeDualSpiral8x8 = &H7
%EQUATE `WICBitmapDitherTypeErrorDiffusion = &H8
%EQUATE `WICBitmapDITHERTYPE_FORCE_DWORD = &H7fffffff
'enum WICBitmapAlphaChannelOption
%EQUATE `WICBitmapUseAlpha = 0
%EQUATE `WICBitmapUsePremultipliedAlpha = &H1
%EQUATE `WICBitmapIgnoreAlpha = &H2
%EQUATE `WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = &H7fffffff
'enum WICBitmapTransformOptions
%EQUATE `WICBitmapTransformRotate0 = 0
%EQUATE `WICBitmapTransformRotate90 = &H1
%EQUATE `WICBitmapTransformRotate180 = &H2
%EQUATE `WICBitmapTransformRotate270 = &H3
%EQUATE `WICBitmapTransformFlipHorizontal = &H8
%EQUATE `WICBitmapTransformFlipVertical = &H10
%EQUATE `WICBitmapTRANSFORMOPTIONS_FORCE_DWORD = &H7fffffff
'enum WICBitmapLockFlags
%EQUATE `WICBitmapLockRead = &H1
%EQUATE `WICBitmapLockWrite = &H2
%EQUATE `WICBITMAPLOCKFLAGS_FORCE_DWORD = &H7fffffff
' enum WICBitmapDecoderCapabilities
%EQUATE `WICBitmapDecoderCapabilitySameEncoder = &H1
%EQUATE `WICBitmapDecoderCapabilityCanDecodeAllImages = &H2
%EQUATE `WICBitmapDecoderCapabilityCanDecodeSomeImages = &H4
%EQUATE `WICBitmapDecoderCapabilityCanEnumerateMetadata = &H8
%EQUATE `WICBitmapDecoderCapabilityCanDecodeThumbnail = &H10
%EQUATE `WICBitmapDECODERCAPABILITIES_FORCE_DWORD = &H7fffffff
'enum WICProgressOperation
%EQUATE `WICProgressOperationCopyPixels = &H1
%EQUATE `WICProgressOperationWritePixels = &H2
%EQUATE `WICProgressOperationAll = &Hffff
%EQUATE `WICPROGRESSOPERATION_FORCE_DWORD = &H7fffffff
'enum WICProgressNotification
%EQUATE `WICProgressNotificationBegin = &H10000
%EQUATE `WICProgressNotificationEnd = &H20000
%EQUATE `WICProgressNotificationFrequent = &H40000
%EQUATE `WICProgressNotificationAll = &Hffff0000
%EQUATE `WICPROGRESSNOTIFICATION_FORCE_DWORD = &H7fffffff
'enum WICComponentSigning
%EQUATE `WICComponentSigned = &H1
%EQUATE `WICComponentUnsigned = &H2
%EQUATE `WICComponentSafe = &H4
%EQUATE `WICComponentDisabled = &H80000000
%EQUATE `WICCOMPONENTSIGNING_FORCE_DWORD = &H7fffffff
' enum WICGifLogicalScreenDescriptorProperties
%EQUATE `WICGifLogicalScreenSignature = &H1
%EQUATE `WICGifLogicalScreenDescriptorWidth = &H2
%EQUATE `WICGifLogicalScreenDescriptorHeight = &H3
%EQUATE `WICGifLogicalScreenDescriptorGlobalColorTableFlag = &H4
%EQUATE `WICGifLogicalScreenDescriptorColorResolution = &H5
%EQUATE `WICGifLogicalScreenDescriptorSortFlag = &H6
%EQUATE `WICGifLogicalScreenDescriptorGlobalColorTableSize = &H7
%EQUATE `WICGifLogicalScreenDescriptorBackgroundColorIndex = &H8
%EQUATE `WICGifLogicalScreenDescriptorPixelAspectRatio = &H9
%EQUATE `WICGifLogicalScreenDescriptorProperties_FORCE_DWORD = &H7fffffff
' enum WICGifImageDescriptorProperties
%EQUATE `WICGifImageDescriptorLeft = &H1
%EQUATE `WICGifImageDescriptorTop = &H2
%EQUATE `WICGifImageDescriptorWidth = &H3
%EQUATE `WICGifImageDescriptorHeight = &H4
%EQUATE `WICGifImageDescriptorLocalColorTableFlag = &H5
%EQUATE `WICGifImageDescriptorInterlaceFlag = &H6
%EQUATE `WICGifImageDescriptorSortFlag = &H7
%EQUATE `WICGifImageDescriptorLocalColorTableSize = &H8
%EQUATE `WICGifImageDescriptorProperties_FORCE_DWORD = &H7fffffff
' enum WICGifGraphicControlExtensionProperties
%EQUATE `WICGifGraphicControlExtensionDisposal = &H1
%EQUATE `WICGifGraphicControlExtensionUserInputFlag = &H2
%EQUATE `WICGifGraphicControlExtensionTransparencyFlag = &H3
%EQUATE `WICGifGraphicControlExtensionDelay = &H4
%EQUATE `WICGifGraphicControlExtensionTransparentColorIndex = &H5
%EQUATE `WICGifGraphicControlExtensionProperties_FORCE_DWORD = &H7fffffff
' enum WICGifApplicationExtensionProperties
%EQUATE `WICGifApplicationExtensionApplication = &H1
%EQUATE `WICGifApplicationExtensionData = &H2
%EQUATE `WICGifApplicationExtensionProperties_FORCE_DWORD = &H7fffffff
' enum WICGifCommentExtensionProperties
%EQUATE `WICGifCommentExtensionText = &H1
%EQUATE `WICGifCommentExtensionProperties_FORCE_DWORD = &H7fffffff
' enum WICJpegCommentProperties
%EQUATE `WICJpegCommentText = &H1
%EQUATE `WICJpegCommentProperties_FORCE_DWORD = &H7fffffff
' enum WICJpegLuminanceProperties
%EQUATE `WICJpegLuminanceTable = &H1
%EQUATE `WICJpegLuminanceProperties_FORCE_DWORD = &H7fffffff
' enum WICJpegChrominanceProperties
%EQUATE `WICJpegChrominanceTable = &H1
%EQUATE `WICJpegChrominanceProperties_FORCE_DWORD = &H7fffffff
' enum WIC8BIMIptcProperties
%EQUATE `WIC8BIMIptcPString = 0
%EQUATE `WIC8BIMIptcEmbeddedIPTC = &H1
%EQUATE `WIC8BIMIptcProperties_FORCE_DWORD = &H7fffffff
' enum WIC8BIMResolutionInfoProperties
%EQUATE `WIC8BIMResolutionInfoPString = &H1
%EQUATE `WIC8BIMResolutionInfoHResolution = &H2
%EQUATE `WIC8BIMResolutionInfoHResolutionUnit = &H3
%EQUATE `WIC8BIMResolutionInfoWidthUnit = &H4
%EQUATE `WIC8BIMResolutionInfoVResolution = &H5
%EQUATE `WIC8BIMResolutionInfoVResolutionUnit = &H6
%EQUATE `WIC8BIMResolutionInfoHeightUnit = &H7
%EQUATE `WIC8BIMResolutionInfoProperties_FORCE_DWORD = &H7fffffff
' enum WIC8BIMIptcDigestProperties
%EQUATE `WIC8BIMIptcDigestPString = &H1
%EQUATE `WIC8BIMIptcDigestIptcDigest = &H2
%EQUATE `WIC8BIMIptcDigestProperties_FORCE_DWORD = &H7fffffff
' enum WICPngGamaProperties
%EQUATE `WICPngGamaGamma = &H1
%EQUATE `WICPngGamaProperties_FORCE_DWORD = &H7fffffff
' enum WICPngBkgdProperties
%EQUATE `WICPngBkgdBackgroundColor = &H1
%EQUATE `WICPngBkgdProperties_FORCE_DWORD = &H7fffffff
' enum WICPngItxtProperties
%EQUATE `WICPngItxtKeyword = &H1
%EQUATE `WICPngItxtCompressionFlag = &H2
%EQUATE `WICPngItxtLanguageTag = &H3
%EQUATE `WICPngItxtTranslatedKeyword = &H4
%EQUATE `WICPngItxtText = &H5
%EQUATE `WICPngItxtProperties_FORCE_DWORD = &H7fffffff
' enum WICPngChrmProperties
%EQUATE `WICPngChrmWhitePointX = &H1
%EQUATE `WICPngChrmWhitePointY = &H2
%EQUATE `WICPngChrmRedX = &H3
%EQUATE `WICPngChrmRedY = &H4
%EQUATE `WICPngChrmGreenX = &H5
%EQUATE `WICPngChrmGreenY = &H6
%EQUATE `WICPngChrmBlueX = &H7
%EQUATE `WICPngChrmBlueY = &H8
%EQUATE `WICPngChrmProperties_FORCE_DWORD = &H7fffffff
' enum WICPngHistProperties
%EQUATE `WICPngHistFrequencies = &H1
%EQUATE `WICPngHistProperties_FORCE_DWORD = &H7fffffff
' enum WICPngIccpProperties
%EQUATE `WICPngIccpProfileName = &H1
%EQUATE `WICPngIccpProfileData = &H2
%EQUATE `WICPngIccpProperties_FORCE_DWORD = &H7fffffff
' enum WICPngSrgbProperties
%EQUATE `WICPngSrgbRenderingIntent = &H1
%EQUATE `WICPngSrgbProperties_FORCE_DWORD = &H7fffffff
' enum WICPngTimeProperties
%EQUATE `WICPngTimeYear = &H1
%EQUATE `WICPngTimeMonth = &H2
%EQUATE `WICPngTimeDay = &H3
%EQUATE `WICPngTimeHour = &H4
%EQUATE `WICPngTimeMinute = &H5
%EQUATE `WICPngTimeSecond = &H6
%EQUATE `WICPngTimeProperties_FORCE_DWORD = &H7fffffff
' enum WICSectionAccessLevel
%EQUATE `WICSectionAccessLevelRead = &H1
%EQUATE `WICSectionAccessLevelReadWrite = &H3
%EQUATE `WICSectionAccessLevel_FORCE_DWORD = &H7fffffff
' enum WICPixelFormatNumericRepresentation
%EQUATE `WICPixelFormatNumericRepresentationUnspecified = 0
%EQUATE `WICPixelFormatNumericRepresentationIndexed = &H1
%EQUATE `WICPixelFormatNumericRepresentationUnsignedInteger = &H2
%EQUATE `WICPixelFormatNumericRepresentationSignedInteger = &H3
%EQUATE `WICPixelFormatNumericRepresentationFixed = &H4
%EQUATE `WICPixelFormatNumericRepresentationFloat = &H5
%EQUATE `WICPixelFormatNumericRepresentation_FORCE_DWORD = &H7fffffff
' ########################################################################################
' IWICPalette interface
' IID = 00000040-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICPalette_INTERFACE_DEFINED)
 %IWICPalette_INTERFACE_DEFINED = 1
$IID_IWICPalette = GUID$("{00000040-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICPalette $IID_IWICPalette
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitializePredefined ( ' VTable offset = 12
 BYVAL ePaletteType AS DWORD
 , BYVAL fAddTransparentColor AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeCustom ( ' VTable offset = 16
 BYREF pColors AS DWORD
 , BYVAL cCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromBitmap ( ' VTable offset = 20
 BYVAL pISurface AS IWICBitmapSource
 , BYVAL cCount AS DWORD
 , BYVAL fAddTransparentColor AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pePaletteType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorCount ( ' VTable offset = 32
 BYREF pcCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColors ( ' VTable offset = 36
 BYVAL cCount AS DWORD
 , BYREF pColors AS DWORD
 , BYREF pcActualColors AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsBlackWhite ( ' VTable offset = 40
 BYREF pfIsBlackWhite AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsGrayscale ( ' VTable offset = 44
 BYREF pfIsGrayscale AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD HasAlpha ( ' VTable offset = 48
 BYREF pfHasAlpha AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICPalette_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapSource interface
' IID = 00000120-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapSource_INTERFACE_DEFINED)
 %IWICBitmapSource_INTERFACE_DEFINED = 1
$IID_IWICBitmapSource = GUID$("{00000120-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmapSource $IID_IWICBitmapSource
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapSource_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICFormatConverter interface
' IID = 00000301-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICFormatConverter_INTERFACE_DEFINED)
 %IWICFormatConverter_INTERFACE_DEFINED = 1
$IID_IWICFormatConverter = GUID$("{00000301-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICFormatConverter $IID_IWICFormatConverter
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICFormatConverter Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 32
 BYVAL pISource AS IWICBitmapSource
 , BYREF dstFormat AS GUID
 , BYVAL dither AS DWORD
 , BYVAL pIPalette AS IWICPalette
 , BYVAL alphaThresholdPercent AS DOUBLE
 , BYVAL paletteTranslate AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CanConvert ( ' VTable offset = 36
 BYREF srcPixelFormat AS GUID
 , BYREF dstPixelFormat AS GUID
 , BYREF pfCanConvert AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICFormatConverter_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapScaler interface
' IID = 00000302-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICBitmapScaler_INTERFACE_DEFINED)
 %IWICBitmapScaler_INTERFACE_DEFINED = 1
$IID_IWICBitmapScaler = GUID$("{00000302-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmapScaler $IID_IWICBitmapScaler
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapScaler Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 32
 BYVAL pISource AS IWICBitmapSource
 , BYVAL uiWidth AS DWORD
 , BYVAL uiHeight AS DWORD
 , BYVAL mode AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapScaler_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapClipper interface
' IID = E4FBCF03-223D-4E81-9333-D635556DD1B5
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICBitmapClipper_INTERFACE_DEFINED)
 %IWICBitmapClipper_INTERFACE_DEFINED = 1
$IID_IWICBitmapClipper = GUID$("{E4FBCF03-223D-4E81-9333-D635556DD1B5}")
INTERFACE IWICBitmapClipper $IID_IWICBitmapClipper
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapClipper Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 32
 BYVAL pISource AS IWICBitmapSource
 , BYREF prc AS WICRect
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapClipper_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapFlipRotator interface
' IID = 5009834F-2D6A-41CE-9E1B-17C5AFF7A782
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICBitmapFlipRotator_INTERFACE_DEFINED)
 %IWICBitmapFlipRotator_INTERFACE_DEFINED = 1
$IID_IWICBitmapFlipRotator = GUID$("{5009834F-2D6A-41CE-9E1B-17C5AFF7A782}")
INTERFACE IWICBitmapFlipRotator $IID_IWICBitmapFlipRotator
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapFlipRotator Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 32
 BYVAL pISource AS IWICBitmapSource
 , BYVAL options AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapFlipRotator_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapLock interface
' IID = 00000123-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapLock_INTERFACE_DEFINED)
 %IWICBitmapLock_INTERFACE_DEFINED = 1
$IID_IWICBitmapLock = GUID$("{00000123-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmapLock $IID_IWICBitmapLock
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStride ( ' VTable offset = 16
 BYREF pcbStride AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDataPointer ( ' VTable offset = 20
 BYREF pcbBufferSize AS DWORD
 , BYVAL ppbData AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 24
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapLock_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmap interface
' IID = 00000121-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICBitmap_INTERFACE_DEFINED)
 %IWICBitmap_INTERFACE_DEFINED = 1
$IID_IWICBitmap = GUID$("{00000121-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmap $IID_IWICBitmap
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmap Methods
 ' =====================================================================================
 METHOD Lock ( ' VTable offset = 32
 BYREF prcLock AS WICRect
 , BYVAL flags AS DWORD
 , BYREF ppILock AS IWICBitmapLock
 ) AS LONG
 ' =====================================================================================
 METHOD SetPalette ( ' VTable offset = 36
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD SetResolution ( ' VTable offset = 40
 BYVAL dpiX AS DOUBLE
 , BYVAL dpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmap_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICColorContext interface
' IID = 3C613A02-34B2-44EA-9A7C-45AEA9C6FD6D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICColorContext_INTERFACE_DEFINED)
 %IWICColorContext_INTERFACE_DEFINED = 1
$IID_IWICColorContext = GUID$("{3C613A02-34B2-44EA-9A7C-45AEA9C6FD6D}")
INTERFACE IWICColorContext $IID_IWICColorContext
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitializeFromFilename ( ' VTable offset = 12
 BYREF wzFilename AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromMemory ( ' VTable offset = 16
 BYVAL pbBuffer AS BYTE PTR
 , BYVAL cbBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromExifColorSpace ( ' VTable offset = 20
 BYVAL value AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 24
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetProfileBytes ( ' VTable offset = 28
 BYVAL cbBuffer AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 , BYREF pcbActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetExifColorSpace ( ' VTable offset = 32
 BYREF pValue AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICColorContext_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICColorTransform interface
' IID = B66F034F-D0E2-40AB-B436-6DE39E321A94
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICColorTransform_INTERFACE_DEFINED)
 %IWICColorTransform_INTERFACE_DEFINED = 1
$IID_IWICColorTransform = GUID$("{B66F034F-D0E2-40AB-B436-6DE39E321A94}")
INTERFACE IWICColorTransform $IID_IWICColorTransform
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICColorTransform Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 32
 BYVAL pIBitmapSource AS IWICBitmapSource
 , BYVAL pIContextSource AS IWICColorContext
 , BYVAL pIContextDest AS IWICColorContext
 , BYREF pixelFmtDest AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICColorTransform_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICFastMetadataEncoder interface
' IID = B84E2C09-78C9-4AC4-8BD3-524AE1663A2F
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICFastMetadataEncoder_INTERFACE_DEFINED)
 %IWICFastMetadataEncoder_INTERFACE_DEFINED = 1
$IID_IWICFastMetadataEncoder = GUID$("{B84E2C09-78C9-4AC4-8BD3-524AE1663A2F}")
INTERFACE IWICFastMetadataEncoder $IID_IWICFastMetadataEncoder
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataQueryWriter ( ' VTable offset = 16
 BYREF ppIMetadataQueryWriter AS IWICMetadataQueryWriter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICFastMetadataEncoder_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICStream interface
' IID = 135FF860-22B7-4DDF-B0F6-218F4F299A43
' Inherited interface = IStream
' ########################################################################################
#IF NOT %DEF(%IWICStream_INTERFACE_DEFINED)
 %IWICStream_INTERFACE_DEFINED = 1
$IID_IWICStream = GUID$("{135FF860-22B7-4DDF-B0F6-218F4F299A43}")
INTERFACE IWICStream $IID_IWICStream
 INHERIT IUnknown
 ' =====================================================================================
 ' ISequentialStream Methods
 ' =====================================================================================
 METHOD Read ( ' VTable offset = 12
 BYVAL pv AS DWORD
 , BYVAL cb AS DWORD
 , BYREF pcbRead AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Write ( ' VTable offset = 16
 BYVAL pv AS DWORD
 , BYVAL cb AS DWORD
 , BYREF pcbWritten AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IStream Methods
 ' =====================================================================================
 METHOD Seek ( ' VTable offset = 20
 BYVAL dlibMove AS QUAD
 , BYVAL dwOrigin AS DWORD
 , BYREF plibNewPosition AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD SetSize ( ' VTable offset = 24
 BYVAL libNewSize AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD CopyTo ( ' VTable offset = 28
 BYVAL pstm AS IStream
 , BYVAL cb AS QUAD
 , BYREF pcbRead AS QUAD
 , BYREF pcbWritten AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 32
 BYVAL grfCommitFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Revert ( ' VTable offset = 36
 ) AS LONG
 ' =====================================================================================
 METHOD LockRegion ( ' VTable offset = 40
 BYVAL libOffset AS QUAD
 , BYVAL cb AS QUAD
 , BYVAL dwLockType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UnlockRegion ( ' VTable offset = 44
 BYVAL libOffset AS QUAD
 , BYVAL cb AS QUAD
 , BYVAL dwLockType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Stat ( ' VTable offset = 48
 BYREF pstatstg AS STATSTG
 , BYVAL grfStatFlag AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 52
 BYREF ppstm AS IStream
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICStream Methods
 ' =====================================================================================
 METHOD InitializeFromIStream ( ' VTable offset = 56
 BYVAL pIStream AS IStream
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromFilename ( ' VTable offset = 60
 BYREF wzFileName AS WSTRINGZ
 , BYVAL dwDesiredAccess AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromMemory ( ' VTable offset = 64
 BYVAL pbBuffer AS BYTE PTR
 , BYVAL cbBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeFromIStreamRegion ( ' VTable offset = 68
 BYVAL pIStream AS IStream
 , BYVAL ulOffset AS QUAD
 , BYVAL ulMaxSize AS QUAD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICStream_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICEnumMetadataItem interface
' IID = DC2BB46D-3F07-481E-8625-220C4AEDBB33
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICEnumMetadataItem_INTERFACE_DEFINED)
 %IWICEnumMetadataItem_INTERFACE_DEFINED = 1
$IID_IWICEnumMetadataItem = GUID$("{DC2BB46D-3F07-481E-8625-220C4AEDBB33}")
INTERFACE IWICEnumMetadataItem $IID_IWICEnumMetadataItem
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgeltSchema AS PROPVARIANT
 , BYREF rgeltId AS PROPVARIANT
 , BYREF rgeltValue AS PROPVARIANT
 , BYREF pceltFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppIEnumMetadataItem AS IWICEnumMetadataItem
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICEnumMetadataItem_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICMetadataQueryReader interface
' IID = 30989668-E1C9-4597-B395-458EEDB808DF
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICMetadataQueryReader_INTERFACE_DEFINED)
 %IWICMetadataQueryReader_INTERFACE_DEFINED = 1
$IID_IWICMetadataQueryReader = GUID$("{30989668-E1C9-4597-B395-458EEDB808DF}")
INTERFACE IWICMetadataQueryReader $IID_IWICMetadataQueryReader
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 12
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetLocation ( ' VTable offset = 16
 BYVAL cchMaxLength AS DWORD
 , BYREF wzNamespace AS WSTRINGZ
 , BYREF pcchActualLength AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataByName ( ' VTable offset = 20
 BYREF wzName AS WSTRINGZ
 , BYREF pvarValue AS PROPVARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD GetEnumerator ( ' VTable offset = 24
 BYREF ppIEnumString AS IEnumString
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICMetadataQueryReader_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICMetadataQueryWriter interface
' IID = A721791A-0DEF-4D06-BD91-2118BF1DB10B
' Inherited interface = IWICMetadataQueryReader
' ########################################################################################
#IF NOT %DEF(%IWICMetadataQueryWriter_INTERFACE_DEFINED)
 %IWICMetadataQueryWriter_INTERFACE_DEFINED = 1
$IID_IWICMetadataQueryWriter = GUID$("{A721791A-0DEF-4D06-BD91-2118BF1DB10B}")
INTERFACE IWICMetadataQueryWriter $IID_IWICMetadataQueryWriter
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICMetadataQueryReader Methods
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 12
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetLocation ( ' VTable offset = 16
 BYVAL cchMaxLength AS DWORD
 , BYREF wzNamespace AS WSTRINGZ
 , BYREF pcchActualLength AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataByName ( ' VTable offset = 20
 BYREF wzName AS WSTRINGZ
 , BYREF pvarValue AS PROPVARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD GetEnumerator ( ' VTable offset = 24
 BYREF ppIEnumString AS IEnumString
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICMetadataQueryReader Methods
 ' =====================================================================================
 METHOD SetMetadataByName ( ' VTable offset = 28
 BYREF wzName AS WSTRINGZ
 , BYREF pvarValue AS PROPVARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveMetadataByName ( ' VTable offset = 32
 BYREF wzName AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICMetadataQueryWriter_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapEncoder interface
' IID = 00000103-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapEncoder_INTERFACE_DEFINED)
 %IWICBitmapEncoder_INTERFACE_DEFINED = 1
$IID_IWICBitmapEncoder = GUID$("{00000103-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmapEncoder $IID_IWICBitmapEncoder
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL pIStream AS IStream
 , BYVAL cacheOption AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 16
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetEncoderInfo ( ' VTable offset = 20
 BYREF ppIEncoderInfo AS IWICBitmapEncoderInfo
 ) AS LONG
 ' =====================================================================================
 METHOD SetColorContexts ( ' VTable offset = 24
 BYVAL cCount AS DWORD
 , BYREF ppIColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD SetPalette ( ' VTable offset = 28
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD SetThumbnail ( ' VTable offset = 32
 BYVAL pIThumbnail AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 METHOD SetPreview ( ' VTable offset = 36
 BYVAL pIPreview AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 METHOD CreateNewFrame ( ' VTable offset = 40
 BYREF ppIFrameEncode AS IWICBitmapFrameEncode
 , BYREF ppIEncoderOptions AS IPropertyBag2
 ) AS LONG
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataQueryWriter ( ' VTable offset = 48
 BYREF ppIMetadataQueryWriter AS IWICMetadataQueryWriter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapEncoder_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapFrameEncode interface
' IID = 00000105-A8F2-4877-BA0A-FD2B6645FB94
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapFrameEncode_INTERFACE_DEFINED)
 %IWICBitmapFrameEncode_INTERFACE_DEFINED = 1
$IID_IWICBitmapFrameEncode = GUID$("{00000105-A8F2-4877-BA0A-FD2B6645FB94}")
INTERFACE IWICBitmapFrameEncode $IID_IWICBitmapFrameEncode
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL pIEncoderOptions AS IPropertyBag2
 ) AS LONG
 ' =====================================================================================
 METHOD SetSize ( ' VTable offset = 16
 BYVAL uiWidth AS DWORD
 , BYVAL uiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetResolution ( ' VTable offset = 20
 BYVAL dpiX AS DOUBLE
 , BYVAL dpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetPixelFormat ( ' VTable offset = 24
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD SetColorContexts ( ' VTable offset = 28
 BYVAL cCount AS DWORD
 , BYREF ppIColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD SetPalette ( ' VTable offset = 32
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD SetThumbnail ( ' VTable offset = 36
 BYVAL pIThumbnail AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 METHOD WritePixels ( ' VTable offset = 40
 BYVAL lineCount AS DWORD
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbPixels AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 METHOD WriteSource ( ' VTable offset = 44
 BYVAL pIBitmapSource AS IWICBitmapSource
 , BYREF prc AS WICRect
 ) AS LONG
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 48
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataQueryWriter ( ' VTable offset = 52
 BYREF ppIMetadataQueryWriter AS IWICMetadataQueryWriter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapFrameEncode_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapDecoder interface
' IID = 9EDDE9E7-8DEE-47EA-99DF-E6FAF2ED44BF
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapDecoder_INTERFACE_DEFINED)
 %IWICBitmapDecoder_INTERFACE_DEFINED = 1
$IID_IWICBitmapDecoder = GUID$("{9EDDE9E7-8DEE-47EA-99DF-E6FAF2ED44BF}")
INTERFACE IWICBitmapDecoder $IID_IWICBitmapDecoder
 INHERIT IUnknown
 ' =====================================================================================
 METHOD QueryCapability ( ' VTable offset = 12
 BYVAL pIStream AS IStream
 , BYREF pdwCapability AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 16
 BYVAL pIStream AS IStream
 , BYVAL cacheOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 20
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetDecoderInfo ( ' VTable offset = 24
 BYREF ppIDecoderInfo AS IWICBitmapDecoderInfo
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 28
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD GetMetadataQueryReader ( ' VTable offset = 32
 BYREF ppIMetadataQueryReader AS IWICMetadataQueryReader
 ) AS LONG
 ' =====================================================================================
 METHOD GetPreview ( ' VTable offset = 36
 BYREF ppIBitmapSource AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorContexts ( ' VTable offset = 40
 BYVAL cCount AS DWORD
 , BYREF ppIColorContexts AS IWICColorContext
 , BYREF pcActualCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetThumbnail ( ' VTable offset = 44
 BYREF ppIThumbnail AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 METHOD GetFrameCount ( ' VTable offset = 48
 BYREF pCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFrame ( ' VTable offset = 52
 BYVAL index AS DWORD
 , BYREF ppIBitmapFrame AS IWICBitmapFrameDecode
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapDecoder_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapSourceTransform interface
' IID = 3B16811B-6A43-4EC9-B713-3D5A0C13B940
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapSourceTransform_INTERFACE_DEFINED)
 %IWICBitmapSourceTransform_INTERFACE_DEFINED = 1
$IID_IWICBitmapSourceTransform = GUID$("{3B16811B-6A43-4EC9-B713-3D5A0C13B940}")
INTERFACE IWICBitmapSourceTransform $IID_IWICBitmapSourceTransform
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 12
 BYREF prcSrc AS WICRect
 , BYVAL uiWidth AS DWORD
 , BYVAL uiHeight AS DWORD
 , BYREF pguidDstFormat AS GUID
 , BYVAL dstTransform AS DWORD
 , BYVAL nStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 METHOD GetClosestSize ( ' VTable offset = 16
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetClosestPixelFormat ( ' VTable offset = 20
 BYREF pguidDstFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportTransform ( ' VTable offset = 24
 BYVAL dstTransform AS DWORD
 , BYREF pfIsSupported AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapSourceTransform_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapFrameDecode interface
' IID = 3B16811B-6A43-4EC9-A813-3D930C13B940
' Inherited interface = IWICBitmapSource
' ########################################################################################
#IF NOT %DEF(%IWICBitmapFrameDecode_INTERFACE_DEFINED)
 %IWICBitmapFrameDecode_INTERFACE_DEFINED = 1
$IID_IWICBitmapFrameDecode = GUID$("{3B16811B-6A43-4EC9-A813-3D930C13B940}")
INTERFACE IWICBitmapFrameDecode $IID_IWICBitmapFrameDecode
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapFrameDecode Methods
 ' =====================================================================================
 METHOD GetMetadataQueryReader ( ' VTable offset = 32
 BYREF ppIMetadataQueryReader AS IWICMetadataQueryReader
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorContexts ( ' VTable offset = 36
 BYVAL cCount AS DWORD
 , BYREF ppIColorContexts AS IWICColorContext
 , BYREF pcActualCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetThumbnail ( ' VTable offset = 40
 BYREF ppIThumbnail AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapFrameDecode_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICProgressiveLevelControl interface
' IID = DAAC296F-7AA5-4DBF-8D15-225C5976F891
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICProgressiveLevelControl_INTERFACE_DEFINED)
 %IWICProgressiveLevelControl_INTERFACE_DEFINED = 1
$IID_IWICProgressiveLevelControl = GUID$("{DAAC296F-7AA5-4DBF-8D15-225C5976F891}")
'INTERFACE IWICProgressiveLevelControl $IID_IWICProgressiveLevelControl
' INHERIT IAutomation
' ' =====================================================================================
' METHOD GetLevelCount ( ' VTable offset = 12
' ) AS DWORD
' ' =====================================================================================
' METHOD GetCurrentLevel ( ' VTable offset = 16
' ) AS DWORD
' ' =====================================================================================
' METHOD SetCurrentLevel ( ' VTable offset = 20
' BYVAL nLevel AS DWORD
' ) ' void
' ' =====================================================================================
'END INTERFACE
' // Note: Changed to IUnknown for consistency with the other interfaces
INTERFACE IWICProgressiveLevelControl $IID_IWICProgressiveLevelControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetLevelCount ( ' VTable offset = 12
 BYREF pcLevels AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentLevel ( ' VTable offset = 16
 BYREF pnLevel AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCurrentLevel ( ' VTable offset = 20
 BYVAL nLevel AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICProgressiveLevelControl_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICProgressCallback interface
' IID = 4776F9CD-9517-45FA-BF24-E89C5EC5C60C
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICProgressCallback_INTERFACE_DEFINED)
 %IWICProgressCallback_INTERFACE_DEFINED = 1
$IID_IWICProgressCallback = GUID$("{4776F9CD-9517-45FA-BF24-E89C5EC5C60C}")
INTERFACE IWICProgressCallback $IID_IWICProgressCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 12
 BYVAL uFrameNum AS DWORD
 , BYVAL operation AS DWORD
 , BYVAL dblProgress AS DOUBLE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICProgressCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapCodecProgressNotification interface
' IID = 64C1024E-C3CF-4462-8078-88C2B11C46D9
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICBitmapCodecProgressNotification_INTERFACE_DEFINED)
 %IWICBitmapCodecProgressNotification_INTERFACE_DEFINED = 1
'typedef /* [ref] */ HRESULT ( __stdcall *PFNProgressNotification )(
' LPVOID pvData,
' ULONG uFrameNum,
' WICProgressOperation operation,
' double dblProgress);
'FUNCTION ProgressNotification ( ' BYVAL pvData AS DWORD ' LPVOID pvData
' , BYVAL uFrameNum AS DWORD ' ULONG uFrameNum
' , BYVAL operation AS DWORD ' WICProgressOperation operation
' , BYVAL dblProgress AS DOUBLE ' double dblProgress
' ) AS LONG
$IID_IWICBitmapCodecProgressNotification = GUID$("{64C1024E-C3CF-4462-8078-88C2B11C46D9}")
INTERFACE IWICBitmapCodecProgressNotification $IID_IWICBitmapCodecProgressNotification
 INHERIT IUnknown
 ' =====================================================================================
 METHOD RegisterProgressNotification ( ' VTable offset = 12
 BYVAL pfnProgressNotification AS DWORD
 , BYVAL pvData AS DWORD
 , BYVAL dwProgressFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapCodecProgressNotification_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICComponentInfo interface
' IID = 23BC3F0A-698B-4357-886B-F24D50671334
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICComponentInfo_INTERFACE_DEFINED)
 %IWICComponentInfo_INTERFACE_DEFINED = 1
$IID_IWICComponentInfo = GUID$("{23BC3F0A-698B-4357-886B-F24D50671334}")
INTERFACE IWICComponentInfo $IID_IWICComponentInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICComponentInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICFormatConverterInfo interface
' IID = 9F34FB65-13F4-4F15-BC57-3726B5E53D9F
' Inherited interface = IWICComponentInfo
' ########################################################################################
#IF NOT %DEF(%IWICFormatConverterInfo_INTERFACE_DEFINED)
 %IWICFormatConverterInfo_INTERFACE_DEFINED = 1
$IID_IWICFormatConverterInfo = GUID$("{9F34FB65-13F4-4F15-BC57-3726B5E53D9F}")
INTERFACE IWICFormatConverterInfo $IID_IWICFormatConverterInfo
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICFormatConverterInfo Methods
 ' =====================================================================================
 METHOD GetPixelFormats ( ' VTable offset = 44
 BYVAL cFormats AS DWORD
 , BYREF pPixelFormatGUIDs AS GUID
 , BYREF pcActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateInstance ( ' VTable offset = 48
 BYREF ppIConverter AS IWICFormatConverter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICFormatConverterInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapCodecInfo interface
' IID = E87A44C4-B76E-4C47-8B09-298EB12A2714
' Inherited interface = IWICComponentInfo
' ########################################################################################
#IF NOT %DEF(%IWICBitmapCodecInfo_INTERFACE_DEFINED)
 %IWICBitmapCodecInfo_INTERFACE_DEFINED = 1
$IID_IWICBitmapCodecInfo = GUID$("{E87A44C4-B76E-4C47-8B09-298EB12A2714}")
INTERFACE IWICBitmapCodecInfo $IID_IWICBitmapCodecInfo
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapCodecInfo Methods
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 44
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormats ( ' VTable offset = 48
 BYVAL cFormats AS DWORD
 , BYREF pguidPixelFormats AS GUID
 , BYREF pcActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorManagementVersion ( ' VTable offset = 52
 BYVAL cchColorManagementVersion AS DWORD
 , BYREF wzColorManagementVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceManufacturer ( ' VTable offset = 56
 BYVAL cchDeviceManufacturer AS DWORD
 , BYREF wzDeviceManufacturer AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceModels ( ' VTable offset = 60
 BYVAL cchDeviceModels AS DWORD
 , BYREF wzDeviceModels AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMimeTypes ( ' VTable offset = 64
 BYVAL cchMimeTypes AS DWORD
 , BYREF wzMimeTypes AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFileExtensions ( ' VTable offset = 68
 BYVAL cchFileExtensions AS DWORD
 , BYREF wzFileExtensions AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportAnimation ( ' VTable offset = 72
 BYREF pfSupportAnimation AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportChromakey ( ' VTable offset = 76
 BYREF pfSupportChromakey AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportLossless ( ' VTable offset = 80
 BYREF pfSupportLossless AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportMultiframe ( ' VTable offset = 84
 BYREF pfSupportMultiframe AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MatchesMimeType ( ' VTable offset = 88
 BYREF wzMimeType AS WSTRINGZ
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapCodecInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapEncoderInfo interface
' IID = 94C9B4EE-A09F-4F92-8A1E-4A9BCE7E76FB
' Inherited interface = IWICBitmapCodecInfo
' ########################################################################################
#IF NOT %DEF(%IWICBitmapEncoderInfo_INTERFACE_DEFINED)
 %IWICBitmapEncoderInfo_INTERFACE_DEFINED = 1
$IID_IWICBitmapEncoderInfo = GUID$("{94C9B4EE-A09F-4F92-8A1E-4A9BCE7E76FB}")
INTERFACE IWICBitmapEncoderInfo $IID_IWICBitmapEncoderInfo
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapCodecInfo Methods
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 44
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormats ( ' VTable offset = 48
 BYVAL cFormats AS DWORD
 , BYREF pguidPixelFormats AS GUID
 , BYREF pcActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorManagementVersion ( ' VTable offset = 52
 BYVAL cchColorManagementVersion AS DWORD
 , BYREF wzColorManagementVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceManufacturer ( ' VTable offset = 56
 BYVAL cchDeviceManufacturer AS DWORD
 , BYREF wzDeviceManufacturer AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceModels ( ' VTable offset = 60
 BYVAL cchDeviceModels AS DWORD
 , BYREF wzDeviceModels AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMimeTypes ( ' VTable offset = 64
 BYVAL cchMimeTypes AS DWORD
 , BYREF wzMimeTypes AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFileExtensions ( ' VTable offset = 68
 BYVAL cchFileExtensions AS DWORD
 , BYREF wzFileExtensions AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportAnimation ( ' VTable offset = 72
 BYREF pfSupportAnimation AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportChromakey ( ' VTable offset = 76
 BYREF pfSupportChromakey AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportLossless ( ' VTable offset = 80
 BYREF pfSupportLossless AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportMultiframe ( ' VTable offset = 84
 BYREF pfSupportMultiframe AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MatchesMimeType ( ' VTable offset = 88
 BYREF wzMimeType AS WSTRINGZ
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapEncoderInfo Methods
 ' =====================================================================================
 METHOD CreateInstance ( ' VTable offset = 92
 BYREF ppIBitmapEncoder AS IWICBitmapEncoder
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapEncoderInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICBitmapDecoderInfo interface
' IID = D8CD007F-D08F-4191-9BFC-236EA7F0E4B5
' Inherited interface = IWICBitmapCodecInfo
' ########################################################################################
#IF NOT %DEF(%IWICBitmapDecoderInfo_INTERFACE_DEFINED)
 %IWICBitmapDecoderInfo_INTERFACE_DEFINED = 1
$IID_IWICBitmapDecoderInfo = GUID$("{D8CD007F-D08F-4191-9BFC-236EA7F0E4B5}")
INTERFACE IWICBitmapDecoderInfo $IID_IWICBitmapDecoderInfo
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapCodecInfo Methods
 ' =====================================================================================
 METHOD GetContainerFormat ( ' VTable offset = 44
 BYREF pguidContainerFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormats ( ' VTable offset = 48
 BYVAL cFormats AS DWORD
 , BYREF pguidPixelFormats AS GUID
 , BYREF pcActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorManagementVersion ( ' VTable offset = 52
 BYVAL cchColorManagementVersion AS DWORD
 , BYREF wzColorManagementVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceManufacturer ( ' VTable offset = 56
 BYVAL cchDeviceManufacturer AS DWORD
 , BYREF wzDeviceManufacturer AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDeviceModels ( ' VTable offset = 60
 BYVAL cchDeviceModels AS DWORD
 , BYREF wzDeviceModels AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMimeTypes ( ' VTable offset = 64
 BYVAL cchMimeTypes AS DWORD
 , BYREF wzMimeTypes AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFileExtensions ( ' VTable offset = 68
 BYVAL cchFileExtensions AS DWORD
 , BYREF wzFileExtensions AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportAnimation ( ' VTable offset = 72
 BYREF pfSupportAnimation AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportChromakey ( ' VTable offset = 76
 BYREF pfSupportChromakey AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportLossless ( ' VTable offset = 80
 BYREF pfSupportLossless AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesSupportMultiframe ( ' VTable offset = 84
 BYREF pfSupportMultiframe AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MatchesMimeType ( ' VTable offset = 88
 BYREF wzMimeType AS WSTRINGZ
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapDecoderInfo Methods
 ' =====================================================================================
 METHOD GetPatterns ( ' VTable offset = 92
 BYVAL cbSizePatterns AS DWORD
 , BYREF pPatterns AS WICBitmapPattern
 , BYREF pcPatterns AS DWORD
 , BYREF pcbPatternsActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD MatchesPattern ( ' VTable offset = 96
 BYVAL pIStream AS IStream
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CreateInstance ( ' VTable offset = 100
 BYREF ppIBitmapDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICBitmapDecoderInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICPixelFormatInfo interface
' IID = E8EDA601-3D48-431A-AB44-69059BE88BBE
' Inherited interface = IWICComponentInfo
' ########################################################################################
#IF NOT %DEF(%IWICPixelFormatInfo_INTERFACE_DEFINED)
 %IWICPixelFormatInfo_INTERFACE_DEFINED = 1
$IID_IWICPixelFormatInfo = GUID$("{E8EDA601-3D48-431A-AB44-69059BE88BBE}")
INTERFACE IWICPixelFormatInfo $IID_IWICPixelFormatInfo
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICPixelFormatInfo Methods
 ' =====================================================================================
 METHOD GetFormatGUID ( ' VTable offset = 44
 BYREF pFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorContext ( ' VTable offset = 48
 BYREF ppIColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD GetBitsPerPixel ( ' VTable offset = 52
 BYREF puiBitsPerPixel AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetChannelCount ( ' VTable offset = 56
 BYREF puiChannelCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetChannelMask ( ' VTable offset = 60
 BYVAL uiChannelIndex AS DWORD
 , BYVAL cbMaskBuffer AS DWORD
 , BYVAL pbMaskBuffer AS BYTE PTR
 , BYREF pcbActual AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICPixelFormatInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICPixelFormatInfo2 interface
' IID = A9DB33A2-AF5F-43C7-B679-74F5984B5AA4
' Inherited interface = IWICPixelFormatInfo
' ########################################################################################
#IF NOT %DEF(%IWICPixelFormatInfo2_INTERFACE_DEFINED)
 %IWICPixelFormatInfo2_INTERFACE_DEFINED = 1
$IID_IWICPixelFormatInfo2 = GUID$("{A9DB33A2-AF5F-43C7-B679-74F5984B5AA4}")
INTERFACE IWICPixelFormatInfo2 $IID_IWICPixelFormatInfo2
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICComponentInfo Methods
 ' =====================================================================================
 METHOD GetComponentType ( ' VTable offset = 12
 BYREF pType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLSID ( ' VTable offset = 16
 BYREF pclsid AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetSigningStatus ( ' VTable offset = 20
 BYREF pStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAuthor ( ' VTable offset = 24
 BYVAL cchAuthor AS DWORD
 , BYREF wzAuthor AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVendorGUID ( ' VTable offset = 28
 BYREF pguidVendor AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetVersion ( ' VTable offset = 32
 BYVAL cchVersion AS DWORD
 , BYREF wzVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecVersion ( ' VTable offset = 36
 BYVAL cchSpecVersion AS DWORD
 , BYREF wzSpecVersion AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFriendlyName ( ' VTable offset = 40
 BYVAL cchFriendlyName AS DWORD
 , BYREF wzFriendlyName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICPixelFormatInfo Methods
 ' =====================================================================================
 METHOD GetFormatGUID ( ' VTable offset = 44
 BYREF pFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorContext ( ' VTable offset = 48
 BYREF ppIColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD GetBitsPerPixel ( ' VTable offset = 52
 BYREF puiBitsPerPixel AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetChannelCount ( ' VTable offset = 56
 BYREF puiChannelCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetChannelMask ( ' VTable offset = 60
 BYVAL uiChannelIndex AS DWORD
 , BYVAL cbMaskBuffer AS DWORD
 , BYVAL pbMaskBuffer AS BYTE PTR
 , BYREF pcbActual AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICPixelFormatInfo Methods
 ' =====================================================================================
 METHOD SupportsTransparency ( ' VTable offset = 64
 BYREF pfSupportsTransparency AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetNumericRepresentation ( ' VTable offset = 68
 BYREF pNumericRepresentation AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICPixelFormatInfo2_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICImagingFactory interface
' IID = EC5EC8A9-C395-4314-9C77-54D7A935FF70
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICImagingFactory_INTERFACE_DEFINED)
 %IWICImagingFactory_INTERFACE_DEFINED = 1
$IID_IWICImagingFactory = GUID$("{EC5EC8A9-C395-4314-9C77-54D7A935FF70}")
'INTERFACE IWICImagingFactory $IID_IWICImagingFactory
' INHERIT IAutomation
' ' =====================================================================================
' METHOD CreateDecoderFromFilename ( ' VTable offset = 12
' BYREF wzFilename AS WSTRINGZ
' , BYREF pguidVendor AS GUID
' , BYVAL dwDesiredAccess AS DWORD
' , BYVAL metadataOptions AS DWORD
' ) AS IWICBitmapDecoder
' ' =====================================================================================
' METHOD CreateDecoderFromStream ( ' VTable offset = 16
' BYVAL pIStream AS IStream
' , BYREF pguidVendor AS GUID
' , BYVAL metadataOptions AS DWORD
' ) AS IWICBitmapDecoder
' ' =====================================================================================
' METHOD CreateDecoderFromFileHandle ( ' VTable offset = 20
' BYVAL hFile AS DWORD
' , BYREF pguidVendor AS GUID
' , BYVAL metadataOptions AS DWORD
' ) AS IWICBitmapDecoder
' ' =====================================================================================
' METHOD CreateComponentInfo ( ' VTable offset = 24
' BYREF clsidComponent AS GUID
' , BYREF ppIInfo AS IWICComponentInfo
' ) ' void
' ' =====================================================================================
' METHOD CreateDecoder ( ' VTable offset = 28
' BYREF guidContainerFormat AS GUID
' , BYREF pguidVendor AS GUID
' ) AS IWICBitmapDecoder
' ' =====================================================================================
' METHOD CreateEncoder ( ' VTable offset = 32
' BYREF guidContainerFormat AS GUID
' , BYREF pguidVendor AS GUID
' ) AS IWICBitmapEncoder
' ' =====================================================================================
' METHOD CreatePalette ( ' VTable offset = 28
' BYREF ppIPalette AS IWICPalette
' ) ' void
' ' =====================================================================================
' METHOD CreateFormatConverter ( ' VTable offset = 32
' BYREF ppIFormatConverter AS IWICFormatConverter
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapScaler ( ' VTable offset = 36
' BYREF ppIBitmapScaler AS IWICBitmapScaler
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapClipper ( ' VTable offset = 40
' BYREF ppIBitmapClipper AS IWICBitmapClipper
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFlipRotator ( ' VTable offset = 44
' BYREF ppIBitmapFlipRotator AS IWICBitmapFlipRotator
' ) ' void
' ' =====================================================================================
' METHOD CreateStream ( ' VTable offset = 48
' BYREF ppIWICStream AS IWICStream
' ) ' void
' ' =====================================================================================
' METHOD CreateColorContext ( ' VTable offset = 52
' BYREF ppIWICColorContext AS IWICColorContext
' ) ' void
' ' =====================================================================================
' METHOD CreateColorTransformer ( ' VTable offset = 56
' BYREF ppIWICColorTransform AS IWICColorTransform
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmap ( ' VTable offset = 60
' BYVAL uiWidth AS DWORD
' , BYVAL uiHeight AS DWORD
' , BYREF pixelFormat AS GUID
' , BYVAL option AS DWORD
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFromSource ( ' VTable offset = 64
' BYVAL pIBitmapSource AS IWICBitmapSource
' , BYVAL option AS DWORD
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFromSourceRect ( ' VTable offset = 68
' BYVAL pIBitmapSource AS IWICBitmapSource
' , BYVAL x AS DWORD
' , BYVAL y AS DWORD
' , BYVAL width AS DWORD
' , BYVAL height AS DWORD
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFromMemory ( ' VTable offset = 72
' BYVAL uiWidth AS DWORD
' , BYVAL uiHeight AS DWORD
' , BYREF pixelFormat AS GUID
' , BYVAL cbStride AS DWORD
' , BYVAL cbBufferSize AS DWORD
' , BYVAL pbBuffer AS BYTE PTR
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFromHBITMAP ( ' VTable offset = 76
' BYVAL hBitmap AS DWORD
' , BYVAL hPalette AS DWORD
' , BYVAL options AS DWORD
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateBitmapFromHICON ( ' VTable offset = 80
' BYVAL hIcon AS DWORD
' , BYREF ppIBitmap AS IWICBitmap
' ) ' void
' ' =====================================================================================
' METHOD CreateComponentEnumerator ( ' VTable offset = 84
' BYVAL componentTypes AS DWORD
' , BYVAL options AS DWORD
' , BYREF ppIEnumUnknown AS IEnumUnknown
' ) ' void
' ' =====================================================================================
' METHOD CreateFastMetadataEncoderFromDecoder ( ' VTable offset = 88
' BYVAL pIDecoder AS IWICBitmapDecoder
' , BYREF ppIFastEncoder AS IWICFastMetadataEncoder
' ) ' void
' ' =====================================================================================
' METHOD CreateFastMetadataEncoderFromFrameDecode ( ' VTable offset = 92
' BYVAL pIFrameDecoder AS IWICBitmapFrameDecode
' , BYREF ppIFastEncoder AS IWICFastMetadataEncoder
' ) ' void
' ' =====================================================================================
' METHOD CreateQueryWriter ( ' VTable offset = 96
' BYREF guidMetadataFormat AS GUID
' , BYREF pguidVendor AS GUID
' , BYREF ppIQueryWriter AS IWICMetadataQueryWriter
' ) ' void
' ' =====================================================================================
' METHOD CreateQueryWriterFromReader ( ' VTable offset = 100
' BYVAL pIQueryReader AS IWICMetadataQueryReader
' , BYREF pguidVendor AS GUID
' , BYREF ppIQueryWriter AS IWICMetadataQueryWriter
' ) ' void
' ' =====================================================================================
'END INTERFACE
' // Note: Changed to IUnknown for consistency with the other interfaces
INTERFACE IWICImagingFactory $IID_IWICImagingFactory
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateDecoderFromFilename ( ' VTable offset = 12
 BYREF wzFilename AS WSTRINGZ
 , BYREF pguidVendor AS GUID
 , BYVAL dwDesiredAccess AS DWORD
 , BYVAL metadataOptions AS DWORD
 , BYREF ppIDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDecoderFromStream ( ' VTable offset = 16
 BYVAL pIStream AS IStream
 , BYREF pguidVendor AS GUID
 , BYVAL metadataOptions AS DWORD
 , BYREF ppIDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDecoderFromFileHandle ( ' VTable offset = 20
 BYVAL hFile AS DWORD
 , BYREF pguidVendor AS GUID
 , BYVAL metadataOptions AS DWORD
 , BYREF ppIDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateComponentInfo ( ' VTable offset = 24
 BYREF clsidComponent AS GUID
 , BYREF ppIInfo AS IWICComponentInfo
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDecoder ( ' VTable offset = 28
 BYREF guidContainerFormat AS GUID
 , BYREF pguidVendor AS GUID
 , BYREF ppIDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateEncoder ( ' VTable offset = 32
 BYREF guidContainerFormat AS GUID
 , BYREF pguidVendor AS GUID
 , BYREF ppIDecoder AS IWICBitmapDecoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreatePalette ( ' VTable offset = 28
 BYREF ppIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CreateFormatConverter ( ' VTable offset = 32
 BYREF ppIFormatConverter AS IWICFormatConverter
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapScaler ( ' VTable offset = 36
 BYREF ppIBitmapScaler AS IWICBitmapScaler
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapClipper ( ' VTable offset = 40
 BYREF ppIBitmapClipper AS IWICBitmapClipper
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFlipRotator ( ' VTable offset = 44
 BYREF ppIBitmapFlipRotator AS IWICBitmapFlipRotator
 ) AS LONG
 ' =====================================================================================
 METHOD CreateStream ( ' VTable offset = 48
 BYREF ppIWICStream AS IWICStream
 ) AS LONG
 ' =====================================================================================
 METHOD CreateColorContext ( ' VTable offset = 52
 BYREF ppIWICColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD CreateColorTransformer ( ' VTable offset = 56
 BYREF ppIWICColorTransform AS IWICColorTransform
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmap ( ' VTable offset = 60
 BYVAL uiWidth AS DWORD
 , BYVAL uiHeight AS DWORD
 , BYREF pixelFormat AS GUID
 , BYVAL option AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFromSource ( ' VTable offset = 64
 BYVAL pIBitmapSource AS IWICBitmapSource
 , BYVAL option AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFromSourceRect ( ' VTable offset = 68
 BYVAL pIBitmapSource AS IWICBitmapSource
 , BYVAL x AS DWORD
 , BYVAL y AS DWORD
 , BYVAL width AS DWORD
 , BYVAL height AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFromMemory ( ' VTable offset = 72
 BYVAL uiWidth AS DWORD
 , BYVAL uiHeight AS DWORD
 , BYREF pixelFormat AS GUID
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFromHBITMAP ( ' VTable offset = 76
 BYVAL hBitmap AS DWORD
 , BYVAL hPalette AS DWORD
 , BYVAL options AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBitmapFromHICON ( ' VTable offset = 80
 BYVAL hIcon AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
 ' =====================================================================================
 METHOD CreateComponentEnumerator ( ' VTable offset = 84
 BYVAL componentTypes AS DWORD
 , BYVAL options AS DWORD
 , BYREF ppIEnumUnknown AS IEnumUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateFastMetadataEncoderFromDecoder ( ' VTable offset = 88
 BYVAL pIDecoder AS IWICBitmapDecoder
 , BYREF ppIFastEncoder AS IWICFastMetadataEncoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateFastMetadataEncoderFromFrameDecode ( ' VTable offset = 92
 BYVAL pIFrameDecoder AS IWICBitmapFrameDecode
 , BYREF ppIFastEncoder AS IWICFastMetadataEncoder
 ) AS LONG
 ' =====================================================================================
 METHOD CreateQueryWriter ( ' VTable offset = 96
 BYREF guidMetadataFormat AS GUID
 , BYREF pguidVendor AS GUID
 , BYREF ppIQueryWriter AS IWICMetadataQueryWriter
 ) AS LONG
 ' =====================================================================================
 METHOD CreateQueryWriterFromReader ( ' VTable offset = 100
 BYVAL pIQueryReader AS IWICMetadataQueryReader
 , BYREF pguidVendor AS GUID
 , BYREF ppIQueryWriter AS IWICMetadataQueryWriter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICImagingFactory_INTERFACE_DEFINED__ */
DECLARE FUNCTION WICConvertBitmapSource LIB "windowscodecs.dll" ALIAS "WICConvertBitmapSource" ( BYREF dstFormat AS GUID , BYVAL pISrc AS IWICBitmapSource , BYREF ppIDst AS IWICBitmapSource ) AS LONG
DECLARE FUNCTION WICCreateBitmapFromSection LIB "windowscodecs.dll" ALIAS "WICCreateBitmapFromSection" ( BYVAL width AS QUAD
 , BYVAL height AS DWORD
 , BYREF pixelFormat AS GUID
 , BYVAL hSection AS DWORD
 , BYVAL stride AS DWORD
 , BYVAL offset AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
DECLARE FUNCTION WICCreateBitmapFromSectionEx LIB "windowscodecs.dll" ALIAS "WICCreateBitmapFromSectionEx" ( BYVAL width AS DWORD
 , BYVAL height AS DWORD
 , BYREF pixelFormat AS GUID
 , BYVAL hSection AS DWORD
 , BYVAL stride AS DWORD
 , BYVAL offset AS DWORD
 , BYVAL desiredAccessLevel AS DWORD
 , BYREF ppIBitmap AS IWICBitmap
 ) AS LONG
DECLARE FUNCTION WICMapGuidToShortName LIB "windowscodecs.dll" ALIAS "WICMapGuidToShortName" ( BYREF guid AS GUID
 , BYVAL cchName AS DWORD
 , BYREF wzName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
DECLARE FUNCTION WICMapShortNameToGuid LIB "windowscodecs.dll" ALIAS "WICMapShortNameToGuid" ( BYVAL wzName AS WSTRINGZ PTR
 , BYREF pguid AS GUID
 ) AS LONG
DECLARE FUNCTION WICMapSchemaToName LIB "windowscodecs.dll" ALIAS "WICMapSchemaToName" ( BYREF guidMetadataFormat AS GUID
 , BYREF pwzSchema AS WSTRINGZ
 , BYVAL cchName AS DWORD
 , BYREF wzName AS WSTRINGZ
 , BYREF pcchActual AS DWORD
 ) AS LONG
%EQUATE `FACILITY_WINCODEC_ERR = &H898&
%EQUATE `WINCODEC_ERR_BASE = &H2000&
'#define MAKE_WINCODECHR(sev, code) MAKE_HRESULT(sev, FACILITY_WINCODEC_ERR, (WINCODEC_ERR_BASE + code))
MACRO MAKE_WINCODECHR(sev, code) = MAKE_HRESULT(sev, %FACILITY_WINCODEC_ERR, (%WINCODEC_ERR_BASE + code))
'#define MAKE_WINCODECHR_ERR(code) MAKE_WINCODECHR(1, code)
MACRO MAKE_WINCODECHR_ERR(code) = MAKE_WINCODECHR(1, code)
%EQUATE `WINCODEC_ERR_GENERIC_ERROR = %E_FAIL
%EQUATE `WINCODEC_ERR_INVALIDPARAMETER = %E_INVALIDARG
%EQUATE `WINCODEC_ERR_OUTOFMEMORY = %E_OUTOFMEMORY
%EQUATE `WINCODEC_ERR_NOTIMPLEMENTED = %E_NOTIMPL
%EQUATE `WINCODEC_ERR_ABORTED = %E_ABORT
%EQUATE `WINCODEC_ERR_ACCESSDENIED = %E_ACCESSDENIED
%EQUATE `WINCODEC_ERR_VALUEOVERFLOW = &H80070216& ' %INTSAFE_E_ARITHMETIC_OVERFLOW
'#define WINCODEC_ERR_WRONGSTATE MAKE_WINCODECHR_ERR(0xf04)
'#define WINCODEC_ERR_VALUEOUTOFRANGE MAKE_WINCODECHR_ERR(0xf05)
'#define WINCODEC_ERR_UNKNOWNIMAGEFORMAT MAKE_WINCODECHR_ERR(0xf07)
'#define WINCODEC_ERR_UNSUPPORTEDVERSION MAKE_WINCODECHR_ERR(0xf0B)
'#define WINCODEC_ERR_NOTINITIALIZED MAKE_WINCODECHR_ERR(0xf0C)
'#define WINCODEC_ERR_ALREADYLOCKED MAKE_WINCODECHR_ERR(0xf0D)
'#define WINCODEC_ERR_PROPERTYNOTFOUND MAKE_WINCODECHR_ERR(0xf40)
'#define WINCODEC_ERR_PROPERTYNOTSUPPORTED MAKE_WINCODECHR_ERR(0xf41)
'#define WINCODEC_ERR_PROPERTYSIZE MAKE_WINCODECHR_ERR(0xf42)
'#define WINCODEC_ERR_CODECPRESENT MAKE_WINCODECHR_ERR(0xf43)
'#define WINCODEC_ERR_CODECNOTHUMBNAIL MAKE_WINCODECHR_ERR(0xf44)
'#define WINCODEC_ERR_PALETTEUNAVAILABLE MAKE_WINCODECHR_ERR(0xf45)
'#define WINCODEC_ERR_CODECTOOMANYSCANLINES MAKE_WINCODECHR_ERR(0xf46)
'#define WINCODEC_ERR_INTERNALERROR MAKE_WINCODECHR_ERR(0xf48)
'#define WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS MAKE_WINCODECHR_ERR(0xf49)
'#define WINCODEC_ERR_COMPONENTNOTFOUND MAKE_WINCODECHR_ERR(0xf50)
'#define WINCODEC_ERR_IMAGESIZEOUTOFRANGE MAKE_WINCODECHR_ERR(0xf51)
'#define WINCODEC_ERR_TOOMUCHMETADATA MAKE_WINCODECHR_ERR(0xf52)
'#define WINCODEC_ERR_BADIMAGE MAKE_WINCODECHR_ERR(0xf60)
'#define WINCODEC_ERR_BADHEADER MAKE_WINCODECHR_ERR(0xf61)
'#define WINCODEC_ERR_FRAMEMISSING MAKE_WINCODECHR_ERR(0xf62)
'#define WINCODEC_ERR_BADMETADATAHEADER MAKE_WINCODECHR_ERR(0xf63)
'#define WINCODEC_ERR_BADSTREAMDATA MAKE_WINCODECHR_ERR(0xf70)
'#define WINCODEC_ERR_STREAMWRITE MAKE_WINCODECHR_ERR(0xf71)
'#define WINCODEC_ERR_STREAMREAD MAKE_WINCODECHR_ERR(0xf72)
'#define WINCODEC_ERR_STREAMNOTAVAILABLE MAKE_WINCODECHR_ERR(0xf73)
'#define WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT MAKE_WINCODECHR_ERR(0xf80)
'#define WINCODEC_ERR_UNSUPPORTEDOPERATION MAKE_WINCODECHR_ERR(0xf81)
'#define WINCODEC_ERR_INVALIDREGISTRATION MAKE_WINCODECHR_ERR(0xf8A)
'#define WINCODEC_ERR_COMPONENTINITIALIZEFAILURE MAKE_WINCODECHR_ERR(0xf8B)
'#define WINCODEC_ERR_INSUFFICIENTBUFFER MAKE_WINCODECHR_ERR(0xf8C)
'#define WINCODEC_ERR_DUPLICATEMETADATAPRESENT MAKE_WINCODECHR_ERR(0xf8D)
'#define WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE MAKE_WINCODECHR_ERR(0xf8E)
'#define WINCODEC_ERR_UNEXPECTEDSIZE MAKE_WINCODECHR_ERR(0xf8F)
'#define WINCODEC_ERR_INVALIDQUERYREQUEST MAKE_WINCODECHR_ERR(0xf90)
'#define WINCODEC_ERR_UNEXPECTEDMETADATATYPE MAKE_WINCODECHR_ERR(0xf91)
'#define WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT MAKE_WINCODECHR_ERR(0xf92)
'#define WINCODEC_ERR_INVALIDQUERYCHARACTER MAKE_WINCODECHR_ERR(0xf93)
'#define WINCODEC_ERR_WIN32ERROR MAKE_WINCODECHR_ERR(0xf94)
'#define WINCODEC_ERR_INVALIDPROGRESSIVELEVEL MAKE_WINCODECHR_ERR(0xf95)
%EQUATE `WINCODEC_ERR_WRONGSTATE = &H88982F04&
%EQUATE `WINCODEC_ERR_VALUEOUTOFRANGE = &H88982F05&
%EQUATE `WINCODEC_ERR_UNKNOWNIMAGEFORMAT = &H88982F07&
%EQUATE `WINCODEC_ERR_UNSUPPORTEDVERSION = &H88982F0B&
%EQUATE `WINCODEC_ERR_NOTINITIALIZED = &H88982F0C&
%EQUATE `WINCODEC_ERR_ALREADYLOCKED = &H88982F0D&
%EQUATE `WINCODEC_ERR_PROPERTYNOTFOUND = &H88982F40&
%EQUATE `WINCODEC_ERR_PROPERTYNOTSUPPORTED = &H88982F41&
%EQUATE `WINCODEC_ERR_PROPERTYSIZE = &H88982F42&
%EQUATE `WINCODEC_ERR_CODECPRESENT = &H88982F43&
%EQUATE `WINCODEC_ERR_CODECNOTHUMBNAIL = &H88982F44&
%EQUATE `WINCODEC_ERR_PALETTEUNAVAILABLE = &H88982F45&
%EQUATE `WINCODEC_ERR_CODECTOOMANYSCANLINES = &H88982F46&
%EQUATE `WINCODEC_ERR_INTERNALERROR = &H88982F48&
%EQUATE `WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS = &H88982F49&
%EQUATE `WINCODEC_ERR_COMPONENTNOTFOUND = &H88982F50&
%EQUATE `WINCODEC_ERR_IMAGESIZEOUTOFRANGE = &H88982F51&
%EQUATE `WINCODEC_ERR_TOOMUCHMETADATA = &H88982F52&
%EQUATE `WINCODEC_ERR_BADIMAGE = &H88982F60&
%EQUATE `WINCODEC_ERR_BADHEADER = &H88982F61&
%EQUATE `WINCODEC_ERR_FRAMEMISSING = &H88982F62&
%EQUATE `WINCODEC_ERR_BADMETADATAHEADER = &H88982F63&
%EQUATE `WINCODEC_ERR_BADSTREAMDATA = &H88982F70&
%EQUATE `WINCODEC_ERR_STREAMWRITE = &H88982F71&
%EQUATE `WINCODEC_ERR_STREAMREAD = &H88982F72&
%EQUATE `WINCODEC_ERR_STREAMNOTAVAILABLE = &H88982F73&
%EQUATE `WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT = &H88982F80&
%EQUATE `WINCODEC_ERR_UNSUPPORTEDOPERATION = &H88982F81&
%EQUATE `WINCODEC_ERR_INVALIDREGISTRATION = &H88982F8A&
%EQUATE `WINCODEC_ERR_COMPONENTINITIALIZEFAILURE = &H88982F8B&
%EQUATE `WINCODEC_ERR_INSUFFICIENTBUFFER = &H88982F8C&
%EQUATE `WINCODEC_ERR_DUPLICATEMETADATAPRESENT = &H88982F8D&
%EQUATE `WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE = &H88982F8E&
%EQUATE `WINCODEC_ERR_UNEXPECTEDSIZE = &H88982F8F&
%EQUATE `WINCODEC_ERR_INVALIDQUERYREQUEST = &H88982F90&
%EQUATE `WINCODEC_ERR_UNEXPECTEDMETADATATYPE = &H88982F91&
%EQUATE `WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT = &H88982F92&
%EQUATE `WINCODEC_ERR_INVALIDQUERYCHARACTER = &H88982F93&
%EQUATE `WINCODEC_ERR_WIN32ERROR = &H88982F94&
%EQUATE `WINCODEC_ERR_INVALIDPROGRESSIVELEVEL = &H88982F95&
' enum WICTiffCompressionOption
%EQUATE `WICTiffCompressionDontCare = 0
%EQUATE `WICTiffCompressionNone = &H1
%EQUATE `WICTiffCompressionCCITT3 = &H2
%EQUATE `WICTiffCompressionCCITT4 = &H3
%EQUATE `WICTiffCompressionLZW = &H4
%EQUATE `WICTiffCompressionRLE = &H5
%EQUATE `WICTiffCompressionZIP = &H6
%EQUATE `WICTiffCompressionLZWHDifferencing = &H7
%EQUATE `WICTiffCOMPRESSIONOPTION_FORCE_DWORD = &H7fffffff
' enum WICJpegYCrCbSubsamplingOption
%EQUATE `WICJpegYCrCbSubsamplingDefault = 0
%EQUATE `WICJpegYCrCbSubsampling420 = &H1
%EQUATE `WICJpegYCrCbSubsampling422 = &H2
%EQUATE `WICJpegYCrCbSubsampling444 = &H3
%EQUATE `WICJPEGYCRCBSUBSAMPLING_FORCE_DWORD = &H7fffffff
' enum WICPngFilterOption
%EQUATE `WICPngFilterUnspecified = 0
%EQUATE `WICPngFilterNone = &H1
%EQUATE `WICPngFilterSub = &H2
%EQUATE `WICPngFilterUp = &H3
%EQUATE `WICPngFilterAverage = &H4
%EQUATE `WICPngFilterPaeth = &H5
%EQUATE `WICPngFilterAdaptive = &H6
%EQUATE `WICPNGFILTEROPTION_FORCE_DWORD = &H7fffffff
' enum WICNamedWhitePoint
%EQUATE `WICWhitePointDefault = &H1
%EQUATE `WICWhitePointDaylight = &H2
%EQUATE `WICWhitePointCloudy = &H4
%EQUATE `WICWhitePointShade = &H8
%EQUATE `WICWhitePointTungsten = &H10
%EQUATE `WICWhitePointFluorescent = &H20
%EQUATE `WICWhitePointFlash = &H40
%EQUATE `WICWhitePointUnderwater = &H80
%EQUATE `WICWhitePointCustom = &H100
%EQUATE `WICWhitePointAutoWhiteBalance = &H200
%EQUATE `WICWhitePointAsShot = %WICWhitePointDefault
%EQUATE `WICNAMEDWHITEPOINT_FORCE_DWORD = &H7fffffff
' enum WICRawCapabilities
%EQUATE `WICRawCapabilityNotSupported = 0
%EQUATE `WICRawCapabilityGetSupported = &H1
%EQUATE `WICRawCapabilityFullySupported = &H2
%EQUATE `WICRAWCAPABILITIES_FORCE_DWORD = &H7fffffff
' enum WICRawRotationCapabilities
%EQUATE `WICRawRotationCapabilityNotSupported = 0
%EQUATE `WICRawRotationCapabilityGetSupported = &H1
%EQUATE `WICRawRotationCapabilityNinetyDegreesSupported = &H2
%EQUATE `WICRawRotationCapabilityFullySupported = &H3
%EQUATE `WICRAWROTATIONCAPABILITIES_FORCE_DWORD = &H7fffffff
' // Size = 72 bytes
TYPE WICRawCapabilitiesInfo DWORD
 cbSize AS DWORD ' UINT
 CodecMajorVersion AS DWORD ' UINT
 CodecMinorVersion AS DWORD ' UINT
 ExposureCompensationSupport AS DWORD ' WICRawCapabilities
 ContrastSupport AS DWORD ' WICRawCapabilities
 RGBWhitePointSupport AS DWORD ' WICRawCapabilities
 NamedWhitePointSupport AS DWORD ' WICRawCapabilities
 NamedWhitePointSupportMask AS DWORD ' UINT
 KelvinWhitePointSupport AS DWORD ' WICRawCapabilities
 GammaSupport AS DWORD ' WICRawCapabilities
 TintSupport AS DWORD ' WICRawCapabilities
 SaturationSupport AS DWORD ' WICRawCapabilities
 SharpnessSupport AS DWORD ' WICRawCapabilities
 NoiseReductionSupport AS DWORD ' WICRawCapabilities
 DestinationColorProfileSupport AS DWORD ' WICRawCapabilities
 ToneCurveSupport AS DWORD ' WICRawCapabilities
 RotationSupport AS DWORD ' WICRawRotationCapabilities
 RenderModeSupport AS DWORD ' WICRawCapabilities
END TYPE
' enum WICRawParameterSet
%EQUATE `WICAsShotParameterSet = &H1
%EQUATE `WICUserAdjustedParameterSet = &H2
%EQUATE `WICAutoAdjustedParameterSet = &H3
%EQUATE `WICRAWPARAMETERSET_FORCE_DWORD = &H7fffffff
' enum WICRawRenderMode
%EQUATE `WICRawRenderModeDraft = &H1
%EQUATE `WICRawRenderModeNormal = &H2
%EQUATE `WICRawRenderModeBestQuality = &H3
%EQUATE `WICRAWRENDERMODE_FORCE_DWORD = &H7fffffff
' // Size = 16 bytes
TYPE WICRawToneCurvePoint ' Must be 8 byte aligned
 Input AS DOUBLE
 Output AS DOUBLE
END TYPE
' // Size = 24 bytes
TYPE WICRawToneCurve ' Must be 8 byte aligned
 cPoints AS DWORD ' UINT
 alignment__ AS DWORD ' // To keep 8 byte alignment
 aPoints(0) AS WICRawToneCurvePoint ' WICRawToneCurvePoint aPoints[ 1 ]
END TYPE
%EQUATE `WICRawChangeNotification_ExposureCompensation = &H00000001
%EQUATE `WICRawChangeNotification_NamedWhitePoint = &H00000002
%EQUATE `WICRawChangeNotification_KelvinWhitePoint = &H00000004
%EQUATE `WICRawChangeNotification_RGBWhitePoint = &H00000008
%EQUATE `WICRawChangeNotification_Contrast = &H00000010
%EQUATE `WICRawChangeNotification_Gamma = &H00000020
%EQUATE `WICRawChangeNotification_Sharpness = &H00000040
%EQUATE `WICRawChangeNotification_Saturation = &H00000080
%EQUATE `WICRawChangeNotification_Tint = &H00000100
%EQUATE `WICRawChangeNotification_NoiseReduction = &H00000200
%EQUATE `WICRawChangeNotification_DestinationColorContext = &H00000400
%EQUATE `WICRawChangeNotification_ToneCurve = &H00000800
%EQUATE `WICRawChangeNotification_Rotation = &H00001000
%EQUATE `WICRawChangeNotification_RenderMode = &H00002000
' ########################################################################################
' IWICDevelopRawNotificationCallback interface
' IID = 95C75A6E-3E8C-4EC2-85A8-AEBCC551E59B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWICDevelopRawNotificationCallback_INTERFACE_DEFINED)
 %IWICDevelopRawNotificationCallback_INTERFACE_DEFINED = 1
$IID_IWICDevelopRawNotificationCallback = GUID$("{95C75A6E-3E8C-4EC2-85A8-AEBCC551E59B}")
INTERFACE IWICDevelopRawNotificationCallback $IID_IWICDevelopRawNotificationCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 12
 BYVAL NotificationMask AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICDevelopRawNotificationCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' IWICDevelopRaw interface
' IID = FBEC5E44-F7BE-4B65-B7F8-C0C81FEF026D
' Inherited interface = IWICBitmapFrameDecode
' ########################################################################################
#IF NOT %DEF(%IWICDevelopRaw_INTERFACE_DEFINED)
 %IWICDevelopRaw_INTERFACE_DEFINED = 1
$IID_IWICDevelopRaw = GUID$("{FBEC5E44-F7BE-4B65-B7F8-C0C81FEF026D}")
INTERFACE IWICDevelopRaw $IID_IWICDevelopRaw
 INHERIT IUnknown
 ' =====================================================================================
 ' IWICBitmapSource Methods
 ' =====================================================================================
 METHOD GetSize ( ' VTable offset = 12
 BYREF puiWidth AS DWORD
 , BYREF puiHeight AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 16
 BYREF pPixelFormat AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolution ( ' VTable offset = 20
 BYREF pDpiX AS DOUBLE
 , BYREF pDpiY AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPalette ( ' VTable offset = 24
 BYVAL pIPalette AS IWICPalette
 ) AS LONG
 ' =====================================================================================
 METHOD CopyPixels ( ' VTable offset = 28
 BYREF prc AS WICRect
 , BYVAL cbStride AS DWORD
 , BYVAL cbBufferSize AS DWORD
 , BYVAL pbBuffer AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICBitmapFrameDecode Methods
 ' =====================================================================================
 METHOD GetMetadataQueryReader ( ' VTable offset = 32
 BYREF ppIMetadataQueryReader AS IWICMetadataQueryReader
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorContexts ( ' VTable offset = 36
 BYVAL cCount AS DWORD
 , BYREF ppIColorContexts AS IWICColorContext
 , BYREF pcActualCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetThumbnail ( ' VTable offset = 40
 BYREF ppIThumbnail AS IWICBitmapSource
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IWICDevelopRaw Methods
 ' =====================================================================================
 METHOD QueryRawCapabilitiesInfo ( ' VTable offset = 44
 BYREF pInfo AS WICRawCapabilitiesInfo
 ) AS LONG
 ' =====================================================================================
 METHOD LoadParameterSet ( ' VTable offset = 48
 BYVAL ParameterSet AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentParameterSet ( ' VTable offset = 52
 BYREF ppCurrentParameterSet AS IPropertyBag2
 ) AS LONG
 ' =====================================================================================
 METHOD SetExposureCompensation ( ' VTable offset = 56
 BYVAL ev AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetExposureCompensation ( ' VTable offset = 60
 BYREF pEV AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetWhitePointRGB ( ' VTable offset = 64
 BYVAL Red AS DWORD
 , BYVAL Green AS DWORD
 , BYVAL Blue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetWhitePointRGB ( ' VTable offset = 68
 BYREF pRed AS DWORD
 , BYREF pGreen AS DWORD
 , BYREF pBlue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetNamedWhitePoint ( ' VTable offset = 72
 BYVAL WhitePoint AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNamedWhitePoint ( ' VTable offset = 76
 BYREF pWhitePoint AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetWhitePointKelvin ( ' VTable offset = 80
 BYVAL WhitePointKelvin AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetWhitePointKelvin ( ' VTable offset = 84
 BYREF pWhitePointKelvin AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetKelvinRangeInfo ( ' VTable offset = 88
 BYREF pMinKelvinTemp AS DWORD
 , BYREF pMaxKelvinTemp AS DWORD
 , BYREF pKelvinTempStepValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetContrast ( ' VTable offset = 92
 BYVAL Contrast AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetContrast ( ' VTable offset = 96
 BYREF pContrast AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetGamma ( ' VTable offset = 100
 BYVAL Gamma AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetGamma ( ' VTable offset = 104
 BYREF pGamma AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetSharpness ( ' VTable offset = 108
 BYVAL Sharpness AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetSharpness ( ' VTable offset = 112
 BYREF pSharpness AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetSaturation ( ' VTable offset = 116
 BYVAL Saturation AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetSaturation ( ' VTable offset = 120
 BYREF pSaturation AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetTint ( ' VTable offset = 124
 BYVAL Tint AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetTint ( ' VTable offset = 128
 BYREF pTint AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetNoiseReduction ( ' VTable offset = 132
 BYVAL NoiseReduction AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetNoiseReduction ( ' VTable offset = 136
 BYREF pNoiseReduction AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetDestinationColorContext ( ' VTable offset = 140
 BYVAL pColorContext AS IWICColorContext
 ) AS LONG
 ' =====================================================================================
 METHOD SetToneCurve ( ' VTable offset = 144
 BYVAL cbToneCurveSize AS DWORD
 , BYREF pToneCurve AS WICRawToneCurve
 ) AS LONG
 ' =====================================================================================
 METHOD GetToneCurve ( ' VTable offset = 148
 BYVAL cbToneCurveBufferSize AS DWORD
 , BYREF pToneCurve AS WICRawToneCurve
 , BYREF pcbActualToneCurveBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetRotation ( ' VTable offset = 152
 BYVAL Rotation AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetRotation ( ' VTable offset = 156
 BYREF pRotation AS DOUBLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetRenderMode ( ' VTable offset = 160
 BYVAL RenderMode AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRenderMode ( ' VTable offset = 164
 BYREF pRenderMode AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetNotificationCallback ( ' VTable offset = 168
 BYVAL pCallback AS IWICDevelopRawNotificationCallback
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWICDevelopRaw_INTERFACE_DEFINED__ */
#ENDIF
