mirror of https://github.com/UMSKT/xpmgr.git
2603 lines
92 KiB
Plaintext
2603 lines
92 KiB
Plaintext
/*++ BUILD Version: 0002 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
wincodec.idl
|
|
|
|
Abstract:
|
|
|
|
This module contains the public data structures and API definitions
|
|
needed for the Windows still image codecs.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
import "wtypes.idl";
|
|
import "propidl.idl";
|
|
import "objidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
/*=========================================================================*\
|
|
Includes
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("#include <intsafe.h>")
|
|
|
|
/*=========================================================================*\
|
|
SDK Version
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("#define WINCODEC_SDK_VERSION 0x0236")
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_WICImagingFactory, 0xcacaf262, 0x9370, 0x4615, 0xa1, 0x3b, 0x9f, 0x55, 0x39, 0xda, 0x4c, 0xa);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
GUID Identifiers for the vendors
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_VendorMicrosoft, 0xf0e749ca, 0xedef, 0x4589, 0xa7, 0x3a, 0xee, 0xe, 0x62, 0x6a, 0x2a, 0x2b);")
|
|
cpp_quote("DEFINE_GUID(GUID_VendorMicrosoftBuiltIn, 0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
GUID Identifiers for the codecs
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_WICBmpDecoder, 0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0x0f, 0x27, 0x78);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICPngDecoder, 0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICIcoDecoder, 0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICJpegDecoder, 0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0x0b, 0x2d, 0x9b, 0x71, 0xb1, 0xca);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICGifDecoder, 0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICTiffDecoder, 0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICWmpDecoder, 0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d);")
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_WICBmpEncoder, 0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICPngEncoder, 0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICJpegEncoder, 0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICGifEncoder, 0x114f5598, 0x0b22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICTiffEncoder, 0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICWmpEncoder, 0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
GUID Identifiers for the image container formats
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatBmp, 0x0af1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatPng, 0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatIco, 0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatJpeg, 0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x02, 0x8e, 0x10, 0x57);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatTiff, 0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatGif, 0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5);")
|
|
cpp_quote("DEFINE_GUID(GUID_ContainerFormatWmp, 0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
Category Identifiers
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_WICImagingCategories, 0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICBitmapDecoders, 0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICBitmapEncoders, 0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICPixelFormats, 0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICFormatConverters, 0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICMetadataReader, 0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8);")
|
|
cpp_quote("DEFINE_GUID(CATID_WICMetadataWriter, 0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
Format converters
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_WICDefaultFormatConverter, 0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICFormatConverterHighColor, 0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICFormatConverterNChannel, 0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1);")
|
|
cpp_quote("DEFINE_GUID(CLSID_WICFormatConverterWMPhoto, 0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
Interface forward declarations :
|
|
\*=========================================================================*/
|
|
|
|
interface IWICImagingFactory;
|
|
interface IWICPalette;
|
|
interface IWICBitmap;
|
|
interface IWICBitmapLock;
|
|
interface IWICBitmapSource;
|
|
interface IWICFastMetadataEncoder;
|
|
interface IWICBitmapCodecInfo;
|
|
interface IWICBitmapDecoderInfo;
|
|
interface IWICBitmapEncoderInfo;
|
|
interface IWICBitmapDecoder;
|
|
interface IWICBitmapEncoder;
|
|
interface IWICBitmapFrameDecode;
|
|
interface IWICBitmapFrameEncode;
|
|
interface IWICBitmapSourceTransform;
|
|
interface IWICBitmapScaler;
|
|
interface IWICBitmapClipper;
|
|
interface IWICBitmapFlipRotator;
|
|
interface IWICFormatConverter;
|
|
interface IWICComponentInfo;
|
|
interface IWICStream;
|
|
interface IWICEnumMetadataItem;
|
|
interface IWICMetadataQueryReader;
|
|
interface IWICMetadataQueryWriter;
|
|
|
|
|
|
/*=========================================================================*\
|
|
Color
|
|
\*=========================================================================*/
|
|
|
|
typedef UINT32 WICColor;
|
|
|
|
|
|
/*=========================================================================*\
|
|
Rect
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] struct WICRect
|
|
{
|
|
INT X;
|
|
INT Y;
|
|
INT Width;
|
|
INT Height;
|
|
} WICRect;
|
|
|
|
|
|
/*=========================================================================*\
|
|
Definition of a wire pointer.
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("typedef BYTE* WICInProcPointer;")
|
|
cpp_quote("#if 0")
|
|
typedef [wire_marshal(UINT_PTR)] void* WICInProcPointer;
|
|
cpp_quote("#endif")
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICColorContextType
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICColorContextType
|
|
{
|
|
WICColorContextUninitialized = 0x00000000,
|
|
WICColorContextProfile = 0x00000001,
|
|
WICColorContextExifColorSpace = 0x00000002,
|
|
} WICColorContextType;
|
|
|
|
|
|
#define CODEC_FORCE_DWORD 0x7FFFFFFF
|
|
|
|
|
|
/*=========================================================================*\
|
|
Pixel Format GUIDs
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] REFGUID REFWICPixelFormatGUID;
|
|
typedef [public] GUID WICPixelFormatGUID;
|
|
|
|
/* Undefined formats */
|
|
cpp_quote("#define GUID_WICPixelFormatUndefined GUID_WICPixelFormatDontCare" )
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormatDontCare, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00);")
|
|
|
|
/* Indexed formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat1bppIndexed, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat2bppIndexed, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat4bppIndexed, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat8bppIndexed, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04);")
|
|
|
|
/* Grayscale formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormatBlackWhite, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat2bppGray, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat4bppGray, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat8bppGray, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08);")
|
|
|
|
/* Alpha only format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat8bppAlpha, 0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95);")
|
|
|
|
/* sRGB formats (gamma is approx. 2.2) */
|
|
/* For a full definition, see the sRGB spec */
|
|
|
|
/* 16bpp formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGR555, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGR565, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGRA5551, 0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppGray, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b);")
|
|
|
|
/* 24bpp formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat24bppBGR, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat24bppRGB, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d);")
|
|
|
|
/* 32bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppBGR, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppBGRA, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppPBGRA, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppGrayFloat, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppRGBA, 0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppPRGBA, 0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba);")
|
|
|
|
/* 48bpp formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppRGB, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppBGR, 0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13);")
|
|
|
|
/* 64bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBA, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppBGRA, 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppPRGBA, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppPBGRA, 0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30);")
|
|
|
|
/* scRGB formats. Gamma is 1.0 */
|
|
/* For a full definition, see the scRGB spec */
|
|
|
|
/* 16bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppGrayFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13);")
|
|
|
|
/* 32bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppBGR101010, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14);")
|
|
|
|
/* 48bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppRGBFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppBGRFixedPoint, 0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a);")
|
|
|
|
/* 96bpp format */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat96bppRGBFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18);")
|
|
|
|
/* Floating point scRGB formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFloat, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppPRGBAFloat, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBFloat, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b);")
|
|
|
|
/* CMYK formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c);")
|
|
|
|
/* Extended formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBAFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppBGRAFixedPoint, 0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBAHalf, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBHalf, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppRGBHalf, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppRGBE, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppGrayHalf, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppGrayFixedPoint, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppRGBA1010102, 0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppRGBA1010102XR, 0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c);")
|
|
|
|
/* More CMYK formats and n-Channel formats */
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppCMYK, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat24bpp3Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bpp4Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat40bpp5Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bpp6Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat56bpp7Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bpp8Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bpp3Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bpp4Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat80bpp5Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat96bpp6Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat112bpp7Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bpp8Channels, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat40bppCMYKAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat80bppCMYKAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bpp3ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat40bpp4ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bpp5ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat56bpp6ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bpp7ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat72bpp8ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33);")
|
|
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bpp3ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat80bpp4ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat96bpp5ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat112bpp6ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bpp7ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38);")
|
|
cpp_quote("DEFINE_GUID(GUID_WICPixelFormat144bpp8ChannelsAlpha, 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39);")
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapCreateCacheOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapCreateCacheOption
|
|
{
|
|
WICBitmapNoCache = 0x00000000,
|
|
WICBitmapCacheOnDemand = 0x00000001,
|
|
WICBitmapCacheOnLoad = 0x00000002,
|
|
WICBITMAPCREATECACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapCreateCacheOption;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICDecodeOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICDecodeOptions
|
|
{
|
|
WICDecodeMetadataCacheOnDemand = 0x00000000,
|
|
WICDecodeMetadataCacheOnLoad = 0x00000001,
|
|
WICMETADATACACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICDecodeOptions;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapEncoderCacheOption
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapEncoderCacheOption
|
|
{
|
|
WICBitmapEncoderCacheInMemory = 0x00000000,
|
|
WICBitmapEncoderCacheTempFile = 0x00000001,
|
|
WICBitmapEncoderNoCache = 0x00000002,
|
|
WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapEncoderCacheOption;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICComponentType
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICComponentType
|
|
{
|
|
WICDecoder = 0x00000001,
|
|
WICEncoder = 0x00000002,
|
|
WICPixelFormatConverter = 0x00000004,
|
|
WICMetadataReader = 0x00000008,
|
|
WICMetadataWriter = 0x00000010,
|
|
WICPixelFormat = 0x00000020,
|
|
WICAllComponents = 0x0000003F,
|
|
WICCOMPONENTTYPE_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICComponentType;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICComponentEnumerateOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICComponentEnumerateOptions
|
|
{
|
|
WICComponentEnumerateDefault = 0x00000000,
|
|
WICComponentEnumerateRefresh = 0x00000001,
|
|
WICComponentEnumerateDisabled = 0x80000000,
|
|
WICComponentEnumerateUnsigned = 0x40000000,
|
|
WICComponentEnumerateBuiltInOnly = 0x20000000,
|
|
WICCOMPONENTENUMERATEOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICComponentEnumerateOptions;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapPattern
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] struct WICBitmapPattern
|
|
{
|
|
ULARGE_INTEGER Position;
|
|
ULONG Length;
|
|
[size_is(Length)] BYTE *Pattern;
|
|
[size_is(Length)] BYTE *Mask;
|
|
BOOL EndOfStream;
|
|
|
|
} WICBitmapPattern;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapInterpolationMode
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapInterpolationMode
|
|
{
|
|
// Nearest Neighbor filtering. Also known as nearest pixel or nearest point
|
|
// sampling.
|
|
|
|
WICBitmapInterpolationModeNearestNeighbor = 0x00000000,
|
|
|
|
// Linear filtering.
|
|
|
|
WICBitmapInterpolationModeLinear = 0x00000001,
|
|
|
|
// Cubic filtering. May include linear pre-filtering or decimation.
|
|
|
|
WICBitmapInterpolationModeCubic = 0x00000002,
|
|
|
|
// Fant filtering.
|
|
|
|
WICBitmapInterpolationModeFant = 0x00000003,
|
|
|
|
WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapInterpolationMode;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapPaletteType
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapPaletteType
|
|
{
|
|
// Arbitrary custom palette provided by caller.
|
|
|
|
WICBitmapPaletteTypeCustom = 0x00000000,
|
|
|
|
// Optimal palette generated using a median-cut algorithm.
|
|
|
|
WICBitmapPaletteTypeMedianCut = 0x00000001,
|
|
|
|
// Black and white palette.
|
|
|
|
WICBitmapPaletteTypeFixedBW = 0x00000002,
|
|
|
|
// Symmetric halftone palettes.
|
|
// Each of these halftone palettes will be a superset of the system palette.
|
|
// E.g. Halftone8 will have it's 8-color on-off primaries and the 16 system
|
|
// colors added. With duplicates removed, that leaves 16 colors.
|
|
|
|
WICBitmapPaletteTypeFixedHalftone8 = 0x00000003, // 8-color, on-off primaries
|
|
WICBitmapPaletteTypeFixedHalftone27 = 0x00000004, // 3 intensity levels of each color
|
|
WICBitmapPaletteTypeFixedHalftone64 = 0x00000005, // 4 intensity levels of each color
|
|
WICBitmapPaletteTypeFixedHalftone125 = 0x00000006, // 5 intensity levels of each color
|
|
WICBitmapPaletteTypeFixedHalftone216 = 0x00000007, // 6 intensity levels of each color
|
|
|
|
// Convenient web palette, same as WICBitmapPaletteTypeFixedHalftone216
|
|
|
|
WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216,
|
|
|
|
// Assymetric halftone palettes.
|
|
// These are somewhat less useful than the symmetric ones, but are
|
|
// included for completeness. These do not include all of the system
|
|
// colors.
|
|
|
|
WICBitmapPaletteTypeFixedHalftone252 = 0x00000008, // 6-red, 7-green, 6-blue intensities
|
|
WICBitmapPaletteTypeFixedHalftone256 = 0x00000009, // 8-red, 8-green, 4-blue intensities
|
|
|
|
WICBitmapPaletteTypeFixedGray4 = 0x0000000A, // 4 shades of gray
|
|
WICBitmapPaletteTypeFixedGray16 = 0x0000000B, // 16 shades of gray
|
|
WICBitmapPaletteTypeFixedGray256 = 0x0000000C, // 256 shades of gray
|
|
|
|
WICBITMAPPALETTETYPE_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapPaletteType;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapDitherType
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapDitherType
|
|
{
|
|
// Solid color - picks the nearest matching color with no attempt to
|
|
// halftone or dither. May be used on an arbitrary palette.
|
|
|
|
WICBitmapDitherTypeNone = 0x00000000,
|
|
WICBitmapDitherTypeSolid = 0x00000000,
|
|
|
|
// Ordered dithers and spiral dithers must be used with a fixed palette or
|
|
// a fixed palette translation.
|
|
|
|
// NOTE: DitherOrdered4x4 is unique in that it may apply to 16bpp
|
|
// conversions also.
|
|
|
|
WICBitmapDitherTypeOrdered4x4 = 0x00000001,
|
|
|
|
WICBitmapDitherTypeOrdered8x8 = 0x00000002,
|
|
WICBitmapDitherTypeOrdered16x16 = 0x00000003,
|
|
WICBitmapDitherTypeSpiral4x4 = 0x00000004,
|
|
WICBitmapDitherTypeSpiral8x8 = 0x00000005,
|
|
WICBitmapDitherTypeDualSpiral4x4 = 0x00000006,
|
|
WICBitmapDitherTypeDualSpiral8x8 = 0x00000007,
|
|
|
|
// Error diffusion. May be used with any palette.
|
|
|
|
WICBitmapDitherTypeErrorDiffusion = 0x00000008,
|
|
|
|
WICBITMAPDITHERTYPE_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapDitherType;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapAlphaChannelOption
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapAlphaChannelOption
|
|
{
|
|
WICBitmapUseAlpha = 0x00000000,
|
|
WICBitmapUsePremultipliedAlpha = 0x00000001,
|
|
WICBitmapIgnoreAlpha = 0x00000002,
|
|
WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapAlphaChannelOption;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapTransformOptions
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapTransformOptions
|
|
{
|
|
WICBitmapTransformRotate0 = 0x00000000,
|
|
WICBitmapTransformRotate90 = 0x00000001,
|
|
WICBitmapTransformRotate180 = 0x00000002,
|
|
WICBitmapTransformRotate270 = 0x00000003,
|
|
WICBitmapTransformFlipHorizontal = 0x00000008,
|
|
WICBitmapTransformFlipVertical = 0x00000010,
|
|
WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapTransformOptions;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapLockFlags
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapLockFlags
|
|
{
|
|
WICBitmapLockRead = 0x00000001,
|
|
WICBitmapLockWrite = 0x00000002,
|
|
WICBITMAPLOCKFLAGS_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapLockFlags;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICBitmapDecoderCapabilities
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICBitmapDecoderCapabilities
|
|
{
|
|
WICBitmapDecoderCapabilitySameEncoder = 0x00000001,
|
|
WICBitmapDecoderCapabilityCanDecodeAllImages = 0x00000002,
|
|
WICBitmapDecoderCapabilityCanDecodeSomeImages = 0x00000004,
|
|
WICBitmapDecoderCapabilityCanEnumerateMetadata = 0x00000008,
|
|
WICBitmapDecoderCapabilityCanDecodeThumbnail = 0x00000010,
|
|
WICBITMAPDECODERCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICBitmapDecoderCapabilities;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICProgressOperation
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICProgressOperation
|
|
{
|
|
WICProgressOperationCopyPixels = 0x00000001,
|
|
WICProgressOperationWritePixels = 0x00000002,
|
|
WICProgressOperationAll = 0x0000FFFF,
|
|
WICPROGRESSOPERATION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICProgressOperation;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICProgressNotification
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICProgressNotification
|
|
{
|
|
WICProgressNotificationBegin = 0x00010000,
|
|
WICProgressNotificationEnd = 0x00020000,
|
|
WICProgressNotificationFrequent = 0x00040000,
|
|
WICProgressNotificationAll = 0xFFFF0000,
|
|
WICPROGRESSNOTIFICATION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICProgressNotification;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICComponentSigning
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICComponentSigning
|
|
{
|
|
WICComponentSigned = 0x00000001,
|
|
WICComponentUnsigned = 0x00000002,
|
|
WICComponentSafe = 0x00000004,
|
|
WICComponentDisabled = 0x80000000,
|
|
WICCOMPONENTSIGNING_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICComponentSigning;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICGifLogicalScreenDescriptorProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICGifLogicalScreenDescriptorProperties
|
|
{
|
|
// This part is for Logical Screen Descriptor
|
|
WICGifLogicalScreenSignature = 0x00000001,
|
|
WICGifLogicalScreenDescriptorWidth = 0x00000002,
|
|
WICGifLogicalScreenDescriptorHeight = 0x00000003,
|
|
WICGifLogicalScreenDescriptorGlobalColorTableFlag = 0x00000004,
|
|
WICGifLogicalScreenDescriptorColorResolution = 0x00000005,
|
|
WICGifLogicalScreenDescriptorSortFlag = 0x00000006,
|
|
WICGifLogicalScreenDescriptorGlobalColorTableSize = 0x00000007,
|
|
WICGifLogicalScreenDescriptorBackgroundColorIndex = 0x00000008,
|
|
WICGifLogicalScreenDescriptorPixelAspectRatio = 0x00000009,
|
|
WICGifLogicalScreenDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
|
|
} WICGifLogicalScreenDescriptorProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICGifImageDescriptorProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICGifImageDescriptorProperties
|
|
{
|
|
// This part is for Image Descriptor
|
|
WICGifImageDescriptorLeft = 0x00000001,
|
|
WICGifImageDescriptorTop = 0x00000002,
|
|
WICGifImageDescriptorWidth = 0x00000003,
|
|
WICGifImageDescriptorHeight = 0x00000004,
|
|
WICGifImageDescriptorLocalColorTableFlag = 0x00000005,
|
|
WICGifImageDescriptorInterlaceFlag = 0x00000006,
|
|
WICGifImageDescriptorSortFlag = 0x00000007,
|
|
WICGifImageDescriptorLocalColorTableSize = 0x00000008,
|
|
WICGifImageDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICGifImageDescriptorProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICGifGraphicControlExtensionProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICGifGraphicControlExtensionProperties
|
|
{
|
|
// This part is for Graphic Control Extension
|
|
WICGifGraphicControlExtensionDisposal = 0x00000001,
|
|
WICGifGraphicControlExtensionUserInputFlag = 0x00000002,
|
|
WICGifGraphicControlExtensionTransparencyFlag = 0x00000003,
|
|
WICGifGraphicControlExtensionDelay = 0x00000004,
|
|
WICGifGraphicControlExtensionTransparentColorIndex = 0x00000005,
|
|
WICGifGraphicControlExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICGifGraphicControlExtensionProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICGifApplicationExtensionProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICGifApplicationExtensionProperties
|
|
{
|
|
// This part is for Application Extension
|
|
WICGifApplicationExtensionApplication = 0x00000001,
|
|
WICGifApplicationExtensionData = 0x00000002,
|
|
WICGifApplicationExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICGifApplicationExtensionProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICGifCommentExtensionProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICGifCommentExtensionProperties
|
|
{
|
|
WICGifCommentExtensionText = 0x00000001,
|
|
WICGifCommentExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICGifCommentExtensionProperties;
|
|
|
|
/*=========================================================================*\
|
|
WICJpegCommentProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICJpegCommentProperties
|
|
{
|
|
WICJpegCommentText = 0x00000001,
|
|
WICJpegCommentProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICJpegCommentProperties;
|
|
|
|
/*=========================================================================*\
|
|
WICJpegLuminanceProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICJpegLuminanceProperties
|
|
{
|
|
WICJpegLuminanceTable = 0x00000001,
|
|
WICJpegLuminanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICJpegLuminanceProperties;
|
|
|
|
/*=========================================================================*\
|
|
WICJpegChrominanceProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICJpegChrominanceProperties
|
|
{
|
|
WICJpegChrominanceTable = 0x00000001,
|
|
WICJpegChrominanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICJpegChrominanceProperties;
|
|
|
|
/*=========================================================================*\
|
|
WIC8BIMIptcProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WIC8BIMIptcProperties
|
|
{
|
|
WIC8BIMIptcPString = 0x00000000,
|
|
WIC8BIMIptcEmbeddedIPTC = 0x00000001,
|
|
WIC8BIMIptcProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WIC8BIMIptcProperties;
|
|
|
|
/*=========================================================================*\
|
|
WIC8BIMResolutionInfoProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WIC8BIMResolutionInfoProperties
|
|
{
|
|
WIC8BIMResolutionInfoPString = 0x00000001,
|
|
WIC8BIMResolutionInfoHResolution = 0x00000002,
|
|
WIC8BIMResolutionInfoHResolutionUnit = 0x00000003,
|
|
WIC8BIMResolutionInfoWidthUnit = 0x00000004,
|
|
WIC8BIMResolutionInfoVResolution = 0x00000005,
|
|
WIC8BIMResolutionInfoVResolutionUnit = 0x00000006,
|
|
WIC8BIMResolutionInfoHeightUnit = 0x00000007,
|
|
WIC8BIMResolutionInfoProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WIC8BIMResolutionInfoProperties;
|
|
|
|
/*=========================================================================*\
|
|
WIC8BIMIptcDigestProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WIC8BIMIptcDigestProperties
|
|
{
|
|
WIC8BIMIptcDigestPString = 0x00000001,
|
|
WIC8BIMIptcDigestIptcDigest = 0x00000002,
|
|
WIC8BIMIptcDigestProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WIC8BIMIptcDigestProperties;
|
|
|
|
/*=========================================================================*\
|
|
WICPngGamaProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngGamaProperties
|
|
{
|
|
WICPngGamaGamma = 0x00000001,
|
|
WICPngGamaProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngGamaProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngBkgdProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngBkgdProperties
|
|
{
|
|
WICPngBkgdBackgroundColor = 0x00000001,
|
|
WICPngBkgdProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngBkgdProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngItxtProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngItxtProperties
|
|
{
|
|
WICPngItxtKeyword = 0x00000001,
|
|
WICPngItxtCompressionFlag = 0x00000002,
|
|
WICPngItxtLanguageTag = 0x00000003,
|
|
WICPngItxtTranslatedKeyword = 0x00000004,
|
|
WICPngItxtText = 0x00000005,
|
|
WICPngItxtProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngItxtProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngChrmProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngChrmProperties
|
|
{
|
|
WICPngChrmWhitePointX = 0x00000001,
|
|
WICPngChrmWhitePointY = 0x00000002,
|
|
WICPngChrmRedX = 0x00000003,
|
|
WICPngChrmRedY = 0x00000004,
|
|
WICPngChrmGreenX = 0x00000005,
|
|
WICPngChrmGreenY = 0x00000006,
|
|
WICPngChrmBlueX = 0x00000007,
|
|
WICPngChrmBlueY = 0x0000008,
|
|
WICPngChrmProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngChrmProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngHistProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngHistProperties
|
|
{
|
|
WICPngHistFrequencies = 0x00000001,
|
|
WICPngHistProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngHistProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngIccpProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngIccpProperties
|
|
{
|
|
WICPngIccpProfileName = 0x00000001,
|
|
WICPngIccpProfileData = 0x00000002,
|
|
WICPngIccpProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngIccpProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngSrgbProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngSrgbProperties
|
|
{
|
|
WICPngSrgbRenderingIntent = 0x00000001,
|
|
WICPngSrgbProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngSrgbProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngTimeProperties
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngTimeProperties
|
|
{
|
|
WICPngTimeYear = 0x00000001,
|
|
WICPngTimeMonth = 0x00000002,
|
|
WICPngTimeDay = 0x00000003,
|
|
WICPngTimeHour = 0x00000004,
|
|
WICPngTimeMinute = 0x00000005,
|
|
WICPngTimeSecond = 0x00000006,
|
|
WICPngTimeProperties_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngTimeProperties;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICSectionAccessLevel
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICSectionAccessLevel
|
|
{
|
|
WICSectionAccessLevelRead = 0x00000001,
|
|
WICSectionAccessLevelReadWrite = 0x00000003,
|
|
WICSectionAccessLevel_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICSectionAccessLevel;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPixelFormatNumericRepresentation
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPixelFormatNumericRepresentation
|
|
{
|
|
WICPixelFormatNumericRepresentationUnspecified = 0x00000000,
|
|
WICPixelFormatNumericRepresentationIndexed = 0x00000001,
|
|
WICPixelFormatNumericRepresentationUnsignedInteger = 0x00000002,
|
|
WICPixelFormatNumericRepresentationSignedInteger = 0x00000003,
|
|
WICPixelFormatNumericRepresentationFixed = 0x00000004,
|
|
WICPixelFormatNumericRepresentationFloat = 0x00000005,
|
|
WICPixelFormatNumericRepresentation_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPixelFormatNumericRepresentation;
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICPalette - Palette
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000040-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICPalette : IUnknown
|
|
{
|
|
// Initialize the palette to one of the pre-defined palette types in
|
|
// the PaletteType enumeration. A transparent color can be included
|
|
// if desired. If the pre-defined palette has fewer than 256 entries,
|
|
// one entry is appended for the transparent color - otherwise index
|
|
// 255 is replaced with the transparent color.
|
|
|
|
HRESULT InitializePredefined(
|
|
[in] WICBitmapPaletteType ePaletteType,
|
|
[in] BOOL fAddTransparentColor
|
|
);
|
|
|
|
// Build a custom palette. If a transparent color is required it should be
|
|
// included in the array of input colors.
|
|
|
|
HRESULT InitializeCustom(
|
|
[in, size_is(cCount)] WICColor *pColors,
|
|
[in] UINT cCount
|
|
);
|
|
|
|
// Compute an optimal palette from a given surface. The number of colors to
|
|
// generate is controlled by cColors. If a transparent color is desired,
|
|
// one of the cColors entries will be a transparent color - i.e. the count
|
|
// will not be increased beyond cColors.
|
|
|
|
HRESULT InitializeFromBitmap(
|
|
[in] IWICBitmapSource *pISurface,
|
|
[in] UINT cCount,
|
|
[in] BOOL fAddTransparentColor
|
|
);
|
|
|
|
// Initialize the palette to be a copy of an existing palette.
|
|
|
|
HRESULT InitializeFromPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT GetType(
|
|
[out] WICBitmapPaletteType *pePaletteType
|
|
);
|
|
|
|
HRESULT GetColorCount(
|
|
[out] UINT *pcCount
|
|
);
|
|
|
|
HRESULT GetColors(
|
|
[in] UINT cCount,
|
|
[out, size_is(cCount)] WICColor *pColors,
|
|
[out] UINT *pcActualColors
|
|
);
|
|
|
|
HRESULT IsBlackWhite(
|
|
[out] BOOL *pfIsBlackWhite
|
|
);
|
|
|
|
HRESULT IsGrayscale(
|
|
[out] BOOL *pfIsGrayscale
|
|
);
|
|
|
|
HRESULT HasAlpha(
|
|
[out] BOOL *pfHasAlpha
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapSource - Source bitmap/imaging functionality
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000120-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmapSource : IUnknown
|
|
{
|
|
HRESULT GetSize(
|
|
[out] UINT *puiWidth,
|
|
[out] UINT *puiHeight
|
|
);
|
|
|
|
HRESULT GetPixelFormat(
|
|
[out] WICPixelFormatGUID *pPixelFormat
|
|
);
|
|
|
|
HRESULT GetResolution(
|
|
[out] double *pDpiX,
|
|
[out] double *pDpiY
|
|
);
|
|
|
|
HRESULT CopyPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT CopyPixels(
|
|
[in, unique] const WICRect *prc,
|
|
[in] UINT cbStride,
|
|
[in] UINT cbBufferSize,
|
|
[out, size_is(cbBufferSize)] BYTE *pbBuffer
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICFormatConverter
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000301-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICFormatConverter : IWICBitmapSource
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IWICBitmapSource *pISource,
|
|
[in] REFWICPixelFormatGUID dstFormat,
|
|
[in] WICBitmapDitherType dither,
|
|
[in, unique] IWICPalette *pIPalette,
|
|
[in] double alphaThresholdPercent,
|
|
[in] WICBitmapPaletteType paletteTranslate
|
|
);
|
|
|
|
HRESULT CanConvert(
|
|
[in] REFWICPixelFormatGUID srcPixelFormat,
|
|
[in] REFWICPixelFormatGUID dstPixelFormat,
|
|
[out] BOOL *pfCanConvert);
|
|
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapScaler
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000302-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmapScaler : IWICBitmapSource
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IWICBitmapSource *pISource,
|
|
[in] UINT uiWidth,
|
|
[in] UINT uiHeight,
|
|
[in] WICBitmapInterpolationMode mode
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapClipper
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(E4FBCF03-223D-4e81-9333-D635556DD1B5)
|
|
]
|
|
interface IWICBitmapClipper : IWICBitmapSource
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IWICBitmapSource *pISource,
|
|
[in] const WICRect *prc
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapFlipRotator
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(5009834F-2D6A-41ce-9E1B-17C5AFF7A782)
|
|
]
|
|
interface IWICBitmapFlipRotator : IWICBitmapSource
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IWICBitmapSource *pISource,
|
|
[in] WICBitmapTransformOptions options
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapLock - WIC Lock object for bitmaps.
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000123-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmapLock : IUnknown
|
|
{
|
|
HRESULT GetSize(
|
|
[out] UINT *puiWidth,
|
|
[out] UINT *puiHeight
|
|
);
|
|
|
|
HRESULT GetStride(
|
|
[out] UINT *pcbStride
|
|
);
|
|
|
|
HRESULT GetDataPointer(
|
|
[out] UINT *pcbBufferSize,
|
|
[out, size_is( , *pcbBufferSize)] WICInProcPointer *ppbData
|
|
);
|
|
|
|
HRESULT GetPixelFormat(
|
|
[out] WICPixelFormatGUID *pPixelFormat
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmap - WIC Bitmap cache interface
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000121-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmap : IWICBitmapSource
|
|
{
|
|
HRESULT Lock(
|
|
[in, unique] const WICRect *prcLock,
|
|
[in] DWORD flags,
|
|
[out] IWICBitmapLock **ppILock
|
|
);
|
|
|
|
HRESULT SetPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT SetResolution(
|
|
[in] double dpiX,
|
|
[in] double dpiY
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICColorContext - WIC color context
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(3C613A02-34B2-44ea-9A7C-45AEA9C6FD6D)
|
|
]
|
|
interface IWICColorContext : IUnknown
|
|
{
|
|
HRESULT InitializeFromFilename(
|
|
[in] LPCWSTR wzFilename
|
|
);
|
|
|
|
HRESULT InitializeFromMemory(
|
|
[in, size_is(cbBufferSize)] const BYTE *pbBuffer,
|
|
[in] UINT cbBufferSize
|
|
);
|
|
|
|
HRESULT InitializeFromExifColorSpace(
|
|
[in] UINT value
|
|
);
|
|
|
|
HRESULT GetType(
|
|
[out] WICColorContextType *pType
|
|
);
|
|
|
|
HRESULT GetProfileBytes(
|
|
[in] UINT cbBuffer,
|
|
[in, out, unique, size_is(cbBuffer)] BYTE *pbBuffer,
|
|
[out] UINT *pcbActual
|
|
);
|
|
|
|
HRESULT GetExifColorSpace(
|
|
[out] UINT *pValue
|
|
);
|
|
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICColorTransform - WIC color transform
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(B66F034F-D0E2-40ab-B436-6DE39E321A94)
|
|
]
|
|
interface IWICColorTransform : IWICBitmapSource
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IWICBitmapSource *pIBitmapSource,
|
|
[in] IWICColorContext *pIContextSource,
|
|
[in] IWICColorContext *pIContextDest,
|
|
[in] REFWICPixelFormatGUID pixelFmtDest
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICFastMetadataEncoder
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(B84E2C09-78C9-4AC4-8BD3-524AE1663A2F)
|
|
]
|
|
interface IWICFastMetadataEncoder : IUnknown
|
|
{
|
|
HRESULT Commit(
|
|
);
|
|
|
|
HRESULT GetMetadataQueryWriter(
|
|
[out] IWICMetadataQueryWriter **ppIMetadataQueryWriter
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICStream - WIC Bitmap Stream
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(135FF860-22B7-4ddf-B0F6-218F4F299A43)
|
|
]
|
|
interface IWICStream : IStream
|
|
{
|
|
HRESULT InitializeFromIStream(
|
|
[in] IStream *pIStream
|
|
);
|
|
|
|
HRESULT InitializeFromFilename(
|
|
[in] LPCWSTR wzFileName,
|
|
[in] DWORD dwDesiredAccess
|
|
);
|
|
|
|
HRESULT InitializeFromMemory(
|
|
[in, size_is(cbBufferSize)] WICInProcPointer pbBuffer,
|
|
[in] DWORD cbBufferSize
|
|
);
|
|
|
|
HRESULT InitializeFromIStreamRegion(
|
|
[in] IStream *pIStream,
|
|
[in] ULARGE_INTEGER ulOffset,
|
|
[in] ULARGE_INTEGER ulMaxSize
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICEnumMetadataItem
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(DC2BB46D-3F07-481E-8625-220C4AEDBB33)
|
|
]
|
|
interface IWICEnumMetadataItem : IUnknown
|
|
{
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[in, out, unique, size_is(celt)] PROPVARIANT *rgeltSchema,
|
|
[in, out, size_is(celt)] PROPVARIANT *rgeltId,
|
|
[in, out, optional, size_is(celt)] PROPVARIANT *rgeltValue,
|
|
[out, optional] ULONG *pceltFetched
|
|
);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt
|
|
) ;
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IWICEnumMetadataItem **ppIEnumMetadataItem
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataQueryReader - Metadata Query Reader
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(30989668-E1C9-4597-B395-458EEDB808DF)
|
|
]
|
|
interface IWICMetadataQueryReader : IUnknown
|
|
{
|
|
HRESULT GetContainerFormat(
|
|
[out] GUID *pguidContainerFormat
|
|
);
|
|
|
|
HRESULT GetLocation(
|
|
[in] UINT cchMaxLength,
|
|
[in, out, unique, size_is(cchMaxLength)] WCHAR *wzNamespace,
|
|
[out] UINT *pcchActualLength
|
|
);
|
|
|
|
HRESULT GetMetadataByName(
|
|
[in] LPCWSTR wzName,
|
|
[in, out, unique] PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT GetEnumerator(
|
|
[out] IEnumString **ppIEnumString
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICMetadataQueryWriter - Metadata Query Writer
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(A721791A-0DEF-4d06-BD91-2118BF1DB10B)
|
|
]
|
|
interface IWICMetadataQueryWriter : IWICMetadataQueryReader
|
|
{
|
|
HRESULT SetMetadataByName(
|
|
[in] LPCWSTR wzName,
|
|
[in] const PROPVARIANT *pvarValue
|
|
);
|
|
|
|
HRESULT RemoveMetadataByName(
|
|
[in] LPCWSTR wzName
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapEncoder - Bitmap Encoder
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000103-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmapEncoder : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in] IStream *pIStream,
|
|
[in] WICBitmapEncoderCacheOption cacheOption
|
|
);
|
|
|
|
HRESULT GetContainerFormat(
|
|
[out] GUID *pguidContainerFormat
|
|
);
|
|
|
|
HRESULT GetEncoderInfo(
|
|
[out] IWICBitmapEncoderInfo **ppIEncoderInfo
|
|
);
|
|
|
|
HRESULT SetColorContexts(
|
|
[in] UINT cCount,
|
|
[in, size_is(cCount)] IWICColorContext **ppIColorContext
|
|
);
|
|
|
|
HRESULT SetPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT SetThumbnail(
|
|
[in] IWICBitmapSource *pIThumbnail
|
|
);
|
|
|
|
HRESULT SetPreview(
|
|
[in] IWICBitmapSource *pIPreview
|
|
);
|
|
|
|
HRESULT CreateNewFrame(
|
|
[out] IWICBitmapFrameEncode **ppIFrameEncode,
|
|
[in, out, unique] IPropertyBag2 **ppIEncoderOptions
|
|
);
|
|
|
|
HRESULT Commit(
|
|
);
|
|
|
|
HRESULT GetMetadataQueryWriter(
|
|
[out] IWICMetadataQueryWriter **ppIMetadataQueryWriter
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapFrameEncode - Bitmap Frame Encoder
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(00000105-a8f2-4877-ba0a-fd2b6645fb94)
|
|
]
|
|
interface IWICBitmapFrameEncode : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in, unique] IPropertyBag2 *pIEncoderOptions
|
|
);
|
|
|
|
HRESULT SetSize(
|
|
[in] UINT uiWidth,
|
|
[in] UINT uiHeight
|
|
);
|
|
|
|
HRESULT SetResolution(
|
|
[in] double dpiX,
|
|
[in] double dpiY
|
|
);
|
|
|
|
HRESULT SetPixelFormat(
|
|
[in, out] WICPixelFormatGUID *pPixelFormat
|
|
);
|
|
|
|
HRESULT SetColorContexts(
|
|
[in] UINT cCount,
|
|
[in, size_is(cCount)] IWICColorContext **ppIColorContext
|
|
);
|
|
|
|
HRESULT SetPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT SetThumbnail(
|
|
[in] IWICBitmapSource *pIThumbnail
|
|
);
|
|
|
|
HRESULT WritePixels(
|
|
[in] UINT lineCount,
|
|
[in] UINT cbStride,
|
|
[in] UINT cbBufferSize,
|
|
[in, size_is(cbBufferSize)] BYTE *pbPixels
|
|
);
|
|
|
|
HRESULT WriteSource(
|
|
[in] IWICBitmapSource *pIBitmapSource,
|
|
[in, unique] WICRect *prc
|
|
);
|
|
|
|
HRESULT Commit(
|
|
);
|
|
|
|
HRESULT GetMetadataQueryWriter(
|
|
[out] IWICMetadataQueryWriter **ppIMetadataQueryWriter
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapDecoder - Bitmap Decoder
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(9EDDE9E7-8DEE-47ea-99DF-E6FAF2ED44BF)
|
|
]
|
|
interface IWICBitmapDecoder : IUnknown
|
|
{
|
|
HRESULT QueryCapability(
|
|
[in] IStream *pIStream,
|
|
[out] DWORD *pdwCapability
|
|
);
|
|
|
|
HRESULT Initialize(
|
|
[in] IStream *pIStream,
|
|
[in] WICDecodeOptions cacheOptions
|
|
);
|
|
|
|
HRESULT GetContainerFormat(
|
|
[out] GUID *pguidContainerFormat
|
|
);
|
|
|
|
HRESULT GetDecoderInfo(
|
|
[out] IWICBitmapDecoderInfo **ppIDecoderInfo
|
|
);
|
|
|
|
HRESULT CopyPalette(
|
|
[in] IWICPalette *pIPalette
|
|
);
|
|
|
|
HRESULT GetMetadataQueryReader(
|
|
[out] IWICMetadataQueryReader **ppIMetadataQueryReader
|
|
);
|
|
|
|
HRESULT GetPreview(
|
|
[out] IWICBitmapSource **ppIBitmapSource
|
|
);
|
|
|
|
HRESULT GetColorContexts(
|
|
[in] UINT cCount,
|
|
[in, out, unique, size_is(cCount)] IWICColorContext **ppIColorContexts,
|
|
[out] UINT *pcActualCount);
|
|
|
|
|
|
HRESULT GetThumbnail(
|
|
[out] IWICBitmapSource **ppIThumbnail
|
|
);
|
|
|
|
HRESULT GetFrameCount(
|
|
[out] UINT *pCount
|
|
);
|
|
|
|
HRESULT GetFrame(
|
|
[in] UINT index,
|
|
[out] IWICBitmapFrameDecode **ppIBitmapFrame
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapSourceTransform
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(3B16811B-6A43-4ec9-B713-3D5A0C13B940)
|
|
]
|
|
interface IWICBitmapSourceTransform : IUnknown
|
|
{
|
|
HRESULT CopyPixels(
|
|
[in, unique] const WICRect *prc,
|
|
[in] UINT uiWidth,
|
|
[in] UINT uiHeight,
|
|
[in, unique] WICPixelFormatGUID *pguidDstFormat,
|
|
[in] WICBitmapTransformOptions dstTransform,
|
|
[in] UINT nStride,
|
|
[in] UINT cbBufferSize,
|
|
[out, size_is(cbBufferSize)] BYTE *pbBuffer
|
|
);
|
|
|
|
HRESULT GetClosestSize(
|
|
[in, out] UINT *puiWidth,
|
|
[in, out] UINT *puiHeight
|
|
);
|
|
|
|
HRESULT GetClosestPixelFormat(
|
|
[in, out] WICPixelFormatGUID *pguidDstFormat
|
|
);
|
|
|
|
HRESULT DoesSupportTransform(
|
|
[in] WICBitmapTransformOptions dstTransform,
|
|
[out] BOOL *pfIsSupported
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapFrameDecode - Bitmap Decoder
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(3B16811B-6A43-4ec9-A813-3D930C13B940)
|
|
]
|
|
interface IWICBitmapFrameDecode : IWICBitmapSource
|
|
{
|
|
HRESULT GetMetadataQueryReader(
|
|
[out] IWICMetadataQueryReader **ppIMetadataQueryReader
|
|
);
|
|
|
|
HRESULT GetColorContexts(
|
|
[in] UINT cCount,
|
|
[in, out, unique, size_is(cCount)] IWICColorContext **ppIColorContexts,
|
|
[out] UINT *pcActualCount);
|
|
|
|
HRESULT GetThumbnail(
|
|
[out] IWICBitmapSource **ppIThumbnail
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICProgressiveLevelControl - Progressive Decoding
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(DAAC296F-7AA5-4dbf-8D15-225C5976F891)
|
|
]
|
|
interface IWICProgressiveLevelControl : IUnknown
|
|
{
|
|
HRESULT GetLevelCount(
|
|
[out, retval] UINT * pcLevels
|
|
);
|
|
|
|
HRESULT GetCurrentLevel(
|
|
[out, retval] UINT * pnLevel
|
|
);
|
|
|
|
HRESULT SetCurrentLevel(
|
|
[in] UINT nLevel
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICProgressCallback - Cross apartment callback interface
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(4776F9CD-9517-45FA-BF24-E89C5EC5C60C)
|
|
]
|
|
interface IWICProgressCallback : IUnknown
|
|
{
|
|
HRESULT Notify(
|
|
[in] ULONG uFrameNum,
|
|
[in] WICProgressOperation operation,
|
|
[in] double dblProgress
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapCodecProgressNotification - Register Progress Notifications
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(64C1024E-C3CF-4462-8078-88C2B11C46D9)
|
|
]
|
|
interface IWICBitmapCodecProgressNotification : IUnknown
|
|
{
|
|
typedef [unique] HRESULT __stdcall (*PFNProgressNotification)(
|
|
LPVOID pvData,
|
|
ULONG uFrameNum,
|
|
WICProgressOperation operation,
|
|
double dblProgress
|
|
);
|
|
|
|
[local]
|
|
HRESULT RegisterProgressNotification(
|
|
[in, unique, annotation("__in_opt")] PFNProgressNotification pfnProgressNotification,
|
|
[in, unique, annotation("__in_opt")] LPVOID pvData,
|
|
[in] DWORD dwProgressFlags /* WICProgressOperation | WICProgressNotification */
|
|
);
|
|
|
|
[call_as(RegisterProgressNotification)]
|
|
HRESULT Remote_RegisterProgressNotification(
|
|
[in, unique] IWICProgressCallback *pICallback,
|
|
[in] DWORD dwProgressFlags
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICComponentInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(23BC3F0A-698B-4357-886B-F24D50671334)
|
|
]
|
|
interface IWICComponentInfo : IUnknown
|
|
{
|
|
HRESULT GetComponentType(
|
|
[out] WICComponentType *pType
|
|
);
|
|
|
|
HRESULT GetCLSID(
|
|
[out] CLSID *pclsid
|
|
);
|
|
|
|
HRESULT GetSigningStatus(
|
|
[out] DWORD * pStatus // WICComponentSigning flags
|
|
);
|
|
|
|
HRESULT GetAuthor(
|
|
[in] UINT cchAuthor,
|
|
[in, out, unique, size_is(cchAuthor)] WCHAR *wzAuthor,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetVendorGUID(
|
|
[out] GUID *pguidVendor
|
|
);
|
|
|
|
HRESULT GetVersion(
|
|
[in] UINT cchVersion,
|
|
[in, out, unique, size_is(cchVersion)] WCHAR *wzVersion,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetSpecVersion(
|
|
[in] UINT cchSpecVersion,
|
|
[in, out, unique, size_is(cchSpecVersion)] WCHAR *wzSpecVersion,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetFriendlyName(
|
|
[in] UINT cchFriendlyName,
|
|
[in, out, unique, size_is(cchFriendlyName)] WCHAR *wzFriendlyName,
|
|
[out] UINT *pcchActual
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICFormatConverterInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(9F34FB65-13F4-4f15-BC57-3726B5E53D9F)
|
|
]
|
|
interface IWICFormatConverterInfo : IWICComponentInfo
|
|
{
|
|
HRESULT GetPixelFormats(
|
|
[in] UINT cFormats,
|
|
[in, out, unique, size_is(cFormats)] WICPixelFormatGUID * pPixelFormatGUIDs,
|
|
[out] UINT *pcActual);
|
|
|
|
HRESULT CreateInstance(
|
|
[out] IWICFormatConverter **ppIConverter);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapCodecInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(E87A44C4-B76E-4c47-8B09-298EB12A2714)
|
|
]
|
|
interface IWICBitmapCodecInfo : IWICComponentInfo
|
|
{
|
|
HRESULT GetContainerFormat(
|
|
[out] GUID *pguidContainerFormat
|
|
);
|
|
|
|
HRESULT GetPixelFormats(
|
|
[in] UINT cFormats,
|
|
[in, out, unique, size_is(cFormats)] GUID *pguidPixelFormats,
|
|
[out] UINT *pcActual);
|
|
|
|
HRESULT GetColorManagementVersion(
|
|
[in] UINT cchColorManagementVersion,
|
|
[in, out, unique, size_is(cchColorManagementVersion)] WCHAR *wzColorManagementVersion,
|
|
[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 GetMimeTypes(
|
|
[in] UINT cchMimeTypes,
|
|
[in, out, unique, size_is(cchMimeTypes)] WCHAR *wzMimeTypes,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT GetFileExtensions(
|
|
[in] UINT cchFileExtensions,
|
|
[in, out, unique, size_is(cchFileExtensions)] WCHAR *wzFileExtensions,
|
|
[out] UINT *pcchActual
|
|
);
|
|
|
|
HRESULT DoesSupportAnimation(
|
|
[out] BOOL *pfSupportAnimation
|
|
);
|
|
|
|
HRESULT DoesSupportChromakey(
|
|
[out] BOOL *pfSupportChromakey
|
|
);
|
|
|
|
HRESULT DoesSupportLossless(
|
|
[out] BOOL *pfSupportLossless
|
|
);
|
|
|
|
HRESULT DoesSupportMultiframe(
|
|
[out] BOOL *pfSupportMultiframe
|
|
);
|
|
|
|
HRESULT MatchesMimeType(
|
|
[in] LPCWSTR wzMimeType,
|
|
[out] BOOL *pfMatches
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapEncoderInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(94C9B4EE-A09F-4f92-8A1E-4A9BCE7E76FB)
|
|
]
|
|
interface IWICBitmapEncoderInfo : IWICBitmapCodecInfo
|
|
{
|
|
HRESULT CreateInstance(
|
|
[out] IWICBitmapEncoder **ppIBitmapEncoder
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICBitmapDecoderInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(D8CD007F-D08F-4191-9BFC-236EA7F0E4B5)
|
|
]
|
|
interface IWICBitmapDecoderInfo : IWICBitmapCodecInfo
|
|
{
|
|
[local]
|
|
HRESULT GetPatterns(
|
|
[in] UINT cbSizePatterns,
|
|
[out, size_is(*pcPatterns), unique, annotation("__out_bcount_part_opt(cbSizePatterns, *pcbPatternsActual)")] WICBitmapPattern *pPatterns,
|
|
[out, unique, annotation("__inout_opt")] UINT *pcPatterns,
|
|
[out, annotation("__inout_opt")] UINT *pcbPatternsActual
|
|
);
|
|
|
|
[call_as(GetPatterns)]
|
|
HRESULT Remote_GetPatterns(
|
|
[out, size_is(, *pcPatterns)] WICBitmapPattern **ppPatterns,
|
|
[out] UINT *pcPatterns
|
|
);
|
|
|
|
HRESULT MatchesPattern(
|
|
[in] IStream *pIStream,
|
|
[out] BOOL *pfMatches
|
|
);
|
|
|
|
HRESULT CreateInstance(
|
|
[out] IWICBitmapDecoder **ppIBitmapDecoder
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICPixelFormatInfo
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(E8EDA601-3D48-431a-AB44-69059BE88BBE)
|
|
]
|
|
interface IWICPixelFormatInfo : IWICComponentInfo
|
|
{
|
|
HRESULT GetFormatGUID(
|
|
[out] GUID* pFormat
|
|
);
|
|
|
|
HRESULT GetColorContext(
|
|
[out] IWICColorContext **ppIColorContext
|
|
);
|
|
|
|
HRESULT GetBitsPerPixel(
|
|
[out] UINT *puiBitsPerPixel
|
|
);
|
|
|
|
HRESULT GetChannelCount(
|
|
[out] UINT *puiChannelCount
|
|
);
|
|
|
|
HRESULT GetChannelMask(
|
|
[in] UINT uiChannelIndex,
|
|
[in] UINT cbMaskBuffer,
|
|
[in, out, unique, size_is(cbMaskBuffer)] BYTE *pbMaskBuffer,
|
|
[out] UINT *pcbActual
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICPixelFormatInfo2
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(A9DB33A2-AF5F-43C7-B679-74F5984B5AA4)
|
|
]
|
|
interface IWICPixelFormatInfo2 : IWICPixelFormatInfo
|
|
{
|
|
HRESULT SupportsTransparency(
|
|
[out] BOOL *pfSupportsTransparency
|
|
);
|
|
|
|
HRESULT GetNumericRepresentation(
|
|
[out] WICPixelFormatNumericRepresentation *pNumericRepresentation
|
|
);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICImagingFactory
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(ec5ec8a9-c395-4314-9c77-54d7a935ff70)
|
|
]
|
|
interface IWICImagingFactory : IUnknown
|
|
{
|
|
HRESULT CreateDecoderFromFilename(
|
|
[in] LPCWSTR wzFilename,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[in] DWORD dwDesiredAccess,
|
|
[in] WICDecodeOptions metadataOptions,
|
|
[out, retval] IWICBitmapDecoder **ppIDecoder
|
|
);
|
|
|
|
HRESULT CreateDecoderFromStream(
|
|
[in] IStream *pIStream,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[in] WICDecodeOptions metadataOptions,
|
|
[out, retval] IWICBitmapDecoder **ppIDecoder
|
|
);
|
|
|
|
HRESULT CreateDecoderFromFileHandle(
|
|
[in] ULONG_PTR hFile,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[in] WICDecodeOptions metadataOptions,
|
|
[out, retval] IWICBitmapDecoder **ppIDecoder
|
|
);
|
|
|
|
HRESULT CreateComponentInfo(
|
|
[in] REFCLSID clsidComponent,
|
|
[out] IWICComponentInfo **ppIInfo
|
|
);
|
|
|
|
HRESULT CreateDecoder(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[out, retval] IWICBitmapDecoder **ppIDecoder
|
|
);
|
|
|
|
HRESULT CreateEncoder(
|
|
[in] REFGUID guidContainerFormat,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[out, retval] IWICBitmapEncoder **ppIEncoder
|
|
);
|
|
|
|
HRESULT CreatePalette(
|
|
[out] IWICPalette **ppIPalette
|
|
);
|
|
|
|
HRESULT CreateFormatConverter(
|
|
[out] IWICFormatConverter **ppIFormatConverter
|
|
);
|
|
|
|
HRESULT CreateBitmapScaler(
|
|
[out] IWICBitmapScaler **ppIBitmapScaler
|
|
);
|
|
|
|
HRESULT CreateBitmapClipper(
|
|
[out] IWICBitmapClipper **ppIBitmapClipper
|
|
);
|
|
|
|
HRESULT CreateBitmapFlipRotator(
|
|
[out] IWICBitmapFlipRotator **ppIBitmapFlipRotator
|
|
);
|
|
|
|
HRESULT CreateStream(
|
|
[out] IWICStream **ppIWICStream
|
|
);
|
|
|
|
HRESULT CreateColorContext(
|
|
[out] IWICColorContext **ppIWICColorContext
|
|
);
|
|
|
|
HRESULT CreateColorTransformer(
|
|
[out] IWICColorTransform **ppIWICColorTransform
|
|
);
|
|
|
|
/* Bitmap creation */
|
|
|
|
HRESULT CreateBitmap(
|
|
[in] UINT uiWidth,
|
|
[in] UINT uiHeight,
|
|
[in] REFWICPixelFormatGUID pixelFormat,
|
|
[in] WICBitmapCreateCacheOption option,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateBitmapFromSource(
|
|
[in] IWICBitmapSource *pIBitmapSource,
|
|
[in] WICBitmapCreateCacheOption option,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateBitmapFromSourceRect(
|
|
[in] IWICBitmapSource *pIBitmapSource,
|
|
[in] UINT x,
|
|
[in] UINT y,
|
|
[in] UINT width,
|
|
[in] UINT height,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateBitmapFromMemory(
|
|
[in] UINT uiWidth,
|
|
[in] UINT uiHeight,
|
|
[in] REFWICPixelFormatGUID pixelFormat,
|
|
[in] UINT cbStride,
|
|
[in] UINT cbBufferSize,
|
|
[in, size_is(cbBufferSize)] BYTE *pbBuffer,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateBitmapFromHBITMAP(
|
|
[in] HBITMAP hBitmap,
|
|
[in, unique] HPALETTE hPalette,
|
|
[in] WICBitmapAlphaChannelOption options,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateBitmapFromHICON(
|
|
[in] HICON hIcon,
|
|
[out] IWICBitmap **ppIBitmap
|
|
);
|
|
|
|
HRESULT CreateComponentEnumerator(
|
|
[in] DWORD componentTypes, /* WICComponentType */
|
|
[in] DWORD options, /* WICComponentEnumerateOptions */
|
|
[out] IEnumUnknown **ppIEnumUnknown
|
|
);
|
|
|
|
HRESULT CreateFastMetadataEncoderFromDecoder(
|
|
[in] IWICBitmapDecoder *pIDecoder,
|
|
[out] IWICFastMetadataEncoder **ppIFastEncoder
|
|
);
|
|
|
|
HRESULT CreateFastMetadataEncoderFromFrameDecode(
|
|
[in] IWICBitmapFrameDecode *pIFrameDecoder,
|
|
[out] IWICFastMetadataEncoder **ppIFastEncoder
|
|
);
|
|
|
|
HRESULT CreateQueryWriter(
|
|
[in] REFGUID guidMetadataFormat,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[out] IWICMetadataQueryWriter **ppIQueryWriter
|
|
);
|
|
|
|
HRESULT CreateQueryWriterFromReader(
|
|
[in] IWICMetadataQueryReader *pIQueryReader,
|
|
[in, unique] const GUID *pguidVendor,
|
|
[out] IWICMetadataQueryWriter **ppIQueryWriter
|
|
);
|
|
};
|
|
|
|
|
|
/*=========================================================================*\
|
|
APIs
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("HRESULT WINAPI WICConvertBitmapSource(" )
|
|
cpp_quote(" __in REFWICPixelFormatGUID dstFormat, // Destination pixel format" )
|
|
cpp_quote(" __in_ecount(1) IWICBitmapSource *pISrc, // Source bitmap" )
|
|
cpp_quote(" __deref_out_ecount(1) IWICBitmapSource **ppIDst // Destination bitmap, a copy or addrefed source" )
|
|
cpp_quote(" );" )
|
|
|
|
cpp_quote("HRESULT WINAPI WICCreateBitmapFromSection(" )
|
|
cpp_quote(" __in UINT width," )
|
|
cpp_quote(" __in UINT height," )
|
|
cpp_quote(" __in REFWICPixelFormatGUID pixelFormat," )
|
|
cpp_quote(" __in HANDLE hSection," )
|
|
cpp_quote(" __in UINT stride," )
|
|
cpp_quote(" __in UINT offset," )
|
|
cpp_quote(" __deref_out_ecount(1) IWICBitmap **ppIBitmap" )
|
|
cpp_quote(" );" )
|
|
|
|
cpp_quote("HRESULT WINAPI WICCreateBitmapFromSectionEx(" )
|
|
cpp_quote(" __in UINT width," )
|
|
cpp_quote(" __in UINT height," )
|
|
cpp_quote(" __in REFWICPixelFormatGUID pixelFormat," )
|
|
cpp_quote(" __in HANDLE hSection," )
|
|
cpp_quote(" __in UINT stride," )
|
|
cpp_quote(" __in UINT offset," )
|
|
cpp_quote(" __in WICSectionAccessLevel desiredAccessLevel," )
|
|
cpp_quote(" __deref_out_ecount(1) IWICBitmap **ppIBitmap" )
|
|
cpp_quote(" );" )
|
|
|
|
cpp_quote("HRESULT WINAPI WICMapGuidToShortName(")
|
|
cpp_quote(" __in_ecount(1) REFGUID guid,")
|
|
cpp_quote(" __in UINT cchName,")
|
|
cpp_quote(" __inout_ecount_opt(cchName) WCHAR *wzName,")
|
|
cpp_quote(" __out_ecount(1) UINT *pcchActual")
|
|
cpp_quote(" );")
|
|
|
|
cpp_quote("HRESULT WINAPI WICMapShortNameToGuid(")
|
|
cpp_quote(" __in_ecount(1) const WCHAR *wzName,")
|
|
cpp_quote(" __out_ecount(1) GUID *pguid")
|
|
cpp_quote(" );")
|
|
|
|
cpp_quote("HRESULT WINAPI WICMapSchemaToName(")
|
|
cpp_quote(" __in_ecount(1) REFGUID guidMetadataFormat,")
|
|
cpp_quote(" __in_ecount(1) LPWSTR pwzSchema,")
|
|
cpp_quote(" __in UINT cchName,")
|
|
cpp_quote(" __inout_ecount_opt(cchName) WCHAR *wzName,")
|
|
cpp_quote(" __out_ecount(1) UINT *pcchActual")
|
|
cpp_quote(" );")
|
|
|
|
|
|
/*=========================================================================*\
|
|
Errors
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("#define FACILITY_WINCODEC_ERR 0x898")
|
|
cpp_quote("#define WINCODEC_ERR_BASE 0x2000")
|
|
|
|
cpp_quote("#define MAKE_WINCODECHR(sev, code) MAKE_HRESULT(sev, FACILITY_WINCODEC_ERR, (WINCODEC_ERR_BASE + code))")
|
|
cpp_quote("#define MAKE_WINCODECHR_ERR(code) MAKE_WINCODECHR(1, code)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_GENERIC_ERROR E_FAIL")
|
|
cpp_quote("#define WINCODEC_ERR_INVALIDPARAMETER E_INVALIDARG")
|
|
cpp_quote("#define WINCODEC_ERR_OUTOFMEMORY E_OUTOFMEMORY")
|
|
cpp_quote("#define WINCODEC_ERR_NOTIMPLEMENTED E_NOTIMPL")
|
|
cpp_quote("#define WINCODEC_ERR_ABORTED E_ABORT")
|
|
cpp_quote("#define WINCODEC_ERR_ACCESSDENIED E_ACCESSDENIED")
|
|
cpp_quote("#define WINCODEC_ERR_VALUEOVERFLOW INTSAFE_E_ARITHMETIC_OVERFLOW")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_WRONGSTATE MAKE_WINCODECHR_ERR(0xf04)")
|
|
cpp_quote("#define WINCODEC_ERR_VALUEOUTOFRANGE MAKE_WINCODECHR_ERR(0xf05)")
|
|
cpp_quote("#define WINCODEC_ERR_UNKNOWNIMAGEFORMAT MAKE_WINCODECHR_ERR(0xf07)")
|
|
cpp_quote("#define WINCODEC_ERR_UNSUPPORTEDVERSION MAKE_WINCODECHR_ERR(0xf0B)")
|
|
cpp_quote("#define WINCODEC_ERR_NOTINITIALIZED MAKE_WINCODECHR_ERR(0xf0C)")
|
|
cpp_quote("#define WINCODEC_ERR_ALREADYLOCKED MAKE_WINCODECHR_ERR(0xf0D)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_PROPERTYNOTFOUND MAKE_WINCODECHR_ERR(0xf40)")
|
|
cpp_quote("#define WINCODEC_ERR_PROPERTYNOTSUPPORTED MAKE_WINCODECHR_ERR(0xf41)")
|
|
cpp_quote("#define WINCODEC_ERR_PROPERTYSIZE MAKE_WINCODECHR_ERR(0xf42)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_CODECPRESENT MAKE_WINCODECHR_ERR(0xf43)")
|
|
cpp_quote("#define WINCODEC_ERR_CODECNOTHUMBNAIL MAKE_WINCODECHR_ERR(0xf44)")
|
|
cpp_quote("#define WINCODEC_ERR_PALETTEUNAVAILABLE MAKE_WINCODECHR_ERR(0xf45)")
|
|
cpp_quote("#define WINCODEC_ERR_CODECTOOMANYSCANLINES MAKE_WINCODECHR_ERR(0xf46)")
|
|
cpp_quote("#define WINCODEC_ERR_INTERNALERROR MAKE_WINCODECHR_ERR(0xf48)")
|
|
cpp_quote("#define WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS MAKE_WINCODECHR_ERR(0xf49)")
|
|
cpp_quote("#define WINCODEC_ERR_COMPONENTNOTFOUND MAKE_WINCODECHR_ERR(0xf50)")
|
|
cpp_quote("#define WINCODEC_ERR_IMAGESIZEOUTOFRANGE MAKE_WINCODECHR_ERR(0xf51)")
|
|
cpp_quote("#define WINCODEC_ERR_TOOMUCHMETADATA MAKE_WINCODECHR_ERR(0xf52)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_BADIMAGE MAKE_WINCODECHR_ERR(0xf60)")
|
|
cpp_quote("#define WINCODEC_ERR_BADHEADER MAKE_WINCODECHR_ERR(0xf61)")
|
|
cpp_quote("#define WINCODEC_ERR_FRAMEMISSING MAKE_WINCODECHR_ERR(0xf62)")
|
|
cpp_quote("#define WINCODEC_ERR_BADMETADATAHEADER MAKE_WINCODECHR_ERR(0xf63)")
|
|
cpp_quote("#define WINCODEC_ERR_BADSTREAMDATA MAKE_WINCODECHR_ERR(0xf70)")
|
|
cpp_quote("#define WINCODEC_ERR_STREAMWRITE MAKE_WINCODECHR_ERR(0xf71)")
|
|
cpp_quote("#define WINCODEC_ERR_STREAMREAD MAKE_WINCODECHR_ERR(0xf72)")
|
|
cpp_quote("#define WINCODEC_ERR_STREAMNOTAVAILABLE MAKE_WINCODECHR_ERR(0xf73)")
|
|
cpp_quote("#define WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT MAKE_WINCODECHR_ERR(0xf80)")
|
|
cpp_quote("#define WINCODEC_ERR_UNSUPPORTEDOPERATION MAKE_WINCODECHR_ERR(0xf81)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_INVALIDREGISTRATION MAKE_WINCODECHR_ERR(0xf8A)")
|
|
cpp_quote("#define WINCODEC_ERR_COMPONENTINITIALIZEFAILURE MAKE_WINCODECHR_ERR(0xf8B)")
|
|
cpp_quote("#define WINCODEC_ERR_INSUFFICIENTBUFFER MAKE_WINCODECHR_ERR(0xf8C)")
|
|
cpp_quote("#define WINCODEC_ERR_DUPLICATEMETADATAPRESENT MAKE_WINCODECHR_ERR(0xf8D)")
|
|
cpp_quote("#define WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE MAKE_WINCODECHR_ERR(0xf8E)")
|
|
cpp_quote("#define WINCODEC_ERR_UNEXPECTEDSIZE MAKE_WINCODECHR_ERR(0xf8F)")
|
|
|
|
cpp_quote("#define WINCODEC_ERR_INVALIDQUERYREQUEST MAKE_WINCODECHR_ERR(0xf90)")
|
|
cpp_quote("#define WINCODEC_ERR_UNEXPECTEDMETADATATYPE MAKE_WINCODECHR_ERR(0xf91)")
|
|
cpp_quote("#define WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT MAKE_WINCODECHR_ERR(0xf92)")
|
|
cpp_quote("#define WINCODEC_ERR_INVALIDQUERYCHARACTER MAKE_WINCODECHR_ERR(0xf93)")
|
|
cpp_quote("#define WINCODEC_ERR_WIN32ERROR MAKE_WINCODECHR_ERR(0xf94)")
|
|
cpp_quote("#define WINCODEC_ERR_INVALIDPROGRESSIVELEVEL MAKE_WINCODECHR_ERR(0xf95)")
|
|
|
|
|
|
/*=========================================================================*\
|
|
Parameter Structures
|
|
\*=========================================================================*/
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICTiffCompressionOption
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICTiffCompressionOption
|
|
{
|
|
WICTiffCompressionDontCare = 0x00000000,
|
|
WICTiffCompressionNone = 0x00000001,
|
|
WICTiffCompressionCCITT3 = 0x00000002,
|
|
WICTiffCompressionCCITT4 = 0x00000003,
|
|
WICTiffCompressionLZW = 0x00000004,
|
|
WICTiffCompressionRLE = 0x00000005,
|
|
WICTiffCompressionZIP = 0x00000006,
|
|
WICTiffCompressionLZWHDifferencing = 0x00000007,
|
|
WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICTiffCompressionOption;
|
|
|
|
/*=========================================================================*\
|
|
WICJpegYCrCbSubsamplingOption
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICJpegYCrCbSubsamplingOption
|
|
{
|
|
WICJpegYCrCbSubsamplingDefault = 0x00000000,
|
|
WICJpegYCrCbSubsampling420 = 0x00000001,
|
|
WICJpegYCrCbSubsampling422 = 0x00000002,
|
|
WICJpegYCrCbSubsampling444 = 0x00000003,
|
|
WICJPEGYCRCBSUBSAMPLING_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICJpegYCrCbSubsamplingOption;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICPngFilterOption
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICPngFilterOption
|
|
{
|
|
WICPngFilterUnspecified = 0x00000000,
|
|
WICPngFilterNone = 0x00000001,
|
|
WICPngFilterSub = 0x00000002,
|
|
WICPngFilterUp = 0x00000003,
|
|
WICPngFilterAverage = 0x00000004,
|
|
WICPngFilterPaeth = 0x00000005,
|
|
WICPngFilterAdaptive = 0x00000006,
|
|
WICPNGFILTEROPTION_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICPngFilterOption;
|
|
|
|
|
|
/*=========================================================================*\
|
|
Raw Structures and Interfaces
|
|
\*=========================================================================*/
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICNamedWhitePoint
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICNamedWhitePoint
|
|
{
|
|
WICWhitePointDefault = 0x00000001,
|
|
WICWhitePointDaylight = 0x00000002,
|
|
WICWhitePointCloudy = 0x00000004,
|
|
WICWhitePointShade = 0x00000008,
|
|
WICWhitePointTungsten = 0x00000010,
|
|
WICWhitePointFluorescent = 0x00000020,
|
|
WICWhitePointFlash = 0x00000040,
|
|
WICWhitePointUnderwater = 0x00000080,
|
|
WICWhitePointCustom = 0x00000100, // when using a picture (grey-card) as white-balance
|
|
WICWhitePointAutoWhiteBalance = 0x00000200,
|
|
WICWhitePointAsShot = WICWhitePointDefault,
|
|
WICNAMEDWHITEPOINT_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICNamedWhitePoint;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawCapabilities
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICRawCapabilities
|
|
{
|
|
WICRawCapabilityNotSupported = 0x00000000,
|
|
WICRawCapabilityGetSupported = 0x00000001,
|
|
WICRawCapabilityFullySupported = 0x00000002, // Get & Set supported
|
|
WICRAWCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICRawCapabilities;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawRotationCapabilities
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICRawRotationCapabilities
|
|
{
|
|
WICRawRotationCapabilityNotSupported = 0x00000000,
|
|
WICRawRotationCapabilityGetSupported = 0x00000001,
|
|
WICRawRotationCapabilityNinetyDegreesSupported = 0x00000002, // Get & Set supported. Only multiple of 90 degree angles supported.
|
|
WICRawRotationCapabilityFullySupported = 0x00000003, // Get & Set supported. Any rotation angle supported.
|
|
WICRAWROTATIONCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICRawRotationCapabilities;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawCapabilitesInfo
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] struct WICRawCapabilitiesInfo
|
|
{
|
|
UINT cbSize;
|
|
UINT CodecMajorVersion;
|
|
UINT CodecMinorVersion;
|
|
WICRawCapabilities ExposureCompensationSupport;
|
|
WICRawCapabilities ContrastSupport;
|
|
WICRawCapabilities RGBWhitePointSupport;
|
|
WICRawCapabilities NamedWhitePointSupport;
|
|
UINT NamedWhitePointSupportMask;
|
|
WICRawCapabilities KelvinWhitePointSupport;
|
|
WICRawCapabilities GammaSupport;
|
|
WICRawCapabilities TintSupport;
|
|
WICRawCapabilities SaturationSupport;
|
|
WICRawCapabilities SharpnessSupport;
|
|
WICRawCapabilities NoiseReductionSupport;
|
|
WICRawCapabilities DestinationColorProfileSupport;
|
|
WICRawCapabilities ToneCurveSupport;
|
|
WICRawRotationCapabilities RotationSupport;
|
|
WICRawCapabilities RenderModeSupport;
|
|
} WICRawCapabilitiesInfo;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawParameterSet
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICRawParameterSet
|
|
{
|
|
WICAsShotParameterSet = 0x00000001,
|
|
WICUserAdjustedParameterSet = 0x00000002,
|
|
WICAutoAdjustedParameterSet = 0x00000003,
|
|
WICRAWPARAMETERSET_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICRawParameterSet;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawRenderMode
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] enum WICRawRenderMode
|
|
{
|
|
WICRawRenderModeDraft = 0x00000001, // Favor speed over quality
|
|
WICRawRenderModeNormal = 0x00000002, // Balance speed with quality
|
|
WICRawRenderModeBestQuality = 0x00000003, // Favor quality over speed
|
|
WICRAWRENDERMODE_FORCE_DWORD = CODEC_FORCE_DWORD
|
|
} WICRawRenderMode;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawToneCurvePoint
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] struct WICRawToneCurvePoint
|
|
{
|
|
double Input;
|
|
double Output;
|
|
} WICRawToneCurvePoint;
|
|
|
|
|
|
/*=========================================================================*\
|
|
WICRawToneCurve
|
|
\*=========================================================================*/
|
|
|
|
typedef [public] struct WICRawToneCurve
|
|
{
|
|
UINT cPoints;
|
|
WICRawToneCurvePoint aPoints[1];
|
|
} WICRawToneCurve;
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICDevelopRawNotificationCallback
|
|
\*=========================================================================*/
|
|
|
|
cpp_quote("#define WICRawChangeNotification_ExposureCompensation 0x00000001")
|
|
cpp_quote("#define WICRawChangeNotification_NamedWhitePoint 0x00000002")
|
|
cpp_quote("#define WICRawChangeNotification_KelvinWhitePoint 0x00000004")
|
|
cpp_quote("#define WICRawChangeNotification_RGBWhitePoint 0x00000008")
|
|
cpp_quote("#define WICRawChangeNotification_Contrast 0x00000010")
|
|
cpp_quote("#define WICRawChangeNotification_Gamma 0x00000020")
|
|
cpp_quote("#define WICRawChangeNotification_Sharpness 0x00000040")
|
|
cpp_quote("#define WICRawChangeNotification_Saturation 0x00000080")
|
|
cpp_quote("#define WICRawChangeNotification_Tint 0x00000100")
|
|
cpp_quote("#define WICRawChangeNotification_NoiseReduction 0x00000200")
|
|
cpp_quote("#define WICRawChangeNotification_DestinationColorContext 0x00000400")
|
|
cpp_quote("#define WICRawChangeNotification_ToneCurve 0x00000800")
|
|
cpp_quote("#define WICRawChangeNotification_Rotation 0x00001000")
|
|
cpp_quote("#define WICRawChangeNotification_RenderMode 0x00002000")
|
|
|
|
[
|
|
object,
|
|
uuid(95c75a6e-3e8c-4ec2-85a8-aebcc551e59b)
|
|
]
|
|
interface IWICDevelopRawNotificationCallback : IUnknown
|
|
{
|
|
// Called when one of the parameters in IWICDevelopRaw gets changed or updated.
|
|
// Notification mask is a bitmask constructed from the WICRawChangeNotification_*
|
|
// values to specify which parameter(s) changed. Return S_OK if the notification
|
|
// is handled, or a descriptive error if not.
|
|
|
|
HRESULT Notify([in] UINT NotificationMask);
|
|
}
|
|
|
|
|
|
/*=========================================================================*\
|
|
IWICDevelopRaw - Raw Develop
|
|
\*=========================================================================*/
|
|
|
|
[
|
|
object,
|
|
uuid(fbec5e44-f7be-4b65-b7f8-c0c81fef026d)
|
|
]
|
|
interface IWICDevelopRaw : IWICBitmapFrameDecode
|
|
{
|
|
// Return the set of supported capabilities for this raw file
|
|
|
|
[local]
|
|
HRESULT QueryRawCapabilitiesInfo(
|
|
[in, out] WICRawCapabilitiesInfo *pInfo
|
|
);
|
|
|
|
[call_as(QueryRawCapabilitiesInfo)]
|
|
HRESULT Remote_QueryRawCapabilitiesInfo(
|
|
[in, out] WICRawCapabilitiesInfo *pInfo
|
|
);
|
|
|
|
|
|
// Load the desired parameter set as the current
|
|
// working parameter set
|
|
|
|
HRESULT LoadParameterSet(
|
|
[in] WICRawParameterSet ParameterSet
|
|
);
|
|
|
|
// Get an IPropertyBag2 that contains the current
|
|
// parameters to hand off to the encoder for saving
|
|
|
|
HRESULT GetCurrentParameterSet(
|
|
[out] IPropertyBag2 **ppCurrentParameterSet
|
|
);
|
|
|
|
// Set/Get the exposure compensation desired for final output
|
|
// Valid range for ev is -5.0 to +5.0 (stops)
|
|
|
|
HRESULT SetExposureCompensation(
|
|
[in] double ev
|
|
);
|
|
|
|
HRESULT GetExposureCompensation(
|
|
[out] double *pEV
|
|
);
|
|
|
|
// Get/Set the white point as an RGB value.
|
|
|
|
HRESULT SetWhitePointRGB(
|
|
[in] UINT Red,
|
|
[in] UINT Green,
|
|
[in] UINT Blue
|
|
);
|
|
|
|
HRESULT GetWhitePointRGB(
|
|
[out] UINT *pRed,
|
|
[out] UINT *pGreen,
|
|
[out] UINT *pBlue
|
|
);
|
|
|
|
// Set/Get white point as a preset named value
|
|
|
|
HRESULT SetNamedWhitePoint(
|
|
[in] WICNamedWhitePoint WhitePoint
|
|
);
|
|
|
|
HRESULT GetNamedWhitePoint(
|
|
[out] WICNamedWhitePoint *pWhitePoint
|
|
);
|
|
|
|
// Set the white point in kelvin
|
|
// Defined max range is 1,500 - 30,000
|
|
|
|
HRESULT SetWhitePointKelvin(
|
|
[in] UINT WhitePointKelvin
|
|
);
|
|
|
|
HRESULT GetWhitePointKelvin(
|
|
[out] UINT *pWhitePointKelvin
|
|
);
|
|
|
|
HRESULT GetKelvinRangeInfo(
|
|
[out] UINT *pMinKelvinTemp,
|
|
[out] UINT *pMaxKelvinTemp,
|
|
[out] UINT *pKelvinTempStepValue
|
|
);
|
|
|
|
// Set/Get the amount of contrast to apply to the final output
|
|
// Valid range for Contrast is -1.0 to 1.0.
|
|
|
|
HRESULT SetContrast(
|
|
[in] double Contrast
|
|
);
|
|
|
|
HRESULT GetContrast(
|
|
[out] double *pContrast
|
|
);
|
|
|
|
// Set/Get the gamma to use for output pixels
|
|
// Valid range for Gamma is 0.0 to 5.0, with 1.0 being
|
|
// the default.
|
|
|
|
HRESULT SetGamma(
|
|
[in] double Gamma
|
|
);
|
|
|
|
HRESULT GetGamma(
|
|
[out] double *pGamma
|
|
);
|
|
|
|
// Set/Get the sharpness of the final output.
|
|
// Valid range is 0.0 to 1.0. 0.0 is no sharpening
|
|
// applied to the image at all, 1.0 is full/most allowed sharpening
|
|
|
|
HRESULT SetSharpness(
|
|
[in] double Sharpness
|
|
);
|
|
|
|
HRESULT GetSharpness(
|
|
[out] double *pSharpness
|
|
);
|
|
|
|
// Set/Get saturation of the final output
|
|
// Valid range is -1.0 to 1.0. -1.0 is full
|
|
// de-saturation, 1.0 is full saturation.
|
|
|
|
HRESULT SetSaturation(
|
|
[in] double Saturation
|
|
);
|
|
|
|
HRESULT GetSaturation(
|
|
[out] double *pSaturation
|
|
);
|
|
|
|
// Set/Get the tint of the final output
|
|
// Valid range is -1.0 to +1.0. Scale is defined as orthogonal to color
|
|
// temperature. (Green/Magenta bias)
|
|
|
|
HRESULT SetTint(
|
|
[in] double Tint
|
|
);
|
|
|
|
HRESULT GetTint(
|
|
[out] double *pTint
|
|
);
|
|
|
|
// Set/Get noise reduction of the final output
|
|
// Valid range is 0.0 to 1.0. 0.0 is no noise
|
|
// reduction applied. 1.0 is full/most allowed noise
|
|
// reduction applied.
|
|
|
|
HRESULT SetNoiseReduction(
|
|
[in] double NoiseReduction
|
|
);
|
|
|
|
HRESULT GetNoiseReduction(
|
|
[out] double *pNoiseReduction
|
|
);
|
|
|
|
// Set desired color profile of final output. You can
|
|
// get the color context via IWICBitmapFrameDecode::GetColorContext()
|
|
|
|
HRESULT SetDestinationColorContext(
|
|
[in, unique] IWICColorContext *pColorContext
|
|
);
|
|
|
|
// Set/Get the tone curve to use for final output.
|
|
// Assume linear interpolation between points.
|
|
|
|
[local]
|
|
HRESULT SetToneCurve(
|
|
[in] UINT cbToneCurveSize,
|
|
[in, annotation("__in_bcount(cbToneCurveSize)")] const WICRawToneCurve *pToneCurve
|
|
);
|
|
|
|
[call_as(SetToneCurve)]
|
|
HRESULT Remote_SetToneCurve(
|
|
[in] UINT cPoints,
|
|
[in, size_is(cPoints)] const WICRawToneCurvePoint *aPoints
|
|
);
|
|
|
|
// Get the tone curve currently in use. To get the required
|
|
// size of the buffer, pass in NULL for the pToneCurve parameter
|
|
// and *pcbActualToneCurveBufferSize will contain the required size upon
|
|
// exit.
|
|
|
|
[local]
|
|
HRESULT GetToneCurve(
|
|
[in] UINT cbToneCurveBufferSize,
|
|
[out, unique, annotation("__out_bcount_part_opt(cbToneCurveBufferSize, *pcbActualToneCurveBufferSize)")] WICRawToneCurve *pToneCurve,
|
|
[out, unique, annotation("__inout_opt")] UINT *pcbActualToneCurveBufferSize
|
|
);
|
|
|
|
[call_as(GetToneCurve)]
|
|
HRESULT Remote_GetToneCurve(
|
|
[out] UINT * pcPoints,
|
|
[out, size_is(, *pcPoints)] WICRawToneCurvePoint **paPoints
|
|
);
|
|
|
|
// Set the desired rotation angle of the output of CopyPixels.
|
|
// The parameter pRotation is in units of degrees and the sign is positive
|
|
// clockwise. So a rotation of 90.0 would be a rotation of 90 degrees
|
|
// clockwise (data along the left side of the sensor would be rendered on
|
|
// the top rows of the output image.
|
|
|
|
HRESULT SetRotation([in] double Rotation);
|
|
|
|
// Gets the current rotation angle used for CopyPixels.
|
|
|
|
HRESULT GetRotation([out] double *pRotation);
|
|
|
|
// Set the desired render mode for CopyPixels
|
|
|
|
HRESULT SetRenderMode([in] WICRawRenderMode RenderMode);
|
|
|
|
// Get the current render mode used for CopyPixels
|
|
|
|
HRESULT GetRenderMode([out] WICRawRenderMode *pRenderMode);
|
|
|
|
// Set the callback function to call when parameters change
|
|
|
|
HRESULT SetNotificationCallback([in, unique] IWICDevelopRawNotificationCallback *pCallback);
|
|
};
|
|
|