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