Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/wincodec.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __wincodec_h__
     16 #define __wincodec_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IWICColorContext_FWD_DEFINED__
     21 #define __IWICColorContext_FWD_DEFINED__
     22 typedef interface IWICColorContext IWICColorContext;
     23 #endif
     24 
     25 #ifndef __IWICBitmapSource_FWD_DEFINED__
     26 #define __IWICBitmapSource_FWD_DEFINED__
     27 typedef interface IWICBitmapSource IWICBitmapSource;
     28 #endif
     29 
     30 #ifndef __IWICBitmapLock_FWD_DEFINED__
     31 #define __IWICBitmapLock_FWD_DEFINED__
     32 typedef interface IWICBitmapLock IWICBitmapLock;
     33 #endif
     34 
     35 #ifndef __IWICBitmapFlipRotator_FWD_DEFINED__
     36 #define __IWICBitmapFlipRotator_FWD_DEFINED__
     37 typedef interface IWICBitmapFlipRotator IWICBitmapFlipRotator;
     38 #endif
     39 
     40 #ifndef __IWICBitmap_FWD_DEFINED__
     41 #define __IWICBitmap_FWD_DEFINED__
     42 typedef interface IWICBitmap IWICBitmap;
     43 #endif
     44 
     45 #ifndef __IWICPalette_FWD_DEFINED__
     46 #define __IWICPalette_FWD_DEFINED__
     47 typedef interface IWICPalette IWICPalette;
     48 #endif
     49 
     50 #ifndef __IWICComponentInfo_FWD_DEFINED__
     51 #define __IWICComponentInfo_FWD_DEFINED__
     52 typedef interface IWICComponentInfo IWICComponentInfo;
     53 #endif
     54 
     55 #ifndef __IWICMetadataQueryReader_FWD_DEFINED__
     56 #define __IWICMetadataQueryReader_FWD_DEFINED__
     57 typedef interface IWICMetadataQueryReader IWICMetadataQueryReader;
     58 #endif
     59 
     60 #ifndef __IWICMetadataQueryWriter_FWD_DEFINED__
     61 #define __IWICMetadataQueryWriter_FWD_DEFINED__
     62 typedef interface IWICMetadataQueryWriter IWICMetadataQueryWriter;
     63 #endif
     64 
     65 #ifndef __IWICBitmapFrameDecode_FWD_DEFINED__
     66 #define __IWICBitmapFrameDecode_FWD_DEFINED__
     67 typedef interface IWICBitmapFrameDecode IWICBitmapFrameDecode;
     68 #endif
     69 
     70 #ifndef __IWICPixelFormatInfo_FWD_DEFINED__
     71 #define __IWICPixelFormatInfo_FWD_DEFINED__
     72 typedef interface IWICPixelFormatInfo IWICPixelFormatInfo;
     73 #endif
     74 
     75 #ifndef __IWICPixelFormatInfo2_FWD_DEFINED__
     76 #define __IWICPixelFormatInfo2_FWD_DEFINED__
     77 typedef interface IWICPixelFormatInfo2 IWICPixelFormatInfo2;
     78 #endif
     79 
     80 #ifndef __IWICBitmapCodecInfo_FWD_DEFINED__
     81 #define __IWICBitmapCodecInfo_FWD_DEFINED__
     82 typedef interface IWICBitmapCodecInfo IWICBitmapCodecInfo;
     83 #endif
     84 
     85 #ifndef __IWICBitmapDecoderInfo_FWD_DEFINED__
     86 #define __IWICBitmapDecoderInfo_FWD_DEFINED__
     87 typedef interface IWICBitmapDecoderInfo IWICBitmapDecoderInfo;
     88 #endif
     89 
     90 #ifndef __IWICBitmapDecoder_FWD_DEFINED__
     91 #define __IWICBitmapDecoder_FWD_DEFINED__
     92 typedef interface IWICBitmapDecoder IWICBitmapDecoder;
     93 #endif
     94 
     95 #ifndef __IWICBitmapFrameEncode_FWD_DEFINED__
     96 #define __IWICBitmapFrameEncode_FWD_DEFINED__
     97 typedef interface IWICBitmapFrameEncode IWICBitmapFrameEncode;
     98 #endif
     99 
    100 #ifndef __IWICBitmapEncoderInfo_FWD_DEFINED__
    101 #define __IWICBitmapEncoderInfo_FWD_DEFINED__
    102 typedef interface IWICBitmapEncoderInfo IWICBitmapEncoderInfo;
    103 #endif
    104 
    105 #ifndef __IWICBitmapEncoder_FWD_DEFINED__
    106 #define __IWICBitmapEncoder_FWD_DEFINED__
    107 typedef interface IWICBitmapEncoder IWICBitmapEncoder;
    108 #endif
    109 
    110 #ifndef __IWICFormatConverter_FWD_DEFINED__
    111 #define __IWICFormatConverter_FWD_DEFINED__
    112 typedef interface IWICFormatConverter IWICFormatConverter;
    113 #endif
    114 
    115 #ifndef __IWICFormatConverterInfo_FWD_DEFINED__
    116 #define __IWICFormatConverterInfo_FWD_DEFINED__
    117 typedef interface IWICFormatConverterInfo IWICFormatConverterInfo;
    118 #endif
    119 
    120 #ifndef __IWICStream_FWD_DEFINED__
    121 #define __IWICStream_FWD_DEFINED__
    122 typedef interface IWICStream IWICStream;
    123 #endif
    124 
    125 #ifndef __IWICBitmapScaler_FWD_DEFINED__
    126 #define __IWICBitmapScaler_FWD_DEFINED__
    127 typedef interface IWICBitmapScaler IWICBitmapScaler;
    128 #endif
    129 
    130 #ifndef __IWICBitmapClipper_FWD_DEFINED__
    131 #define __IWICBitmapClipper_FWD_DEFINED__
    132 typedef interface IWICBitmapClipper IWICBitmapClipper;
    133 #endif
    134 
    135 #ifndef __IWICColorTransform_FWD_DEFINED__
    136 #define __IWICColorTransform_FWD_DEFINED__
    137 typedef interface IWICColorTransform IWICColorTransform;
    138 #endif
    139 
    140 #ifndef __IWICFastMetadataEncoder_FWD_DEFINED__
    141 #define __IWICFastMetadataEncoder_FWD_DEFINED__
    142 typedef interface IWICFastMetadataEncoder IWICFastMetadataEncoder;
    143 #endif
    144 
    145 #ifndef __IWICImagingFactory_FWD_DEFINED__
    146 #define __IWICImagingFactory_FWD_DEFINED__
    147 typedef interface IWICImagingFactory IWICImagingFactory;
    148 #endif
    149 
    150 #ifndef __IWICEnumMetadataItem_FWD_DEFINED__
    151 #define __IWICEnumMetadataItem_FWD_DEFINED__
    152 typedef interface IWICEnumMetadataItem IWICEnumMetadataItem;
    153 #endif
    154 
    155 /* Headers for imported files */
    156 
    157 #include <wtypes.h>
    158 #include <propidl.h>
    159 #include <ocidl.h>
    160 
    161 #ifdef __cplusplus
    162 extern "C" {
    163 #endif
    164 
    165 #define WINCODEC_SDK_VERSION 0x0236
    166 typedef enum WICDecodeOptions {
    167     WICDecodeMetadataCacheOnDemand = 0x0,
    168     WICDecodeMetadataCacheOnLoad = 0x1,
    169     WICMETADATACACHEOPTION_FORCE_DWORD = 0x7fffffff
    170 } WICDecodeOptions;
    171 typedef enum WICBitmapCreateCacheOption {
    172     WICBitmapNoCache = 0x0,
    173     WICBitmapCacheOnDemand = 0x1,
    174     WICBitmapCacheOnLoad = 0x2,
    175     WICBITMAPCREATECACHEOPTION_FORCE_DWORD = 0x7fffffff
    176 } WICBitmapCreateCacheOption;
    177 typedef enum WICBitmapAlphaChannelOption {
    178     WICBitmapUseAlpha = 0x0,
    179     WICBitmapUsePremultipliedAlpha = 0x1,
    180     WICBitmapIgnoreAlpha = 0x2,
    181     WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = 0x7fffffff
    182 } WICBitmapAlphaChannelOption;
    183 typedef enum WICBitmapDecoderCapabilities {
    184     WICBitmapDecoderCapabilitySameEncoder = 0x1,
    185     WICBitmapDecoderCapabilityCanDecodeAllImages = 0x2,
    186     WICBitmapDecoderCapabilityCanDecodeSomeImages = 0x4,
    187     WICBitmapDecoderCapabilityCanEnumerateMetadata = 0x8,
    188     WICBitmapDecoderCapabilityCanDecodeThumbnail = 0x10
    189 } WICBitmapDecoderCapabilities;
    190 typedef enum WICBitmapDitherType {
    191     WICBitmapDitherTypeNone = 0x0,
    192     WICBitmapDitherTypeSolid = 0x0,
    193     WICBitmapDitherTypeOrdered4x4 = 0x1,
    194     WICBitmapDitherTypeOrdered8x8 = 0x2,
    195     WICBitmapDitherTypeOrdered16x16 = 0x3,
    196     WICBitmapDitherTypeSpiral4x4 = 0x4,
    197     WICBitmapDitherTypeSpiral8x8 = 0x5,
    198     WICBitmapDitherTypeDualSpiral4x4 = 0x6,
    199     WICBitmapDitherTypeDualSpiral8x8 = 0x7,
    200     WICBitmapDitherTypeErrorDiffusion = 0x8,
    201     WICBITMAPDITHERTYPE_FORCE_DWORD = 0x7fffffff
    202 } WICBitmapDitherType;
    203 typedef enum WICBitmapEncoderCacheOption {
    204     WICBitmapEncoderCacheInMemory = 0x0,
    205     WICBitmapEncoderCacheTempFile = 0x1,
    206     WICBitmapEncoderNoCache = 0x2,
    207     WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = 0x7fffffff
    208 } WICBitmapEncoderCacheOption;
    209 typedef enum WICBitmapInterpolationMode {
    210     WICBitmapInterpolationModeNearestNeighbor = 0x0,
    211     WICBitmapInterpolationModeLinear = 0x1,
    212     WICBitmapInterpolationModeCubic = 0x2,
    213     WICBitmapInterpolationModeFant = 0x3,
    214     WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = 0x7fffffff
    215 } WICBitmapInterpolationMode;
    216 typedef enum WICBitmapLockFlags {
    217     WICBitmapLockRead = 0x1,
    218     WICBitmapLockWrite = 0x2,
    219     WICBITMAPLOCKFLAGS_FORCE_DWORD = 0x7fffffff
    220 } WICBitmapLockFlags;
    221 typedef enum WICBitmapPaletteType {
    222     WICBitmapPaletteTypeCustom = 0x0,
    223     WICBitmapPaletteTypeMedianCut = 0x1,
    224     WICBitmapPaletteTypeFixedBW = 0x2,
    225     WICBitmapPaletteTypeFixedHalftone8 = 0x3,
    226     WICBitmapPaletteTypeFixedHalftone27 = 0x4,
    227     WICBitmapPaletteTypeFixedHalftone64 = 0x5,
    228     WICBitmapPaletteTypeFixedHalftone125 = 0x6,
    229     WICBitmapPaletteTypeFixedHalftone216 = 0x7,
    230     WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216,
    231     WICBitmapPaletteTypeFixedHalftone252 = 0x8,
    232     WICBitmapPaletteTypeFixedHalftone256 = 0x9,
    233     WICBitmapPaletteTypeFixedGray4 = 0xa,
    234     WICBitmapPaletteTypeFixedGray16 = 0xb,
    235     WICBitmapPaletteTypeFixedGray256 = 0xc,
    236     WICBITMAPPALETTETYPE_FORCE_DWORD = 0x7fffffff
    237 } WICBitmapPaletteType;
    238 typedef enum WICBitmapTransformOptions {
    239     WICBitmapTransformRotate0 = 0x0,
    240     WICBitmapTransformRotate90 = 0x1,
    241     WICBitmapTransformRotate180 = 0x2,
    242     WICBitmapTransformRotate270 = 0x3,
    243     WICBitmapTransformFlipHorizontal = 0x8,
    244     WICBitmapTransformFlipVertical = 0x10,
    245     WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = 0x7fffffff
    246 } WICBitmapTransformOptions;
    247 typedef enum WICColorContextType {
    248     WICColorContextUninitialized = 0x0,
    249     WICColorContextProfile = 0x1,
    250     WICColorContextExifColorSpace = 0x2
    251 } WICColorContextType;
    252 typedef enum WICComponentType {
    253     WICDecoder = 0x1,
    254     WICEncoder = 0x2,
    255     WICPixelFormatConverter = 0x4,
    256     WICMetadataReader = 0x8,
    257     WICMetadataWriter = 0x10,
    258     WICPixelFormat = 0x20,
    259     WICCOMPONENTTYPE_FORCE_DWORD = 0x7fffffff
    260 } WICComponentType;
    261 typedef enum WICComponentSigning {
    262     WICComponentSigned = 0x1,
    263     WICComponentUnsigned = 0x2,
    264     WICComponentSafe = 0x4,
    265     WICComponentDisabled = 0x80000000
    266 } WICComponentSigning;
    267 typedef enum WICComponentEnumerateOptions {
    268     WICComponentEnumerateDefault = 0x0,
    269     WICComponentEnumerateRefresh = 0x1,
    270     WICComponentEnumerateBuiltInOnly = 0x20000000,
    271     WICComponentEnumerateUnsigned = 0x40000000,
    272     WICComponentEnumerateDisabled = 0x80000000
    273 } WICComponentEnumerateOptions;
    274 typedef enum WICPixelFormatNumericRepresentation {
    275     WICPixelFormatNumericRepresentationUnspecified = 0x0,
    276     WICPixelFormatNumericRepresentationIndexed = 0x1,
    277     WICPixelFormatNumericRepresentationUnsignedInteger = 0x2,
    278     WICPixelFormatNumericRepresentationSignedInteger = 0x3,
    279     WICPixelFormatNumericRepresentationFixed = 0x4,
    280     WICPixelFormatNumericRepresentationFloat = 0x5,
    281     WICPIXELFORMATNUMERICREPRESENTATION_FORCE_DWORD = 0x7fffffff
    282 } WICPixelFormatNumericRepresentation;
    283 typedef enum WICTiffCompressionOption {
    284     WICTiffCompressionDontCare = 0x0,
    285     WICTiffCompressionNone = 0x1,
    286     WICTiffCompressionCCITT3 = 0x2,
    287     WICTiffCompressionCCITT4 = 0x3,
    288     WICTiffCompressionLZW = 0x4,
    289     WICTiffCompressionRLE = 0x5,
    290     WICTiffCompressionZIP = 0x6,
    291     WICTiffCompressionLZWHDifferencing = 0x7,
    292     WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = 0x7fffffff
    293 } WICTiffCompressionOption;
    294 typedef GUID WICPixelFormatGUID;
    295 typedef REFGUID REFWICPixelFormatGUID;
    296 DEFINE_GUID(GUID_WICPixelFormatDontCare, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x00);
    297 #define GUID_WICPixelFormatUndefined GUID_WICPixelFormatDontCare
    298 DEFINE_GUID(GUID_WICPixelFormat1bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x01);
    299 DEFINE_GUID(GUID_WICPixelFormat2bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x02);
    300 DEFINE_GUID(GUID_WICPixelFormat4bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x03);
    301 DEFINE_GUID(GUID_WICPixelFormat8bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x04);
    302 DEFINE_GUID(GUID_WICPixelFormatBlackWhite, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x05);
    303 DEFINE_GUID(GUID_WICPixelFormat2bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x06);
    304 DEFINE_GUID(GUID_WICPixelFormat4bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x07);
    305 DEFINE_GUID(GUID_WICPixelFormat8bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x08);
    306 DEFINE_GUID(GUID_WICPixelFormat16bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0b);
    307 DEFINE_GUID(GUID_WICPixelFormat16bppBGR555, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x09);
    308 DEFINE_GUID(GUID_WICPixelFormat16bppBGR565, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0a);
    309 DEFINE_GUID(GUID_WICPixelFormat16bppBGRA5551, 0x05ec7c2b,0xf1e6,0x4961,0xad,0x46,0xe1,0xcc,0x81,0x0a,0x87,0xd2);
    310 DEFINE_GUID(GUID_WICPixelFormat24bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0c);
    311 DEFINE_GUID(GUID_WICPixelFormat24bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0d);
    312 DEFINE_GUID(GUID_WICPixelFormat32bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0e);
    313 DEFINE_GUID(GUID_WICPixelFormat32bppBGRA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0f);
    314 DEFINE_GUID(GUID_WICPixelFormat32bppPBGRA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x10);
    315 DEFINE_GUID(GUID_WICPixelFormat32bppRGB, 0xd98c6b95,0x3efe,0x47d6,0xbb,0x25,0xeb,0x17,0x48,0xab,0x0c,0xf1);
    316 DEFINE_GUID(GUID_WICPixelFormat32bppRGBA, 0xf5c7ad2d,0x6a8d,0x43dd,0xa7,0xa8,0xa2,0x99,0x35,0x26,0x1a,0xe9);
    317 DEFINE_GUID(GUID_WICPixelFormat32bppPRGBA, 0x3cc4a650,0xa527,0x4d37,0xa9,0x16,0x31,0x42,0xc7,0xeb,0xed,0xba);
    318 DEFINE_GUID(GUID_WICPixelFormat48bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x15);
    319 DEFINE_GUID(GUID_WICPixelFormat64bppRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x16);
    320 DEFINE_GUID(GUID_WICPixelFormat64bppPRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x17);
    321 DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4fbe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);
    322 typedef struct WICRect {
    323     INT X;
    324     INT Y;
    325     INT Width;
    326     INT Height;
    327 } WICRect;
    328 typedef struct WICBitmapPattern {
    329     ULARGE_INTEGER Position;
    330     ULONG Length;
    331     BYTE *Pattern;
    332     BYTE *Mask;
    333     WINBOOL EndOfStream;
    334 } WICBitmapPattern;
    335 typedef UINT32 WICColor;
    336 #define WINCODEC_ERR_WRONGSTATE 0x88982f04
    337 #define WINCODEC_ERR_VALUEOUTOFRANGE 0x88982f05
    338 #define WINCODEC_ERR_NOTINITIALIZED 0x88982f0c
    339 #define WINCODEC_ERR_ALREADYLOCKED 0x88982f0d
    340 #define WINCODEC_ERR_PROPERTYNOTFOUND 0x88982f40
    341 #define WINCODEC_ERR_CODECNOTHUMBNAIL 0x88982f44
    342 #define WINCODEC_ERR_PALETTEUNAVAILABLE 0x88982f45
    343 #define WINCODEC_ERR_COMPONENTNOTFOUND 0x88982f50
    344 #define WINCODEC_ERR_BADIMAGE 0x88982f60
    345 #define WINCODEC_ERR_FRAMEMISSING 0x88982f62
    346 #define WINCODEC_ERR_BADMETADATAHEADER 0x88982f63
    347 #define WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT 0x88982f80
    348 #define WINCODEC_ERR_UNSUPPORTEDOPERATION 0x88982f81
    349 #define WINCODEC_ERR_INSUFFICIENTBUFFER 0x88982f8c
    350 #define WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE 0x88982f8e
    351 #define WINCODEC_ERR_WIN32ERROR 0x88982f94
    352 #ifndef __IWICPalette_FWD_DEFINED__
    353 #define __IWICPalette_FWD_DEFINED__
    354 typedef interface IWICPalette IWICPalette;
    355 #endif
    356 
    357 /*****************************************************************************
    358  * IWICColorContext interface
    359  */
    360 #ifndef __IWICColorContext_INTERFACE_DEFINED__
    361 #define __IWICColorContext_INTERFACE_DEFINED__
    362 
    363 DEFINE_GUID(IID_IWICColorContext, 0x3c613a02, 0x34b2, 0x44ea, 0x9a,0x7c, 0x45,0xae,0xa9,0xc6,0xfd,0x6d);
    364 #if defined(__cplusplus) && !defined(CINTERFACE)
    365 MIDL_INTERFACE("3c613a02-34b2-44ea-9a7c-45aea9c6fd6d")
    366 IWICColorContext : public IUnknown
    367 {
    368     virtual HRESULT STDMETHODCALLTYPE InitializeFromFilename(
    369         LPCWSTR wzFilename) = 0;
    370 
    371     virtual HRESULT STDMETHODCALLTYPE InitializeFromMemory(
    372         const BYTE *pbBuffer,
    373         UINT cbBufferSize) = 0;
    374 
    375     virtual HRESULT STDMETHODCALLTYPE InitializeFromExifColorSpace(
    376         UINT value) = 0;
    377 
    378     virtual HRESULT STDMETHODCALLTYPE GetType(
    379         WICColorContextType *pType) = 0;
    380 
    381     virtual HRESULT STDMETHODCALLTYPE GetProfileBytes(
    382         UINT cbBuffer,
    383         BYTE *pbBuffer,
    384         UINT *pcbActual) = 0;
    385 
    386     virtual HRESULT STDMETHODCALLTYPE GetExifColorSpace(
    387         UINT *pValue) = 0;
    388 
    389 };
    390 #ifdef __CRT_UUID_DECL
    391 __CRT_UUID_DECL(IWICColorContext, 0x3c613a02, 0x34b2, 0x44ea, 0x9a,0x7c, 0x45,0xae,0xa9,0xc6,0xfd,0x6d)
    392 #endif
    393 #else
    394 typedef struct IWICColorContextVtbl {
    395     BEGIN_INTERFACE
    396 
    397     /*** IUnknown methods ***/
    398     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    399         IWICColorContext* This,
    400         REFIID riid,
    401         void **ppvObject);
    402 
    403     ULONG (STDMETHODCALLTYPE *AddRef)(
    404         IWICColorContext* This);
    405 
    406     ULONG (STDMETHODCALLTYPE *Release)(
    407         IWICColorContext* This);
    408 
    409     /*** IWICColorContext methods ***/
    410     HRESULT (STDMETHODCALLTYPE *InitializeFromFilename)(
    411         IWICColorContext* This,
    412         LPCWSTR wzFilename);
    413 
    414     HRESULT (STDMETHODCALLTYPE *InitializeFromMemory)(
    415         IWICColorContext* This,
    416         const BYTE *pbBuffer,
    417         UINT cbBufferSize);
    418 
    419     HRESULT (STDMETHODCALLTYPE *InitializeFromExifColorSpace)(
    420         IWICColorContext* This,
    421         UINT value);
    422 
    423     HRESULT (STDMETHODCALLTYPE *GetType)(
    424         IWICColorContext* This,
    425         WICColorContextType *pType);
    426 
    427     HRESULT (STDMETHODCALLTYPE *GetProfileBytes)(
    428         IWICColorContext* This,
    429         UINT cbBuffer,
    430         BYTE *pbBuffer,
    431         UINT *pcbActual);
    432 
    433     HRESULT (STDMETHODCALLTYPE *GetExifColorSpace)(
    434         IWICColorContext* This,
    435         UINT *pValue);
    436 
    437     END_INTERFACE
    438 } IWICColorContextVtbl;
    439 interface IWICColorContext {
    440     CONST_VTBL IWICColorContextVtbl* lpVtbl;
    441 };
    442 
    443 #ifdef COBJMACROS
    444 #ifndef WIDL_C_INLINE_WRAPPERS
    445 /*** IUnknown methods ***/
    446 #define IWICColorContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    447 #define IWICColorContext_AddRef(This) (This)->lpVtbl->AddRef(This)
    448 #define IWICColorContext_Release(This) (This)->lpVtbl->Release(This)
    449 /*** IWICColorContext methods ***/
    450 #define IWICColorContext_InitializeFromFilename(This,wzFilename) (This)->lpVtbl->InitializeFromFilename(This,wzFilename)
    451 #define IWICColorContext_InitializeFromMemory(This,pbBuffer,cbBufferSize) (This)->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize)
    452 #define IWICColorContext_InitializeFromExifColorSpace(This,value) (This)->lpVtbl->InitializeFromExifColorSpace(This,value)
    453 #define IWICColorContext_GetType(This,pType) (This)->lpVtbl->GetType(This,pType)
    454 #define IWICColorContext_GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual) (This)->lpVtbl->GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual)
    455 #define IWICColorContext_GetExifColorSpace(This,pValue) (This)->lpVtbl->GetExifColorSpace(This,pValue)
    456 #else
    457 /*** IUnknown methods ***/
    458 static FORCEINLINE HRESULT IWICColorContext_QueryInterface(IWICColorContext* This,REFIID riid,void **ppvObject) {
    459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    460 }
    461 static FORCEINLINE ULONG IWICColorContext_AddRef(IWICColorContext* This) {
    462     return This->lpVtbl->AddRef(This);
    463 }
    464 static FORCEINLINE ULONG IWICColorContext_Release(IWICColorContext* This) {
    465     return This->lpVtbl->Release(This);
    466 }
    467 /*** IWICColorContext methods ***/
    468 static FORCEINLINE HRESULT IWICColorContext_InitializeFromFilename(IWICColorContext* This,LPCWSTR wzFilename) {
    469     return This->lpVtbl->InitializeFromFilename(This,wzFilename);
    470 }
    471 static FORCEINLINE HRESULT IWICColorContext_InitializeFromMemory(IWICColorContext* This,const BYTE *pbBuffer,UINT cbBufferSize) {
    472     return This->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize);
    473 }
    474 static FORCEINLINE HRESULT IWICColorContext_InitializeFromExifColorSpace(IWICColorContext* This,UINT value) {
    475     return This->lpVtbl->InitializeFromExifColorSpace(This,value);
    476 }
    477 static FORCEINLINE HRESULT IWICColorContext_GetType(IWICColorContext* This,WICColorContextType *pType) {
    478     return This->lpVtbl->GetType(This,pType);
    479 }
    480 static FORCEINLINE HRESULT IWICColorContext_GetProfileBytes(IWICColorContext* This,UINT cbBuffer,BYTE *pbBuffer,UINT *pcbActual) {
    481     return This->lpVtbl->GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual);
    482 }
    483 static FORCEINLINE HRESULT IWICColorContext_GetExifColorSpace(IWICColorContext* This,UINT *pValue) {
    484     return This->lpVtbl->GetExifColorSpace(This,pValue);
    485 }
    486 #endif
    487 #endif
    488 
    489 #endif
    490 
    491 HRESULT STDMETHODCALLTYPE IWICColorContext_InitializeFromFilename_Proxy(
    492     IWICColorContext* This,
    493     LPCWSTR wzFilename);
    494 void __RPC_STUB IWICColorContext_InitializeFromFilename_Stub(
    495     IRpcStubBuffer* This,
    496     IRpcChannelBuffer* pRpcChannelBuffer,
    497     PRPC_MESSAGE pRpcMessage,
    498     DWORD* pdwStubPhase);
    499 HRESULT STDMETHODCALLTYPE IWICColorContext_InitializeFromMemory_Proxy(
    500     IWICColorContext* This,
    501     const BYTE *pbBuffer,
    502     UINT cbBufferSize);
    503 void __RPC_STUB IWICColorContext_InitializeFromMemory_Stub(
    504     IRpcStubBuffer* This,
    505     IRpcChannelBuffer* pRpcChannelBuffer,
    506     PRPC_MESSAGE pRpcMessage,
    507     DWORD* pdwStubPhase);
    508 HRESULT STDMETHODCALLTYPE IWICColorContext_InitializeFromExifColorSpace_Proxy(
    509     IWICColorContext* This,
    510     UINT value);
    511 void __RPC_STUB IWICColorContext_InitializeFromExifColorSpace_Stub(
    512     IRpcStubBuffer* This,
    513     IRpcChannelBuffer* pRpcChannelBuffer,
    514     PRPC_MESSAGE pRpcMessage,
    515     DWORD* pdwStubPhase);
    516 HRESULT STDMETHODCALLTYPE IWICColorContext_GetType_Proxy(
    517     IWICColorContext* This,
    518     WICColorContextType *pType);
    519 void __RPC_STUB IWICColorContext_GetType_Stub(
    520     IRpcStubBuffer* This,
    521     IRpcChannelBuffer* pRpcChannelBuffer,
    522     PRPC_MESSAGE pRpcMessage,
    523     DWORD* pdwStubPhase);
    524 HRESULT STDMETHODCALLTYPE IWICColorContext_GetProfileBytes_Proxy(
    525     IWICColorContext* This,
    526     UINT cbBuffer,
    527     BYTE *pbBuffer,
    528     UINT *pcbActual);
    529 void __RPC_STUB IWICColorContext_GetProfileBytes_Stub(
    530     IRpcStubBuffer* This,
    531     IRpcChannelBuffer* pRpcChannelBuffer,
    532     PRPC_MESSAGE pRpcMessage,
    533     DWORD* pdwStubPhase);
    534 HRESULT STDMETHODCALLTYPE IWICColorContext_GetExifColorSpace_Proxy(
    535     IWICColorContext* This,
    536     UINT *pValue);
    537 void __RPC_STUB IWICColorContext_GetExifColorSpace_Stub(
    538     IRpcStubBuffer* This,
    539     IRpcChannelBuffer* pRpcChannelBuffer,
    540     PRPC_MESSAGE pRpcMessage,
    541     DWORD* pdwStubPhase);
    542 
    543 #endif  /* __IWICColorContext_INTERFACE_DEFINED__ */
    544 
    545 /*****************************************************************************
    546  * IWICBitmapSource interface
    547  */
    548 #ifndef __IWICBitmapSource_INTERFACE_DEFINED__
    549 #define __IWICBitmapSource_INTERFACE_DEFINED__
    550 
    551 DEFINE_GUID(IID_IWICBitmapSource, 0x00000120, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
    552 #if defined(__cplusplus) && !defined(CINTERFACE)
    553 MIDL_INTERFACE("00000120-a8f2-4877-ba0a-fd2b6645fb94")
    554 IWICBitmapSource : public IUnknown
    555 {
    556     virtual HRESULT STDMETHODCALLTYPE GetSize(
    557         UINT *puiWidth,
    558         UINT *puiHeight) = 0;
    559 
    560     virtual HRESULT STDMETHODCALLTYPE GetPixelFormat(
    561         WICPixelFormatGUID *pPixelFormat) = 0;
    562 
    563     virtual HRESULT STDMETHODCALLTYPE GetResolution(
    564         double *pDpiX,
    565         double *pDpiY) = 0;
    566 
    567     virtual HRESULT STDMETHODCALLTYPE CopyPalette(
    568         IWICPalette *pIPalette) = 0;
    569 
    570     virtual HRESULT STDMETHODCALLTYPE CopyPixels(
    571         const WICRect *prc,
    572         UINT cbStride,
    573         UINT cbBufferSize,
    574         BYTE *pbBuffer) = 0;
    575 
    576 };
    577 #ifdef __CRT_UUID_DECL
    578 __CRT_UUID_DECL(IWICBitmapSource, 0x00000120, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
    579 #endif
    580 #else
    581 typedef struct IWICBitmapSourceVtbl {
    582     BEGIN_INTERFACE
    583 
    584     /*** IUnknown methods ***/
    585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    586         IWICBitmapSource* This,
    587         REFIID riid,
    588         void **ppvObject);
    589 
    590     ULONG (STDMETHODCALLTYPE *AddRef)(
    591         IWICBitmapSource* This);
    592 
    593     ULONG (STDMETHODCALLTYPE *Release)(
    594         IWICBitmapSource* This);
    595 
    596     /*** IWICBitmapSource methods ***/
    597     HRESULT (STDMETHODCALLTYPE *GetSize)(
    598         IWICBitmapSource* This,
    599         UINT *puiWidth,
    600         UINT *puiHeight);
    601 
    602     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
    603         IWICBitmapSource* This,
    604         WICPixelFormatGUID *pPixelFormat);
    605 
    606     HRESULT (STDMETHODCALLTYPE *GetResolution)(
    607         IWICBitmapSource* This,
    608         double *pDpiX,
    609         double *pDpiY);
    610 
    611     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
    612         IWICBitmapSource* This,
    613         IWICPalette *pIPalette);
    614 
    615     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
    616         IWICBitmapSource* This,
    617         const WICRect *prc,
    618         UINT cbStride,
    619         UINT cbBufferSize,
    620         BYTE *pbBuffer);
    621 
    622     END_INTERFACE
    623 } IWICBitmapSourceVtbl;
    624 interface IWICBitmapSource {
    625     CONST_VTBL IWICBitmapSourceVtbl* lpVtbl;
    626 };
    627 
    628 #ifdef COBJMACROS
    629 #ifndef WIDL_C_INLINE_WRAPPERS
    630 /*** IUnknown methods ***/
    631 #define IWICBitmapSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    632 #define IWICBitmapSource_AddRef(This) (This)->lpVtbl->AddRef(This)
    633 #define IWICBitmapSource_Release(This) (This)->lpVtbl->Release(This)
    634 /*** IWICBitmapSource methods ***/
    635 #define IWICBitmapSource_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
    636 #define IWICBitmapSource_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
    637 #define IWICBitmapSource_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
    638 #define IWICBitmapSource_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
    639 #define IWICBitmapSource_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
    640 #else
    641 /*** IUnknown methods ***/
    642 static FORCEINLINE HRESULT IWICBitmapSource_QueryInterface(IWICBitmapSource* This,REFIID riid,void **ppvObject) {
    643     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    644 }
    645 static FORCEINLINE ULONG IWICBitmapSource_AddRef(IWICBitmapSource* This) {
    646     return This->lpVtbl->AddRef(This);
    647 }
    648 static FORCEINLINE ULONG IWICBitmapSource_Release(IWICBitmapSource* This) {
    649     return This->lpVtbl->Release(This);
    650 }
    651 /*** IWICBitmapSource methods ***/
    652 static FORCEINLINE HRESULT IWICBitmapSource_GetSize(IWICBitmapSource* This,UINT *puiWidth,UINT *puiHeight) {
    653     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
    654 }
    655 static FORCEINLINE HRESULT IWICBitmapSource_GetPixelFormat(IWICBitmapSource* This,WICPixelFormatGUID *pPixelFormat) {
    656     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
    657 }
    658 static FORCEINLINE HRESULT IWICBitmapSource_GetResolution(IWICBitmapSource* This,double *pDpiX,double *pDpiY) {
    659     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
    660 }
    661 static FORCEINLINE HRESULT IWICBitmapSource_CopyPalette(IWICBitmapSource* This,IWICPalette *pIPalette) {
    662     return This->lpVtbl->CopyPalette(This,pIPalette);
    663 }
    664 static FORCEINLINE HRESULT IWICBitmapSource_CopyPixels(IWICBitmapSource* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
    665     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
    666 }
    667 #endif
    668 #endif
    669 
    670 #endif
    671 
    672 HRESULT STDMETHODCALLTYPE IWICBitmapSource_GetSize_Proxy(
    673     IWICBitmapSource* This,
    674     UINT *puiWidth,
    675     UINT *puiHeight);
    676 void __RPC_STUB IWICBitmapSource_GetSize_Stub(
    677     IRpcStubBuffer* This,
    678     IRpcChannelBuffer* pRpcChannelBuffer,
    679     PRPC_MESSAGE pRpcMessage,
    680     DWORD* pdwStubPhase);
    681 HRESULT STDMETHODCALLTYPE IWICBitmapSource_GetPixelFormat_Proxy(
    682     IWICBitmapSource* This,
    683     WICPixelFormatGUID *pPixelFormat);
    684 void __RPC_STUB IWICBitmapSource_GetPixelFormat_Stub(
    685     IRpcStubBuffer* This,
    686     IRpcChannelBuffer* pRpcChannelBuffer,
    687     PRPC_MESSAGE pRpcMessage,
    688     DWORD* pdwStubPhase);
    689 HRESULT STDMETHODCALLTYPE IWICBitmapSource_GetResolution_Proxy(
    690     IWICBitmapSource* This,
    691     double *pDpiX,
    692     double *pDpiY);
    693 void __RPC_STUB IWICBitmapSource_GetResolution_Stub(
    694     IRpcStubBuffer* This,
    695     IRpcChannelBuffer* pRpcChannelBuffer,
    696     PRPC_MESSAGE pRpcMessage,
    697     DWORD* pdwStubPhase);
    698 HRESULT STDMETHODCALLTYPE IWICBitmapSource_CopyPalette_Proxy(
    699     IWICBitmapSource* This,
    700     IWICPalette *pIPalette);
    701 void __RPC_STUB IWICBitmapSource_CopyPalette_Stub(
    702     IRpcStubBuffer* This,
    703     IRpcChannelBuffer* pRpcChannelBuffer,
    704     PRPC_MESSAGE pRpcMessage,
    705     DWORD* pdwStubPhase);
    706 HRESULT STDMETHODCALLTYPE IWICBitmapSource_CopyPixels_Proxy(
    707     IWICBitmapSource* This,
    708     const WICRect *prc,
    709     UINT cbStride,
    710     UINT cbBufferSize,
    711     BYTE *pbBuffer);
    712 void __RPC_STUB IWICBitmapSource_CopyPixels_Stub(
    713     IRpcStubBuffer* This,
    714     IRpcChannelBuffer* pRpcChannelBuffer,
    715     PRPC_MESSAGE pRpcMessage,
    716     DWORD* pdwStubPhase);
    717 
    718 #endif  /* __IWICBitmapSource_INTERFACE_DEFINED__ */
    719 
    720 /*****************************************************************************
    721  * IWICBitmapLock interface
    722  */
    723 #ifndef __IWICBitmapLock_INTERFACE_DEFINED__
    724 #define __IWICBitmapLock_INTERFACE_DEFINED__
    725 
    726 DEFINE_GUID(IID_IWICBitmapLock, 0x00000123, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
    727 #if defined(__cplusplus) && !defined(CINTERFACE)
    728 MIDL_INTERFACE("00000123-a8f2-4877-ba0a-fd2b6645fb94")
    729 IWICBitmapLock : public IUnknown
    730 {
    731     virtual HRESULT STDMETHODCALLTYPE GetSize(
    732         UINT *pWidth,
    733         UINT *pHeight) = 0;
    734 
    735     virtual HRESULT STDMETHODCALLTYPE GetStride(
    736         UINT *pcbStride) = 0;
    737 
    738     virtual HRESULT STDMETHODCALLTYPE GetDataPointer(
    739         UINT *pcbBufferSize,
    740         BYTE **ppbData) = 0;
    741 
    742     virtual HRESULT STDMETHODCALLTYPE GetPixelFormat(
    743         WICPixelFormatGUID *pPixelFormat) = 0;
    744 
    745 };
    746 #ifdef __CRT_UUID_DECL
    747 __CRT_UUID_DECL(IWICBitmapLock, 0x00000123, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
    748 #endif
    749 #else
    750 typedef struct IWICBitmapLockVtbl {
    751     BEGIN_INTERFACE
    752 
    753     /*** IUnknown methods ***/
    754     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    755         IWICBitmapLock* This,
    756         REFIID riid,
    757         void **ppvObject);
    758 
    759     ULONG (STDMETHODCALLTYPE *AddRef)(
    760         IWICBitmapLock* This);
    761 
    762     ULONG (STDMETHODCALLTYPE *Release)(
    763         IWICBitmapLock* This);
    764 
    765     /*** IWICBitmapLock methods ***/
    766     HRESULT (STDMETHODCALLTYPE *GetSize)(
    767         IWICBitmapLock* This,
    768         UINT *pWidth,
    769         UINT *pHeight);
    770 
    771     HRESULT (STDMETHODCALLTYPE *GetStride)(
    772         IWICBitmapLock* This,
    773         UINT *pcbStride);
    774 
    775     HRESULT (STDMETHODCALLTYPE *GetDataPointer)(
    776         IWICBitmapLock* This,
    777         UINT *pcbBufferSize,
    778         BYTE **ppbData);
    779 
    780     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
    781         IWICBitmapLock* This,
    782         WICPixelFormatGUID *pPixelFormat);
    783 
    784     END_INTERFACE
    785 } IWICBitmapLockVtbl;
    786 interface IWICBitmapLock {
    787     CONST_VTBL IWICBitmapLockVtbl* lpVtbl;
    788 };
    789 
    790 #ifdef COBJMACROS
    791 #ifndef WIDL_C_INLINE_WRAPPERS
    792 /*** IUnknown methods ***/
    793 #define IWICBitmapLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    794 #define IWICBitmapLock_AddRef(This) (This)->lpVtbl->AddRef(This)
    795 #define IWICBitmapLock_Release(This) (This)->lpVtbl->Release(This)
    796 /*** IWICBitmapLock methods ***/
    797 #define IWICBitmapLock_GetSize(This,pWidth,pHeight) (This)->lpVtbl->GetSize(This,pWidth,pHeight)
    798 #define IWICBitmapLock_GetStride(This,pcbStride) (This)->lpVtbl->GetStride(This,pcbStride)
    799 #define IWICBitmapLock_GetDataPointer(This,pcbBufferSize,ppbData) (This)->lpVtbl->GetDataPointer(This,pcbBufferSize,ppbData)
    800 #define IWICBitmapLock_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
    801 #else
    802 /*** IUnknown methods ***/
    803 static FORCEINLINE HRESULT IWICBitmapLock_QueryInterface(IWICBitmapLock* This,REFIID riid,void **ppvObject) {
    804     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    805 }
    806 static FORCEINLINE ULONG IWICBitmapLock_AddRef(IWICBitmapLock* This) {
    807     return This->lpVtbl->AddRef(This);
    808 }
    809 static FORCEINLINE ULONG IWICBitmapLock_Release(IWICBitmapLock* This) {
    810     return This->lpVtbl->Release(This);
    811 }
    812 /*** IWICBitmapLock methods ***/
    813 static FORCEINLINE HRESULT IWICBitmapLock_GetSize(IWICBitmapLock* This,UINT *pWidth,UINT *pHeight) {
    814     return This->lpVtbl->GetSize(This,pWidth,pHeight);
    815 }
    816 static FORCEINLINE HRESULT IWICBitmapLock_GetStride(IWICBitmapLock* This,UINT *pcbStride) {
    817     return This->lpVtbl->GetStride(This,pcbStride);
    818 }
    819 static FORCEINLINE HRESULT IWICBitmapLock_GetDataPointer(IWICBitmapLock* This,UINT *pcbBufferSize,BYTE **ppbData) {
    820     return This->lpVtbl->GetDataPointer(This,pcbBufferSize,ppbData);
    821 }
    822 static FORCEINLINE HRESULT IWICBitmapLock_GetPixelFormat(IWICBitmapLock* This,WICPixelFormatGUID *pPixelFormat) {
    823     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
    824 }
    825 #endif
    826 #endif
    827 
    828 #endif
    829 
    830 HRESULT STDMETHODCALLTYPE IWICBitmapLock_GetSize_Proxy(
    831     IWICBitmapLock* This,
    832     UINT *pWidth,
    833     UINT *pHeight);
    834 void __RPC_STUB IWICBitmapLock_GetSize_Stub(
    835     IRpcStubBuffer* This,
    836     IRpcChannelBuffer* pRpcChannelBuffer,
    837     PRPC_MESSAGE pRpcMessage,
    838     DWORD* pdwStubPhase);
    839 HRESULT STDMETHODCALLTYPE IWICBitmapLock_GetStride_Proxy(
    840     IWICBitmapLock* This,
    841     UINT *pcbStride);
    842 void __RPC_STUB IWICBitmapLock_GetStride_Stub(
    843     IRpcStubBuffer* This,
    844     IRpcChannelBuffer* pRpcChannelBuffer,
    845     PRPC_MESSAGE pRpcMessage,
    846     DWORD* pdwStubPhase);
    847 HRESULT STDMETHODCALLTYPE IWICBitmapLock_GetDataPointer_Proxy(
    848     IWICBitmapLock* This,
    849     UINT *pcbBufferSize,
    850     BYTE **ppbData);
    851 void __RPC_STUB IWICBitmapLock_GetDataPointer_Stub(
    852     IRpcStubBuffer* This,
    853     IRpcChannelBuffer* pRpcChannelBuffer,
    854     PRPC_MESSAGE pRpcMessage,
    855     DWORD* pdwStubPhase);
    856 HRESULT STDMETHODCALLTYPE IWICBitmapLock_GetPixelFormat_Proxy(
    857     IWICBitmapLock* This,
    858     WICPixelFormatGUID *pPixelFormat);
    859 void __RPC_STUB IWICBitmapLock_GetPixelFormat_Stub(
    860     IRpcStubBuffer* This,
    861     IRpcChannelBuffer* pRpcChannelBuffer,
    862     PRPC_MESSAGE pRpcMessage,
    863     DWORD* pdwStubPhase);
    864 
    865 #endif  /* __IWICBitmapLock_INTERFACE_DEFINED__ */
    866 
    867 /*****************************************************************************
    868  * IWICBitmapFlipRotator interface
    869  */
    870 #ifndef __IWICBitmapFlipRotator_INTERFACE_DEFINED__
    871 #define __IWICBitmapFlipRotator_INTERFACE_DEFINED__
    872 
    873 DEFINE_GUID(IID_IWICBitmapFlipRotator, 0x5009834f, 0x2d6a, 0x41ce, 0x9e,0x1b, 0x17,0xc5,0xaf,0xf7,0xa7,0x82);
    874 #if defined(__cplusplus) && !defined(CINTERFACE)
    875 MIDL_INTERFACE("5009834f-2d6a-41ce-9e1b-17c5aff7a782")
    876 IWICBitmapFlipRotator : public IWICBitmapSource
    877 {
    878     virtual HRESULT STDMETHODCALLTYPE Initialize(
    879         IWICBitmapSource *pISource,
    880         WICBitmapTransformOptions options) = 0;
    881 
    882 };
    883 #ifdef __CRT_UUID_DECL
    884 __CRT_UUID_DECL(IWICBitmapFlipRotator, 0x5009834f, 0x2d6a, 0x41ce, 0x9e,0x1b, 0x17,0xc5,0xaf,0xf7,0xa7,0x82)
    885 #endif
    886 #else
    887 typedef struct IWICBitmapFlipRotatorVtbl {
    888     BEGIN_INTERFACE
    889 
    890     /*** IUnknown methods ***/
    891     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    892         IWICBitmapFlipRotator* This,
    893         REFIID riid,
    894         void **ppvObject);
    895 
    896     ULONG (STDMETHODCALLTYPE *AddRef)(
    897         IWICBitmapFlipRotator* This);
    898 
    899     ULONG (STDMETHODCALLTYPE *Release)(
    900         IWICBitmapFlipRotator* This);
    901 
    902     /*** IWICBitmapSource methods ***/
    903     HRESULT (STDMETHODCALLTYPE *GetSize)(
    904         IWICBitmapFlipRotator* This,
    905         UINT *puiWidth,
    906         UINT *puiHeight);
    907 
    908     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
    909         IWICBitmapFlipRotator* This,
    910         WICPixelFormatGUID *pPixelFormat);
    911 
    912     HRESULT (STDMETHODCALLTYPE *GetResolution)(
    913         IWICBitmapFlipRotator* This,
    914         double *pDpiX,
    915         double *pDpiY);
    916 
    917     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
    918         IWICBitmapFlipRotator* This,
    919         IWICPalette *pIPalette);
    920 
    921     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
    922         IWICBitmapFlipRotator* This,
    923         const WICRect *prc,
    924         UINT cbStride,
    925         UINT cbBufferSize,
    926         BYTE *pbBuffer);
    927 
    928     /*** IWICBitmapFlipRotator methods ***/
    929     HRESULT (STDMETHODCALLTYPE *Initialize)(
    930         IWICBitmapFlipRotator* This,
    931         IWICBitmapSource *pISource,
    932         WICBitmapTransformOptions options);
    933 
    934     END_INTERFACE
    935 } IWICBitmapFlipRotatorVtbl;
    936 interface IWICBitmapFlipRotator {
    937     CONST_VTBL IWICBitmapFlipRotatorVtbl* lpVtbl;
    938 };
    939 
    940 #ifdef COBJMACROS
    941 #ifndef WIDL_C_INLINE_WRAPPERS
    942 /*** IUnknown methods ***/
    943 #define IWICBitmapFlipRotator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    944 #define IWICBitmapFlipRotator_AddRef(This) (This)->lpVtbl->AddRef(This)
    945 #define IWICBitmapFlipRotator_Release(This) (This)->lpVtbl->Release(This)
    946 /*** IWICBitmapSource methods ***/
    947 #define IWICBitmapFlipRotator_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
    948 #define IWICBitmapFlipRotator_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
    949 #define IWICBitmapFlipRotator_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
    950 #define IWICBitmapFlipRotator_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
    951 #define IWICBitmapFlipRotator_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
    952 /*** IWICBitmapFlipRotator methods ***/
    953 #define IWICBitmapFlipRotator_Initialize(This,pISource,options) (This)->lpVtbl->Initialize(This,pISource,options)
    954 #else
    955 /*** IUnknown methods ***/
    956 static FORCEINLINE HRESULT IWICBitmapFlipRotator_QueryInterface(IWICBitmapFlipRotator* This,REFIID riid,void **ppvObject) {
    957     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    958 }
    959 static FORCEINLINE ULONG IWICBitmapFlipRotator_AddRef(IWICBitmapFlipRotator* This) {
    960     return This->lpVtbl->AddRef(This);
    961 }
    962 static FORCEINLINE ULONG IWICBitmapFlipRotator_Release(IWICBitmapFlipRotator* This) {
    963     return This->lpVtbl->Release(This);
    964 }
    965 /*** IWICBitmapSource methods ***/
    966 static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetSize(IWICBitmapFlipRotator* This,UINT *puiWidth,UINT *puiHeight) {
    967     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
    968 }
    969 static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetPixelFormat(IWICBitmapFlipRotator* This,WICPixelFormatGUID *pPixelFormat) {
    970     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
    971 }
    972 static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetResolution(IWICBitmapFlipRotator* This,double *pDpiX,double *pDpiY) {
    973     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
    974 }
    975 static FORCEINLINE HRESULT IWICBitmapFlipRotator_CopyPalette(IWICBitmapFlipRotator* This,IWICPalette *pIPalette) {
    976     return This->lpVtbl->CopyPalette(This,pIPalette);
    977 }
    978 static FORCEINLINE HRESULT IWICBitmapFlipRotator_CopyPixels(IWICBitmapFlipRotator* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
    979     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
    980 }
    981 /*** IWICBitmapFlipRotator methods ***/
    982 static FORCEINLINE HRESULT IWICBitmapFlipRotator_Initialize(IWICBitmapFlipRotator* This,IWICBitmapSource *pISource,WICBitmapTransformOptions options) {
    983     return This->lpVtbl->Initialize(This,pISource,options);
    984 }
    985 #endif
    986 #endif
    987 
    988 #endif
    989 
    990 HRESULT STDMETHODCALLTYPE IWICBitmapFlipRotator_Initialize_Proxy(
    991     IWICBitmapFlipRotator* This,
    992     IWICBitmapSource *pISource,
    993     WICBitmapTransformOptions options);
    994 void __RPC_STUB IWICBitmapFlipRotator_Initialize_Stub(
    995     IRpcStubBuffer* This,
    996     IRpcChannelBuffer* pRpcChannelBuffer,
    997     PRPC_MESSAGE pRpcMessage,
    998     DWORD* pdwStubPhase);
    999 
   1000 #endif  /* __IWICBitmapFlipRotator_INTERFACE_DEFINED__ */
   1001 
   1002 /*****************************************************************************
   1003  * IWICBitmap interface
   1004  */
   1005 #ifndef __IWICBitmap_INTERFACE_DEFINED__
   1006 #define __IWICBitmap_INTERFACE_DEFINED__
   1007 
   1008 DEFINE_GUID(IID_IWICBitmap, 0x00000121, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   1009 #if defined(__cplusplus) && !defined(CINTERFACE)
   1010 MIDL_INTERFACE("00000121-a8f2-4877-ba0a-fd2b6645fb94")
   1011 IWICBitmap : public IWICBitmapSource
   1012 {
   1013     virtual HRESULT STDMETHODCALLTYPE Lock(
   1014         const WICRect *prcLock,
   1015         DWORD flags,
   1016         IWICBitmapLock **ppILock) = 0;
   1017 
   1018     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   1019         IWICPalette *pIPalette) = 0;
   1020 
   1021     virtual HRESULT STDMETHODCALLTYPE SetResolution(
   1022         double dpiX,
   1023         double dpiY) = 0;
   1024 
   1025 };
   1026 #ifdef __CRT_UUID_DECL
   1027 __CRT_UUID_DECL(IWICBitmap, 0x00000121, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   1028 #endif
   1029 #else
   1030 typedef struct IWICBitmapVtbl {
   1031     BEGIN_INTERFACE
   1032 
   1033     /*** IUnknown methods ***/
   1034     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1035         IWICBitmap* This,
   1036         REFIID riid,
   1037         void **ppvObject);
   1038 
   1039     ULONG (STDMETHODCALLTYPE *AddRef)(
   1040         IWICBitmap* This);
   1041 
   1042     ULONG (STDMETHODCALLTYPE *Release)(
   1043         IWICBitmap* This);
   1044 
   1045     /*** IWICBitmapSource methods ***/
   1046     HRESULT (STDMETHODCALLTYPE *GetSize)(
   1047         IWICBitmap* This,
   1048         UINT *puiWidth,
   1049         UINT *puiHeight);
   1050 
   1051     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   1052         IWICBitmap* This,
   1053         WICPixelFormatGUID *pPixelFormat);
   1054 
   1055     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   1056         IWICBitmap* This,
   1057         double *pDpiX,
   1058         double *pDpiY);
   1059 
   1060     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   1061         IWICBitmap* This,
   1062         IWICPalette *pIPalette);
   1063 
   1064     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   1065         IWICBitmap* This,
   1066         const WICRect *prc,
   1067         UINT cbStride,
   1068         UINT cbBufferSize,
   1069         BYTE *pbBuffer);
   1070 
   1071     /*** IWICBitmap methods ***/
   1072     HRESULT (STDMETHODCALLTYPE *Lock)(
   1073         IWICBitmap* This,
   1074         const WICRect *prcLock,
   1075         DWORD flags,
   1076         IWICBitmapLock **ppILock);
   1077 
   1078     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   1079         IWICBitmap* This,
   1080         IWICPalette *pIPalette);
   1081 
   1082     HRESULT (STDMETHODCALLTYPE *SetResolution)(
   1083         IWICBitmap* This,
   1084         double dpiX,
   1085         double dpiY);
   1086 
   1087     END_INTERFACE
   1088 } IWICBitmapVtbl;
   1089 interface IWICBitmap {
   1090     CONST_VTBL IWICBitmapVtbl* lpVtbl;
   1091 };
   1092 
   1093 #ifdef COBJMACROS
   1094 #ifndef WIDL_C_INLINE_WRAPPERS
   1095 /*** IUnknown methods ***/
   1096 #define IWICBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1097 #define IWICBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
   1098 #define IWICBitmap_Release(This) (This)->lpVtbl->Release(This)
   1099 /*** IWICBitmapSource methods ***/
   1100 #define IWICBitmap_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   1101 #define IWICBitmap_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   1102 #define IWICBitmap_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   1103 #define IWICBitmap_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   1104 #define IWICBitmap_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   1105 /*** IWICBitmap methods ***/
   1106 #define IWICBitmap_Lock(This,prcLock,flags,ppILock) (This)->lpVtbl->Lock(This,prcLock,flags,ppILock)
   1107 #define IWICBitmap_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
   1108 #define IWICBitmap_SetResolution(This,dpiX,dpiY) (This)->lpVtbl->SetResolution(This,dpiX,dpiY)
   1109 #else
   1110 /*** IUnknown methods ***/
   1111 static FORCEINLINE HRESULT IWICBitmap_QueryInterface(IWICBitmap* This,REFIID riid,void **ppvObject) {
   1112     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1113 }
   1114 static FORCEINLINE ULONG IWICBitmap_AddRef(IWICBitmap* This) {
   1115     return This->lpVtbl->AddRef(This);
   1116 }
   1117 static FORCEINLINE ULONG IWICBitmap_Release(IWICBitmap* This) {
   1118     return This->lpVtbl->Release(This);
   1119 }
   1120 /*** IWICBitmapSource methods ***/
   1121 static FORCEINLINE HRESULT IWICBitmap_GetSize(IWICBitmap* This,UINT *puiWidth,UINT *puiHeight) {
   1122     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   1123 }
   1124 static FORCEINLINE HRESULT IWICBitmap_GetPixelFormat(IWICBitmap* This,WICPixelFormatGUID *pPixelFormat) {
   1125     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   1126 }
   1127 static FORCEINLINE HRESULT IWICBitmap_GetResolution(IWICBitmap* This,double *pDpiX,double *pDpiY) {
   1128     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   1129 }
   1130 static FORCEINLINE HRESULT IWICBitmap_CopyPalette(IWICBitmap* This,IWICPalette *pIPalette) {
   1131     return This->lpVtbl->CopyPalette(This,pIPalette);
   1132 }
   1133 static FORCEINLINE HRESULT IWICBitmap_CopyPixels(IWICBitmap* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   1134     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   1135 }
   1136 /*** IWICBitmap methods ***/
   1137 static FORCEINLINE HRESULT IWICBitmap_Lock(IWICBitmap* This,const WICRect *prcLock,DWORD flags,IWICBitmapLock **ppILock) {
   1138     return This->lpVtbl->Lock(This,prcLock,flags,ppILock);
   1139 }
   1140 static FORCEINLINE HRESULT IWICBitmap_SetPalette(IWICBitmap* This,IWICPalette *pIPalette) {
   1141     return This->lpVtbl->SetPalette(This,pIPalette);
   1142 }
   1143 static FORCEINLINE HRESULT IWICBitmap_SetResolution(IWICBitmap* This,double dpiX,double dpiY) {
   1144     return This->lpVtbl->SetResolution(This,dpiX,dpiY);
   1145 }
   1146 #endif
   1147 #endif
   1148 
   1149 #endif
   1150 
   1151 HRESULT STDMETHODCALLTYPE IWICBitmap_Lock_Proxy(
   1152     IWICBitmap* This,
   1153     const WICRect *prcLock,
   1154     DWORD flags,
   1155     IWICBitmapLock **ppILock);
   1156 void __RPC_STUB IWICBitmap_Lock_Stub(
   1157     IRpcStubBuffer* This,
   1158     IRpcChannelBuffer* pRpcChannelBuffer,
   1159     PRPC_MESSAGE pRpcMessage,
   1160     DWORD* pdwStubPhase);
   1161 HRESULT STDMETHODCALLTYPE IWICBitmap_SetPalette_Proxy(
   1162     IWICBitmap* This,
   1163     IWICPalette *pIPalette);
   1164 void __RPC_STUB IWICBitmap_SetPalette_Stub(
   1165     IRpcStubBuffer* This,
   1166     IRpcChannelBuffer* pRpcChannelBuffer,
   1167     PRPC_MESSAGE pRpcMessage,
   1168     DWORD* pdwStubPhase);
   1169 HRESULT STDMETHODCALLTYPE IWICBitmap_SetResolution_Proxy(
   1170     IWICBitmap* This,
   1171     double dpiX,
   1172     double dpiY);
   1173 void __RPC_STUB IWICBitmap_SetResolution_Stub(
   1174     IRpcStubBuffer* This,
   1175     IRpcChannelBuffer* pRpcChannelBuffer,
   1176     PRPC_MESSAGE pRpcMessage,
   1177     DWORD* pdwStubPhase);
   1178 
   1179 #endif  /* __IWICBitmap_INTERFACE_DEFINED__ */
   1180 
   1181 /*****************************************************************************
   1182  * IWICPalette interface
   1183  */
   1184 #ifndef __IWICPalette_INTERFACE_DEFINED__
   1185 #define __IWICPalette_INTERFACE_DEFINED__
   1186 
   1187 DEFINE_GUID(IID_IWICPalette, 0x00000040, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   1188 #if defined(__cplusplus) && !defined(CINTERFACE)
   1189 MIDL_INTERFACE("00000040-a8f2-4877-ba0a-fd2b6645fb94")
   1190 IWICPalette : public IUnknown
   1191 {
   1192     virtual HRESULT STDMETHODCALLTYPE InitializePredefined(
   1193         WICBitmapPaletteType ePaletteType,
   1194         WINBOOL fAddTransparentColor) = 0;
   1195 
   1196     virtual HRESULT STDMETHODCALLTYPE InitializeCustom(
   1197         WICColor *pColors,
   1198         UINT colorCount) = 0;
   1199 
   1200     virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
   1201         IWICBitmapSource *pISurface,
   1202         UINT colorCount,
   1203         WINBOOL fAddTransparentColor) = 0;
   1204 
   1205     virtual HRESULT STDMETHODCALLTYPE InitializeFromPalette(
   1206         IWICPalette *pIPalette) = 0;
   1207 
   1208     virtual HRESULT STDMETHODCALLTYPE GetType(
   1209         WICBitmapPaletteType *pePaletteType) = 0;
   1210 
   1211     virtual HRESULT STDMETHODCALLTYPE GetColorCount(
   1212         UINT *pcCount) = 0;
   1213 
   1214     virtual HRESULT STDMETHODCALLTYPE GetColors(
   1215         UINT colorCount,
   1216         WICColor *pColors,
   1217         UINT *pcActualColors) = 0;
   1218 
   1219     virtual HRESULT STDMETHODCALLTYPE IsBlackWhite(
   1220         WINBOOL *pfIsBlackWhite) = 0;
   1221 
   1222     virtual HRESULT STDMETHODCALLTYPE IsGrayscale(
   1223         WINBOOL *pfIsGrayscale) = 0;
   1224 
   1225     virtual HRESULT STDMETHODCALLTYPE HasAlpha(
   1226         WINBOOL *pfHasAlpha) = 0;
   1227 
   1228 };
   1229 #ifdef __CRT_UUID_DECL
   1230 __CRT_UUID_DECL(IWICPalette, 0x00000040, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   1231 #endif
   1232 #else
   1233 typedef struct IWICPaletteVtbl {
   1234     BEGIN_INTERFACE
   1235 
   1236     /*** IUnknown methods ***/
   1237     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1238         IWICPalette* This,
   1239         REFIID riid,
   1240         void **ppvObject);
   1241 
   1242     ULONG (STDMETHODCALLTYPE *AddRef)(
   1243         IWICPalette* This);
   1244 
   1245     ULONG (STDMETHODCALLTYPE *Release)(
   1246         IWICPalette* This);
   1247 
   1248     /*** IWICPalette methods ***/
   1249     HRESULT (STDMETHODCALLTYPE *InitializePredefined)(
   1250         IWICPalette* This,
   1251         WICBitmapPaletteType ePaletteType,
   1252         WINBOOL fAddTransparentColor);
   1253 
   1254     HRESULT (STDMETHODCALLTYPE *InitializeCustom)(
   1255         IWICPalette* This,
   1256         WICColor *pColors,
   1257         UINT colorCount);
   1258 
   1259     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
   1260         IWICPalette* This,
   1261         IWICBitmapSource *pISurface,
   1262         UINT colorCount,
   1263         WINBOOL fAddTransparentColor);
   1264 
   1265     HRESULT (STDMETHODCALLTYPE *InitializeFromPalette)(
   1266         IWICPalette* This,
   1267         IWICPalette *pIPalette);
   1268 
   1269     HRESULT (STDMETHODCALLTYPE *GetType)(
   1270         IWICPalette* This,
   1271         WICBitmapPaletteType *pePaletteType);
   1272 
   1273     HRESULT (STDMETHODCALLTYPE *GetColorCount)(
   1274         IWICPalette* This,
   1275         UINT *pcCount);
   1276 
   1277     HRESULT (STDMETHODCALLTYPE *GetColors)(
   1278         IWICPalette* This,
   1279         UINT colorCount,
   1280         WICColor *pColors,
   1281         UINT *pcActualColors);
   1282 
   1283     HRESULT (STDMETHODCALLTYPE *IsBlackWhite)(
   1284         IWICPalette* This,
   1285         WINBOOL *pfIsBlackWhite);
   1286 
   1287     HRESULT (STDMETHODCALLTYPE *IsGrayscale)(
   1288         IWICPalette* This,
   1289         WINBOOL *pfIsGrayscale);
   1290 
   1291     HRESULT (STDMETHODCALLTYPE *HasAlpha)(
   1292         IWICPalette* This,
   1293         WINBOOL *pfHasAlpha);
   1294 
   1295     END_INTERFACE
   1296 } IWICPaletteVtbl;
   1297 interface IWICPalette {
   1298     CONST_VTBL IWICPaletteVtbl* lpVtbl;
   1299 };
   1300 
   1301 #ifdef COBJMACROS
   1302 #ifndef WIDL_C_INLINE_WRAPPERS
   1303 /*** IUnknown methods ***/
   1304 #define IWICPalette_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1305 #define IWICPalette_AddRef(This) (This)->lpVtbl->AddRef(This)
   1306 #define IWICPalette_Release(This) (This)->lpVtbl->Release(This)
   1307 /*** IWICPalette methods ***/
   1308 #define IWICPalette_InitializePredefined(This,ePaletteType,fAddTransparentColor) (This)->lpVtbl->InitializePredefined(This,ePaletteType,fAddTransparentColor)
   1309 #define IWICPalette_InitializeCustom(This,pColors,colorCount) (This)->lpVtbl->InitializeCustom(This,pColors,colorCount)
   1310 #define IWICPalette_InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor) (This)->lpVtbl->InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor)
   1311 #define IWICPalette_InitializeFromPalette(This,pIPalette) (This)->lpVtbl->InitializeFromPalette(This,pIPalette)
   1312 #define IWICPalette_GetType(This,pePaletteType) (This)->lpVtbl->GetType(This,pePaletteType)
   1313 #define IWICPalette_GetColorCount(This,pcCount) (This)->lpVtbl->GetColorCount(This,pcCount)
   1314 #define IWICPalette_GetColors(This,colorCount,pColors,pcActualColors) (This)->lpVtbl->GetColors(This,colorCount,pColors,pcActualColors)
   1315 #define IWICPalette_IsBlackWhite(This,pfIsBlackWhite) (This)->lpVtbl->IsBlackWhite(This,pfIsBlackWhite)
   1316 #define IWICPalette_IsGrayscale(This,pfIsGrayscale) (This)->lpVtbl->IsGrayscale(This,pfIsGrayscale)
   1317 #define IWICPalette_HasAlpha(This,pfHasAlpha) (This)->lpVtbl->HasAlpha(This,pfHasAlpha)
   1318 #else
   1319 /*** IUnknown methods ***/
   1320 static FORCEINLINE HRESULT IWICPalette_QueryInterface(IWICPalette* This,REFIID riid,void **ppvObject) {
   1321     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1322 }
   1323 static FORCEINLINE ULONG IWICPalette_AddRef(IWICPalette* This) {
   1324     return This->lpVtbl->AddRef(This);
   1325 }
   1326 static FORCEINLINE ULONG IWICPalette_Release(IWICPalette* This) {
   1327     return This->lpVtbl->Release(This);
   1328 }
   1329 /*** IWICPalette methods ***/
   1330 static FORCEINLINE HRESULT IWICPalette_InitializePredefined(IWICPalette* This,WICBitmapPaletteType ePaletteType,WINBOOL fAddTransparentColor) {
   1331     return This->lpVtbl->InitializePredefined(This,ePaletteType,fAddTransparentColor);
   1332 }
   1333 static FORCEINLINE HRESULT IWICPalette_InitializeCustom(IWICPalette* This,WICColor *pColors,UINT colorCount) {
   1334     return This->lpVtbl->InitializeCustom(This,pColors,colorCount);
   1335 }
   1336 static FORCEINLINE HRESULT IWICPalette_InitializeFromBitmap(IWICPalette* This,IWICBitmapSource *pISurface,UINT colorCount,WINBOOL fAddTransparentColor) {
   1337     return This->lpVtbl->InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor);
   1338 }
   1339 static FORCEINLINE HRESULT IWICPalette_InitializeFromPalette(IWICPalette* This,IWICPalette *pIPalette) {
   1340     return This->lpVtbl->InitializeFromPalette(This,pIPalette);
   1341 }
   1342 static FORCEINLINE HRESULT IWICPalette_GetType(IWICPalette* This,WICBitmapPaletteType *pePaletteType) {
   1343     return This->lpVtbl->GetType(This,pePaletteType);
   1344 }
   1345 static FORCEINLINE HRESULT IWICPalette_GetColorCount(IWICPalette* This,UINT *pcCount) {
   1346     return This->lpVtbl->GetColorCount(This,pcCount);
   1347 }
   1348 static FORCEINLINE HRESULT IWICPalette_GetColors(IWICPalette* This,UINT colorCount,WICColor *pColors,UINT *pcActualColors) {
   1349     return This->lpVtbl->GetColors(This,colorCount,pColors,pcActualColors);
   1350 }
   1351 static FORCEINLINE HRESULT IWICPalette_IsBlackWhite(IWICPalette* This,WINBOOL *pfIsBlackWhite) {
   1352     return This->lpVtbl->IsBlackWhite(This,pfIsBlackWhite);
   1353 }
   1354 static FORCEINLINE HRESULT IWICPalette_IsGrayscale(IWICPalette* This,WINBOOL *pfIsGrayscale) {
   1355     return This->lpVtbl->IsGrayscale(This,pfIsGrayscale);
   1356 }
   1357 static FORCEINLINE HRESULT IWICPalette_HasAlpha(IWICPalette* This,WINBOOL *pfHasAlpha) {
   1358     return This->lpVtbl->HasAlpha(This,pfHasAlpha);
   1359 }
   1360 #endif
   1361 #endif
   1362 
   1363 #endif
   1364 
   1365 HRESULT STDMETHODCALLTYPE IWICPalette_InitializePredefined_Proxy(
   1366     IWICPalette* This,
   1367     WICBitmapPaletteType ePaletteType,
   1368     WINBOOL fAddTransparentColor);
   1369 void __RPC_STUB IWICPalette_InitializePredefined_Stub(
   1370     IRpcStubBuffer* This,
   1371     IRpcChannelBuffer* pRpcChannelBuffer,
   1372     PRPC_MESSAGE pRpcMessage,
   1373     DWORD* pdwStubPhase);
   1374 HRESULT STDMETHODCALLTYPE IWICPalette_InitializeCustom_Proxy(
   1375     IWICPalette* This,
   1376     WICColor *pColors,
   1377     UINT colorCount);
   1378 void __RPC_STUB IWICPalette_InitializeCustom_Stub(
   1379     IRpcStubBuffer* This,
   1380     IRpcChannelBuffer* pRpcChannelBuffer,
   1381     PRPC_MESSAGE pRpcMessage,
   1382     DWORD* pdwStubPhase);
   1383 HRESULT STDMETHODCALLTYPE IWICPalette_InitializeFromBitmap_Proxy(
   1384     IWICPalette* This,
   1385     IWICBitmapSource *pISurface,
   1386     UINT colorCount,
   1387     WINBOOL fAddTransparentColor);
   1388 void __RPC_STUB IWICPalette_InitializeFromBitmap_Stub(
   1389     IRpcStubBuffer* This,
   1390     IRpcChannelBuffer* pRpcChannelBuffer,
   1391     PRPC_MESSAGE pRpcMessage,
   1392     DWORD* pdwStubPhase);
   1393 HRESULT STDMETHODCALLTYPE IWICPalette_InitializeFromPalette_Proxy(
   1394     IWICPalette* This,
   1395     IWICPalette *pIPalette);
   1396 void __RPC_STUB IWICPalette_InitializeFromPalette_Stub(
   1397     IRpcStubBuffer* This,
   1398     IRpcChannelBuffer* pRpcChannelBuffer,
   1399     PRPC_MESSAGE pRpcMessage,
   1400     DWORD* pdwStubPhase);
   1401 HRESULT STDMETHODCALLTYPE IWICPalette_GetType_Proxy(
   1402     IWICPalette* This,
   1403     WICBitmapPaletteType *pePaletteType);
   1404 void __RPC_STUB IWICPalette_GetType_Stub(
   1405     IRpcStubBuffer* This,
   1406     IRpcChannelBuffer* pRpcChannelBuffer,
   1407     PRPC_MESSAGE pRpcMessage,
   1408     DWORD* pdwStubPhase);
   1409 HRESULT STDMETHODCALLTYPE IWICPalette_GetColorCount_Proxy(
   1410     IWICPalette* This,
   1411     UINT *pcCount);
   1412 void __RPC_STUB IWICPalette_GetColorCount_Stub(
   1413     IRpcStubBuffer* This,
   1414     IRpcChannelBuffer* pRpcChannelBuffer,
   1415     PRPC_MESSAGE pRpcMessage,
   1416     DWORD* pdwStubPhase);
   1417 HRESULT STDMETHODCALLTYPE IWICPalette_GetColors_Proxy(
   1418     IWICPalette* This,
   1419     UINT colorCount,
   1420     WICColor *pColors,
   1421     UINT *pcActualColors);
   1422 void __RPC_STUB IWICPalette_GetColors_Stub(
   1423     IRpcStubBuffer* This,
   1424     IRpcChannelBuffer* pRpcChannelBuffer,
   1425     PRPC_MESSAGE pRpcMessage,
   1426     DWORD* pdwStubPhase);
   1427 HRESULT STDMETHODCALLTYPE IWICPalette_IsBlackWhite_Proxy(
   1428     IWICPalette* This,
   1429     WINBOOL *pfIsBlackWhite);
   1430 void __RPC_STUB IWICPalette_IsBlackWhite_Stub(
   1431     IRpcStubBuffer* This,
   1432     IRpcChannelBuffer* pRpcChannelBuffer,
   1433     PRPC_MESSAGE pRpcMessage,
   1434     DWORD* pdwStubPhase);
   1435 HRESULT STDMETHODCALLTYPE IWICPalette_IsGrayscale_Proxy(
   1436     IWICPalette* This,
   1437     WINBOOL *pfIsGrayscale);
   1438 void __RPC_STUB IWICPalette_IsGrayscale_Stub(
   1439     IRpcStubBuffer* This,
   1440     IRpcChannelBuffer* pRpcChannelBuffer,
   1441     PRPC_MESSAGE pRpcMessage,
   1442     DWORD* pdwStubPhase);
   1443 HRESULT STDMETHODCALLTYPE IWICPalette_HasAlpha_Proxy(
   1444     IWICPalette* This,
   1445     WINBOOL *pfHasAlpha);
   1446 void __RPC_STUB IWICPalette_HasAlpha_Stub(
   1447     IRpcStubBuffer* This,
   1448     IRpcChannelBuffer* pRpcChannelBuffer,
   1449     PRPC_MESSAGE pRpcMessage,
   1450     DWORD* pdwStubPhase);
   1451 
   1452 #endif  /* __IWICPalette_INTERFACE_DEFINED__ */
   1453 
   1454 /*****************************************************************************
   1455  * IWICComponentInfo interface
   1456  */
   1457 #ifndef __IWICComponentInfo_INTERFACE_DEFINED__
   1458 #define __IWICComponentInfo_INTERFACE_DEFINED__
   1459 
   1460 DEFINE_GUID(IID_IWICComponentInfo, 0x23bc3f0a, 0x698b, 0x4357, 0x88,0x6b, 0xf2,0x4d,0x50,0x67,0x13,0x34);
   1461 #if defined(__cplusplus) && !defined(CINTERFACE)
   1462 MIDL_INTERFACE("23bc3f0a-698b-4357-886b-f24d50671334")
   1463 IWICComponentInfo : public IUnknown
   1464 {
   1465     virtual HRESULT STDMETHODCALLTYPE GetComponentType(
   1466         WICComponentType *pType) = 0;
   1467 
   1468     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
   1469         CLSID *pclsid) = 0;
   1470 
   1471     virtual HRESULT STDMETHODCALLTYPE GetSigningStatus(
   1472         DWORD *pStatus) = 0;
   1473 
   1474     virtual HRESULT STDMETHODCALLTYPE GetAuthor(
   1475         UINT cchAuthor,
   1476         WCHAR *wzAuthor,
   1477         UINT *pcchActual) = 0;
   1478 
   1479     virtual HRESULT STDMETHODCALLTYPE GetVendorGUID(
   1480         GUID *pguidVendor) = 0;
   1481 
   1482     virtual HRESULT STDMETHODCALLTYPE GetVersion(
   1483         UINT cchVersion,
   1484         WCHAR *wzVersion,
   1485         UINT *pcchActual) = 0;
   1486 
   1487     virtual HRESULT STDMETHODCALLTYPE GetSpecVersion(
   1488         UINT cchSpecVersion,
   1489         WCHAR *wzSpecVersion,
   1490         UINT *pcchActual) = 0;
   1491 
   1492     virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
   1493         UINT cchFriendlyName,
   1494         WCHAR *wzFriendlyName,
   1495         UINT *pcchActual) = 0;
   1496 
   1497 };
   1498 #ifdef __CRT_UUID_DECL
   1499 __CRT_UUID_DECL(IWICComponentInfo, 0x23bc3f0a, 0x698b, 0x4357, 0x88,0x6b, 0xf2,0x4d,0x50,0x67,0x13,0x34)
   1500 #endif
   1501 #else
   1502 typedef struct IWICComponentInfoVtbl {
   1503     BEGIN_INTERFACE
   1504 
   1505     /*** IUnknown methods ***/
   1506     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1507         IWICComponentInfo* This,
   1508         REFIID riid,
   1509         void **ppvObject);
   1510 
   1511     ULONG (STDMETHODCALLTYPE *AddRef)(
   1512         IWICComponentInfo* This);
   1513 
   1514     ULONG (STDMETHODCALLTYPE *Release)(
   1515         IWICComponentInfo* This);
   1516 
   1517     /*** IWICComponentInfo methods ***/
   1518     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   1519         IWICComponentInfo* This,
   1520         WICComponentType *pType);
   1521 
   1522     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   1523         IWICComponentInfo* This,
   1524         CLSID *pclsid);
   1525 
   1526     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   1527         IWICComponentInfo* This,
   1528         DWORD *pStatus);
   1529 
   1530     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   1531         IWICComponentInfo* This,
   1532         UINT cchAuthor,
   1533         WCHAR *wzAuthor,
   1534         UINT *pcchActual);
   1535 
   1536     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   1537         IWICComponentInfo* This,
   1538         GUID *pguidVendor);
   1539 
   1540     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   1541         IWICComponentInfo* This,
   1542         UINT cchVersion,
   1543         WCHAR *wzVersion,
   1544         UINT *pcchActual);
   1545 
   1546     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   1547         IWICComponentInfo* This,
   1548         UINT cchSpecVersion,
   1549         WCHAR *wzSpecVersion,
   1550         UINT *pcchActual);
   1551 
   1552     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   1553         IWICComponentInfo* This,
   1554         UINT cchFriendlyName,
   1555         WCHAR *wzFriendlyName,
   1556         UINT *pcchActual);
   1557 
   1558     END_INTERFACE
   1559 } IWICComponentInfoVtbl;
   1560 interface IWICComponentInfo {
   1561     CONST_VTBL IWICComponentInfoVtbl* lpVtbl;
   1562 };
   1563 
   1564 #ifdef COBJMACROS
   1565 #ifndef WIDL_C_INLINE_WRAPPERS
   1566 /*** IUnknown methods ***/
   1567 #define IWICComponentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1568 #define IWICComponentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   1569 #define IWICComponentInfo_Release(This) (This)->lpVtbl->Release(This)
   1570 /*** IWICComponentInfo methods ***/
   1571 #define IWICComponentInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   1572 #define IWICComponentInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   1573 #define IWICComponentInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   1574 #define IWICComponentInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   1575 #define IWICComponentInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   1576 #define IWICComponentInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   1577 #define IWICComponentInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   1578 #define IWICComponentInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   1579 #else
   1580 /*** IUnknown methods ***/
   1581 static FORCEINLINE HRESULT IWICComponentInfo_QueryInterface(IWICComponentInfo* This,REFIID riid,void **ppvObject) {
   1582     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1583 }
   1584 static FORCEINLINE ULONG IWICComponentInfo_AddRef(IWICComponentInfo* This) {
   1585     return This->lpVtbl->AddRef(This);
   1586 }
   1587 static FORCEINLINE ULONG IWICComponentInfo_Release(IWICComponentInfo* This) {
   1588     return This->lpVtbl->Release(This);
   1589 }
   1590 /*** IWICComponentInfo methods ***/
   1591 static FORCEINLINE HRESULT IWICComponentInfo_GetComponentType(IWICComponentInfo* This,WICComponentType *pType) {
   1592     return This->lpVtbl->GetComponentType(This,pType);
   1593 }
   1594 static FORCEINLINE HRESULT IWICComponentInfo_GetCLSID(IWICComponentInfo* This,CLSID *pclsid) {
   1595     return This->lpVtbl->GetCLSID(This,pclsid);
   1596 }
   1597 static FORCEINLINE HRESULT IWICComponentInfo_GetSigningStatus(IWICComponentInfo* This,DWORD *pStatus) {
   1598     return This->lpVtbl->GetSigningStatus(This,pStatus);
   1599 }
   1600 static FORCEINLINE HRESULT IWICComponentInfo_GetAuthor(IWICComponentInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   1601     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   1602 }
   1603 static FORCEINLINE HRESULT IWICComponentInfo_GetVendorGUID(IWICComponentInfo* This,GUID *pguidVendor) {
   1604     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   1605 }
   1606 static FORCEINLINE HRESULT IWICComponentInfo_GetVersion(IWICComponentInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   1607     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   1608 }
   1609 static FORCEINLINE HRESULT IWICComponentInfo_GetSpecVersion(IWICComponentInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   1610     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   1611 }
   1612 static FORCEINLINE HRESULT IWICComponentInfo_GetFriendlyName(IWICComponentInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   1613     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   1614 }
   1615 #endif
   1616 #endif
   1617 
   1618 #endif
   1619 
   1620 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetComponentType_Proxy(
   1621     IWICComponentInfo* This,
   1622     WICComponentType *pType);
   1623 void __RPC_STUB IWICComponentInfo_GetComponentType_Stub(
   1624     IRpcStubBuffer* This,
   1625     IRpcChannelBuffer* pRpcChannelBuffer,
   1626     PRPC_MESSAGE pRpcMessage,
   1627     DWORD* pdwStubPhase);
   1628 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetCLSID_Proxy(
   1629     IWICComponentInfo* This,
   1630     CLSID *pclsid);
   1631 void __RPC_STUB IWICComponentInfo_GetCLSID_Stub(
   1632     IRpcStubBuffer* This,
   1633     IRpcChannelBuffer* pRpcChannelBuffer,
   1634     PRPC_MESSAGE pRpcMessage,
   1635     DWORD* pdwStubPhase);
   1636 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetSigningStatus_Proxy(
   1637     IWICComponentInfo* This,
   1638     DWORD *pStatus);
   1639 void __RPC_STUB IWICComponentInfo_GetSigningStatus_Stub(
   1640     IRpcStubBuffer* This,
   1641     IRpcChannelBuffer* pRpcChannelBuffer,
   1642     PRPC_MESSAGE pRpcMessage,
   1643     DWORD* pdwStubPhase);
   1644 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetAuthor_Proxy(
   1645     IWICComponentInfo* This,
   1646     UINT cchAuthor,
   1647     WCHAR *wzAuthor,
   1648     UINT *pcchActual);
   1649 void __RPC_STUB IWICComponentInfo_GetAuthor_Stub(
   1650     IRpcStubBuffer* This,
   1651     IRpcChannelBuffer* pRpcChannelBuffer,
   1652     PRPC_MESSAGE pRpcMessage,
   1653     DWORD* pdwStubPhase);
   1654 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetVendorGUID_Proxy(
   1655     IWICComponentInfo* This,
   1656     GUID *pguidVendor);
   1657 void __RPC_STUB IWICComponentInfo_GetVendorGUID_Stub(
   1658     IRpcStubBuffer* This,
   1659     IRpcChannelBuffer* pRpcChannelBuffer,
   1660     PRPC_MESSAGE pRpcMessage,
   1661     DWORD* pdwStubPhase);
   1662 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetVersion_Proxy(
   1663     IWICComponentInfo* This,
   1664     UINT cchVersion,
   1665     WCHAR *wzVersion,
   1666     UINT *pcchActual);
   1667 void __RPC_STUB IWICComponentInfo_GetVersion_Stub(
   1668     IRpcStubBuffer* This,
   1669     IRpcChannelBuffer* pRpcChannelBuffer,
   1670     PRPC_MESSAGE pRpcMessage,
   1671     DWORD* pdwStubPhase);
   1672 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetSpecVersion_Proxy(
   1673     IWICComponentInfo* This,
   1674     UINT cchSpecVersion,
   1675     WCHAR *wzSpecVersion,
   1676     UINT *pcchActual);
   1677 void __RPC_STUB IWICComponentInfo_GetSpecVersion_Stub(
   1678     IRpcStubBuffer* This,
   1679     IRpcChannelBuffer* pRpcChannelBuffer,
   1680     PRPC_MESSAGE pRpcMessage,
   1681     DWORD* pdwStubPhase);
   1682 HRESULT STDMETHODCALLTYPE IWICComponentInfo_GetFriendlyName_Proxy(
   1683     IWICComponentInfo* This,
   1684     UINT cchFriendlyName,
   1685     WCHAR *wzFriendlyName,
   1686     UINT *pcchActual);
   1687 void __RPC_STUB IWICComponentInfo_GetFriendlyName_Stub(
   1688     IRpcStubBuffer* This,
   1689     IRpcChannelBuffer* pRpcChannelBuffer,
   1690     PRPC_MESSAGE pRpcMessage,
   1691     DWORD* pdwStubPhase);
   1692 
   1693 #endif  /* __IWICComponentInfo_INTERFACE_DEFINED__ */
   1694 
   1695 /*****************************************************************************
   1696  * IWICMetadataQueryReader interface
   1697  */
   1698 #ifndef __IWICMetadataQueryReader_INTERFACE_DEFINED__
   1699 #define __IWICMetadataQueryReader_INTERFACE_DEFINED__
   1700 
   1701 DEFINE_GUID(IID_IWICMetadataQueryReader, 0x30989668, 0xe1c9, 0x4597, 0xb3,0x95, 0x45,0x8e,0xed,0xb8,0x08,0xdf);
   1702 #if defined(__cplusplus) && !defined(CINTERFACE)
   1703 MIDL_INTERFACE("30989668-e1c9-4597-b395-458eedb808df")
   1704 IWICMetadataQueryReader : public IUnknown
   1705 {
   1706     virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
   1707         GUID *pguidContainerFormat) = 0;
   1708 
   1709     virtual HRESULT STDMETHODCALLTYPE GetLocation(
   1710         UINT cchMaxLength,
   1711         WCHAR *wzNamespace,
   1712         UINT *pcchActualLength) = 0;
   1713 
   1714     virtual HRESULT STDMETHODCALLTYPE GetMetadataByName(
   1715         LPCWSTR wzName,
   1716         PROPVARIANT *pvarValue) = 0;
   1717 
   1718     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
   1719         IEnumString **ppIEnumString) = 0;
   1720 
   1721 };
   1722 #ifdef __CRT_UUID_DECL
   1723 __CRT_UUID_DECL(IWICMetadataQueryReader, 0x30989668, 0xe1c9, 0x4597, 0xb3,0x95, 0x45,0x8e,0xed,0xb8,0x08,0xdf)
   1724 #endif
   1725 #else
   1726 typedef struct IWICMetadataQueryReaderVtbl {
   1727     BEGIN_INTERFACE
   1728 
   1729     /*** IUnknown methods ***/
   1730     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1731         IWICMetadataQueryReader* This,
   1732         REFIID riid,
   1733         void **ppvObject);
   1734 
   1735     ULONG (STDMETHODCALLTYPE *AddRef)(
   1736         IWICMetadataQueryReader* This);
   1737 
   1738     ULONG (STDMETHODCALLTYPE *Release)(
   1739         IWICMetadataQueryReader* This);
   1740 
   1741     /*** IWICMetadataQueryReader methods ***/
   1742     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   1743         IWICMetadataQueryReader* This,
   1744         GUID *pguidContainerFormat);
   1745 
   1746     HRESULT (STDMETHODCALLTYPE *GetLocation)(
   1747         IWICMetadataQueryReader* This,
   1748         UINT cchMaxLength,
   1749         WCHAR *wzNamespace,
   1750         UINT *pcchActualLength);
   1751 
   1752     HRESULT (STDMETHODCALLTYPE *GetMetadataByName)(
   1753         IWICMetadataQueryReader* This,
   1754         LPCWSTR wzName,
   1755         PROPVARIANT *pvarValue);
   1756 
   1757     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
   1758         IWICMetadataQueryReader* This,
   1759         IEnumString **ppIEnumString);
   1760 
   1761     END_INTERFACE
   1762 } IWICMetadataQueryReaderVtbl;
   1763 interface IWICMetadataQueryReader {
   1764     CONST_VTBL IWICMetadataQueryReaderVtbl* lpVtbl;
   1765 };
   1766 
   1767 #ifdef COBJMACROS
   1768 #ifndef WIDL_C_INLINE_WRAPPERS
   1769 /*** IUnknown methods ***/
   1770 #define IWICMetadataQueryReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1771 #define IWICMetadataQueryReader_AddRef(This) (This)->lpVtbl->AddRef(This)
   1772 #define IWICMetadataQueryReader_Release(This) (This)->lpVtbl->Release(This)
   1773 /*** IWICMetadataQueryReader methods ***/
   1774 #define IWICMetadataQueryReader_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   1775 #define IWICMetadataQueryReader_GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength) (This)->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength)
   1776 #define IWICMetadataQueryReader_GetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->GetMetadataByName(This,wzName,pvarValue)
   1777 #define IWICMetadataQueryReader_GetEnumerator(This,ppIEnumString) (This)->lpVtbl->GetEnumerator(This,ppIEnumString)
   1778 #else
   1779 /*** IUnknown methods ***/
   1780 static FORCEINLINE HRESULT IWICMetadataQueryReader_QueryInterface(IWICMetadataQueryReader* This,REFIID riid,void **ppvObject) {
   1781     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1782 }
   1783 static FORCEINLINE ULONG IWICMetadataQueryReader_AddRef(IWICMetadataQueryReader* This) {
   1784     return This->lpVtbl->AddRef(This);
   1785 }
   1786 static FORCEINLINE ULONG IWICMetadataQueryReader_Release(IWICMetadataQueryReader* This) {
   1787     return This->lpVtbl->Release(This);
   1788 }
   1789 /*** IWICMetadataQueryReader methods ***/
   1790 static FORCEINLINE HRESULT IWICMetadataQueryReader_GetContainerFormat(IWICMetadataQueryReader* This,GUID *pguidContainerFormat) {
   1791     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   1792 }
   1793 static FORCEINLINE HRESULT IWICMetadataQueryReader_GetLocation(IWICMetadataQueryReader* This,UINT cchMaxLength,WCHAR *wzNamespace,UINT *pcchActualLength) {
   1794     return This->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength);
   1795 }
   1796 static FORCEINLINE HRESULT IWICMetadataQueryReader_GetMetadataByName(IWICMetadataQueryReader* This,LPCWSTR wzName,PROPVARIANT *pvarValue) {
   1797     return This->lpVtbl->GetMetadataByName(This,wzName,pvarValue);
   1798 }
   1799 static FORCEINLINE HRESULT IWICMetadataQueryReader_GetEnumerator(IWICMetadataQueryReader* This,IEnumString **ppIEnumString) {
   1800     return This->lpVtbl->GetEnumerator(This,ppIEnumString);
   1801 }
   1802 #endif
   1803 #endif
   1804 
   1805 #endif
   1806 
   1807 HRESULT STDMETHODCALLTYPE IWICMetadataQueryReader_GetContainerFormat_Proxy(
   1808     IWICMetadataQueryReader* This,
   1809     GUID *pguidContainerFormat);
   1810 void __RPC_STUB IWICMetadataQueryReader_GetContainerFormat_Stub(
   1811     IRpcStubBuffer* This,
   1812     IRpcChannelBuffer* pRpcChannelBuffer,
   1813     PRPC_MESSAGE pRpcMessage,
   1814     DWORD* pdwStubPhase);
   1815 HRESULT STDMETHODCALLTYPE IWICMetadataQueryReader_GetLocation_Proxy(
   1816     IWICMetadataQueryReader* This,
   1817     UINT cchMaxLength,
   1818     WCHAR *wzNamespace,
   1819     UINT *pcchActualLength);
   1820 void __RPC_STUB IWICMetadataQueryReader_GetLocation_Stub(
   1821     IRpcStubBuffer* This,
   1822     IRpcChannelBuffer* pRpcChannelBuffer,
   1823     PRPC_MESSAGE pRpcMessage,
   1824     DWORD* pdwStubPhase);
   1825 HRESULT STDMETHODCALLTYPE IWICMetadataQueryReader_GetMetadataByName_Proxy(
   1826     IWICMetadataQueryReader* This,
   1827     LPCWSTR wzName,
   1828     PROPVARIANT *pvarValue);
   1829 void __RPC_STUB IWICMetadataQueryReader_GetMetadataByName_Stub(
   1830     IRpcStubBuffer* This,
   1831     IRpcChannelBuffer* pRpcChannelBuffer,
   1832     PRPC_MESSAGE pRpcMessage,
   1833     DWORD* pdwStubPhase);
   1834 HRESULT STDMETHODCALLTYPE IWICMetadataQueryReader_GetEnumerator_Proxy(
   1835     IWICMetadataQueryReader* This,
   1836     IEnumString **ppIEnumString);
   1837 void __RPC_STUB IWICMetadataQueryReader_GetEnumerator_Stub(
   1838     IRpcStubBuffer* This,
   1839     IRpcChannelBuffer* pRpcChannelBuffer,
   1840     PRPC_MESSAGE pRpcMessage,
   1841     DWORD* pdwStubPhase);
   1842 
   1843 #endif  /* __IWICMetadataQueryReader_INTERFACE_DEFINED__ */
   1844 
   1845 /*****************************************************************************
   1846  * IWICMetadataQueryWriter interface
   1847  */
   1848 #ifndef __IWICMetadataQueryWriter_INTERFACE_DEFINED__
   1849 #define __IWICMetadataQueryWriter_INTERFACE_DEFINED__
   1850 
   1851 DEFINE_GUID(IID_IWICMetadataQueryWriter, 0xa721791a, 0x0def, 0x4d06, 0xbd,0x91, 0x21,0x18,0xbf,0x1d,0xb1,0x0b);
   1852 #if defined(__cplusplus) && !defined(CINTERFACE)
   1853 MIDL_INTERFACE("a721791a-0def-4d06-bd91-2118bf1db10b")
   1854 IWICMetadataQueryWriter : public IWICMetadataQueryReader
   1855 {
   1856     virtual HRESULT STDMETHODCALLTYPE SetMetadataByName(
   1857         LPCWSTR wzName,
   1858         const PROPVARIANT *pvarValue) = 0;
   1859 
   1860     virtual HRESULT STDMETHODCALLTYPE RemoveMetadataByName(
   1861         LPCWSTR wzName) = 0;
   1862 
   1863 };
   1864 #ifdef __CRT_UUID_DECL
   1865 __CRT_UUID_DECL(IWICMetadataQueryWriter, 0xa721791a, 0x0def, 0x4d06, 0xbd,0x91, 0x21,0x18,0xbf,0x1d,0xb1,0x0b)
   1866 #endif
   1867 #else
   1868 typedef struct IWICMetadataQueryWriterVtbl {
   1869     BEGIN_INTERFACE
   1870 
   1871     /*** IUnknown methods ***/
   1872     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1873         IWICMetadataQueryWriter* This,
   1874         REFIID riid,
   1875         void **ppvObject);
   1876 
   1877     ULONG (STDMETHODCALLTYPE *AddRef)(
   1878         IWICMetadataQueryWriter* This);
   1879 
   1880     ULONG (STDMETHODCALLTYPE *Release)(
   1881         IWICMetadataQueryWriter* This);
   1882 
   1883     /*** IWICMetadataQueryReader methods ***/
   1884     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   1885         IWICMetadataQueryWriter* This,
   1886         GUID *pguidContainerFormat);
   1887 
   1888     HRESULT (STDMETHODCALLTYPE *GetLocation)(
   1889         IWICMetadataQueryWriter* This,
   1890         UINT cchMaxLength,
   1891         WCHAR *wzNamespace,
   1892         UINT *pcchActualLength);
   1893 
   1894     HRESULT (STDMETHODCALLTYPE *GetMetadataByName)(
   1895         IWICMetadataQueryWriter* This,
   1896         LPCWSTR wzName,
   1897         PROPVARIANT *pvarValue);
   1898 
   1899     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
   1900         IWICMetadataQueryWriter* This,
   1901         IEnumString **ppIEnumString);
   1902 
   1903     /*** IWICMetadataQueryWriter methods ***/
   1904     HRESULT (STDMETHODCALLTYPE *SetMetadataByName)(
   1905         IWICMetadataQueryWriter* This,
   1906         LPCWSTR wzName,
   1907         const PROPVARIANT *pvarValue);
   1908 
   1909     HRESULT (STDMETHODCALLTYPE *RemoveMetadataByName)(
   1910         IWICMetadataQueryWriter* This,
   1911         LPCWSTR wzName);
   1912 
   1913     END_INTERFACE
   1914 } IWICMetadataQueryWriterVtbl;
   1915 interface IWICMetadataQueryWriter {
   1916     CONST_VTBL IWICMetadataQueryWriterVtbl* lpVtbl;
   1917 };
   1918 
   1919 #ifdef COBJMACROS
   1920 #ifndef WIDL_C_INLINE_WRAPPERS
   1921 /*** IUnknown methods ***/
   1922 #define IWICMetadataQueryWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1923 #define IWICMetadataQueryWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1924 #define IWICMetadataQueryWriter_Release(This) (This)->lpVtbl->Release(This)
   1925 /*** IWICMetadataQueryReader methods ***/
   1926 #define IWICMetadataQueryWriter_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   1927 #define IWICMetadataQueryWriter_GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength) (This)->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength)
   1928 #define IWICMetadataQueryWriter_GetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->GetMetadataByName(This,wzName,pvarValue)
   1929 #define IWICMetadataQueryWriter_GetEnumerator(This,ppIEnumString) (This)->lpVtbl->GetEnumerator(This,ppIEnumString)
   1930 /*** IWICMetadataQueryWriter methods ***/
   1931 #define IWICMetadataQueryWriter_SetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->SetMetadataByName(This,wzName,pvarValue)
   1932 #define IWICMetadataQueryWriter_RemoveMetadataByName(This,wzName) (This)->lpVtbl->RemoveMetadataByName(This,wzName)
   1933 #else
   1934 /*** IUnknown methods ***/
   1935 static FORCEINLINE HRESULT IWICMetadataQueryWriter_QueryInterface(IWICMetadataQueryWriter* This,REFIID riid,void **ppvObject) {
   1936     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1937 }
   1938 static FORCEINLINE ULONG IWICMetadataQueryWriter_AddRef(IWICMetadataQueryWriter* This) {
   1939     return This->lpVtbl->AddRef(This);
   1940 }
   1941 static FORCEINLINE ULONG IWICMetadataQueryWriter_Release(IWICMetadataQueryWriter* This) {
   1942     return This->lpVtbl->Release(This);
   1943 }
   1944 /*** IWICMetadataQueryReader methods ***/
   1945 static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetContainerFormat(IWICMetadataQueryWriter* This,GUID *pguidContainerFormat) {
   1946     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   1947 }
   1948 static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetLocation(IWICMetadataQueryWriter* This,UINT cchMaxLength,WCHAR *wzNamespace,UINT *pcchActualLength) {
   1949     return This->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength);
   1950 }
   1951 static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName,PROPVARIANT *pvarValue) {
   1952     return This->lpVtbl->GetMetadataByName(This,wzName,pvarValue);
   1953 }
   1954 static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetEnumerator(IWICMetadataQueryWriter* This,IEnumString **ppIEnumString) {
   1955     return This->lpVtbl->GetEnumerator(This,ppIEnumString);
   1956 }
   1957 /*** IWICMetadataQueryWriter methods ***/
   1958 static FORCEINLINE HRESULT IWICMetadataQueryWriter_SetMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName,const PROPVARIANT *pvarValue) {
   1959     return This->lpVtbl->SetMetadataByName(This,wzName,pvarValue);
   1960 }
   1961 static FORCEINLINE HRESULT IWICMetadataQueryWriter_RemoveMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName) {
   1962     return This->lpVtbl->RemoveMetadataByName(This,wzName);
   1963 }
   1964 #endif
   1965 #endif
   1966 
   1967 #endif
   1968 
   1969 HRESULT STDMETHODCALLTYPE IWICMetadataQueryWriter_SetMetadataByName_Proxy(
   1970     IWICMetadataQueryWriter* This,
   1971     LPCWSTR wzName,
   1972     const PROPVARIANT *pvarValue);
   1973 void __RPC_STUB IWICMetadataQueryWriter_SetMetadataByName_Stub(
   1974     IRpcStubBuffer* This,
   1975     IRpcChannelBuffer* pRpcChannelBuffer,
   1976     PRPC_MESSAGE pRpcMessage,
   1977     DWORD* pdwStubPhase);
   1978 HRESULT STDMETHODCALLTYPE IWICMetadataQueryWriter_RemoveMetadataByName_Proxy(
   1979     IWICMetadataQueryWriter* This,
   1980     LPCWSTR wzName);
   1981 void __RPC_STUB IWICMetadataQueryWriter_RemoveMetadataByName_Stub(
   1982     IRpcStubBuffer* This,
   1983     IRpcChannelBuffer* pRpcChannelBuffer,
   1984     PRPC_MESSAGE pRpcMessage,
   1985     DWORD* pdwStubPhase);
   1986 
   1987 #endif  /* __IWICMetadataQueryWriter_INTERFACE_DEFINED__ */
   1988 
   1989 /*****************************************************************************
   1990  * IWICBitmapFrameDecode interface
   1991  */
   1992 #ifndef __IWICBitmapFrameDecode_INTERFACE_DEFINED__
   1993 #define __IWICBitmapFrameDecode_INTERFACE_DEFINED__
   1994 
   1995 DEFINE_GUID(IID_IWICBitmapFrameDecode, 0x3b16811b, 0x6a43, 0x4ec9, 0xa8,0x13, 0x3d,0x93,0x0c,0x13,0xb9,0x40);
   1996 #if defined(__cplusplus) && !defined(CINTERFACE)
   1997 MIDL_INTERFACE("3b16811b-6a43-4ec9-a813-3d930c13b940")
   1998 IWICBitmapFrameDecode : public IWICBitmapSource
   1999 {
   2000     virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryReader(
   2001         IWICMetadataQueryReader **ppIMetadataQueryReader) = 0;
   2002 
   2003     virtual HRESULT STDMETHODCALLTYPE GetColorContexts(
   2004         UINT cCount,
   2005         IWICColorContext **ppIColorContexts,
   2006         UINT *pcActualCount) = 0;
   2007 
   2008     virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
   2009         IWICBitmapSource **ppIThumbnail) = 0;
   2010 
   2011 };
   2012 #ifdef __CRT_UUID_DECL
   2013 __CRT_UUID_DECL(IWICBitmapFrameDecode, 0x3b16811b, 0x6a43, 0x4ec9, 0xa8,0x13, 0x3d,0x93,0x0c,0x13,0xb9,0x40)
   2014 #endif
   2015 #else
   2016 typedef struct IWICBitmapFrameDecodeVtbl {
   2017     BEGIN_INTERFACE
   2018 
   2019     /*** IUnknown methods ***/
   2020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2021         IWICBitmapFrameDecode* This,
   2022         REFIID riid,
   2023         void **ppvObject);
   2024 
   2025     ULONG (STDMETHODCALLTYPE *AddRef)(
   2026         IWICBitmapFrameDecode* This);
   2027 
   2028     ULONG (STDMETHODCALLTYPE *Release)(
   2029         IWICBitmapFrameDecode* This);
   2030 
   2031     /*** IWICBitmapSource methods ***/
   2032     HRESULT (STDMETHODCALLTYPE *GetSize)(
   2033         IWICBitmapFrameDecode* This,
   2034         UINT *puiWidth,
   2035         UINT *puiHeight);
   2036 
   2037     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   2038         IWICBitmapFrameDecode* This,
   2039         WICPixelFormatGUID *pPixelFormat);
   2040 
   2041     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   2042         IWICBitmapFrameDecode* This,
   2043         double *pDpiX,
   2044         double *pDpiY);
   2045 
   2046     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   2047         IWICBitmapFrameDecode* This,
   2048         IWICPalette *pIPalette);
   2049 
   2050     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   2051         IWICBitmapFrameDecode* This,
   2052         const WICRect *prc,
   2053         UINT cbStride,
   2054         UINT cbBufferSize,
   2055         BYTE *pbBuffer);
   2056 
   2057     /*** IWICBitmapFrameDecode methods ***/
   2058     HRESULT (STDMETHODCALLTYPE *GetMetadataQueryReader)(
   2059         IWICBitmapFrameDecode* This,
   2060         IWICMetadataQueryReader **ppIMetadataQueryReader);
   2061 
   2062     HRESULT (STDMETHODCALLTYPE *GetColorContexts)(
   2063         IWICBitmapFrameDecode* This,
   2064         UINT cCount,
   2065         IWICColorContext **ppIColorContexts,
   2066         UINT *pcActualCount);
   2067 
   2068     HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
   2069         IWICBitmapFrameDecode* This,
   2070         IWICBitmapSource **ppIThumbnail);
   2071 
   2072     END_INTERFACE
   2073 } IWICBitmapFrameDecodeVtbl;
   2074 interface IWICBitmapFrameDecode {
   2075     CONST_VTBL IWICBitmapFrameDecodeVtbl* lpVtbl;
   2076 };
   2077 
   2078 #ifdef COBJMACROS
   2079 #ifndef WIDL_C_INLINE_WRAPPERS
   2080 /*** IUnknown methods ***/
   2081 #define IWICBitmapFrameDecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2082 #define IWICBitmapFrameDecode_AddRef(This) (This)->lpVtbl->AddRef(This)
   2083 #define IWICBitmapFrameDecode_Release(This) (This)->lpVtbl->Release(This)
   2084 /*** IWICBitmapSource methods ***/
   2085 #define IWICBitmapFrameDecode_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   2086 #define IWICBitmapFrameDecode_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   2087 #define IWICBitmapFrameDecode_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   2088 #define IWICBitmapFrameDecode_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   2089 #define IWICBitmapFrameDecode_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   2090 /*** IWICBitmapFrameDecode methods ***/
   2091 #define IWICBitmapFrameDecode_GetMetadataQueryReader(This,ppIMetadataQueryReader) (This)->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader)
   2092 #define IWICBitmapFrameDecode_GetColorContexts(This,cCount,ppIColorContexts,pcActualCount) (This)->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount)
   2093 #define IWICBitmapFrameDecode_GetThumbnail(This,ppIThumbnail) (This)->lpVtbl->GetThumbnail(This,ppIThumbnail)
   2094 #else
   2095 /*** IUnknown methods ***/
   2096 static FORCEINLINE HRESULT IWICBitmapFrameDecode_QueryInterface(IWICBitmapFrameDecode* This,REFIID riid,void **ppvObject) {
   2097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2098 }
   2099 static FORCEINLINE ULONG IWICBitmapFrameDecode_AddRef(IWICBitmapFrameDecode* This) {
   2100     return This->lpVtbl->AddRef(This);
   2101 }
   2102 static FORCEINLINE ULONG IWICBitmapFrameDecode_Release(IWICBitmapFrameDecode* This) {
   2103     return This->lpVtbl->Release(This);
   2104 }
   2105 /*** IWICBitmapSource methods ***/
   2106 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetSize(IWICBitmapFrameDecode* This,UINT *puiWidth,UINT *puiHeight) {
   2107     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   2108 }
   2109 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetPixelFormat(IWICBitmapFrameDecode* This,WICPixelFormatGUID *pPixelFormat) {
   2110     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   2111 }
   2112 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetResolution(IWICBitmapFrameDecode* This,double *pDpiX,double *pDpiY) {
   2113     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   2114 }
   2115 static FORCEINLINE HRESULT IWICBitmapFrameDecode_CopyPalette(IWICBitmapFrameDecode* This,IWICPalette *pIPalette) {
   2116     return This->lpVtbl->CopyPalette(This,pIPalette);
   2117 }
   2118 static FORCEINLINE HRESULT IWICBitmapFrameDecode_CopyPixels(IWICBitmapFrameDecode* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   2119     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   2120 }
   2121 /*** IWICBitmapFrameDecode methods ***/
   2122 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetMetadataQueryReader(IWICBitmapFrameDecode* This,IWICMetadataQueryReader **ppIMetadataQueryReader) {
   2123     return This->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader);
   2124 }
   2125 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetColorContexts(IWICBitmapFrameDecode* This,UINT cCount,IWICColorContext **ppIColorContexts,UINT *pcActualCount) {
   2126     return This->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount);
   2127 }
   2128 static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetThumbnail(IWICBitmapFrameDecode* This,IWICBitmapSource **ppIThumbnail) {
   2129     return This->lpVtbl->GetThumbnail(This,ppIThumbnail);
   2130 }
   2131 #endif
   2132 #endif
   2133 
   2134 #endif
   2135 
   2136 HRESULT STDMETHODCALLTYPE IWICBitmapFrameDecode_GetMetadataQueryReader_Proxy(
   2137     IWICBitmapFrameDecode* This,
   2138     IWICMetadataQueryReader **ppIMetadataQueryReader);
   2139 void __RPC_STUB IWICBitmapFrameDecode_GetMetadataQueryReader_Stub(
   2140     IRpcStubBuffer* This,
   2141     IRpcChannelBuffer* pRpcChannelBuffer,
   2142     PRPC_MESSAGE pRpcMessage,
   2143     DWORD* pdwStubPhase);
   2144 HRESULT STDMETHODCALLTYPE IWICBitmapFrameDecode_GetColorContexts_Proxy(
   2145     IWICBitmapFrameDecode* This,
   2146     UINT cCount,
   2147     IWICColorContext **ppIColorContexts,
   2148     UINT *pcActualCount);
   2149 void __RPC_STUB IWICBitmapFrameDecode_GetColorContexts_Stub(
   2150     IRpcStubBuffer* This,
   2151     IRpcChannelBuffer* pRpcChannelBuffer,
   2152     PRPC_MESSAGE pRpcMessage,
   2153     DWORD* pdwStubPhase);
   2154 HRESULT STDMETHODCALLTYPE IWICBitmapFrameDecode_GetThumbnail_Proxy(
   2155     IWICBitmapFrameDecode* This,
   2156     IWICBitmapSource **ppIThumbnail);
   2157 void __RPC_STUB IWICBitmapFrameDecode_GetThumbnail_Stub(
   2158     IRpcStubBuffer* This,
   2159     IRpcChannelBuffer* pRpcChannelBuffer,
   2160     PRPC_MESSAGE pRpcMessage,
   2161     DWORD* pdwStubPhase);
   2162 
   2163 #endif  /* __IWICBitmapFrameDecode_INTERFACE_DEFINED__ */
   2164 
   2165 /*****************************************************************************
   2166  * IWICPixelFormatInfo interface
   2167  */
   2168 #ifndef __IWICPixelFormatInfo_INTERFACE_DEFINED__
   2169 #define __IWICPixelFormatInfo_INTERFACE_DEFINED__
   2170 
   2171 DEFINE_GUID(IID_IWICPixelFormatInfo, 0xe8eda601, 0x3d48, 0x431a, 0xab,0x44, 0x69,0x05,0x9b,0xe8,0x8b,0xbe);
   2172 #if defined(__cplusplus) && !defined(CINTERFACE)
   2173 MIDL_INTERFACE("e8eda601-3d48-431a-ab44-69059be88bbe")
   2174 IWICPixelFormatInfo : public IWICComponentInfo
   2175 {
   2176     virtual HRESULT STDMETHODCALLTYPE GetFormatGUID(
   2177         GUID *pFormat) = 0;
   2178 
   2179     virtual HRESULT STDMETHODCALLTYPE GetColorContext(
   2180         IWICColorContext **ppIColorContext) = 0;
   2181 
   2182     virtual HRESULT STDMETHODCALLTYPE GetBitsPerPixel(
   2183         UINT *puiBitsPerPixel) = 0;
   2184 
   2185     virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
   2186         UINT *puiChannelCount) = 0;
   2187 
   2188     virtual HRESULT STDMETHODCALLTYPE GetChannelMask(
   2189         UINT uiChannelIndex,
   2190         UINT cbMaskBuffer,
   2191         BYTE *pbMaskBuffer,
   2192         UINT *pcbActual) = 0;
   2193 
   2194 };
   2195 #ifdef __CRT_UUID_DECL
   2196 __CRT_UUID_DECL(IWICPixelFormatInfo, 0xe8eda601, 0x3d48, 0x431a, 0xab,0x44, 0x69,0x05,0x9b,0xe8,0x8b,0xbe)
   2197 #endif
   2198 #else
   2199 typedef struct IWICPixelFormatInfoVtbl {
   2200     BEGIN_INTERFACE
   2201 
   2202     /*** IUnknown methods ***/
   2203     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2204         IWICPixelFormatInfo* This,
   2205         REFIID riid,
   2206         void **ppvObject);
   2207 
   2208     ULONG (STDMETHODCALLTYPE *AddRef)(
   2209         IWICPixelFormatInfo* This);
   2210 
   2211     ULONG (STDMETHODCALLTYPE *Release)(
   2212         IWICPixelFormatInfo* This);
   2213 
   2214     /*** IWICComponentInfo methods ***/
   2215     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   2216         IWICPixelFormatInfo* This,
   2217         WICComponentType *pType);
   2218 
   2219     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   2220         IWICPixelFormatInfo* This,
   2221         CLSID *pclsid);
   2222 
   2223     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   2224         IWICPixelFormatInfo* This,
   2225         DWORD *pStatus);
   2226 
   2227     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   2228         IWICPixelFormatInfo* This,
   2229         UINT cchAuthor,
   2230         WCHAR *wzAuthor,
   2231         UINT *pcchActual);
   2232 
   2233     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   2234         IWICPixelFormatInfo* This,
   2235         GUID *pguidVendor);
   2236 
   2237     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   2238         IWICPixelFormatInfo* This,
   2239         UINT cchVersion,
   2240         WCHAR *wzVersion,
   2241         UINT *pcchActual);
   2242 
   2243     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   2244         IWICPixelFormatInfo* This,
   2245         UINT cchSpecVersion,
   2246         WCHAR *wzSpecVersion,
   2247         UINT *pcchActual);
   2248 
   2249     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   2250         IWICPixelFormatInfo* This,
   2251         UINT cchFriendlyName,
   2252         WCHAR *wzFriendlyName,
   2253         UINT *pcchActual);
   2254 
   2255     /*** IWICPixelFormatInfo methods ***/
   2256     HRESULT (STDMETHODCALLTYPE *GetFormatGUID)(
   2257         IWICPixelFormatInfo* This,
   2258         GUID *pFormat);
   2259 
   2260     HRESULT (STDMETHODCALLTYPE *GetColorContext)(
   2261         IWICPixelFormatInfo* This,
   2262         IWICColorContext **ppIColorContext);
   2263 
   2264     HRESULT (STDMETHODCALLTYPE *GetBitsPerPixel)(
   2265         IWICPixelFormatInfo* This,
   2266         UINT *puiBitsPerPixel);
   2267 
   2268     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   2269         IWICPixelFormatInfo* This,
   2270         UINT *puiChannelCount);
   2271 
   2272     HRESULT (STDMETHODCALLTYPE *GetChannelMask)(
   2273         IWICPixelFormatInfo* This,
   2274         UINT uiChannelIndex,
   2275         UINT cbMaskBuffer,
   2276         BYTE *pbMaskBuffer,
   2277         UINT *pcbActual);
   2278 
   2279     END_INTERFACE
   2280 } IWICPixelFormatInfoVtbl;
   2281 interface IWICPixelFormatInfo {
   2282     CONST_VTBL IWICPixelFormatInfoVtbl* lpVtbl;
   2283 };
   2284 
   2285 #ifdef COBJMACROS
   2286 #ifndef WIDL_C_INLINE_WRAPPERS
   2287 /*** IUnknown methods ***/
   2288 #define IWICPixelFormatInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2289 #define IWICPixelFormatInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2290 #define IWICPixelFormatInfo_Release(This) (This)->lpVtbl->Release(This)
   2291 /*** IWICComponentInfo methods ***/
   2292 #define IWICPixelFormatInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   2293 #define IWICPixelFormatInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   2294 #define IWICPixelFormatInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   2295 #define IWICPixelFormatInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   2296 #define IWICPixelFormatInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   2297 #define IWICPixelFormatInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   2298 #define IWICPixelFormatInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   2299 #define IWICPixelFormatInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   2300 /*** IWICPixelFormatInfo methods ***/
   2301 #define IWICPixelFormatInfo_GetFormatGUID(This,pFormat) (This)->lpVtbl->GetFormatGUID(This,pFormat)
   2302 #define IWICPixelFormatInfo_GetColorContext(This,ppIColorContext) (This)->lpVtbl->GetColorContext(This,ppIColorContext)
   2303 #define IWICPixelFormatInfo_GetBitsPerPixel(This,puiBitsPerPixel) (This)->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel)
   2304 #define IWICPixelFormatInfo_GetChannelCount(This,puiChannelCount) (This)->lpVtbl->GetChannelCount(This,puiChannelCount)
   2305 #define IWICPixelFormatInfo_GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual) (This)->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual)
   2306 #else
   2307 /*** IUnknown methods ***/
   2308 static FORCEINLINE HRESULT IWICPixelFormatInfo_QueryInterface(IWICPixelFormatInfo* This,REFIID riid,void **ppvObject) {
   2309     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2310 }
   2311 static FORCEINLINE ULONG IWICPixelFormatInfo_AddRef(IWICPixelFormatInfo* This) {
   2312     return This->lpVtbl->AddRef(This);
   2313 }
   2314 static FORCEINLINE ULONG IWICPixelFormatInfo_Release(IWICPixelFormatInfo* This) {
   2315     return This->lpVtbl->Release(This);
   2316 }
   2317 /*** IWICComponentInfo methods ***/
   2318 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetComponentType(IWICPixelFormatInfo* This,WICComponentType *pType) {
   2319     return This->lpVtbl->GetComponentType(This,pType);
   2320 }
   2321 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetCLSID(IWICPixelFormatInfo* This,CLSID *pclsid) {
   2322     return This->lpVtbl->GetCLSID(This,pclsid);
   2323 }
   2324 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetSigningStatus(IWICPixelFormatInfo* This,DWORD *pStatus) {
   2325     return This->lpVtbl->GetSigningStatus(This,pStatus);
   2326 }
   2327 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetAuthor(IWICPixelFormatInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   2328     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   2329 }
   2330 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetVendorGUID(IWICPixelFormatInfo* This,GUID *pguidVendor) {
   2331     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   2332 }
   2333 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetVersion(IWICPixelFormatInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   2334     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   2335 }
   2336 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetSpecVersion(IWICPixelFormatInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   2337     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   2338 }
   2339 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetFriendlyName(IWICPixelFormatInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   2340     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   2341 }
   2342 /*** IWICPixelFormatInfo methods ***/
   2343 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetFormatGUID(IWICPixelFormatInfo* This,GUID *pFormat) {
   2344     return This->lpVtbl->GetFormatGUID(This,pFormat);
   2345 }
   2346 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetColorContext(IWICPixelFormatInfo* This,IWICColorContext **ppIColorContext) {
   2347     return This->lpVtbl->GetColorContext(This,ppIColorContext);
   2348 }
   2349 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetBitsPerPixel(IWICPixelFormatInfo* This,UINT *puiBitsPerPixel) {
   2350     return This->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel);
   2351 }
   2352 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetChannelCount(IWICPixelFormatInfo* This,UINT *puiChannelCount) {
   2353     return This->lpVtbl->GetChannelCount(This,puiChannelCount);
   2354 }
   2355 static FORCEINLINE HRESULT IWICPixelFormatInfo_GetChannelMask(IWICPixelFormatInfo* This,UINT uiChannelIndex,UINT cbMaskBuffer,BYTE *pbMaskBuffer,UINT *pcbActual) {
   2356     return This->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual);
   2357 }
   2358 #endif
   2359 #endif
   2360 
   2361 #endif
   2362 
   2363 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo_GetFormatGUID_Proxy(
   2364     IWICPixelFormatInfo* This,
   2365     GUID *pFormat);
   2366 void __RPC_STUB IWICPixelFormatInfo_GetFormatGUID_Stub(
   2367     IRpcStubBuffer* This,
   2368     IRpcChannelBuffer* pRpcChannelBuffer,
   2369     PRPC_MESSAGE pRpcMessage,
   2370     DWORD* pdwStubPhase);
   2371 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo_GetColorContext_Proxy(
   2372     IWICPixelFormatInfo* This,
   2373     IWICColorContext **ppIColorContext);
   2374 void __RPC_STUB IWICPixelFormatInfo_GetColorContext_Stub(
   2375     IRpcStubBuffer* This,
   2376     IRpcChannelBuffer* pRpcChannelBuffer,
   2377     PRPC_MESSAGE pRpcMessage,
   2378     DWORD* pdwStubPhase);
   2379 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo_GetBitsPerPixel_Proxy(
   2380     IWICPixelFormatInfo* This,
   2381     UINT *puiBitsPerPixel);
   2382 void __RPC_STUB IWICPixelFormatInfo_GetBitsPerPixel_Stub(
   2383     IRpcStubBuffer* This,
   2384     IRpcChannelBuffer* pRpcChannelBuffer,
   2385     PRPC_MESSAGE pRpcMessage,
   2386     DWORD* pdwStubPhase);
   2387 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo_GetChannelCount_Proxy(
   2388     IWICPixelFormatInfo* This,
   2389     UINT *puiChannelCount);
   2390 void __RPC_STUB IWICPixelFormatInfo_GetChannelCount_Stub(
   2391     IRpcStubBuffer* This,
   2392     IRpcChannelBuffer* pRpcChannelBuffer,
   2393     PRPC_MESSAGE pRpcMessage,
   2394     DWORD* pdwStubPhase);
   2395 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo_GetChannelMask_Proxy(
   2396     IWICPixelFormatInfo* This,
   2397     UINT uiChannelIndex,
   2398     UINT cbMaskBuffer,
   2399     BYTE *pbMaskBuffer,
   2400     UINT *pcbActual);
   2401 void __RPC_STUB IWICPixelFormatInfo_GetChannelMask_Stub(
   2402     IRpcStubBuffer* This,
   2403     IRpcChannelBuffer* pRpcChannelBuffer,
   2404     PRPC_MESSAGE pRpcMessage,
   2405     DWORD* pdwStubPhase);
   2406 
   2407 #endif  /* __IWICPixelFormatInfo_INTERFACE_DEFINED__ */
   2408 
   2409 /*****************************************************************************
   2410  * IWICPixelFormatInfo2 interface
   2411  */
   2412 #ifndef __IWICPixelFormatInfo2_INTERFACE_DEFINED__
   2413 #define __IWICPixelFormatInfo2_INTERFACE_DEFINED__
   2414 
   2415 DEFINE_GUID(IID_IWICPixelFormatInfo2, 0xa9db33a2, 0xaf5f, 0x43c7, 0xb6,0x79, 0x74,0xf5,0x98,0x4b,0x5a,0xa4);
   2416 #if defined(__cplusplus) && !defined(CINTERFACE)
   2417 MIDL_INTERFACE("a9db33a2-af5f-43c7-b679-74f5984b5aa4")
   2418 IWICPixelFormatInfo2 : public IWICPixelFormatInfo
   2419 {
   2420     virtual HRESULT STDMETHODCALLTYPE SupportsTransparency(
   2421         WINBOOL *pfSupportsTransparency) = 0;
   2422 
   2423     virtual HRESULT STDMETHODCALLTYPE GetNumericRepresentation(
   2424         WICPixelFormatNumericRepresentation *pNumericRepresentation) = 0;
   2425 
   2426 };
   2427 #ifdef __CRT_UUID_DECL
   2428 __CRT_UUID_DECL(IWICPixelFormatInfo2, 0xa9db33a2, 0xaf5f, 0x43c7, 0xb6,0x79, 0x74,0xf5,0x98,0x4b,0x5a,0xa4)
   2429 #endif
   2430 #else
   2431 typedef struct IWICPixelFormatInfo2Vtbl {
   2432     BEGIN_INTERFACE
   2433 
   2434     /*** IUnknown methods ***/
   2435     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2436         IWICPixelFormatInfo2* This,
   2437         REFIID riid,
   2438         void **ppvObject);
   2439 
   2440     ULONG (STDMETHODCALLTYPE *AddRef)(
   2441         IWICPixelFormatInfo2* This);
   2442 
   2443     ULONG (STDMETHODCALLTYPE *Release)(
   2444         IWICPixelFormatInfo2* This);
   2445 
   2446     /*** IWICComponentInfo methods ***/
   2447     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   2448         IWICPixelFormatInfo2* This,
   2449         WICComponentType *pType);
   2450 
   2451     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   2452         IWICPixelFormatInfo2* This,
   2453         CLSID *pclsid);
   2454 
   2455     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   2456         IWICPixelFormatInfo2* This,
   2457         DWORD *pStatus);
   2458 
   2459     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   2460         IWICPixelFormatInfo2* This,
   2461         UINT cchAuthor,
   2462         WCHAR *wzAuthor,
   2463         UINT *pcchActual);
   2464 
   2465     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   2466         IWICPixelFormatInfo2* This,
   2467         GUID *pguidVendor);
   2468 
   2469     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   2470         IWICPixelFormatInfo2* This,
   2471         UINT cchVersion,
   2472         WCHAR *wzVersion,
   2473         UINT *pcchActual);
   2474 
   2475     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   2476         IWICPixelFormatInfo2* This,
   2477         UINT cchSpecVersion,
   2478         WCHAR *wzSpecVersion,
   2479         UINT *pcchActual);
   2480 
   2481     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   2482         IWICPixelFormatInfo2* This,
   2483         UINT cchFriendlyName,
   2484         WCHAR *wzFriendlyName,
   2485         UINT *pcchActual);
   2486 
   2487     /*** IWICPixelFormatInfo methods ***/
   2488     HRESULT (STDMETHODCALLTYPE *GetFormatGUID)(
   2489         IWICPixelFormatInfo2* This,
   2490         GUID *pFormat);
   2491 
   2492     HRESULT (STDMETHODCALLTYPE *GetColorContext)(
   2493         IWICPixelFormatInfo2* This,
   2494         IWICColorContext **ppIColorContext);
   2495 
   2496     HRESULT (STDMETHODCALLTYPE *GetBitsPerPixel)(
   2497         IWICPixelFormatInfo2* This,
   2498         UINT *puiBitsPerPixel);
   2499 
   2500     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   2501         IWICPixelFormatInfo2* This,
   2502         UINT *puiChannelCount);
   2503 
   2504     HRESULT (STDMETHODCALLTYPE *GetChannelMask)(
   2505         IWICPixelFormatInfo2* This,
   2506         UINT uiChannelIndex,
   2507         UINT cbMaskBuffer,
   2508         BYTE *pbMaskBuffer,
   2509         UINT *pcbActual);
   2510 
   2511     /*** IWICPixelFormatInfo2 methods ***/
   2512     HRESULT (STDMETHODCALLTYPE *SupportsTransparency)(
   2513         IWICPixelFormatInfo2* This,
   2514         WINBOOL *pfSupportsTransparency);
   2515 
   2516     HRESULT (STDMETHODCALLTYPE *GetNumericRepresentation)(
   2517         IWICPixelFormatInfo2* This,
   2518         WICPixelFormatNumericRepresentation *pNumericRepresentation);
   2519 
   2520     END_INTERFACE
   2521 } IWICPixelFormatInfo2Vtbl;
   2522 interface IWICPixelFormatInfo2 {
   2523     CONST_VTBL IWICPixelFormatInfo2Vtbl* lpVtbl;
   2524 };
   2525 
   2526 #ifdef COBJMACROS
   2527 #ifndef WIDL_C_INLINE_WRAPPERS
   2528 /*** IUnknown methods ***/
   2529 #define IWICPixelFormatInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2530 #define IWICPixelFormatInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2531 #define IWICPixelFormatInfo2_Release(This) (This)->lpVtbl->Release(This)
   2532 /*** IWICComponentInfo methods ***/
   2533 #define IWICPixelFormatInfo2_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   2534 #define IWICPixelFormatInfo2_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   2535 #define IWICPixelFormatInfo2_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   2536 #define IWICPixelFormatInfo2_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   2537 #define IWICPixelFormatInfo2_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   2538 #define IWICPixelFormatInfo2_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   2539 #define IWICPixelFormatInfo2_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   2540 #define IWICPixelFormatInfo2_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   2541 /*** IWICPixelFormatInfo methods ***/
   2542 #define IWICPixelFormatInfo2_GetFormatGUID(This,pFormat) (This)->lpVtbl->GetFormatGUID(This,pFormat)
   2543 #define IWICPixelFormatInfo2_GetColorContext(This,ppIColorContext) (This)->lpVtbl->GetColorContext(This,ppIColorContext)
   2544 #define IWICPixelFormatInfo2_GetBitsPerPixel(This,puiBitsPerPixel) (This)->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel)
   2545 #define IWICPixelFormatInfo2_GetChannelCount(This,puiChannelCount) (This)->lpVtbl->GetChannelCount(This,puiChannelCount)
   2546 #define IWICPixelFormatInfo2_GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual) (This)->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual)
   2547 /*** IWICPixelFormatInfo2 methods ***/
   2548 #define IWICPixelFormatInfo2_SupportsTransparency(This,pfSupportsTransparency) (This)->lpVtbl->SupportsTransparency(This,pfSupportsTransparency)
   2549 #define IWICPixelFormatInfo2_GetNumericRepresentation(This,pNumericRepresentation) (This)->lpVtbl->GetNumericRepresentation(This,pNumericRepresentation)
   2550 #else
   2551 /*** IUnknown methods ***/
   2552 static FORCEINLINE HRESULT IWICPixelFormatInfo2_QueryInterface(IWICPixelFormatInfo2* This,REFIID riid,void **ppvObject) {
   2553     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2554 }
   2555 static FORCEINLINE ULONG IWICPixelFormatInfo2_AddRef(IWICPixelFormatInfo2* This) {
   2556     return This->lpVtbl->AddRef(This);
   2557 }
   2558 static FORCEINLINE ULONG IWICPixelFormatInfo2_Release(IWICPixelFormatInfo2* This) {
   2559     return This->lpVtbl->Release(This);
   2560 }
   2561 /*** IWICComponentInfo methods ***/
   2562 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetComponentType(IWICPixelFormatInfo2* This,WICComponentType *pType) {
   2563     return This->lpVtbl->GetComponentType(This,pType);
   2564 }
   2565 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetCLSID(IWICPixelFormatInfo2* This,CLSID *pclsid) {
   2566     return This->lpVtbl->GetCLSID(This,pclsid);
   2567 }
   2568 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetSigningStatus(IWICPixelFormatInfo2* This,DWORD *pStatus) {
   2569     return This->lpVtbl->GetSigningStatus(This,pStatus);
   2570 }
   2571 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetAuthor(IWICPixelFormatInfo2* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   2572     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   2573 }
   2574 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetVendorGUID(IWICPixelFormatInfo2* This,GUID *pguidVendor) {
   2575     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   2576 }
   2577 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetVersion(IWICPixelFormatInfo2* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   2578     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   2579 }
   2580 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetSpecVersion(IWICPixelFormatInfo2* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   2581     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   2582 }
   2583 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetFriendlyName(IWICPixelFormatInfo2* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   2584     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   2585 }
   2586 /*** IWICPixelFormatInfo methods ***/
   2587 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetFormatGUID(IWICPixelFormatInfo2* This,GUID *pFormat) {
   2588     return This->lpVtbl->GetFormatGUID(This,pFormat);
   2589 }
   2590 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetColorContext(IWICPixelFormatInfo2* This,IWICColorContext **ppIColorContext) {
   2591     return This->lpVtbl->GetColorContext(This,ppIColorContext);
   2592 }
   2593 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetBitsPerPixel(IWICPixelFormatInfo2* This,UINT *puiBitsPerPixel) {
   2594     return This->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel);
   2595 }
   2596 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetChannelCount(IWICPixelFormatInfo2* This,UINT *puiChannelCount) {
   2597     return This->lpVtbl->GetChannelCount(This,puiChannelCount);
   2598 }
   2599 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetChannelMask(IWICPixelFormatInfo2* This,UINT uiChannelIndex,UINT cbMaskBuffer,BYTE *pbMaskBuffer,UINT *pcbActual) {
   2600     return This->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual);
   2601 }
   2602 /*** IWICPixelFormatInfo2 methods ***/
   2603 static FORCEINLINE HRESULT IWICPixelFormatInfo2_SupportsTransparency(IWICPixelFormatInfo2* This,WINBOOL *pfSupportsTransparency) {
   2604     return This->lpVtbl->SupportsTransparency(This,pfSupportsTransparency);
   2605 }
   2606 static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetNumericRepresentation(IWICPixelFormatInfo2* This,WICPixelFormatNumericRepresentation *pNumericRepresentation) {
   2607     return This->lpVtbl->GetNumericRepresentation(This,pNumericRepresentation);
   2608 }
   2609 #endif
   2610 #endif
   2611 
   2612 #endif
   2613 
   2614 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo2_SupportsTransparency_Proxy(
   2615     IWICPixelFormatInfo2* This,
   2616     WINBOOL *pfSupportsTransparency);
   2617 void __RPC_STUB IWICPixelFormatInfo2_SupportsTransparency_Stub(
   2618     IRpcStubBuffer* This,
   2619     IRpcChannelBuffer* pRpcChannelBuffer,
   2620     PRPC_MESSAGE pRpcMessage,
   2621     DWORD* pdwStubPhase);
   2622 HRESULT STDMETHODCALLTYPE IWICPixelFormatInfo2_GetNumericRepresentation_Proxy(
   2623     IWICPixelFormatInfo2* This,
   2624     WICPixelFormatNumericRepresentation *pNumericRepresentation);
   2625 void __RPC_STUB IWICPixelFormatInfo2_GetNumericRepresentation_Stub(
   2626     IRpcStubBuffer* This,
   2627     IRpcChannelBuffer* pRpcChannelBuffer,
   2628     PRPC_MESSAGE pRpcMessage,
   2629     DWORD* pdwStubPhase);
   2630 
   2631 #endif  /* __IWICPixelFormatInfo2_INTERFACE_DEFINED__ */
   2632 
   2633 /*****************************************************************************
   2634  * IWICBitmapCodecInfo interface
   2635  */
   2636 #ifndef __IWICBitmapCodecInfo_INTERFACE_DEFINED__
   2637 #define __IWICBitmapCodecInfo_INTERFACE_DEFINED__
   2638 
   2639 DEFINE_GUID(IID_IWICBitmapCodecInfo, 0xe87a44c4, 0xb76e, 0x4c47, 0x8b,0x09, 0x29,0x8e,0xb1,0x2a,0x27,0x14);
   2640 #if defined(__cplusplus) && !defined(CINTERFACE)
   2641 MIDL_INTERFACE("e87a44c4-b76e-4c47-8b09-298eb12a2714")
   2642 IWICBitmapCodecInfo : public IWICComponentInfo
   2643 {
   2644     virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
   2645         GUID *pguidContainerFormat) = 0;
   2646 
   2647     virtual HRESULT STDMETHODCALLTYPE GetPixelFormats(
   2648         UINT cFormats,
   2649         GUID *pguidPixelFormats,
   2650         UINT *pcActual) = 0;
   2651 
   2652     virtual HRESULT STDMETHODCALLTYPE GetColorManagementVersion(
   2653         UINT cchColorManagementVersion,
   2654         WCHAR *wzColorManagementVersion,
   2655         UINT *pcchActual) = 0;
   2656 
   2657     virtual HRESULT STDMETHODCALLTYPE GetDeviceManufacturer(
   2658         UINT cchDeviceManufacturer,
   2659         WCHAR *wzDeviceManufacturer,
   2660         UINT *pcchActual) = 0;
   2661 
   2662     virtual HRESULT STDMETHODCALLTYPE GetDeviceModels(
   2663         UINT cchDeviceModels,
   2664         WCHAR *wzDeviceModels,
   2665         UINT *pcchActual) = 0;
   2666 
   2667     virtual HRESULT STDMETHODCALLTYPE GetMimeTypes(
   2668         UINT cchMimeTypes,
   2669         WCHAR *wzMimeTypes,
   2670         UINT *pcchActual) = 0;
   2671 
   2672     virtual HRESULT STDMETHODCALLTYPE GetFileExtensions(
   2673         UINT cchFileExtensions,
   2674         WCHAR *wzFileExtensions,
   2675         UINT *pcchActual) = 0;
   2676 
   2677     virtual HRESULT STDMETHODCALLTYPE DoesSupportAnimation(
   2678         WINBOOL *pfSupportAnimation) = 0;
   2679 
   2680     virtual HRESULT STDMETHODCALLTYPE DoesSupportChromaKey(
   2681         WINBOOL *pfSupportChromaKey) = 0;
   2682 
   2683     virtual HRESULT STDMETHODCALLTYPE DoesSupportLossless(
   2684         WINBOOL *pfSupportLossless) = 0;
   2685 
   2686     virtual HRESULT STDMETHODCALLTYPE DoesSupportMultiframe(
   2687         WINBOOL *pfSupportMultiframe) = 0;
   2688 
   2689     virtual HRESULT STDMETHODCALLTYPE MatchesMimeType(
   2690         LPCWSTR wzMimeType,
   2691         WINBOOL *pfMatches) = 0;
   2692 
   2693 };
   2694 #ifdef __CRT_UUID_DECL
   2695 __CRT_UUID_DECL(IWICBitmapCodecInfo, 0xe87a44c4, 0xb76e, 0x4c47, 0x8b,0x09, 0x29,0x8e,0xb1,0x2a,0x27,0x14)
   2696 #endif
   2697 #else
   2698 typedef struct IWICBitmapCodecInfoVtbl {
   2699     BEGIN_INTERFACE
   2700 
   2701     /*** IUnknown methods ***/
   2702     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2703         IWICBitmapCodecInfo* This,
   2704         REFIID riid,
   2705         void **ppvObject);
   2706 
   2707     ULONG (STDMETHODCALLTYPE *AddRef)(
   2708         IWICBitmapCodecInfo* This);
   2709 
   2710     ULONG (STDMETHODCALLTYPE *Release)(
   2711         IWICBitmapCodecInfo* This);
   2712 
   2713     /*** IWICComponentInfo methods ***/
   2714     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   2715         IWICBitmapCodecInfo* This,
   2716         WICComponentType *pType);
   2717 
   2718     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   2719         IWICBitmapCodecInfo* This,
   2720         CLSID *pclsid);
   2721 
   2722     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   2723         IWICBitmapCodecInfo* This,
   2724         DWORD *pStatus);
   2725 
   2726     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   2727         IWICBitmapCodecInfo* This,
   2728         UINT cchAuthor,
   2729         WCHAR *wzAuthor,
   2730         UINT *pcchActual);
   2731 
   2732     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   2733         IWICBitmapCodecInfo* This,
   2734         GUID *pguidVendor);
   2735 
   2736     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   2737         IWICBitmapCodecInfo* This,
   2738         UINT cchVersion,
   2739         WCHAR *wzVersion,
   2740         UINT *pcchActual);
   2741 
   2742     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   2743         IWICBitmapCodecInfo* This,
   2744         UINT cchSpecVersion,
   2745         WCHAR *wzSpecVersion,
   2746         UINT *pcchActual);
   2747 
   2748     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   2749         IWICBitmapCodecInfo* This,
   2750         UINT cchFriendlyName,
   2751         WCHAR *wzFriendlyName,
   2752         UINT *pcchActual);
   2753 
   2754     /*** IWICBitmapCodecInfo methods ***/
   2755     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   2756         IWICBitmapCodecInfo* This,
   2757         GUID *pguidContainerFormat);
   2758 
   2759     HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
   2760         IWICBitmapCodecInfo* This,
   2761         UINT cFormats,
   2762         GUID *pguidPixelFormats,
   2763         UINT *pcActual);
   2764 
   2765     HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
   2766         IWICBitmapCodecInfo* This,
   2767         UINT cchColorManagementVersion,
   2768         WCHAR *wzColorManagementVersion,
   2769         UINT *pcchActual);
   2770 
   2771     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
   2772         IWICBitmapCodecInfo* This,
   2773         UINT cchDeviceManufacturer,
   2774         WCHAR *wzDeviceManufacturer,
   2775         UINT *pcchActual);
   2776 
   2777     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
   2778         IWICBitmapCodecInfo* This,
   2779         UINT cchDeviceModels,
   2780         WCHAR *wzDeviceModels,
   2781         UINT *pcchActual);
   2782 
   2783     HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
   2784         IWICBitmapCodecInfo* This,
   2785         UINT cchMimeTypes,
   2786         WCHAR *wzMimeTypes,
   2787         UINT *pcchActual);
   2788 
   2789     HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
   2790         IWICBitmapCodecInfo* This,
   2791         UINT cchFileExtensions,
   2792         WCHAR *wzFileExtensions,
   2793         UINT *pcchActual);
   2794 
   2795     HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
   2796         IWICBitmapCodecInfo* This,
   2797         WINBOOL *pfSupportAnimation);
   2798 
   2799     HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
   2800         IWICBitmapCodecInfo* This,
   2801         WINBOOL *pfSupportChromaKey);
   2802 
   2803     HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
   2804         IWICBitmapCodecInfo* This,
   2805         WINBOOL *pfSupportLossless);
   2806 
   2807     HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
   2808         IWICBitmapCodecInfo* This,
   2809         WINBOOL *pfSupportMultiframe);
   2810 
   2811     HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
   2812         IWICBitmapCodecInfo* This,
   2813         LPCWSTR wzMimeType,
   2814         WINBOOL *pfMatches);
   2815 
   2816     END_INTERFACE
   2817 } IWICBitmapCodecInfoVtbl;
   2818 interface IWICBitmapCodecInfo {
   2819     CONST_VTBL IWICBitmapCodecInfoVtbl* lpVtbl;
   2820 };
   2821 
   2822 #ifdef COBJMACROS
   2823 #ifndef WIDL_C_INLINE_WRAPPERS
   2824 /*** IUnknown methods ***/
   2825 #define IWICBitmapCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2826 #define IWICBitmapCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2827 #define IWICBitmapCodecInfo_Release(This) (This)->lpVtbl->Release(This)
   2828 /*** IWICComponentInfo methods ***/
   2829 #define IWICBitmapCodecInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   2830 #define IWICBitmapCodecInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   2831 #define IWICBitmapCodecInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   2832 #define IWICBitmapCodecInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   2833 #define IWICBitmapCodecInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   2834 #define IWICBitmapCodecInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   2835 #define IWICBitmapCodecInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   2836 #define IWICBitmapCodecInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   2837 /*** IWICBitmapCodecInfo methods ***/
   2838 #define IWICBitmapCodecInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   2839 #define IWICBitmapCodecInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
   2840 #define IWICBitmapCodecInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
   2841 #define IWICBitmapCodecInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
   2842 #define IWICBitmapCodecInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
   2843 #define IWICBitmapCodecInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
   2844 #define IWICBitmapCodecInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
   2845 #define IWICBitmapCodecInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
   2846 #define IWICBitmapCodecInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
   2847 #define IWICBitmapCodecInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
   2848 #define IWICBitmapCodecInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
   2849 #define IWICBitmapCodecInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
   2850 #else
   2851 /*** IUnknown methods ***/
   2852 static FORCEINLINE HRESULT IWICBitmapCodecInfo_QueryInterface(IWICBitmapCodecInfo* This,REFIID riid,void **ppvObject) {
   2853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2854 }
   2855 static FORCEINLINE ULONG IWICBitmapCodecInfo_AddRef(IWICBitmapCodecInfo* This) {
   2856     return This->lpVtbl->AddRef(This);
   2857 }
   2858 static FORCEINLINE ULONG IWICBitmapCodecInfo_Release(IWICBitmapCodecInfo* This) {
   2859     return This->lpVtbl->Release(This);
   2860 }
   2861 /*** IWICComponentInfo methods ***/
   2862 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetComponentType(IWICBitmapCodecInfo* This,WICComponentType *pType) {
   2863     return This->lpVtbl->GetComponentType(This,pType);
   2864 }
   2865 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetCLSID(IWICBitmapCodecInfo* This,CLSID *pclsid) {
   2866     return This->lpVtbl->GetCLSID(This,pclsid);
   2867 }
   2868 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetSigningStatus(IWICBitmapCodecInfo* This,DWORD *pStatus) {
   2869     return This->lpVtbl->GetSigningStatus(This,pStatus);
   2870 }
   2871 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetAuthor(IWICBitmapCodecInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   2872     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   2873 }
   2874 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetVendorGUID(IWICBitmapCodecInfo* This,GUID *pguidVendor) {
   2875     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   2876 }
   2877 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetVersion(IWICBitmapCodecInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   2878     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   2879 }
   2880 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetSpecVersion(IWICBitmapCodecInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   2881     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   2882 }
   2883 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetFriendlyName(IWICBitmapCodecInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   2884     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   2885 }
   2886 /*** IWICBitmapCodecInfo methods ***/
   2887 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetContainerFormat(IWICBitmapCodecInfo* This,GUID *pguidContainerFormat) {
   2888     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   2889 }
   2890 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetPixelFormats(IWICBitmapCodecInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
   2891     return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
   2892 }
   2893 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetColorManagementVersion(IWICBitmapCodecInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
   2894     return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
   2895 }
   2896 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetDeviceManufacturer(IWICBitmapCodecInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
   2897     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
   2898 }
   2899 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetDeviceModels(IWICBitmapCodecInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
   2900     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
   2901 }
   2902 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetMimeTypes(IWICBitmapCodecInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
   2903     return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
   2904 }
   2905 static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetFileExtensions(IWICBitmapCodecInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
   2906     return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
   2907 }
   2908 static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportAnimation(IWICBitmapCodecInfo* This,WINBOOL *pfSupportAnimation) {
   2909     return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
   2910 }
   2911 static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportChromaKey(IWICBitmapCodecInfo* This,WINBOOL *pfSupportChromaKey) {
   2912     return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
   2913 }
   2914 static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportLossless(IWICBitmapCodecInfo* This,WINBOOL *pfSupportLossless) {
   2915     return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
   2916 }
   2917 static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportMultiframe(IWICBitmapCodecInfo* This,WINBOOL *pfSupportMultiframe) {
   2918     return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
   2919 }
   2920 static FORCEINLINE HRESULT IWICBitmapCodecInfo_MatchesMimeType(IWICBitmapCodecInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
   2921     return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
   2922 }
   2923 #endif
   2924 #endif
   2925 
   2926 #endif
   2927 
   2928 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetContainerFormat_Proxy(
   2929     IWICBitmapCodecInfo* This,
   2930     GUID *pguidContainerFormat);
   2931 void __RPC_STUB IWICBitmapCodecInfo_GetContainerFormat_Stub(
   2932     IRpcStubBuffer* This,
   2933     IRpcChannelBuffer* pRpcChannelBuffer,
   2934     PRPC_MESSAGE pRpcMessage,
   2935     DWORD* pdwStubPhase);
   2936 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetPixelFormats_Proxy(
   2937     IWICBitmapCodecInfo* This,
   2938     UINT cFormats,
   2939     GUID *pguidPixelFormats,
   2940     UINT *pcActual);
   2941 void __RPC_STUB IWICBitmapCodecInfo_GetPixelFormats_Stub(
   2942     IRpcStubBuffer* This,
   2943     IRpcChannelBuffer* pRpcChannelBuffer,
   2944     PRPC_MESSAGE pRpcMessage,
   2945     DWORD* pdwStubPhase);
   2946 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetColorManagementVersion_Proxy(
   2947     IWICBitmapCodecInfo* This,
   2948     UINT cchColorManagementVersion,
   2949     WCHAR *wzColorManagementVersion,
   2950     UINT *pcchActual);
   2951 void __RPC_STUB IWICBitmapCodecInfo_GetColorManagementVersion_Stub(
   2952     IRpcStubBuffer* This,
   2953     IRpcChannelBuffer* pRpcChannelBuffer,
   2954     PRPC_MESSAGE pRpcMessage,
   2955     DWORD* pdwStubPhase);
   2956 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetDeviceManufacturer_Proxy(
   2957     IWICBitmapCodecInfo* This,
   2958     UINT cchDeviceManufacturer,
   2959     WCHAR *wzDeviceManufacturer,
   2960     UINT *pcchActual);
   2961 void __RPC_STUB IWICBitmapCodecInfo_GetDeviceManufacturer_Stub(
   2962     IRpcStubBuffer* This,
   2963     IRpcChannelBuffer* pRpcChannelBuffer,
   2964     PRPC_MESSAGE pRpcMessage,
   2965     DWORD* pdwStubPhase);
   2966 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetDeviceModels_Proxy(
   2967     IWICBitmapCodecInfo* This,
   2968     UINT cchDeviceModels,
   2969     WCHAR *wzDeviceModels,
   2970     UINT *pcchActual);
   2971 void __RPC_STUB IWICBitmapCodecInfo_GetDeviceModels_Stub(
   2972     IRpcStubBuffer* This,
   2973     IRpcChannelBuffer* pRpcChannelBuffer,
   2974     PRPC_MESSAGE pRpcMessage,
   2975     DWORD* pdwStubPhase);
   2976 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetMimeTypes_Proxy(
   2977     IWICBitmapCodecInfo* This,
   2978     UINT cchMimeTypes,
   2979     WCHAR *wzMimeTypes,
   2980     UINT *pcchActual);
   2981 void __RPC_STUB IWICBitmapCodecInfo_GetMimeTypes_Stub(
   2982     IRpcStubBuffer* This,
   2983     IRpcChannelBuffer* pRpcChannelBuffer,
   2984     PRPC_MESSAGE pRpcMessage,
   2985     DWORD* pdwStubPhase);
   2986 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_GetFileExtensions_Proxy(
   2987     IWICBitmapCodecInfo* This,
   2988     UINT cchFileExtensions,
   2989     WCHAR *wzFileExtensions,
   2990     UINT *pcchActual);
   2991 void __RPC_STUB IWICBitmapCodecInfo_GetFileExtensions_Stub(
   2992     IRpcStubBuffer* This,
   2993     IRpcChannelBuffer* pRpcChannelBuffer,
   2994     PRPC_MESSAGE pRpcMessage,
   2995     DWORD* pdwStubPhase);
   2996 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_DoesSupportAnimation_Proxy(
   2997     IWICBitmapCodecInfo* This,
   2998     WINBOOL *pfSupportAnimation);
   2999 void __RPC_STUB IWICBitmapCodecInfo_DoesSupportAnimation_Stub(
   3000     IRpcStubBuffer* This,
   3001     IRpcChannelBuffer* pRpcChannelBuffer,
   3002     PRPC_MESSAGE pRpcMessage,
   3003     DWORD* pdwStubPhase);
   3004 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_DoesSupportChromaKey_Proxy(
   3005     IWICBitmapCodecInfo* This,
   3006     WINBOOL *pfSupportChromaKey);
   3007 void __RPC_STUB IWICBitmapCodecInfo_DoesSupportChromaKey_Stub(
   3008     IRpcStubBuffer* This,
   3009     IRpcChannelBuffer* pRpcChannelBuffer,
   3010     PRPC_MESSAGE pRpcMessage,
   3011     DWORD* pdwStubPhase);
   3012 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_DoesSupportLossless_Proxy(
   3013     IWICBitmapCodecInfo* This,
   3014     WINBOOL *pfSupportLossless);
   3015 void __RPC_STUB IWICBitmapCodecInfo_DoesSupportLossless_Stub(
   3016     IRpcStubBuffer* This,
   3017     IRpcChannelBuffer* pRpcChannelBuffer,
   3018     PRPC_MESSAGE pRpcMessage,
   3019     DWORD* pdwStubPhase);
   3020 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_DoesSupportMultiframe_Proxy(
   3021     IWICBitmapCodecInfo* This,
   3022     WINBOOL *pfSupportMultiframe);
   3023 void __RPC_STUB IWICBitmapCodecInfo_DoesSupportMultiframe_Stub(
   3024     IRpcStubBuffer* This,
   3025     IRpcChannelBuffer* pRpcChannelBuffer,
   3026     PRPC_MESSAGE pRpcMessage,
   3027     DWORD* pdwStubPhase);
   3028 HRESULT STDMETHODCALLTYPE IWICBitmapCodecInfo_MatchesMimeType_Proxy(
   3029     IWICBitmapCodecInfo* This,
   3030     LPCWSTR wzMimeType,
   3031     WINBOOL *pfMatches);
   3032 void __RPC_STUB IWICBitmapCodecInfo_MatchesMimeType_Stub(
   3033     IRpcStubBuffer* This,
   3034     IRpcChannelBuffer* pRpcChannelBuffer,
   3035     PRPC_MESSAGE pRpcMessage,
   3036     DWORD* pdwStubPhase);
   3037 
   3038 #endif  /* __IWICBitmapCodecInfo_INTERFACE_DEFINED__ */
   3039 
   3040 #ifndef __IWICBitmapDecoder_FWD_DEFINED__
   3041 #define __IWICBitmapDecoder_FWD_DEFINED__
   3042 typedef interface IWICBitmapDecoder IWICBitmapDecoder;
   3043 #endif
   3044 
   3045 /*****************************************************************************
   3046  * IWICBitmapDecoderInfo interface
   3047  */
   3048 #ifndef __IWICBitmapDecoderInfo_INTERFACE_DEFINED__
   3049 #define __IWICBitmapDecoderInfo_INTERFACE_DEFINED__
   3050 
   3051 DEFINE_GUID(IID_IWICBitmapDecoderInfo, 0xd8cd007f, 0xd08f, 0x4191, 0x9b,0xfc, 0x23,0x6e,0xa7,0xf0,0xe4,0xb5);
   3052 #if defined(__cplusplus) && !defined(CINTERFACE)
   3053 MIDL_INTERFACE("d8cd007f-d08f-4191-9bfc-236ea7f0e4b5")
   3054 IWICBitmapDecoderInfo : public IWICBitmapCodecInfo
   3055 {
   3056     virtual HRESULT STDMETHODCALLTYPE GetPatterns(
   3057         UINT cbSizePatterns,
   3058         WICBitmapPattern *pPatterns,
   3059         UINT *pcPatterns,
   3060         UINT *pcbPatternsActual) = 0;
   3061 
   3062     virtual HRESULT STDMETHODCALLTYPE MatchesPattern(
   3063         IStream *pIStream,
   3064         WINBOOL *pfMatches) = 0;
   3065 
   3066     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   3067         IWICBitmapDecoder **ppIBitmapDecoder) = 0;
   3068 
   3069 };
   3070 #ifdef __CRT_UUID_DECL
   3071 __CRT_UUID_DECL(IWICBitmapDecoderInfo, 0xd8cd007f, 0xd08f, 0x4191, 0x9b,0xfc, 0x23,0x6e,0xa7,0xf0,0xe4,0xb5)
   3072 #endif
   3073 #else
   3074 typedef struct IWICBitmapDecoderInfoVtbl {
   3075     BEGIN_INTERFACE
   3076 
   3077     /*** IUnknown methods ***/
   3078     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3079         IWICBitmapDecoderInfo* This,
   3080         REFIID riid,
   3081         void **ppvObject);
   3082 
   3083     ULONG (STDMETHODCALLTYPE *AddRef)(
   3084         IWICBitmapDecoderInfo* This);
   3085 
   3086     ULONG (STDMETHODCALLTYPE *Release)(
   3087         IWICBitmapDecoderInfo* This);
   3088 
   3089     /*** IWICComponentInfo methods ***/
   3090     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   3091         IWICBitmapDecoderInfo* This,
   3092         WICComponentType *pType);
   3093 
   3094     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   3095         IWICBitmapDecoderInfo* This,
   3096         CLSID *pclsid);
   3097 
   3098     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   3099         IWICBitmapDecoderInfo* This,
   3100         DWORD *pStatus);
   3101 
   3102     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   3103         IWICBitmapDecoderInfo* This,
   3104         UINT cchAuthor,
   3105         WCHAR *wzAuthor,
   3106         UINT *pcchActual);
   3107 
   3108     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   3109         IWICBitmapDecoderInfo* This,
   3110         GUID *pguidVendor);
   3111 
   3112     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   3113         IWICBitmapDecoderInfo* This,
   3114         UINT cchVersion,
   3115         WCHAR *wzVersion,
   3116         UINT *pcchActual);
   3117 
   3118     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   3119         IWICBitmapDecoderInfo* This,
   3120         UINT cchSpecVersion,
   3121         WCHAR *wzSpecVersion,
   3122         UINT *pcchActual);
   3123 
   3124     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   3125         IWICBitmapDecoderInfo* This,
   3126         UINT cchFriendlyName,
   3127         WCHAR *wzFriendlyName,
   3128         UINT *pcchActual);
   3129 
   3130     /*** IWICBitmapCodecInfo methods ***/
   3131     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   3132         IWICBitmapDecoderInfo* This,
   3133         GUID *pguidContainerFormat);
   3134 
   3135     HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
   3136         IWICBitmapDecoderInfo* This,
   3137         UINT cFormats,
   3138         GUID *pguidPixelFormats,
   3139         UINT *pcActual);
   3140 
   3141     HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
   3142         IWICBitmapDecoderInfo* This,
   3143         UINT cchColorManagementVersion,
   3144         WCHAR *wzColorManagementVersion,
   3145         UINT *pcchActual);
   3146 
   3147     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
   3148         IWICBitmapDecoderInfo* This,
   3149         UINT cchDeviceManufacturer,
   3150         WCHAR *wzDeviceManufacturer,
   3151         UINT *pcchActual);
   3152 
   3153     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
   3154         IWICBitmapDecoderInfo* This,
   3155         UINT cchDeviceModels,
   3156         WCHAR *wzDeviceModels,
   3157         UINT *pcchActual);
   3158 
   3159     HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
   3160         IWICBitmapDecoderInfo* This,
   3161         UINT cchMimeTypes,
   3162         WCHAR *wzMimeTypes,
   3163         UINT *pcchActual);
   3164 
   3165     HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
   3166         IWICBitmapDecoderInfo* This,
   3167         UINT cchFileExtensions,
   3168         WCHAR *wzFileExtensions,
   3169         UINT *pcchActual);
   3170 
   3171     HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
   3172         IWICBitmapDecoderInfo* This,
   3173         WINBOOL *pfSupportAnimation);
   3174 
   3175     HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
   3176         IWICBitmapDecoderInfo* This,
   3177         WINBOOL *pfSupportChromaKey);
   3178 
   3179     HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
   3180         IWICBitmapDecoderInfo* This,
   3181         WINBOOL *pfSupportLossless);
   3182 
   3183     HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
   3184         IWICBitmapDecoderInfo* This,
   3185         WINBOOL *pfSupportMultiframe);
   3186 
   3187     HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
   3188         IWICBitmapDecoderInfo* This,
   3189         LPCWSTR wzMimeType,
   3190         WINBOOL *pfMatches);
   3191 
   3192     /*** IWICBitmapDecoderInfo methods ***/
   3193     HRESULT (STDMETHODCALLTYPE *GetPatterns)(
   3194         IWICBitmapDecoderInfo* This,
   3195         UINT cbSizePatterns,
   3196         WICBitmapPattern *pPatterns,
   3197         UINT *pcPatterns,
   3198         UINT *pcbPatternsActual);
   3199 
   3200     HRESULT (STDMETHODCALLTYPE *MatchesPattern)(
   3201         IWICBitmapDecoderInfo* This,
   3202         IStream *pIStream,
   3203         WINBOOL *pfMatches);
   3204 
   3205     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3206         IWICBitmapDecoderInfo* This,
   3207         IWICBitmapDecoder **ppIBitmapDecoder);
   3208 
   3209     END_INTERFACE
   3210 } IWICBitmapDecoderInfoVtbl;
   3211 interface IWICBitmapDecoderInfo {
   3212     CONST_VTBL IWICBitmapDecoderInfoVtbl* lpVtbl;
   3213 };
   3214 
   3215 #ifdef COBJMACROS
   3216 #ifndef WIDL_C_INLINE_WRAPPERS
   3217 /*** IUnknown methods ***/
   3218 #define IWICBitmapDecoderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3219 #define IWICBitmapDecoderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3220 #define IWICBitmapDecoderInfo_Release(This) (This)->lpVtbl->Release(This)
   3221 /*** IWICComponentInfo methods ***/
   3222 #define IWICBitmapDecoderInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   3223 #define IWICBitmapDecoderInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   3224 #define IWICBitmapDecoderInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   3225 #define IWICBitmapDecoderInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   3226 #define IWICBitmapDecoderInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   3227 #define IWICBitmapDecoderInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   3228 #define IWICBitmapDecoderInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   3229 #define IWICBitmapDecoderInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   3230 /*** IWICBitmapCodecInfo methods ***/
   3231 #define IWICBitmapDecoderInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   3232 #define IWICBitmapDecoderInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
   3233 #define IWICBitmapDecoderInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
   3234 #define IWICBitmapDecoderInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
   3235 #define IWICBitmapDecoderInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
   3236 #define IWICBitmapDecoderInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
   3237 #define IWICBitmapDecoderInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
   3238 #define IWICBitmapDecoderInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
   3239 #define IWICBitmapDecoderInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
   3240 #define IWICBitmapDecoderInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
   3241 #define IWICBitmapDecoderInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
   3242 #define IWICBitmapDecoderInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
   3243 /*** IWICBitmapDecoderInfo methods ***/
   3244 #define IWICBitmapDecoderInfo_GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual) (This)->lpVtbl->GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual)
   3245 #define IWICBitmapDecoderInfo_MatchesPattern(This,pIStream,pfMatches) (This)->lpVtbl->MatchesPattern(This,pIStream,pfMatches)
   3246 #define IWICBitmapDecoderInfo_CreateInstance(This,ppIBitmapDecoder) (This)->lpVtbl->CreateInstance(This,ppIBitmapDecoder)
   3247 #else
   3248 /*** IUnknown methods ***/
   3249 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo* This,REFIID riid,void **ppvObject) {
   3250     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3251 }
   3252 static FORCEINLINE ULONG IWICBitmapDecoderInfo_AddRef(IWICBitmapDecoderInfo* This) {
   3253     return This->lpVtbl->AddRef(This);
   3254 }
   3255 static FORCEINLINE ULONG IWICBitmapDecoderInfo_Release(IWICBitmapDecoderInfo* This) {
   3256     return This->lpVtbl->Release(This);
   3257 }
   3258 /*** IWICComponentInfo methods ***/
   3259 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetComponentType(IWICBitmapDecoderInfo* This,WICComponentType *pType) {
   3260     return This->lpVtbl->GetComponentType(This,pType);
   3261 }
   3262 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetCLSID(IWICBitmapDecoderInfo* This,CLSID *pclsid) {
   3263     return This->lpVtbl->GetCLSID(This,pclsid);
   3264 }
   3265 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetSigningStatus(IWICBitmapDecoderInfo* This,DWORD *pStatus) {
   3266     return This->lpVtbl->GetSigningStatus(This,pStatus);
   3267 }
   3268 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetAuthor(IWICBitmapDecoderInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   3269     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   3270 }
   3271 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetVendorGUID(IWICBitmapDecoderInfo* This,GUID *pguidVendor) {
   3272     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   3273 }
   3274 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetVersion(IWICBitmapDecoderInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   3275     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   3276 }
   3277 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetSpecVersion(IWICBitmapDecoderInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   3278     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   3279 }
   3280 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetFriendlyName(IWICBitmapDecoderInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   3281     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   3282 }
   3283 /*** IWICBitmapCodecInfo methods ***/
   3284 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetContainerFormat(IWICBitmapDecoderInfo* This,GUID *pguidContainerFormat) {
   3285     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   3286 }
   3287 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetPixelFormats(IWICBitmapDecoderInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
   3288     return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
   3289 }
   3290 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetColorManagementVersion(IWICBitmapDecoderInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
   3291     return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
   3292 }
   3293 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetDeviceManufacturer(IWICBitmapDecoderInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
   3294     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
   3295 }
   3296 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetDeviceModels(IWICBitmapDecoderInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
   3297     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
   3298 }
   3299 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetMimeTypes(IWICBitmapDecoderInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
   3300     return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
   3301 }
   3302 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetFileExtensions(IWICBitmapDecoderInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
   3303     return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
   3304 }
   3305 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportAnimation(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportAnimation) {
   3306     return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
   3307 }
   3308 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportChromaKey(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportChromaKey) {
   3309     return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
   3310 }
   3311 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportLossless(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportLossless) {
   3312     return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
   3313 }
   3314 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportMultiframe(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportMultiframe) {
   3315     return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
   3316 }
   3317 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_MatchesMimeType(IWICBitmapDecoderInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
   3318     return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
   3319 }
   3320 /*** IWICBitmapDecoderInfo methods ***/
   3321 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetPatterns(IWICBitmapDecoderInfo* This,UINT cbSizePatterns,WICBitmapPattern *pPatterns,UINT *pcPatterns,UINT *pcbPatternsActual) {
   3322     return This->lpVtbl->GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual);
   3323 }
   3324 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_MatchesPattern(IWICBitmapDecoderInfo* This,IStream *pIStream,WINBOOL *pfMatches) {
   3325     return This->lpVtbl->MatchesPattern(This,pIStream,pfMatches);
   3326 }
   3327 static FORCEINLINE HRESULT IWICBitmapDecoderInfo_CreateInstance(IWICBitmapDecoderInfo* This,IWICBitmapDecoder **ppIBitmapDecoder) {
   3328     return This->lpVtbl->CreateInstance(This,ppIBitmapDecoder);
   3329 }
   3330 #endif
   3331 #endif
   3332 
   3333 #endif
   3334 
   3335 HRESULT STDMETHODCALLTYPE IWICBitmapDecoderInfo_MatchesPattern_Proxy(
   3336     IWICBitmapDecoderInfo* This,
   3337     IStream *pIStream,
   3338     WINBOOL *pfMatches);
   3339 void __RPC_STUB IWICBitmapDecoderInfo_MatchesPattern_Stub(
   3340     IRpcStubBuffer* This,
   3341     IRpcChannelBuffer* pRpcChannelBuffer,
   3342     PRPC_MESSAGE pRpcMessage,
   3343     DWORD* pdwStubPhase);
   3344 HRESULT STDMETHODCALLTYPE IWICBitmapDecoderInfo_CreateInstance_Proxy(
   3345     IWICBitmapDecoderInfo* This,
   3346     IWICBitmapDecoder **ppIBitmapDecoder);
   3347 void __RPC_STUB IWICBitmapDecoderInfo_CreateInstance_Stub(
   3348     IRpcStubBuffer* This,
   3349     IRpcChannelBuffer* pRpcChannelBuffer,
   3350     PRPC_MESSAGE pRpcMessage,
   3351     DWORD* pdwStubPhase);
   3352 
   3353 #endif  /* __IWICBitmapDecoderInfo_INTERFACE_DEFINED__ */
   3354 
   3355 /*****************************************************************************
   3356  * IWICBitmapDecoder interface
   3357  */
   3358 #ifndef __IWICBitmapDecoder_INTERFACE_DEFINED__
   3359 #define __IWICBitmapDecoder_INTERFACE_DEFINED__
   3360 
   3361 DEFINE_GUID(IID_IWICBitmapDecoder, 0x9edde9e7, 0x8dee, 0x47ea, 0x99,0xdf, 0xe6,0xfa,0xf2,0xed,0x44,0xbf);
   3362 #if defined(__cplusplus) && !defined(CINTERFACE)
   3363 MIDL_INTERFACE("9edde9e7-8dee-47ea-99df-e6faf2ed44bf")
   3364 IWICBitmapDecoder : public IUnknown
   3365 {
   3366     virtual HRESULT STDMETHODCALLTYPE QueryCapability(
   3367         IStream *pIStream,
   3368         DWORD *pdwCapability) = 0;
   3369 
   3370     virtual HRESULT STDMETHODCALLTYPE Initialize(
   3371         IStream *pIStream,
   3372         WICDecodeOptions cacheOptions) = 0;
   3373 
   3374     virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
   3375         GUID *pguidContainerFormat) = 0;
   3376 
   3377     virtual HRESULT STDMETHODCALLTYPE GetDecoderInfo(
   3378         IWICBitmapDecoderInfo **ppIDecoderInfo) = 0;
   3379 
   3380     virtual HRESULT STDMETHODCALLTYPE CopyPalette(
   3381         IWICPalette *pIPalette) = 0;
   3382 
   3383     virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryReader(
   3384         IWICMetadataQueryReader **ppIMetadataQueryReader) = 0;
   3385 
   3386     virtual HRESULT STDMETHODCALLTYPE GetPreview(
   3387         IWICBitmapSource **ppIBitmapSource) = 0;
   3388 
   3389     virtual HRESULT STDMETHODCALLTYPE GetColorContexts(
   3390         UINT cCount,
   3391         IWICColorContext **ppIColorContexts,
   3392         UINT *pcActualCount) = 0;
   3393 
   3394     virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
   3395         IWICBitmapSource **ppIThumbnail) = 0;
   3396 
   3397     virtual HRESULT STDMETHODCALLTYPE GetFrameCount(
   3398         UINT *pCount) = 0;
   3399 
   3400     virtual HRESULT STDMETHODCALLTYPE GetFrame(
   3401         UINT index,
   3402         IWICBitmapFrameDecode **ppIBitmapFrame) = 0;
   3403 
   3404 };
   3405 #ifdef __CRT_UUID_DECL
   3406 __CRT_UUID_DECL(IWICBitmapDecoder, 0x9edde9e7, 0x8dee, 0x47ea, 0x99,0xdf, 0xe6,0xfa,0xf2,0xed,0x44,0xbf)
   3407 #endif
   3408 #else
   3409 typedef struct IWICBitmapDecoderVtbl {
   3410     BEGIN_INTERFACE
   3411 
   3412     /*** IUnknown methods ***/
   3413     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3414         IWICBitmapDecoder* This,
   3415         REFIID riid,
   3416         void **ppvObject);
   3417 
   3418     ULONG (STDMETHODCALLTYPE *AddRef)(
   3419         IWICBitmapDecoder* This);
   3420 
   3421     ULONG (STDMETHODCALLTYPE *Release)(
   3422         IWICBitmapDecoder* This);
   3423 
   3424     /*** IWICBitmapDecoder methods ***/
   3425     HRESULT (STDMETHODCALLTYPE *QueryCapability)(
   3426         IWICBitmapDecoder* This,
   3427         IStream *pIStream,
   3428         DWORD *pdwCapability);
   3429 
   3430     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3431         IWICBitmapDecoder* This,
   3432         IStream *pIStream,
   3433         WICDecodeOptions cacheOptions);
   3434 
   3435     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   3436         IWICBitmapDecoder* This,
   3437         GUID *pguidContainerFormat);
   3438 
   3439     HRESULT (STDMETHODCALLTYPE *GetDecoderInfo)(
   3440         IWICBitmapDecoder* This,
   3441         IWICBitmapDecoderInfo **ppIDecoderInfo);
   3442 
   3443     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   3444         IWICBitmapDecoder* This,
   3445         IWICPalette *pIPalette);
   3446 
   3447     HRESULT (STDMETHODCALLTYPE *GetMetadataQueryReader)(
   3448         IWICBitmapDecoder* This,
   3449         IWICMetadataQueryReader **ppIMetadataQueryReader);
   3450 
   3451     HRESULT (STDMETHODCALLTYPE *GetPreview)(
   3452         IWICBitmapDecoder* This,
   3453         IWICBitmapSource **ppIBitmapSource);
   3454 
   3455     HRESULT (STDMETHODCALLTYPE *GetColorContexts)(
   3456         IWICBitmapDecoder* This,
   3457         UINT cCount,
   3458         IWICColorContext **ppIColorContexts,
   3459         UINT *pcActualCount);
   3460 
   3461     HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
   3462         IWICBitmapDecoder* This,
   3463         IWICBitmapSource **ppIThumbnail);
   3464 
   3465     HRESULT (STDMETHODCALLTYPE *GetFrameCount)(
   3466         IWICBitmapDecoder* This,
   3467         UINT *pCount);
   3468 
   3469     HRESULT (STDMETHODCALLTYPE *GetFrame)(
   3470         IWICBitmapDecoder* This,
   3471         UINT index,
   3472         IWICBitmapFrameDecode **ppIBitmapFrame);
   3473 
   3474     END_INTERFACE
   3475 } IWICBitmapDecoderVtbl;
   3476 interface IWICBitmapDecoder {
   3477     CONST_VTBL IWICBitmapDecoderVtbl* lpVtbl;
   3478 };
   3479 
   3480 #ifdef COBJMACROS
   3481 #ifndef WIDL_C_INLINE_WRAPPERS
   3482 /*** IUnknown methods ***/
   3483 #define IWICBitmapDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3484 #define IWICBitmapDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
   3485 #define IWICBitmapDecoder_Release(This) (This)->lpVtbl->Release(This)
   3486 /*** IWICBitmapDecoder methods ***/
   3487 #define IWICBitmapDecoder_QueryCapability(This,pIStream,pdwCapability) (This)->lpVtbl->QueryCapability(This,pIStream,pdwCapability)
   3488 #define IWICBitmapDecoder_Initialize(This,pIStream,cacheOptions) (This)->lpVtbl->Initialize(This,pIStream,cacheOptions)
   3489 #define IWICBitmapDecoder_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   3490 #define IWICBitmapDecoder_GetDecoderInfo(This,ppIDecoderInfo) (This)->lpVtbl->GetDecoderInfo(This,ppIDecoderInfo)
   3491 #define IWICBitmapDecoder_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   3492 #define IWICBitmapDecoder_GetMetadataQueryReader(This,ppIMetadataQueryReader) (This)->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader)
   3493 #define IWICBitmapDecoder_GetPreview(This,ppIBitmapSource) (This)->lpVtbl->GetPreview(This,ppIBitmapSource)
   3494 #define IWICBitmapDecoder_GetColorContexts(This,cCount,ppIColorContexts,pcActualCount) (This)->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount)
   3495 #define IWICBitmapDecoder_GetThumbnail(This,ppIThumbnail) (This)->lpVtbl->GetThumbnail(This,ppIThumbnail)
   3496 #define IWICBitmapDecoder_GetFrameCount(This,pCount) (This)->lpVtbl->GetFrameCount(This,pCount)
   3497 #define IWICBitmapDecoder_GetFrame(This,index,ppIBitmapFrame) (This)->lpVtbl->GetFrame(This,index,ppIBitmapFrame)
   3498 #else
   3499 /*** IUnknown methods ***/
   3500 static FORCEINLINE HRESULT IWICBitmapDecoder_QueryInterface(IWICBitmapDecoder* This,REFIID riid,void **ppvObject) {
   3501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3502 }
   3503 static FORCEINLINE ULONG IWICBitmapDecoder_AddRef(IWICBitmapDecoder* This) {
   3504     return This->lpVtbl->AddRef(This);
   3505 }
   3506 static FORCEINLINE ULONG IWICBitmapDecoder_Release(IWICBitmapDecoder* This) {
   3507     return This->lpVtbl->Release(This);
   3508 }
   3509 /*** IWICBitmapDecoder methods ***/
   3510 static FORCEINLINE HRESULT IWICBitmapDecoder_QueryCapability(IWICBitmapDecoder* This,IStream *pIStream,DWORD *pdwCapability) {
   3511     return This->lpVtbl->QueryCapability(This,pIStream,pdwCapability);
   3512 }
   3513 static FORCEINLINE HRESULT IWICBitmapDecoder_Initialize(IWICBitmapDecoder* This,IStream *pIStream,WICDecodeOptions cacheOptions) {
   3514     return This->lpVtbl->Initialize(This,pIStream,cacheOptions);
   3515 }
   3516 static FORCEINLINE HRESULT IWICBitmapDecoder_GetContainerFormat(IWICBitmapDecoder* This,GUID *pguidContainerFormat) {
   3517     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   3518 }
   3519 static FORCEINLINE HRESULT IWICBitmapDecoder_GetDecoderInfo(IWICBitmapDecoder* This,IWICBitmapDecoderInfo **ppIDecoderInfo) {
   3520     return This->lpVtbl->GetDecoderInfo(This,ppIDecoderInfo);
   3521 }
   3522 static FORCEINLINE HRESULT IWICBitmapDecoder_CopyPalette(IWICBitmapDecoder* This,IWICPalette *pIPalette) {
   3523     return This->lpVtbl->CopyPalette(This,pIPalette);
   3524 }
   3525 static FORCEINLINE HRESULT IWICBitmapDecoder_GetMetadataQueryReader(IWICBitmapDecoder* This,IWICMetadataQueryReader **ppIMetadataQueryReader) {
   3526     return This->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader);
   3527 }
   3528 static FORCEINLINE HRESULT IWICBitmapDecoder_GetPreview(IWICBitmapDecoder* This,IWICBitmapSource **ppIBitmapSource) {
   3529     return This->lpVtbl->GetPreview(This,ppIBitmapSource);
   3530 }
   3531 static FORCEINLINE HRESULT IWICBitmapDecoder_GetColorContexts(IWICBitmapDecoder* This,UINT cCount,IWICColorContext **ppIColorContexts,UINT *pcActualCount) {
   3532     return This->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount);
   3533 }
   3534 static FORCEINLINE HRESULT IWICBitmapDecoder_GetThumbnail(IWICBitmapDecoder* This,IWICBitmapSource **ppIThumbnail) {
   3535     return This->lpVtbl->GetThumbnail(This,ppIThumbnail);
   3536 }
   3537 static FORCEINLINE HRESULT IWICBitmapDecoder_GetFrameCount(IWICBitmapDecoder* This,UINT *pCount) {
   3538     return This->lpVtbl->GetFrameCount(This,pCount);
   3539 }
   3540 static FORCEINLINE HRESULT IWICBitmapDecoder_GetFrame(IWICBitmapDecoder* This,UINT index,IWICBitmapFrameDecode **ppIBitmapFrame) {
   3541     return This->lpVtbl->GetFrame(This,index,ppIBitmapFrame);
   3542 }
   3543 #endif
   3544 #endif
   3545 
   3546 #endif
   3547 
   3548 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_QueryCapability_Proxy(
   3549     IWICBitmapDecoder* This,
   3550     IStream *pIStream,
   3551     DWORD *pdwCapability);
   3552 void __RPC_STUB IWICBitmapDecoder_QueryCapability_Stub(
   3553     IRpcStubBuffer* This,
   3554     IRpcChannelBuffer* pRpcChannelBuffer,
   3555     PRPC_MESSAGE pRpcMessage,
   3556     DWORD* pdwStubPhase);
   3557 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_Initialize_Proxy(
   3558     IWICBitmapDecoder* This,
   3559     IStream *pIStream,
   3560     WICDecodeOptions cacheOptions);
   3561 void __RPC_STUB IWICBitmapDecoder_Initialize_Stub(
   3562     IRpcStubBuffer* This,
   3563     IRpcChannelBuffer* pRpcChannelBuffer,
   3564     PRPC_MESSAGE pRpcMessage,
   3565     DWORD* pdwStubPhase);
   3566 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetContainerFormat_Proxy(
   3567     IWICBitmapDecoder* This,
   3568     GUID *pguidContainerFormat);
   3569 void __RPC_STUB IWICBitmapDecoder_GetContainerFormat_Stub(
   3570     IRpcStubBuffer* This,
   3571     IRpcChannelBuffer* pRpcChannelBuffer,
   3572     PRPC_MESSAGE pRpcMessage,
   3573     DWORD* pdwStubPhase);
   3574 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetDecoderInfo_Proxy(
   3575     IWICBitmapDecoder* This,
   3576     IWICBitmapDecoderInfo **ppIDecoderInfo);
   3577 void __RPC_STUB IWICBitmapDecoder_GetDecoderInfo_Stub(
   3578     IRpcStubBuffer* This,
   3579     IRpcChannelBuffer* pRpcChannelBuffer,
   3580     PRPC_MESSAGE pRpcMessage,
   3581     DWORD* pdwStubPhase);
   3582 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_CopyPalette_Proxy(
   3583     IWICBitmapDecoder* This,
   3584     IWICPalette *pIPalette);
   3585 void __RPC_STUB IWICBitmapDecoder_CopyPalette_Stub(
   3586     IRpcStubBuffer* This,
   3587     IRpcChannelBuffer* pRpcChannelBuffer,
   3588     PRPC_MESSAGE pRpcMessage,
   3589     DWORD* pdwStubPhase);
   3590 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetMetadataQueryReader_Proxy(
   3591     IWICBitmapDecoder* This,
   3592     IWICMetadataQueryReader **ppIMetadataQueryReader);
   3593 void __RPC_STUB IWICBitmapDecoder_GetMetadataQueryReader_Stub(
   3594     IRpcStubBuffer* This,
   3595     IRpcChannelBuffer* pRpcChannelBuffer,
   3596     PRPC_MESSAGE pRpcMessage,
   3597     DWORD* pdwStubPhase);
   3598 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetPreview_Proxy(
   3599     IWICBitmapDecoder* This,
   3600     IWICBitmapSource **ppIBitmapSource);
   3601 void __RPC_STUB IWICBitmapDecoder_GetPreview_Stub(
   3602     IRpcStubBuffer* This,
   3603     IRpcChannelBuffer* pRpcChannelBuffer,
   3604     PRPC_MESSAGE pRpcMessage,
   3605     DWORD* pdwStubPhase);
   3606 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetColorContexts_Proxy(
   3607     IWICBitmapDecoder* This,
   3608     UINT cCount,
   3609     IWICColorContext **ppIColorContexts,
   3610     UINT *pcActualCount);
   3611 void __RPC_STUB IWICBitmapDecoder_GetColorContexts_Stub(
   3612     IRpcStubBuffer* This,
   3613     IRpcChannelBuffer* pRpcChannelBuffer,
   3614     PRPC_MESSAGE pRpcMessage,
   3615     DWORD* pdwStubPhase);
   3616 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetThumbnail_Proxy(
   3617     IWICBitmapDecoder* This,
   3618     IWICBitmapSource **ppIThumbnail);
   3619 void __RPC_STUB IWICBitmapDecoder_GetThumbnail_Stub(
   3620     IRpcStubBuffer* This,
   3621     IRpcChannelBuffer* pRpcChannelBuffer,
   3622     PRPC_MESSAGE pRpcMessage,
   3623     DWORD* pdwStubPhase);
   3624 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetFrameCount_Proxy(
   3625     IWICBitmapDecoder* This,
   3626     UINT *pCount);
   3627 void __RPC_STUB IWICBitmapDecoder_GetFrameCount_Stub(
   3628     IRpcStubBuffer* This,
   3629     IRpcChannelBuffer* pRpcChannelBuffer,
   3630     PRPC_MESSAGE pRpcMessage,
   3631     DWORD* pdwStubPhase);
   3632 HRESULT STDMETHODCALLTYPE IWICBitmapDecoder_GetFrame_Proxy(
   3633     IWICBitmapDecoder* This,
   3634     UINT index,
   3635     IWICBitmapFrameDecode **ppIBitmapFrame);
   3636 void __RPC_STUB IWICBitmapDecoder_GetFrame_Stub(
   3637     IRpcStubBuffer* This,
   3638     IRpcChannelBuffer* pRpcChannelBuffer,
   3639     PRPC_MESSAGE pRpcMessage,
   3640     DWORD* pdwStubPhase);
   3641 
   3642 #endif  /* __IWICBitmapDecoder_INTERFACE_DEFINED__ */
   3643 
   3644 /*****************************************************************************
   3645  * IWICBitmapFrameEncode interface
   3646  */
   3647 #ifndef __IWICBitmapFrameEncode_INTERFACE_DEFINED__
   3648 #define __IWICBitmapFrameEncode_INTERFACE_DEFINED__
   3649 
   3650 DEFINE_GUID(IID_IWICBitmapFrameEncode, 0x00000105, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   3651 #if defined(__cplusplus) && !defined(CINTERFACE)
   3652 MIDL_INTERFACE("00000105-a8f2-4877-ba0a-fd2b6645fb94")
   3653 IWICBitmapFrameEncode : public IUnknown
   3654 {
   3655     virtual HRESULT STDMETHODCALLTYPE Initialize(
   3656         IPropertyBag2 *pIEncoderOptions) = 0;
   3657 
   3658     virtual HRESULT STDMETHODCALLTYPE SetSize(
   3659         UINT uiWidth,
   3660         UINT uiHeight) = 0;
   3661 
   3662     virtual HRESULT STDMETHODCALLTYPE SetResolution(
   3663         double dpiX,
   3664         double dpiY) = 0;
   3665 
   3666     virtual HRESULT STDMETHODCALLTYPE SetPixelFormat(
   3667         WICPixelFormatGUID *pPixelFormat) = 0;
   3668 
   3669     virtual HRESULT STDMETHODCALLTYPE SetColorContexts(
   3670         UINT cCount,
   3671         IWICColorContext **ppIColorContext) = 0;
   3672 
   3673     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   3674         IWICPalette *pIPalette) = 0;
   3675 
   3676     virtual HRESULT STDMETHODCALLTYPE SetThumbnail(
   3677         IWICBitmapSource *pIThumbnail) = 0;
   3678 
   3679     virtual HRESULT STDMETHODCALLTYPE WritePixels(
   3680         UINT lineCount,
   3681         UINT cbStride,
   3682         UINT cbBufferSize,
   3683         BYTE *pbPixels) = 0;
   3684 
   3685     virtual HRESULT STDMETHODCALLTYPE WriteSource(
   3686         IWICBitmapSource *pIBitmapSource,
   3687         WICRect *prc) = 0;
   3688 
   3689     virtual HRESULT STDMETHODCALLTYPE Commit(
   3690         ) = 0;
   3691 
   3692     virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
   3693         IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
   3694 
   3695 };
   3696 #ifdef __CRT_UUID_DECL
   3697 __CRT_UUID_DECL(IWICBitmapFrameEncode, 0x00000105, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   3698 #endif
   3699 #else
   3700 typedef struct IWICBitmapFrameEncodeVtbl {
   3701     BEGIN_INTERFACE
   3702 
   3703     /*** IUnknown methods ***/
   3704     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3705         IWICBitmapFrameEncode* This,
   3706         REFIID riid,
   3707         void **ppvObject);
   3708 
   3709     ULONG (STDMETHODCALLTYPE *AddRef)(
   3710         IWICBitmapFrameEncode* This);
   3711 
   3712     ULONG (STDMETHODCALLTYPE *Release)(
   3713         IWICBitmapFrameEncode* This);
   3714 
   3715     /*** IWICBitmapFrameEncode methods ***/
   3716     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3717         IWICBitmapFrameEncode* This,
   3718         IPropertyBag2 *pIEncoderOptions);
   3719 
   3720     HRESULT (STDMETHODCALLTYPE *SetSize)(
   3721         IWICBitmapFrameEncode* This,
   3722         UINT uiWidth,
   3723         UINT uiHeight);
   3724 
   3725     HRESULT (STDMETHODCALLTYPE *SetResolution)(
   3726         IWICBitmapFrameEncode* This,
   3727         double dpiX,
   3728         double dpiY);
   3729 
   3730     HRESULT (STDMETHODCALLTYPE *SetPixelFormat)(
   3731         IWICBitmapFrameEncode* This,
   3732         WICPixelFormatGUID *pPixelFormat);
   3733 
   3734     HRESULT (STDMETHODCALLTYPE *SetColorContexts)(
   3735         IWICBitmapFrameEncode* This,
   3736         UINT cCount,
   3737         IWICColorContext **ppIColorContext);
   3738 
   3739     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   3740         IWICBitmapFrameEncode* This,
   3741         IWICPalette *pIPalette);
   3742 
   3743     HRESULT (STDMETHODCALLTYPE *SetThumbnail)(
   3744         IWICBitmapFrameEncode* This,
   3745         IWICBitmapSource *pIThumbnail);
   3746 
   3747     HRESULT (STDMETHODCALLTYPE *WritePixels)(
   3748         IWICBitmapFrameEncode* This,
   3749         UINT lineCount,
   3750         UINT cbStride,
   3751         UINT cbBufferSize,
   3752         BYTE *pbPixels);
   3753 
   3754     HRESULT (STDMETHODCALLTYPE *WriteSource)(
   3755         IWICBitmapFrameEncode* This,
   3756         IWICBitmapSource *pIBitmapSource,
   3757         WICRect *prc);
   3758 
   3759     HRESULT (STDMETHODCALLTYPE *Commit)(
   3760         IWICBitmapFrameEncode* This);
   3761 
   3762     HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
   3763         IWICBitmapFrameEncode* This,
   3764         IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   3765 
   3766     END_INTERFACE
   3767 } IWICBitmapFrameEncodeVtbl;
   3768 interface IWICBitmapFrameEncode {
   3769     CONST_VTBL IWICBitmapFrameEncodeVtbl* lpVtbl;
   3770 };
   3771 
   3772 #ifdef COBJMACROS
   3773 #ifndef WIDL_C_INLINE_WRAPPERS
   3774 /*** IUnknown methods ***/
   3775 #define IWICBitmapFrameEncode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3776 #define IWICBitmapFrameEncode_AddRef(This) (This)->lpVtbl->AddRef(This)
   3777 #define IWICBitmapFrameEncode_Release(This) (This)->lpVtbl->Release(This)
   3778 /*** IWICBitmapFrameEncode methods ***/
   3779 #define IWICBitmapFrameEncode_Initialize(This,pIEncoderOptions) (This)->lpVtbl->Initialize(This,pIEncoderOptions)
   3780 #define IWICBitmapFrameEncode_SetSize(This,uiWidth,uiHeight) (This)->lpVtbl->SetSize(This,uiWidth,uiHeight)
   3781 #define IWICBitmapFrameEncode_SetResolution(This,dpiX,dpiY) (This)->lpVtbl->SetResolution(This,dpiX,dpiY)
   3782 #define IWICBitmapFrameEncode_SetPixelFormat(This,pPixelFormat) (This)->lpVtbl->SetPixelFormat(This,pPixelFormat)
   3783 #define IWICBitmapFrameEncode_SetColorContexts(This,cCount,ppIColorContext) (This)->lpVtbl->SetColorContexts(This,cCount,ppIColorContext)
   3784 #define IWICBitmapFrameEncode_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
   3785 #define IWICBitmapFrameEncode_SetThumbnail(This,pIThumbnail) (This)->lpVtbl->SetThumbnail(This,pIThumbnail)
   3786 #define IWICBitmapFrameEncode_WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels) (This)->lpVtbl->WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels)
   3787 #define IWICBitmapFrameEncode_WriteSource(This,pIBitmapSource,prc) (This)->lpVtbl->WriteSource(This,pIBitmapSource,prc)
   3788 #define IWICBitmapFrameEncode_Commit(This) (This)->lpVtbl->Commit(This)
   3789 #define IWICBitmapFrameEncode_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
   3790 #else
   3791 /*** IUnknown methods ***/
   3792 static FORCEINLINE HRESULT IWICBitmapFrameEncode_QueryInterface(IWICBitmapFrameEncode* This,REFIID riid,void **ppvObject) {
   3793     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3794 }
   3795 static FORCEINLINE ULONG IWICBitmapFrameEncode_AddRef(IWICBitmapFrameEncode* This) {
   3796     return This->lpVtbl->AddRef(This);
   3797 }
   3798 static FORCEINLINE ULONG IWICBitmapFrameEncode_Release(IWICBitmapFrameEncode* This) {
   3799     return This->lpVtbl->Release(This);
   3800 }
   3801 /*** IWICBitmapFrameEncode methods ***/
   3802 static FORCEINLINE HRESULT IWICBitmapFrameEncode_Initialize(IWICBitmapFrameEncode* This,IPropertyBag2 *pIEncoderOptions) {
   3803     return This->lpVtbl->Initialize(This,pIEncoderOptions);
   3804 }
   3805 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetSize(IWICBitmapFrameEncode* This,UINT uiWidth,UINT uiHeight) {
   3806     return This->lpVtbl->SetSize(This,uiWidth,uiHeight);
   3807 }
   3808 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetResolution(IWICBitmapFrameEncode* This,double dpiX,double dpiY) {
   3809     return This->lpVtbl->SetResolution(This,dpiX,dpiY);
   3810 }
   3811 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetPixelFormat(IWICBitmapFrameEncode* This,WICPixelFormatGUID *pPixelFormat) {
   3812     return This->lpVtbl->SetPixelFormat(This,pPixelFormat);
   3813 }
   3814 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetColorContexts(IWICBitmapFrameEncode* This,UINT cCount,IWICColorContext **ppIColorContext) {
   3815     return This->lpVtbl->SetColorContexts(This,cCount,ppIColorContext);
   3816 }
   3817 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetPalette(IWICBitmapFrameEncode* This,IWICPalette *pIPalette) {
   3818     return This->lpVtbl->SetPalette(This,pIPalette);
   3819 }
   3820 static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetThumbnail(IWICBitmapFrameEncode* This,IWICBitmapSource *pIThumbnail) {
   3821     return This->lpVtbl->SetThumbnail(This,pIThumbnail);
   3822 }
   3823 static FORCEINLINE HRESULT IWICBitmapFrameEncode_WritePixels(IWICBitmapFrameEncode* This,UINT lineCount,UINT cbStride,UINT cbBufferSize,BYTE *pbPixels) {
   3824     return This->lpVtbl->WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels);
   3825 }
   3826 static FORCEINLINE HRESULT IWICBitmapFrameEncode_WriteSource(IWICBitmapFrameEncode* This,IWICBitmapSource *pIBitmapSource,WICRect *prc) {
   3827     return This->lpVtbl->WriteSource(This,pIBitmapSource,prc);
   3828 }
   3829 static FORCEINLINE HRESULT IWICBitmapFrameEncode_Commit(IWICBitmapFrameEncode* This) {
   3830     return This->lpVtbl->Commit(This);
   3831 }
   3832 static FORCEINLINE HRESULT IWICBitmapFrameEncode_GetMetadataQueryWriter(IWICBitmapFrameEncode* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
   3833     return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
   3834 }
   3835 #endif
   3836 #endif
   3837 
   3838 #endif
   3839 
   3840 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_Initialize_Proxy(
   3841     IWICBitmapFrameEncode* This,
   3842     IPropertyBag2 *pIEncoderOptions);
   3843 void __RPC_STUB IWICBitmapFrameEncode_Initialize_Stub(
   3844     IRpcStubBuffer* This,
   3845     IRpcChannelBuffer* pRpcChannelBuffer,
   3846     PRPC_MESSAGE pRpcMessage,
   3847     DWORD* pdwStubPhase);
   3848 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetSize_Proxy(
   3849     IWICBitmapFrameEncode* This,
   3850     UINT uiWidth,
   3851     UINT uiHeight);
   3852 void __RPC_STUB IWICBitmapFrameEncode_SetSize_Stub(
   3853     IRpcStubBuffer* This,
   3854     IRpcChannelBuffer* pRpcChannelBuffer,
   3855     PRPC_MESSAGE pRpcMessage,
   3856     DWORD* pdwStubPhase);
   3857 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetResolution_Proxy(
   3858     IWICBitmapFrameEncode* This,
   3859     double dpiX,
   3860     double dpiY);
   3861 void __RPC_STUB IWICBitmapFrameEncode_SetResolution_Stub(
   3862     IRpcStubBuffer* This,
   3863     IRpcChannelBuffer* pRpcChannelBuffer,
   3864     PRPC_MESSAGE pRpcMessage,
   3865     DWORD* pdwStubPhase);
   3866 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetPixelFormat_Proxy(
   3867     IWICBitmapFrameEncode* This,
   3868     WICPixelFormatGUID *pPixelFormat);
   3869 void __RPC_STUB IWICBitmapFrameEncode_SetPixelFormat_Stub(
   3870     IRpcStubBuffer* This,
   3871     IRpcChannelBuffer* pRpcChannelBuffer,
   3872     PRPC_MESSAGE pRpcMessage,
   3873     DWORD* pdwStubPhase);
   3874 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetColorContexts_Proxy(
   3875     IWICBitmapFrameEncode* This,
   3876     UINT cCount,
   3877     IWICColorContext **ppIColorContext);
   3878 void __RPC_STUB IWICBitmapFrameEncode_SetColorContexts_Stub(
   3879     IRpcStubBuffer* This,
   3880     IRpcChannelBuffer* pRpcChannelBuffer,
   3881     PRPC_MESSAGE pRpcMessage,
   3882     DWORD* pdwStubPhase);
   3883 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetPalette_Proxy(
   3884     IWICBitmapFrameEncode* This,
   3885     IWICPalette *pIPalette);
   3886 void __RPC_STUB IWICBitmapFrameEncode_SetPalette_Stub(
   3887     IRpcStubBuffer* This,
   3888     IRpcChannelBuffer* pRpcChannelBuffer,
   3889     PRPC_MESSAGE pRpcMessage,
   3890     DWORD* pdwStubPhase);
   3891 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_SetThumbnail_Proxy(
   3892     IWICBitmapFrameEncode* This,
   3893     IWICBitmapSource *pIThumbnail);
   3894 void __RPC_STUB IWICBitmapFrameEncode_SetThumbnail_Stub(
   3895     IRpcStubBuffer* This,
   3896     IRpcChannelBuffer* pRpcChannelBuffer,
   3897     PRPC_MESSAGE pRpcMessage,
   3898     DWORD* pdwStubPhase);
   3899 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_WritePixels_Proxy(
   3900     IWICBitmapFrameEncode* This,
   3901     UINT lineCount,
   3902     UINT cbStride,
   3903     UINT cbBufferSize,
   3904     BYTE *pbPixels);
   3905 void __RPC_STUB IWICBitmapFrameEncode_WritePixels_Stub(
   3906     IRpcStubBuffer* This,
   3907     IRpcChannelBuffer* pRpcChannelBuffer,
   3908     PRPC_MESSAGE pRpcMessage,
   3909     DWORD* pdwStubPhase);
   3910 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_WriteSource_Proxy(
   3911     IWICBitmapFrameEncode* This,
   3912     IWICBitmapSource *pIBitmapSource,
   3913     WICRect *prc);
   3914 void __RPC_STUB IWICBitmapFrameEncode_WriteSource_Stub(
   3915     IRpcStubBuffer* This,
   3916     IRpcChannelBuffer* pRpcChannelBuffer,
   3917     PRPC_MESSAGE pRpcMessage,
   3918     DWORD* pdwStubPhase);
   3919 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_Commit_Proxy(
   3920     IWICBitmapFrameEncode* This);
   3921 void __RPC_STUB IWICBitmapFrameEncode_Commit_Stub(
   3922     IRpcStubBuffer* This,
   3923     IRpcChannelBuffer* pRpcChannelBuffer,
   3924     PRPC_MESSAGE pRpcMessage,
   3925     DWORD* pdwStubPhase);
   3926 HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_GetMetadataQueryWriter_Proxy(
   3927     IWICBitmapFrameEncode* This,
   3928     IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   3929 void __RPC_STUB IWICBitmapFrameEncode_GetMetadataQueryWriter_Stub(
   3930     IRpcStubBuffer* This,
   3931     IRpcChannelBuffer* pRpcChannelBuffer,
   3932     PRPC_MESSAGE pRpcMessage,
   3933     DWORD* pdwStubPhase);
   3934 
   3935 #endif  /* __IWICBitmapFrameEncode_INTERFACE_DEFINED__ */
   3936 
   3937 #ifndef __IWICBitmapEncoder_FWD_DEFINED__
   3938 #define __IWICBitmapEncoder_FWD_DEFINED__
   3939 typedef interface IWICBitmapEncoder IWICBitmapEncoder;
   3940 #endif
   3941 
   3942 /*****************************************************************************
   3943  * IWICBitmapEncoderInfo interface
   3944  */
   3945 #ifndef __IWICBitmapEncoderInfo_INTERFACE_DEFINED__
   3946 #define __IWICBitmapEncoderInfo_INTERFACE_DEFINED__
   3947 
   3948 DEFINE_GUID(IID_IWICBitmapEncoderInfo, 0x94c9b4ee, 0xa09f, 0x4f92, 0x8a,0x1e, 0x4a,0x9b,0xce,0x7e,0x76,0xfb);
   3949 #if defined(__cplusplus) && !defined(CINTERFACE)
   3950 MIDL_INTERFACE("94c9b4ee-a09f-4f92-8a1e-4a9bce7e76fb")
   3951 IWICBitmapEncoderInfo : public IWICBitmapCodecInfo
   3952 {
   3953     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   3954         IWICBitmapEncoder **ppIBitmapEncoder) = 0;
   3955 
   3956 };
   3957 #ifdef __CRT_UUID_DECL
   3958 __CRT_UUID_DECL(IWICBitmapEncoderInfo, 0x94c9b4ee, 0xa09f, 0x4f92, 0x8a,0x1e, 0x4a,0x9b,0xce,0x7e,0x76,0xfb)
   3959 #endif
   3960 #else
   3961 typedef struct IWICBitmapEncoderInfoVtbl {
   3962     BEGIN_INTERFACE
   3963 
   3964     /*** IUnknown methods ***/
   3965     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3966         IWICBitmapEncoderInfo* This,
   3967         REFIID riid,
   3968         void **ppvObject);
   3969 
   3970     ULONG (STDMETHODCALLTYPE *AddRef)(
   3971         IWICBitmapEncoderInfo* This);
   3972 
   3973     ULONG (STDMETHODCALLTYPE *Release)(
   3974         IWICBitmapEncoderInfo* This);
   3975 
   3976     /*** IWICComponentInfo methods ***/
   3977     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   3978         IWICBitmapEncoderInfo* This,
   3979         WICComponentType *pType);
   3980 
   3981     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   3982         IWICBitmapEncoderInfo* This,
   3983         CLSID *pclsid);
   3984 
   3985     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   3986         IWICBitmapEncoderInfo* This,
   3987         DWORD *pStatus);
   3988 
   3989     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   3990         IWICBitmapEncoderInfo* This,
   3991         UINT cchAuthor,
   3992         WCHAR *wzAuthor,
   3993         UINT *pcchActual);
   3994 
   3995     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   3996         IWICBitmapEncoderInfo* This,
   3997         GUID *pguidVendor);
   3998 
   3999     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   4000         IWICBitmapEncoderInfo* This,
   4001         UINT cchVersion,
   4002         WCHAR *wzVersion,
   4003         UINT *pcchActual);
   4004 
   4005     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   4006         IWICBitmapEncoderInfo* This,
   4007         UINT cchSpecVersion,
   4008         WCHAR *wzSpecVersion,
   4009         UINT *pcchActual);
   4010 
   4011     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   4012         IWICBitmapEncoderInfo* This,
   4013         UINT cchFriendlyName,
   4014         WCHAR *wzFriendlyName,
   4015         UINT *pcchActual);
   4016 
   4017     /*** IWICBitmapCodecInfo methods ***/
   4018     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   4019         IWICBitmapEncoderInfo* This,
   4020         GUID *pguidContainerFormat);
   4021 
   4022     HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
   4023         IWICBitmapEncoderInfo* This,
   4024         UINT cFormats,
   4025         GUID *pguidPixelFormats,
   4026         UINT *pcActual);
   4027 
   4028     HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
   4029         IWICBitmapEncoderInfo* This,
   4030         UINT cchColorManagementVersion,
   4031         WCHAR *wzColorManagementVersion,
   4032         UINT *pcchActual);
   4033 
   4034     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
   4035         IWICBitmapEncoderInfo* This,
   4036         UINT cchDeviceManufacturer,
   4037         WCHAR *wzDeviceManufacturer,
   4038         UINT *pcchActual);
   4039 
   4040     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
   4041         IWICBitmapEncoderInfo* This,
   4042         UINT cchDeviceModels,
   4043         WCHAR *wzDeviceModels,
   4044         UINT *pcchActual);
   4045 
   4046     HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
   4047         IWICBitmapEncoderInfo* This,
   4048         UINT cchMimeTypes,
   4049         WCHAR *wzMimeTypes,
   4050         UINT *pcchActual);
   4051 
   4052     HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
   4053         IWICBitmapEncoderInfo* This,
   4054         UINT cchFileExtensions,
   4055         WCHAR *wzFileExtensions,
   4056         UINT *pcchActual);
   4057 
   4058     HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
   4059         IWICBitmapEncoderInfo* This,
   4060         WINBOOL *pfSupportAnimation);
   4061 
   4062     HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
   4063         IWICBitmapEncoderInfo* This,
   4064         WINBOOL *pfSupportChromaKey);
   4065 
   4066     HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
   4067         IWICBitmapEncoderInfo* This,
   4068         WINBOOL *pfSupportLossless);
   4069 
   4070     HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
   4071         IWICBitmapEncoderInfo* This,
   4072         WINBOOL *pfSupportMultiframe);
   4073 
   4074     HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
   4075         IWICBitmapEncoderInfo* This,
   4076         LPCWSTR wzMimeType,
   4077         WINBOOL *pfMatches);
   4078 
   4079     /*** IWICBitmapEncoderInfo methods ***/
   4080     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   4081         IWICBitmapEncoderInfo* This,
   4082         IWICBitmapEncoder **ppIBitmapEncoder);
   4083 
   4084     END_INTERFACE
   4085 } IWICBitmapEncoderInfoVtbl;
   4086 interface IWICBitmapEncoderInfo {
   4087     CONST_VTBL IWICBitmapEncoderInfoVtbl* lpVtbl;
   4088 };
   4089 
   4090 #ifdef COBJMACROS
   4091 #ifndef WIDL_C_INLINE_WRAPPERS
   4092 /*** IUnknown methods ***/
   4093 #define IWICBitmapEncoderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4094 #define IWICBitmapEncoderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4095 #define IWICBitmapEncoderInfo_Release(This) (This)->lpVtbl->Release(This)
   4096 /*** IWICComponentInfo methods ***/
   4097 #define IWICBitmapEncoderInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   4098 #define IWICBitmapEncoderInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   4099 #define IWICBitmapEncoderInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   4100 #define IWICBitmapEncoderInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   4101 #define IWICBitmapEncoderInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   4102 #define IWICBitmapEncoderInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   4103 #define IWICBitmapEncoderInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   4104 #define IWICBitmapEncoderInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   4105 /*** IWICBitmapCodecInfo methods ***/
   4106 #define IWICBitmapEncoderInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   4107 #define IWICBitmapEncoderInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
   4108 #define IWICBitmapEncoderInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
   4109 #define IWICBitmapEncoderInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
   4110 #define IWICBitmapEncoderInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
   4111 #define IWICBitmapEncoderInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
   4112 #define IWICBitmapEncoderInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
   4113 #define IWICBitmapEncoderInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
   4114 #define IWICBitmapEncoderInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
   4115 #define IWICBitmapEncoderInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
   4116 #define IWICBitmapEncoderInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
   4117 #define IWICBitmapEncoderInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
   4118 /*** IWICBitmapEncoderInfo methods ***/
   4119 #define IWICBitmapEncoderInfo_CreateInstance(This,ppIBitmapEncoder) (This)->lpVtbl->CreateInstance(This,ppIBitmapEncoder)
   4120 #else
   4121 /*** IUnknown methods ***/
   4122 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo* This,REFIID riid,void **ppvObject) {
   4123     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4124 }
   4125 static FORCEINLINE ULONG IWICBitmapEncoderInfo_AddRef(IWICBitmapEncoderInfo* This) {
   4126     return This->lpVtbl->AddRef(This);
   4127 }
   4128 static FORCEINLINE ULONG IWICBitmapEncoderInfo_Release(IWICBitmapEncoderInfo* This) {
   4129     return This->lpVtbl->Release(This);
   4130 }
   4131 /*** IWICComponentInfo methods ***/
   4132 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetComponentType(IWICBitmapEncoderInfo* This,WICComponentType *pType) {
   4133     return This->lpVtbl->GetComponentType(This,pType);
   4134 }
   4135 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetCLSID(IWICBitmapEncoderInfo* This,CLSID *pclsid) {
   4136     return This->lpVtbl->GetCLSID(This,pclsid);
   4137 }
   4138 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetSigningStatus(IWICBitmapEncoderInfo* This,DWORD *pStatus) {
   4139     return This->lpVtbl->GetSigningStatus(This,pStatus);
   4140 }
   4141 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetAuthor(IWICBitmapEncoderInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   4142     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   4143 }
   4144 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetVendorGUID(IWICBitmapEncoderInfo* This,GUID *pguidVendor) {
   4145     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   4146 }
   4147 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetVersion(IWICBitmapEncoderInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   4148     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   4149 }
   4150 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetSpecVersion(IWICBitmapEncoderInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   4151     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   4152 }
   4153 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetFriendlyName(IWICBitmapEncoderInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   4154     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   4155 }
   4156 /*** IWICBitmapCodecInfo methods ***/
   4157 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetContainerFormat(IWICBitmapEncoderInfo* This,GUID *pguidContainerFormat) {
   4158     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   4159 }
   4160 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetPixelFormats(IWICBitmapEncoderInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
   4161     return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
   4162 }
   4163 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetColorManagementVersion(IWICBitmapEncoderInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
   4164     return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
   4165 }
   4166 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetDeviceManufacturer(IWICBitmapEncoderInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
   4167     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
   4168 }
   4169 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetDeviceModels(IWICBitmapEncoderInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
   4170     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
   4171 }
   4172 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetMimeTypes(IWICBitmapEncoderInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
   4173     return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
   4174 }
   4175 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetFileExtensions(IWICBitmapEncoderInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
   4176     return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
   4177 }
   4178 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportAnimation(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportAnimation) {
   4179     return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
   4180 }
   4181 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportChromaKey(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportChromaKey) {
   4182     return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
   4183 }
   4184 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportLossless(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportLossless) {
   4185     return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
   4186 }
   4187 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportMultiframe(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportMultiframe) {
   4188     return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
   4189 }
   4190 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_MatchesMimeType(IWICBitmapEncoderInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
   4191     return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
   4192 }
   4193 /*** IWICBitmapEncoderInfo methods ***/
   4194 static FORCEINLINE HRESULT IWICBitmapEncoderInfo_CreateInstance(IWICBitmapEncoderInfo* This,IWICBitmapEncoder **ppIBitmapEncoder) {
   4195     return This->lpVtbl->CreateInstance(This,ppIBitmapEncoder);
   4196 }
   4197 #endif
   4198 #endif
   4199 
   4200 #endif
   4201 
   4202 HRESULT STDMETHODCALLTYPE IWICBitmapEncoderInfo_CreateInstance_Proxy(
   4203     IWICBitmapEncoderInfo* This,
   4204     IWICBitmapEncoder **ppIBitmapEncoder);
   4205 void __RPC_STUB IWICBitmapEncoderInfo_CreateInstance_Stub(
   4206     IRpcStubBuffer* This,
   4207     IRpcChannelBuffer* pRpcChannelBuffer,
   4208     PRPC_MESSAGE pRpcMessage,
   4209     DWORD* pdwStubPhase);
   4210 
   4211 #endif  /* __IWICBitmapEncoderInfo_INTERFACE_DEFINED__ */
   4212 
   4213 /*****************************************************************************
   4214  * IWICBitmapEncoder interface
   4215  */
   4216 #ifndef __IWICBitmapEncoder_INTERFACE_DEFINED__
   4217 #define __IWICBitmapEncoder_INTERFACE_DEFINED__
   4218 
   4219 DEFINE_GUID(IID_IWICBitmapEncoder, 0x00000103, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   4220 #if defined(__cplusplus) && !defined(CINTERFACE)
   4221 MIDL_INTERFACE("00000103-a8f2-4877-ba0a-fd2b6645fb94")
   4222 IWICBitmapEncoder : public IUnknown
   4223 {
   4224     virtual HRESULT STDMETHODCALLTYPE Initialize(
   4225         IStream *pIStream,
   4226         WICBitmapEncoderCacheOption cacheOption) = 0;
   4227 
   4228     virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
   4229         GUID *pguidContainerFormat) = 0;
   4230 
   4231     virtual HRESULT STDMETHODCALLTYPE GetEncoderInfo(
   4232         IWICBitmapEncoderInfo **ppIEncoderInfo) = 0;
   4233 
   4234     virtual HRESULT STDMETHODCALLTYPE SetColorContexts(
   4235         UINT cCount,
   4236         IWICColorContext **ppIColorContext) = 0;
   4237 
   4238     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   4239         IWICPalette *pIPalette) = 0;
   4240 
   4241     virtual HRESULT STDMETHODCALLTYPE SetThumbnail(
   4242         IWICBitmapSource *pIThumbnail) = 0;
   4243 
   4244     virtual HRESULT STDMETHODCALLTYPE SetPreview(
   4245         IWICBitmapSource *pIPreview) = 0;
   4246 
   4247     virtual HRESULT STDMETHODCALLTYPE CreateNewFrame(
   4248         IWICBitmapFrameEncode **ppIFrameEncode,
   4249         IPropertyBag2 **ppIEncoderOptions) = 0;
   4250 
   4251     virtual HRESULT STDMETHODCALLTYPE Commit(
   4252         ) = 0;
   4253 
   4254     virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
   4255         IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
   4256 
   4257 };
   4258 #ifdef __CRT_UUID_DECL
   4259 __CRT_UUID_DECL(IWICBitmapEncoder, 0x00000103, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   4260 #endif
   4261 #else
   4262 typedef struct IWICBitmapEncoderVtbl {
   4263     BEGIN_INTERFACE
   4264 
   4265     /*** IUnknown methods ***/
   4266     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4267         IWICBitmapEncoder* This,
   4268         REFIID riid,
   4269         void **ppvObject);
   4270 
   4271     ULONG (STDMETHODCALLTYPE *AddRef)(
   4272         IWICBitmapEncoder* This);
   4273 
   4274     ULONG (STDMETHODCALLTYPE *Release)(
   4275         IWICBitmapEncoder* This);
   4276 
   4277     /*** IWICBitmapEncoder methods ***/
   4278     HRESULT (STDMETHODCALLTYPE *Initialize)(
   4279         IWICBitmapEncoder* This,
   4280         IStream *pIStream,
   4281         WICBitmapEncoderCacheOption cacheOption);
   4282 
   4283     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
   4284         IWICBitmapEncoder* This,
   4285         GUID *pguidContainerFormat);
   4286 
   4287     HRESULT (STDMETHODCALLTYPE *GetEncoderInfo)(
   4288         IWICBitmapEncoder* This,
   4289         IWICBitmapEncoderInfo **ppIEncoderInfo);
   4290 
   4291     HRESULT (STDMETHODCALLTYPE *SetColorContexts)(
   4292         IWICBitmapEncoder* This,
   4293         UINT cCount,
   4294         IWICColorContext **ppIColorContext);
   4295 
   4296     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   4297         IWICBitmapEncoder* This,
   4298         IWICPalette *pIPalette);
   4299 
   4300     HRESULT (STDMETHODCALLTYPE *SetThumbnail)(
   4301         IWICBitmapEncoder* This,
   4302         IWICBitmapSource *pIThumbnail);
   4303 
   4304     HRESULT (STDMETHODCALLTYPE *SetPreview)(
   4305         IWICBitmapEncoder* This,
   4306         IWICBitmapSource *pIPreview);
   4307 
   4308     HRESULT (STDMETHODCALLTYPE *CreateNewFrame)(
   4309         IWICBitmapEncoder* This,
   4310         IWICBitmapFrameEncode **ppIFrameEncode,
   4311         IPropertyBag2 **ppIEncoderOptions);
   4312 
   4313     HRESULT (STDMETHODCALLTYPE *Commit)(
   4314         IWICBitmapEncoder* This);
   4315 
   4316     HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
   4317         IWICBitmapEncoder* This,
   4318         IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   4319 
   4320     END_INTERFACE
   4321 } IWICBitmapEncoderVtbl;
   4322 interface IWICBitmapEncoder {
   4323     CONST_VTBL IWICBitmapEncoderVtbl* lpVtbl;
   4324 };
   4325 
   4326 #ifdef COBJMACROS
   4327 #ifndef WIDL_C_INLINE_WRAPPERS
   4328 /*** IUnknown methods ***/
   4329 #define IWICBitmapEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4330 #define IWICBitmapEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
   4331 #define IWICBitmapEncoder_Release(This) (This)->lpVtbl->Release(This)
   4332 /*** IWICBitmapEncoder methods ***/
   4333 #define IWICBitmapEncoder_Initialize(This,pIStream,cacheOption) (This)->lpVtbl->Initialize(This,pIStream,cacheOption)
   4334 #define IWICBitmapEncoder_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
   4335 #define IWICBitmapEncoder_GetEncoderInfo(This,ppIEncoderInfo) (This)->lpVtbl->GetEncoderInfo(This,ppIEncoderInfo)
   4336 #define IWICBitmapEncoder_SetColorContexts(This,cCount,ppIColorContext) (This)->lpVtbl->SetColorContexts(This,cCount,ppIColorContext)
   4337 #define IWICBitmapEncoder_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
   4338 #define IWICBitmapEncoder_SetThumbnail(This,pIThumbnail) (This)->lpVtbl->SetThumbnail(This,pIThumbnail)
   4339 #define IWICBitmapEncoder_SetPreview(This,pIPreview) (This)->lpVtbl->SetPreview(This,pIPreview)
   4340 #define IWICBitmapEncoder_CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions) (This)->lpVtbl->CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions)
   4341 #define IWICBitmapEncoder_Commit(This) (This)->lpVtbl->Commit(This)
   4342 #define IWICBitmapEncoder_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
   4343 #else
   4344 /*** IUnknown methods ***/
   4345 static FORCEINLINE HRESULT IWICBitmapEncoder_QueryInterface(IWICBitmapEncoder* This,REFIID riid,void **ppvObject) {
   4346     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4347 }
   4348 static FORCEINLINE ULONG IWICBitmapEncoder_AddRef(IWICBitmapEncoder* This) {
   4349     return This->lpVtbl->AddRef(This);
   4350 }
   4351 static FORCEINLINE ULONG IWICBitmapEncoder_Release(IWICBitmapEncoder* This) {
   4352     return This->lpVtbl->Release(This);
   4353 }
   4354 /*** IWICBitmapEncoder methods ***/
   4355 static FORCEINLINE HRESULT IWICBitmapEncoder_Initialize(IWICBitmapEncoder* This,IStream *pIStream,WICBitmapEncoderCacheOption cacheOption) {
   4356     return This->lpVtbl->Initialize(This,pIStream,cacheOption);
   4357 }
   4358 static FORCEINLINE HRESULT IWICBitmapEncoder_GetContainerFormat(IWICBitmapEncoder* This,GUID *pguidContainerFormat) {
   4359     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
   4360 }
   4361 static FORCEINLINE HRESULT IWICBitmapEncoder_GetEncoderInfo(IWICBitmapEncoder* This,IWICBitmapEncoderInfo **ppIEncoderInfo) {
   4362     return This->lpVtbl->GetEncoderInfo(This,ppIEncoderInfo);
   4363 }
   4364 static FORCEINLINE HRESULT IWICBitmapEncoder_SetColorContexts(IWICBitmapEncoder* This,UINT cCount,IWICColorContext **ppIColorContext) {
   4365     return This->lpVtbl->SetColorContexts(This,cCount,ppIColorContext);
   4366 }
   4367 static FORCEINLINE HRESULT IWICBitmapEncoder_SetPalette(IWICBitmapEncoder* This,IWICPalette *pIPalette) {
   4368     return This->lpVtbl->SetPalette(This,pIPalette);
   4369 }
   4370 static FORCEINLINE HRESULT IWICBitmapEncoder_SetThumbnail(IWICBitmapEncoder* This,IWICBitmapSource *pIThumbnail) {
   4371     return This->lpVtbl->SetThumbnail(This,pIThumbnail);
   4372 }
   4373 static FORCEINLINE HRESULT IWICBitmapEncoder_SetPreview(IWICBitmapEncoder* This,IWICBitmapSource *pIPreview) {
   4374     return This->lpVtbl->SetPreview(This,pIPreview);
   4375 }
   4376 static FORCEINLINE HRESULT IWICBitmapEncoder_CreateNewFrame(IWICBitmapEncoder* This,IWICBitmapFrameEncode **ppIFrameEncode,IPropertyBag2 **ppIEncoderOptions) {
   4377     return This->lpVtbl->CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions);
   4378 }
   4379 static FORCEINLINE HRESULT IWICBitmapEncoder_Commit(IWICBitmapEncoder* This) {
   4380     return This->lpVtbl->Commit(This);
   4381 }
   4382 static FORCEINLINE HRESULT IWICBitmapEncoder_GetMetadataQueryWriter(IWICBitmapEncoder* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
   4383     return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
   4384 }
   4385 #endif
   4386 #endif
   4387 
   4388 #endif
   4389 
   4390 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_Initialize_Proxy(
   4391     IWICBitmapEncoder* This,
   4392     IStream *pIStream,
   4393     WICBitmapEncoderCacheOption cacheOption);
   4394 void __RPC_STUB IWICBitmapEncoder_Initialize_Stub(
   4395     IRpcStubBuffer* This,
   4396     IRpcChannelBuffer* pRpcChannelBuffer,
   4397     PRPC_MESSAGE pRpcMessage,
   4398     DWORD* pdwStubPhase);
   4399 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_GetContainerFormat_Proxy(
   4400     IWICBitmapEncoder* This,
   4401     GUID *pguidContainerFormat);
   4402 void __RPC_STUB IWICBitmapEncoder_GetContainerFormat_Stub(
   4403     IRpcStubBuffer* This,
   4404     IRpcChannelBuffer* pRpcChannelBuffer,
   4405     PRPC_MESSAGE pRpcMessage,
   4406     DWORD* pdwStubPhase);
   4407 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_GetEncoderInfo_Proxy(
   4408     IWICBitmapEncoder* This,
   4409     IWICBitmapEncoderInfo **ppIEncoderInfo);
   4410 void __RPC_STUB IWICBitmapEncoder_GetEncoderInfo_Stub(
   4411     IRpcStubBuffer* This,
   4412     IRpcChannelBuffer* pRpcChannelBuffer,
   4413     PRPC_MESSAGE pRpcMessage,
   4414     DWORD* pdwStubPhase);
   4415 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_SetColorContexts_Proxy(
   4416     IWICBitmapEncoder* This,
   4417     UINT cCount,
   4418     IWICColorContext **ppIColorContext);
   4419 void __RPC_STUB IWICBitmapEncoder_SetColorContexts_Stub(
   4420     IRpcStubBuffer* This,
   4421     IRpcChannelBuffer* pRpcChannelBuffer,
   4422     PRPC_MESSAGE pRpcMessage,
   4423     DWORD* pdwStubPhase);
   4424 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_SetPalette_Proxy(
   4425     IWICBitmapEncoder* This,
   4426     IWICPalette *pIPalette);
   4427 void __RPC_STUB IWICBitmapEncoder_SetPalette_Stub(
   4428     IRpcStubBuffer* This,
   4429     IRpcChannelBuffer* pRpcChannelBuffer,
   4430     PRPC_MESSAGE pRpcMessage,
   4431     DWORD* pdwStubPhase);
   4432 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_SetThumbnail_Proxy(
   4433     IWICBitmapEncoder* This,
   4434     IWICBitmapSource *pIThumbnail);
   4435 void __RPC_STUB IWICBitmapEncoder_SetThumbnail_Stub(
   4436     IRpcStubBuffer* This,
   4437     IRpcChannelBuffer* pRpcChannelBuffer,
   4438     PRPC_MESSAGE pRpcMessage,
   4439     DWORD* pdwStubPhase);
   4440 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_SetPreview_Proxy(
   4441     IWICBitmapEncoder* This,
   4442     IWICBitmapSource *pIPreview);
   4443 void __RPC_STUB IWICBitmapEncoder_SetPreview_Stub(
   4444     IRpcStubBuffer* This,
   4445     IRpcChannelBuffer* pRpcChannelBuffer,
   4446     PRPC_MESSAGE pRpcMessage,
   4447     DWORD* pdwStubPhase);
   4448 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_CreateNewFrame_Proxy(
   4449     IWICBitmapEncoder* This,
   4450     IWICBitmapFrameEncode **ppIFrameEncode,
   4451     IPropertyBag2 **ppIEncoderOptions);
   4452 void __RPC_STUB IWICBitmapEncoder_CreateNewFrame_Stub(
   4453     IRpcStubBuffer* This,
   4454     IRpcChannelBuffer* pRpcChannelBuffer,
   4455     PRPC_MESSAGE pRpcMessage,
   4456     DWORD* pdwStubPhase);
   4457 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_Commit_Proxy(
   4458     IWICBitmapEncoder* This);
   4459 void __RPC_STUB IWICBitmapEncoder_Commit_Stub(
   4460     IRpcStubBuffer* This,
   4461     IRpcChannelBuffer* pRpcChannelBuffer,
   4462     PRPC_MESSAGE pRpcMessage,
   4463     DWORD* pdwStubPhase);
   4464 HRESULT STDMETHODCALLTYPE IWICBitmapEncoder_GetMetadataQueryWriter_Proxy(
   4465     IWICBitmapEncoder* This,
   4466     IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   4467 void __RPC_STUB IWICBitmapEncoder_GetMetadataQueryWriter_Stub(
   4468     IRpcStubBuffer* This,
   4469     IRpcChannelBuffer* pRpcChannelBuffer,
   4470     PRPC_MESSAGE pRpcMessage,
   4471     DWORD* pdwStubPhase);
   4472 
   4473 #endif  /* __IWICBitmapEncoder_INTERFACE_DEFINED__ */
   4474 
   4475 /*****************************************************************************
   4476  * IWICFormatConverter interface
   4477  */
   4478 #ifndef __IWICFormatConverter_INTERFACE_DEFINED__
   4479 #define __IWICFormatConverter_INTERFACE_DEFINED__
   4480 
   4481 DEFINE_GUID(IID_IWICFormatConverter, 0x00000301, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   4482 #if defined(__cplusplus) && !defined(CINTERFACE)
   4483 MIDL_INTERFACE("00000301-a8f2-4877-ba0a-fd2b6645fb94")
   4484 IWICFormatConverter : public IWICBitmapSource
   4485 {
   4486     virtual HRESULT STDMETHODCALLTYPE Initialize(
   4487         IWICBitmapSource *pISource,
   4488         REFWICPixelFormatGUID dstFormat,
   4489         WICBitmapDitherType dither,
   4490         IWICPalette *pIPalette,
   4491         double alphaThresholdPercent,
   4492         WICBitmapPaletteType paletteTranslate) = 0;
   4493 
   4494     virtual HRESULT STDMETHODCALLTYPE CanConvert(
   4495         REFWICPixelFormatGUID srcPixelFormat,
   4496         REFWICPixelFormatGUID dstPixelFormat,
   4497         WINBOOL *pfCanConvert) = 0;
   4498 
   4499 };
   4500 #ifdef __CRT_UUID_DECL
   4501 __CRT_UUID_DECL(IWICFormatConverter, 0x00000301, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   4502 #endif
   4503 #else
   4504 typedef struct IWICFormatConverterVtbl {
   4505     BEGIN_INTERFACE
   4506 
   4507     /*** IUnknown methods ***/
   4508     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4509         IWICFormatConverter* This,
   4510         REFIID riid,
   4511         void **ppvObject);
   4512 
   4513     ULONG (STDMETHODCALLTYPE *AddRef)(
   4514         IWICFormatConverter* This);
   4515 
   4516     ULONG (STDMETHODCALLTYPE *Release)(
   4517         IWICFormatConverter* This);
   4518 
   4519     /*** IWICBitmapSource methods ***/
   4520     HRESULT (STDMETHODCALLTYPE *GetSize)(
   4521         IWICFormatConverter* This,
   4522         UINT *puiWidth,
   4523         UINT *puiHeight);
   4524 
   4525     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   4526         IWICFormatConverter* This,
   4527         WICPixelFormatGUID *pPixelFormat);
   4528 
   4529     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   4530         IWICFormatConverter* This,
   4531         double *pDpiX,
   4532         double *pDpiY);
   4533 
   4534     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   4535         IWICFormatConverter* This,
   4536         IWICPalette *pIPalette);
   4537 
   4538     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   4539         IWICFormatConverter* This,
   4540         const WICRect *prc,
   4541         UINT cbStride,
   4542         UINT cbBufferSize,
   4543         BYTE *pbBuffer);
   4544 
   4545     /*** IWICFormatConverter methods ***/
   4546     HRESULT (STDMETHODCALLTYPE *Initialize)(
   4547         IWICFormatConverter* This,
   4548         IWICBitmapSource *pISource,
   4549         REFWICPixelFormatGUID dstFormat,
   4550         WICBitmapDitherType dither,
   4551         IWICPalette *pIPalette,
   4552         double alphaThresholdPercent,
   4553         WICBitmapPaletteType paletteTranslate);
   4554 
   4555     HRESULT (STDMETHODCALLTYPE *CanConvert)(
   4556         IWICFormatConverter* This,
   4557         REFWICPixelFormatGUID srcPixelFormat,
   4558         REFWICPixelFormatGUID dstPixelFormat,
   4559         WINBOOL *pfCanConvert);
   4560 
   4561     END_INTERFACE
   4562 } IWICFormatConverterVtbl;
   4563 interface IWICFormatConverter {
   4564     CONST_VTBL IWICFormatConverterVtbl* lpVtbl;
   4565 };
   4566 
   4567 #ifdef COBJMACROS
   4568 #ifndef WIDL_C_INLINE_WRAPPERS
   4569 /*** IUnknown methods ***/
   4570 #define IWICFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4571 #define IWICFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   4572 #define IWICFormatConverter_Release(This) (This)->lpVtbl->Release(This)
   4573 /*** IWICBitmapSource methods ***/
   4574 #define IWICFormatConverter_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   4575 #define IWICFormatConverter_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   4576 #define IWICFormatConverter_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   4577 #define IWICFormatConverter_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   4578 #define IWICFormatConverter_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   4579 /*** IWICFormatConverter methods ***/
   4580 #define IWICFormatConverter_Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate) (This)->lpVtbl->Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate)
   4581 #define IWICFormatConverter_CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert) (This)->lpVtbl->CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert)
   4582 #else
   4583 /*** IUnknown methods ***/
   4584 static FORCEINLINE HRESULT IWICFormatConverter_QueryInterface(IWICFormatConverter* This,REFIID riid,void **ppvObject) {
   4585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4586 }
   4587 static FORCEINLINE ULONG IWICFormatConverter_AddRef(IWICFormatConverter* This) {
   4588     return This->lpVtbl->AddRef(This);
   4589 }
   4590 static FORCEINLINE ULONG IWICFormatConverter_Release(IWICFormatConverter* This) {
   4591     return This->lpVtbl->Release(This);
   4592 }
   4593 /*** IWICBitmapSource methods ***/
   4594 static FORCEINLINE HRESULT IWICFormatConverter_GetSize(IWICFormatConverter* This,UINT *puiWidth,UINT *puiHeight) {
   4595     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   4596 }
   4597 static FORCEINLINE HRESULT IWICFormatConverter_GetPixelFormat(IWICFormatConverter* This,WICPixelFormatGUID *pPixelFormat) {
   4598     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   4599 }
   4600 static FORCEINLINE HRESULT IWICFormatConverter_GetResolution(IWICFormatConverter* This,double *pDpiX,double *pDpiY) {
   4601     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   4602 }
   4603 static FORCEINLINE HRESULT IWICFormatConverter_CopyPalette(IWICFormatConverter* This,IWICPalette *pIPalette) {
   4604     return This->lpVtbl->CopyPalette(This,pIPalette);
   4605 }
   4606 static FORCEINLINE HRESULT IWICFormatConverter_CopyPixels(IWICFormatConverter* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   4607     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   4608 }
   4609 /*** IWICFormatConverter methods ***/
   4610 static FORCEINLINE HRESULT IWICFormatConverter_Initialize(IWICFormatConverter* This,IWICBitmapSource *pISource,REFWICPixelFormatGUID dstFormat,WICBitmapDitherType dither,IWICPalette *pIPalette,double alphaThresholdPercent,WICBitmapPaletteType paletteTranslate) {
   4611     return This->lpVtbl->Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate);
   4612 }
   4613 static FORCEINLINE HRESULT IWICFormatConverter_CanConvert(IWICFormatConverter* This,REFWICPixelFormatGUID srcPixelFormat,REFWICPixelFormatGUID dstPixelFormat,WINBOOL *pfCanConvert) {
   4614     return This->lpVtbl->CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert);
   4615 }
   4616 #endif
   4617 #endif
   4618 
   4619 #endif
   4620 
   4621 HRESULT STDMETHODCALLTYPE IWICFormatConverter_Initialize_Proxy(
   4622     IWICFormatConverter* This,
   4623     IWICBitmapSource *pISource,
   4624     REFWICPixelFormatGUID dstFormat,
   4625     WICBitmapDitherType dither,
   4626     IWICPalette *pIPalette,
   4627     double alphaThresholdPercent,
   4628     WICBitmapPaletteType paletteTranslate);
   4629 void __RPC_STUB IWICFormatConverter_Initialize_Stub(
   4630     IRpcStubBuffer* This,
   4631     IRpcChannelBuffer* pRpcChannelBuffer,
   4632     PRPC_MESSAGE pRpcMessage,
   4633     DWORD* pdwStubPhase);
   4634 HRESULT STDMETHODCALLTYPE IWICFormatConverter_CanConvert_Proxy(
   4635     IWICFormatConverter* This,
   4636     REFWICPixelFormatGUID srcPixelFormat,
   4637     REFWICPixelFormatGUID dstPixelFormat,
   4638     WINBOOL *pfCanConvert);
   4639 void __RPC_STUB IWICFormatConverter_CanConvert_Stub(
   4640     IRpcStubBuffer* This,
   4641     IRpcChannelBuffer* pRpcChannelBuffer,
   4642     PRPC_MESSAGE pRpcMessage,
   4643     DWORD* pdwStubPhase);
   4644 
   4645 #endif  /* __IWICFormatConverter_INTERFACE_DEFINED__ */
   4646 
   4647 /*****************************************************************************
   4648  * IWICFormatConverterInfo interface
   4649  */
   4650 #ifndef __IWICFormatConverterInfo_INTERFACE_DEFINED__
   4651 #define __IWICFormatConverterInfo_INTERFACE_DEFINED__
   4652 
   4653 DEFINE_GUID(IID_IWICFormatConverterInfo, 0x9f34fb65, 0x13f4, 0x4f15, 0xbc,0x57, 0x37,0x26,0xb5,0xe5,0x3d,0x9f);
   4654 #if defined(__cplusplus) && !defined(CINTERFACE)
   4655 MIDL_INTERFACE("9f34fb65-13f4-4f15-bc57-3726b5e53d9f")
   4656 IWICFormatConverterInfo : public IWICComponentInfo
   4657 {
   4658     virtual HRESULT STDMETHODCALLTYPE GetPixelFormats(
   4659         UINT cFormats,
   4660         WICPixelFormatGUID *pPixelFormatGUIDs,
   4661         UINT *pcActual) = 0;
   4662 
   4663     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   4664         IWICFormatConverter **ppIConverter) = 0;
   4665 
   4666 };
   4667 #ifdef __CRT_UUID_DECL
   4668 __CRT_UUID_DECL(IWICFormatConverterInfo, 0x9f34fb65, 0x13f4, 0x4f15, 0xbc,0x57, 0x37,0x26,0xb5,0xe5,0x3d,0x9f)
   4669 #endif
   4670 #else
   4671 typedef struct IWICFormatConverterInfoVtbl {
   4672     BEGIN_INTERFACE
   4673 
   4674     /*** IUnknown methods ***/
   4675     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4676         IWICFormatConverterInfo* This,
   4677         REFIID riid,
   4678         void **ppvObject);
   4679 
   4680     ULONG (STDMETHODCALLTYPE *AddRef)(
   4681         IWICFormatConverterInfo* This);
   4682 
   4683     ULONG (STDMETHODCALLTYPE *Release)(
   4684         IWICFormatConverterInfo* This);
   4685 
   4686     /*** IWICComponentInfo methods ***/
   4687     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
   4688         IWICFormatConverterInfo* This,
   4689         WICComponentType *pType);
   4690 
   4691     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   4692         IWICFormatConverterInfo* This,
   4693         CLSID *pclsid);
   4694 
   4695     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
   4696         IWICFormatConverterInfo* This,
   4697         DWORD *pStatus);
   4698 
   4699     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
   4700         IWICFormatConverterInfo* This,
   4701         UINT cchAuthor,
   4702         WCHAR *wzAuthor,
   4703         UINT *pcchActual);
   4704 
   4705     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
   4706         IWICFormatConverterInfo* This,
   4707         GUID *pguidVendor);
   4708 
   4709     HRESULT (STDMETHODCALLTYPE *GetVersion)(
   4710         IWICFormatConverterInfo* This,
   4711         UINT cchVersion,
   4712         WCHAR *wzVersion,
   4713         UINT *pcchActual);
   4714 
   4715     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
   4716         IWICFormatConverterInfo* This,
   4717         UINT cchSpecVersion,
   4718         WCHAR *wzSpecVersion,
   4719         UINT *pcchActual);
   4720 
   4721     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
   4722         IWICFormatConverterInfo* This,
   4723         UINT cchFriendlyName,
   4724         WCHAR *wzFriendlyName,
   4725         UINT *pcchActual);
   4726 
   4727     /*** IWICFormatConverterInfo methods ***/
   4728     HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
   4729         IWICFormatConverterInfo* This,
   4730         UINT cFormats,
   4731         WICPixelFormatGUID *pPixelFormatGUIDs,
   4732         UINT *pcActual);
   4733 
   4734     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   4735         IWICFormatConverterInfo* This,
   4736         IWICFormatConverter **ppIConverter);
   4737 
   4738     END_INTERFACE
   4739 } IWICFormatConverterInfoVtbl;
   4740 interface IWICFormatConverterInfo {
   4741     CONST_VTBL IWICFormatConverterInfoVtbl* lpVtbl;
   4742 };
   4743 
   4744 #ifdef COBJMACROS
   4745 #ifndef WIDL_C_INLINE_WRAPPERS
   4746 /*** IUnknown methods ***/
   4747 #define IWICFormatConverterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4748 #define IWICFormatConverterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4749 #define IWICFormatConverterInfo_Release(This) (This)->lpVtbl->Release(This)
   4750 /*** IWICComponentInfo methods ***/
   4751 #define IWICFormatConverterInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
   4752 #define IWICFormatConverterInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
   4753 #define IWICFormatConverterInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
   4754 #define IWICFormatConverterInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
   4755 #define IWICFormatConverterInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
   4756 #define IWICFormatConverterInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
   4757 #define IWICFormatConverterInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
   4758 #define IWICFormatConverterInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
   4759 /*** IWICFormatConverterInfo methods ***/
   4760 #define IWICFormatConverterInfo_GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual)
   4761 #define IWICFormatConverterInfo_CreateInstance(This,ppIConverter) (This)->lpVtbl->CreateInstance(This,ppIConverter)
   4762 #else
   4763 /*** IUnknown methods ***/
   4764 static FORCEINLINE HRESULT IWICFormatConverterInfo_QueryInterface(IWICFormatConverterInfo* This,REFIID riid,void **ppvObject) {
   4765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4766 }
   4767 static FORCEINLINE ULONG IWICFormatConverterInfo_AddRef(IWICFormatConverterInfo* This) {
   4768     return This->lpVtbl->AddRef(This);
   4769 }
   4770 static FORCEINLINE ULONG IWICFormatConverterInfo_Release(IWICFormatConverterInfo* This) {
   4771     return This->lpVtbl->Release(This);
   4772 }
   4773 /*** IWICComponentInfo methods ***/
   4774 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetComponentType(IWICFormatConverterInfo* This,WICComponentType *pType) {
   4775     return This->lpVtbl->GetComponentType(This,pType);
   4776 }
   4777 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetCLSID(IWICFormatConverterInfo* This,CLSID *pclsid) {
   4778     return This->lpVtbl->GetCLSID(This,pclsid);
   4779 }
   4780 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetSigningStatus(IWICFormatConverterInfo* This,DWORD *pStatus) {
   4781     return This->lpVtbl->GetSigningStatus(This,pStatus);
   4782 }
   4783 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetAuthor(IWICFormatConverterInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
   4784     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
   4785 }
   4786 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetVendorGUID(IWICFormatConverterInfo* This,GUID *pguidVendor) {
   4787     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
   4788 }
   4789 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetVersion(IWICFormatConverterInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
   4790     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
   4791 }
   4792 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetSpecVersion(IWICFormatConverterInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
   4793     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
   4794 }
   4795 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetFriendlyName(IWICFormatConverterInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
   4796     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
   4797 }
   4798 /*** IWICFormatConverterInfo methods ***/
   4799 static FORCEINLINE HRESULT IWICFormatConverterInfo_GetPixelFormats(IWICFormatConverterInfo* This,UINT cFormats,WICPixelFormatGUID *pPixelFormatGUIDs,UINT *pcActual) {
   4800     return This->lpVtbl->GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual);
   4801 }
   4802 static FORCEINLINE HRESULT IWICFormatConverterInfo_CreateInstance(IWICFormatConverterInfo* This,IWICFormatConverter **ppIConverter) {
   4803     return This->lpVtbl->CreateInstance(This,ppIConverter);
   4804 }
   4805 #endif
   4806 #endif
   4807 
   4808 #endif
   4809 
   4810 HRESULT STDMETHODCALLTYPE IWICFormatConverterInfo_GetPixelFormats_Proxy(
   4811     IWICFormatConverterInfo* This,
   4812     UINT cFormats,
   4813     WICPixelFormatGUID *pPixelFormatGUIDs,
   4814     UINT *pcActual);
   4815 void __RPC_STUB IWICFormatConverterInfo_GetPixelFormats_Stub(
   4816     IRpcStubBuffer* This,
   4817     IRpcChannelBuffer* pRpcChannelBuffer,
   4818     PRPC_MESSAGE pRpcMessage,
   4819     DWORD* pdwStubPhase);
   4820 HRESULT STDMETHODCALLTYPE IWICFormatConverterInfo_CreateInstance_Proxy(
   4821     IWICFormatConverterInfo* This,
   4822     IWICFormatConverter **ppIConverter);
   4823 void __RPC_STUB IWICFormatConverterInfo_CreateInstance_Stub(
   4824     IRpcStubBuffer* This,
   4825     IRpcChannelBuffer* pRpcChannelBuffer,
   4826     PRPC_MESSAGE pRpcMessage,
   4827     DWORD* pdwStubPhase);
   4828 
   4829 #endif  /* __IWICFormatConverterInfo_INTERFACE_DEFINED__ */
   4830 
   4831 /*****************************************************************************
   4832  * IWICStream interface
   4833  */
   4834 #ifndef __IWICStream_INTERFACE_DEFINED__
   4835 #define __IWICStream_INTERFACE_DEFINED__
   4836 
   4837 DEFINE_GUID(IID_IWICStream, 0x135ff860, 0x22b7, 0x4ddf, 0xb0,0xf6, 0x21,0x8f,0x4f,0x29,0x9a,0x43);
   4838 #if defined(__cplusplus) && !defined(CINTERFACE)
   4839 MIDL_INTERFACE("135ff860-22b7-4ddf-b0f6-218f4f299a43")
   4840 IWICStream : public IStream
   4841 {
   4842     virtual HRESULT STDMETHODCALLTYPE InitializeFromIStream(
   4843         IStream *pIStream) = 0;
   4844 
   4845     virtual HRESULT STDMETHODCALLTYPE InitializeFromFilename(
   4846         LPCWSTR wzFileName,
   4847         DWORD dwAccessMode) = 0;
   4848 
   4849     virtual HRESULT STDMETHODCALLTYPE InitializeFromMemory(
   4850         BYTE *pbBuffer,
   4851         DWORD cbBufferSize) = 0;
   4852 
   4853     virtual HRESULT STDMETHODCALLTYPE InitializeFromIStreamRegion(
   4854         IStream *pIStream,
   4855         ULARGE_INTEGER ulOffset,
   4856         ULARGE_INTEGER ulMaxSize) = 0;
   4857 
   4858 };
   4859 #ifdef __CRT_UUID_DECL
   4860 __CRT_UUID_DECL(IWICStream, 0x135ff860, 0x22b7, 0x4ddf, 0xb0,0xf6, 0x21,0x8f,0x4f,0x29,0x9a,0x43)
   4861 #endif
   4862 #else
   4863 typedef struct IWICStreamVtbl {
   4864     BEGIN_INTERFACE
   4865 
   4866     /*** IUnknown methods ***/
   4867     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4868         IWICStream* This,
   4869         REFIID riid,
   4870         void **ppvObject);
   4871 
   4872     ULONG (STDMETHODCALLTYPE *AddRef)(
   4873         IWICStream* This);
   4874 
   4875     ULONG (STDMETHODCALLTYPE *Release)(
   4876         IWICStream* This);
   4877 
   4878     /*** ISequentialStream methods ***/
   4879     HRESULT (STDMETHODCALLTYPE *Read)(
   4880         IWICStream* This,
   4881         void *pv,
   4882         ULONG cb,
   4883         ULONG *pcbRead);
   4884 
   4885     HRESULT (STDMETHODCALLTYPE *Write)(
   4886         IWICStream* This,
   4887         const void *pv,
   4888         ULONG cb,
   4889         ULONG *pcbWritten);
   4890 
   4891     /*** IStream methods ***/
   4892     HRESULT (STDMETHODCALLTYPE *Seek)(
   4893         IWICStream* This,
   4894         LARGE_INTEGER dlibMove,
   4895         DWORD dwOrigin,
   4896         ULARGE_INTEGER *plibNewPosition);
   4897 
   4898     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4899         IWICStream* This,
   4900         ULARGE_INTEGER libNewSize);
   4901 
   4902     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4903         IWICStream* This,
   4904         IStream *pstm,
   4905         ULARGE_INTEGER cb,
   4906         ULARGE_INTEGER *pcbRead,
   4907         ULARGE_INTEGER *pcbWritten);
   4908 
   4909     HRESULT (STDMETHODCALLTYPE *Commit)(
   4910         IWICStream* This,
   4911         DWORD grfCommitFlags);
   4912 
   4913     HRESULT (STDMETHODCALLTYPE *Revert)(
   4914         IWICStream* This);
   4915 
   4916     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4917         IWICStream* This,
   4918         ULARGE_INTEGER libOffset,
   4919         ULARGE_INTEGER cb,
   4920         DWORD dwLockType);
   4921 
   4922     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4923         IWICStream* This,
   4924         ULARGE_INTEGER libOffset,
   4925         ULARGE_INTEGER cb,
   4926         DWORD dwLockType);
   4927 
   4928     HRESULT (STDMETHODCALLTYPE *Stat)(
   4929         IWICStream* This,
   4930         STATSTG *pstatstg,
   4931         DWORD grfStatFlag);
   4932 
   4933     HRESULT (STDMETHODCALLTYPE *Clone)(
   4934         IWICStream* This,
   4935         IStream **ppstm);
   4936 
   4937     /*** IWICStream methods ***/
   4938     HRESULT (STDMETHODCALLTYPE *InitializeFromIStream)(
   4939         IWICStream* This,
   4940         IStream *pIStream);
   4941 
   4942     HRESULT (STDMETHODCALLTYPE *InitializeFromFilename)(
   4943         IWICStream* This,
   4944         LPCWSTR wzFileName,
   4945         DWORD dwAccessMode);
   4946 
   4947     HRESULT (STDMETHODCALLTYPE *InitializeFromMemory)(
   4948         IWICStream* This,
   4949         BYTE *pbBuffer,
   4950         DWORD cbBufferSize);
   4951 
   4952     HRESULT (STDMETHODCALLTYPE *InitializeFromIStreamRegion)(
   4953         IWICStream* This,
   4954         IStream *pIStream,
   4955         ULARGE_INTEGER ulOffset,
   4956         ULARGE_INTEGER ulMaxSize);
   4957 
   4958     END_INTERFACE
   4959 } IWICStreamVtbl;
   4960 interface IWICStream {
   4961     CONST_VTBL IWICStreamVtbl* lpVtbl;
   4962 };
   4963 
   4964 #ifdef COBJMACROS
   4965 #ifndef WIDL_C_INLINE_WRAPPERS
   4966 /*** IUnknown methods ***/
   4967 #define IWICStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4968 #define IWICStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   4969 #define IWICStream_Release(This) (This)->lpVtbl->Release(This)
   4970 /*** ISequentialStream methods ***/
   4971 #define IWICStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4972 #define IWICStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4973 /*** IStream methods ***/
   4974 #define IWICStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4975 #define IWICStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4976 #define IWICStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4977 #define IWICStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4978 #define IWICStream_Revert(This) (This)->lpVtbl->Revert(This)
   4979 #define IWICStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4980 #define IWICStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4981 #define IWICStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4982 #define IWICStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4983 /*** IWICStream methods ***/
   4984 #define IWICStream_InitializeFromIStream(This,pIStream) (This)->lpVtbl->InitializeFromIStream(This,pIStream)
   4985 #define IWICStream_InitializeFromFilename(This,wzFileName,dwAccessMode) (This)->lpVtbl->InitializeFromFilename(This,wzFileName,dwAccessMode)
   4986 #define IWICStream_InitializeFromMemory(This,pbBuffer,cbBufferSize) (This)->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize)
   4987 #define IWICStream_InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize) (This)->lpVtbl->InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize)
   4988 #else
   4989 /*** IUnknown methods ***/
   4990 static FORCEINLINE HRESULT IWICStream_QueryInterface(IWICStream* This,REFIID riid,void **ppvObject) {
   4991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4992 }
   4993 static FORCEINLINE ULONG IWICStream_AddRef(IWICStream* This) {
   4994     return This->lpVtbl->AddRef(This);
   4995 }
   4996 static FORCEINLINE ULONG IWICStream_Release(IWICStream* This) {
   4997     return This->lpVtbl->Release(This);
   4998 }
   4999 /*** ISequentialStream methods ***/
   5000 static FORCEINLINE HRESULT IWICStream_Read(IWICStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5001     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5002 }
   5003 static FORCEINLINE HRESULT IWICStream_Write(IWICStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   5004     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5005 }
   5006 /*** IStream methods ***/
   5007 static FORCEINLINE HRESULT IWICStream_Seek(IWICStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5008     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5009 }
   5010 static FORCEINLINE HRESULT IWICStream_SetSize(IWICStream* This,ULARGE_INTEGER libNewSize) {
   5011     return This->lpVtbl->SetSize(This,libNewSize);
   5012 }
   5013 static FORCEINLINE HRESULT IWICStream_CopyTo(IWICStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5014     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5015 }
   5016 static FORCEINLINE HRESULT IWICStream_Commit(IWICStream* This,DWORD grfCommitFlags) {
   5017     return This->lpVtbl->Commit(This,grfCommitFlags);
   5018 }
   5019 static FORCEINLINE HRESULT IWICStream_Revert(IWICStream* This) {
   5020     return This->lpVtbl->Revert(This);
   5021 }
   5022 static FORCEINLINE HRESULT IWICStream_LockRegion(IWICStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5023     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5024 }
   5025 static FORCEINLINE HRESULT IWICStream_UnlockRegion(IWICStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5026     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5027 }
   5028 static FORCEINLINE HRESULT IWICStream_Stat(IWICStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5029     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5030 }
   5031 static FORCEINLINE HRESULT IWICStream_Clone(IWICStream* This,IStream **ppstm) {
   5032     return This->lpVtbl->Clone(This,ppstm);
   5033 }
   5034 /*** IWICStream methods ***/
   5035 static FORCEINLINE HRESULT IWICStream_InitializeFromIStream(IWICStream* This,IStream *pIStream) {
   5036     return This->lpVtbl->InitializeFromIStream(This,pIStream);
   5037 }
   5038 static FORCEINLINE HRESULT IWICStream_InitializeFromFilename(IWICStream* This,LPCWSTR wzFileName,DWORD dwAccessMode) {
   5039     return This->lpVtbl->InitializeFromFilename(This,wzFileName,dwAccessMode);
   5040 }
   5041 static FORCEINLINE HRESULT IWICStream_InitializeFromMemory(IWICStream* This,BYTE *pbBuffer,DWORD cbBufferSize) {
   5042     return This->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize);
   5043 }
   5044 static FORCEINLINE HRESULT IWICStream_InitializeFromIStreamRegion(IWICStream* This,IStream *pIStream,ULARGE_INTEGER ulOffset,ULARGE_INTEGER ulMaxSize) {
   5045     return This->lpVtbl->InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize);
   5046 }
   5047 #endif
   5048 #endif
   5049 
   5050 #endif
   5051 
   5052 HRESULT STDMETHODCALLTYPE IWICStream_InitializeFromIStream_Proxy(
   5053     IWICStream* This,
   5054     IStream *pIStream);
   5055 void __RPC_STUB IWICStream_InitializeFromIStream_Stub(
   5056     IRpcStubBuffer* This,
   5057     IRpcChannelBuffer* pRpcChannelBuffer,
   5058     PRPC_MESSAGE pRpcMessage,
   5059     DWORD* pdwStubPhase);
   5060 HRESULT STDMETHODCALLTYPE IWICStream_InitializeFromFilename_Proxy(
   5061     IWICStream* This,
   5062     LPCWSTR wzFileName,
   5063     DWORD dwAccessMode);
   5064 void __RPC_STUB IWICStream_InitializeFromFilename_Stub(
   5065     IRpcStubBuffer* This,
   5066     IRpcChannelBuffer* pRpcChannelBuffer,
   5067     PRPC_MESSAGE pRpcMessage,
   5068     DWORD* pdwStubPhase);
   5069 HRESULT STDMETHODCALLTYPE IWICStream_InitializeFromMemory_Proxy(
   5070     IWICStream* This,
   5071     BYTE *pbBuffer,
   5072     DWORD cbBufferSize);
   5073 void __RPC_STUB IWICStream_InitializeFromMemory_Stub(
   5074     IRpcStubBuffer* This,
   5075     IRpcChannelBuffer* pRpcChannelBuffer,
   5076     PRPC_MESSAGE pRpcMessage,
   5077     DWORD* pdwStubPhase);
   5078 HRESULT STDMETHODCALLTYPE IWICStream_InitializeFromIStreamRegion_Proxy(
   5079     IWICStream* This,
   5080     IStream *pIStream,
   5081     ULARGE_INTEGER ulOffset,
   5082     ULARGE_INTEGER ulMaxSize);
   5083 void __RPC_STUB IWICStream_InitializeFromIStreamRegion_Stub(
   5084     IRpcStubBuffer* This,
   5085     IRpcChannelBuffer* pRpcChannelBuffer,
   5086     PRPC_MESSAGE pRpcMessage,
   5087     DWORD* pdwStubPhase);
   5088 
   5089 #endif  /* __IWICStream_INTERFACE_DEFINED__ */
   5090 
   5091 /*****************************************************************************
   5092  * IWICBitmapScaler interface
   5093  */
   5094 #ifndef __IWICBitmapScaler_INTERFACE_DEFINED__
   5095 #define __IWICBitmapScaler_INTERFACE_DEFINED__
   5096 
   5097 DEFINE_GUID(IID_IWICBitmapScaler, 0x00000302, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
   5098 #if defined(__cplusplus) && !defined(CINTERFACE)
   5099 MIDL_INTERFACE("00000302-a8f2-4877-ba0a-fd2b6645fb94")
   5100 IWICBitmapScaler : public IWICBitmapSource
   5101 {
   5102     virtual HRESULT STDMETHODCALLTYPE Initialize(
   5103         IWICBitmapSource *pISource,
   5104         UINT uiWidth,
   5105         UINT uiHeight,
   5106         WICBitmapInterpolationMode mode) = 0;
   5107 
   5108 };
   5109 #ifdef __CRT_UUID_DECL
   5110 __CRT_UUID_DECL(IWICBitmapScaler, 0x00000302, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
   5111 #endif
   5112 #else
   5113 typedef struct IWICBitmapScalerVtbl {
   5114     BEGIN_INTERFACE
   5115 
   5116     /*** IUnknown methods ***/
   5117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5118         IWICBitmapScaler* This,
   5119         REFIID riid,
   5120         void **ppvObject);
   5121 
   5122     ULONG (STDMETHODCALLTYPE *AddRef)(
   5123         IWICBitmapScaler* This);
   5124 
   5125     ULONG (STDMETHODCALLTYPE *Release)(
   5126         IWICBitmapScaler* This);
   5127 
   5128     /*** IWICBitmapSource methods ***/
   5129     HRESULT (STDMETHODCALLTYPE *GetSize)(
   5130         IWICBitmapScaler* This,
   5131         UINT *puiWidth,
   5132         UINT *puiHeight);
   5133 
   5134     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   5135         IWICBitmapScaler* This,
   5136         WICPixelFormatGUID *pPixelFormat);
   5137 
   5138     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   5139         IWICBitmapScaler* This,
   5140         double *pDpiX,
   5141         double *pDpiY);
   5142 
   5143     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   5144         IWICBitmapScaler* This,
   5145         IWICPalette *pIPalette);
   5146 
   5147     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   5148         IWICBitmapScaler* This,
   5149         const WICRect *prc,
   5150         UINT cbStride,
   5151         UINT cbBufferSize,
   5152         BYTE *pbBuffer);
   5153 
   5154     /*** IWICBitmapScaler methods ***/
   5155     HRESULT (STDMETHODCALLTYPE *Initialize)(
   5156         IWICBitmapScaler* This,
   5157         IWICBitmapSource *pISource,
   5158         UINT uiWidth,
   5159         UINT uiHeight,
   5160         WICBitmapInterpolationMode mode);
   5161 
   5162     END_INTERFACE
   5163 } IWICBitmapScalerVtbl;
   5164 interface IWICBitmapScaler {
   5165     CONST_VTBL IWICBitmapScalerVtbl* lpVtbl;
   5166 };
   5167 
   5168 #ifdef COBJMACROS
   5169 #ifndef WIDL_C_INLINE_WRAPPERS
   5170 /*** IUnknown methods ***/
   5171 #define IWICBitmapScaler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5172 #define IWICBitmapScaler_AddRef(This) (This)->lpVtbl->AddRef(This)
   5173 #define IWICBitmapScaler_Release(This) (This)->lpVtbl->Release(This)
   5174 /*** IWICBitmapSource methods ***/
   5175 #define IWICBitmapScaler_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   5176 #define IWICBitmapScaler_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   5177 #define IWICBitmapScaler_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   5178 #define IWICBitmapScaler_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   5179 #define IWICBitmapScaler_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   5180 /*** IWICBitmapScaler methods ***/
   5181 #define IWICBitmapScaler_Initialize(This,pISource,uiWidth,uiHeight,mode) (This)->lpVtbl->Initialize(This,pISource,uiWidth,uiHeight,mode)
   5182 #else
   5183 /*** IUnknown methods ***/
   5184 static FORCEINLINE HRESULT IWICBitmapScaler_QueryInterface(IWICBitmapScaler* This,REFIID riid,void **ppvObject) {
   5185     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5186 }
   5187 static FORCEINLINE ULONG IWICBitmapScaler_AddRef(IWICBitmapScaler* This) {
   5188     return This->lpVtbl->AddRef(This);
   5189 }
   5190 static FORCEINLINE ULONG IWICBitmapScaler_Release(IWICBitmapScaler* This) {
   5191     return This->lpVtbl->Release(This);
   5192 }
   5193 /*** IWICBitmapSource methods ***/
   5194 static FORCEINLINE HRESULT IWICBitmapScaler_GetSize(IWICBitmapScaler* This,UINT *puiWidth,UINT *puiHeight) {
   5195     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   5196 }
   5197 static FORCEINLINE HRESULT IWICBitmapScaler_GetPixelFormat(IWICBitmapScaler* This,WICPixelFormatGUID *pPixelFormat) {
   5198     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   5199 }
   5200 static FORCEINLINE HRESULT IWICBitmapScaler_GetResolution(IWICBitmapScaler* This,double *pDpiX,double *pDpiY) {
   5201     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   5202 }
   5203 static FORCEINLINE HRESULT IWICBitmapScaler_CopyPalette(IWICBitmapScaler* This,IWICPalette *pIPalette) {
   5204     return This->lpVtbl->CopyPalette(This,pIPalette);
   5205 }
   5206 static FORCEINLINE HRESULT IWICBitmapScaler_CopyPixels(IWICBitmapScaler* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   5207     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   5208 }
   5209 /*** IWICBitmapScaler methods ***/
   5210 static FORCEINLINE HRESULT IWICBitmapScaler_Initialize(IWICBitmapScaler* This,IWICBitmapSource *pISource,UINT uiWidth,UINT uiHeight,WICBitmapInterpolationMode mode) {
   5211     return This->lpVtbl->Initialize(This,pISource,uiWidth,uiHeight,mode);
   5212 }
   5213 #endif
   5214 #endif
   5215 
   5216 #endif
   5217 
   5218 HRESULT STDMETHODCALLTYPE IWICBitmapScaler_Initialize_Proxy(
   5219     IWICBitmapScaler* This,
   5220     IWICBitmapSource *pISource,
   5221     UINT uiWidth,
   5222     UINT uiHeight,
   5223     WICBitmapInterpolationMode mode);
   5224 void __RPC_STUB IWICBitmapScaler_Initialize_Stub(
   5225     IRpcStubBuffer* This,
   5226     IRpcChannelBuffer* pRpcChannelBuffer,
   5227     PRPC_MESSAGE pRpcMessage,
   5228     DWORD* pdwStubPhase);
   5229 
   5230 #endif  /* __IWICBitmapScaler_INTERFACE_DEFINED__ */
   5231 
   5232 /*****************************************************************************
   5233  * IWICBitmapClipper interface
   5234  */
   5235 #ifndef __IWICBitmapClipper_INTERFACE_DEFINED__
   5236 #define __IWICBitmapClipper_INTERFACE_DEFINED__
   5237 
   5238 DEFINE_GUID(IID_IWICBitmapClipper, 0xe4fbcf03, 0x223d, 0x4e81, 0x93,0x33, 0xd6,0x35,0x55,0x6d,0xd1,0xb5);
   5239 #if defined(__cplusplus) && !defined(CINTERFACE)
   5240 MIDL_INTERFACE("e4fbcf03-223d-4e81-9333-d635556dd1b5")
   5241 IWICBitmapClipper : public IWICBitmapSource
   5242 {
   5243     virtual HRESULT STDMETHODCALLTYPE Initialize(
   5244         IWICBitmapSource *pISource,
   5245         const WICRect *prc) = 0;
   5246 
   5247 };
   5248 #ifdef __CRT_UUID_DECL
   5249 __CRT_UUID_DECL(IWICBitmapClipper, 0xe4fbcf03, 0x223d, 0x4e81, 0x93,0x33, 0xd6,0x35,0x55,0x6d,0xd1,0xb5)
   5250 #endif
   5251 #else
   5252 typedef struct IWICBitmapClipperVtbl {
   5253     BEGIN_INTERFACE
   5254 
   5255     /*** IUnknown methods ***/
   5256     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5257         IWICBitmapClipper* This,
   5258         REFIID riid,
   5259         void **ppvObject);
   5260 
   5261     ULONG (STDMETHODCALLTYPE *AddRef)(
   5262         IWICBitmapClipper* This);
   5263 
   5264     ULONG (STDMETHODCALLTYPE *Release)(
   5265         IWICBitmapClipper* This);
   5266 
   5267     /*** IWICBitmapSource methods ***/
   5268     HRESULT (STDMETHODCALLTYPE *GetSize)(
   5269         IWICBitmapClipper* This,
   5270         UINT *puiWidth,
   5271         UINT *puiHeight);
   5272 
   5273     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   5274         IWICBitmapClipper* This,
   5275         WICPixelFormatGUID *pPixelFormat);
   5276 
   5277     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   5278         IWICBitmapClipper* This,
   5279         double *pDpiX,
   5280         double *pDpiY);
   5281 
   5282     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   5283         IWICBitmapClipper* This,
   5284         IWICPalette *pIPalette);
   5285 
   5286     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   5287         IWICBitmapClipper* This,
   5288         const WICRect *prc,
   5289         UINT cbStride,
   5290         UINT cbBufferSize,
   5291         BYTE *pbBuffer);
   5292 
   5293     /*** IWICBitmapClipper methods ***/
   5294     HRESULT (STDMETHODCALLTYPE *Initialize)(
   5295         IWICBitmapClipper* This,
   5296         IWICBitmapSource *pISource,
   5297         const WICRect *prc);
   5298 
   5299     END_INTERFACE
   5300 } IWICBitmapClipperVtbl;
   5301 interface IWICBitmapClipper {
   5302     CONST_VTBL IWICBitmapClipperVtbl* lpVtbl;
   5303 };
   5304 
   5305 #ifdef COBJMACROS
   5306 #ifndef WIDL_C_INLINE_WRAPPERS
   5307 /*** IUnknown methods ***/
   5308 #define IWICBitmapClipper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5309 #define IWICBitmapClipper_AddRef(This) (This)->lpVtbl->AddRef(This)
   5310 #define IWICBitmapClipper_Release(This) (This)->lpVtbl->Release(This)
   5311 /*** IWICBitmapSource methods ***/
   5312 #define IWICBitmapClipper_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   5313 #define IWICBitmapClipper_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   5314 #define IWICBitmapClipper_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   5315 #define IWICBitmapClipper_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   5316 #define IWICBitmapClipper_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   5317 /*** IWICBitmapClipper methods ***/
   5318 #define IWICBitmapClipper_Initialize(This,pISource,prc) (This)->lpVtbl->Initialize(This,pISource,prc)
   5319 #else
   5320 /*** IUnknown methods ***/
   5321 static FORCEINLINE HRESULT IWICBitmapClipper_QueryInterface(IWICBitmapClipper* This,REFIID riid,void **ppvObject) {
   5322     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5323 }
   5324 static FORCEINLINE ULONG IWICBitmapClipper_AddRef(IWICBitmapClipper* This) {
   5325     return This->lpVtbl->AddRef(This);
   5326 }
   5327 static FORCEINLINE ULONG IWICBitmapClipper_Release(IWICBitmapClipper* This) {
   5328     return This->lpVtbl->Release(This);
   5329 }
   5330 /*** IWICBitmapSource methods ***/
   5331 static FORCEINLINE HRESULT IWICBitmapClipper_GetSize(IWICBitmapClipper* This,UINT *puiWidth,UINT *puiHeight) {
   5332     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   5333 }
   5334 static FORCEINLINE HRESULT IWICBitmapClipper_GetPixelFormat(IWICBitmapClipper* This,WICPixelFormatGUID *pPixelFormat) {
   5335     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   5336 }
   5337 static FORCEINLINE HRESULT IWICBitmapClipper_GetResolution(IWICBitmapClipper* This,double *pDpiX,double *pDpiY) {
   5338     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   5339 }
   5340 static FORCEINLINE HRESULT IWICBitmapClipper_CopyPalette(IWICBitmapClipper* This,IWICPalette *pIPalette) {
   5341     return This->lpVtbl->CopyPalette(This,pIPalette);
   5342 }
   5343 static FORCEINLINE HRESULT IWICBitmapClipper_CopyPixels(IWICBitmapClipper* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   5344     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   5345 }
   5346 /*** IWICBitmapClipper methods ***/
   5347 static FORCEINLINE HRESULT IWICBitmapClipper_Initialize(IWICBitmapClipper* This,IWICBitmapSource *pISource,const WICRect *prc) {
   5348     return This->lpVtbl->Initialize(This,pISource,prc);
   5349 }
   5350 #endif
   5351 #endif
   5352 
   5353 #endif
   5354 
   5355 HRESULT STDMETHODCALLTYPE IWICBitmapClipper_Initialize_Proxy(
   5356     IWICBitmapClipper* This,
   5357     IWICBitmapSource *pISource,
   5358     const WICRect *prc);
   5359 void __RPC_STUB IWICBitmapClipper_Initialize_Stub(
   5360     IRpcStubBuffer* This,
   5361     IRpcChannelBuffer* pRpcChannelBuffer,
   5362     PRPC_MESSAGE pRpcMessage,
   5363     DWORD* pdwStubPhase);
   5364 
   5365 #endif  /* __IWICBitmapClipper_INTERFACE_DEFINED__ */
   5366 
   5367 /*****************************************************************************
   5368  * IWICColorTransform interface
   5369  */
   5370 #ifndef __IWICColorTransform_INTERFACE_DEFINED__
   5371 #define __IWICColorTransform_INTERFACE_DEFINED__
   5372 
   5373 DEFINE_GUID(IID_IWICColorTransform, 0xb66f034f, 0xd0e2, 0x40ab, 0xb4,0x36, 0x6d,0xe3,0x9e,0x32,0x1a,0x94);
   5374 #if defined(__cplusplus) && !defined(CINTERFACE)
   5375 MIDL_INTERFACE("b66f034f-d0e2-40ab-b436-6de39e321a94")
   5376 IWICColorTransform : public IWICBitmapSource
   5377 {
   5378     virtual HRESULT STDMETHODCALLTYPE Initialize(
   5379         IWICBitmapSource *pIBitmapSource,
   5380         IWICColorContext *pIContextSource,
   5381         IWICColorContext *pIContextDest,
   5382         REFWICPixelFormatGUID pixelFmtDest) = 0;
   5383 
   5384 };
   5385 #ifdef __CRT_UUID_DECL
   5386 __CRT_UUID_DECL(IWICColorTransform, 0xb66f034f, 0xd0e2, 0x40ab, 0xb4,0x36, 0x6d,0xe3,0x9e,0x32,0x1a,0x94)
   5387 #endif
   5388 #else
   5389 typedef struct IWICColorTransformVtbl {
   5390     BEGIN_INTERFACE
   5391 
   5392     /*** IUnknown methods ***/
   5393     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5394         IWICColorTransform* This,
   5395         REFIID riid,
   5396         void **ppvObject);
   5397 
   5398     ULONG (STDMETHODCALLTYPE *AddRef)(
   5399         IWICColorTransform* This);
   5400 
   5401     ULONG (STDMETHODCALLTYPE *Release)(
   5402         IWICColorTransform* This);
   5403 
   5404     /*** IWICBitmapSource methods ***/
   5405     HRESULT (STDMETHODCALLTYPE *GetSize)(
   5406         IWICColorTransform* This,
   5407         UINT *puiWidth,
   5408         UINT *puiHeight);
   5409 
   5410     HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
   5411         IWICColorTransform* This,
   5412         WICPixelFormatGUID *pPixelFormat);
   5413 
   5414     HRESULT (STDMETHODCALLTYPE *GetResolution)(
   5415         IWICColorTransform* This,
   5416         double *pDpiX,
   5417         double *pDpiY);
   5418 
   5419     HRESULT (STDMETHODCALLTYPE *CopyPalette)(
   5420         IWICColorTransform* This,
   5421         IWICPalette *pIPalette);
   5422 
   5423     HRESULT (STDMETHODCALLTYPE *CopyPixels)(
   5424         IWICColorTransform* This,
   5425         const WICRect *prc,
   5426         UINT cbStride,
   5427         UINT cbBufferSize,
   5428         BYTE *pbBuffer);
   5429 
   5430     /*** IWICColorTransform methods ***/
   5431     HRESULT (STDMETHODCALLTYPE *Initialize)(
   5432         IWICColorTransform* This,
   5433         IWICBitmapSource *pIBitmapSource,
   5434         IWICColorContext *pIContextSource,
   5435         IWICColorContext *pIContextDest,
   5436         REFWICPixelFormatGUID pixelFmtDest);
   5437 
   5438     END_INTERFACE
   5439 } IWICColorTransformVtbl;
   5440 interface IWICColorTransform {
   5441     CONST_VTBL IWICColorTransformVtbl* lpVtbl;
   5442 };
   5443 
   5444 #ifdef COBJMACROS
   5445 #ifndef WIDL_C_INLINE_WRAPPERS
   5446 /*** IUnknown methods ***/
   5447 #define IWICColorTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5448 #define IWICColorTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
   5449 #define IWICColorTransform_Release(This) (This)->lpVtbl->Release(This)
   5450 /*** IWICBitmapSource methods ***/
   5451 #define IWICColorTransform_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
   5452 #define IWICColorTransform_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
   5453 #define IWICColorTransform_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
   5454 #define IWICColorTransform_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
   5455 #define IWICColorTransform_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
   5456 /*** IWICColorTransform methods ***/
   5457 #define IWICColorTransform_Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest) (This)->lpVtbl->Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest)
   5458 #else
   5459 /*** IUnknown methods ***/
   5460 static FORCEINLINE HRESULT IWICColorTransform_QueryInterface(IWICColorTransform* This,REFIID riid,void **ppvObject) {
   5461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5462 }
   5463 static FORCEINLINE ULONG IWICColorTransform_AddRef(IWICColorTransform* This) {
   5464     return This->lpVtbl->AddRef(This);
   5465 }
   5466 static FORCEINLINE ULONG IWICColorTransform_Release(IWICColorTransform* This) {
   5467     return This->lpVtbl->Release(This);
   5468 }
   5469 /*** IWICBitmapSource methods ***/
   5470 static FORCEINLINE HRESULT IWICColorTransform_GetSize(IWICColorTransform* This,UINT *puiWidth,UINT *puiHeight) {
   5471     return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
   5472 }
   5473 static FORCEINLINE HRESULT IWICColorTransform_GetPixelFormat(IWICColorTransform* This,WICPixelFormatGUID *pPixelFormat) {
   5474     return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
   5475 }
   5476 static FORCEINLINE HRESULT IWICColorTransform_GetResolution(IWICColorTransform* This,double *pDpiX,double *pDpiY) {
   5477     return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
   5478 }
   5479 static FORCEINLINE HRESULT IWICColorTransform_CopyPalette(IWICColorTransform* This,IWICPalette *pIPalette) {
   5480     return This->lpVtbl->CopyPalette(This,pIPalette);
   5481 }
   5482 static FORCEINLINE HRESULT IWICColorTransform_CopyPixels(IWICColorTransform* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
   5483     return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
   5484 }
   5485 /*** IWICColorTransform methods ***/
   5486 static FORCEINLINE HRESULT IWICColorTransform_Initialize(IWICColorTransform* This,IWICBitmapSource *pIBitmapSource,IWICColorContext *pIContextSource,IWICColorContext *pIContextDest,REFWICPixelFormatGUID pixelFmtDest) {
   5487     return This->lpVtbl->Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest);
   5488 }
   5489 #endif
   5490 #endif
   5491 
   5492 #endif
   5493 
   5494 HRESULT STDMETHODCALLTYPE IWICColorTransform_Initialize_Proxy(
   5495     IWICColorTransform* This,
   5496     IWICBitmapSource *pIBitmapSource,
   5497     IWICColorContext *pIContextSource,
   5498     IWICColorContext *pIContextDest,
   5499     REFWICPixelFormatGUID pixelFmtDest);
   5500 void __RPC_STUB IWICColorTransform_Initialize_Stub(
   5501     IRpcStubBuffer* This,
   5502     IRpcChannelBuffer* pRpcChannelBuffer,
   5503     PRPC_MESSAGE pRpcMessage,
   5504     DWORD* pdwStubPhase);
   5505 
   5506 #endif  /* __IWICColorTransform_INTERFACE_DEFINED__ */
   5507 
   5508 /*****************************************************************************
   5509  * IWICFastMetadataEncoder interface
   5510  */
   5511 #ifndef __IWICFastMetadataEncoder_INTERFACE_DEFINED__
   5512 #define __IWICFastMetadataEncoder_INTERFACE_DEFINED__
   5513 
   5514 DEFINE_GUID(IID_IWICFastMetadataEncoder, 0xb84e2c09, 0x78c9, 0x4ac4, 0x8b,0xd3, 0x52,0x4a,0xe1,0x66,0x3a,0x2f);
   5515 #if defined(__cplusplus) && !defined(CINTERFACE)
   5516 MIDL_INTERFACE("b84e2c09-78c9-4ac4-8bd3-524ae1663a2f")
   5517 IWICFastMetadataEncoder : public IUnknown
   5518 {
   5519     virtual HRESULT STDMETHODCALLTYPE Commit(
   5520         ) = 0;
   5521 
   5522     virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
   5523         IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
   5524 
   5525 };
   5526 #ifdef __CRT_UUID_DECL
   5527 __CRT_UUID_DECL(IWICFastMetadataEncoder, 0xb84e2c09, 0x78c9, 0x4ac4, 0x8b,0xd3, 0x52,0x4a,0xe1,0x66,0x3a,0x2f)
   5528 #endif
   5529 #else
   5530 typedef struct IWICFastMetadataEncoderVtbl {
   5531     BEGIN_INTERFACE
   5532 
   5533     /*** IUnknown methods ***/
   5534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5535         IWICFastMetadataEncoder* This,
   5536         REFIID riid,
   5537         void **ppvObject);
   5538 
   5539     ULONG (STDMETHODCALLTYPE *AddRef)(
   5540         IWICFastMetadataEncoder* This);
   5541 
   5542     ULONG (STDMETHODCALLTYPE *Release)(
   5543         IWICFastMetadataEncoder* This);
   5544 
   5545     /*** IWICFastMetadataEncoder methods ***/
   5546     HRESULT (STDMETHODCALLTYPE *Commit)(
   5547         IWICFastMetadataEncoder* This);
   5548 
   5549     HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
   5550         IWICFastMetadataEncoder* This,
   5551         IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   5552 
   5553     END_INTERFACE
   5554 } IWICFastMetadataEncoderVtbl;
   5555 interface IWICFastMetadataEncoder {
   5556     CONST_VTBL IWICFastMetadataEncoderVtbl* lpVtbl;
   5557 };
   5558 
   5559 #ifdef COBJMACROS
   5560 #ifndef WIDL_C_INLINE_WRAPPERS
   5561 /*** IUnknown methods ***/
   5562 #define IWICFastMetadataEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5563 #define IWICFastMetadataEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
   5564 #define IWICFastMetadataEncoder_Release(This) (This)->lpVtbl->Release(This)
   5565 /*** IWICFastMetadataEncoder methods ***/
   5566 #define IWICFastMetadataEncoder_Commit(This) (This)->lpVtbl->Commit(This)
   5567 #define IWICFastMetadataEncoder_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
   5568 #else
   5569 /*** IUnknown methods ***/
   5570 static FORCEINLINE HRESULT IWICFastMetadataEncoder_QueryInterface(IWICFastMetadataEncoder* This,REFIID riid,void **ppvObject) {
   5571     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5572 }
   5573 static FORCEINLINE ULONG IWICFastMetadataEncoder_AddRef(IWICFastMetadataEncoder* This) {
   5574     return This->lpVtbl->AddRef(This);
   5575 }
   5576 static FORCEINLINE ULONG IWICFastMetadataEncoder_Release(IWICFastMetadataEncoder* This) {
   5577     return This->lpVtbl->Release(This);
   5578 }
   5579 /*** IWICFastMetadataEncoder methods ***/
   5580 static FORCEINLINE HRESULT IWICFastMetadataEncoder_Commit(IWICFastMetadataEncoder* This) {
   5581     return This->lpVtbl->Commit(This);
   5582 }
   5583 static FORCEINLINE HRESULT IWICFastMetadataEncoder_GetMetadataQueryWriter(IWICFastMetadataEncoder* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
   5584     return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
   5585 }
   5586 #endif
   5587 #endif
   5588 
   5589 #endif
   5590 
   5591 HRESULT STDMETHODCALLTYPE IWICFastMetadataEncoder_Commit_Proxy(
   5592     IWICFastMetadataEncoder* This);
   5593 void __RPC_STUB IWICFastMetadataEncoder_Commit_Stub(
   5594     IRpcStubBuffer* This,
   5595     IRpcChannelBuffer* pRpcChannelBuffer,
   5596     PRPC_MESSAGE pRpcMessage,
   5597     DWORD* pdwStubPhase);
   5598 HRESULT STDMETHODCALLTYPE IWICFastMetadataEncoder_GetMetadataQueryWriter_Proxy(
   5599     IWICFastMetadataEncoder* This,
   5600     IWICMetadataQueryWriter **ppIMetadataQueryWriter);
   5601 void __RPC_STUB IWICFastMetadataEncoder_GetMetadataQueryWriter_Stub(
   5602     IRpcStubBuffer* This,
   5603     IRpcChannelBuffer* pRpcChannelBuffer,
   5604     PRPC_MESSAGE pRpcMessage,
   5605     DWORD* pdwStubPhase);
   5606 
   5607 #endif  /* __IWICFastMetadataEncoder_INTERFACE_DEFINED__ */
   5608 
   5609 DEFINE_GUID(CLSID_WICImagingFactory, 0xcacaf262,0x9370,0x4615,0xa1,0x3b,0x9f,0x55,0x39,0xda,0x4c,0x0a);
   5610 /*****************************************************************************
   5611  * IWICImagingFactory interface
   5612  */
   5613 #ifndef __IWICImagingFactory_INTERFACE_DEFINED__
   5614 #define __IWICImagingFactory_INTERFACE_DEFINED__
   5615 
   5616 DEFINE_GUID(IID_IWICImagingFactory, 0xec5ec8a9, 0xc395, 0x4314, 0x9c,0x77, 0x54,0xd7,0xa9,0x35,0xff,0x70);
   5617 #if defined(__cplusplus) && !defined(CINTERFACE)
   5618 MIDL_INTERFACE("ec5ec8a9-c395-4314-9c77-54d7a935ff70")
   5619 IWICImagingFactory : public IUnknown
   5620 {
   5621     virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromFilename(
   5622         LPCWSTR wzFilename,
   5623         const GUID *pguidVendor,
   5624         DWORD dwDesiredAccess,
   5625         WICDecodeOptions metadataOptions,
   5626         IWICBitmapDecoder **ppIDecoder) = 0;
   5627 
   5628     virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromStream(
   5629         IStream *pIStream,
   5630         const GUID *pguidVendor,
   5631         WICDecodeOptions metadataOptions,
   5632         IWICBitmapDecoder **ppIDecoder) = 0;
   5633 
   5634     virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromFileHandle(
   5635         ULONG_PTR hFile,
   5636         const GUID *pguidVendor,
   5637         WICDecodeOptions metadataOptions,
   5638         IWICBitmapDecoder **ppIDecoder) = 0;
   5639 
   5640     virtual HRESULT STDMETHODCALLTYPE CreateComponentInfo(
   5641         REFCLSID clsidComponent,
   5642         IWICComponentInfo **ppIInfo) = 0;
   5643 
   5644     virtual HRESULT STDMETHODCALLTYPE CreateDecoder(
   5645         REFGUID guidContainerFormat,
   5646         const GUID *pguidVendor,
   5647         IWICBitmapDecoder **ppIDecoder) = 0;
   5648 
   5649     virtual HRESULT STDMETHODCALLTYPE CreateEncoder(
   5650         REFGUID guidContainerFormat,
   5651         const GUID *pguidVendor,
   5652         IWICBitmapEncoder **ppIEncoder) = 0;
   5653 
   5654     virtual HRESULT STDMETHODCALLTYPE CreatePalette(
   5655         IWICPalette **ppIPalette) = 0;
   5656 
   5657     virtual HRESULT STDMETHODCALLTYPE CreateFormatConverter(
   5658         IWICFormatConverter **ppIFormatConverter) = 0;
   5659 
   5660     virtual HRESULT STDMETHODCALLTYPE CreateBitmapScaler(
   5661         IWICBitmapScaler **ppIBitmapScaler) = 0;
   5662 
   5663     virtual HRESULT STDMETHODCALLTYPE CreateBitmapClipper(
   5664         IWICBitmapClipper **ppIBitmapClipper) = 0;
   5665 
   5666     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFlipRotator(
   5667         IWICBitmapFlipRotator **ppIBitmapFlipRotator) = 0;
   5668 
   5669     virtual HRESULT STDMETHODCALLTYPE CreateStream(
   5670         IWICStream **ppIWICStream) = 0;
   5671 
   5672     virtual HRESULT STDMETHODCALLTYPE CreateColorContext(
   5673         IWICColorContext **ppIWICColorContext) = 0;
   5674 
   5675     virtual HRESULT STDMETHODCALLTYPE CreateColorTransformer(
   5676         IWICColorTransform **ppIWICColorTransform) = 0;
   5677 
   5678     virtual HRESULT STDMETHODCALLTYPE CreateBitmap(
   5679         UINT uiWidth,
   5680         UINT uiHeight,
   5681         REFWICPixelFormatGUID pixelFormat,
   5682         WICBitmapCreateCacheOption option,
   5683         IWICBitmap **ppIBitmap) = 0;
   5684 
   5685     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromSource(
   5686         IWICBitmapSource *piBitmapSource,
   5687         WICBitmapCreateCacheOption option,
   5688         IWICBitmap **ppIBitmap) = 0;
   5689 
   5690     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromSourceRect(
   5691         IWICBitmapSource *piBitmapSource,
   5692         UINT x,
   5693         UINT y,
   5694         UINT width,
   5695         UINT height,
   5696         IWICBitmap **ppIBitmap) = 0;
   5697 
   5698     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromMemory(
   5699         UINT uiWidth,
   5700         UINT uiHeight,
   5701         REFWICPixelFormatGUID pixelFormat,
   5702         UINT cbStride,
   5703         UINT cbBufferSize,
   5704         BYTE *pbBuffer,
   5705         IWICBitmap **ppIBitmap) = 0;
   5706 
   5707     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromHBITMAP(
   5708         HBITMAP hBitmap,
   5709         HPALETTE hPalette,
   5710         WICBitmapAlphaChannelOption options,
   5711         IWICBitmap **ppIBitmap) = 0;
   5712 
   5713     virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromHICON(
   5714         HICON hIcon,
   5715         IWICBitmap **ppIBitmap) = 0;
   5716 
   5717     virtual HRESULT STDMETHODCALLTYPE CreateComponentEnumerator(
   5718         DWORD componentTypes,
   5719         DWORD options,
   5720         IEnumUnknown **ppIEnumUnknown) = 0;
   5721 
   5722     virtual HRESULT STDMETHODCALLTYPE CreateFastMetadataEncoderFromDecoder(
   5723         IWICBitmapDecoder *pIDecoder,
   5724         IWICFastMetadataEncoder **ppIFastEncoder) = 0;
   5725 
   5726     virtual HRESULT STDMETHODCALLTYPE CreateFastMetadataEncoderFromFrameDecode(
   5727         IWICBitmapFrameDecode *pIFrameDecoder,
   5728         IWICFastMetadataEncoder **ppIFastEncoder) = 0;
   5729 
   5730     virtual HRESULT STDMETHODCALLTYPE CreateQueryWriter(
   5731         REFGUID guidMetadataFormat,
   5732         const GUID *pguidVendor,
   5733         IWICMetadataQueryWriter **ppIQueryWriter) = 0;
   5734 
   5735     virtual HRESULT STDMETHODCALLTYPE CreateQueryWriterFromReader(
   5736         IWICMetadataQueryReader *pIQueryReader,
   5737         const GUID *pguidVendor,
   5738         IWICMetadataQueryWriter **ppIQueryWriter) = 0;
   5739 
   5740 };
   5741 #ifdef __CRT_UUID_DECL
   5742 __CRT_UUID_DECL(IWICImagingFactory, 0xec5ec8a9, 0xc395, 0x4314, 0x9c,0x77, 0x54,0xd7,0xa9,0x35,0xff,0x70)
   5743 #endif
   5744 #else
   5745 typedef struct IWICImagingFactoryVtbl {
   5746     BEGIN_INTERFACE
   5747 
   5748     /*** IUnknown methods ***/
   5749     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5750         IWICImagingFactory* This,
   5751         REFIID riid,
   5752         void **ppvObject);
   5753 
   5754     ULONG (STDMETHODCALLTYPE *AddRef)(
   5755         IWICImagingFactory* This);
   5756 
   5757     ULONG (STDMETHODCALLTYPE *Release)(
   5758         IWICImagingFactory* This);
   5759 
   5760     /*** IWICImagingFactory methods ***/
   5761     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFilename)(
   5762         IWICImagingFactory* This,
   5763         LPCWSTR wzFilename,
   5764         const GUID *pguidVendor,
   5765         DWORD dwDesiredAccess,
   5766         WICDecodeOptions metadataOptions,
   5767         IWICBitmapDecoder **ppIDecoder);
   5768 
   5769     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromStream)(
   5770         IWICImagingFactory* This,
   5771         IStream *pIStream,
   5772         const GUID *pguidVendor,
   5773         WICDecodeOptions metadataOptions,
   5774         IWICBitmapDecoder **ppIDecoder);
   5775 
   5776     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFileHandle)(
   5777         IWICImagingFactory* This,
   5778         ULONG_PTR hFile,
   5779         const GUID *pguidVendor,
   5780         WICDecodeOptions metadataOptions,
   5781         IWICBitmapDecoder **ppIDecoder);
   5782 
   5783     HRESULT (STDMETHODCALLTYPE *CreateComponentInfo)(
   5784         IWICImagingFactory* This,
   5785         REFCLSID clsidComponent,
   5786         IWICComponentInfo **ppIInfo);
   5787 
   5788     HRESULT (STDMETHODCALLTYPE *CreateDecoder)(
   5789         IWICImagingFactory* This,
   5790         REFGUID guidContainerFormat,
   5791         const GUID *pguidVendor,
   5792         IWICBitmapDecoder **ppIDecoder);
   5793 
   5794     HRESULT (STDMETHODCALLTYPE *CreateEncoder)(
   5795         IWICImagingFactory* This,
   5796         REFGUID guidContainerFormat,
   5797         const GUID *pguidVendor,
   5798         IWICBitmapEncoder **ppIEncoder);
   5799 
   5800     HRESULT (STDMETHODCALLTYPE *CreatePalette)(
   5801         IWICImagingFactory* This,
   5802         IWICPalette **ppIPalette);
   5803 
   5804     HRESULT (STDMETHODCALLTYPE *CreateFormatConverter)(
   5805         IWICImagingFactory* This,
   5806         IWICFormatConverter **ppIFormatConverter);
   5807 
   5808     HRESULT (STDMETHODCALLTYPE *CreateBitmapScaler)(
   5809         IWICImagingFactory* This,
   5810         IWICBitmapScaler **ppIBitmapScaler);
   5811 
   5812     HRESULT (STDMETHODCALLTYPE *CreateBitmapClipper)(
   5813         IWICImagingFactory* This,
   5814         IWICBitmapClipper **ppIBitmapClipper);
   5815 
   5816     HRESULT (STDMETHODCALLTYPE *CreateBitmapFlipRotator)(
   5817         IWICImagingFactory* This,
   5818         IWICBitmapFlipRotator **ppIBitmapFlipRotator);
   5819 
   5820     HRESULT (STDMETHODCALLTYPE *CreateStream)(
   5821         IWICImagingFactory* This,
   5822         IWICStream **ppIWICStream);
   5823 
   5824     HRESULT (STDMETHODCALLTYPE *CreateColorContext)(
   5825         IWICImagingFactory* This,
   5826         IWICColorContext **ppIWICColorContext);
   5827 
   5828     HRESULT (STDMETHODCALLTYPE *CreateColorTransformer)(
   5829         IWICImagingFactory* This,
   5830         IWICColorTransform **ppIWICColorTransform);
   5831 
   5832     HRESULT (STDMETHODCALLTYPE *CreateBitmap)(
   5833         IWICImagingFactory* This,
   5834         UINT uiWidth,
   5835         UINT uiHeight,
   5836         REFWICPixelFormatGUID pixelFormat,
   5837         WICBitmapCreateCacheOption option,
   5838         IWICBitmap **ppIBitmap);
   5839 
   5840     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSource)(
   5841         IWICImagingFactory* This,
   5842         IWICBitmapSource *piBitmapSource,
   5843         WICBitmapCreateCacheOption option,
   5844         IWICBitmap **ppIBitmap);
   5845 
   5846     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSourceRect)(
   5847         IWICImagingFactory* This,
   5848         IWICBitmapSource *piBitmapSource,
   5849         UINT x,
   5850         UINT y,
   5851         UINT width,
   5852         UINT height,
   5853         IWICBitmap **ppIBitmap);
   5854 
   5855     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromMemory)(
   5856         IWICImagingFactory* This,
   5857         UINT uiWidth,
   5858         UINT uiHeight,
   5859         REFWICPixelFormatGUID pixelFormat,
   5860         UINT cbStride,
   5861         UINT cbBufferSize,
   5862         BYTE *pbBuffer,
   5863         IWICBitmap **ppIBitmap);
   5864 
   5865     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHBITMAP)(
   5866         IWICImagingFactory* This,
   5867         HBITMAP hBitmap,
   5868         HPALETTE hPalette,
   5869         WICBitmapAlphaChannelOption options,
   5870         IWICBitmap **ppIBitmap);
   5871 
   5872     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHICON)(
   5873         IWICImagingFactory* This,
   5874         HICON hIcon,
   5875         IWICBitmap **ppIBitmap);
   5876 
   5877     HRESULT (STDMETHODCALLTYPE *CreateComponentEnumerator)(
   5878         IWICImagingFactory* This,
   5879         DWORD componentTypes,
   5880         DWORD options,
   5881         IEnumUnknown **ppIEnumUnknown);
   5882 
   5883     HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromDecoder)(
   5884         IWICImagingFactory* This,
   5885         IWICBitmapDecoder *pIDecoder,
   5886         IWICFastMetadataEncoder **ppIFastEncoder);
   5887 
   5888     HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromFrameDecode)(
   5889         IWICImagingFactory* This,
   5890         IWICBitmapFrameDecode *pIFrameDecoder,
   5891         IWICFastMetadataEncoder **ppIFastEncoder);
   5892 
   5893     HRESULT (STDMETHODCALLTYPE *CreateQueryWriter)(
   5894         IWICImagingFactory* This,
   5895         REFGUID guidMetadataFormat,
   5896         const GUID *pguidVendor,
   5897         IWICMetadataQueryWriter **ppIQueryWriter);
   5898 
   5899     HRESULT (STDMETHODCALLTYPE *CreateQueryWriterFromReader)(
   5900         IWICImagingFactory* This,
   5901         IWICMetadataQueryReader *pIQueryReader,
   5902         const GUID *pguidVendor,
   5903         IWICMetadataQueryWriter **ppIQueryWriter);
   5904 
   5905     END_INTERFACE
   5906 } IWICImagingFactoryVtbl;
   5907 interface IWICImagingFactory {
   5908     CONST_VTBL IWICImagingFactoryVtbl* lpVtbl;
   5909 };
   5910 
   5911 #ifdef COBJMACROS
   5912 #ifndef WIDL_C_INLINE_WRAPPERS
   5913 /*** IUnknown methods ***/
   5914 #define IWICImagingFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5915 #define IWICImagingFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   5916 #define IWICImagingFactory_Release(This) (This)->lpVtbl->Release(This)
   5917 /*** IWICImagingFactory methods ***/
   5918 #define IWICImagingFactory_CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder)
   5919 #define IWICImagingFactory_CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder)
   5920 #define IWICImagingFactory_CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder)
   5921 #define IWICImagingFactory_CreateComponentInfo(This,clsidComponent,ppIInfo) (This)->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo)
   5922 #define IWICImagingFactory_CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder) (This)->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder)
   5923 #define IWICImagingFactory_CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder) (This)->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder)
   5924 #define IWICImagingFactory_CreatePalette(This,ppIPalette) (This)->lpVtbl->CreatePalette(This,ppIPalette)
   5925 #define IWICImagingFactory_CreateFormatConverter(This,ppIFormatConverter) (This)->lpVtbl->CreateFormatConverter(This,ppIFormatConverter)
   5926 #define IWICImagingFactory_CreateBitmapScaler(This,ppIBitmapScaler) (This)->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler)
   5927 #define IWICImagingFactory_CreateBitmapClipper(This,ppIBitmapClipper) (This)->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper)
   5928 #define IWICImagingFactory_CreateBitmapFlipRotator(This,ppIBitmapFlipRotator) (This)->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator)
   5929 #define IWICImagingFactory_CreateStream(This,ppIWICStream) (This)->lpVtbl->CreateStream(This,ppIWICStream)
   5930 #define IWICImagingFactory_CreateColorContext(This,ppIWICColorContext) (This)->lpVtbl->CreateColorContext(This,ppIWICColorContext)
   5931 #define IWICImagingFactory_CreateColorTransformer(This,ppIWICColorTransform) (This)->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform)
   5932 #define IWICImagingFactory_CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap) (This)->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap)
   5933 #define IWICImagingFactory_CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap)
   5934 #define IWICImagingFactory_CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap)
   5935 #define IWICImagingFactory_CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap) (This)->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap)
   5936 #define IWICImagingFactory_CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap)
   5937 #define IWICImagingFactory_CreateBitmapFromHICON(This,hIcon,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap)
   5938 #define IWICImagingFactory_CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown) (This)->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown)
   5939 #define IWICImagingFactory_CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder)
   5940 #define IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder)
   5941 #define IWICImagingFactory_CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter)
   5942 #define IWICImagingFactory_CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter)
   5943 #else
   5944 /*** IUnknown methods ***/
   5945 static FORCEINLINE HRESULT IWICImagingFactory_QueryInterface(IWICImagingFactory* This,REFIID riid,void **ppvObject) {
   5946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5947 }
   5948 static FORCEINLINE ULONG IWICImagingFactory_AddRef(IWICImagingFactory* This) {
   5949     return This->lpVtbl->AddRef(This);
   5950 }
   5951 static FORCEINLINE ULONG IWICImagingFactory_Release(IWICImagingFactory* This) {
   5952     return This->lpVtbl->Release(This);
   5953 }
   5954 /*** IWICImagingFactory methods ***/
   5955 static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromFilename(IWICImagingFactory* This,LPCWSTR wzFilename,const GUID *pguidVendor,DWORD dwDesiredAccess,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
   5956     return This->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder);
   5957 }
   5958 static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromStream(IWICImagingFactory* This,IStream *pIStream,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
   5959     return This->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder);
   5960 }
   5961 static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromFileHandle(IWICImagingFactory* This,ULONG_PTR hFile,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
   5962     return This->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder);
   5963 }
   5964 static FORCEINLINE HRESULT IWICImagingFactory_CreateComponentInfo(IWICImagingFactory* This,REFCLSID clsidComponent,IWICComponentInfo **ppIInfo) {
   5965     return This->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo);
   5966 }
   5967 static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoder(IWICImagingFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapDecoder **ppIDecoder) {
   5968     return This->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder);
   5969 }
   5970 static FORCEINLINE HRESULT IWICImagingFactory_CreateEncoder(IWICImagingFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapEncoder **ppIEncoder) {
   5971     return This->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder);
   5972 }
   5973 static FORCEINLINE HRESULT IWICImagingFactory_CreatePalette(IWICImagingFactory* This,IWICPalette **ppIPalette) {
   5974     return This->lpVtbl->CreatePalette(This,ppIPalette);
   5975 }
   5976 static FORCEINLINE HRESULT IWICImagingFactory_CreateFormatConverter(IWICImagingFactory* This,IWICFormatConverter **ppIFormatConverter) {
   5977     return This->lpVtbl->CreateFormatConverter(This,ppIFormatConverter);
   5978 }
   5979 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapScaler(IWICImagingFactory* This,IWICBitmapScaler **ppIBitmapScaler) {
   5980     return This->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler);
   5981 }
   5982 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapClipper(IWICImagingFactory* This,IWICBitmapClipper **ppIBitmapClipper) {
   5983     return This->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper);
   5984 }
   5985 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFlipRotator(IWICImagingFactory* This,IWICBitmapFlipRotator **ppIBitmapFlipRotator) {
   5986     return This->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator);
   5987 }
   5988 static FORCEINLINE HRESULT IWICImagingFactory_CreateStream(IWICImagingFactory* This,IWICStream **ppIWICStream) {
   5989     return This->lpVtbl->CreateStream(This,ppIWICStream);
   5990 }
   5991 static FORCEINLINE HRESULT IWICImagingFactory_CreateColorContext(IWICImagingFactory* This,IWICColorContext **ppIWICColorContext) {
   5992     return This->lpVtbl->CreateColorContext(This,ppIWICColorContext);
   5993 }
   5994 static FORCEINLINE HRESULT IWICImagingFactory_CreateColorTransformer(IWICImagingFactory* This,IWICColorTransform **ppIWICColorTransform) {
   5995     return This->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform);
   5996 }
   5997 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmap(IWICImagingFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
   5998     return This->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap);
   5999 }
   6000 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromSource(IWICImagingFactory* This,IWICBitmapSource *piBitmapSource,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
   6001     return This->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap);
   6002 }
   6003 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromSourceRect(IWICImagingFactory* This,IWICBitmapSource *piBitmapSource,UINT x,UINT y,UINT width,UINT height,IWICBitmap **ppIBitmap) {
   6004     return This->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap);
   6005 }
   6006 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromMemory(IWICImagingFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer,IWICBitmap **ppIBitmap) {
   6007     return This->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap);
   6008 }
   6009 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromHBITMAP(IWICImagingFactory* This,HBITMAP hBitmap,HPALETTE hPalette,WICBitmapAlphaChannelOption options,IWICBitmap **ppIBitmap) {
   6010     return This->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap);
   6011 }
   6012 static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromHICON(IWICImagingFactory* This,HICON hIcon,IWICBitmap **ppIBitmap) {
   6013     return This->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap);
   6014 }
   6015 static FORCEINLINE HRESULT IWICImagingFactory_CreateComponentEnumerator(IWICImagingFactory* This,DWORD componentTypes,DWORD options,IEnumUnknown **ppIEnumUnknown) {
   6016     return This->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown);
   6017 }
   6018 static FORCEINLINE HRESULT IWICImagingFactory_CreateFastMetadataEncoderFromDecoder(IWICImagingFactory* This,IWICBitmapDecoder *pIDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
   6019     return This->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder);
   6020 }
   6021 static FORCEINLINE HRESULT IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode(IWICImagingFactory* This,IWICBitmapFrameDecode *pIFrameDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
   6022     return This->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder);
   6023 }
   6024 static FORCEINLINE HRESULT IWICImagingFactory_CreateQueryWriter(IWICImagingFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
   6025     return This->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter);
   6026 }
   6027 static FORCEINLINE HRESULT IWICImagingFactory_CreateQueryWriterFromReader(IWICImagingFactory* This,IWICMetadataQueryReader *pIQueryReader,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
   6028     return This->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter);
   6029 }
   6030 #endif
   6031 #endif
   6032 
   6033 #endif
   6034 
   6035 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateDecoderFromFilename_Proxy(
   6036     IWICImagingFactory* This,
   6037     LPCWSTR wzFilename,
   6038     const GUID *pguidVendor,
   6039     DWORD dwDesiredAccess,
   6040     WICDecodeOptions metadataOptions,
   6041     IWICBitmapDecoder **ppIDecoder);
   6042 void __RPC_STUB IWICImagingFactory_CreateDecoderFromFilename_Stub(
   6043     IRpcStubBuffer* This,
   6044     IRpcChannelBuffer* pRpcChannelBuffer,
   6045     PRPC_MESSAGE pRpcMessage,
   6046     DWORD* pdwStubPhase);
   6047 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateDecoderFromStream_Proxy(
   6048     IWICImagingFactory* This,
   6049     IStream *pIStream,
   6050     const GUID *pguidVendor,
   6051     WICDecodeOptions metadataOptions,
   6052     IWICBitmapDecoder **ppIDecoder);
   6053 void __RPC_STUB IWICImagingFactory_CreateDecoderFromStream_Stub(
   6054     IRpcStubBuffer* This,
   6055     IRpcChannelBuffer* pRpcChannelBuffer,
   6056     PRPC_MESSAGE pRpcMessage,
   6057     DWORD* pdwStubPhase);
   6058 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateDecoderFromFileHandle_Proxy(
   6059     IWICImagingFactory* This,
   6060     ULONG_PTR hFile,
   6061     const GUID *pguidVendor,
   6062     WICDecodeOptions metadataOptions,
   6063     IWICBitmapDecoder **ppIDecoder);
   6064 void __RPC_STUB IWICImagingFactory_CreateDecoderFromFileHandle_Stub(
   6065     IRpcStubBuffer* This,
   6066     IRpcChannelBuffer* pRpcChannelBuffer,
   6067     PRPC_MESSAGE pRpcMessage,
   6068     DWORD* pdwStubPhase);
   6069 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateComponentInfo_Proxy(
   6070     IWICImagingFactory* This,
   6071     REFCLSID clsidComponent,
   6072     IWICComponentInfo **ppIInfo);
   6073 void __RPC_STUB IWICImagingFactory_CreateComponentInfo_Stub(
   6074     IRpcStubBuffer* This,
   6075     IRpcChannelBuffer* pRpcChannelBuffer,
   6076     PRPC_MESSAGE pRpcMessage,
   6077     DWORD* pdwStubPhase);
   6078 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateDecoder_Proxy(
   6079     IWICImagingFactory* This,
   6080     REFGUID guidContainerFormat,
   6081     const GUID *pguidVendor,
   6082     IWICBitmapDecoder **ppIDecoder);
   6083 void __RPC_STUB IWICImagingFactory_CreateDecoder_Stub(
   6084     IRpcStubBuffer* This,
   6085     IRpcChannelBuffer* pRpcChannelBuffer,
   6086     PRPC_MESSAGE pRpcMessage,
   6087     DWORD* pdwStubPhase);
   6088 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateEncoder_Proxy(
   6089     IWICImagingFactory* This,
   6090     REFGUID guidContainerFormat,
   6091     const GUID *pguidVendor,
   6092     IWICBitmapEncoder **ppIEncoder);
   6093 void __RPC_STUB IWICImagingFactory_CreateEncoder_Stub(
   6094     IRpcStubBuffer* This,
   6095     IRpcChannelBuffer* pRpcChannelBuffer,
   6096     PRPC_MESSAGE pRpcMessage,
   6097     DWORD* pdwStubPhase);
   6098 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreatePalette_Proxy(
   6099     IWICImagingFactory* This,
   6100     IWICPalette **ppIPalette);
   6101 void __RPC_STUB IWICImagingFactory_CreatePalette_Stub(
   6102     IRpcStubBuffer* This,
   6103     IRpcChannelBuffer* pRpcChannelBuffer,
   6104     PRPC_MESSAGE pRpcMessage,
   6105     DWORD* pdwStubPhase);
   6106 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateFormatConverter_Proxy(
   6107     IWICImagingFactory* This,
   6108     IWICFormatConverter **ppIFormatConverter);
   6109 void __RPC_STUB IWICImagingFactory_CreateFormatConverter_Stub(
   6110     IRpcStubBuffer* This,
   6111     IRpcChannelBuffer* pRpcChannelBuffer,
   6112     PRPC_MESSAGE pRpcMessage,
   6113     DWORD* pdwStubPhase);
   6114 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapScaler_Proxy(
   6115     IWICImagingFactory* This,
   6116     IWICBitmapScaler **ppIBitmapScaler);
   6117 void __RPC_STUB IWICImagingFactory_CreateBitmapScaler_Stub(
   6118     IRpcStubBuffer* This,
   6119     IRpcChannelBuffer* pRpcChannelBuffer,
   6120     PRPC_MESSAGE pRpcMessage,
   6121     DWORD* pdwStubPhase);
   6122 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapClipper_Proxy(
   6123     IWICImagingFactory* This,
   6124     IWICBitmapClipper **ppIBitmapClipper);
   6125 void __RPC_STUB IWICImagingFactory_CreateBitmapClipper_Stub(
   6126     IRpcStubBuffer* This,
   6127     IRpcChannelBuffer* pRpcChannelBuffer,
   6128     PRPC_MESSAGE pRpcMessage,
   6129     DWORD* pdwStubPhase);
   6130 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFlipRotator_Proxy(
   6131     IWICImagingFactory* This,
   6132     IWICBitmapFlipRotator **ppIBitmapFlipRotator);
   6133 void __RPC_STUB IWICImagingFactory_CreateBitmapFlipRotator_Stub(
   6134     IRpcStubBuffer* This,
   6135     IRpcChannelBuffer* pRpcChannelBuffer,
   6136     PRPC_MESSAGE pRpcMessage,
   6137     DWORD* pdwStubPhase);
   6138 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateStream_Proxy(
   6139     IWICImagingFactory* This,
   6140     IWICStream **ppIWICStream);
   6141 void __RPC_STUB IWICImagingFactory_CreateStream_Stub(
   6142     IRpcStubBuffer* This,
   6143     IRpcChannelBuffer* pRpcChannelBuffer,
   6144     PRPC_MESSAGE pRpcMessage,
   6145     DWORD* pdwStubPhase);
   6146 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateColorContext_Proxy(
   6147     IWICImagingFactory* This,
   6148     IWICColorContext **ppIWICColorContext);
   6149 void __RPC_STUB IWICImagingFactory_CreateColorContext_Stub(
   6150     IRpcStubBuffer* This,
   6151     IRpcChannelBuffer* pRpcChannelBuffer,
   6152     PRPC_MESSAGE pRpcMessage,
   6153     DWORD* pdwStubPhase);
   6154 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateColorTransformer_Proxy(
   6155     IWICImagingFactory* This,
   6156     IWICColorTransform **ppIWICColorTransform);
   6157 void __RPC_STUB IWICImagingFactory_CreateColorTransformer_Stub(
   6158     IRpcStubBuffer* This,
   6159     IRpcChannelBuffer* pRpcChannelBuffer,
   6160     PRPC_MESSAGE pRpcMessage,
   6161     DWORD* pdwStubPhase);
   6162 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmap_Proxy(
   6163     IWICImagingFactory* This,
   6164     UINT uiWidth,
   6165     UINT uiHeight,
   6166     REFWICPixelFormatGUID pixelFormat,
   6167     WICBitmapCreateCacheOption option,
   6168     IWICBitmap **ppIBitmap);
   6169 void __RPC_STUB IWICImagingFactory_CreateBitmap_Stub(
   6170     IRpcStubBuffer* This,
   6171     IRpcChannelBuffer* pRpcChannelBuffer,
   6172     PRPC_MESSAGE pRpcMessage,
   6173     DWORD* pdwStubPhase);
   6174 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFromSource_Proxy(
   6175     IWICImagingFactory* This,
   6176     IWICBitmapSource *piBitmapSource,
   6177     WICBitmapCreateCacheOption option,
   6178     IWICBitmap **ppIBitmap);
   6179 void __RPC_STUB IWICImagingFactory_CreateBitmapFromSource_Stub(
   6180     IRpcStubBuffer* This,
   6181     IRpcChannelBuffer* pRpcChannelBuffer,
   6182     PRPC_MESSAGE pRpcMessage,
   6183     DWORD* pdwStubPhase);
   6184 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFromSourceRect_Proxy(
   6185     IWICImagingFactory* This,
   6186     IWICBitmapSource *piBitmapSource,
   6187     UINT x,
   6188     UINT y,
   6189     UINT width,
   6190     UINT height,
   6191     IWICBitmap **ppIBitmap);
   6192 void __RPC_STUB IWICImagingFactory_CreateBitmapFromSourceRect_Stub(
   6193     IRpcStubBuffer* This,
   6194     IRpcChannelBuffer* pRpcChannelBuffer,
   6195     PRPC_MESSAGE pRpcMessage,
   6196     DWORD* pdwStubPhase);
   6197 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFromMemory_Proxy(
   6198     IWICImagingFactory* This,
   6199     UINT uiWidth,
   6200     UINT uiHeight,
   6201     REFWICPixelFormatGUID pixelFormat,
   6202     UINT cbStride,
   6203     UINT cbBufferSize,
   6204     BYTE *pbBuffer,
   6205     IWICBitmap **ppIBitmap);
   6206 void __RPC_STUB IWICImagingFactory_CreateBitmapFromMemory_Stub(
   6207     IRpcStubBuffer* This,
   6208     IRpcChannelBuffer* pRpcChannelBuffer,
   6209     PRPC_MESSAGE pRpcMessage,
   6210     DWORD* pdwStubPhase);
   6211 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFromHBITMAP_Proxy(
   6212     IWICImagingFactory* This,
   6213     HBITMAP hBitmap,
   6214     HPALETTE hPalette,
   6215     WICBitmapAlphaChannelOption options,
   6216     IWICBitmap **ppIBitmap);
   6217 void __RPC_STUB IWICImagingFactory_CreateBitmapFromHBITMAP_Stub(
   6218     IRpcStubBuffer* This,
   6219     IRpcChannelBuffer* pRpcChannelBuffer,
   6220     PRPC_MESSAGE pRpcMessage,
   6221     DWORD* pdwStubPhase);
   6222 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateBitmapFromHICON_Proxy(
   6223     IWICImagingFactory* This,
   6224     HICON hIcon,
   6225     IWICBitmap **ppIBitmap);
   6226 void __RPC_STUB IWICImagingFactory_CreateBitmapFromHICON_Stub(
   6227     IRpcStubBuffer* This,
   6228     IRpcChannelBuffer* pRpcChannelBuffer,
   6229     PRPC_MESSAGE pRpcMessage,
   6230     DWORD* pdwStubPhase);
   6231 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateComponentEnumerator_Proxy(
   6232     IWICImagingFactory* This,
   6233     DWORD componentTypes,
   6234     DWORD options,
   6235     IEnumUnknown **ppIEnumUnknown);
   6236 void __RPC_STUB IWICImagingFactory_CreateComponentEnumerator_Stub(
   6237     IRpcStubBuffer* This,
   6238     IRpcChannelBuffer* pRpcChannelBuffer,
   6239     PRPC_MESSAGE pRpcMessage,
   6240     DWORD* pdwStubPhase);
   6241 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateFastMetadataEncoderFromDecoder_Proxy(
   6242     IWICImagingFactory* This,
   6243     IWICBitmapDecoder *pIDecoder,
   6244     IWICFastMetadataEncoder **ppIFastEncoder);
   6245 void __RPC_STUB IWICImagingFactory_CreateFastMetadataEncoderFromDecoder_Stub(
   6246     IRpcStubBuffer* This,
   6247     IRpcChannelBuffer* pRpcChannelBuffer,
   6248     PRPC_MESSAGE pRpcMessage,
   6249     DWORD* pdwStubPhase);
   6250 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode_Proxy(
   6251     IWICImagingFactory* This,
   6252     IWICBitmapFrameDecode *pIFrameDecoder,
   6253     IWICFastMetadataEncoder **ppIFastEncoder);
   6254 void __RPC_STUB IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode_Stub(
   6255     IRpcStubBuffer* This,
   6256     IRpcChannelBuffer* pRpcChannelBuffer,
   6257     PRPC_MESSAGE pRpcMessage,
   6258     DWORD* pdwStubPhase);
   6259 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateQueryWriter_Proxy(
   6260     IWICImagingFactory* This,
   6261     REFGUID guidMetadataFormat,
   6262     const GUID *pguidVendor,
   6263     IWICMetadataQueryWriter **ppIQueryWriter);
   6264 void __RPC_STUB IWICImagingFactory_CreateQueryWriter_Stub(
   6265     IRpcStubBuffer* This,
   6266     IRpcChannelBuffer* pRpcChannelBuffer,
   6267     PRPC_MESSAGE pRpcMessage,
   6268     DWORD* pdwStubPhase);
   6269 HRESULT STDMETHODCALLTYPE IWICImagingFactory_CreateQueryWriterFromReader_Proxy(
   6270     IWICImagingFactory* This,
   6271     IWICMetadataQueryReader *pIQueryReader,
   6272     const GUID *pguidVendor,
   6273     IWICMetadataQueryWriter **ppIQueryWriter);
   6274 void __RPC_STUB IWICImagingFactory_CreateQueryWriterFromReader_Stub(
   6275     IRpcStubBuffer* This,
   6276     IRpcChannelBuffer* pRpcChannelBuffer,
   6277     PRPC_MESSAGE pRpcMessage,
   6278     DWORD* pdwStubPhase);
   6279 
   6280 #endif  /* __IWICImagingFactory_INTERFACE_DEFINED__ */
   6281 
   6282 /*****************************************************************************
   6283  * IWICEnumMetadataItem interface
   6284  */
   6285 #ifndef __IWICEnumMetadataItem_INTERFACE_DEFINED__
   6286 #define __IWICEnumMetadataItem_INTERFACE_DEFINED__
   6287 
   6288 DEFINE_GUID(IID_IWICEnumMetadataItem, 0xdc2bb46d, 0x3f07, 0x481e, 0x86,0x25, 0x22,0x0c,0x4a,0xed,0xbb,0x33);
   6289 #if defined(__cplusplus) && !defined(CINTERFACE)
   6290 MIDL_INTERFACE("dc2bb46d-3f07-481e-8625-220c4aedbb33")
   6291 IWICEnumMetadataItem : public IUnknown
   6292 {
   6293     virtual HRESULT STDMETHODCALLTYPE Next(
   6294         ULONG celt,
   6295         PROPVARIANT *rgeltSchema,
   6296         PROPVARIANT *rgeltId,
   6297         PROPVARIANT *rgeltValue,
   6298         ULONG *pceltFetched) = 0;
   6299 
   6300     virtual HRESULT STDMETHODCALLTYPE Skip(
   6301         ULONG celt) = 0;
   6302 
   6303     virtual HRESULT STDMETHODCALLTYPE Reset(
   6304         ) = 0;
   6305 
   6306     virtual HRESULT STDMETHODCALLTYPE Clone(
   6307         IWICEnumMetadataItem **ppIEnumMetadataItem) = 0;
   6308 
   6309 };
   6310 #ifdef __CRT_UUID_DECL
   6311 __CRT_UUID_DECL(IWICEnumMetadataItem, 0xdc2bb46d, 0x3f07, 0x481e, 0x86,0x25, 0x22,0x0c,0x4a,0xed,0xbb,0x33)
   6312 #endif
   6313 #else
   6314 typedef struct IWICEnumMetadataItemVtbl {
   6315     BEGIN_INTERFACE
   6316 
   6317     /*** IUnknown methods ***/
   6318     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6319         IWICEnumMetadataItem* This,
   6320         REFIID riid,
   6321         void **ppvObject);
   6322 
   6323     ULONG (STDMETHODCALLTYPE *AddRef)(
   6324         IWICEnumMetadataItem* This);
   6325 
   6326     ULONG (STDMETHODCALLTYPE *Release)(
   6327         IWICEnumMetadataItem* This);
   6328 
   6329     /*** IWICEnumMetadataItem methods ***/
   6330     HRESULT (STDMETHODCALLTYPE *Next)(
   6331         IWICEnumMetadataItem* This,
   6332         ULONG celt,
   6333         PROPVARIANT *rgeltSchema,
   6334         PROPVARIANT *rgeltId,
   6335         PROPVARIANT *rgeltValue,
   6336         ULONG *pceltFetched);
   6337 
   6338     HRESULT (STDMETHODCALLTYPE *Skip)(
   6339         IWICEnumMetadataItem* This,
   6340         ULONG celt);
   6341 
   6342     HRESULT (STDMETHODCALLTYPE *Reset)(
   6343         IWICEnumMetadataItem* This);
   6344 
   6345     HRESULT (STDMETHODCALLTYPE *Clone)(
   6346         IWICEnumMetadataItem* This,
   6347         IWICEnumMetadataItem **ppIEnumMetadataItem);
   6348 
   6349     END_INTERFACE
   6350 } IWICEnumMetadataItemVtbl;
   6351 interface IWICEnumMetadataItem {
   6352     CONST_VTBL IWICEnumMetadataItemVtbl* lpVtbl;
   6353 };
   6354 
   6355 #ifdef COBJMACROS
   6356 #ifndef WIDL_C_INLINE_WRAPPERS
   6357 /*** IUnknown methods ***/
   6358 #define IWICEnumMetadataItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6359 #define IWICEnumMetadataItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   6360 #define IWICEnumMetadataItem_Release(This) (This)->lpVtbl->Release(This)
   6361 /*** IWICEnumMetadataItem methods ***/
   6362 #define IWICEnumMetadataItem_Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched) (This)->lpVtbl->Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched)
   6363 #define IWICEnumMetadataItem_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   6364 #define IWICEnumMetadataItem_Reset(This) (This)->lpVtbl->Reset(This)
   6365 #define IWICEnumMetadataItem_Clone(This,ppIEnumMetadataItem) (This)->lpVtbl->Clone(This,ppIEnumMetadataItem)
   6366 #else
   6367 /*** IUnknown methods ***/
   6368 static FORCEINLINE HRESULT IWICEnumMetadataItem_QueryInterface(IWICEnumMetadataItem* This,REFIID riid,void **ppvObject) {
   6369     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6370 }
   6371 static FORCEINLINE ULONG IWICEnumMetadataItem_AddRef(IWICEnumMetadataItem* This) {
   6372     return This->lpVtbl->AddRef(This);
   6373 }
   6374 static FORCEINLINE ULONG IWICEnumMetadataItem_Release(IWICEnumMetadataItem* This) {
   6375     return This->lpVtbl->Release(This);
   6376 }
   6377 /*** IWICEnumMetadataItem methods ***/
   6378 static FORCEINLINE HRESULT IWICEnumMetadataItem_Next(IWICEnumMetadataItem* This,ULONG celt,PROPVARIANT *rgeltSchema,PROPVARIANT *rgeltId,PROPVARIANT *rgeltValue,ULONG *pceltFetched) {
   6379     return This->lpVtbl->Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched);
   6380 }
   6381 static FORCEINLINE HRESULT IWICEnumMetadataItem_Skip(IWICEnumMetadataItem* This,ULONG celt) {
   6382     return This->lpVtbl->Skip(This,celt);
   6383 }
   6384 static FORCEINLINE HRESULT IWICEnumMetadataItem_Reset(IWICEnumMetadataItem* This) {
   6385     return This->lpVtbl->Reset(This);
   6386 }
   6387 static FORCEINLINE HRESULT IWICEnumMetadataItem_Clone(IWICEnumMetadataItem* This,IWICEnumMetadataItem **ppIEnumMetadataItem) {
   6388     return This->lpVtbl->Clone(This,ppIEnumMetadataItem);
   6389 }
   6390 #endif
   6391 #endif
   6392 
   6393 #endif
   6394 
   6395 HRESULT STDMETHODCALLTYPE IWICEnumMetadataItem_Next_Proxy(
   6396     IWICEnumMetadataItem* This,
   6397     ULONG celt,
   6398     PROPVARIANT *rgeltSchema,
   6399     PROPVARIANT *rgeltId,
   6400     PROPVARIANT *rgeltValue,
   6401     ULONG *pceltFetched);
   6402 void __RPC_STUB IWICEnumMetadataItem_Next_Stub(
   6403     IRpcStubBuffer* This,
   6404     IRpcChannelBuffer* pRpcChannelBuffer,
   6405     PRPC_MESSAGE pRpcMessage,
   6406     DWORD* pdwStubPhase);
   6407 HRESULT STDMETHODCALLTYPE IWICEnumMetadataItem_Skip_Proxy(
   6408     IWICEnumMetadataItem* This,
   6409     ULONG celt);
   6410 void __RPC_STUB IWICEnumMetadataItem_Skip_Stub(
   6411     IRpcStubBuffer* This,
   6412     IRpcChannelBuffer* pRpcChannelBuffer,
   6413     PRPC_MESSAGE pRpcMessage,
   6414     DWORD* pdwStubPhase);
   6415 HRESULT STDMETHODCALLTYPE IWICEnumMetadataItem_Reset_Proxy(
   6416     IWICEnumMetadataItem* This);
   6417 void __RPC_STUB IWICEnumMetadataItem_Reset_Stub(
   6418     IRpcStubBuffer* This,
   6419     IRpcChannelBuffer* pRpcChannelBuffer,
   6420     PRPC_MESSAGE pRpcMessage,
   6421     DWORD* pdwStubPhase);
   6422 HRESULT STDMETHODCALLTYPE IWICEnumMetadataItem_Clone_Proxy(
   6423     IWICEnumMetadataItem* This,
   6424     IWICEnumMetadataItem **ppIEnumMetadataItem);
   6425 void __RPC_STUB IWICEnumMetadataItem_Clone_Stub(
   6426     IRpcStubBuffer* This,
   6427     IRpcChannelBuffer* pRpcChannelBuffer,
   6428     PRPC_MESSAGE pRpcMessage,
   6429     DWORD* pdwStubPhase);
   6430 
   6431 #endif  /* __IWICEnumMetadataItem_INTERFACE_DEFINED__ */
   6432 
   6433 HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);
   6434 DEFINE_GUID(CLSID_WICBmpDecoder, 0x6b462062,0x7cbf,0x400d,0x9f,0xdb,0x81,0x3d,0xd1,0x0f,0x27,0x78);
   6435 DEFINE_GUID(CLSID_WICPngDecoder, 0x389ea17b,0x5078,0x4cde,0xb6,0xef,0x25,0xc1,0x51,0x75,0xc7,0x51);
   6436 DEFINE_GUID(CLSID_WICIcoDecoder, 0xc61bfcdf,0x2e0f,0x4aad,0xa8,0xd7,0xe0,0x6b,0xaf,0xeb,0xcd,0xfe);
   6437 DEFINE_GUID(CLSID_WICJpegDecoder, 0x9456a480,0xe88b,0x43ea,0x9e,0x73,0x0b,0x2d,0x9b,0x71,0xb1,0xca);
   6438 DEFINE_GUID(CLSID_WICGifDecoder, 0x381dda3c,0x9ce9,0x4834,0xa2,0x3e,0x1f,0x98,0xf8,0xfc,0x52,0xbe);
   6439 DEFINE_GUID(CLSID_WICTiffDecoder, 0xb54e85d9,0xfe23,0x499f,0x8b,0x88,0x6a,0xce,0xa7,0x13,0x75,0x2b);
   6440 DEFINE_GUID(CLSID_WICWmpDecoder, 0xa26cec36,0x234c,0x4950,0xae,0x16,0xe3,0x4a,0xac,0xe7,0x1d,0x0d);
   6441 DEFINE_GUID(CLSID_WICBmpEncoder, 0x69be8bb4,0xd66d,0x47c8,0x86,0x5a,0xed,0x15,0x89,0x43,0x37,0x82);
   6442 DEFINE_GUID(CLSID_WICPngEncoder, 0x27949969,0x876a,0x41d7,0x94,0x47,0x56,0x8f,0x6a,0x35,0xa4,0xdc);
   6443 DEFINE_GUID(CLSID_WICJpegEncoder, 0x1a34f5c1,0x4a5a,0x46dc,0xb6,0x44,0x1f,0x45,0x67,0xe7,0xa6,0x76);
   6444 DEFINE_GUID(CLSID_WICGifEncoder, 0x114f5598,0x0b22,0x40a0,0x86,0xa1,0xc8,0x3e,0xa4,0x95,0xad,0xbd);
   6445 DEFINE_GUID(CLSID_WICTiffEncoder, 0x0131be10,0x2001,0x4c5f,0xa9,0xb0,0xcc,0x88,0xfa,0xb6,0x4c,0xe8);
   6446 DEFINE_GUID(CLSID_WICWmpEncoder, 0xac4ce3cb,0xe1c1,0x44cd,0x82,0x15,0x5a,0x16,0x65,0x50,0x9e,0xc2);
   6447 DEFINE_GUID(CLSID_WICDefaultFormatConverter, 0x1a3f11dc,0xb514,0x4b17,0x8c,0x5f,0x21,0x54,0x51,0x38,0x52,0xf1);
   6448 DEFINE_GUID(GUID_ContainerFormatBmp, 0x0af1d87e,0xfcfe,0x4188,0xbd,0xeb,0xa7,0x90,0x64,0x71,0xcb,0xe3);
   6449 DEFINE_GUID(GUID_ContainerFormatPng, 0x1b7cfaf4,0x713f,0x473c,0xbb,0xcd,0x61,0x37,0x42,0x5f,0xae,0xaf);
   6450 DEFINE_GUID(GUID_ContainerFormatIco, 0xa3a860c4,0x338f,0x4c17,0x91,0x9a,0xfb,0xa4,0xb5,0x62,0x8f,0x21);
   6451 DEFINE_GUID(GUID_ContainerFormatJpeg, 0x19e4a5aa,0x5662,0x4fc5,0xa0,0xc0,0x17,0x58,0x02,0x8e,0x10,0x57);
   6452 DEFINE_GUID(GUID_ContainerFormatTiff, 0x163bcc30,0xe2e9,0x4f0b,0x96,0x1d,0xa3,0xe9,0xfd,0xb7,0x88,0xa3);
   6453 DEFINE_GUID(GUID_ContainerFormatGif, 0x1f8a5601,0x7d4d,0x4cbd,0x9c,0x82,0x1b,0xc8,0xd4,0xee,0xb9,0xa5);
   6454 DEFINE_GUID(GUID_ContainerFormatWmp, 0x57a37caa,0x367a,0x4540,0x91,0x6b,0xf1,0x83,0xc5,0x09,0x3a,0x4b);
   6455 DEFINE_GUID(GUID_VendorMicrosoft, 0xf0e749ca,0xedef,0x4589,0xa7,0x3a,0xee,0x0e,0x62,0x6a,0x2a,0x2b);
   6456 DEFINE_GUID(CLSID_WICImagingCategories, 0xfae3d380,0xfea4,0x4623,0x8c,0x75,0xc6,0xb6,0x11,0x10,0xb6,0x81);
   6457 DEFINE_GUID(CATID_WICBitmapDecoders, 0x7ed96837,0x96f0,0x4812,0xb2,0x11,0xf1,0x3c,0x24,0x11,0x7e,0xd3);
   6458 DEFINE_GUID(CATID_WICBitmapEncoders, 0xac757296,0x3522,0x4e11,0x98,0x62,0xc1,0x7b,0xe5,0xa1,0x76,0x7e);
   6459 DEFINE_GUID(CATID_WICFormatConverters, 0x7835eae8,0xbf14,0x49d1,0x93,0xce,0x53,0x3a,0x40,0x7b,0x22,0x48);
   6460 DEFINE_GUID(CATID_WICMetadataReader, 0x05af94d8,0x7174,0x4cd2,0xbe,0x4a,0x41,0x24,0xb8,0x0e,0xe4,0xb8);
   6461 DEFINE_GUID(CATID_WICPixelFormats, 0x2b46e70f,0xcda7,0x473e,0x89,0xf6,0xdc,0x96,0x30,0xa2,0x39,0x0b);
   6462 /* Begin additional prototypes for all interfaces */
   6463 
   6464 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   6465 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   6466 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   6467 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   6468 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
   6469 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
   6470 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
   6471 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
   6472 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
   6473 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
   6474 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
   6475 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
   6476 ULONG           __RPC_USER HPALETTE_UserSize     (ULONG *, ULONG, HPALETTE *);
   6477 unsigned char * __RPC_USER HPALETTE_UserMarshal  (ULONG *, unsigned char *, HPALETTE *);
   6478 unsigned char * __RPC_USER HPALETTE_UserUnmarshal(ULONG *, unsigned char *, HPALETTE *);
   6479 void            __RPC_USER HPALETTE_UserFree     (ULONG *, HPALETTE *);
   6480 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
   6481 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
   6482 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
   6483 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
   6484 
   6485 /* End additional prototypes */
   6486 
   6487 #ifdef __cplusplus
   6488 }
   6489 #endif
   6490 
   6491 #endif /* __wincodec_h__ */
   6492