mirror of https://github.com/UMSKT/xpmgr.git
589 lines
28 KiB
Plaintext
589 lines
28 KiB
Plaintext
//+-----------------------------------------------------------------------
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// Description:
|
|
// WincodecSdk.idl
|
|
//
|
|
// This module contains interfaces used by codec and metadata handler authors.
|
|
//
|
|
//------------------------------------------------------------------------
|
|
|
|
import "wtypes.idl";
|
|
import "wincodec.idl";
|
|
|
|
|
|
/*=========================================================================*\
|
|
GUID Identifiers for the image container formats
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatUnknown, 0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatIfd, 0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatSubIfd, 0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatExif, 0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatGps, 0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatInterop, 0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatApp0, 0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatApp1, 0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatApp13, 0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatIPTC, 0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatIRB, 0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormat8BIMIPTC, 0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormat8BIMResolutionInfo, 0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormat8BIMIPTCDigest, 0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatXMP, 0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatThumbnail, 0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunktEXt, 0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatXMPStruct, 0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatXMPBag, 0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatXMPSeq, 0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatXMPAlt, 0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatLSD, 0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatIMD, 0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatGCE, 0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatAPE, 0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatJpegChrominance, 0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatJpegLuminance, 0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatJpegComment, 0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatGifComment, 0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkgAMA, 0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkbKGD, 0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkiTXt, 0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkcHRM, 0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkhIST, 0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunkiCCP, 0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunksRGB, 0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9);")
|
|
cpp_quote( "DEFINE_GUID(GUID_MetadataFormatChunktIME, 0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
GUID Identifiers for the built in metadata handlers
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICUnknownMetadataReader, 0x699745c2, 0x5066, 0x4b82, 0xa8, 0xe3, 0xd4, 0x4, 0x78, 0xdb, 0xec, 0x8c);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICUnknownMetadataWriter, 0xa09cca86, 0x27ba, 0x4f39, 0x90, 0x53, 0x12, 0x1f, 0xa4, 0xdc, 0x8, 0xfc);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp0MetadataWriter, 0xF3C633A2, 0x46C8, 0x498e, 0x8F, 0xBB, 0xCC, 0x6F, 0x72, 0x1B, 0xBC, 0xDE);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp0MetadataReader, 0x43324B33, 0xA78F, 0x480f, 0x91, 0x11, 0x96, 0x38, 0xAA, 0xCC, 0xC8, 0x32);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp1MetadataWriter, 0xee366069, 0x1832, 0x420f, 0xb3, 0x81, 0x04, 0x79, 0xad, 0x06, 0x6f, 0x19);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp1MetadataReader, 0xdde33513, 0x774e, 0x4bcd, 0xae, 0x79, 0x02, 0xf4, 0xad, 0xfe, 0x62, 0xfc);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp13MetadataWriter, 0x7B19A919, 0xA9D6, 0x49E5, 0xBD, 0x45, 0x02, 0xC3, 0x4E, 0x4E, 0x4C, 0xD5);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICApp13MetadataReader, 0xAA7E3C50, 0x864C, 0x4604, 0xBC, 0x04, 0x8B, 0x0B, 0x76, 0xE6, 0x37, 0xF6);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIfdMetadataReader, 0x8f914656, 0x9d0a, 0x4eb2, 0x90, 0x19, 0xb, 0xf9, 0x6d, 0x8a, 0x9e, 0xe6);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIfdMetadataWriter, 0xb1ebfc28, 0xc9bd, 0x47a2, 0x8d, 0x33, 0xb9, 0x48, 0x76, 0x97, 0x77, 0xa7);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICSubIfdMetadataReader, 0x50D42F09, 0xECD1, 0x4B41, 0xB6, 0x5D, 0xDA, 0x1F, 0xDA, 0xA7, 0x56, 0x63);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICSubIfdMetadataWriter, 0x8ADE5386, 0x8E9B, 0x4F4C, 0xAC, 0xF2, 0xF0, 0x00, 0x87, 0x06, 0xB2, 0x38);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICExifMetadataReader, 0xd9403860, 0x297f, 0x4a49, 0xbf, 0x9b, 0x77, 0x89, 0x81, 0x50, 0xa4, 0x42);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICExifMetadataWriter, 0xc9a14cda, 0xc339, 0x460b, 0x90, 0x78, 0xd4, 0xde, 0xbc, 0xfa, 0xbe, 0x91);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGpsMetadataReader, 0x3697790B, 0x223B, 0x484E, 0x99, 0x25, 0xC4, 0x86, 0x92, 0x18, 0xF1, 0x7A);" )
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGpsMetadataWriter, 0xCB8C13E4, 0x62B5, 0x4C96, 0xA4, 0x8B, 0x6B, 0xA6, 0xAC, 0xE3, 0x9C, 0x76);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICInteropMetadataReader, 0xB5C8B898, 0x0074, 0x459F, 0xB7, 0x00, 0x86, 0x0D, 0x46, 0x51, 0xEA, 0x14);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICInteropMetadataWriter, 0x122EC645, 0xCD7E, 0x44D8, 0xB1, 0x86, 0x2C, 0x8C, 0x20, 0xC3, 0xB5, 0x0F);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICThumbnailMetadataReader, 0xfb012959, 0xf4f6, 0x44d7, 0x9d, 0x9, 0xda, 0xa0, 0x87, 0xa9, 0xdb, 0x57);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICThumbnailMetadataWriter, 0xd049b20c, 0x5dd0, 0x44fe, 0xb0, 0xb3, 0x8f, 0x92, 0xc8, 0xe6, 0xd0, 0x80);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIPTCMetadataReader, 0x03012959, 0xf4f6, 0x44d7, 0x9d, 0x9, 0xda, 0xa0, 0x87, 0xa9, 0xdb, 0x57);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIPTCMetadataWriter, 0x1249b20c, 0x5dd0, 0x44fe, 0xb0, 0xb3, 0x8f, 0x92, 0xc8, 0xe6, 0xd0, 0x80);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIRBMetadataReader, 0xD4DCD3D7, 0xB4C2, 0x47D9, 0xA6, 0xBF, 0xB8, 0x9B, 0xA3, 0x96, 0xA4, 0xA3);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIRBMetadataWriter, 0x5C5C1935, 0x0235, 0x4434, 0x80, 0xBC, 0x25, 0x1B, 0xC1, 0xEC, 0x39, 0xC6);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMIPTCMetadataReader, 0x0010668c, 0x0801, 0x4da6, 0xa4, 0xa4, 0x82, 0x65, 0x22, 0xb6, 0xd2, 0x8f);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMIPTCMetadataWriter, 0x00108226, 0xee41, 0x44a2, 0x9e, 0x9c, 0x4b, 0xe4, 0xd5, 0xb1, 0xd2, 0xcd);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMResolutionInfoMetadataReader, 0x5805137A, 0xE348, 0x4F7C, 0xB3, 0xCC, 0x6D, 0xB9, 0x96, 0x5A, 0x05, 0x99);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMResolutionInfoMetadataWriter, 0x4ff2fe0e, 0xe74a, 0x4b71, 0x98, 0xc4, 0xab, 0x7d, 0xc1, 0x67, 0x7, 0xba);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMIPTCDigestMetadataReader, 0x02805F1E, 0xD5AA, 0x415b, 0x82, 0xC5, 0x61, 0xC0, 0x33, 0xA9, 0x88, 0xA6);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WIC8BIMIPTCDigestMetadataWriter, 0x2DB5E62B, 0x0D67, 0x495f, 0x8F, 0x9D, 0xC2, 0xF0, 0x18, 0x86, 0x47, 0xAC);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngTextMetadataReader, 0x4b59afcc, 0xb8c3, 0x408a, 0xb6, 0x70, 0x89, 0xe5, 0xfa, 0xb6, 0xfd, 0xa7); ")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngTextMetadataWriter, 0xb5ebafb9, 0x253e, 0x4a72, 0xa7, 0x44, 0x7, 0x62, 0xd2, 0x68, 0x56, 0x83); ")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPMetadataReader, 0x72B624DF, 0xAE11, 0x4948, 0xA6, 0x5C, 0x35, 0x1E, 0xB0, 0x82, 0x94, 0x19);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPMetadataWriter, 0x1765E14E, 0x1BD4, 0x462E, 0xB6, 0xB1, 0x59, 0x0B, 0xF1, 0x26, 0x2A, 0xC6);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPStructMetadataReader, 0x01B90D9A, 0x8209, 0x47F7, 0x9C, 0x52, 0xE1, 0x24, 0x4B, 0xF5, 0x0C, 0xED);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPStructMetadataWriter, 0x22C21F93, 0x7DDB, 0x411C, 0x9B, 0x17, 0xC5, 0xB7, 0xBD, 0x06, 0x4A, 0xBC);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPBagMetadataReader, 0xE7E79A30, 0x4F2C, 0x4FAB, 0x8D, 0x00, 0x39, 0x4F, 0x2D, 0x6B, 0xBE, 0xBE);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPBagMetadataWriter, 0xED822C8C, 0xD6BE, 0x4301, 0xA6, 0x31, 0x0E, 0x14, 0x16, 0xBA, 0xD2, 0x8F);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPSeqMetadataReader, 0x7F12E753, 0xFC71, 0x43D7, 0xA5, 0x1D, 0x92, 0xF3, 0x59, 0x77, 0xAB, 0xB5);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPSeqMetadataWriter, 0x6D68D1DE, 0xD432, 0x4B0F, 0x92, 0x3A, 0x09, 0x11, 0x83, 0xA9, 0xBD, 0xA7);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPAltMetadataReader, 0xAA94DCC2, 0xB8B0, 0x4898, 0xB8, 0x35, 0x00, 0x0A, 0xAB, 0xD7, 0x43, 0x93);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICXMPAltMetadataWriter, 0x076C2A6C, 0xF78F, 0x4C46, 0xA7, 0x23, 0x35, 0x83, 0xE7, 0x08, 0x76, 0xEA);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICLSDMetadataReader, 0x41070793, 0x59E4, 0x479A, 0xA1, 0xF7, 0x95, 0x4A, 0xDC, 0x2E, 0xF5, 0xFC);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICLSDMetadataWriter, 0x73C037E7, 0xE5D9, 0x4954, 0x87, 0x6A, 0x6D, 0xA8, 0x1D, 0x6E, 0x57, 0x68);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGCEMetadataReader, 0xB92E345D, 0xF52D, 0x41F3, 0xB5, 0x62, 0x8, 0x1B, 0xC7, 0x72, 0xE3, 0xB9);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGCEMetadataWriter, 0xAF95DC76, 0x16B2, 0x47F4, 0xB3, 0xEA, 0x3C, 0x31, 0x79, 0x66, 0x93, 0xE7);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIMDMetadataReader, 0x7447A267, 0x15, 0x42C8, 0xA8, 0xF1, 0xFB, 0x3B, 0x94, 0xC6, 0x83, 0x61);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICIMDMetadataWriter, 0x8C89071F, 0x452E, 0x4E95, 0x96, 0x82, 0x9D, 0x10, 0x24, 0x62, 0x71, 0x72);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICAPEMetadataReader, 0x1767B93A, 0xB021, 0x44EA, 0x92, 0xF, 0x86, 0x3C, 0x11, 0xF4, 0xF7, 0x68);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICAPEMetadataWriter, 0xBD6EDFCA, 0x2890, 0x482F, 0xB2, 0x33, 0x8D, 0x73, 0x39, 0xA1, 0xCF, 0x8D);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegChrominanceMetadataReader, 0x50B1904B, 0xF28F, 0x4574, 0x93, 0xF4, 0x0B, 0xAD, 0xE8, 0x2C, 0x69, 0xE9);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegChrominanceMetadataWriter, 0x3FF566F0, 0x6E6B, 0x49D4, 0x96, 0xE6, 0xB7, 0x88, 0x86, 0x69, 0x2C, 0x62);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegLuminanceMetadataReader, 0x356F2F88, 0x5A6, 0x4728, 0xB9, 0xA4, 0x1B, 0xFB, 0xCE, 0x04, 0xD8, 0x38);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegLuminanceMetadataWriter, 0x1D583ABC, 0x8A0E, 0x4657, 0x99, 0x82, 0xA3, 0x80, 0xCA, 0x58, 0xFB, 0x4B);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegCommentMetadataReader, 0x9f66347C, 0x60C4, 0x4C4D, 0xAB, 0x58, 0xD2, 0x35, 0x86, 0x85, 0xf6, 0x07);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICJpegCommentMetadataWriter, 0xE573236F, 0x55B1, 0x4EDA, 0x81, 0xEA, 0x9F, 0x65, 0xDB, 0x02, 0x90, 0xD3);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGifCommentMetadataReader, 0x32557D3B, 0x69DC, 0x4F95, 0x83, 0x6E, 0xF5, 0x97, 0x2B, 0x2F, 0x61, 0x59);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICGifCommentMetadataWriter, 0xA02797fC, 0xC4AE, 0x418C, 0xAF, 0x95, 0xE6, 0x37, 0xC7, 0xEA, 0xD2, 0xA1);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngGamaMetadataReader, 0x3692CA39, 0xE082, 0x4350, 0x9E, 0x1F, 0x37, 0x4, 0xCB, 0x8, 0x3C, 0xD5);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngGamaMetadataWriter, 0xFF036D13, 0x5D4B, 0x46DD, 0xB1, 0xF, 0x10, 0x66, 0x93, 0xD9, 0xFE, 0x4F);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngBkgdMetadataReader, 0xCE7A4A6, 0x3E8, 0x4A60, 0x9D, 0x15, 0x28, 0x2E, 0xF3, 0x2E, 0xE7, 0xDA);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngBkgdMetadataWriter, 0x68E3F2FD, 0x31AE, 0x4441, 0xBB, 0x6A, 0xFD, 0x70, 0x47, 0x52, 0x5F, 0x90);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngItxtMetadataReader, 0xAABFB2FA, 0x3E1E, 0x4A8F, 0x89, 0x77, 0x55, 0x56, 0xFB, 0x94, 0xEA, 0x23);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngItxtMetadataWriter, 0x31879719, 0xE751, 0x4DF8, 0x98, 0x1D, 0x68, 0xDF, 0xF6, 0x77, 0x4, 0xED);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngChrmMetadataReader, 0xF90B5F36, 0x367B, 0x402A, 0x9D, 0xD1, 0xBC, 0xF, 0xD5, 0x9D, 0x8F, 0x62);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngChrmMetadataWriter, 0xE23CE3EB, 0x5608, 0x4E83, 0xBC, 0xEF, 0x27, 0xB1, 0x98, 0x7E, 0x51, 0xD7);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngHistMetadataReader, 0x877A0BB7, 0xA313, 0x4491, 0x87, 0xB5, 0x2E, 0x6D, 0x5, 0x94, 0xF5, 0x20);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngHistMetadataWriter, 0x8A03E749, 0x672E, 0x446E, 0xBF, 0x1F, 0x2C, 0x11, 0xD2, 0x33, 0xB6, 0xFF);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngIccpMetadataReader, 0xF5D3E63B, 0xCB0F, 0x4628, 0xA4, 0x78, 0x6D, 0x82, 0x44, 0xBE, 0x36, 0xB1);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngIccpMetadataWriter, 0x16671E5F, 0xCE6, 0x4CC4, 0x97, 0x68, 0xE8, 0x9F, 0xE5, 0x1, 0x8A, 0xDE);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngSrgbMetadataReader, 0xFB40360C, 0x547E, 0x4956, 0xA3, 0xB9, 0xD4, 0x41, 0x88, 0x59, 0xBA, 0x66);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngSrgbMetadataWriter, 0xA6EE35C6, 0x87EC, 0x47DF, 0x9F, 0x22, 0x1D, 0x5A, 0xAD, 0x84, 0xC, 0x82);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngTimeMetadataReader, 0xD94EDF02, 0xEFE5, 0x4F0D, 0x85, 0xC8, 0xF5, 0xA6, 0x8B, 0x30, 0x0, 0xB1);")
|
|
cpp_quote( "DEFINE_GUID(CLSID_WICPngTimeMetadataWriter, 0x1AB78400, 0xB5A3, 0x4D91, 0x8A, 0xCE, 0x33, 0xFC, 0xD1, 0x49, 0x9B, 0xE6);")
|
|
|
|
/*=========================================================================*\
|
|
Interface forward declarations :
|
|
\*=========================================================================*/
|
|
|
|
interface IWICEnumMetadataItem;
|
|
interface IWICMetadataBlockReader;
|
|
interface IWICMetadataBlockWriter;
|
|
interface IWICMetadataReader;
|
|
interface IWICMetadataWriter;
|
|
interface IWICPersistStream;
|
|
interface IWICMetadataHandlerInfo;
|
|
interface IWICComponentFactory;
|
|
interface IWICStreamProvider;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICMetadataCreationOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICMetadataCreationOptions
|
|
{
|
|
WICMetadataCreationDefault = 0x00000000,
|
|
WICMetadataCreationAllowUnknown = WICMetadataCreationDefault,
|
|
WICMetadataCreationFailUnknown = 0x00010000,
|
|
WICMetadataCreationMask = 0xFFFF0000
|
|
} WICMetadataCreationOptions;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPersistOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPersistOptions
|
|
{
|
|
WICPersistOptionDefault = 0x00000000,
|
|
WICPersistOptionLittleEndian = 0x00000000,
|
|
WICPersistOptionBigEndian = 0x00000001,
|
|
WICPersistOptionStrictFormat = 0x00000002,
|
|
WICPersistOptionNoCacheStream = 0x00000004,
|
|
WICPersistOptionPreferUTF8 = 0x00000008,
|
|
WICPersistOptionMask = 0x0000FFFF
|
|
} WICPersistOptions;
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataBlockReader
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(FEAA2A8D-B3F3-43E4-B25C-D1DE990A1AE1)
|
|
]
|
|
interface IWICMetadataBlockReader : IUnknown
|
|
{
|
|
HRESULT GetContainerFormat(
|
|
[out] GUID *pguidContainerFormat
|
|
);
|
|
|
|
HRESULT GetCount(
|
|
[out] UINT *pcCount
|
|
);
|
|
|
|
HRESULT GetReaderByIndex(
|
|
[in] UINT nIndex,
|
|
[out] IWICMetadataReader **ppIMetadataReader
|
|
);
|
|
|
|
HRESULT GetEnumerator(
|
|
[out] IEnumUnknown **ppIEnumMetadata
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataBlockWriter
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(08FB9676-B444-41E8-8DBE-6A53A542BFF1)
|
|
]
|
|
interface IWICMetadataBlockWriter : IWICMetadataBlockReader
|
|
{
|
|
HRESULT InitializeFromBlockReader(
|
|
[in] IWICMetadataBlockReader *pIMDBlockReader
|
|
);
|
|
|
|
HRESULT GetWriterByIndex(
|
|
[in] UINT nIndex,
|
|
[out] IWICMetadataWriter **ppIMetadataWriter
|
|
);
|
|
|
|
HRESULT AddWriter(
|
|
[in] IWICMetadataWriter *pIMetadataWriter
|
|
);
|
|
|
|
HRESULT SetWriterByIndex(
|
|
[in] UINT nIndex,
|
|
[in] IWICMetadataWriter *pIMetadataWriter
|
|
);
|
|
|
|
HRESULT RemoveWriterByIndex(
|
|
[in] UINT nIndex);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataReader
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(9204FE99-D8FC-4FD5-A001-9536B067A899)
|
|
]
|
|
interface IWICMetadataReader : IUnknown
|
|
{
|
|
HRESULT GetMetadataFormat(
|
|
[out] GUID *pguidMetadataFormat
|
|
);
|
|
|
|
HRESULT GetMetadataHandlerInfo(
|
|
[out] IWICMetadataHandlerInfo **ppIHandler
|
|
);
|
|
|
|
HRESULT GetCount(
|
|
[out] UINT *pcCount
|
|
);
|
|
|
|
HRESULT GetValueByIndex(
|
|
[in] UINT nIndex,
|
|
[in, out, unique] PROPVARIANT *pvarSchema,
|
|
[in, out, unique] PROPVARIANT *pvarId,
|
|
[in, out, unique] PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT GetValue(
|
|
[in, unique] const PROPVARIANT *pvarSchema,
|
|
[in] const PROPVARIANT *pvarId,
|
|
[in, out, unique] PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT GetEnumerator(
|
|
[out] IWICEnumMetadataItem **ppIEnumMetadata
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataWriter
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(F7836E16-3BE0-470B-86BB-160D0AECD7DE)
|
|
]
|
|
interface IWICMetadataWriter : IWICMetadataReader
|
|
{
|
|
HRESULT SetValue(
|
|
[in, unique] const PROPVARIANT *pvarSchema,
|
|
[in] const PROPVARIANT *pvarId,
|
|
[in] const PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT SetValueByIndex(
|
|
[in] UINT nIndex,
|
|
[in, unique] const PROPVARIANT *pvarSchema,
|
|
[in] const PROPVARIANT *pvarId,
|
|
[in] const PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT RemoveValue(
|
|
[in, unique] const PROPVARIANT *pvarSchema,
|
|
[in] const PROPVARIANT *pvarId
|
|
);
|
|
|
|
HRESULT RemoveValueByIndex(
|
|
[in] UINT nIndex
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICStreamProvider
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(449494BC-B468-4927-96D7-BA90D31AB505)
|
|
]
|
|
interface IWICStreamProvider : IUnknown
|
|
{
|
|
HRESULT GetStream(
|
|
[out] IStream **ppIStream
|
|
);
|
|
|
|
HRESULT GetPersistOptions(
|
|
[out] DWORD *pdwPersistOptions
|
|
);
|
|
|
|
HRESULT GetPreferredVendorGUID(
|
|
[out] GUID *pguidPreferredVendor
|
|
);
|
|
|
|
HRESULT RefreshStream(
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICPersistStream
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00675040-6908-45F8-86A3-49C7DFD6D9AD)
|
|
]
|
|
interface IWICPersistStream : IPersistStream
|
|
{
|
|
HRESULT LoadEx(
|
|
[in, unique] IStream *pIStream,
|
|
[in, unique] const GUID *pguidPreferredVendor,
|
|
[in] DWORD dwPersistOptions
|
|
);
|
|
|
|
HRESULT SaveEx(
|
|
[in] IStream *pIStream,
|
|
[in] DWORD dwPersistOptions,
|
|
[in] BOOL fClearDirty
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataHandlerInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(ABA958BF-C672-44D1-8D61-CE6DF2E682C2)
|
|
]
|
|
interface IWICMetadataHandlerInfo : IWICComponentInfo
|
|
{
|
|
HRESULT GetMetadataFormat(
|
|
[out] GUID *pguidMetadataFormat
|
|
);
|
|
|
|
HRESULT GetContainerFormats(
|
|
[in] UINT cContainerFormats,
|
|
[in, out, unique, size_is(cContainerFormats)] GUID *pguidContainerFormats,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetDeviceManufacturer(
|
|
[in] UINT cchDeviceManufacturer,
|
|
[in, out, unique, size_is(cchDeviceManufacturer)] WCHAR *wzDeviceManufacturer,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetDeviceModels(
|
|
[in] UINT cchDeviceModels,
|
|
[in, out, unique, size_is(cchDeviceModels)] WCHAR *wzDeviceModels,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT DoesRequireFullStream(
|
|
[out] BOOL *pfRequiresFullStream
|
|
);
|
|
|
|
HRESULT DoesSupportPadding(
|
|
[out] BOOL *pfSupportsPadding
|
|
);
|
|
|
|
HRESULT DoesRequireFixedSize(
|
|
[out] BOOL *pfFixedSize
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICMetadataPattern
|
|
\*=========================================================================*/
|
|
|
|
typedef struct WICMetadataPattern
|
|
{
|
|
ULARGE_INTEGER Position;
|
|
ULONG Length;
|
|
[size_is(Length)] BYTE *Pattern;
|
|
[size_is(Length)] BYTE *Mask;
|
|
ULARGE_INTEGER DataOffset;
|
|
} WICMetadataPattern;
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataReaderInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(EEBF1F5B-07C1-4447-A3AB-22ACAF78A804)
|
|
]
|
|
interface IWICMetadataReaderInfo : IWICMetadataHandlerInfo
|
|
{
|
|
[local]
|
|
HRESULT GetPatterns(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in] UINT cbSize,
|
|
[out, size_is(*pcCount), unique, annotation("__out_bcount_part_opt(cbSize, *pcbActual)")] WICMetadataPattern *pPattern,
|
|
[out, unique, annotation("__out_opt")] UINT *pcCount,
|
|
[out, unique, annotation("__out_opt")] UINT *pcbActual
|
|
);
|
|
|
|
[call_as(GetPatterns)]
|
|
HRESULT Remote_GetPatterns(
|
|
[in] REFGUID guidContainerFormat,
|
|
[out, size_is(, *pcPatterns)] WICMetadataPattern **ppPatterns,
|
|
[out] UINT *pcPatterns
|
|
);
|
|
|
|
HRESULT MatchesPattern(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in] IStream *pIStream,
|
|
[out] BOOL *pfMatches
|
|
);
|
|
|
|
HRESULT CreateInstance(
|
|
[out] IWICMetadataReader **ppIReader);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICMetadataHeader
|
|
\*=========================================================================*/
|
|
|
|
typedef struct WICMetadataHeader
|
|
{
|
|
ULARGE_INTEGER Position;
|
|
ULONG Length;
|
|
[size_is(Length)] BYTE *Header;
|
|
ULARGE_INTEGER DataOffset;
|
|
} WICMetadataHeader;
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataWriterInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(B22E3FBA-3925-4323-B5C1-9EBFC430F236)
|
|
]
|
|
interface IWICMetadataWriterInfo : IWICMetadataHandlerInfo
|
|
{
|
|
[local]
|
|
HRESULT GetHeader(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in] UINT cbSize,
|
|
[in, out, unique, annotation("__out_bcount_opt(cbSize)")] WICMetadataHeader *pHeader,
|
|
[in, out, unique, annotation("__out_opt")] UINT *pcbActual);
|
|
|
|
[call_as(GetHeader)]
|
|
HRESULT Remote_GetHeader(
|
|
[in] REFGUID guidContainerFormat,
|
|
[out] WICMetadataHeader *pHeader
|
|
);
|
|
|
|
HRESULT CreateInstance(
|
|
[out] IWICMetadataWriter **ppIWriter);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICComponentFactory
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(412D0C3A-9650-44FA-AF5B-DD2A06C8E8FB)
|
|
]
|
|
interface IWICComponentFactory : IWICImagingFactory
|
|
{
|
|
HRESULT CreateMetadataReader(
|
|
[in] REFGUID guidMetadataFormat,
|
|
[in, unique, size_is(1)] const GUID *pguidVendor,
|
|
[in] DWORD dwOptions, /* WICPersistOptions | WICMetadataCreationOptions */
|
|
[in] IStream *pIStream,
|
|
[out] IWICMetadataReader **ppIReader
|
|
);
|
|
|
|
HRESULT CreateMetadataReaderFromContainer(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in, unique, size_is(1)] const GUID *pguidVendor,
|
|
[in] DWORD dwOptions, /* WICPersistOptions | WICMetadataCreationOptions */
|
|
[in] IStream *pIStream,
|
|
[out] IWICMetadataReader **ppIReader
|
|
);
|
|
|
|
HRESULT CreateMetadataWriter(
|
|
[in] REFGUID guidMetadataFormat,
|
|
[in, unique, size_is(1)] const GUID *pguidVendor,
|
|
[in] DWORD dwMetadataOptions, /* WICMetadataCreationOptions */
|
|
[out] IWICMetadataWriter **ppIWriter
|
|
);
|
|
|
|
HRESULT CreateMetadataWriterFromReader(
|
|
[in] IWICMetadataReader *pIReader,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[out] IWICMetadataWriter **ppIWriter
|
|
);
|
|
|
|
HRESULT CreateQueryReaderFromBlockReader(
|
|
[in] IWICMetadataBlockReader *pIBlockReader,
|
|
[out] IWICMetadataQueryReader **ppIQueryReader
|
|
);
|
|
|
|
HRESULT CreateQueryWriterFromBlockWriter(
|
|
[in] IWICMetadataBlockWriter *pIBlockWriter,
|
|
[out] IWICMetadataQueryWriter **ppIQueryWriter
|
|
);
|
|
|
|
HRESULT CreateEncoderPropertyBag(
|
|
[in, unique, size_is(cCount)] PROPBAG2 *ppropOptions,
|
|
[in] UINT cCount,
|
|
[out] IPropertyBag2 **ppIPropertyBag
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
APIs
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("HRESULT WINAPI WICMatchMetadataContent(" )
|
|
cpp_quote(" __in_ecount(1) REFGUID guidContainerFormat,")
|
|
cpp_quote(" __in_ecount_opt(1) const GUID *pguidVendor,")
|
|
cpp_quote(" __in_ecount(1) IStream *pIStream,")
|
|
cpp_quote(" __out_ecount(1) GUID *pguidMetadataFormat")
|
|
cpp_quote(" );" )
|
|
|
|
cpp_quote("HRESULT WINAPI WICSerializeMetadataContent(" )
|
|
cpp_quote(" __in_ecount(1) REFGUID guidContainerFormat,")
|
|
cpp_quote(" __in_ecount(1) IWICMetadataWriter *pIWriter,")
|
|
cpp_quote(" __in DWORD dwPersistOptions,")
|
|
cpp_quote(" __in_ecount(1) IStream *pIStream")
|
|
cpp_quote(" );" )
|
|
|
|
cpp_quote("HRESULT WINAPI WICGetMetadataContentSize(" )
|
|
cpp_quote(" __in_ecount(1) REFGUID guidContainerFormat,")
|
|
cpp_quote(" __in_ecount(1) IWICMetadataWriter *pIWriter,")
|
|
cpp_quote(" __out_ecount(1) ULARGE_INTEGER *pcbSize")
|
|
cpp_quote(" );" )
|
|
|