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__ */