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