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