1 /*** Autogenerated by WIDL 6.4 from include/wincodecsdk.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __wincodecsdk_h__
17 #define __wincodecsdk_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IWICMetadataHandlerInfo_FWD_DEFINED__
22 #define __IWICMetadataHandlerInfo_FWD_DEFINED__
23 typedef interface IWICMetadataHandlerInfo IWICMetadataHandlerInfo;
24 #ifdef __cplusplus
25 interface IWICMetadataHandlerInfo;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IWICMetadataReader_FWD_DEFINED__
30 #define __IWICMetadataReader_FWD_DEFINED__
31 typedef interface IWICMetadataReader IWICMetadataReader;
32 #ifdef __cplusplus
33 interface IWICMetadataReader;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IWICMetadataReaderInfo_FWD_DEFINED__
38 #define __IWICMetadataReaderInfo_FWD_DEFINED__
39 typedef interface IWICMetadataReaderInfo IWICMetadataReaderInfo;
40 #ifdef __cplusplus
41 interface IWICMetadataReaderInfo;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IWICMetadataWriter_FWD_DEFINED__
46 #define __IWICMetadataWriter_FWD_DEFINED__
47 typedef interface IWICMetadataWriter IWICMetadataWriter;
48 #ifdef __cplusplus
49 interface IWICMetadataWriter;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IWICMetadataWriterInfo_FWD_DEFINED__
54 #define __IWICMetadataWriterInfo_FWD_DEFINED__
55 typedef interface IWICMetadataWriterInfo IWICMetadataWriterInfo;
56 #ifdef __cplusplus
57 interface IWICMetadataWriterInfo;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IWICMetadataBlockReader_FWD_DEFINED__
62 #define __IWICMetadataBlockReader_FWD_DEFINED__
63 typedef interface IWICMetadataBlockReader IWICMetadataBlockReader;
64 #ifdef __cplusplus
65 interface IWICMetadataBlockReader;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IWICMetadataBlockWriter_FWD_DEFINED__
70 #define __IWICMetadataBlockWriter_FWD_DEFINED__
71 typedef interface IWICMetadataBlockWriter IWICMetadataBlockWriter;
72 #ifdef __cplusplus
73 interface IWICMetadataBlockWriter;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IWICPersistStream_FWD_DEFINED__
78 #define __IWICPersistStream_FWD_DEFINED__
79 typedef interface IWICPersistStream IWICPersistStream;
80 #ifdef __cplusplus
81 interface IWICPersistStream;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IWICComponentFactory_FWD_DEFINED__
86 #define __IWICComponentFactory_FWD_DEFINED__
87 typedef interface IWICComponentFactory IWICComponentFactory;
88 #ifdef __cplusplus
89 interface IWICComponentFactory;
90 #endif /* __cplusplus */
91 #endif
92 
93 /* Headers for imported files */
94 
95 #include <wtypes.h>
96 #include <wincodec.h>
97 
98 #ifdef __cplusplus
99 extern "C" {
100 #endif
101 
102 typedef enum WICPersistOptions {
103     WICPersistOptionDefault = 0x0,
104     WICPersistOptionLittleEndian = 0x0,
105     WICPersistOptionBigEndian = 0x1,
106     WICPersistOptionStrictFormat = 0x2,
107     WICPersistOptionNoCacheStream = 0x4,
108     WICPersistOptionPreferUTF8 = 0x8,
109     WICPersistOptionMask = 0xffff
110 } WICPersistOptions;
111 typedef enum WICMetadataCreationOptions {
112     WICMetadataCreationDefault = 0x0,
113     WICMetadataCreationAllowUnknown = WICMetadataCreationDefault,
114     WICMetadataCreationFailUnknown = 0x10000,
115     WICMetadataCreationMask = 0xffff0000
116 } WICMetadataCreationOptions;
117 DEFINE_GUID(GUID_MetadataFormatUnknown, 0xa45e592f,0x9078,0x4a7c,0xad,0xb5,0x4e,0xdc,0x4f,0xd6,0x1b,0x1f);
118 DEFINE_GUID(GUID_MetadataFormatChunkcHRM, 0x9db3655b,0x2842,0x44b3,0x80,0x67,0x12,0xe9,0xb3,0x75,0x55,0x6a);
119 DEFINE_GUID(GUID_MetadataFormatChunkgAMA, 0xf00935a5,0x1d5d,0x4cd1,0x81,0xb2,0x93,0x24,0xd7,0xec,0xa7,0x81);
120 DEFINE_GUID(GUID_MetadataFormatChunktEXt, 0x568d8936,0xc0a9,0x4923,0x90,0x5d,0xdf,0x2b,0x38,0x23,0x8f,0xbc);
121 DEFINE_GUID(GUID_MetadataFormatChunktIME, 0x6b00ae2d,0xe24b,0x460a,0x98,0xb6,0x87,0x8b,0xd0,0x30,0x72,0xfd);
122 DEFINE_GUID(GUID_MetadataFormatIfd, 0x537396c6,0x2d8a,0x4bb6,0x9b,0xf8,0x2f,0x0a,0x8e,0x2a,0x3a,0xdf);
123 DEFINE_GUID(GUID_MetadataFormatExif, 0x1c3c4f9d,0xb84a,0x467d,0x94,0x93,0x36,0xcf,0xbd,0x59,0xea,0x57);
124 DEFINE_GUID(GUID_MetadataFormatXMP, 0xbb5acc38,0xf216,0x4cec,0xa6,0xc5,0x5f,0x6e,0x73,0x97,0x63,0xa9);
125 DEFINE_GUID(GUID_MetadataFormatXMPStruct, 0x22383cf1,0xed17,0x4e2e,0xaf,0x17,0xd8,0x5b,0x8f,0x6b,0x30,0xd0);
126 DEFINE_GUID(GUID_MetadataFormatIMD, 0xbd2bb086,0x4d52,0x48dd,0x96,0x77,0xdb,0x48,0x3e,0x85,0xae,0x8f);
127 DEFINE_GUID(GUID_MetadataFormatLSD, 0xe256031e,0x6299,0x4929,0xb9,0x8d,0x5a,0xc8,0x84,0xaf,0xba,0x92);
128 DEFINE_GUID(GUID_MetadataFormatGCE, 0x2a25cad8,0xdeeb,0x4c69,0xa7,0x88,0x0e,0xc2,0x26,0x6d,0xca,0xfd);
129 DEFINE_GUID(GUID_MetadataFormatAPE, 0x2e043dc2,0xc967,0x4e05,0x87,0x5e,0x61,0x8b,0xf6,0x7e,0x85,0xc3);
130 DEFINE_GUID(GUID_MetadataFormatGifComment, 0xc4b6e0e0,0xcfb4,0x4ad3,0xab,0x33,0x9a,0xad,0x23,0x55,0xa3,0x4a);
131 DEFINE_GUID(GUID_MetadataFormatSubIfd, 0x58a2e128,0x2db9,0x4e57,0xbb,0x14,0x51,0x77,0x89,0x1e,0xd3,0x31);
132 DEFINE_GUID(GUID_MetadataFormatGps, 0x7134ab8a,0x9351,0x44ad,0xaf,0x62,0x44,0x8d,0xb6,0xb5,0x02,0xec);
133 DEFINE_GUID(GUID_MetadataFormatInterop, 0xed686f8e,0x681f,0x4c8b,0xbd,0x41,0xa8,0xad,0xdb,0xf6,0xb3,0xfc);
134 DEFINE_GUID(GUID_MetadataFormatApp0, 0x79007028,0x268d,0x45d6,0xa3,0xc2,0x35,0x4e,0x6a,0x50,0x4b,0xc9);
135 DEFINE_GUID(GUID_MetadataFormatApp1, 0x8fd3dfc3,0xf951,0x492b,0x81,0x7f,0x69,0xc2,0xe6,0xd9,0xa5,0xb0);
136 DEFINE_GUID(GUID_MetadataFormatApp13, 0x326556a2,0xf502,0x4354,0x9c,0xc0,0x8e,0x3f,0x48,0xea,0xf6,0xb5);
137 DEFINE_GUID(GUID_MetadataFormatIPTC, 0x4fab0914,0xe129,0x4087,0xa1,0xd1,0xbc,0x81,0x2d,0x45,0xa7,0xb5);
138 DEFINE_GUID(GUID_MetadataFormatIRB, 0x16100d66,0x8570,0x4bb9,0xb9,0x2d,0xfd,0xa4,0xb2,0x3e,0xce,0x67);
139 DEFINE_GUID(GUID_MetadataFormat8BIMIPTC, 0x0010568c,0x0852,0x4e6a,0xb1,0x91,0x5c,0x33,0xac,0x5b,0x04,0x30);
140 DEFINE_GUID(GUID_MetadataFormat8BIMResolutionInfo, 0x739f305d,0x81db,0x43cb,0xac,0x5e,0x55,0x01,0x3e,0xf9,0xf0,0x03);
141 DEFINE_GUID(GUID_MetadataFormat8BIMIPTCDigest, 0x1ca32285,0x9ccd,0x4786,0x8b,0xd8,0x79,0x53,0x9d,0xb6,0xa0,0x06);
142 DEFINE_GUID(GUID_MetadataFormatThumbnail, 0x243dcee9,0x8703,0x40ee,0x8e,0xf0,0x22,0xa6,0x0,0xb8,0x5,0x8c);
143 DEFINE_GUID(GUID_MetadataFormatXMPBag, 0x833cca5f,0xdcb7,0x4516,0x80,0x6f,0x65,0x96,0xab,0x26,0xdc,0xe4);
144 DEFINE_GUID(GUID_MetadataFormatXMPSeq, 0x63e8df02,0xeb6c,0x456c,0xa2,0x24,0xb2,0x5e,0x79,0x4f,0xd6,0x48);
145 DEFINE_GUID(GUID_MetadataFormatXMPAlt, 0x7b08a675,0x91aa,0x481b,0xa7,0x98,0x4d,0xa9,0x49,0x08,0x61,0x3b);
146 DEFINE_GUID(GUID_MetadataFormatJpegChrominance, 0xf73d0dcf,0xcec6,0x4f85,0x9b,0x0e,0x1c,0x39,0x56,0xb1,0xbe,0xf7);
147 DEFINE_GUID(GUID_MetadataFormatJpegLuminance, 0x86908007,0xedfc,0x4860,0x8d,0x4b,0x4e,0xe6,0xe8,0x3e,0x60,0x58);
148 DEFINE_GUID(GUID_MetadataFormatJpegComment, 0x220e5f33,0xafd3,0x474e,0x9d,0x31,0x7d,0x4f,0xe7,0x30,0xf5,0x57);
149 DEFINE_GUID(GUID_MetadataFormatChunkbKGD, 0xe14d3571,0x6b47,0x4dea,0xb6,0xa,0x87,0xce,0xa,0x78,0xdf,0xb7);
150 DEFINE_GUID(GUID_MetadataFormatChunkiTXt, 0xc2bec729,0xb68,0x4b77,0xaa,0xe,0x62,0x95,0xa6,0xac,0x18,0x14);
151 DEFINE_GUID(GUID_MetadataFormatChunkhIST, 0xc59a82da,0xdb74,0x48a4,0xbd,0x6a,0xb6,0x9c,0x49,0x31,0xef,0x95);
152 DEFINE_GUID(GUID_MetadataFormatChunkiCCP, 0xeb4349ab,0xb685,0x450f,0x91,0xb5,0xe8,0x2,0xe8,0x92,0x53,0x6c);
153 DEFINE_GUID(GUID_MetadataFormatChunksRGB, 0xc115fd36,0xcc6f,0x4e3f,0x83,0x63,0x52,0x4b,0x87,0xc6,0xb0,0xd9);
154 DEFINE_GUID(GUID_MetadataFormatDds, 0x4a064603,0x8c33,0x4e60,0x9c,0x29,0x13,0x62,0x31,0x70,0x2d,0x08);
155 DEFINE_GUID(GUID_MetadataFormatHeif, 0x817ef3e1,0x1288,0x45f4,0xa8,0x52,0x26,0x0d,0x9e,0x7c,0xce,0x83);
156 DEFINE_GUID(GUID_MetadataFormatHeifHDR, 0x568b8d8a,0x1e65,0x438c,0x89,0x68,0xd6,0x0e,0x10,0x12,0xbe,0xb9);
157 DEFINE_GUID(GUID_MetadataFormatWebpANIM, 0x6dc4fda6,0x78e6,0x4102,0xae,0x35,0xbc,0xfa,0x1e,0xdc,0xc7,0x8b);
158 DEFINE_GUID(GUID_MetadataFormatWebpANMF, 0x43c105ee,0xb93b,0x4abb,0xb0,0x03,0xa0,0x8c,0x0d,0x87,0x04,0x71);
159 DEFINE_GUID(CLSID_WICUnknownMetadataReader, 0x699745c2,0x5066,0x4b82,0xa8,0xe3,0xd4,0x04,0x78,0xdb,0xec,0x8c);
160 DEFINE_GUID(CLSID_WICUnknownMetadataWriter, 0xa09cca86,0x27ba,0x4f39,0x90,0x53,0x12,0x1f,0xa4,0xdc,0x08,0xfc);
161 DEFINE_GUID(CLSID_WICPngBkgdMetadataReader, 0x0ce7a4a6,0x03e8,0x4a60,0x9d,0x15,0x28,0x2e,0xf3,0x2e,0xe7,0xda);
162 DEFINE_GUID(CLSID_WICPngBkgdMetadataWriter, 0x68e3f2fd,0x31ae,0x4441,0xbb,0x6a,0xfd,0x70,0x47,0x52,0x5f,0x90);
163 DEFINE_GUID(CLSID_WICPngChrmMetadataReader, 0xf90b5f36,0x367b,0x402a,0x9d,0xd1,0xbc,0x0f,0xd5,0x9d,0x8f,0x62);
164 DEFINE_GUID(CLSID_WICPngChrmMetadataWriter, 0xe23ce3eb,0x5608,0x4e83,0xbc,0xef,0x27,0xb1,0x98,0x7e,0x51,0xd7);
165 DEFINE_GUID(CLSID_WICPngGamaMetadataReader, 0x3692ca39,0xe082,0x4350,0x9e,0x1f,0x37,0x04,0xcb,0x08,0x3c,0xd5);
166 DEFINE_GUID(CLSID_WICPngGamaMetadataWriter, 0xff036d13,0x5d4b,0x46dd,0xb1,0x0f,0x10,0x66,0x93,0xd9,0xfe,0x4f);
167 DEFINE_GUID(CLSID_WICPngHistMetadataReader, 0x877a0bb7,0xa313,0x4491,0x87,0xb5,0x2e,0x6d,0x05,0x94,0xf5,0x20);
168 DEFINE_GUID(CLSID_WICPngHistMetadataWriter, 0x8a03e749,0x672e,0x446e,0xbf,0x1f,0x2c,0x11,0xd2,0x33,0xb6,0xff);
169 DEFINE_GUID(CLSID_WICPngIccpMetadataReader, 0xf5d3e63b,0xcb0f,0x4628,0xa4,0x78,0x6d,0x82,0x44,0xbe,0x36,0xb1);
170 DEFINE_GUID(CLSID_WICPngIccpMetadataWriter, 0x16671e5f,0x0ce6,0x4cc4,0x97,0x68,0xe8,0x9f,0xe5,0x01,0x8a,0xde);
171 DEFINE_GUID(CLSID_WICPngItxtMetadataReader, 0xaabfb2fa,0x3e1e,0x4a8f,0x89,0x77,0x55,0x56,0xfb,0x94,0xea,0x23);
172 DEFINE_GUID(CLSID_WICPngItxtMetadataWriter, 0x31879719,0xe751,0x4df8,0x98,0x1d,0x68,0xdf,0xf6,0x77,0x04,0xed);
173 DEFINE_GUID(CLSID_WICPngSrgbMetadataReader, 0xfb40360c,0x547e,0x4956,0xa3,0xb9,0xd4,0x41,0x88,0x59,0xba,0x66);
174 DEFINE_GUID(CLSID_WICPngSrgbMetadataWriter, 0xa6ee35c6,0x87ec,0x47df,0x9f,0x22,0x1d,0x5a,0xad,0x84,0x0c,0x82);
175 DEFINE_GUID(CLSID_WICPngTextMetadataReader, 0x4b59afcc,0xb8c3,0x408a,0xb6,0x70,0x89,0xe5,0xfa,0xb6,0xfd,0xa7);
176 DEFINE_GUID(CLSID_WICPngTextMetadataWriter, 0xb5ebafb9,0x253e,0x4a72,0xa7,0x44,0x07,0x62,0xd2,0x68,0x56,0x83);
177 DEFINE_GUID(CLSID_WICPngTimeMetadataReader, 0xd94edf02,0xefe5,0x4f0d,0x85,0xc8,0xf5,0xa6,0x8b,0x30,0x00,0xb1);
178 DEFINE_GUID(CLSID_WICPngTimeMetadataWriter, 0x1ab78400,0xb5a3,0x4d91,0x8a,0xce,0x33,0xfc,0xd1,0x49,0x9b,0xe6);
179 DEFINE_GUID(CLSID_WICIfdMetadataReader, 0x8f914656,0x9d0a,0x4eb2,0x90,0x19,0x0b,0xf9,0x6d,0x8a,0x9e,0xe6);
180 DEFINE_GUID(CLSID_WICIfdMetadataWriter, 0xb1ebfc28,0xc9bd,0x47a2,0x8d,0x33,0xb9,0x48,0x76,0x97,0x77,0xa7);
181 DEFINE_GUID(CLSID_WICExifMetadataReader, 0xd9403860,0x297f,0x4a49,0xbf,0x9b,0x77,0x89,0x81,0x50,0xa4,0x42);
182 DEFINE_GUID(CLSID_WICExifMetadataWriter, 0xc9a14cda,0xc339,0x460b,0x90,0x78,0xd4,0xde,0xbc,0xfa,0xbe,0x91);
183 DEFINE_GUID(CLSID_WICXMPMetadataReader, 0x72b624bf,0xae11,0x4948,0xa6,0x5c,0x35,0x1e,0xb0,0x82,0x94,0x19);
184 DEFINE_GUID(CLSID_WICXMPMetadataWriter, 0x1765e14e,0x1bd4,0x462e,0xb6,0xb1,0x59,0x0b,0xf1,0x26,0x2a,0xc6);
185 DEFINE_GUID(CLSID_WICXMPAltMetadataReader, 0xaa94dcc2,0xb8b0,0x4898,0xb8,0x35,0x00,0x0a,0xab,0xd7,0x43,0x93);
186 DEFINE_GUID(CLSID_WICXMPAltMetadataWriter, 0x076c2a6c,0xf78f,0x4c46,0xa7,0x23,0x35,0x83,0xe7,0x08,0x76,0xea);
187 DEFINE_GUID(CLSID_WICXMPBagMetadataReader, 0xe7e79a30,0x4f2c,0x4fab,0x8d,0x00,0x39,0x4f,0x2d,0x6b,0xbe,0xbe);
188 DEFINE_GUID(CLSID_WICXMPBagMetadataWriter, 0xed822c8c,0xd6be,0x4301,0xa6,0x31,0x0e,0x14,0x16,0xba,0xd2,0x8f);
189 DEFINE_GUID(CLSID_WICXMPSeqMetadataReader, 0x7f12e753,0xfc71,0x43d7,0xa5,0x1d,0x92,0xf3,0x59,0x77,0xab,0xb5);
190 DEFINE_GUID(CLSID_WICXMPSeqMetadataWriter, 0x6d68d1de,0xd432,0x4b0f,0x92,0x3a,0x09,0x11,0x83,0xa9,0xbd,0xa7);
191 DEFINE_GUID(CLSID_WICXMPStructMetadataReader, 0x01b90d9a,0x8209,0x47f7,0x9c,0x52,0xe1,0x24,0x4b,0xf5,0x0c,0xed);
192 DEFINE_GUID(CLSID_WICXMPStructMetadataWriter, 0x22c21f93,0x7ddb,0x411c,0x9b,0x17,0xc5,0xb7,0xbd,0x06,0x4a,0xbc);
193 DEFINE_GUID(CLSID_WICLSDMetadataReader, 0x41070793,0x59e4,0x479a,0xa1,0xf7,0x95,0x4a,0xdc,0x2e,0xf5,0xfc);
194 DEFINE_GUID(CLSID_WICLSDMetadataWriter, 0x73c037e7,0xe5d9,0x4954,0x87,0x6a,0x6d,0xa8,0x1d,0x6e,0x57,0x68);
195 DEFINE_GUID(CLSID_WICIMDMetadataReader, 0x7447a267,0x0015,0x42c8,0xa8,0xf1,0xfb,0x3b,0x94,0xc6,0x83,0x61);
196 DEFINE_GUID(CLSID_WICIMDMetadataWriter, 0x8c89071f,0x452e,0x4e95,0x96,0x82,0x9d,0x10,0x24,0x62,0x71,0x72);
197 DEFINE_GUID(CLSID_WICGCEMetadataReader, 0xb92e345d,0xf52d,0x41f3,0xb5,0x62,0x08,0x1b,0xc7,0x72,0xe3,0xb9);
198 DEFINE_GUID(CLSID_WICGCEMetadataWriter, 0xaf95dc76,0x16b2,0x47f4,0xb3,0xea,0x3c,0x31,0x79,0x66,0x93,0xe7);
199 DEFINE_GUID(CLSID_WICAPEMetadataReader, 0x1767b93a,0xb021,0x44ea,0x92,0x0f,0x86,0x3c,0x11,0xf4,0xf7,0x68);
200 DEFINE_GUID(CLSID_WICAPEMetadataWriter, 0xbd6edfca,0x2890,0x482f,0xb2,0x33,0x8d,0x73,0x39,0xa1,0xcf,0x8d);
201 DEFINE_GUID(CLSID_WICGifCommentMetadataReader, 0x32557d3b,0x69dc,0x4f95,0x83,0x6e,0xf5,0x97,0x2b,0x2f,0x61,0x59);
202 DEFINE_GUID(CLSID_WICGifCommentMetadataWriter, 0xa02797fc,0xc4ae,0x418c,0xaf,0x95,0xe6,0x37,0xc7,0xea,0xd2,0xa1);
203 DEFINE_GUID(CLSID_WICApp0MetadataWriter, 0xf3c633a2,0x46c8,0x498e,0x8f,0xbb,0xcc,0x6f,0x72,0x1b,0xbc,0xde);
204 DEFINE_GUID(CLSID_WICApp0MetadataReader, 0x43324b33,0xa78f,0x480f,0x91,0x11,0x96,0x38,0xaa,0xcc,0xc8,0x32);
205 DEFINE_GUID(CLSID_WICApp1MetadataWriter, 0xee366069,0x1832,0x420f,0xb3,0x81,0x04,0x79,0xad,0x06,0x6f,0x19);
206 DEFINE_GUID(CLSID_WICApp1MetadataReader, 0xdde33513,0x774e,0x4bcd,0xae,0x79,0x02,0xf4,0xad,0xfe,0x62,0xfc);
207 DEFINE_GUID(CLSID_WICApp13MetadataWriter, 0x7b19a919,0xa9d6,0x49e5,0xbd,0x45,0x02,0xc3,0x4e,0x4e,0x4c,0xd5);
208 DEFINE_GUID(CLSID_WICApp13MetadataReader, 0xaa7e3c50,0x864c,0x4604,0xbc,0x04,0x8b,0x0b,0x76,0xe6,0x37,0xf6);
209 DEFINE_GUID(CLSID_WICSubIfdMetadataReader, 0x50d42f09,0xecd1,0x4b41,0xb6,0x5d,0xda,0x1f,0xda,0xa7,0x56,0x63);
210 DEFINE_GUID(CLSID_WICSubIfdMetadataWriter, 0x8ade5386,0x8e9b,0x4f4c,0xac,0xf2,0xf0,0x00,0x87,0x06,0xb2,0x38);
211 DEFINE_GUID(CLSID_WICGpsMetadataReader, 0x3697790b,0x223b,0x484e,0x99,0x25,0xc4,0x86,0x92,0x18,0xf1,0x7a);
212 DEFINE_GUID(CLSID_WICGpsMetadataWriter, 0xcb8c13e4,0x62b5,0x4c96,0xa4,0x8b,0x6b,0xa6,0xac,0xe3,0x9c,0x76);
213 DEFINE_GUID(CLSID_WICInteropMetadataReader, 0xb5c8b898,0x0074,0x459f,0xb7,0x00,0x86,0x0d,0x46,0x51,0xea,0x14);
214 DEFINE_GUID(CLSID_WICInteropMetadataWriter, 0x122ec645,0xcd7e,0x44d8,0xb1,0x86,0x2c,0x8c,0x20,0xc3,0xb5,0x0f);
215 DEFINE_GUID(CLSID_WICThumbnailMetadataReader, 0xfb012959,0xf4f6,0x44d7,0x9d,0x09,0xda,0xa0,0x87,0xa9,0xdb,0x57);
216 DEFINE_GUID(CLSID_WICThumbnailMetadataWriter, 0xd049b20c,0x5dd0,0x44fe,0xb0,0xb3,0x8f,0x92,0xc8,0xe6,0xd0,0x80);
217 DEFINE_GUID(CLSID_WICIPTCMetadataReader, 0x03012959,0xf4f6,0x44d7,0x9d,0x09,0xda,0xa0,0x87,0xa9,0xdb,0x57);
218 DEFINE_GUID(CLSID_WICIPTCMetadataWriter, 0x1249b20c,0x5dd0,0x44fe,0xb0,0xb3,0x8f,0x92,0xc8,0xe6,0xd0,0x80);
219 DEFINE_GUID(CLSID_WICIRBMetadataReader, 0xd4dcd3d7,0xb4c2,0x47d9,0xa6,0xbf,0xb8,0x9b,0xa3,0x96,0xa4,0xa3);
220 DEFINE_GUID(CLSID_WICIRBMetadataWriter, 0x5c5c1935,0x0235,0x4434,0x80,0xbc,0x25,0x1b,0xc1,0xec,0x39,0xc6);
221 DEFINE_GUID(CLSID_WIC8BIMIPTCMetadataReader, 0x0010668c,0x0801,0x4da6,0xa4,0xa4,0x82,0x65,0x22,0xb6,0xd2,0x8f);
222 DEFINE_GUID(CLSID_WIC8BIMIPTCMetadataWriter, 0x00108226,0xee41,0x44a2,0x9e,0x9c,0x4b,0xe4,0xd5,0xb1,0xd2,0xcd);
223 DEFINE_GUID(CLSID_WIC8BIMIPTCDigestMetadataReader, 0x02805f1e,0xd5aa,0x415b,0x82,0xc5,0x61,0xc0,0x33,0xa9,0x88,0xa6);
224 DEFINE_GUID(CLSID_WIC8BIMIPTCDigestMetadataWriter, 0x2db5e62b,0x0d67,0x495f,0x8f,0x9d,0xc2,0xf0,0x18,0x86,0x47,0xac);
225 DEFINE_GUID(CLSID_WIC8BIMResolutionInfoMetadataReader, 0x5805137a,0xe348,0x4f7c,0xb3,0xcc,0x6d,0xb9,0x96,0x5a,0x05,0x99);
226 DEFINE_GUID(CLSID_WIC8BIMResolutionInfoMetadataWriter, 0x4ff2fe0e,0xe74a,0x4b71,0x98,0xc4,0xab,0x7d,0xc1,0x67,0x07,0xba);
227 DEFINE_GUID(CLSID_WICJpegChrominanceMetadataReader, 0x50b1904b,0xf28f,0x4574,0x93,0xf4,0x0b,0xad,0xe8,0x2c,0x69,0xe9);
228 DEFINE_GUID(CLSID_WICJpegChrominanceMetadataWriter, 0x3ff566f0,0x6e6b,0x49d4,0x96,0xe6,0xb7,0x88,0x86,0x69,0x2c,0x62);
229 DEFINE_GUID(CLSID_WICJpegCommentMetadataReader, 0x9f66347c,0x60c4,0x4c4d,0xab,0x58,0xd2,0x35,0x86,0x85,0xf6,0x07);
230 DEFINE_GUID(CLSID_WICJpegCommentMetadataWriter, 0xe573236f,0x55b1,0x4eda,0x81,0xea,0x9f,0x65,0xdb,0x02,0x90,0xd3);
231 DEFINE_GUID(CLSID_WICJpegLuminanceMetadataReader, 0x356f2f88,0x05a6,0x4728,0xb9,0xa4,0x1b,0xfb,0xce,0x04,0xd8,0x38);
232 DEFINE_GUID(CLSID_WICJpegLuminanceMetadataWriter, 0x1d583abc,0x8a0e,0x4657,0x99,0x82,0xa3,0x80,0xca,0x58,0xfb,0x4b);
233 DEFINE_GUID(CLSID_WICDdsMetadataReader, 0x276c88ca,0x7533,0x4a86,0xb6,0x76,0x66,0xb3,0x60,0x80,0xd4,0x84);
234 DEFINE_GUID(CLSID_WICDdsMetadataWriter, 0xfd688bbd,0x31ed,0x4db7,0xa7,0x23,0x93,0x49,0x27,0xd3,0x83,0x67);
235 DEFINE_GUID(CLSID_WICHeifMetadataReader, 0xacddfc3f,0x85ec,0x41bc,0xbd,0xef,0x1b,0xc2,0x62,0xe4,0xdb,0x05);
236 DEFINE_GUID(CLSID_WICHeifMetadataWriter, 0x3ae45e79,0x40bc,0x4401,0xac,0xe5,0xdd,0x3c,0xb1,0x6e,0x6a,0xfe);
237 DEFINE_GUID(CLSID_WICHeifHDRMetadataReader, 0x2438de3d,0x94d9,0x4be8,0x84,0xa8,0x4d,0xe9,0x5a,0x57,0x5e,0x75);
238 DEFINE_GUID(CLSID_WICWebpAnimMetadataReader, 0x076f9911,0xa348,0x465c,0xa8,0x07,0xa2,0x52,0xf3,0xf2,0xd3,0xde);
239 DEFINE_GUID(CLSID_WICWebpAnmfMetadataReader, 0x85a10b03,0xc9f6,0x439f,0xbe,0x5e,0xc0,0xfb,0xef,0x67,0x80,0x7c);
240 typedef struct WICMetadataPattern {
241     ULARGE_INTEGER Position;
242     ULONG Length;
243     BYTE *Pattern;
244     BYTE *Mask;
245     ULARGE_INTEGER DataOffset;
246 } WICMetadataPattern;
247 typedef struct WICMetadataHeader {
248     ULARGE_INTEGER Position;
249     ULONG Length;
250     BYTE *Header;
251     ULARGE_INTEGER DataOffset;
252 } WICMetadataHeader;
253 /*****************************************************************************
254  * IWICMetadataHandlerInfo interface
255  */
256 #ifndef __IWICMetadataHandlerInfo_INTERFACE_DEFINED__
257 #define __IWICMetadataHandlerInfo_INTERFACE_DEFINED__
258 
259 DEFINE_GUID(IID_IWICMetadataHandlerInfo, 0xaba958bf, 0xc672, 0x44d1, 0x8d,0x61, 0xce,0x6d,0xf2,0xe6,0x82,0xc2);
260 #if defined(__cplusplus) && !defined(CINTERFACE)
261 MIDL_INTERFACE("aba958bf-c672-44d1-8d61-ce6df2e682c2")
262 IWICMetadataHandlerInfo : public IWICComponentInfo
263 {
264     virtual HRESULT STDMETHODCALLTYPE GetMetadataFormat(
265         GUID *pguidMetadataFormat) = 0;
266 
267     virtual HRESULT STDMETHODCALLTYPE GetContainerFormats(
268         UINT cContainerFormats,
269         GUID *pguidContainerFormats,
270         UINT *pcchActual) = 0;
271 
272     virtual HRESULT STDMETHODCALLTYPE GetDeviceManufacturer(
273         UINT cchDeviceManufacturer,
274         WCHAR *wzDeviceManufacturer,
275         UINT *pcchActual) = 0;
276 
277     virtual HRESULT STDMETHODCALLTYPE GetDeviceModels(
278         UINT cchDeviceModels,
279         WCHAR *wzDeviceModels,
280         UINT *pcchActual) = 0;
281 
282     virtual HRESULT STDMETHODCALLTYPE DoesRequireFullStream(
283         WINBOOL *pfRequiresFullStream) = 0;
284 
285     virtual HRESULT STDMETHODCALLTYPE DoesSupportPadding(
286         WINBOOL *pfSupportsPadding) = 0;
287 
288     virtual HRESULT STDMETHODCALLTYPE DoesRequireFixedSize(
289         WINBOOL *pfFixedSize) = 0;
290 
291 };
292 #ifdef __CRT_UUID_DECL
293 __CRT_UUID_DECL(IWICMetadataHandlerInfo, 0xaba958bf, 0xc672, 0x44d1, 0x8d,0x61, 0xce,0x6d,0xf2,0xe6,0x82,0xc2)
294 #endif
295 #else
296 typedef struct IWICMetadataHandlerInfoVtbl {
297     BEGIN_INTERFACE
298 
299     /*** IUnknown methods ***/
300     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
301         IWICMetadataHandlerInfo *This,
302         REFIID riid,
303         void **ppvObject);
304 
305     ULONG (STDMETHODCALLTYPE *AddRef)(
306         IWICMetadataHandlerInfo *This);
307 
308     ULONG (STDMETHODCALLTYPE *Release)(
309         IWICMetadataHandlerInfo *This);
310 
311     /*** IWICComponentInfo methods ***/
312     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
313         IWICMetadataHandlerInfo *This,
314         WICComponentType *pType);
315 
316     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
317         IWICMetadataHandlerInfo *This,
318         CLSID *pclsid);
319 
320     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
321         IWICMetadataHandlerInfo *This,
322         DWORD *pStatus);
323 
324     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
325         IWICMetadataHandlerInfo *This,
326         UINT cchAuthor,
327         WCHAR *wzAuthor,
328         UINT *pcchActual);
329 
330     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
331         IWICMetadataHandlerInfo *This,
332         GUID *pguidVendor);
333 
334     HRESULT (STDMETHODCALLTYPE *GetVersion)(
335         IWICMetadataHandlerInfo *This,
336         UINT cchVersion,
337         WCHAR *wzVersion,
338         UINT *pcchActual);
339 
340     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
341         IWICMetadataHandlerInfo *This,
342         UINT cchSpecVersion,
343         WCHAR *wzSpecVersion,
344         UINT *pcchActual);
345 
346     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
347         IWICMetadataHandlerInfo *This,
348         UINT cchFriendlyName,
349         WCHAR *wzFriendlyName,
350         UINT *pcchActual);
351 
352     /*** IWICMetadataHandlerInfo methods ***/
353     HRESULT (STDMETHODCALLTYPE *GetMetadataFormat)(
354         IWICMetadataHandlerInfo *This,
355         GUID *pguidMetadataFormat);
356 
357     HRESULT (STDMETHODCALLTYPE *GetContainerFormats)(
358         IWICMetadataHandlerInfo *This,
359         UINT cContainerFormats,
360         GUID *pguidContainerFormats,
361         UINT *pcchActual);
362 
363     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
364         IWICMetadataHandlerInfo *This,
365         UINT cchDeviceManufacturer,
366         WCHAR *wzDeviceManufacturer,
367         UINT *pcchActual);
368 
369     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
370         IWICMetadataHandlerInfo *This,
371         UINT cchDeviceModels,
372         WCHAR *wzDeviceModels,
373         UINT *pcchActual);
374 
375     HRESULT (STDMETHODCALLTYPE *DoesRequireFullStream)(
376         IWICMetadataHandlerInfo *This,
377         WINBOOL *pfRequiresFullStream);
378 
379     HRESULT (STDMETHODCALLTYPE *DoesSupportPadding)(
380         IWICMetadataHandlerInfo *This,
381         WINBOOL *pfSupportsPadding);
382 
383     HRESULT (STDMETHODCALLTYPE *DoesRequireFixedSize)(
384         IWICMetadataHandlerInfo *This,
385         WINBOOL *pfFixedSize);
386 
387     END_INTERFACE
388 } IWICMetadataHandlerInfoVtbl;
389 
390 interface IWICMetadataHandlerInfo {
391     CONST_VTBL IWICMetadataHandlerInfoVtbl* lpVtbl;
392 };
393 
394 #ifdef COBJMACROS
395 #ifndef WIDL_C_INLINE_WRAPPERS
396 /*** IUnknown methods ***/
397 #define IWICMetadataHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
398 #define IWICMetadataHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
399 #define IWICMetadataHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
400 /*** IWICComponentInfo methods ***/
401 #define IWICMetadataHandlerInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
402 #define IWICMetadataHandlerInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
403 #define IWICMetadataHandlerInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
404 #define IWICMetadataHandlerInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
405 #define IWICMetadataHandlerInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
406 #define IWICMetadataHandlerInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
407 #define IWICMetadataHandlerInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
408 #define IWICMetadataHandlerInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
409 /*** IWICMetadataHandlerInfo methods ***/
410 #define IWICMetadataHandlerInfo_GetMetadataFormat(This,pguidMetadataFormat) (This)->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat)
411 #define IWICMetadataHandlerInfo_GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual) (This)->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual)
412 #define IWICMetadataHandlerInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
413 #define IWICMetadataHandlerInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
414 #define IWICMetadataHandlerInfo_DoesRequireFullStream(This,pfRequiresFullStream) (This)->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream)
415 #define IWICMetadataHandlerInfo_DoesSupportPadding(This,pfSupportsPadding) (This)->lpVtbl->DoesSupportPadding(This,pfSupportsPadding)
416 #define IWICMetadataHandlerInfo_DoesRequireFixedSize(This,pfFixedSize) (This)->lpVtbl->DoesRequireFixedSize(This,pfFixedSize)
417 #else
418 /*** IUnknown methods ***/
419 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_QueryInterface(IWICMetadataHandlerInfo* This,REFIID riid,void **ppvObject) {
420     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
421 }
422 static FORCEINLINE ULONG IWICMetadataHandlerInfo_AddRef(IWICMetadataHandlerInfo* This) {
423     return This->lpVtbl->AddRef(This);
424 }
425 static FORCEINLINE ULONG IWICMetadataHandlerInfo_Release(IWICMetadataHandlerInfo* This) {
426     return This->lpVtbl->Release(This);
427 }
428 /*** IWICComponentInfo methods ***/
429 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetComponentType(IWICMetadataHandlerInfo* This,WICComponentType *pType) {
430     return This->lpVtbl->GetComponentType(This,pType);
431 }
432 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetCLSID(IWICMetadataHandlerInfo* This,CLSID *pclsid) {
433     return This->lpVtbl->GetCLSID(This,pclsid);
434 }
435 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetSigningStatus(IWICMetadataHandlerInfo* This,DWORD *pStatus) {
436     return This->lpVtbl->GetSigningStatus(This,pStatus);
437 }
438 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetAuthor(IWICMetadataHandlerInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
439     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
440 }
441 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetVendorGUID(IWICMetadataHandlerInfo* This,GUID *pguidVendor) {
442     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
443 }
444 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetVersion(IWICMetadataHandlerInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
445     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
446 }
447 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetSpecVersion(IWICMetadataHandlerInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
448     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
449 }
450 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetFriendlyName(IWICMetadataHandlerInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
451     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
452 }
453 /*** IWICMetadataHandlerInfo methods ***/
454 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetMetadataFormat(IWICMetadataHandlerInfo* This,GUID *pguidMetadataFormat) {
455     return This->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat);
456 }
457 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetContainerFormats(IWICMetadataHandlerInfo* This,UINT cContainerFormats,GUID *pguidContainerFormats,UINT *pcchActual) {
458     return This->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual);
459 }
460 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetDeviceManufacturer(IWICMetadataHandlerInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
461     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
462 }
463 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_GetDeviceModels(IWICMetadataHandlerInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
464     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
465 }
466 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_DoesRequireFullStream(IWICMetadataHandlerInfo* This,WINBOOL *pfRequiresFullStream) {
467     return This->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream);
468 }
469 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_DoesSupportPadding(IWICMetadataHandlerInfo* This,WINBOOL *pfSupportsPadding) {
470     return This->lpVtbl->DoesSupportPadding(This,pfSupportsPadding);
471 }
472 static FORCEINLINE HRESULT IWICMetadataHandlerInfo_DoesRequireFixedSize(IWICMetadataHandlerInfo* This,WINBOOL *pfFixedSize) {
473     return This->lpVtbl->DoesRequireFixedSize(This,pfFixedSize);
474 }
475 #endif
476 #endif
477 
478 #endif
479 
480 
481 #endif  /* __IWICMetadataHandlerInfo_INTERFACE_DEFINED__ */
482 
483 /*****************************************************************************
484  * IWICMetadataReader interface
485  */
486 #ifndef __IWICMetadataReader_INTERFACE_DEFINED__
487 #define __IWICMetadataReader_INTERFACE_DEFINED__
488 
489 DEFINE_GUID(IID_IWICMetadataReader, 0x9204fe99, 0xd8fc, 0x4fd5, 0xa0,0x01, 0x95,0x36,0xb0,0x67,0xa8,0x99);
490 #if defined(__cplusplus) && !defined(CINTERFACE)
491 MIDL_INTERFACE("9204fe99-d8fc-4fd5-a001-9536b067a899")
492 IWICMetadataReader : public IUnknown
493 {
494     virtual HRESULT STDMETHODCALLTYPE GetMetadataFormat(
495         GUID *pguidMetadataFormat) = 0;
496 
497     virtual HRESULT STDMETHODCALLTYPE GetMetadataHandlerInfo(
498         IWICMetadataHandlerInfo **ppIHandler) = 0;
499 
500     virtual HRESULT STDMETHODCALLTYPE GetCount(
501         UINT *pcCount) = 0;
502 
503     virtual HRESULT STDMETHODCALLTYPE GetValueByIndex(
504         UINT nIndex,
505         PROPVARIANT *pvarSchema,
506         PROPVARIANT *pvarId,
507         PROPVARIANT *pvarValue) = 0;
508 
509     virtual HRESULT STDMETHODCALLTYPE GetValue(
510         const PROPVARIANT *pvarSchema,
511         const PROPVARIANT *pvarId,
512         PROPVARIANT *pvarValue) = 0;
513 
514     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
515         IWICEnumMetadataItem **ppIEnumMetadata) = 0;
516 
517 };
518 #ifdef __CRT_UUID_DECL
519 __CRT_UUID_DECL(IWICMetadataReader, 0x9204fe99, 0xd8fc, 0x4fd5, 0xa0,0x01, 0x95,0x36,0xb0,0x67,0xa8,0x99)
520 #endif
521 #else
522 typedef struct IWICMetadataReaderVtbl {
523     BEGIN_INTERFACE
524 
525     /*** IUnknown methods ***/
526     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
527         IWICMetadataReader *This,
528         REFIID riid,
529         void **ppvObject);
530 
531     ULONG (STDMETHODCALLTYPE *AddRef)(
532         IWICMetadataReader *This);
533 
534     ULONG (STDMETHODCALLTYPE *Release)(
535         IWICMetadataReader *This);
536 
537     /*** IWICMetadataReader methods ***/
538     HRESULT (STDMETHODCALLTYPE *GetMetadataFormat)(
539         IWICMetadataReader *This,
540         GUID *pguidMetadataFormat);
541 
542     HRESULT (STDMETHODCALLTYPE *GetMetadataHandlerInfo)(
543         IWICMetadataReader *This,
544         IWICMetadataHandlerInfo **ppIHandler);
545 
546     HRESULT (STDMETHODCALLTYPE *GetCount)(
547         IWICMetadataReader *This,
548         UINT *pcCount);
549 
550     HRESULT (STDMETHODCALLTYPE *GetValueByIndex)(
551         IWICMetadataReader *This,
552         UINT nIndex,
553         PROPVARIANT *pvarSchema,
554         PROPVARIANT *pvarId,
555         PROPVARIANT *pvarValue);
556 
557     HRESULT (STDMETHODCALLTYPE *GetValue)(
558         IWICMetadataReader *This,
559         const PROPVARIANT *pvarSchema,
560         const PROPVARIANT *pvarId,
561         PROPVARIANT *pvarValue);
562 
563     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
564         IWICMetadataReader *This,
565         IWICEnumMetadataItem **ppIEnumMetadata);
566 
567     END_INTERFACE
568 } IWICMetadataReaderVtbl;
569 
570 interface IWICMetadataReader {
571     CONST_VTBL IWICMetadataReaderVtbl* lpVtbl;
572 };
573 
574 #ifdef COBJMACROS
575 #ifndef WIDL_C_INLINE_WRAPPERS
576 /*** IUnknown methods ***/
577 #define IWICMetadataReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
578 #define IWICMetadataReader_AddRef(This) (This)->lpVtbl->AddRef(This)
579 #define IWICMetadataReader_Release(This) (This)->lpVtbl->Release(This)
580 /*** IWICMetadataReader methods ***/
581 #define IWICMetadataReader_GetMetadataFormat(This,pguidMetadataFormat) (This)->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat)
582 #define IWICMetadataReader_GetMetadataHandlerInfo(This,ppIHandler) (This)->lpVtbl->GetMetadataHandlerInfo(This,ppIHandler)
583 #define IWICMetadataReader_GetCount(This,pcCount) (This)->lpVtbl->GetCount(This,pcCount)
584 #define IWICMetadataReader_GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue)
585 #define IWICMetadataReader_GetValue(This,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->GetValue(This,pvarSchema,pvarId,pvarValue)
586 #define IWICMetadataReader_GetEnumerator(This,ppIEnumMetadata) (This)->lpVtbl->GetEnumerator(This,ppIEnumMetadata)
587 #else
588 /*** IUnknown methods ***/
589 static FORCEINLINE HRESULT IWICMetadataReader_QueryInterface(IWICMetadataReader* This,REFIID riid,void **ppvObject) {
590     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
591 }
592 static FORCEINLINE ULONG IWICMetadataReader_AddRef(IWICMetadataReader* This) {
593     return This->lpVtbl->AddRef(This);
594 }
595 static FORCEINLINE ULONG IWICMetadataReader_Release(IWICMetadataReader* This) {
596     return This->lpVtbl->Release(This);
597 }
598 /*** IWICMetadataReader methods ***/
599 static FORCEINLINE HRESULT IWICMetadataReader_GetMetadataFormat(IWICMetadataReader* This,GUID *pguidMetadataFormat) {
600     return This->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat);
601 }
602 static FORCEINLINE HRESULT IWICMetadataReader_GetMetadataHandlerInfo(IWICMetadataReader* This,IWICMetadataHandlerInfo **ppIHandler) {
603     return This->lpVtbl->GetMetadataHandlerInfo(This,ppIHandler);
604 }
605 static FORCEINLINE HRESULT IWICMetadataReader_GetCount(IWICMetadataReader* This,UINT *pcCount) {
606     return This->lpVtbl->GetCount(This,pcCount);
607 }
608 static FORCEINLINE HRESULT IWICMetadataReader_GetValueByIndex(IWICMetadataReader* This,UINT nIndex,PROPVARIANT *pvarSchema,PROPVARIANT *pvarId,PROPVARIANT *pvarValue) {
609     return This->lpVtbl->GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue);
610 }
611 static FORCEINLINE HRESULT IWICMetadataReader_GetValue(IWICMetadataReader* This,const PROPVARIANT *pvarSchema,const PROPVARIANT *pvarId,PROPVARIANT *pvarValue) {
612     return This->lpVtbl->GetValue(This,pvarSchema,pvarId,pvarValue);
613 }
614 static FORCEINLINE HRESULT IWICMetadataReader_GetEnumerator(IWICMetadataReader* This,IWICEnumMetadataItem **ppIEnumMetadata) {
615     return This->lpVtbl->GetEnumerator(This,ppIEnumMetadata);
616 }
617 #endif
618 #endif
619 
620 #endif
621 
622 
623 #endif  /* __IWICMetadataReader_INTERFACE_DEFINED__ */
624 
625 /*****************************************************************************
626  * IWICMetadataReaderInfo interface
627  */
628 #ifndef __IWICMetadataReaderInfo_INTERFACE_DEFINED__
629 #define __IWICMetadataReaderInfo_INTERFACE_DEFINED__
630 
631 DEFINE_GUID(IID_IWICMetadataReaderInfo, 0xeebf1f5b, 0x07c1, 0x4447, 0xa3,0xab, 0x22,0xac,0xaf,0x78,0xa8,0x04);
632 #if defined(__cplusplus) && !defined(CINTERFACE)
633 MIDL_INTERFACE("eebf1f5b-07c1-4447-a3ab-22acaf78a804")
634 IWICMetadataReaderInfo : public IWICMetadataHandlerInfo
635 {
636     virtual HRESULT STDMETHODCALLTYPE GetPatterns(
637         REFGUID guidContainerFormat,
638         UINT cbSize,
639         WICMetadataPattern *pPattern,
640         UINT *pcCount,
641         UINT *pcbActual) = 0;
642 
643     virtual HRESULT STDMETHODCALLTYPE MatchesPattern(
644         REFGUID guidContainerFormat,
645         IStream *pIStream,
646         WINBOOL *pfMatches) = 0;
647 
648     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
649         IWICMetadataReader **ppIReader) = 0;
650 
651 };
652 #ifdef __CRT_UUID_DECL
653 __CRT_UUID_DECL(IWICMetadataReaderInfo, 0xeebf1f5b, 0x07c1, 0x4447, 0xa3,0xab, 0x22,0xac,0xaf,0x78,0xa8,0x04)
654 #endif
655 #else
656 typedef struct IWICMetadataReaderInfoVtbl {
657     BEGIN_INTERFACE
658 
659     /*** IUnknown methods ***/
660     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
661         IWICMetadataReaderInfo *This,
662         REFIID riid,
663         void **ppvObject);
664 
665     ULONG (STDMETHODCALLTYPE *AddRef)(
666         IWICMetadataReaderInfo *This);
667 
668     ULONG (STDMETHODCALLTYPE *Release)(
669         IWICMetadataReaderInfo *This);
670 
671     /*** IWICComponentInfo methods ***/
672     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
673         IWICMetadataReaderInfo *This,
674         WICComponentType *pType);
675 
676     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
677         IWICMetadataReaderInfo *This,
678         CLSID *pclsid);
679 
680     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
681         IWICMetadataReaderInfo *This,
682         DWORD *pStatus);
683 
684     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
685         IWICMetadataReaderInfo *This,
686         UINT cchAuthor,
687         WCHAR *wzAuthor,
688         UINT *pcchActual);
689 
690     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
691         IWICMetadataReaderInfo *This,
692         GUID *pguidVendor);
693 
694     HRESULT (STDMETHODCALLTYPE *GetVersion)(
695         IWICMetadataReaderInfo *This,
696         UINT cchVersion,
697         WCHAR *wzVersion,
698         UINT *pcchActual);
699 
700     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
701         IWICMetadataReaderInfo *This,
702         UINT cchSpecVersion,
703         WCHAR *wzSpecVersion,
704         UINT *pcchActual);
705 
706     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
707         IWICMetadataReaderInfo *This,
708         UINT cchFriendlyName,
709         WCHAR *wzFriendlyName,
710         UINT *pcchActual);
711 
712     /*** IWICMetadataHandlerInfo methods ***/
713     HRESULT (STDMETHODCALLTYPE *GetMetadataFormat)(
714         IWICMetadataReaderInfo *This,
715         GUID *pguidMetadataFormat);
716 
717     HRESULT (STDMETHODCALLTYPE *GetContainerFormats)(
718         IWICMetadataReaderInfo *This,
719         UINT cContainerFormats,
720         GUID *pguidContainerFormats,
721         UINT *pcchActual);
722 
723     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
724         IWICMetadataReaderInfo *This,
725         UINT cchDeviceManufacturer,
726         WCHAR *wzDeviceManufacturer,
727         UINT *pcchActual);
728 
729     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
730         IWICMetadataReaderInfo *This,
731         UINT cchDeviceModels,
732         WCHAR *wzDeviceModels,
733         UINT *pcchActual);
734 
735     HRESULT (STDMETHODCALLTYPE *DoesRequireFullStream)(
736         IWICMetadataReaderInfo *This,
737         WINBOOL *pfRequiresFullStream);
738 
739     HRESULT (STDMETHODCALLTYPE *DoesSupportPadding)(
740         IWICMetadataReaderInfo *This,
741         WINBOOL *pfSupportsPadding);
742 
743     HRESULT (STDMETHODCALLTYPE *DoesRequireFixedSize)(
744         IWICMetadataReaderInfo *This,
745         WINBOOL *pfFixedSize);
746 
747     /*** IWICMetadataReaderInfo methods ***/
748     HRESULT (STDMETHODCALLTYPE *GetPatterns)(
749         IWICMetadataReaderInfo *This,
750         REFGUID guidContainerFormat,
751         UINT cbSize,
752         WICMetadataPattern *pPattern,
753         UINT *pcCount,
754         UINT *pcbActual);
755 
756     HRESULT (STDMETHODCALLTYPE *MatchesPattern)(
757         IWICMetadataReaderInfo *This,
758         REFGUID guidContainerFormat,
759         IStream *pIStream,
760         WINBOOL *pfMatches);
761 
762     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
763         IWICMetadataReaderInfo *This,
764         IWICMetadataReader **ppIReader);
765 
766     END_INTERFACE
767 } IWICMetadataReaderInfoVtbl;
768 
769 interface IWICMetadataReaderInfo {
770     CONST_VTBL IWICMetadataReaderInfoVtbl* lpVtbl;
771 };
772 
773 #ifdef COBJMACROS
774 #ifndef WIDL_C_INLINE_WRAPPERS
775 /*** IUnknown methods ***/
776 #define IWICMetadataReaderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
777 #define IWICMetadataReaderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
778 #define IWICMetadataReaderInfo_Release(This) (This)->lpVtbl->Release(This)
779 /*** IWICComponentInfo methods ***/
780 #define IWICMetadataReaderInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
781 #define IWICMetadataReaderInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
782 #define IWICMetadataReaderInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
783 #define IWICMetadataReaderInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
784 #define IWICMetadataReaderInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
785 #define IWICMetadataReaderInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
786 #define IWICMetadataReaderInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
787 #define IWICMetadataReaderInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
788 /*** IWICMetadataHandlerInfo methods ***/
789 #define IWICMetadataReaderInfo_GetMetadataFormat(This,pguidMetadataFormat) (This)->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat)
790 #define IWICMetadataReaderInfo_GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual) (This)->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual)
791 #define IWICMetadataReaderInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
792 #define IWICMetadataReaderInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
793 #define IWICMetadataReaderInfo_DoesRequireFullStream(This,pfRequiresFullStream) (This)->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream)
794 #define IWICMetadataReaderInfo_DoesSupportPadding(This,pfSupportsPadding) (This)->lpVtbl->DoesSupportPadding(This,pfSupportsPadding)
795 #define IWICMetadataReaderInfo_DoesRequireFixedSize(This,pfFixedSize) (This)->lpVtbl->DoesRequireFixedSize(This,pfFixedSize)
796 /*** IWICMetadataReaderInfo methods ***/
797 #define IWICMetadataReaderInfo_GetPatterns(This,guidContainerFormat,cbSize,pPattern,pcCount,pcbActual) (This)->lpVtbl->GetPatterns(This,guidContainerFormat,cbSize,pPattern,pcCount,pcbActual)
798 #define IWICMetadataReaderInfo_MatchesPattern(This,guidContainerFormat,pIStream,pfMatches) (This)->lpVtbl->MatchesPattern(This,guidContainerFormat,pIStream,pfMatches)
799 #define IWICMetadataReaderInfo_CreateInstance(This,ppIReader) (This)->lpVtbl->CreateInstance(This,ppIReader)
800 #else
801 /*** IUnknown methods ***/
802 static FORCEINLINE HRESULT IWICMetadataReaderInfo_QueryInterface(IWICMetadataReaderInfo* This,REFIID riid,void **ppvObject) {
803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
804 }
805 static FORCEINLINE ULONG IWICMetadataReaderInfo_AddRef(IWICMetadataReaderInfo* This) {
806     return This->lpVtbl->AddRef(This);
807 }
808 static FORCEINLINE ULONG IWICMetadataReaderInfo_Release(IWICMetadataReaderInfo* This) {
809     return This->lpVtbl->Release(This);
810 }
811 /*** IWICComponentInfo methods ***/
812 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetComponentType(IWICMetadataReaderInfo* This,WICComponentType *pType) {
813     return This->lpVtbl->GetComponentType(This,pType);
814 }
815 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetCLSID(IWICMetadataReaderInfo* This,CLSID *pclsid) {
816     return This->lpVtbl->GetCLSID(This,pclsid);
817 }
818 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetSigningStatus(IWICMetadataReaderInfo* This,DWORD *pStatus) {
819     return This->lpVtbl->GetSigningStatus(This,pStatus);
820 }
821 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetAuthor(IWICMetadataReaderInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
822     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
823 }
824 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetVendorGUID(IWICMetadataReaderInfo* This,GUID *pguidVendor) {
825     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
826 }
827 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetVersion(IWICMetadataReaderInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
828     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
829 }
830 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetSpecVersion(IWICMetadataReaderInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
831     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
832 }
833 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetFriendlyName(IWICMetadataReaderInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
834     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
835 }
836 /*** IWICMetadataHandlerInfo methods ***/
837 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetMetadataFormat(IWICMetadataReaderInfo* This,GUID *pguidMetadataFormat) {
838     return This->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat);
839 }
840 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetContainerFormats(IWICMetadataReaderInfo* This,UINT cContainerFormats,GUID *pguidContainerFormats,UINT *pcchActual) {
841     return This->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual);
842 }
843 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetDeviceManufacturer(IWICMetadataReaderInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
844     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
845 }
846 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetDeviceModels(IWICMetadataReaderInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
847     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
848 }
849 static FORCEINLINE HRESULT IWICMetadataReaderInfo_DoesRequireFullStream(IWICMetadataReaderInfo* This,WINBOOL *pfRequiresFullStream) {
850     return This->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream);
851 }
852 static FORCEINLINE HRESULT IWICMetadataReaderInfo_DoesSupportPadding(IWICMetadataReaderInfo* This,WINBOOL *pfSupportsPadding) {
853     return This->lpVtbl->DoesSupportPadding(This,pfSupportsPadding);
854 }
855 static FORCEINLINE HRESULT IWICMetadataReaderInfo_DoesRequireFixedSize(IWICMetadataReaderInfo* This,WINBOOL *pfFixedSize) {
856     return This->lpVtbl->DoesRequireFixedSize(This,pfFixedSize);
857 }
858 /*** IWICMetadataReaderInfo methods ***/
859 static FORCEINLINE HRESULT IWICMetadataReaderInfo_GetPatterns(IWICMetadataReaderInfo* This,REFGUID guidContainerFormat,UINT cbSize,WICMetadataPattern *pPattern,UINT *pcCount,UINT *pcbActual) {
860     return This->lpVtbl->GetPatterns(This,guidContainerFormat,cbSize,pPattern,pcCount,pcbActual);
861 }
862 static FORCEINLINE HRESULT IWICMetadataReaderInfo_MatchesPattern(IWICMetadataReaderInfo* This,REFGUID guidContainerFormat,IStream *pIStream,WINBOOL *pfMatches) {
863     return This->lpVtbl->MatchesPattern(This,guidContainerFormat,pIStream,pfMatches);
864 }
865 static FORCEINLINE HRESULT IWICMetadataReaderInfo_CreateInstance(IWICMetadataReaderInfo* This,IWICMetadataReader **ppIReader) {
866     return This->lpVtbl->CreateInstance(This,ppIReader);
867 }
868 #endif
869 #endif
870 
871 #endif
872 
873 
874 #endif  /* __IWICMetadataReaderInfo_INTERFACE_DEFINED__ */
875 
876 /*****************************************************************************
877  * IWICMetadataWriter interface
878  */
879 #ifndef __IWICMetadataWriter_INTERFACE_DEFINED__
880 #define __IWICMetadataWriter_INTERFACE_DEFINED__
881 
882 DEFINE_GUID(IID_IWICMetadataWriter, 0xf7836e16, 0x3be0, 0x470b, 0x86,0xbb, 0x16,0x0d,0x0a,0xec,0xd7,0xde);
883 #if defined(__cplusplus) && !defined(CINTERFACE)
884 MIDL_INTERFACE("f7836e16-3be0-470b-86bb-160d0aecd7de")
885 IWICMetadataWriter : public IWICMetadataReader
886 {
887     virtual HRESULT STDMETHODCALLTYPE SetValue(
888         const PROPVARIANT *pvarSchema,
889         const PROPVARIANT *pvarId,
890         const PROPVARIANT *pvarValue) = 0;
891 
892     virtual HRESULT STDMETHODCALLTYPE SetValueByIndex(
893         UINT nIndex,
894         const PROPVARIANT *pvarSchema,
895         const PROPVARIANT *pvarId,
896         const PROPVARIANT *pvarValue) = 0;
897 
898     virtual HRESULT STDMETHODCALLTYPE RemoveValue(
899         const PROPVARIANT *pvarSchema,
900         const PROPVARIANT *pvarId) = 0;
901 
902     virtual HRESULT STDMETHODCALLTYPE RemoveValueByIndex(
903         UINT nIndex) = 0;
904 
905 };
906 #ifdef __CRT_UUID_DECL
907 __CRT_UUID_DECL(IWICMetadataWriter, 0xf7836e16, 0x3be0, 0x470b, 0x86,0xbb, 0x16,0x0d,0x0a,0xec,0xd7,0xde)
908 #endif
909 #else
910 typedef struct IWICMetadataWriterVtbl {
911     BEGIN_INTERFACE
912 
913     /*** IUnknown methods ***/
914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
915         IWICMetadataWriter *This,
916         REFIID riid,
917         void **ppvObject);
918 
919     ULONG (STDMETHODCALLTYPE *AddRef)(
920         IWICMetadataWriter *This);
921 
922     ULONG (STDMETHODCALLTYPE *Release)(
923         IWICMetadataWriter *This);
924 
925     /*** IWICMetadataReader methods ***/
926     HRESULT (STDMETHODCALLTYPE *GetMetadataFormat)(
927         IWICMetadataWriter *This,
928         GUID *pguidMetadataFormat);
929 
930     HRESULT (STDMETHODCALLTYPE *GetMetadataHandlerInfo)(
931         IWICMetadataWriter *This,
932         IWICMetadataHandlerInfo **ppIHandler);
933 
934     HRESULT (STDMETHODCALLTYPE *GetCount)(
935         IWICMetadataWriter *This,
936         UINT *pcCount);
937 
938     HRESULT (STDMETHODCALLTYPE *GetValueByIndex)(
939         IWICMetadataWriter *This,
940         UINT nIndex,
941         PROPVARIANT *pvarSchema,
942         PROPVARIANT *pvarId,
943         PROPVARIANT *pvarValue);
944 
945     HRESULT (STDMETHODCALLTYPE *GetValue)(
946         IWICMetadataWriter *This,
947         const PROPVARIANT *pvarSchema,
948         const PROPVARIANT *pvarId,
949         PROPVARIANT *pvarValue);
950 
951     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
952         IWICMetadataWriter *This,
953         IWICEnumMetadataItem **ppIEnumMetadata);
954 
955     /*** IWICMetadataWriter methods ***/
956     HRESULT (STDMETHODCALLTYPE *SetValue)(
957         IWICMetadataWriter *This,
958         const PROPVARIANT *pvarSchema,
959         const PROPVARIANT *pvarId,
960         const PROPVARIANT *pvarValue);
961 
962     HRESULT (STDMETHODCALLTYPE *SetValueByIndex)(
963         IWICMetadataWriter *This,
964         UINT nIndex,
965         const PROPVARIANT *pvarSchema,
966         const PROPVARIANT *pvarId,
967         const PROPVARIANT *pvarValue);
968 
969     HRESULT (STDMETHODCALLTYPE *RemoveValue)(
970         IWICMetadataWriter *This,
971         const PROPVARIANT *pvarSchema,
972         const PROPVARIANT *pvarId);
973 
974     HRESULT (STDMETHODCALLTYPE *RemoveValueByIndex)(
975         IWICMetadataWriter *This,
976         UINT nIndex);
977 
978     END_INTERFACE
979 } IWICMetadataWriterVtbl;
980 
981 interface IWICMetadataWriter {
982     CONST_VTBL IWICMetadataWriterVtbl* lpVtbl;
983 };
984 
985 #ifdef COBJMACROS
986 #ifndef WIDL_C_INLINE_WRAPPERS
987 /*** IUnknown methods ***/
988 #define IWICMetadataWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
989 #define IWICMetadataWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
990 #define IWICMetadataWriter_Release(This) (This)->lpVtbl->Release(This)
991 /*** IWICMetadataReader methods ***/
992 #define IWICMetadataWriter_GetMetadataFormat(This,pguidMetadataFormat) (This)->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat)
993 #define IWICMetadataWriter_GetMetadataHandlerInfo(This,ppIHandler) (This)->lpVtbl->GetMetadataHandlerInfo(This,ppIHandler)
994 #define IWICMetadataWriter_GetCount(This,pcCount) (This)->lpVtbl->GetCount(This,pcCount)
995 #define IWICMetadataWriter_GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue)
996 #define IWICMetadataWriter_GetValue(This,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->GetValue(This,pvarSchema,pvarId,pvarValue)
997 #define IWICMetadataWriter_GetEnumerator(This,ppIEnumMetadata) (This)->lpVtbl->GetEnumerator(This,ppIEnumMetadata)
998 /*** IWICMetadataWriter methods ***/
999 #define IWICMetadataWriter_SetValue(This,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->SetValue(This,pvarSchema,pvarId,pvarValue)
1000 #define IWICMetadataWriter_SetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue) (This)->lpVtbl->SetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue)
1001 #define IWICMetadataWriter_RemoveValue(This,pvarSchema,pvarId) (This)->lpVtbl->RemoveValue(This,pvarSchema,pvarId)
1002 #define IWICMetadataWriter_RemoveValueByIndex(This,nIndex) (This)->lpVtbl->RemoveValueByIndex(This,nIndex)
1003 #else
1004 /*** IUnknown methods ***/
1005 static FORCEINLINE HRESULT IWICMetadataWriter_QueryInterface(IWICMetadataWriter* This,REFIID riid,void **ppvObject) {
1006     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1007 }
1008 static FORCEINLINE ULONG IWICMetadataWriter_AddRef(IWICMetadataWriter* This) {
1009     return This->lpVtbl->AddRef(This);
1010 }
1011 static FORCEINLINE ULONG IWICMetadataWriter_Release(IWICMetadataWriter* This) {
1012     return This->lpVtbl->Release(This);
1013 }
1014 /*** IWICMetadataReader methods ***/
1015 static FORCEINLINE HRESULT IWICMetadataWriter_GetMetadataFormat(IWICMetadataWriter* This,GUID *pguidMetadataFormat) {
1016     return This->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat);
1017 }
1018 static FORCEINLINE HRESULT IWICMetadataWriter_GetMetadataHandlerInfo(IWICMetadataWriter* This,IWICMetadataHandlerInfo **ppIHandler) {
1019     return This->lpVtbl->GetMetadataHandlerInfo(This,ppIHandler);
1020 }
1021 static FORCEINLINE HRESULT IWICMetadataWriter_GetCount(IWICMetadataWriter* This,UINT *pcCount) {
1022     return This->lpVtbl->GetCount(This,pcCount);
1023 }
1024 static FORCEINLINE HRESULT IWICMetadataWriter_GetValueByIndex(IWICMetadataWriter* This,UINT nIndex,PROPVARIANT *pvarSchema,PROPVARIANT *pvarId,PROPVARIANT *pvarValue) {
1025     return This->lpVtbl->GetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue);
1026 }
1027 static FORCEINLINE HRESULT IWICMetadataWriter_GetValue(IWICMetadataWriter* This,const PROPVARIANT *pvarSchema,const PROPVARIANT *pvarId,PROPVARIANT *pvarValue) {
1028     return This->lpVtbl->GetValue(This,pvarSchema,pvarId,pvarValue);
1029 }
1030 static FORCEINLINE HRESULT IWICMetadataWriter_GetEnumerator(IWICMetadataWriter* This,IWICEnumMetadataItem **ppIEnumMetadata) {
1031     return This->lpVtbl->GetEnumerator(This,ppIEnumMetadata);
1032 }
1033 /*** IWICMetadataWriter methods ***/
1034 static FORCEINLINE HRESULT IWICMetadataWriter_SetValue(IWICMetadataWriter* This,const PROPVARIANT *pvarSchema,const PROPVARIANT *pvarId,const PROPVARIANT *pvarValue) {
1035     return This->lpVtbl->SetValue(This,pvarSchema,pvarId,pvarValue);
1036 }
1037 static FORCEINLINE HRESULT IWICMetadataWriter_SetValueByIndex(IWICMetadataWriter* This,UINT nIndex,const PROPVARIANT *pvarSchema,const PROPVARIANT *pvarId,const PROPVARIANT *pvarValue) {
1038     return This->lpVtbl->SetValueByIndex(This,nIndex,pvarSchema,pvarId,pvarValue);
1039 }
1040 static FORCEINLINE HRESULT IWICMetadataWriter_RemoveValue(IWICMetadataWriter* This,const PROPVARIANT *pvarSchema,const PROPVARIANT *pvarId) {
1041     return This->lpVtbl->RemoveValue(This,pvarSchema,pvarId);
1042 }
1043 static FORCEINLINE HRESULT IWICMetadataWriter_RemoveValueByIndex(IWICMetadataWriter* This,UINT nIndex) {
1044     return This->lpVtbl->RemoveValueByIndex(This,nIndex);
1045 }
1046 #endif
1047 #endif
1048 
1049 #endif
1050 
1051 
1052 #endif  /* __IWICMetadataWriter_INTERFACE_DEFINED__ */
1053 
1054 /*****************************************************************************
1055  * IWICMetadataWriterInfo interface
1056  */
1057 #ifndef __IWICMetadataWriterInfo_INTERFACE_DEFINED__
1058 #define __IWICMetadataWriterInfo_INTERFACE_DEFINED__
1059 
1060 DEFINE_GUID(IID_IWICMetadataWriterInfo, 0xb22e3fba, 0x3925, 0x4323, 0xb5,0xc1, 0x9e,0xbf,0xc4,0x30,0xf2,0x36);
1061 #if defined(__cplusplus) && !defined(CINTERFACE)
1062 MIDL_INTERFACE("b22e3fba-3925-4323-b5c1-9ebfc430f236")
1063 IWICMetadataWriterInfo : public IWICMetadataHandlerInfo
1064 {
1065     virtual HRESULT STDMETHODCALLTYPE GetHeader(
1066         REFGUID guidContainerFormat,
1067         UINT cbSize,
1068         WICMetadataHeader *pHeader,
1069         UINT *pcbActual) = 0;
1070 
1071     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
1072         IWICMetadataWriter **ppIWriter) = 0;
1073 
1074 };
1075 #ifdef __CRT_UUID_DECL
1076 __CRT_UUID_DECL(IWICMetadataWriterInfo, 0xb22e3fba, 0x3925, 0x4323, 0xb5,0xc1, 0x9e,0xbf,0xc4,0x30,0xf2,0x36)
1077 #endif
1078 #else
1079 typedef struct IWICMetadataWriterInfoVtbl {
1080     BEGIN_INTERFACE
1081 
1082     /*** IUnknown methods ***/
1083     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1084         IWICMetadataWriterInfo *This,
1085         REFIID riid,
1086         void **ppvObject);
1087 
1088     ULONG (STDMETHODCALLTYPE *AddRef)(
1089         IWICMetadataWriterInfo *This);
1090 
1091     ULONG (STDMETHODCALLTYPE *Release)(
1092         IWICMetadataWriterInfo *This);
1093 
1094     /*** IWICComponentInfo methods ***/
1095     HRESULT (STDMETHODCALLTYPE *GetComponentType)(
1096         IWICMetadataWriterInfo *This,
1097         WICComponentType *pType);
1098 
1099     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
1100         IWICMetadataWriterInfo *This,
1101         CLSID *pclsid);
1102 
1103     HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
1104         IWICMetadataWriterInfo *This,
1105         DWORD *pStatus);
1106 
1107     HRESULT (STDMETHODCALLTYPE *GetAuthor)(
1108         IWICMetadataWriterInfo *This,
1109         UINT cchAuthor,
1110         WCHAR *wzAuthor,
1111         UINT *pcchActual);
1112 
1113     HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
1114         IWICMetadataWriterInfo *This,
1115         GUID *pguidVendor);
1116 
1117     HRESULT (STDMETHODCALLTYPE *GetVersion)(
1118         IWICMetadataWriterInfo *This,
1119         UINT cchVersion,
1120         WCHAR *wzVersion,
1121         UINT *pcchActual);
1122 
1123     HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
1124         IWICMetadataWriterInfo *This,
1125         UINT cchSpecVersion,
1126         WCHAR *wzSpecVersion,
1127         UINT *pcchActual);
1128 
1129     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
1130         IWICMetadataWriterInfo *This,
1131         UINT cchFriendlyName,
1132         WCHAR *wzFriendlyName,
1133         UINT *pcchActual);
1134 
1135     /*** IWICMetadataHandlerInfo methods ***/
1136     HRESULT (STDMETHODCALLTYPE *GetMetadataFormat)(
1137         IWICMetadataWriterInfo *This,
1138         GUID *pguidMetadataFormat);
1139 
1140     HRESULT (STDMETHODCALLTYPE *GetContainerFormats)(
1141         IWICMetadataWriterInfo *This,
1142         UINT cContainerFormats,
1143         GUID *pguidContainerFormats,
1144         UINT *pcchActual);
1145 
1146     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
1147         IWICMetadataWriterInfo *This,
1148         UINT cchDeviceManufacturer,
1149         WCHAR *wzDeviceManufacturer,
1150         UINT *pcchActual);
1151 
1152     HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
1153         IWICMetadataWriterInfo *This,
1154         UINT cchDeviceModels,
1155         WCHAR *wzDeviceModels,
1156         UINT *pcchActual);
1157 
1158     HRESULT (STDMETHODCALLTYPE *DoesRequireFullStream)(
1159         IWICMetadataWriterInfo *This,
1160         WINBOOL *pfRequiresFullStream);
1161 
1162     HRESULT (STDMETHODCALLTYPE *DoesSupportPadding)(
1163         IWICMetadataWriterInfo *This,
1164         WINBOOL *pfSupportsPadding);
1165 
1166     HRESULT (STDMETHODCALLTYPE *DoesRequireFixedSize)(
1167         IWICMetadataWriterInfo *This,
1168         WINBOOL *pfFixedSize);
1169 
1170     /*** IWICMetadataWriterInfo methods ***/
1171     HRESULT (STDMETHODCALLTYPE *GetHeader)(
1172         IWICMetadataWriterInfo *This,
1173         REFGUID guidContainerFormat,
1174         UINT cbSize,
1175         WICMetadataHeader *pHeader,
1176         UINT *pcbActual);
1177 
1178     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1179         IWICMetadataWriterInfo *This,
1180         IWICMetadataWriter **ppIWriter);
1181 
1182     END_INTERFACE
1183 } IWICMetadataWriterInfoVtbl;
1184 
1185 interface IWICMetadataWriterInfo {
1186     CONST_VTBL IWICMetadataWriterInfoVtbl* lpVtbl;
1187 };
1188 
1189 #ifdef COBJMACROS
1190 #ifndef WIDL_C_INLINE_WRAPPERS
1191 /*** IUnknown methods ***/
1192 #define IWICMetadataWriterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1193 #define IWICMetadataWriterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1194 #define IWICMetadataWriterInfo_Release(This) (This)->lpVtbl->Release(This)
1195 /*** IWICComponentInfo methods ***/
1196 #define IWICMetadataWriterInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
1197 #define IWICMetadataWriterInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
1198 #define IWICMetadataWriterInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
1199 #define IWICMetadataWriterInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
1200 #define IWICMetadataWriterInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
1201 #define IWICMetadataWriterInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
1202 #define IWICMetadataWriterInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
1203 #define IWICMetadataWriterInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
1204 /*** IWICMetadataHandlerInfo methods ***/
1205 #define IWICMetadataWriterInfo_GetMetadataFormat(This,pguidMetadataFormat) (This)->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat)
1206 #define IWICMetadataWriterInfo_GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual) (This)->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual)
1207 #define IWICMetadataWriterInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
1208 #define IWICMetadataWriterInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
1209 #define IWICMetadataWriterInfo_DoesRequireFullStream(This,pfRequiresFullStream) (This)->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream)
1210 #define IWICMetadataWriterInfo_DoesSupportPadding(This,pfSupportsPadding) (This)->lpVtbl->DoesSupportPadding(This,pfSupportsPadding)
1211 #define IWICMetadataWriterInfo_DoesRequireFixedSize(This,pfFixedSize) (This)->lpVtbl->DoesRequireFixedSize(This,pfFixedSize)
1212 /*** IWICMetadataWriterInfo methods ***/
1213 #define IWICMetadataWriterInfo_GetHeader(This,guidContainerFormat,cbSize,pHeader,pcbActual) (This)->lpVtbl->GetHeader(This,guidContainerFormat,cbSize,pHeader,pcbActual)
1214 #define IWICMetadataWriterInfo_CreateInstance(This,ppIWriter) (This)->lpVtbl->CreateInstance(This,ppIWriter)
1215 #else
1216 /*** IUnknown methods ***/
1217 static FORCEINLINE HRESULT IWICMetadataWriterInfo_QueryInterface(IWICMetadataWriterInfo* This,REFIID riid,void **ppvObject) {
1218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1219 }
1220 static FORCEINLINE ULONG IWICMetadataWriterInfo_AddRef(IWICMetadataWriterInfo* This) {
1221     return This->lpVtbl->AddRef(This);
1222 }
1223 static FORCEINLINE ULONG IWICMetadataWriterInfo_Release(IWICMetadataWriterInfo* This) {
1224     return This->lpVtbl->Release(This);
1225 }
1226 /*** IWICComponentInfo methods ***/
1227 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetComponentType(IWICMetadataWriterInfo* This,WICComponentType *pType) {
1228     return This->lpVtbl->GetComponentType(This,pType);
1229 }
1230 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetCLSID(IWICMetadataWriterInfo* This,CLSID *pclsid) {
1231     return This->lpVtbl->GetCLSID(This,pclsid);
1232 }
1233 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetSigningStatus(IWICMetadataWriterInfo* This,DWORD *pStatus) {
1234     return This->lpVtbl->GetSigningStatus(This,pStatus);
1235 }
1236 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetAuthor(IWICMetadataWriterInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
1237     return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
1238 }
1239 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetVendorGUID(IWICMetadataWriterInfo* This,GUID *pguidVendor) {
1240     return This->lpVtbl->GetVendorGUID(This,pguidVendor);
1241 }
1242 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetVersion(IWICMetadataWriterInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
1243     return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
1244 }
1245 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetSpecVersion(IWICMetadataWriterInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
1246     return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
1247 }
1248 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetFriendlyName(IWICMetadataWriterInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
1249     return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
1250 }
1251 /*** IWICMetadataHandlerInfo methods ***/
1252 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetMetadataFormat(IWICMetadataWriterInfo* This,GUID *pguidMetadataFormat) {
1253     return This->lpVtbl->GetMetadataFormat(This,pguidMetadataFormat);
1254 }
1255 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetContainerFormats(IWICMetadataWriterInfo* This,UINT cContainerFormats,GUID *pguidContainerFormats,UINT *pcchActual) {
1256     return This->lpVtbl->GetContainerFormats(This,cContainerFormats,pguidContainerFormats,pcchActual);
1257 }
1258 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetDeviceManufacturer(IWICMetadataWriterInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
1259     return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
1260 }
1261 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetDeviceModels(IWICMetadataWriterInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
1262     return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
1263 }
1264 static FORCEINLINE HRESULT IWICMetadataWriterInfo_DoesRequireFullStream(IWICMetadataWriterInfo* This,WINBOOL *pfRequiresFullStream) {
1265     return This->lpVtbl->DoesRequireFullStream(This,pfRequiresFullStream);
1266 }
1267 static FORCEINLINE HRESULT IWICMetadataWriterInfo_DoesSupportPadding(IWICMetadataWriterInfo* This,WINBOOL *pfSupportsPadding) {
1268     return This->lpVtbl->DoesSupportPadding(This,pfSupportsPadding);
1269 }
1270 static FORCEINLINE HRESULT IWICMetadataWriterInfo_DoesRequireFixedSize(IWICMetadataWriterInfo* This,WINBOOL *pfFixedSize) {
1271     return This->lpVtbl->DoesRequireFixedSize(This,pfFixedSize);
1272 }
1273 /*** IWICMetadataWriterInfo methods ***/
1274 static FORCEINLINE HRESULT IWICMetadataWriterInfo_GetHeader(IWICMetadataWriterInfo* This,REFGUID guidContainerFormat,UINT cbSize,WICMetadataHeader *pHeader,UINT *pcbActual) {
1275     return This->lpVtbl->GetHeader(This,guidContainerFormat,cbSize,pHeader,pcbActual);
1276 }
1277 static FORCEINLINE HRESULT IWICMetadataWriterInfo_CreateInstance(IWICMetadataWriterInfo* This,IWICMetadataWriter **ppIWriter) {
1278     return This->lpVtbl->CreateInstance(This,ppIWriter);
1279 }
1280 #endif
1281 #endif
1282 
1283 #endif
1284 
1285 
1286 #endif  /* __IWICMetadataWriterInfo_INTERFACE_DEFINED__ */
1287 
1288 /*****************************************************************************
1289  * IWICMetadataBlockReader interface
1290  */
1291 #ifndef __IWICMetadataBlockReader_INTERFACE_DEFINED__
1292 #define __IWICMetadataBlockReader_INTERFACE_DEFINED__
1293 
1294 DEFINE_GUID(IID_IWICMetadataBlockReader, 0xfeaa2a8d, 0xb3f3, 0x43e4, 0xb2,0x5c, 0xd1,0xde,0x99,0x0a,0x1a,0xe1);
1295 #if defined(__cplusplus) && !defined(CINTERFACE)
1296 MIDL_INTERFACE("feaa2a8d-b3f3-43e4-b25c-d1de990a1ae1")
1297 IWICMetadataBlockReader : public IUnknown
1298 {
1299     virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
1300         GUID *pguidContainerFormat) = 0;
1301 
1302     virtual HRESULT STDMETHODCALLTYPE GetCount(
1303         UINT *pcCount) = 0;
1304 
1305     virtual HRESULT STDMETHODCALLTYPE GetReaderByIndex(
1306         UINT nIndex,
1307         IWICMetadataReader **ppIMetadataReader) = 0;
1308 
1309     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
1310         IEnumUnknown **ppIEnumMetadata) = 0;
1311 
1312 };
1313 #ifdef __CRT_UUID_DECL
1314 __CRT_UUID_DECL(IWICMetadataBlockReader, 0xfeaa2a8d, 0xb3f3, 0x43e4, 0xb2,0x5c, 0xd1,0xde,0x99,0x0a,0x1a,0xe1)
1315 #endif
1316 #else
1317 typedef struct IWICMetadataBlockReaderVtbl {
1318     BEGIN_INTERFACE
1319 
1320     /*** IUnknown methods ***/
1321     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1322         IWICMetadataBlockReader *This,
1323         REFIID riid,
1324         void **ppvObject);
1325 
1326     ULONG (STDMETHODCALLTYPE *AddRef)(
1327         IWICMetadataBlockReader *This);
1328 
1329     ULONG (STDMETHODCALLTYPE *Release)(
1330         IWICMetadataBlockReader *This);
1331 
1332     /*** IWICMetadataBlockReader methods ***/
1333     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
1334         IWICMetadataBlockReader *This,
1335         GUID *pguidContainerFormat);
1336 
1337     HRESULT (STDMETHODCALLTYPE *GetCount)(
1338         IWICMetadataBlockReader *This,
1339         UINT *pcCount);
1340 
1341     HRESULT (STDMETHODCALLTYPE *GetReaderByIndex)(
1342         IWICMetadataBlockReader *This,
1343         UINT nIndex,
1344         IWICMetadataReader **ppIMetadataReader);
1345 
1346     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
1347         IWICMetadataBlockReader *This,
1348         IEnumUnknown **ppIEnumMetadata);
1349 
1350     END_INTERFACE
1351 } IWICMetadataBlockReaderVtbl;
1352 
1353 interface IWICMetadataBlockReader {
1354     CONST_VTBL IWICMetadataBlockReaderVtbl* lpVtbl;
1355 };
1356 
1357 #ifdef COBJMACROS
1358 #ifndef WIDL_C_INLINE_WRAPPERS
1359 /*** IUnknown methods ***/
1360 #define IWICMetadataBlockReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1361 #define IWICMetadataBlockReader_AddRef(This) (This)->lpVtbl->AddRef(This)
1362 #define IWICMetadataBlockReader_Release(This) (This)->lpVtbl->Release(This)
1363 /*** IWICMetadataBlockReader methods ***/
1364 #define IWICMetadataBlockReader_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
1365 #define IWICMetadataBlockReader_GetCount(This,pcCount) (This)->lpVtbl->GetCount(This,pcCount)
1366 #define IWICMetadataBlockReader_GetReaderByIndex(This,nIndex,ppIMetadataReader) (This)->lpVtbl->GetReaderByIndex(This,nIndex,ppIMetadataReader)
1367 #define IWICMetadataBlockReader_GetEnumerator(This,ppIEnumMetadata) (This)->lpVtbl->GetEnumerator(This,ppIEnumMetadata)
1368 #else
1369 /*** IUnknown methods ***/
1370 static FORCEINLINE HRESULT IWICMetadataBlockReader_QueryInterface(IWICMetadataBlockReader* This,REFIID riid,void **ppvObject) {
1371     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1372 }
1373 static FORCEINLINE ULONG IWICMetadataBlockReader_AddRef(IWICMetadataBlockReader* This) {
1374     return This->lpVtbl->AddRef(This);
1375 }
1376 static FORCEINLINE ULONG IWICMetadataBlockReader_Release(IWICMetadataBlockReader* This) {
1377     return This->lpVtbl->Release(This);
1378 }
1379 /*** IWICMetadataBlockReader methods ***/
1380 static FORCEINLINE HRESULT IWICMetadataBlockReader_GetContainerFormat(IWICMetadataBlockReader* This,GUID *pguidContainerFormat) {
1381     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
1382 }
1383 static FORCEINLINE HRESULT IWICMetadataBlockReader_GetCount(IWICMetadataBlockReader* This,UINT *pcCount) {
1384     return This->lpVtbl->GetCount(This,pcCount);
1385 }
1386 static FORCEINLINE HRESULT IWICMetadataBlockReader_GetReaderByIndex(IWICMetadataBlockReader* This,UINT nIndex,IWICMetadataReader **ppIMetadataReader) {
1387     return This->lpVtbl->GetReaderByIndex(This,nIndex,ppIMetadataReader);
1388 }
1389 static FORCEINLINE HRESULT IWICMetadataBlockReader_GetEnumerator(IWICMetadataBlockReader* This,IEnumUnknown **ppIEnumMetadata) {
1390     return This->lpVtbl->GetEnumerator(This,ppIEnumMetadata);
1391 }
1392 #endif
1393 #endif
1394 
1395 #endif
1396 
1397 
1398 #endif  /* __IWICMetadataBlockReader_INTERFACE_DEFINED__ */
1399 
1400 /*****************************************************************************
1401  * IWICMetadataBlockWriter interface
1402  */
1403 #ifndef __IWICMetadataBlockWriter_INTERFACE_DEFINED__
1404 #define __IWICMetadataBlockWriter_INTERFACE_DEFINED__
1405 
1406 DEFINE_GUID(IID_IWICMetadataBlockWriter, 0x08fb9676, 0xb444, 0x41e8, 0x8d,0xbe, 0x6a,0x53,0xa5,0x42,0xbf,0xf1);
1407 #if defined(__cplusplus) && !defined(CINTERFACE)
1408 MIDL_INTERFACE("08fb9676-b444-41e8-8dbe-6a53a542bff1")
1409 IWICMetadataBlockWriter : public IWICMetadataBlockReader
1410 {
1411     virtual HRESULT STDMETHODCALLTYPE InitializeFromBlockReader(
1412         IWICMetadataBlockReader *pIMDBlockReader) = 0;
1413 
1414     virtual HRESULT STDMETHODCALLTYPE GetWriterByIndex(
1415         UINT nIndex,
1416         IWICMetadataWriter **ppIMetadataWriter) = 0;
1417 
1418     virtual HRESULT STDMETHODCALLTYPE AddWriter(
1419         IWICMetadataWriter *pIMetadataWriter) = 0;
1420 
1421     virtual HRESULT STDMETHODCALLTYPE SetWriterByIndex(
1422         UINT nIndex,
1423         IWICMetadataWriter *pIMetadataWriter) = 0;
1424 
1425     virtual HRESULT STDMETHODCALLTYPE RemoveWriterByIndex(
1426         UINT nIndex) = 0;
1427 
1428 };
1429 #ifdef __CRT_UUID_DECL
1430 __CRT_UUID_DECL(IWICMetadataBlockWriter, 0x08fb9676, 0xb444, 0x41e8, 0x8d,0xbe, 0x6a,0x53,0xa5,0x42,0xbf,0xf1)
1431 #endif
1432 #else
1433 typedef struct IWICMetadataBlockWriterVtbl {
1434     BEGIN_INTERFACE
1435 
1436     /*** IUnknown methods ***/
1437     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1438         IWICMetadataBlockWriter *This,
1439         REFIID riid,
1440         void **ppvObject);
1441 
1442     ULONG (STDMETHODCALLTYPE *AddRef)(
1443         IWICMetadataBlockWriter *This);
1444 
1445     ULONG (STDMETHODCALLTYPE *Release)(
1446         IWICMetadataBlockWriter *This);
1447 
1448     /*** IWICMetadataBlockReader methods ***/
1449     HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
1450         IWICMetadataBlockWriter *This,
1451         GUID *pguidContainerFormat);
1452 
1453     HRESULT (STDMETHODCALLTYPE *GetCount)(
1454         IWICMetadataBlockWriter *This,
1455         UINT *pcCount);
1456 
1457     HRESULT (STDMETHODCALLTYPE *GetReaderByIndex)(
1458         IWICMetadataBlockWriter *This,
1459         UINT nIndex,
1460         IWICMetadataReader **ppIMetadataReader);
1461 
1462     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
1463         IWICMetadataBlockWriter *This,
1464         IEnumUnknown **ppIEnumMetadata);
1465 
1466     /*** IWICMetadataBlockWriter methods ***/
1467     HRESULT (STDMETHODCALLTYPE *InitializeFromBlockReader)(
1468         IWICMetadataBlockWriter *This,
1469         IWICMetadataBlockReader *pIMDBlockReader);
1470 
1471     HRESULT (STDMETHODCALLTYPE *GetWriterByIndex)(
1472         IWICMetadataBlockWriter *This,
1473         UINT nIndex,
1474         IWICMetadataWriter **ppIMetadataWriter);
1475 
1476     HRESULT (STDMETHODCALLTYPE *AddWriter)(
1477         IWICMetadataBlockWriter *This,
1478         IWICMetadataWriter *pIMetadataWriter);
1479 
1480     HRESULT (STDMETHODCALLTYPE *SetWriterByIndex)(
1481         IWICMetadataBlockWriter *This,
1482         UINT nIndex,
1483         IWICMetadataWriter *pIMetadataWriter);
1484 
1485     HRESULT (STDMETHODCALLTYPE *RemoveWriterByIndex)(
1486         IWICMetadataBlockWriter *This,
1487         UINT nIndex);
1488 
1489     END_INTERFACE
1490 } IWICMetadataBlockWriterVtbl;
1491 
1492 interface IWICMetadataBlockWriter {
1493     CONST_VTBL IWICMetadataBlockWriterVtbl* lpVtbl;
1494 };
1495 
1496 #ifdef COBJMACROS
1497 #ifndef WIDL_C_INLINE_WRAPPERS
1498 /*** IUnknown methods ***/
1499 #define IWICMetadataBlockWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1500 #define IWICMetadataBlockWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
1501 #define IWICMetadataBlockWriter_Release(This) (This)->lpVtbl->Release(This)
1502 /*** IWICMetadataBlockReader methods ***/
1503 #define IWICMetadataBlockWriter_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
1504 #define IWICMetadataBlockWriter_GetCount(This,pcCount) (This)->lpVtbl->GetCount(This,pcCount)
1505 #define IWICMetadataBlockWriter_GetReaderByIndex(This,nIndex,ppIMetadataReader) (This)->lpVtbl->GetReaderByIndex(This,nIndex,ppIMetadataReader)
1506 #define IWICMetadataBlockWriter_GetEnumerator(This,ppIEnumMetadata) (This)->lpVtbl->GetEnumerator(This,ppIEnumMetadata)
1507 /*** IWICMetadataBlockWriter methods ***/
1508 #define IWICMetadataBlockWriter_InitializeFromBlockReader(This,pIMDBlockReader) (This)->lpVtbl->InitializeFromBlockReader(This,pIMDBlockReader)
1509 #define IWICMetadataBlockWriter_GetWriterByIndex(This,nIndex,ppIMetadataWriter) (This)->lpVtbl->GetWriterByIndex(This,nIndex,ppIMetadataWriter)
1510 #define IWICMetadataBlockWriter_AddWriter(This,pIMetadataWriter) (This)->lpVtbl->AddWriter(This,pIMetadataWriter)
1511 #define IWICMetadataBlockWriter_SetWriterByIndex(This,nIndex,pIMetadataWriter) (This)->lpVtbl->SetWriterByIndex(This,nIndex,pIMetadataWriter)
1512 #define IWICMetadataBlockWriter_RemoveWriterByIndex(This,nIndex) (This)->lpVtbl->RemoveWriterByIndex(This,nIndex)
1513 #else
1514 /*** IUnknown methods ***/
1515 static FORCEINLINE HRESULT IWICMetadataBlockWriter_QueryInterface(IWICMetadataBlockWriter* This,REFIID riid,void **ppvObject) {
1516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1517 }
1518 static FORCEINLINE ULONG IWICMetadataBlockWriter_AddRef(IWICMetadataBlockWriter* This) {
1519     return This->lpVtbl->AddRef(This);
1520 }
1521 static FORCEINLINE ULONG IWICMetadataBlockWriter_Release(IWICMetadataBlockWriter* This) {
1522     return This->lpVtbl->Release(This);
1523 }
1524 /*** IWICMetadataBlockReader methods ***/
1525 static FORCEINLINE HRESULT IWICMetadataBlockWriter_GetContainerFormat(IWICMetadataBlockWriter* This,GUID *pguidContainerFormat) {
1526     return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
1527 }
1528 static FORCEINLINE HRESULT IWICMetadataBlockWriter_GetCount(IWICMetadataBlockWriter* This,UINT *pcCount) {
1529     return This->lpVtbl->GetCount(This,pcCount);
1530 }
1531 static FORCEINLINE HRESULT IWICMetadataBlockWriter_GetReaderByIndex(IWICMetadataBlockWriter* This,UINT nIndex,IWICMetadataReader **ppIMetadataReader) {
1532     return This->lpVtbl->GetReaderByIndex(This,nIndex,ppIMetadataReader);
1533 }
1534 static FORCEINLINE HRESULT IWICMetadataBlockWriter_GetEnumerator(IWICMetadataBlockWriter* This,IEnumUnknown **ppIEnumMetadata) {
1535     return This->lpVtbl->GetEnumerator(This,ppIEnumMetadata);
1536 }
1537 /*** IWICMetadataBlockWriter methods ***/
1538 static FORCEINLINE HRESULT IWICMetadataBlockWriter_InitializeFromBlockReader(IWICMetadataBlockWriter* This,IWICMetadataBlockReader *pIMDBlockReader) {
1539     return This->lpVtbl->InitializeFromBlockReader(This,pIMDBlockReader);
1540 }
1541 static FORCEINLINE HRESULT IWICMetadataBlockWriter_GetWriterByIndex(IWICMetadataBlockWriter* This,UINT nIndex,IWICMetadataWriter **ppIMetadataWriter) {
1542     return This->lpVtbl->GetWriterByIndex(This,nIndex,ppIMetadataWriter);
1543 }
1544 static FORCEINLINE HRESULT IWICMetadataBlockWriter_AddWriter(IWICMetadataBlockWriter* This,IWICMetadataWriter *pIMetadataWriter) {
1545     return This->lpVtbl->AddWriter(This,pIMetadataWriter);
1546 }
1547 static FORCEINLINE HRESULT IWICMetadataBlockWriter_SetWriterByIndex(IWICMetadataBlockWriter* This,UINT nIndex,IWICMetadataWriter *pIMetadataWriter) {
1548     return This->lpVtbl->SetWriterByIndex(This,nIndex,pIMetadataWriter);
1549 }
1550 static FORCEINLINE HRESULT IWICMetadataBlockWriter_RemoveWriterByIndex(IWICMetadataBlockWriter* This,UINT nIndex) {
1551     return This->lpVtbl->RemoveWriterByIndex(This,nIndex);
1552 }
1553 #endif
1554 #endif
1555 
1556 #endif
1557 
1558 
1559 #endif  /* __IWICMetadataBlockWriter_INTERFACE_DEFINED__ */
1560 
1561 /*****************************************************************************
1562  * IWICPersistStream interface
1563  */
1564 #ifndef __IWICPersistStream_INTERFACE_DEFINED__
1565 #define __IWICPersistStream_INTERFACE_DEFINED__
1566 
1567 DEFINE_GUID(IID_IWICPersistStream, 0x00675040, 0x6908, 0x45f8, 0x86,0xa3, 0x49,0xc7,0xdf,0xd6,0xd9,0xad);
1568 #if defined(__cplusplus) && !defined(CINTERFACE)
1569 MIDL_INTERFACE("00675040-6908-45f8-86a3-49c7dfd6d9ad")
1570 IWICPersistStream : public IPersistStream
1571 {
1572     virtual HRESULT STDMETHODCALLTYPE LoadEx(
1573         IStream *pIStream,
1574         const GUID *pguidPreferredVendor,
1575         DWORD dwPersistOptions) = 0;
1576 
1577     virtual HRESULT STDMETHODCALLTYPE SaveEx(
1578         IStream *pIStream,
1579         DWORD dwPersistOptions,
1580         WINBOOL fClearDirty) = 0;
1581 
1582 };
1583 #ifdef __CRT_UUID_DECL
1584 __CRT_UUID_DECL(IWICPersistStream, 0x00675040, 0x6908, 0x45f8, 0x86,0xa3, 0x49,0xc7,0xdf,0xd6,0xd9,0xad)
1585 #endif
1586 #else
1587 typedef struct IWICPersistStreamVtbl {
1588     BEGIN_INTERFACE
1589 
1590     /*** IUnknown methods ***/
1591     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1592         IWICPersistStream *This,
1593         REFIID riid,
1594         void **ppvObject);
1595 
1596     ULONG (STDMETHODCALLTYPE *AddRef)(
1597         IWICPersistStream *This);
1598 
1599     ULONG (STDMETHODCALLTYPE *Release)(
1600         IWICPersistStream *This);
1601 
1602     /*** IPersist methods ***/
1603     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1604         IWICPersistStream *This,
1605         CLSID *pClassID);
1606 
1607     /*** IPersistStream methods ***/
1608     HRESULT (STDMETHODCALLTYPE *IsDirty)(
1609         IWICPersistStream *This);
1610 
1611     HRESULT (STDMETHODCALLTYPE *Load)(
1612         IWICPersistStream *This,
1613         IStream *pStm);
1614 
1615     HRESULT (STDMETHODCALLTYPE *Save)(
1616         IWICPersistStream *This,
1617         IStream *pStm,
1618         WINBOOL fClearDirty);
1619 
1620     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
1621         IWICPersistStream *This,
1622         ULARGE_INTEGER *pcbSize);
1623 
1624     /*** IWICPersistStream methods ***/
1625     HRESULT (STDMETHODCALLTYPE *LoadEx)(
1626         IWICPersistStream *This,
1627         IStream *pIStream,
1628         const GUID *pguidPreferredVendor,
1629         DWORD dwPersistOptions);
1630 
1631     HRESULT (STDMETHODCALLTYPE *SaveEx)(
1632         IWICPersistStream *This,
1633         IStream *pIStream,
1634         DWORD dwPersistOptions,
1635         WINBOOL fClearDirty);
1636 
1637     END_INTERFACE
1638 } IWICPersistStreamVtbl;
1639 
1640 interface IWICPersistStream {
1641     CONST_VTBL IWICPersistStreamVtbl* lpVtbl;
1642 };
1643 
1644 #ifdef COBJMACROS
1645 #ifndef WIDL_C_INLINE_WRAPPERS
1646 /*** IUnknown methods ***/
1647 #define IWICPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1648 #define IWICPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
1649 #define IWICPersistStream_Release(This) (This)->lpVtbl->Release(This)
1650 /*** IPersist methods ***/
1651 #define IWICPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1652 /*** IPersistStream methods ***/
1653 #define IWICPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
1654 #define IWICPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
1655 #define IWICPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
1656 #define IWICPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
1657 /*** IWICPersistStream methods ***/
1658 #define IWICPersistStream_LoadEx(This,pIStream,pguidPreferredVendor,dwPersistOptions) (This)->lpVtbl->LoadEx(This,pIStream,pguidPreferredVendor,dwPersistOptions)
1659 #define IWICPersistStream_SaveEx(This,pIStream,dwPersistOptions,fClearDirty) (This)->lpVtbl->SaveEx(This,pIStream,dwPersistOptions,fClearDirty)
1660 #else
1661 /*** IUnknown methods ***/
1662 static FORCEINLINE HRESULT IWICPersistStream_QueryInterface(IWICPersistStream* This,REFIID riid,void **ppvObject) {
1663     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1664 }
1665 static FORCEINLINE ULONG IWICPersistStream_AddRef(IWICPersistStream* This) {
1666     return This->lpVtbl->AddRef(This);
1667 }
1668 static FORCEINLINE ULONG IWICPersistStream_Release(IWICPersistStream* This) {
1669     return This->lpVtbl->Release(This);
1670 }
1671 /*** IPersist methods ***/
1672 static FORCEINLINE HRESULT IWICPersistStream_GetClassID(IWICPersistStream* This,CLSID *pClassID) {
1673     return This->lpVtbl->GetClassID(This,pClassID);
1674 }
1675 /*** IPersistStream methods ***/
1676 static FORCEINLINE HRESULT IWICPersistStream_IsDirty(IWICPersistStream* This) {
1677     return This->lpVtbl->IsDirty(This);
1678 }
1679 static FORCEINLINE HRESULT IWICPersistStream_Load(IWICPersistStream* This,IStream *pStm) {
1680     return This->lpVtbl->Load(This,pStm);
1681 }
1682 static FORCEINLINE HRESULT IWICPersistStream_Save(IWICPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
1683     return This->lpVtbl->Save(This,pStm,fClearDirty);
1684 }
1685 static FORCEINLINE HRESULT IWICPersistStream_GetSizeMax(IWICPersistStream* This,ULARGE_INTEGER *pcbSize) {
1686     return This->lpVtbl->GetSizeMax(This,pcbSize);
1687 }
1688 /*** IWICPersistStream methods ***/
1689 static FORCEINLINE HRESULT IWICPersistStream_LoadEx(IWICPersistStream* This,IStream *pIStream,const GUID *pguidPreferredVendor,DWORD dwPersistOptions) {
1690     return This->lpVtbl->LoadEx(This,pIStream,pguidPreferredVendor,dwPersistOptions);
1691 }
1692 static FORCEINLINE HRESULT IWICPersistStream_SaveEx(IWICPersistStream* This,IStream *pIStream,DWORD dwPersistOptions,WINBOOL fClearDirty) {
1693     return This->lpVtbl->SaveEx(This,pIStream,dwPersistOptions,fClearDirty);
1694 }
1695 #endif
1696 #endif
1697 
1698 #endif
1699 
1700 
1701 #endif  /* __IWICPersistStream_INTERFACE_DEFINED__ */
1702 
1703 /*****************************************************************************
1704  * IWICComponentFactory interface
1705  */
1706 #ifndef __IWICComponentFactory_INTERFACE_DEFINED__
1707 #define __IWICComponentFactory_INTERFACE_DEFINED__
1708 
1709 DEFINE_GUID(IID_IWICComponentFactory, 0x412d0c3a, 0x9650, 0x44fa, 0xaf,0x5b, 0xdd,0x2a,0x06,0xc8,0xe8,0xfb);
1710 #if defined(__cplusplus) && !defined(CINTERFACE)
1711 MIDL_INTERFACE("412d0c3a-9650-44fa-af5b-dd2a06c8e8fb")
1712 IWICComponentFactory : public IWICImagingFactory
1713 {
1714     virtual HRESULT STDMETHODCALLTYPE CreateMetadataReader(
1715         REFGUID guidMetadataFormat,
1716         const GUID *pguidVendor,
1717         DWORD dwOptions,
1718         IStream *pIStream,
1719         IWICMetadataReader **ppIReader) = 0;
1720 
1721     virtual HRESULT STDMETHODCALLTYPE CreateMetadataReaderFromContainer(
1722         REFGUID guidMetadataFormat,
1723         const GUID *pguidVendor,
1724         DWORD dwOptions,
1725         IStream *pIStream,
1726         IWICMetadataReader **ppIReader) = 0;
1727 
1728     virtual HRESULT STDMETHODCALLTYPE CreateMetadataWriter(
1729         REFGUID guidMetadataFormat,
1730         const GUID *pguidVendor,
1731         DWORD dwMetadataOptions,
1732         IWICMetadataWriter **ppIWriter) = 0;
1733 
1734     virtual HRESULT STDMETHODCALLTYPE CreateMetadataWriterFromReader(
1735         IWICMetadataReader *pIReader,
1736         const GUID *pguidVendor,
1737         IWICMetadataWriter **ppIWriter) = 0;
1738 
1739     virtual HRESULT STDMETHODCALLTYPE CreateQueryReaderFromBlockReader(
1740         IWICMetadataBlockReader *pIBlockReader,
1741         IWICMetadataQueryReader **ppIQueryReader) = 0;
1742 
1743     virtual HRESULT STDMETHODCALLTYPE CreateQueryWriterFromBlockWriter(
1744         IWICMetadataBlockWriter *pIBlockWriter,
1745         IWICMetadataQueryWriter **ppIQueryWriter) = 0;
1746 
1747     virtual HRESULT STDMETHODCALLTYPE CreateEncoderPropertyBag(
1748         PROPBAG2 *ppropOptions,
1749         UINT cCount,
1750         IPropertyBag2 **ppIPropertyBag) = 0;
1751 
1752 };
1753 #ifdef __CRT_UUID_DECL
1754 __CRT_UUID_DECL(IWICComponentFactory, 0x412d0c3a, 0x9650, 0x44fa, 0xaf,0x5b, 0xdd,0x2a,0x06,0xc8,0xe8,0xfb)
1755 #endif
1756 #else
1757 typedef struct IWICComponentFactoryVtbl {
1758     BEGIN_INTERFACE
1759 
1760     /*** IUnknown methods ***/
1761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1762         IWICComponentFactory *This,
1763         REFIID riid,
1764         void **ppvObject);
1765 
1766     ULONG (STDMETHODCALLTYPE *AddRef)(
1767         IWICComponentFactory *This);
1768 
1769     ULONG (STDMETHODCALLTYPE *Release)(
1770         IWICComponentFactory *This);
1771 
1772     /*** IWICImagingFactory methods ***/
1773     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFilename)(
1774         IWICComponentFactory *This,
1775         LPCWSTR wzFilename,
1776         const GUID *pguidVendor,
1777         DWORD dwDesiredAccess,
1778         WICDecodeOptions metadataOptions,
1779         IWICBitmapDecoder **ppIDecoder);
1780 
1781     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromStream)(
1782         IWICComponentFactory *This,
1783         IStream *pIStream,
1784         const GUID *pguidVendor,
1785         WICDecodeOptions metadataOptions,
1786         IWICBitmapDecoder **ppIDecoder);
1787 
1788     HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFileHandle)(
1789         IWICComponentFactory *This,
1790         ULONG_PTR hFile,
1791         const GUID *pguidVendor,
1792         WICDecodeOptions metadataOptions,
1793         IWICBitmapDecoder **ppIDecoder);
1794 
1795     HRESULT (STDMETHODCALLTYPE *CreateComponentInfo)(
1796         IWICComponentFactory *This,
1797         REFCLSID clsidComponent,
1798         IWICComponentInfo **ppIInfo);
1799 
1800     HRESULT (STDMETHODCALLTYPE *CreateDecoder)(
1801         IWICComponentFactory *This,
1802         REFGUID guidContainerFormat,
1803         const GUID *pguidVendor,
1804         IWICBitmapDecoder **ppIDecoder);
1805 
1806     HRESULT (STDMETHODCALLTYPE *CreateEncoder)(
1807         IWICComponentFactory *This,
1808         REFGUID guidContainerFormat,
1809         const GUID *pguidVendor,
1810         IWICBitmapEncoder **ppIEncoder);
1811 
1812     HRESULT (STDMETHODCALLTYPE *CreatePalette)(
1813         IWICComponentFactory *This,
1814         IWICPalette **ppIPalette);
1815 
1816     HRESULT (STDMETHODCALLTYPE *CreateFormatConverter)(
1817         IWICComponentFactory *This,
1818         IWICFormatConverter **ppIFormatConverter);
1819 
1820     HRESULT (STDMETHODCALLTYPE *CreateBitmapScaler)(
1821         IWICComponentFactory *This,
1822         IWICBitmapScaler **ppIBitmapScaler);
1823 
1824     HRESULT (STDMETHODCALLTYPE *CreateBitmapClipper)(
1825         IWICComponentFactory *This,
1826         IWICBitmapClipper **ppIBitmapClipper);
1827 
1828     HRESULT (STDMETHODCALLTYPE *CreateBitmapFlipRotator)(
1829         IWICComponentFactory *This,
1830         IWICBitmapFlipRotator **ppIBitmapFlipRotator);
1831 
1832     HRESULT (STDMETHODCALLTYPE *CreateStream)(
1833         IWICComponentFactory *This,
1834         IWICStream **ppIWICStream);
1835 
1836     HRESULT (STDMETHODCALLTYPE *CreateColorContext)(
1837         IWICComponentFactory *This,
1838         IWICColorContext **ppIWICColorContext);
1839 
1840     HRESULT (STDMETHODCALLTYPE *CreateColorTransformer)(
1841         IWICComponentFactory *This,
1842         IWICColorTransform **ppIWICColorTransform);
1843 
1844     HRESULT (STDMETHODCALLTYPE *CreateBitmap)(
1845         IWICComponentFactory *This,
1846         UINT uiWidth,
1847         UINT uiHeight,
1848         REFWICPixelFormatGUID pixelFormat,
1849         WICBitmapCreateCacheOption option,
1850         IWICBitmap **ppIBitmap);
1851 
1852     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSource)(
1853         IWICComponentFactory *This,
1854         IWICBitmapSource *piBitmapSource,
1855         WICBitmapCreateCacheOption option,
1856         IWICBitmap **ppIBitmap);
1857 
1858     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSourceRect)(
1859         IWICComponentFactory *This,
1860         IWICBitmapSource *piBitmapSource,
1861         UINT x,
1862         UINT y,
1863         UINT width,
1864         UINT height,
1865         IWICBitmap **ppIBitmap);
1866 
1867     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromMemory)(
1868         IWICComponentFactory *This,
1869         UINT uiWidth,
1870         UINT uiHeight,
1871         REFWICPixelFormatGUID pixelFormat,
1872         UINT cbStride,
1873         UINT cbBufferSize,
1874         BYTE *pbBuffer,
1875         IWICBitmap **ppIBitmap);
1876 
1877     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHBITMAP)(
1878         IWICComponentFactory *This,
1879         HBITMAP hBitmap,
1880         HPALETTE hPalette,
1881         WICBitmapAlphaChannelOption options,
1882         IWICBitmap **ppIBitmap);
1883 
1884     HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHICON)(
1885         IWICComponentFactory *This,
1886         HICON hIcon,
1887         IWICBitmap **ppIBitmap);
1888 
1889     HRESULT (STDMETHODCALLTYPE *CreateComponentEnumerator)(
1890         IWICComponentFactory *This,
1891         DWORD componentTypes,
1892         DWORD options,
1893         IEnumUnknown **ppIEnumUnknown);
1894 
1895     HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromDecoder)(
1896         IWICComponentFactory *This,
1897         IWICBitmapDecoder *pIDecoder,
1898         IWICFastMetadataEncoder **ppIFastEncoder);
1899 
1900     HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromFrameDecode)(
1901         IWICComponentFactory *This,
1902         IWICBitmapFrameDecode *pIFrameDecoder,
1903         IWICFastMetadataEncoder **ppIFastEncoder);
1904 
1905     HRESULT (STDMETHODCALLTYPE *CreateQueryWriter)(
1906         IWICComponentFactory *This,
1907         REFGUID guidMetadataFormat,
1908         const GUID *pguidVendor,
1909         IWICMetadataQueryWriter **ppIQueryWriter);
1910 
1911     HRESULT (STDMETHODCALLTYPE *CreateQueryWriterFromReader)(
1912         IWICComponentFactory *This,
1913         IWICMetadataQueryReader *pIQueryReader,
1914         const GUID *pguidVendor,
1915         IWICMetadataQueryWriter **ppIQueryWriter);
1916 
1917     /*** IWICComponentFactory methods ***/
1918     HRESULT (STDMETHODCALLTYPE *CreateMetadataReader)(
1919         IWICComponentFactory *This,
1920         REFGUID guidMetadataFormat,
1921         const GUID *pguidVendor,
1922         DWORD dwOptions,
1923         IStream *pIStream,
1924         IWICMetadataReader **ppIReader);
1925 
1926     HRESULT (STDMETHODCALLTYPE *CreateMetadataReaderFromContainer)(
1927         IWICComponentFactory *This,
1928         REFGUID guidMetadataFormat,
1929         const GUID *pguidVendor,
1930         DWORD dwOptions,
1931         IStream *pIStream,
1932         IWICMetadataReader **ppIReader);
1933 
1934     HRESULT (STDMETHODCALLTYPE *CreateMetadataWriter)(
1935         IWICComponentFactory *This,
1936         REFGUID guidMetadataFormat,
1937         const GUID *pguidVendor,
1938         DWORD dwMetadataOptions,
1939         IWICMetadataWriter **ppIWriter);
1940 
1941     HRESULT (STDMETHODCALLTYPE *CreateMetadataWriterFromReader)(
1942         IWICComponentFactory *This,
1943         IWICMetadataReader *pIReader,
1944         const GUID *pguidVendor,
1945         IWICMetadataWriter **ppIWriter);
1946 
1947     HRESULT (STDMETHODCALLTYPE *CreateQueryReaderFromBlockReader)(
1948         IWICComponentFactory *This,
1949         IWICMetadataBlockReader *pIBlockReader,
1950         IWICMetadataQueryReader **ppIQueryReader);
1951 
1952     HRESULT (STDMETHODCALLTYPE *CreateQueryWriterFromBlockWriter)(
1953         IWICComponentFactory *This,
1954         IWICMetadataBlockWriter *pIBlockWriter,
1955         IWICMetadataQueryWriter **ppIQueryWriter);
1956 
1957     HRESULT (STDMETHODCALLTYPE *CreateEncoderPropertyBag)(
1958         IWICComponentFactory *This,
1959         PROPBAG2 *ppropOptions,
1960         UINT cCount,
1961         IPropertyBag2 **ppIPropertyBag);
1962 
1963     END_INTERFACE
1964 } IWICComponentFactoryVtbl;
1965 
1966 interface IWICComponentFactory {
1967     CONST_VTBL IWICComponentFactoryVtbl* lpVtbl;
1968 };
1969 
1970 #ifdef COBJMACROS
1971 #ifndef WIDL_C_INLINE_WRAPPERS
1972 /*** IUnknown methods ***/
1973 #define IWICComponentFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1974 #define IWICComponentFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
1975 #define IWICComponentFactory_Release(This) (This)->lpVtbl->Release(This)
1976 /*** IWICImagingFactory methods ***/
1977 #define IWICComponentFactory_CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder)
1978 #define IWICComponentFactory_CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder)
1979 #define IWICComponentFactory_CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder)
1980 #define IWICComponentFactory_CreateComponentInfo(This,clsidComponent,ppIInfo) (This)->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo)
1981 #define IWICComponentFactory_CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder) (This)->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder)
1982 #define IWICComponentFactory_CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder) (This)->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder)
1983 #define IWICComponentFactory_CreatePalette(This,ppIPalette) (This)->lpVtbl->CreatePalette(This,ppIPalette)
1984 #define IWICComponentFactory_CreateFormatConverter(This,ppIFormatConverter) (This)->lpVtbl->CreateFormatConverter(This,ppIFormatConverter)
1985 #define IWICComponentFactory_CreateBitmapScaler(This,ppIBitmapScaler) (This)->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler)
1986 #define IWICComponentFactory_CreateBitmapClipper(This,ppIBitmapClipper) (This)->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper)
1987 #define IWICComponentFactory_CreateBitmapFlipRotator(This,ppIBitmapFlipRotator) (This)->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator)
1988 #define IWICComponentFactory_CreateStream(This,ppIWICStream) (This)->lpVtbl->CreateStream(This,ppIWICStream)
1989 #define IWICComponentFactory_CreateColorContext(This,ppIWICColorContext) (This)->lpVtbl->CreateColorContext(This,ppIWICColorContext)
1990 #define IWICComponentFactory_CreateColorTransformer(This,ppIWICColorTransform) (This)->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform)
1991 #define IWICComponentFactory_CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap) (This)->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap)
1992 #define IWICComponentFactory_CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap)
1993 #define IWICComponentFactory_CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap)
1994 #define IWICComponentFactory_CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap) (This)->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap)
1995 #define IWICComponentFactory_CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap)
1996 #define IWICComponentFactory_CreateBitmapFromHICON(This,hIcon,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap)
1997 #define IWICComponentFactory_CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown) (This)->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown)
1998 #define IWICComponentFactory_CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder)
1999 #define IWICComponentFactory_CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder)
2000 #define IWICComponentFactory_CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter)
2001 #define IWICComponentFactory_CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter)
2002 /*** IWICComponentFactory methods ***/
2003 #define IWICComponentFactory_CreateMetadataReader(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader) (This)->lpVtbl->CreateMetadataReader(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader)
2004 #define IWICComponentFactory_CreateMetadataReaderFromContainer(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader) (This)->lpVtbl->CreateMetadataReaderFromContainer(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader)
2005 #define IWICComponentFactory_CreateMetadataWriter(This,guidMetadataFormat,pguidVendor,dwMetadataOptions,ppIWriter) (This)->lpVtbl->CreateMetadataWriter(This,guidMetadataFormat,pguidVendor,dwMetadataOptions,ppIWriter)
2006 #define IWICComponentFactory_CreateMetadataWriterFromReader(This,pIReader,pguidVendor,ppIWriter) (This)->lpVtbl->CreateMetadataWriterFromReader(This,pIReader,pguidVendor,ppIWriter)
2007 #define IWICComponentFactory_CreateQueryReaderFromBlockReader(This,pIBlockReader,ppIQueryReader) (This)->lpVtbl->CreateQueryReaderFromBlockReader(This,pIBlockReader,ppIQueryReader)
2008 #define IWICComponentFactory_CreateQueryWriterFromBlockWriter(This,pIBlockWriter,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriterFromBlockWriter(This,pIBlockWriter,ppIQueryWriter)
2009 #define IWICComponentFactory_CreateEncoderPropertyBag(This,ppropOptions,cCount,ppIPropertyBag) (This)->lpVtbl->CreateEncoderPropertyBag(This,ppropOptions,cCount,ppIPropertyBag)
2010 #else
2011 /*** IUnknown methods ***/
2012 static FORCEINLINE HRESULT IWICComponentFactory_QueryInterface(IWICComponentFactory* This,REFIID riid,void **ppvObject) {
2013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2014 }
2015 static FORCEINLINE ULONG IWICComponentFactory_AddRef(IWICComponentFactory* This) {
2016     return This->lpVtbl->AddRef(This);
2017 }
2018 static FORCEINLINE ULONG IWICComponentFactory_Release(IWICComponentFactory* This) {
2019     return This->lpVtbl->Release(This);
2020 }
2021 /*** IWICImagingFactory methods ***/
2022 static FORCEINLINE HRESULT IWICComponentFactory_CreateDecoderFromFilename(IWICComponentFactory* This,LPCWSTR wzFilename,const GUID *pguidVendor,DWORD dwDesiredAccess,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
2023     return This->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder);
2024 }
2025 static FORCEINLINE HRESULT IWICComponentFactory_CreateDecoderFromStream(IWICComponentFactory* This,IStream *pIStream,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
2026     return This->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder);
2027 }
2028 static FORCEINLINE HRESULT IWICComponentFactory_CreateDecoderFromFileHandle(IWICComponentFactory* This,ULONG_PTR hFile,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
2029     return This->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder);
2030 }
2031 static FORCEINLINE HRESULT IWICComponentFactory_CreateComponentInfo(IWICComponentFactory* This,REFCLSID clsidComponent,IWICComponentInfo **ppIInfo) {
2032     return This->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo);
2033 }
2034 static FORCEINLINE HRESULT IWICComponentFactory_CreateDecoder(IWICComponentFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapDecoder **ppIDecoder) {
2035     return This->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder);
2036 }
2037 static FORCEINLINE HRESULT IWICComponentFactory_CreateEncoder(IWICComponentFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapEncoder **ppIEncoder) {
2038     return This->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder);
2039 }
2040 static FORCEINLINE HRESULT IWICComponentFactory_CreatePalette(IWICComponentFactory* This,IWICPalette **ppIPalette) {
2041     return This->lpVtbl->CreatePalette(This,ppIPalette);
2042 }
2043 static FORCEINLINE HRESULT IWICComponentFactory_CreateFormatConverter(IWICComponentFactory* This,IWICFormatConverter **ppIFormatConverter) {
2044     return This->lpVtbl->CreateFormatConverter(This,ppIFormatConverter);
2045 }
2046 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapScaler(IWICComponentFactory* This,IWICBitmapScaler **ppIBitmapScaler) {
2047     return This->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler);
2048 }
2049 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapClipper(IWICComponentFactory* This,IWICBitmapClipper **ppIBitmapClipper) {
2050     return This->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper);
2051 }
2052 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFlipRotator(IWICComponentFactory* This,IWICBitmapFlipRotator **ppIBitmapFlipRotator) {
2053     return This->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator);
2054 }
2055 static FORCEINLINE HRESULT IWICComponentFactory_CreateStream(IWICComponentFactory* This,IWICStream **ppIWICStream) {
2056     return This->lpVtbl->CreateStream(This,ppIWICStream);
2057 }
2058 static FORCEINLINE HRESULT IWICComponentFactory_CreateColorContext(IWICComponentFactory* This,IWICColorContext **ppIWICColorContext) {
2059     return This->lpVtbl->CreateColorContext(This,ppIWICColorContext);
2060 }
2061 static FORCEINLINE HRESULT IWICComponentFactory_CreateColorTransformer(IWICComponentFactory* This,IWICColorTransform **ppIWICColorTransform) {
2062     return This->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform);
2063 }
2064 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmap(IWICComponentFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
2065     return This->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap);
2066 }
2067 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFromSource(IWICComponentFactory* This,IWICBitmapSource *piBitmapSource,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
2068     return This->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap);
2069 }
2070 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFromSourceRect(IWICComponentFactory* This,IWICBitmapSource *piBitmapSource,UINT x,UINT y,UINT width,UINT height,IWICBitmap **ppIBitmap) {
2071     return This->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap);
2072 }
2073 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFromMemory(IWICComponentFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer,IWICBitmap **ppIBitmap) {
2074     return This->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap);
2075 }
2076 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFromHBITMAP(IWICComponentFactory* This,HBITMAP hBitmap,HPALETTE hPalette,WICBitmapAlphaChannelOption options,IWICBitmap **ppIBitmap) {
2077     return This->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap);
2078 }
2079 static FORCEINLINE HRESULT IWICComponentFactory_CreateBitmapFromHICON(IWICComponentFactory* This,HICON hIcon,IWICBitmap **ppIBitmap) {
2080     return This->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap);
2081 }
2082 static FORCEINLINE HRESULT IWICComponentFactory_CreateComponentEnumerator(IWICComponentFactory* This,DWORD componentTypes,DWORD options,IEnumUnknown **ppIEnumUnknown) {
2083     return This->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown);
2084 }
2085 static FORCEINLINE HRESULT IWICComponentFactory_CreateFastMetadataEncoderFromDecoder(IWICComponentFactory* This,IWICBitmapDecoder *pIDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
2086     return This->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder);
2087 }
2088 static FORCEINLINE HRESULT IWICComponentFactory_CreateFastMetadataEncoderFromFrameDecode(IWICComponentFactory* This,IWICBitmapFrameDecode *pIFrameDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
2089     return This->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder);
2090 }
2091 static FORCEINLINE HRESULT IWICComponentFactory_CreateQueryWriter(IWICComponentFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
2092     return This->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter);
2093 }
2094 static FORCEINLINE HRESULT IWICComponentFactory_CreateQueryWriterFromReader(IWICComponentFactory* This,IWICMetadataQueryReader *pIQueryReader,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
2095     return This->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter);
2096 }
2097 /*** IWICComponentFactory methods ***/
2098 static FORCEINLINE HRESULT IWICComponentFactory_CreateMetadataReader(IWICComponentFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,DWORD dwOptions,IStream *pIStream,IWICMetadataReader **ppIReader) {
2099     return This->lpVtbl->CreateMetadataReader(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader);
2100 }
2101 static FORCEINLINE HRESULT IWICComponentFactory_CreateMetadataReaderFromContainer(IWICComponentFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,DWORD dwOptions,IStream *pIStream,IWICMetadataReader **ppIReader) {
2102     return This->lpVtbl->CreateMetadataReaderFromContainer(This,guidMetadataFormat,pguidVendor,dwOptions,pIStream,ppIReader);
2103 }
2104 static FORCEINLINE HRESULT IWICComponentFactory_CreateMetadataWriter(IWICComponentFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,DWORD dwMetadataOptions,IWICMetadataWriter **ppIWriter) {
2105     return This->lpVtbl->CreateMetadataWriter(This,guidMetadataFormat,pguidVendor,dwMetadataOptions,ppIWriter);
2106 }
2107 static FORCEINLINE HRESULT IWICComponentFactory_CreateMetadataWriterFromReader(IWICComponentFactory* This,IWICMetadataReader *pIReader,const GUID *pguidVendor,IWICMetadataWriter **ppIWriter) {
2108     return This->lpVtbl->CreateMetadataWriterFromReader(This,pIReader,pguidVendor,ppIWriter);
2109 }
2110 static FORCEINLINE HRESULT IWICComponentFactory_CreateQueryReaderFromBlockReader(IWICComponentFactory* This,IWICMetadataBlockReader *pIBlockReader,IWICMetadataQueryReader **ppIQueryReader) {
2111     return This->lpVtbl->CreateQueryReaderFromBlockReader(This,pIBlockReader,ppIQueryReader);
2112 }
2113 static FORCEINLINE HRESULT IWICComponentFactory_CreateQueryWriterFromBlockWriter(IWICComponentFactory* This,IWICMetadataBlockWriter *pIBlockWriter,IWICMetadataQueryWriter **ppIQueryWriter) {
2114     return This->lpVtbl->CreateQueryWriterFromBlockWriter(This,pIBlockWriter,ppIQueryWriter);
2115 }
2116 static FORCEINLINE HRESULT IWICComponentFactory_CreateEncoderPropertyBag(IWICComponentFactory* This,PROPBAG2 *ppropOptions,UINT cCount,IPropertyBag2 **ppIPropertyBag) {
2117     return This->lpVtbl->CreateEncoderPropertyBag(This,ppropOptions,cCount,ppIPropertyBag);
2118 }
2119 #endif
2120 #endif
2121 
2122 #endif
2123 
2124 
2125 #endif  /* __IWICComponentFactory_INTERFACE_DEFINED__ */
2126 
2127 /* Begin additional prototypes for all interfaces */
2128 
2129 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
2130 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
2131 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
2132 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
2133 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
2134 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
2135 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
2136 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
2137 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
2138 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
2139 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
2140 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
2141 
2142 /* End additional prototypes */
2143 
2144 #ifdef __cplusplus
2145 }
2146 #endif
2147 
2148 #endif /* __wincodecsdk_h__ */
2149