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