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