1 module directx.wincodec;
2
3 version(Windows):
4
5 public import directx.dxgiformat, directx.dxgitype;
6 public import directx.dcommon, directx.com;
7
8 import directx.d2d1 : ID2D1Image;
9 import directx.d2d1_1 : ID2D1Device;
10 import core.sys.windows.wtypes;
11 import core.sys.windows.ocidl, core.sys.windows.oaidl, core.sys.windows.objidl;
12
13 enum WINCODEC_SDK_VERSION1 = 0x0236;
14 enum WINCODEC_SDK_VERSION2 = 0x0237;
15 // const GUID CLSID_WICImagingFactory = { 0xcacaf262, 0x9370, 0x4615, [0xa1, 0x3b, 0x9f, 0x55, 0x39, 0xda, 0x4c, 0xa] };
16 const GUID CLSID_WICImagingFactory1 = { 0xcacaf262, 0x9370, 0x4615, [0xa1, 0x3b, 0x9f, 0x55, 0x39, 0xda, 0x4c, 0xa] };
17 const GUID CLSID_WICImagingFactory2 = { 0x317d06e8, 0x5f24, 0x433d, [0xbd, 0xf7, 0x79, 0xce, 0x68, 0xd8, 0xab, 0xc2] };
18 // #if(_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
19 enum WINCODEC_SDK_VERSION = WINCODEC_SDK_VERSION2;
20 const CLSID_WICImagingFactory = CLSID_WICImagingFactory2;
21 // #else
22 // enum WINCODEC_SDK_VERSION WINCODEC_SDK_VERSION1
23 // #endif
24 const GUID GUID_VendorMicrosoft = { 0xf0e749ca, 0xedef, 0x4589, [0xa7, 0x3a, 0xee, 0xe, 0x62, 0x6a, 0x2a, 0x2b] };
25 const GUID GUID_VendorMicrosoftBuiltIn = { 0x257a30fd, 0x6b6, 0x462b, [0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33] };
26 // const GUID CLSID_WICPngDecoder = { 0x389ea17b, 0x5078, 0x4cde, [0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51] };
27 const GUID CLSID_WICPngDecoder1 = { 0x389ea17b, 0x5078, 0x4cde, [0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51] };
28 const GUID CLSID_WICPngDecoder2 = { 0xe018945b, 0xaa86, 0x4008, [0x9b, 0xd4, 0x67, 0x77, 0xa1, 0xe4, 0x0c, 0x11] };
29 // #if(_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
30 const CLSID_WICPngDecoder = CLSID_WICPngDecoder2;
31 // #endif
32 const GUID CLSID_WICBmpDecoder = { 0x6b462062, 0x7cbf, 0x400d, [0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0x0f, 0x27, 0x78] };
33 const GUID CLSID_WICIcoDecoder = { 0xc61bfcdf, 0x2e0f, 0x4aad, [0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe] };
34 const GUID CLSID_WICJpegDecoder = { 0x9456a480, 0xe88b, 0x43ea, [0x9e, 0x73, 0x0b, 0x2d, 0x9b, 0x71, 0xb1, 0xca] };
35 const GUID CLSID_WICGifDecoder = { 0x381dda3c, 0x9ce9, 0x4834, [0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe] };
36 const GUID CLSID_WICTiffDecoder = { 0xb54e85d9, 0xfe23, 0x499f, [0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b] };
37 const GUID CLSID_WICWmpDecoder = { 0xa26cec36, 0x234c, 0x4950, [0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d] };
38 const GUID CLSID_WICDdsDecoder = { 0x9053699f, 0xa341, 0x429d, [0x9e, 0x90, 0xee, 0x43, 0x7c, 0xf8, 0x0c, 0x73] };
39 const GUID CLSID_WICBmpEncoder = { 0x69be8bb4, 0xd66d, 0x47c8, [0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82] };
40 const GUID CLSID_WICPngEncoder = { 0x27949969, 0x876a, 0x41d7, [0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc] };
41 const GUID CLSID_WICJpegEncoder = { 0x1a34f5c1, 0x4a5a, 0x46dc, [0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76] };
42 const GUID CLSID_WICGifEncoder = { 0x114f5598, 0x0b22, 0x40a0, [0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd] };
43 const GUID CLSID_WICTiffEncoder = { 0x0131be10, 0x2001, 0x4c5f, [0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8] };
44 const GUID CLSID_WICWmpEncoder = { 0xac4ce3cb, 0xe1c1, 0x44cd, [0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2] };
45 const GUID CLSID_WICDdsEncoder = { 0xa61dde94, 0x66ce, 0x4ac1, [0x88, 0x1b, 0x71, 0x68, 0x05, 0x88, 0x89, 0x5e] };
46 const GUID CLSID_WICAdngDecoder = { 0x981d9411, 0x909e, 0x42a7, [0x8f, 0x5d, 0xa7, 0x47, 0xff, 0x05, 0x2e, 0xdb] };
47 const GUID CLSID_WICJpegQualcommPhoneEncoder = { 0x68ed5c62, 0xf534, 0x4979, [0xb2, 0xb3, 0x68, 0x6a, 0x12, 0xb2, 0xb3, 0x4c] };
48 const GUID GUID_ContainerFormatBmp = { 0x0af1d87e, 0xfcfe, 0x4188, [0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3] };
49 const GUID GUID_ContainerFormatPng = { 0x1b7cfaf4, 0x713f, 0x473c, [0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf] };
50 const GUID GUID_ContainerFormatIco = { 0xa3a860c4, 0x338f, 0x4c17, [0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21] };
51 const GUID GUID_ContainerFormatJpeg = { 0x19e4a5aa, 0x5662, 0x4fc5, [0xa0, 0xc0, 0x17, 0x58, 0x02, 0x8e, 0x10, 0x57] };
52 const GUID GUID_ContainerFormatTiff = { 0x163bcc30, 0xe2e9, 0x4f0b, [0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3] };
53 const GUID GUID_ContainerFormatGif = { 0x1f8a5601, 0x7d4d, 0x4cbd, [0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5] };
54 const GUID GUID_ContainerFormatWmp = { 0x57a37caa, 0x367a, 0x4540, [0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b] };
55 const GUID GUID_ContainerFormatDds = { 0x9967cb95, 0x2e85, 0x4ac8, [0x8c, 0xa2, 0x83, 0xd7, 0xcc, 0xd4, 0x25, 0xc9] };
56 const GUID GUID_ContainerFormatAdng = { 0xf3ff6d0d, 0x38c0, 0x41c4, [0xb1, 0xfe, 0x1f, 0x38, 0x24, 0xf1, 0x7b, 0x84] };
57 const GUID CLSID_WICImagingCategories = { 0xfae3d380, 0xfea4, 0x4623, [0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81] };
58 const GUID CATID_WICBitmapDecoders = { 0x7ed96837, 0x96f0, 0x4812, [0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3] };
59 const GUID CATID_WICBitmapEncoders = { 0xac757296, 0x3522, 0x4e11, [0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e] };
60 const GUID CATID_WICPixelFormats = { 0x2b46e70f, 0xcda7, 0x473e, [0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b] };
61 const GUID CATID_WICFormatConverters = { 0x7835eae8, 0xbf14, 0x49d1, [0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48] };
62 const GUID CATID_WICMetadataReader = { 0x05af94d8, 0x7174, 0x4cd2, [0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8] };
63 const GUID CATID_WICMetadataWriter = { 0xabe3b9a4, 0x257d, 0x4b97, [0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e] };
64 const GUID CLSID_WICDefaultFormatConverter = { 0x1a3f11dc, 0xb514, 0x4b17, [0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1] };
65 const GUID CLSID_WICFormatConverterHighColor = { 0xac75d454, 0x9f37, 0x48f8, [0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11] };
66 const GUID CLSID_WICFormatConverterNChannel = { 0xc17cabb2, 0xd4a3, 0x47d7, [0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1] };
67 const GUID CLSID_WICFormatConverterWMPhoto = { 0x9cb5172b, 0xd600, 0x46ba, [0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9] };
68 const GUID CLSID_WICPlanarFormatConverter = { 0x184132b8, 0x32f8, 0x4784, [0x91, 0x31, 0xdd, 0x72, 0x24, 0xb2, 0x34, 0x38] };
69
70 alias WICColor = UINT32;
71
72 /* [public] */ struct WICRect
73 {
74 INT X;
75 INT Y;
76 INT Width;
77 INT Height;
78 }
79
80 alias WICInProcPointer = BYTE*;
81 /* [public] */
82 alias WICColorContextType = uint;
83 enum : WICColorContextType
84 {
85 WICColorContextUninitialized = 0,
86 WICColorContextProfile = 0x1,
87 WICColorContextExifColorSpace = 0x2
88 }
89
90 enum WIC_JPEG_MAX_COMPONENT_COUNT = 4;
91
92 enum WIC_JPEG_MAX_TABLE_INDEX = 3;
93
94 enum WIC_JPEG_SAMPLE_FACTORS_ONE = 0x11;
95
96 enum WIC_JPEG_SAMPLE_FACTORS_THREE_420 = 0x111122;
97
98 enum WIC_JPEG_SAMPLE_FACTORS_THREE_422 = 0x111121;
99
100 enum WIC_JPEG_SAMPLE_FACTORS_THREE_440 = 0x111112;
101
102 enum WIC_JPEG_SAMPLE_FACTORS_THREE_444 = 0x111111;
103
104 enum WIC_JPEG_QUANTIZATION_BASELINE_ONE = 0;
105
106 enum WIC_JPEG_QUANTIZATION_BASELINE_THREE = 0x10100;
107
108 enum WIC_JPEG_HUFFMAN_BASELINE_ONE = 0;
109
110 enum WIC_JPEG_HUFFMAN_BASELINE_THREE = 0x111100;
111
112 /* [public] */ alias REFWICPixelFormatGUID = REFGUID;
113
114 /* [public] */ alias WICPixelFormatGUID = GUID;
115
116 enum GUID_WICPixelFormatUndefined = GUID_WICPixelFormatDontCare;
117 const GUID GUID_WICPixelFormatDontCare = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00] };
118 const GUID GUID_WICPixelFormat1bppIndexed = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01] };
119 const GUID GUID_WICPixelFormat2bppIndexed = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02] };
120 const GUID GUID_WICPixelFormat4bppIndexed = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03] };
121 const GUID GUID_WICPixelFormat8bppIndexed = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04] };
122 const GUID GUID_WICPixelFormatBlackWhite = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05] };
123 const GUID GUID_WICPixelFormat2bppGray = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06] };
124 const GUID GUID_WICPixelFormat4bppGray = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07] };
125 const GUID GUID_WICPixelFormat8bppGray = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08] };
126 const GUID GUID_WICPixelFormat8bppAlpha = { 0xe6cd0116, 0xeeba, 0x4161, [0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95] };
127 const GUID GUID_WICPixelFormat16bppBGR555 = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09] };
128 const GUID GUID_WICPixelFormat16bppBGR565 = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a] };
129 const GUID GUID_WICPixelFormat16bppBGRA5551 = { 0x05ec7c2b, 0xf1e6, 0x4961, [0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2] };
130 const GUID GUID_WICPixelFormat16bppGray = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b] };
131 const GUID GUID_WICPixelFormat24bppBGR = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c] };
132 const GUID GUID_WICPixelFormat24bppRGB = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d] };
133 const GUID GUID_WICPixelFormat32bppBGR = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e] };
134 const GUID GUID_WICPixelFormat32bppBGRA = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f] };
135 const GUID GUID_WICPixelFormat32bppPBGRA = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10] };
136 const GUID GUID_WICPixelFormat32bppGrayFloat = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11] };
137 // #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
138 const GUID GUID_WICPixelFormat32bppRGB = { 0xd98c6b95, 0x3efe, 0x47d6, [0xbb, 0x25, 0xeb, 0x17, 0x48, 0xab, 0x0c, 0xf1] };
139 // #endif
140 const GUID GUID_WICPixelFormat32bppRGBA = { 0xf5c7ad2d, 0x6a8d, 0x43dd, [0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9] };
141 const GUID GUID_WICPixelFormat32bppPRGBA = { 0x3cc4a650, 0xa527, 0x4d37, [0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba] };
142 const GUID GUID_WICPixelFormat48bppRGB = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15] };
143 const GUID GUID_WICPixelFormat48bppBGR = { 0xe605a384, 0xb468, 0x46ce, [0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13] };
144 // #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
145 const GUID GUID_WICPixelFormat64bppRGB = { 0xa1182111, 0x186d, 0x4d42, [0xbc, 0x6a, 0x9c, 0x83, 0x03, 0xa8, 0xdf, 0xf9] };
146 // #endif
147 const GUID GUID_WICPixelFormat64bppRGBA = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16] };
148 const GUID GUID_WICPixelFormat64bppBGRA = { 0x1562ff7c, 0xd352, 0x46f9, [0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46] };
149 const GUID GUID_WICPixelFormat64bppPRGBA = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17] };
150 const GUID GUID_WICPixelFormat64bppPBGRA = { 0x8c518e8e, 0xa4ec, 0x468b, [0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30] };
151 const GUID GUID_WICPixelFormat16bppGrayFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13] };
152 const GUID GUID_WICPixelFormat32bppBGR101010 = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14] };
153 const GUID GUID_WICPixelFormat48bppRGBFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12] };
154 const GUID GUID_WICPixelFormat48bppBGRFixedPoint = { 0x49ca140e, 0xcab6, 0x493b, [0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a] };
155 const GUID GUID_WICPixelFormat96bppRGBFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18] };
156 // #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
157 const GUID GUID_WICPixelFormat96bppRGBFloat = { 0xe3fed78f, 0xe8db, 0x4acf, [0x84, 0xc1, 0xe9, 0x7f, 0x61, 0x36, 0xb3, 0x27] };
158 // #endif
159 const GUID GUID_WICPixelFormat128bppRGBAFloat = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19] };
160 const GUID GUID_WICPixelFormat128bppPRGBAFloat = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a] };
161 const GUID GUID_WICPixelFormat128bppRGBFloat = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b] };
162 const GUID GUID_WICPixelFormat32bppCMYK = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c] };
163 const GUID GUID_WICPixelFormat64bppRGBAFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d] };
164 const GUID GUID_WICPixelFormat64bppBGRAFixedPoint = { 0x356de33c, 0x54d2, 0x4a23, [0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d] };
165 const GUID GUID_WICPixelFormat64bppRGBFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40] };
166 const GUID GUID_WICPixelFormat128bppRGBAFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e] };
167 const GUID GUID_WICPixelFormat128bppRGBFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41] };
168 const GUID GUID_WICPixelFormat64bppRGBAHalf = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a] };
169 // #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
170 const GUID GUID_WICPixelFormat64bppPRGBAHalf = { 0x58ad26c2, 0xc623, 0x4d9d, [0xb3, 0x20, 0x38, 0x7e, 0x49, 0xf8, 0xc4, 0x42] };
171 // #endif
172 const GUID GUID_WICPixelFormat64bppRGBHalf = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42] };
173 const GUID GUID_WICPixelFormat48bppRGBHalf = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b] };
174 const GUID GUID_WICPixelFormat32bppRGBE = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d] };
175 const GUID GUID_WICPixelFormat16bppGrayHalf = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e] };
176 const GUID GUID_WICPixelFormat32bppGrayFixedPoint = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f] };
177 const GUID GUID_WICPixelFormat32bppRGBA1010102 = { 0x25238D72, 0xFCF9, 0x4522, [0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0] };
178 const GUID GUID_WICPixelFormat32bppRGBA1010102XR = { 0x00DE6B9A, 0xC101, 0x434b, [0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c] };
179 const GUID GUID_WICPixelFormat64bppCMYK = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f] };
180 const GUID GUID_WICPixelFormat24bpp3Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20] };
181 const GUID GUID_WICPixelFormat32bpp4Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21] };
182 const GUID GUID_WICPixelFormat40bpp5Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22] };
183 const GUID GUID_WICPixelFormat48bpp6Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23] };
184 const GUID GUID_WICPixelFormat56bpp7Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24] };
185 const GUID GUID_WICPixelFormat64bpp8Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25] };
186 const GUID GUID_WICPixelFormat48bpp3Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26] };
187 const GUID GUID_WICPixelFormat64bpp4Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27] };
188 const GUID GUID_WICPixelFormat80bpp5Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28] };
189 const GUID GUID_WICPixelFormat96bpp6Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29] };
190 const GUID GUID_WICPixelFormat112bpp7Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a] };
191 const GUID GUID_WICPixelFormat128bpp8Channels = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b] };
192 const GUID GUID_WICPixelFormat40bppCMYKAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c] };
193 const GUID GUID_WICPixelFormat80bppCMYKAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d] };
194 const GUID GUID_WICPixelFormat32bpp3ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e] };
195 const GUID GUID_WICPixelFormat40bpp4ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f] };
196 const GUID GUID_WICPixelFormat48bpp5ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30] };
197 const GUID GUID_WICPixelFormat56bpp6ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31] };
198 const GUID GUID_WICPixelFormat64bpp7ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32] };
199 const GUID GUID_WICPixelFormat72bpp8ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33] };
200 const GUID GUID_WICPixelFormat64bpp3ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34] };
201 const GUID GUID_WICPixelFormat80bpp4ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35] };
202 const GUID GUID_WICPixelFormat96bpp5ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36] };
203 const GUID GUID_WICPixelFormat112bpp6ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37] };
204 const GUID GUID_WICPixelFormat128bpp7ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38] };
205 const GUID GUID_WICPixelFormat144bpp8ChannelsAlpha = { 0x6fddc324, 0x4e03, 0x4bfe, [0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39] };
206 const GUID GUID_WICPixelFormat8bppY = { 0x91B4DB54, 0x2DF9, 0x42F0, [0xB4, 0x49, 0x29, 0x09, 0xBB, 0x3D, 0xF8, 0x8E] };
207 const GUID GUID_WICPixelFormat8bppCb = { 0x1339F224, 0x6BFE, 0x4C3E, [0x93, 0x02, 0xE4, 0xF3, 0xA6, 0xD0, 0xCA, 0x2A] };
208 const GUID GUID_WICPixelFormat8bppCr = { 0xB8145053, 0x2116, 0x49F0, [0x88, 0x35, 0xED, 0x84, 0x4B, 0x20, 0x5C, 0x51] };
209 const GUID GUID_WICPixelFormat16bppCbCr = { 0xFF95BA6E, 0x11E0, 0x4263, [0xBB, 0x45, 0x01, 0x72, 0x1F, 0x34, 0x60, 0xA4] };
210 const GUID GUID_WICPixelFormat16bppYQuantizedDctCoefficients = { 0xA355F433, 0x48E8, 0x4A42, [0x84, 0xD8, 0xE2, 0xAA, 0x26, 0xCA, 0x80, 0xA4] };
211 const GUID GUID_WICPixelFormat16bppCbQuantizedDctCoefficients = { 0xD2C4FF61, 0x56A5, 0x49C2, [0x8B, 0x5C, 0x4C, 0x19, 0x25, 0x96, 0x48, 0x37] };
212 const GUID GUID_WICPixelFormat16bppCrQuantizedDctCoefficients = { 0x2FE354F0, 0x1680, 0x42D8, [0x92, 0x31, 0xE7, 0x3C, 0x05, 0x65, 0xBF, 0xC1] };
213 /* [public] */
214 alias WICBitmapCreateCacheOption = uint;
215 enum : WICBitmapCreateCacheOption
216 {
217 WICBitmapNoCache = 0,
218 WICBitmapCacheOnDemand = 0x1,
219 WICBitmapCacheOnLoad = 0x2
220 }
221
222 /* [public] */
223 alias WICDecodeOptions = uint;
224 enum : WICDecodeOptions
225 {
226 WICDecodeMetadataCacheOnDemand = 0,
227 WICDecodeMetadataCacheOnLoad = 0x1
228 }
229
230 /* [public] */
231 alias WICBitmapEncoderCacheOption = uint;
232 enum : WICBitmapEncoderCacheOption
233 {
234 WICBitmapEncoderCacheInMemory = 0,
235 WICBitmapEncoderCacheTempFile = 0x1,
236 WICBitmapEncoderNoCache = 0x2
237 }
238
239 /* [public] */
240 alias WICComponentType = uint;
241 enum : WICComponentType
242 {
243 WICDecoder = 0x1,
244 WICEncoder = 0x2,
245 WICPixelFormatConverter = 0x4,
246 WICMetadataReader = 0x8,
247 WICMetadataWriter = 0x10,
248 WICPixelFormat = 0x20,
249 WICAllComponents = 0x3f
250 }
251
252 /* [public] */
253 alias WICComponentEnumerateOptions = uint;
254 enum : WICComponentEnumerateOptions
255 {
256 WICComponentEnumerateDefault = 0,
257 WICComponentEnumerateRefresh = 0x1,
258 WICComponentEnumerateDisabled = 0x80000000,
259 WICComponentEnumerateUnsigned = 0x40000000,
260 WICComponentEnumerateBuiltInOnly = 0x20000000
261 }
262
263 /* [public] */ struct WICBitmapPattern
264 {
265 ULARGE_INTEGER Position;
266 ULONG Length;
267 /* [size_is] */ BYTE* Pattern;
268 /* [size_is] */ BYTE* Mask;
269 BOOL EndOfStream;
270 }
271
272 /* [public] */
273 alias WICBitmapInterpolationMode = uint;
274 enum : WICBitmapInterpolationMode
275 {
276 WICBitmapInterpolationModeNearestNeighbor = 0,
277 WICBitmapInterpolationModeLinear = 0x1,
278 WICBitmapInterpolationModeCubic = 0x2,
279 WICBitmapInterpolationModeFant = 0x3,
280 WICBitmapInterpolationModeHighQualityCubic = 0x4
281 }
282
283 /* [public] */
284 alias WICBitmapPaletteType = uint;
285 enum : WICBitmapPaletteType
286 {
287 WICBitmapPaletteTypeCustom = 0,
288 WICBitmapPaletteTypeMedianCut = 0x1,
289 WICBitmapPaletteTypeFixedBW = 0x2,
290 WICBitmapPaletteTypeFixedHalftone8 = 0x3,
291 WICBitmapPaletteTypeFixedHalftone27 = 0x4,
292 WICBitmapPaletteTypeFixedHalftone64 = 0x5,
293 WICBitmapPaletteTypeFixedHalftone125 = 0x6,
294 WICBitmapPaletteTypeFixedHalftone216 = 0x7,
295 WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216,
296 WICBitmapPaletteTypeFixedHalftone252 = 0x8,
297 WICBitmapPaletteTypeFixedHalftone256 = 0x9,
298 WICBitmapPaletteTypeFixedGray4 = 0xa,
299 WICBitmapPaletteTypeFixedGray16 = 0xb,
300 WICBitmapPaletteTypeFixedGray256 = 0xc
301 }
302
303 /* [public] */
304 alias WICBitmapDitherType = uint;
305 enum : WICBitmapDitherType
306 {
307 WICBitmapDitherTypeNone = 0,
308 WICBitmapDitherTypeSolid = 0,
309 WICBitmapDitherTypeOrdered4x4 = 0x1,
310 WICBitmapDitherTypeOrdered8x8 = 0x2,
311 WICBitmapDitherTypeOrdered16x16 = 0x3,
312 WICBitmapDitherTypeSpiral4x4 = 0x4,
313 WICBitmapDitherTypeSpiral8x8 = 0x5,
314 WICBitmapDitherTypeDualSpiral4x4 = 0x6,
315 WICBitmapDitherTypeDualSpiral8x8 = 0x7,
316 WICBitmapDitherTypeErrorDiffusion = 0x8
317 }
318
319 /* [public] */
320 alias WICBitmapAlphaChannelOption = uint;
321 enum : WICBitmapAlphaChannelOption
322 {
323 WICBitmapUseAlpha = 0,
324 WICBitmapUsePremultipliedAlpha = 0x1,
325 WICBitmapIgnoreAlpha = 0x2
326 }
327
328 /* [public] */
329 alias WICBitmapTransformOptions = uint;
330 enum : WICBitmapTransformOptions
331 {
332 WICBitmapTransformRotate0 = 0,
333 WICBitmapTransformRotate90 = 0x1,
334 WICBitmapTransformRotate180 = 0x2,
335 WICBitmapTransformRotate270 = 0x3,
336 WICBitmapTransformFlipHorizontal = 0x8,
337 WICBitmapTransformFlipVertical = 0x10
338 }
339
340 /* [public] */
341 alias WICBitmapLockFlags = uint;
342 enum : WICBitmapLockFlags
343 {
344 WICBitmapLockRead = 0x1,
345 WICBitmapLockWrite = 0x2
346 }
347
348 /* [public] */
349 alias WICBitmapDecoderCapabilities = uint;
350 enum : WICBitmapDecoderCapabilities
351 {
352 WICBitmapDecoderCapabilitySameEncoder = 0x1,
353 WICBitmapDecoderCapabilityCanDecodeAllImages = 0x2,
354 WICBitmapDecoderCapabilityCanDecodeSomeImages = 0x4,
355 WICBitmapDecoderCapabilityCanEnumerateMetadata = 0x8,
356 WICBitmapDecoderCapabilityCanDecodeThumbnail = 0x10
357 }
358
359 /* [public] */
360 alias WICProgressOperation = uint;
361 enum : WICProgressOperation
362 {
363 WICProgressOperationCopyPixels = 0x1,
364 WICProgressOperationWritePixels = 0x2,
365 WICProgressOperationAll = 0xffff
366 }
367
368 /* [public] */
369 alias WICProgressNotification = uint;
370 enum : WICProgressNotification
371 {
372 WICProgressNotificationBegin = 0x10000,
373 WICProgressNotificationEnd = 0x20000,
374 WICProgressNotificationFrequent = 0x40000,
375 WICProgressNotificationAll = 0xffff0000
376 }
377
378 /* [public] */
379 alias WICComponentSigning = uint;
380 enum : WICComponentSigning
381 {
382 WICComponentSigned = 0x1,
383 WICComponentUnsigned = 0x2,
384 WICComponentSafe = 0x4,
385 WICComponentDisabled = 0x80000000
386 }
387
388 /* [public] */
389 alias WICGifLogicalScreenDescriptorProperties = uint;
390 enum : WICGifLogicalScreenDescriptorProperties
391 {
392 WICGifLogicalScreenSignature = 0x1,
393 WICGifLogicalScreenDescriptorWidth = 0x2,
394 WICGifLogicalScreenDescriptorHeight = 0x3,
395 WICGifLogicalScreenDescriptorGlobalColorTableFlag = 0x4,
396 WICGifLogicalScreenDescriptorColorResolution = 0x5,
397 WICGifLogicalScreenDescriptorSortFlag = 0x6,
398 WICGifLogicalScreenDescriptorGlobalColorTableSize = 0x7,
399 WICGifLogicalScreenDescriptorBackgroundColorIndex = 0x8,
400 WICGifLogicalScreenDescriptorPixelAspectRatio = 0x9
401 }
402
403 /* [public] */
404 alias WICGifImageDescriptorProperties = uint;
405 enum : WICGifImageDescriptorProperties
406 {
407 WICGifImageDescriptorLeft = 0x1,
408 WICGifImageDescriptorTop = 0x2,
409 WICGifImageDescriptorWidth = 0x3,
410 WICGifImageDescriptorHeight = 0x4,
411 WICGifImageDescriptorLocalColorTableFlag = 0x5,
412 WICGifImageDescriptorInterlaceFlag = 0x6,
413 WICGifImageDescriptorSortFlag = 0x7,
414 WICGifImageDescriptorLocalColorTableSize = 0x8
415 }
416
417 /* [public] */
418 alias WICGifGraphicControlExtensionProperties = uint;
419 enum : WICGifGraphicControlExtensionProperties
420 {
421 WICGifGraphicControlExtensionDisposal = 0x1,
422 WICGifGraphicControlExtensionUserInputFlag = 0x2,
423 WICGifGraphicControlExtensionTransparencyFlag = 0x3,
424 WICGifGraphicControlExtensionDelay = 0x4,
425 WICGifGraphicControlExtensionTransparentColorIndex = 0x5
426 }
427
428 /* [public] */
429 alias WICGifApplicationExtensionProperties = uint;
430 enum : WICGifApplicationExtensionProperties
431 {
432 WICGifApplicationExtensionApplication = 0x1,
433 WICGifApplicationExtensionData = 0x2
434 }
435
436 /* [public] */
437 alias WICGifCommentExtensionProperties = uint;
438 enum : WICGifCommentExtensionProperties
439 {
440 WICGifCommentExtensionText = 0x1
441 }
442
443 /* [public] */
444 alias WICJpegCommentProperties = uint;
445 enum : WICJpegCommentProperties
446 {
447 WICJpegCommentText = 0x1
448 }
449
450 /* [public] */
451 alias WICJpegLuminanceProperties = uint;
452 enum : WICJpegLuminanceProperties
453 {
454 WICJpegLuminanceTable = 0x1
455 }
456
457 /* [public] */
458 alias WICJpegChrominanceProperties = uint;
459 enum : WICJpegChrominanceProperties
460 {
461 WICJpegChrominanceTable = 0x1
462 }
463
464 /* [public] */
465 alias WIC8BIMIptcProperties = uint;
466 enum : WIC8BIMIptcProperties
467 {
468 WIC8BIMIptcPString = 0,
469 WIC8BIMIptcEmbeddedIPTC = 0x1
470 }
471
472 /* [public] */
473 alias WIC8BIMResolutionInfoProperties = uint;
474 enum : WIC8BIMResolutionInfoProperties
475 {
476 WIC8BIMResolutionInfoPString = 0x1,
477 WIC8BIMResolutionInfoHResolution = 0x2,
478 WIC8BIMResolutionInfoHResolutionUnit = 0x3,
479 WIC8BIMResolutionInfoWidthUnit = 0x4,
480 WIC8BIMResolutionInfoVResolution = 0x5,
481 WIC8BIMResolutionInfoVResolutionUnit = 0x6,
482 WIC8BIMResolutionInfoHeightUnit = 0x7
483 }
484
485 /* [public] */
486 alias WIC8BIMIptcDigestProperties = uint;
487 enum : WIC8BIMIptcDigestProperties
488 {
489 WIC8BIMIptcDigestPString = 0x1,
490 WIC8BIMIptcDigestIptcDigest = 0x2
491 }
492
493 /* [public] */
494 alias WICPngGamaProperties = uint;
495 enum : WICPngGamaProperties
496 {
497 WICPngGamaGamma = 0x1
498 }
499
500 /* [public] */
501 alias WICPngBkgdProperties = uint;
502 enum : WICPngBkgdProperties
503 {
504 WICPngBkgdBackgroundColor = 0x1
505 }
506
507 /* [public] */
508 alias WICPngItxtProperties = uint;
509 enum : WICPngItxtProperties
510 {
511 WICPngItxtKeyword = 0x1,
512 WICPngItxtCompressionFlag = 0x2,
513 WICPngItxtLanguageTag = 0x3,
514 WICPngItxtTranslatedKeyword = 0x4,
515 WICPngItxtText = 0x5
516 }
517
518 /* [public] */
519 alias WICPngChrmProperties = uint;
520 enum : WICPngChrmProperties
521 {
522 WICPngChrmWhitePointX = 0x1,
523 WICPngChrmWhitePointY = 0x2,
524 WICPngChrmRedX = 0x3,
525 WICPngChrmRedY = 0x4,
526 WICPngChrmGreenX = 0x5,
527 WICPngChrmGreenY = 0x6,
528 WICPngChrmBlueX = 0x7,
529 WICPngChrmBlueY = 0x8
530 }
531
532 /* [public] */
533 alias WICPngHistProperties = uint;
534 enum : WICPngHistProperties
535 {
536 WICPngHistFrequencies = 0x1
537 }
538
539 /* [public] */
540 alias WICPngIccpProperties = uint;
541 enum : WICPngIccpProperties
542 {
543 WICPngIccpProfileName = 0x1,
544 WICPngIccpProfileData = 0x2
545 }
546
547 /* [public] */
548 alias WICPngSrgbProperties = uint;
549 enum : WICPngSrgbProperties
550 {
551 WICPngSrgbRenderingIntent = 0x1
552 }
553
554 /* [public] */
555 alias WICPngTimeProperties = uint;
556 enum : WICPngTimeProperties
557 {
558 WICPngTimeYear = 0x1,
559 WICPngTimeMonth = 0x2,
560 WICPngTimeDay = 0x3,
561 WICPngTimeHour = 0x4,
562 WICPngTimeMinute = 0x5,
563 WICPngTimeSecond = 0x6
564 }
565
566 /* [public] */
567 alias WICSectionAccessLevel = uint;
568 enum : WICSectionAccessLevel
569 {
570 WICSectionAccessLevelRead = 0x1,
571 WICSectionAccessLevelReadWrite = 0x3
572 }
573
574 /* [public] */
575 alias WICPixelFormatNumericRepresentation = uint;
576 enum : WICPixelFormatNumericRepresentation
577 {
578 WICPixelFormatNumericRepresentationUnspecified = 0,
579 WICPixelFormatNumericRepresentationIndexed = 0x1,
580 WICPixelFormatNumericRepresentationUnsignedInteger = 0x2,
581 WICPixelFormatNumericRepresentationSignedInteger = 0x3,
582 WICPixelFormatNumericRepresentationFixed = 0x4,
583 WICPixelFormatNumericRepresentationFloat = 0x5
584 }
585
586 /* [public] */
587 alias WICPlanarOptions = uint;
588 enum : WICPlanarOptions
589 {
590 WICPlanarOptionsDefault = 0,
591 WICPlanarOptionsPreserveSubsampling = 0x1
592 }
593
594 /* [public] */
595 alias WICJpegIndexingOptions = uint;
596 enum : WICJpegIndexingOptions
597 {
598 WICJpegIndexingOptionsGenerateOnDemand = 0,
599 WICJpegIndexingOptionsGenerateOnLoad = 0x1
600 }
601
602 /* [public] */
603 alias WICJpegTransferMatrix = uint;
604 enum : WICJpegTransferMatrix
605 {
606 WICJpegTransferMatrixIdentity = 0,
607 WICJpegTransferMatrixBT601 = 0x1
608 }
609
610 /* [public] */
611 alias WICJpegScanType = uint;
612 enum : WICJpegScanType
613 {
614 WICJpegScanTypeInterleaved = 0,
615 WICJpegScanTypePlanarComponents = 0x1,
616 WICJpegScanTypeProgressive = 0x2
617 }
618
619 // #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
620 /* [public] */ struct WICImageParameters
621 {
622 D2D1_PIXEL_FORMAT PixelFormat;
623 FLOAT DpiX;
624 FLOAT DpiY;
625 FLOAT Top;
626 FLOAT Left;
627 UINT32 PixelWidth;
628 UINT32 PixelHeight;
629 }
630
631 // #endif
632 /* [public] */ struct WICBitmapPlaneDescription
633 {
634 WICPixelFormatGUID Format;
635 UINT Width;
636 UINT Height;
637 }
638
639 /* [public] */ struct WICBitmapPlane
640 {
641 WICPixelFormatGUID Format;
642 /* [size_is] */ BYTE* pbBuffer;
643 UINT cbStride;
644 UINT cbBufferSize;
645 }
646
647 /* [public] */ struct WICJpegFrameHeader
648 {
649 UINT Width;
650 UINT Height;
651 WICJpegTransferMatrix TransferMatrix;
652 WICJpegScanType ScanType;
653 /* [range] */ UINT cComponents;
654 DWORD ComponentIdentifiers;
655 DWORD SampleFactors;
656 DWORD QuantizationTableIndices;
657 }
658
659 /* [public] */ struct WICJpegScanHeader
660 {
661 /* [range] */ UINT cComponents;
662 UINT RestartInterval;
663 DWORD ComponentSelectors;
664 DWORD HuffmanTableIndices;
665 BYTE StartSpectralSelection;
666 BYTE EndSpectralSelection;
667 BYTE SuccessiveApproximationHigh;
668 BYTE SuccessiveApproximationLow;
669 }
670
671
672 mixin(uuid!(IWICPalette, "00000040-a8f2-4877-ba0a-fd2b6645fb94"));
673 interface IWICPalette : IUnknown
674 {
675 extern(Windows):
676 HRESULT InitializePredefined(
677 /* [in] */ WICBitmapPaletteType ePaletteType,
678 /* [in] */ BOOL fAddTransparentColor);
679
680 HRESULT InitializeCustom(
681 /* [size_is][in] */ WICColor* pColors,
682 /* [in] */ UINT cCount);
683
684 HRESULT InitializeFromBitmap(
685 /* [in] */ IWICBitmapSource pISurface,
686 /* [in] */ UINT cCount,
687 /* [in] */ BOOL fAddTransparentColor);
688
689 HRESULT InitializeFromPalette(
690 /* [in] */ IWICPalette pIPalette);
691
692 HRESULT GetType(
693 /* [out] */ WICBitmapPaletteType* pePaletteType);
694
695 HRESULT GetColorCount(
696 /* [out] */ UINT* pcCount);
697
698 HRESULT GetColors(
699 /* [in] */ UINT cCount,
700 /* [size_is][out] */ WICColor* pColors,
701 /* [out] */ UINT* pcActualColors);
702
703 HRESULT IsBlackWhite(
704 /* [out] */ BOOL* pfIsBlackWhite);
705
706 HRESULT IsGrayscale(
707 /* [out] */ BOOL* pfIsGrayscale);
708
709 HRESULT HasAlpha(
710 /* [out] */ BOOL* pfHasAlpha);
711 }
712
713 mixin(uuid!(IWICBitmapSource, "00000120-a8f2-4877-ba0a-fd2b6645fb94"));
714 interface IWICBitmapSource : IUnknown
715 {
716 extern(Windows):
717 HRESULT GetSize(
718 /* [out] */ UINT* puiWidth,
719 /* [out] */ UINT* puiHeight);
720
721 HRESULT GetPixelFormat(
722 /* [out] */ WICPixelFormatGUID* pPixelFormat);
723
724 HRESULT GetResolution(
725 /* [out] */ double* pDpiX,
726 /* [out] */ double* pDpiY);
727
728 HRESULT CopyPalette(
729 /* [in] */ IWICPalette pIPalette);
730
731 HRESULT CopyPixels(
732 /* [unique][in] */ const(WICRect)* prc,
733 /* [in] */ UINT cbStride,
734 /* [in] */ UINT cbBufferSize,
735 /* [size_is][out] */ BYTE* pbBuffer);
736
737 }
738
739 mixin(uuid!(IWICFormatConverter, "00000301-a8f2-4877-ba0a-fd2b6645fb94"));
740 interface IWICFormatConverter : IWICBitmapSource
741 {
742 extern(Windows):
743 HRESULT Initialize(
744 /* [in] */ IWICBitmapSource pISource,
745 /* [in] */ REFWICPixelFormatGUID dstFormat,
746 /* [in] */ WICBitmapDitherType dither,
747 /* [unique][in] */ IWICPalette pIPalette,
748 /* [in] */ double alphaThresholdPercent,
749 /* [in] */ WICBitmapPaletteType paletteTranslate);
750
751 HRESULT CanConvert(
752 /* [in] */ REFWICPixelFormatGUID srcPixelFormat,
753 /* [in] */ REFWICPixelFormatGUID dstPixelFormat,
754 /* [out] */ BOOL* pfCanConvert);
755
756 }
757
758 mixin(uuid!(IWICPlanarFormatConverter, "BEBEE9CB-83B0-4DCC-8132-B0AAA55EAC96"));
759 interface IWICPlanarFormatConverter : IWICBitmapSource
760 {
761 extern(Windows):
762 HRESULT Initialize(
763 /* [size_is][in] */ IWICBitmapSource *ppPlanes,
764 UINT cPlanes,
765 /* [in] */ REFWICPixelFormatGUID dstFormat,
766 /* [in] */ WICBitmapDitherType dither,
767 /* [unique][in] */ IWICPalette pIPalette,
768 /* [in] */ double alphaThresholdPercent,
769 /* [in] */ WICBitmapPaletteType paletteTranslate);
770
771 HRESULT CanConvert(
772 /* [size_is][in] */ const(WICPixelFormatGUID)* pSrcPixelFormats,
773 UINT cSrcPlanes,
774 /* [in] */ REFWICPixelFormatGUID dstPixelFormat,
775 /* [out] */ BOOL* pfCanConvert);
776
777 }
778
779 mixin(uuid!(IWICBitmapScaler, "00000302-a8f2-4877-ba0a-fd2b6645fb94"));
780 interface IWICBitmapScaler : IWICBitmapSource
781 {
782 extern(Windows):
783 HRESULT Initialize(
784 /* [in] */ IWICBitmapSource pISource,
785 /* [in] */ UINT uiWidth,
786 /* [in] */ UINT uiHeight,
787 /* [in] */ WICBitmapInterpolationMode mode);
788
789 }
790
791 mixin(uuid!(IWICBitmapClipper, "E4FBCF03-223D-4e81-9333-D635556DD1B5"));
792 interface IWICBitmapClipper : IWICBitmapSource
793 {
794 extern(Windows):
795 HRESULT Initialize(
796 /* [in] */ IWICBitmapSource pISource,
797 /* [in] */ const(WICRect)* prc);
798
799 }
800
801 mixin(uuid!(IWICBitmapFlipRotator, "5009834F-2D6A-41ce-9E1B-17C5AFF7A782"));
802 interface IWICBitmapFlipRotator : IWICBitmapSource
803 {
804 extern(Windows):
805 HRESULT Initialize(
806 /* [in] */ IWICBitmapSource pISource,
807 /* [in] */ WICBitmapTransformOptions options);
808
809 }
810
811 mixin(uuid!(IWICBitmapLock, "00000123-a8f2-4877-ba0a-fd2b6645fb94"));
812 interface IWICBitmapLock : IUnknown
813 {
814 extern(Windows):
815 HRESULT GetSize(
816 /* [out] */ UINT* puiWidth,
817 /* [out] */ UINT* puiHeight);
818
819 HRESULT GetStride(
820 /* [out] */ UINT* pcbStride);
821
822 HRESULT GetDataPointer(
823 /* [out] */ UINT* pcbBufferSize,
824 /* [size_is][size_is][out] */ WICInProcPointer* ppbData);
825
826 HRESULT GetPixelFormat(
827 /* [out] */ WICPixelFormatGUID* pPixelFormat);
828
829 }
830
831 mixin(uuid!(IWICBitmap, "00000121-a8f2-4877-ba0a-fd2b6645fb94"));
832 interface IWICBitmap : IWICBitmapSource
833 {
834 extern(Windows):
835 HRESULT Lock(
836 /* [unique][in] */ const(WICRect)* prcLock,
837 /* [in] */ DWORD flags,
838 /* [out] */ IWICBitmapLock *ppILock);
839
840 HRESULT SetPalette(
841 /* [in] */ IWICPalette pIPalette);
842
843 HRESULT SetResolution(
844 /* [in] */ double dpiX,
845 /* [in] */ double dpiY);
846
847 }
848
849 mixin(uuid!(IWICColorContext, "3C613A02-34B2-44ea-9A7C-45AEA9C6FD6D"));
850 interface IWICColorContext : IUnknown
851 {
852 extern(Windows):
853 HRESULT InitializeFromFilename(
854 /* [in] */ LPCWSTR wzFilename);
855
856 HRESULT InitializeFromMemory(
857 /* [size_is][in] */ const(BYTE)* pbBuffer,
858 /* [in] */ UINT cbBufferSize);
859
860 HRESULT InitializeFromExifColorSpace(
861 /* [in] */ UINT value);
862
863 HRESULT GetType(
864 /* [out] */ WICColorContextType* pType);
865
866 HRESULT GetProfileBytes(
867 /* [in] */ UINT cbBuffer,
868 /* [size_is][unique][out][in] */ BYTE* pbBuffer,
869 /* [out] */ UINT* pcbActual);
870
871 HRESULT GetExifColorSpace(
872 /* [out] */ UINT* pValue);
873
874 }
875
876 mixin(uuid!(IWICColorTransform, "B66F034F-D0E2-40ab-B436-6DE39E321A94"));
877 interface IWICColorTransform : IWICBitmapSource
878 {
879 extern(Windows):
880 HRESULT Initialize(
881 /* [in] */ IWICBitmapSource pIBitmapSource,
882 /* [in] */ IWICColorContext pIContextSource,
883 /* [in] */ IWICColorContext pIContextDest,
884 /* [in] */ REFWICPixelFormatGUID pixelFmtDest);
885
886 }
887
888 mixin(uuid!(IWICFastMetadataEncoder, "B84E2C09-78C9-4AC4-8BD3-524AE1663A2F"));
889 interface IWICFastMetadataEncoder : IUnknown
890 {
891 extern(Windows):
892 HRESULT Commit();
893
894 HRESULT GetMetadataQueryWriter(
895 /* [out] */ IWICMetadataQueryWriter *ppIMetadataQueryWriter);
896
897 }
898
899 mixin(uuid!(IWICStream, "135FF860-22B7-4ddf-B0F6-218F4F299A43"));
900 interface IWICStream : IStream
901 {
902 extern(Windows):
903 HRESULT InitializeFromIStream(
904 /* [in] */ IStream pIStream);
905
906 HRESULT InitializeFromFilename(
907 /* [in] */ LPCWSTR wzFileName,
908 /* [in] */ DWORD dwDesiredAccess);
909
910 HRESULT InitializeFromMemory(
911 /* [size_is][in] */ WICInProcPointer pbBuffer,
912 /* [in] */ DWORD cbBufferSize);
913
914 HRESULT InitializeFromIStreamRegion(
915 /* [in] */ IStream pIStream,
916 /* [in] */ ULARGE_INTEGER ulOffset,
917 /* [in] */ ULARGE_INTEGER ulMaxSize);
918
919 }
920
921 mixin(uuid!(IWICEnumMetadataItem, "DC2BB46D-3F07-481E-8625-220C4AEDBB33"));
922 interface IWICEnumMetadataItem : IUnknown
923 {
924 extern(Windows):
925 HRESULT Next(
926 /* [in] */ ULONG celt,
927 /* [size_is][unique][out][in] */ PROPVARIANT* rgeltSchema,
928 /* [size_is][out][in] */ PROPVARIANT* rgeltId,
929 /* [size_is][optional][out][in] */ PROPVARIANT* rgeltValue,
930 /* [optional][out] */ ULONG* pceltFetched);
931
932 HRESULT Skip(
933 /* [in] */ ULONG celt);
934
935 HRESULT Reset();
936
937 HRESULT Clone(
938 /* [out] */ IWICEnumMetadataItem *ppIEnumMetadataItem);
939
940 }
941
942 mixin(uuid!(IWICMetadataQueryReader, "30989668-E1C9-4597-B395-458EEDB808DF"));
943 interface IWICMetadataQueryReader : IUnknown
944 {
945 extern(Windows):
946 HRESULT GetContainerFormat(
947 /* [out] */ GUID* pguidContainerFormat);
948
949 HRESULT GetLocation(
950 /* [in] */ UINT cchMaxLength,
951 /* [size_is][unique][out][in] */ WCHAR* wzNamespace,
952 /* [out] */ UINT* pcchActualLength);
953
954 HRESULT GetMetadataByName(
955 /* [in] */ LPCWSTR wzName,
956 /* [unique][out][in] */ PROPVARIANT* pvarValue);
957
958 HRESULT GetEnumerator(
959 /* [out] */ IEnumString *ppIEnumString);
960
961 }
962
963 mixin(uuid!(IWICMetadataQueryWriter, "A721791A-0DEF-4d06-BD91-2118BF1DB10B"));
964 interface IWICMetadataQueryWriter : IWICMetadataQueryReader
965 {
966 extern(Windows):
967 HRESULT SetMetadataByName(
968 /* [in] */ LPCWSTR wzName,
969 /* [in] */ const(PROPVARIANT)* pvarValue);
970
971 HRESULT RemoveMetadataByName(
972 /* [in] */ LPCWSTR wzName);
973
974 }
975
976 mixin(uuid!(IWICBitmapEncoder, "00000103-a8f2-4877-ba0a-fd2b6645fb94"));
977 interface IWICBitmapEncoder : IUnknown
978 {
979 extern(Windows):
980 HRESULT Initialize(
981 /* [in] */ IStream pIStream,
982 /* [in] */ WICBitmapEncoderCacheOption cacheOption);
983
984 HRESULT GetContainerFormat(
985 /* [out] */ GUID* pguidContainerFormat);
986
987 HRESULT GetEncoderInfo(
988 /* [out] */ IWICBitmapEncoderInfo *ppIEncoderInfo);
989
990 HRESULT SetColorContexts(
991 /* [in] */ UINT cCount,
992 /* [size_is][in] */ IWICColorContext *ppIColorContext);
993
994 HRESULT SetPalette(
995 /* [in] */ IWICPalette pIPalette);
996
997 HRESULT SetThumbnail(
998 /* [in] */ IWICBitmapSource pIThumbnail);
999
1000 HRESULT SetPreview(
1001 /* [in] */ IWICBitmapSource pIPreview);
1002
1003 HRESULT CreateNewFrame(
1004 /* [out] */ IWICBitmapFrameEncode *ppIFrameEncode,
1005 /* [unique][out][in] */ IPropertyBag2 *ppIEncoderOptions);
1006
1007 HRESULT Commit();
1008
1009 HRESULT GetMetadataQueryWriter(
1010 /* [out] */ IWICMetadataQueryWriter *ppIMetadataQueryWriter);
1011
1012 }
1013
1014 mixin(uuid!(IWICBitmapFrameEncode, "00000105-a8f2-4877-ba0a-fd2b6645fb94"));
1015 interface IWICBitmapFrameEncode : IUnknown
1016 {
1017 extern(Windows):
1018 HRESULT Initialize(
1019 /* [unique][in] */ IPropertyBag2 pIEncoderOptions);
1020
1021 HRESULT SetSize(
1022 /* [in] */ UINT uiWidth,
1023 /* [in] */ UINT uiHeight);
1024
1025 HRESULT SetResolution(
1026 /* [in] */ double dpiX,
1027 /* [in] */ double dpiY);
1028
1029 HRESULT SetPixelFormat(
1030 /* [out][in] */ WICPixelFormatGUID* pPixelFormat);
1031
1032 HRESULT SetColorContexts(
1033 /* [in] */ UINT cCount,
1034 /* [size_is][in] */ IWICColorContext* ppIColorContext);
1035
1036 HRESULT SetPalette(
1037 /* [in] */ IWICPalette pIPalette);
1038
1039 HRESULT SetThumbnail(
1040 /* [in] */ IWICBitmapSource pIThumbnail);
1041
1042 HRESULT WritePixels(
1043 /* [in] */ UINT lineCount,
1044 /* [in] */ UINT cbStride,
1045 /* [in] */ UINT cbBufferSize,
1046 /* [size_is][in] */ BYTE* pbPixels);
1047
1048 HRESULT WriteSource(
1049 /* [in] */ IWICBitmapSource pIBitmapSource,
1050 /* [unique][in] */ WICRect* prc);
1051
1052 HRESULT Commit();
1053
1054 HRESULT GetMetadataQueryWriter(
1055 /* [out] */ IWICMetadataQueryWriter* ppIMetadataQueryWriter);
1056
1057 }
1058
1059 mixin(uuid!(IWICPlanarBitmapFrameEncode, "F928B7B8-2221-40C1-B72E-7E82F1974D1A"));
1060 interface IWICPlanarBitmapFrameEncode : IUnknown
1061 {
1062 extern(Windows):
1063 HRESULT WritePixels(
1064 UINT lineCount,
1065 /* [size_is][in] */ WICBitmapPlane* pPlanes,
1066 UINT cPlanes);
1067
1068 HRESULT WriteSource(
1069 /* [size_is][in] */ IWICBitmapSource* ppPlanes,
1070 UINT cPlanes,
1071 /* [unique][in] */ WICRect* prcSource);
1072
1073 }
1074
1075 mixin(uuid!(IWICImageEncoder, "04C75BF8-3CE1-473B-ACC5-3CC4F5E94999"));
1076 interface IWICImageEncoder : IUnknown
1077 {
1078 extern(Windows):
1079 HRESULT WriteFrame(
1080 /* [in] */ ID2D1Image pImage,
1081 /* [in] */ IWICBitmapFrameEncode pFrameEncode,
1082 /* [unique][in] */ const(WICImageParameters)* pImageParameters);
1083
1084 HRESULT WriteFrameThumbnail(
1085 /* [in] */ ID2D1Image pImage,
1086 /* [in] */ IWICBitmapFrameEncode pFrameEncode,
1087 /* [unique][in] */ const(WICImageParameters)* pImageParameters);
1088
1089 HRESULT WriteThumbnail(
1090 /* [in] */ ID2D1Image pImage,
1091 /* [in] */ IWICBitmapEncoder pEncoder,
1092 /* [unique][in] */ const(WICImageParameters)* pImageParameters);
1093
1094 }
1095
1096 mixin(uuid!(IWICBitmapDecoder, "9EDDE9E7-8DEE-47ea-99DF-E6FAF2ED44BF"));
1097 interface IWICBitmapDecoder : IUnknown
1098 {
1099 extern(Windows):
1100 HRESULT QueryCapability(
1101 /* [in] */ IStream pIStream,
1102 /* [out] */ DWORD* pdwCapability);
1103
1104 HRESULT Initialize(
1105 /* [in] */ IStream pIStream,
1106 /* [in] */ WICDecodeOptions cacheOptions);
1107
1108 HRESULT GetContainerFormat(
1109 /* [out] */ GUID* pguidContainerFormat);
1110
1111 HRESULT GetDecoderInfo(
1112 /* [out] */ IWICBitmapDecoderInfo* ppIDecoderInfo);
1113
1114 HRESULT CopyPalette(
1115 /* [in] */ IWICPalette pIPalette);
1116
1117 HRESULT GetMetadataQueryReader(
1118 /* [out] */ IWICMetadataQueryReader* ppIMetadataQueryReader);
1119
1120 HRESULT GetPreview(
1121 /* [out] */ IWICBitmapSource* ppIBitmapSource);
1122
1123 HRESULT GetColorContexts(
1124 /* [in] */ UINT cCount,
1125 /* [size_is][unique][out][in] */ IWICColorContext* ppIColorContexts,
1126 /* [out] */ UINT* pcActualCount);
1127
1128 HRESULT GetThumbnail(
1129 /* [out] */ IWICBitmapSource* ppIThumbnail);
1130
1131 HRESULT GetFrameCount(
1132 /* [out] */ UINT* pCount);
1133
1134 HRESULT GetFrame(
1135 /* [in] */ UINT index,
1136 /* [out] */ IWICBitmapFrameDecode* ppIBitmapFrame);
1137
1138 }
1139
1140 mixin(uuid!(IWICBitmapSourceTransform, "3B16811B-6A43-4ec9-B713-3D5A0C13B940"));
1141 interface IWICBitmapSourceTransform : IUnknown
1142 {
1143 extern(Windows):
1144 HRESULT CopyPixels(
1145 /* [unique][in] */ const(WICRect)* prc,
1146 /* [in] */ UINT uiWidth,
1147 /* [in] */ UINT uiHeight,
1148 /* [unique][in] */ WICPixelFormatGUID* pguidDstFormat,
1149 /* [in] */ WICBitmapTransformOptions dstTransform,
1150 /* [in] */ UINT nStride,
1151 /* [in] */ UINT cbBufferSize,
1152 /* [size_is][out] */ BYTE* pbBuffer);
1153
1154 HRESULT GetClosestSize(
1155 /* [out][in] */ UINT* puiWidth,
1156 /* [out][in] */ UINT* puiHeight);
1157
1158 HRESULT GetClosestPixelFormat(
1159 /* [out][in] */ WICPixelFormatGUID* pguidDstFormat);
1160
1161 HRESULT DoesSupportTransform(
1162 /* [in] */ WICBitmapTransformOptions dstTransform,
1163 /* [out] */ BOOL* pfIsSupported);
1164
1165 }
1166
1167 mixin(uuid!(IWICPlanarBitmapSourceTransform, "3AFF9CCE-BE95-4303-B927-E7D16FF4A613"));
1168 interface IWICPlanarBitmapSourceTransform : IUnknown
1169 {
1170 extern(Windows):
1171 HRESULT DoesSupportTransform(
1172 /* [out][in] */ UINT* puiWidth,
1173 /* [out][in] */ UINT* puiHeight,
1174 WICBitmapTransformOptions dstTransform,
1175 WICPlanarOptions dstPlanarOptions,
1176 /* [size_is][in] */ const(WICPixelFormatGUID)* pguidDstFormats,
1177 /* [size_is][out] */ WICBitmapPlaneDescription* pPlaneDescriptions,
1178 UINT cPlanes,
1179 /* [out] */ BOOL* pfIsSupported);
1180
1181 HRESULT CopyPixels(
1182 /* [unique][in] */ const(WICRect)* prcSource,
1183 UINT uiWidth,
1184 UINT uiHeight,
1185 WICBitmapTransformOptions dstTransform,
1186 WICPlanarOptions dstPlanarOptions,
1187 /* [size_is][in] */ const(WICBitmapPlane)* pDstPlanes,
1188 UINT cPlanes);
1189
1190 }
1191
1192 mixin(uuid!(IWICBitmapFrameDecode, "3B16811B-6A43-4ec9-A813-3D930C13B940"));
1193 interface IWICBitmapFrameDecode : IWICBitmapSource
1194 {
1195 extern(Windows):
1196 HRESULT GetMetadataQueryReader(
1197 /* [out] */ IWICMetadataQueryReader* ppIMetadataQueryReader);
1198
1199 HRESULT GetColorContexts(
1200 /* [in] */ UINT cCount,
1201 /* [size_is][unique][out][in] */ IWICColorContext* ppIColorContexts,
1202 /* [out] */ UINT* pcActualCount);
1203
1204 HRESULT GetThumbnail(
1205 /* [out] */ IWICBitmapSource* ppIThumbnail);
1206
1207 }
1208
1209 mixin(uuid!(IWICProgressiveLevelControl, "DAAC296F-7AA5-4dbf-8D15-225C5976F891"));
1210 interface IWICProgressiveLevelControl : IUnknown
1211 {
1212 extern(Windows):
1213 HRESULT GetLevelCount(
1214 /* [retval][out] */ UINT* pcLevels);
1215
1216 HRESULT GetCurrentLevel(
1217 /* [retval][out] */ UINT* pnLevel);
1218
1219 HRESULT SetCurrentLevel(
1220 /* [in] */ UINT nLevel);
1221
1222 }
1223
1224 mixin(uuid!(IWICProgressCallback, "4776F9CD-9517-45FA-BF24-E89C5EC5C60C"));
1225 interface IWICProgressCallback : IUnknown
1226 {
1227 extern(Windows):
1228 HRESULT Notify(
1229 /* [in] */ ULONG uFrameNum,
1230 /* [in] */ WICProgressOperation operation,
1231 /* [in] */ double dblProgress);
1232
1233 }
1234
1235 alias PFNProgressNotification = extern(Windows) HRESULT function(LPVOID pvData, ULONG uFrameNum, WICProgressOperation operation, double dblProgress);
1236
1237 mixin(uuid!(IWICBitmapCodecProgressNotification, "64C1024E-C3CF-4462-8078-88C2B11C46D9"));
1238 interface IWICBitmapCodecProgressNotification : IUnknown
1239 {
1240 extern(Windows):
1241 /* [local] */ HRESULT RegisterProgressNotification(
1242 /* [annotation][unique][in] */
1243 PFNProgressNotification pfnProgressNotification,
1244 /* [annotation][unique][in] */
1245 LPVOID pvData,
1246 /* [in] */ DWORD dwProgressFlags);
1247
1248 }
1249
1250 mixin(uuid!(IWICComponentInfo, "23BC3F0A-698B-4357-886B-F24D50671334"));
1251 interface IWICComponentInfo : IUnknown
1252 {
1253 extern(Windows):
1254 HRESULT GetComponentType(
1255 /* [out] */ WICComponentType* pType);
1256
1257 HRESULT GetCLSID(
1258 /* [out] */ CLSID* pclsid);
1259
1260 HRESULT GetSigningStatus(
1261 /* [out] */ DWORD* pStatus);
1262
1263 HRESULT GetAuthor(
1264 /* [in] */ UINT cchAuthor,
1265 /* [size_is][unique][out][in] */ WCHAR* wzAuthor,
1266 /* [out] */ UINT* pcchActual);
1267
1268 HRESULT GetVendorGUID(
1269 /* [out] */ GUID* pguidVendor);
1270
1271 HRESULT GetVersion(
1272 /* [in] */ UINT cchVersion,
1273 /* [size_is][unique][out][in] */ WCHAR* wzVersion,
1274 /* [out] */ UINT* pcchActual);
1275
1276 HRESULT GetSpecVersion(
1277 /* [in] */ UINT cchSpecVersion,
1278 /* [size_is][unique][out][in] */ WCHAR* wzSpecVersion,
1279 /* [out] */ UINT* pcchActual);
1280
1281 HRESULT GetFriendlyName(
1282 /* [in] */ UINT cchFriendlyName,
1283 /* [size_is][unique][out][in] */ WCHAR* wzFriendlyName,
1284 /* [out] */ UINT* pcchActual);
1285
1286 }
1287
1288 mixin(uuid!(IWICFormatConverterInfo, "9F34FB65-13F4-4f15-BC57-3726B5E53D9F"));
1289 interface IWICFormatConverterInfo : IWICComponentInfo
1290 {
1291 extern(Windows):
1292 HRESULT GetPixelFormats(
1293 /* [in] */ UINT cFormats,
1294 /* [size_is][unique][out][in] */ WICPixelFormatGUID* pPixelFormatGUIDs,
1295 /* [out] */ UINT* pcActual);
1296
1297 HRESULT CreateInstance(
1298 /* [out] */ IWICFormatConverter* ppIConverter);
1299
1300 }
1301
1302 mixin(uuid!(IWICBitmapCodecInfo, "E87A44C4-B76E-4c47-8B09-298EB12A2714"));
1303 interface IWICBitmapCodecInfo : IWICComponentInfo
1304 {
1305 extern(Windows):
1306 HRESULT GetContainerFormat(
1307 /* [out] */ GUID* pguidContainerFormat);
1308
1309 HRESULT GetPixelFormats(
1310 /* [in] */ UINT cFormats,
1311 /* [size_is][unique][out][in] */ GUID* pguidPixelFormats,
1312 /* [out] */ UINT* pcActual);
1313
1314 HRESULT GetColorManagementVersion(
1315 /* [in] */ UINT cchColorManagementVersion,
1316 /* [size_is][unique][out][in] */ WCHAR* wzColorManagementVersion,
1317 /* [out] */ UINT* pcchActual);
1318
1319 HRESULT GetDeviceManufacturer(
1320 /* [in] */ UINT cchDeviceManufacturer,
1321 /* [size_is][unique][out][in] */ WCHAR* wzDeviceManufacturer,
1322 /* [out] */ UINT* pcchActual);
1323
1324 HRESULT GetDeviceModels(
1325 /* [in] */ UINT cchDeviceModels,
1326 /* [size_is][unique][out][in] */ WCHAR* wzDeviceModels,
1327 /* [out] */ UINT* pcchActual);
1328
1329 HRESULT GetMimeTypes(
1330 /* [in] */ UINT cchMimeTypes,
1331 /* [size_is][unique][out][in] */ WCHAR* wzMimeTypes,
1332 /* [out] */ UINT* pcchActual);
1333
1334 HRESULT GetFileExtensions(
1335 /* [in] */ UINT cchFileExtensions,
1336 /* [size_is][unique][out][in] */ WCHAR* wzFileExtensions,
1337 /* [out] */ UINT* pcchActual);
1338
1339 HRESULT DoesSupportAnimation(
1340 /* [out] */ BOOL* pfSupportAnimation);
1341
1342 HRESULT DoesSupportChromakey(
1343 /* [out] */ BOOL* pfSupportChromakey);
1344
1345 HRESULT DoesSupportLossless(
1346 /* [out] */ BOOL* pfSupportLossless);
1347
1348 HRESULT DoesSupportMultiframe(
1349 /* [out] */ BOOL* pfSupportMultiframe);
1350
1351 HRESULT MatchesMimeType(
1352 /* [in] */ LPCWSTR wzMimeType,
1353 /* [out] */ BOOL* pfMatches);
1354
1355 }
1356
1357 mixin(uuid!(IWICBitmapEncoderInfo, "94C9B4EE-A09F-4f92-8A1E-4A9BCE7E76FB"));
1358 interface IWICBitmapEncoderInfo : IWICBitmapCodecInfo
1359 {
1360 extern(Windows):
1361 HRESULT CreateInstance(
1362 /* [out] */ IWICBitmapEncoder* ppIBitmapEncoder);
1363
1364 }
1365
1366 mixin(uuid!(IWICBitmapDecoderInfo, "D8CD007F-D08F-4191-9BFC-236EA7F0E4B5"));
1367 interface IWICBitmapDecoderInfo : IWICBitmapCodecInfo
1368 {
1369 extern(Windows):
1370 /* [local] */ HRESULT GetPatterns(
1371 /* [in] */ UINT cbSizePatterns,
1372 /* [annotation][unique][size_is][out] */
1373 WICBitmapPattern* pPatterns,
1374 /* [annotation][unique][out] */
1375 UINT* pcPatterns,
1376 /* [annotation][out] */
1377 UINT* pcbPatternsActual);
1378
1379 HRESULT MatchesPattern(
1380 /* [in] */ IStream pIStream,
1381 /* [out] */ BOOL* pfMatches);
1382
1383 HRESULT CreateInstance(
1384 /* [out] */ IWICBitmapDecoder* ppIBitmapDecoder);
1385
1386 }
1387
1388
1389 mixin(uuid!(IWICPixelFormatInfo, "E8EDA601-3D48-431a-AB44-69059BE88BBE"));
1390 interface IWICPixelFormatInfo : IWICComponentInfo
1391 {
1392 extern(Windows):
1393 HRESULT GetFormatGUID(
1394 /* [out] */ GUID* pFormat);
1395
1396 HRESULT GetColorContext(
1397 /* [out] */ IWICColorContext* ppIColorContext);
1398
1399 HRESULT GetBitsPerPixel(
1400 /* [out] */ UINT* puiBitsPerPixel);
1401
1402 HRESULT GetChannelCount(
1403 /* [out] */ UINT* puiChannelCount);
1404
1405 HRESULT GetChannelMask(
1406 /* [in] */ UINT uiChannelIndex,
1407 /* [in] */ UINT cbMaskBuffer,
1408 /* [size_is][unique][out][in] */ BYTE* pbMaskBuffer,
1409 /* [out] */ UINT* pcbActual);
1410
1411 }
1412
1413 mixin(uuid!(IWICPixelFormatInfo2, "A9DB33A2-AF5F-43C7-B679-74F5984B5AA4"));
1414 interface IWICPixelFormatInfo2 : IWICPixelFormatInfo
1415 {
1416 extern(Windows):
1417 HRESULT SupportsTransparency(
1418 /* [out] */ BOOL* pfSupportsTransparency);
1419
1420 HRESULT GetNumericRepresentation(
1421 /* [out] */ WICPixelFormatNumericRepresentation* pNumericRepresentation);
1422
1423 }
1424
1425 mixin(uuid!(IWICImagingFactory, "ec5ec8a9-c395-4314-9c77-54d7a935ff70"));
1426 interface IWICImagingFactory : IUnknown
1427 {
1428 extern(Windows):
1429 HRESULT CreateDecoderFromFilename(
1430 /* [in] */ LPCWSTR wzFilename,
1431 /* [unique][in] */ const(GUID)* pguidVendor,
1432 /* [in] */ DWORD dwDesiredAccess,
1433 /* [in] */ WICDecodeOptions metadataOptions,
1434 /* [retval][out] */ IWICBitmapDecoder* ppIDecoder);
1435
1436 HRESULT CreateDecoderFromStream(
1437 /* [in] */ IStream pIStream,
1438 /* [unique][in] */ const(GUID)* pguidVendor,
1439 /* [in] */ WICDecodeOptions metadataOptions,
1440 /* [retval][out] */ IWICBitmapDecoder* ppIDecoder);
1441
1442 HRESULT CreateDecoderFromFileHandle(
1443 /* [in] */ ULONG_PTR hFile,
1444 /* [unique][in] */ const(GUID)* pguidVendor,
1445 /* [in] */ WICDecodeOptions metadataOptions,
1446 /* [retval][out] */ IWICBitmapDecoder* ppIDecoder);
1447
1448 HRESULT CreateComponentInfo(
1449 /* [in] */ REFCLSID clsidComponent,
1450 /* [out] */ IWICComponentInfo* ppIInfo);
1451
1452 HRESULT CreateDecoder(
1453 /* [in] */ REFGUID guidContainerFormat,
1454 /* [unique][in] */ const(GUID)* pguidVendor,
1455 /* [retval][out] */ IWICBitmapDecoder* ppIDecoder);
1456
1457 HRESULT CreateEncoder(
1458 /* [in] */ REFGUID guidContainerFormat,
1459 /* [unique][in] */ const(GUID)* pguidVendor,
1460 /* [retval][out] */ IWICBitmapEncoder* ppIEncoder);
1461
1462 HRESULT CreatePalette(
1463 /* [out] */ IWICPalette* ppIPalette);
1464
1465 HRESULT CreateFormatConverter(
1466 /* [out] */ IWICFormatConverter* ppIFormatConverter);
1467
1468 HRESULT CreateBitmapScaler(
1469 /* [out] */ IWICBitmapScaler* ppIBitmapScaler);
1470
1471 HRESULT CreateBitmapClipper(
1472 /* [out] */ IWICBitmapClipper* ppIBitmapClipper);
1473
1474 HRESULT CreateBitmapFlipRotator(
1475 /* [out] */ IWICBitmapFlipRotator* ppIBitmapFlipRotator);
1476
1477 HRESULT CreateStream(
1478 /* [out] */ IWICStream* ppIWICStream);
1479
1480 HRESULT CreateColorContext(
1481 /* [out] */ IWICColorContext* ppIWICColorContext);
1482
1483 HRESULT CreateColorTransformer(
1484 /* [out] */ IWICColorTransform* ppIWICColorTransform);
1485
1486 HRESULT CreateBitmap(
1487 /* [in] */ UINT uiWidth,
1488 /* [in] */ UINT uiHeight,
1489 /* [in] */ REFWICPixelFormatGUID pixelFormat,
1490 /* [in] */ WICBitmapCreateCacheOption option,
1491 /* [out] */ IWICBitmap* ppIBitmap);
1492
1493 HRESULT CreateBitmapFromSource(
1494 /* [in] */ IWICBitmapSource pIBitmapSource,
1495 /* [in] */ WICBitmapCreateCacheOption option,
1496 /* [out] */ IWICBitmap* ppIBitmap);
1497
1498 HRESULT CreateBitmapFromSourceRect(
1499 /* [in] */ IWICBitmapSource pIBitmapSource,
1500 /* [in] */ UINT x,
1501 /* [in] */ UINT y,
1502 /* [in] */ UINT width,
1503 /* [in] */ UINT height,
1504 /* [out] */ IWICBitmap* ppIBitmap);
1505
1506 HRESULT CreateBitmapFromMemory(
1507 /* [in] */ UINT uiWidth,
1508 /* [in] */ UINT uiHeight,
1509 /* [in] */ REFWICPixelFormatGUID pixelFormat,
1510 /* [in] */ UINT cbStride,
1511 /* [in] */ UINT cbBufferSize,
1512 /* [size_is][in] */ BYTE* pbBuffer,
1513 /* [out] */ IWICBitmap* ppIBitmap);
1514
1515 HRESULT CreateBitmapFromHBITMAP(
1516 /* [in] */ HBITMAP hBitmap,
1517 /* [unique][in] */ HPALETTE hPalette,
1518 /* [in] */ WICBitmapAlphaChannelOption options,
1519 /* [out] */ IWICBitmap* ppIBitmap);
1520
1521 HRESULT CreateBitmapFromHICON(
1522 /* [in] */ HICON hIcon,
1523 /* [out] */ IWICBitmap* ppIBitmap);
1524
1525 HRESULT CreateComponentEnumerator(
1526 /* [in] */ DWORD componentTypes,
1527 /* [in] */ DWORD options,
1528 /* [out] */ IEnumUnknown* ppIEnumUnknown);
1529
1530 HRESULT CreateFastMetadataEncoderFromDecoder(
1531 /* [in] */ IWICBitmapDecoder pIDecoder,
1532 /* [out] */ IWICFastMetadataEncoder* ppIFastEncoder);
1533
1534 HRESULT CreateFastMetadataEncoderFromFrameDecode(
1535 /* [in] */ IWICBitmapFrameDecode pIFrameDecoder,
1536 /* [out] */ IWICFastMetadataEncoder* ppIFastEncoder);
1537
1538 HRESULT CreateQueryWriter(
1539 /* [in] */ REFGUID guidMetadataFormat,
1540 /* [unique][in] */ const(GUID)* pguidVendor,
1541 /* [out] */ IWICMetadataQueryWriter* ppIQueryWriter);
1542
1543 HRESULT CreateQueryWriterFromReader(
1544 /* [in] */ IWICMetadataQueryReader pIQueryReader,
1545 /* [unique][in] */ const(GUID)* pguidVendor,
1546 /* [out] */ IWICMetadataQueryWriter* ppIQueryWriter);
1547
1548 }
1549
1550 mixin(uuid!(IWICImagingFactory2, "7B816B45-1996-4476-B132-DE9E247C8AF0"));
1551 interface IWICImagingFactory2 : IWICImagingFactory
1552 {
1553 extern(Windows):
1554 HRESULT CreateImageEncoder(
1555 /* [in] */ ID2D1Device pD2DDevice,
1556 /* [out] */ IWICImageEncoder* ppWICImageEncoder);
1557
1558 }
1559
1560 extern(Windows)
1561 {
1562 HRESULT WICConvertBitmapSource(
1563 REFWICPixelFormatGUID dstFormat, // Destination pixel format
1564 IWICBitmapSource pISrc, // Source bitmap
1565 IWICBitmapSource* ppIDst // Destination bitmap, a copy or addrefed source
1566 );
1567 HRESULT WICCreateBitmapFromSection(
1568 UINT width,
1569 UINT height,
1570 REFWICPixelFormatGUID pixelFormat,
1571 HANDLE hSection,
1572 UINT stride,
1573 UINT offset,
1574 IWICBitmap* ppIBitmap
1575 );
1576 HRESULT WICCreateBitmapFromSectionEx(
1577 UINT width,
1578 UINT height,
1579 REFWICPixelFormatGUID pixelFormat,
1580 HANDLE hSection,
1581 UINT stride,
1582 UINT offset,
1583 WICSectionAccessLevel desiredAccessLevel,
1584 IWICBitmap* ppIBitmap
1585 );
1586 HRESULT WICMapGuidToShortName(
1587 REFGUID guid,
1588 UINT cchName,
1589 WCHAR* wzName,
1590 UINT* pcchActual
1591 );
1592 HRESULT WICMapShortNameToGuid(
1593 PCWSTR wzName,
1594 GUID* pguid
1595 );
1596 HRESULT WICMapSchemaToName(
1597 REFGUID guidMetadataFormat,
1598 LPWSTR pwzSchema,
1599 UINT cchName,
1600 WCHAR* wzName,
1601 UINT* pcchActual
1602 );
1603 }
1604 enum FACILITY_WINCODEC_ERR = 0x898;
1605 enum WINCODEC_ERR_BASE = 0x2000;
1606 pure MAKE_WINCODECHR(bool sev, uint code) { return MAKE_HRESULT(sev, FACILITY_WINCODEC_ERR, (WINCODEC_ERR_BASE + code)); }
1607 pure MAKE_WINCODECHR_ERR(uint code) { return MAKE_WINCODECHR(true, code); }
1608 enum WINCODEC_ERR_GENERIC_ERROR = E_FAIL;
1609 enum WINCODEC_ERR_INVALIDPARAMETER = E_INVALIDARG;
1610 enum WINCODEC_ERR_OUTOFMEMORY = E_OUTOFMEMORY;
1611 enum WINCODEC_ERR_NOTIMPLEMENTED = E_NOTIMPL;
1612 enum WINCODEC_ERR_ABORTED = E_ABORT;
1613 enum WINCODEC_ERR_ACCESSDENIED = E_ACCESSDENIED;
1614 enum WINCODEC_ERR_VALUEOVERFLOW = INTSAFE_E_ARITHMETIC_OVERFLOW;
1615 /* [public] */
1616 alias WICTiffCompressionOption = uint;
1617 enum : WICTiffCompressionOption
1618 {
1619 WICTiffCompressionDontCare = 0,
1620 WICTiffCompressionNone = 0x1,
1621 WICTiffCompressionCCITT3 = 0x2,
1622 WICTiffCompressionCCITT4 = 0x3,
1623 WICTiffCompressionLZW = 0x4,
1624 WICTiffCompressionRLE = 0x5,
1625 WICTiffCompressionZIP = 0x6,
1626 WICTiffCompressionLZWHDifferencing = 0x7
1627 }
1628
1629 /* [public] */
1630 alias WICJpegYCrCbSubsamplingOption = uint;
1631 enum : WICJpegYCrCbSubsamplingOption
1632 {
1633 WICJpegYCrCbSubsamplingDefault = 0,
1634 WICJpegYCrCbSubsampling420 = 0x1,
1635 WICJpegYCrCbSubsampling422 = 0x2,
1636 WICJpegYCrCbSubsampling444 = 0x3,
1637 WICJpegYCrCbSubsampling440 = 0x4
1638 }
1639
1640 /* [public] */
1641 alias WICPngFilterOption = uint;
1642 enum : WICPngFilterOption
1643 {
1644 WICPngFilterUnspecified = 0,
1645 WICPngFilterNone = 0x1,
1646 WICPngFilterSub = 0x2,
1647 WICPngFilterUp = 0x3,
1648 WICPngFilterAverage = 0x4,
1649 WICPngFilterPaeth = 0x5,
1650 WICPngFilterAdaptive = 0x6
1651 }
1652
1653 /* [public] */
1654 alias WICNamedWhitePoint = uint;
1655 enum : WICNamedWhitePoint
1656 {
1657 WICWhitePointDefault = 0x1,
1658 WICWhitePointDaylight = 0x2,
1659 WICWhitePointCloudy = 0x4,
1660 WICWhitePointShade = 0x8,
1661 WICWhitePointTungsten = 0x10,
1662 WICWhitePointFluorescent = 0x20,
1663 WICWhitePointFlash = 0x40,
1664 WICWhitePointUnderwater = 0x80,
1665 WICWhitePointCustom = 0x100,
1666 WICWhitePointAutoWhiteBalance = 0x200,
1667 WICWhitePointAsShot = WICWhitePointDefault
1668 }
1669
1670 /* [public] */
1671 alias WICRawCapabilities = uint;
1672 enum : WICRawCapabilities
1673 {
1674 WICRawCapabilityNotSupported = 0,
1675 WICRawCapabilityGetSupported = 0x1,
1676 WICRawCapabilityFullySupported = 0x2
1677 }
1678
1679 /* [public] */
1680 alias WICRawRotationCapabilities = uint;
1681 enum : WICRawRotationCapabilities
1682 {
1683 WICRawRotationCapabilityNotSupported = 0,
1684 WICRawRotationCapabilityGetSupported = 0x1,
1685 WICRawRotationCapabilityNinetyDegreesSupported = 0x2,
1686 WICRawRotationCapabilityFullySupported = 0x3
1687 }
1688
1689 /* [public] */ struct WICRawCapabilitiesInfo
1690 {
1691 UINT cbSize;
1692 UINT CodecMajorVersion;
1693 UINT CodecMinorVersion;
1694 WICRawCapabilities ExposureCompensationSupport;
1695 WICRawCapabilities ContrastSupport;
1696 WICRawCapabilities RGBWhitePointSupport;
1697 WICRawCapabilities NamedWhitePointSupport;
1698 UINT NamedWhitePointSupportMask;
1699 WICRawCapabilities KelvinWhitePointSupport;
1700 WICRawCapabilities GammaSupport;
1701 WICRawCapabilities TintSupport;
1702 WICRawCapabilities SaturationSupport;
1703 WICRawCapabilities SharpnessSupport;
1704 WICRawCapabilities NoiseReductionSupport;
1705 WICRawCapabilities DestinationColorProfileSupport;
1706 WICRawCapabilities ToneCurveSupport;
1707 WICRawRotationCapabilities RotationSupport;
1708 WICRawCapabilities RenderModeSupport;
1709 }
1710
1711 /* [public] */
1712 alias WICRawParameterSet = uint;
1713 enum : WICRawParameterSet
1714 {
1715 WICAsShotParameterSet = 0x1,
1716 WICUserAdjustedParameterSet = 0x2,
1717 WICAutoAdjustedParameterSet = 0x3
1718 }
1719
1720 /* [public] */
1721 alias WICRawRenderMode = uint;
1722 enum : WICRawRenderMode
1723 {
1724 WICRawRenderModeDraft = 0x1,
1725 WICRawRenderModeNormal = 0x2,
1726 WICRawRenderModeBestQuality = 0x3
1727 }
1728
1729 /* [public] */ struct WICRawToneCurvePoint
1730 {
1731 double Input;
1732 double Output;
1733 }
1734
1735 /* [public] */ struct WICRawToneCurve
1736 {
1737 UINT cPoints;
1738 WICRawToneCurvePoint[1] aPoints;
1739 }
1740
1741 enum WICRawChangeNotification_ExposureCompensation = 0x00000001;
1742 enum WICRawChangeNotification_NamedWhitePoint = 0x00000002;
1743 enum WICRawChangeNotification_KelvinWhitePoint = 0x00000004;
1744 enum WICRawChangeNotification_RGBWhitePoint = 0x00000008;
1745 enum WICRawChangeNotification_Contrast = 0x00000010;
1746 enum WICRawChangeNotification_Gamma = 0x00000020;
1747 enum WICRawChangeNotification_Sharpness = 0x00000040;
1748 enum WICRawChangeNotification_Saturation = 0x00000080;
1749 enum WICRawChangeNotification_Tint = 0x00000100;
1750 enum WICRawChangeNotification_NoiseReduction = 0x00000200;
1751 enum WICRawChangeNotification_DestinationColorContext = 0x00000400;
1752 enum WICRawChangeNotification_ToneCurve = 0x00000800;
1753 enum WICRawChangeNotification_Rotation = 0x00001000;
1754 enum WICRawChangeNotification_RenderMode = 0x00002000;
1755
1756 mixin(uuid!(IWICDevelopRawNotificationCallback, "95c75a6e-3e8c-4ec2-85a8-aebcc551e59b"));
1757 interface IWICDevelopRawNotificationCallback : IUnknown
1758 {
1759 extern(Windows):
1760 HRESULT Notify(
1761 /* [in] */ UINT NotificationMask);
1762
1763 }
1764
1765 mixin(uuid!(IWICDevelopRaw, "fbec5e44-f7be-4b65-b7f8-c0c81fef026d"));
1766 interface IWICDevelopRaw : IWICBitmapFrameDecode
1767 {
1768 extern(Windows):
1769 /* [local] */ HRESULT QueryRawCapabilitiesInfo(
1770 /* [out][in] */ WICRawCapabilitiesInfo* pInfo);
1771
1772 HRESULT LoadParameterSet(
1773 /* [in] */ WICRawParameterSet ParameterSet);
1774
1775 HRESULT GetCurrentParameterSet(
1776 /* [out] */ IPropertyBag2* ppCurrentParameterSet);
1777
1778 HRESULT SetExposureCompensation(
1779 /* [in] */ double ev);
1780
1781 HRESULT GetExposureCompensation(
1782 /* [out] */ double* pEV);
1783
1784 HRESULT SetWhitePointRGB(
1785 /* [in] */ UINT Red,
1786 /* [in] */ UINT Green,
1787 /* [in] */ UINT Blue);
1788
1789 HRESULT GetWhitePointRGB(
1790 /* [out] */ UINT* pRed,
1791 /* [out] */ UINT* pGreen,
1792 /* [out] */ UINT* pBlue);
1793
1794 HRESULT SetNamedWhitePoint(
1795 /* [in] */ WICNamedWhitePoint WhitePoint);
1796
1797 HRESULT GetNamedWhitePoint(
1798 /* [out] */ WICNamedWhitePoint* pWhitePoint);
1799
1800 HRESULT SetWhitePointKelvin(
1801 /* [in] */ UINT WhitePointKelvin);
1802
1803 HRESULT GetWhitePointKelvin(
1804 /* [out] */ UINT* pWhitePointKelvin);
1805
1806 HRESULT GetKelvinRangeInfo(
1807 /* [out] */ UINT* pMinKelvinTemp,
1808 /* [out] */ UINT* pMaxKelvinTemp,
1809 /* [out] */ UINT* pKelvinTempStepValue);
1810
1811 HRESULT SetContrast(
1812 /* [in] */ double Contrast);
1813
1814 HRESULT GetContrast(
1815 /* [out] */ double* pContrast);
1816
1817 HRESULT SetGamma(
1818 /* [in] */ double Gamma);
1819
1820 HRESULT GetGamma(
1821 /* [out] */ double* pGamma);
1822
1823 HRESULT SetSharpness(
1824 /* [in] */ double Sharpness);
1825
1826 HRESULT GetSharpness(
1827 /* [out] */ double* pSharpness);
1828
1829 HRESULT SetSaturation(
1830 /* [in] */ double Saturation);
1831
1832 HRESULT GetSaturation(
1833 /* [out] */ double* pSaturation);
1834
1835 HRESULT SetTint(
1836 /* [in] */ double Tint);
1837
1838 HRESULT GetTint(
1839 /* [out] */ double* pTint);
1840
1841 HRESULT SetNoiseReduction(
1842 /* [in] */ double NoiseReduction);
1843
1844 HRESULT GetNoiseReduction(
1845 /* [out] */ double* pNoiseReduction);
1846
1847 HRESULT SetDestinationColorContext(
1848 /* [unique][in] */ IWICColorContext pColorContext);
1849
1850 /* [local] */ HRESULT SetToneCurve(
1851 /* [in] */ UINT cbToneCurveSize,
1852 /* [annotation][in] */
1853 const(WICRawToneCurve)* pToneCurve);
1854
1855 /* [local] */ HRESULT GetToneCurve(
1856 /* [in] */ UINT cbToneCurveBufferSize,
1857 /* [annotation][unique][out] */
1858 WICRawToneCurve* pToneCurve,
1859 /* [annotation][unique][out] */
1860 UINT* pcbActualToneCurveBufferSize);
1861
1862 HRESULT SetRotation(
1863 /* [in] */ double Rotation);
1864
1865 HRESULT GetRotation(
1866 /* [out] */ double* pRotation);
1867
1868 HRESULT SetRenderMode(
1869 /* [in] */ WICRawRenderMode RenderMode);
1870
1871 HRESULT GetRenderMode(
1872 /* [out] */ WICRawRenderMode* pRenderMode);
1873
1874 HRESULT SetNotificationCallback(
1875 /* [unique][in] */ IWICDevelopRawNotificationCallback pCallback);
1876
1877 }
1878
1879
1880 /* interface __MIDL_itf_wincodec_0000_0038 */
1881 /* [local] */
1882
1883 /* [public] */
1884 alias WICDdsDimension = uint;
1885 enum : WICDdsDimension
1886 {
1887 WICDdsTexture1D = 0,
1888 WICDdsTexture2D = 0x1,
1889 WICDdsTexture3D = 0x2,
1890 WICDdsTextureCube = 0x3
1891 }
1892
1893 /* [public] */
1894 alias WICDdsAlphaMode = uint;
1895 enum : WICDdsAlphaMode
1896 {
1897 WICDdsAlphaModeUnknown = 0,
1898 WICDdsAlphaModeStraight = 0x1,
1899 WICDdsAlphaModePremultiplied = 0x2,
1900 WICDdsAlphaModeOpaque = 0x3,
1901 WICDdsAlphaModeCustom = 0x4
1902 }
1903
1904 /* [public] */ struct WICDdsParameters
1905 {
1906 UINT Width;
1907 UINT Height;
1908 UINT Depth;
1909 UINT MipLevels;
1910 UINT ArraySize;
1911 DXGI_FORMAT DxgiFormat;
1912 WICDdsDimension Dimension;
1913 WICDdsAlphaMode AlphaMode;
1914 }
1915
1916 mixin(uuid!(IWICDdsDecoder, "409cd537-8532-40cb-9774-e2feb2df4e9c"));
1917 interface IWICDdsDecoder : IUnknown
1918 {
1919 extern(Windows):
1920 HRESULT GetParameters(
1921 /* [out] */ WICDdsParameters* pParameters);
1922
1923 HRESULT GetFrame(
1924 /* [in] */ UINT arrayIndex,
1925 /* [in] */ UINT mipLevel,
1926 /* [in] */ UINT sliceIndex,
1927 /* [retval][out] */ IWICBitmapFrameDecode* ppIBitmapFrame);
1928
1929 }
1930
1931 mixin(uuid!(IWICDdsEncoder, "5cacdb4c-407e-41b3-b936-d0f010cd6732"));
1932 interface IWICDdsEncoder : IUnknown
1933 {
1934 extern(Windows):
1935 HRESULT SetParameters(
1936 /* [in] */ WICDdsParameters* pParameters);
1937
1938 HRESULT GetParameters(
1939 /* [out] */ WICDdsParameters* pParameters);
1940
1941 HRESULT CreateNewFrame(
1942 /* [out] */ IWICBitmapFrameEncode* ppIFrameEncode,
1943 /* [optional][out] */ UINT* pArrayIndex,
1944 /* [optional][out] */ UINT* pMipLevel,
1945 /* [optional][out] */ UINT* pSliceIndex);
1946
1947 }
1948
1949 /* [public] */ struct WICDdsFormatInfo
1950 {
1951 DXGI_FORMAT DxgiFormat;
1952 UINT BytesPerBlock;
1953 UINT BlockWidth;
1954 UINT BlockHeight;
1955 }
1956
1957 mixin(uuid!(IWICDdsFrameDecode, "3d4c0c61-18a4-41e4-bd80-481a4fc9f464"));
1958 interface IWICDdsFrameDecode : IUnknown
1959 {
1960 extern(Windows):
1961 HRESULT GetSizeInBlocks(
1962 /* [out] */ UINT* pWidthInBlocks,
1963 /* [out] */ UINT* pHeightInBlocks);
1964
1965 HRESULT GetFormatInfo(
1966 /* [out] */ WICDdsFormatInfo* pFormatInfo);
1967
1968 HRESULT CopyBlocks(
1969 /* [unique][in] */ const(WICRect)* prcBoundsInBlocks,
1970 /* [in] */ UINT cbStride,
1971 /* [in] */ UINT cbBufferSize,
1972 /* [size_is][out] */ BYTE* pbBuffer);
1973
1974 }
1975
1976 mixin(uuid!(IWICJpegFrameDecode, "8939F66E-C46A-4c21-A9D1-98B327CE1679"));
1977 interface IWICJpegFrameDecode : IUnknown
1978 {
1979 extern(Windows):
1980 HRESULT DoesSupportIndexing(
1981 /* [out] */ BOOL* pfIndexingSupported);
1982
1983 HRESULT SetIndexing(
1984 WICJpegIndexingOptions options,
1985 UINT horizontalIntervalSize);
1986
1987 HRESULT ClearIndexing();
1988
1989 HRESULT GetAcHuffmanTable(
1990 UINT scanIndex,
1991 /* [range] */ UINT tableIndex,
1992 /* [out] */ DXGI_JPEG_AC_HUFFMAN_TABLE* pAcHuffmanTable);
1993
1994 HRESULT GetDcHuffmanTable(
1995 UINT scanIndex,
1996 /* [range] */ UINT tableIndex,
1997 /* [out] */ DXGI_JPEG_DC_HUFFMAN_TABLE* pDcHuffmanTable);
1998
1999 HRESULT GetQuantizationTable(
2000 UINT scanIndex,
2001 /* [range] */ UINT tableIndex,
2002 /* [out] */ DXGI_JPEG_QUANTIZATION_TABLE* pQuantizationTable);
2003
2004 HRESULT GetFrameHeader(
2005 /* [out] */ WICJpegFrameHeader* pFrameHeader);
2006
2007 HRESULT GetScanHeader(
2008 UINT scanIndex,
2009 /* [out] */ WICJpegScanHeader* pScanHeader);
2010
2011 HRESULT CopyScan(
2012 UINT scanIndex,
2013 UINT scanOffset,
2014 /* [in] */ UINT cbScanData,
2015 /* [length_is][size_is][out] */ BYTE* pbScanData,
2016 /* [out] */ UINT* pcbScanDataActual);
2017
2018 HRESULT CopyMinimalStream(
2019 UINT streamOffset,
2020 /* [in] */ UINT cbStreamData,
2021 /* [length_is][size_is][out] */ BYTE* pbStreamData,
2022 /* [out] */ UINT* pcbStreamDataActual);
2023
2024 }
2025
2026 mixin(uuid!(IWICJpegFrameEncode, "2F0C601F-D2C6-468C-ABFA-49495D983ED1"));
2027 interface IWICJpegFrameEncode : IUnknown
2028 {
2029 extern(Windows):
2030 HRESULT GetAcHuffmanTable(
2031 UINT scanIndex,
2032 /* [range] */ UINT tableIndex,
2033 /* [out] */ DXGI_JPEG_AC_HUFFMAN_TABLE* pAcHuffmanTable);
2034
2035 HRESULT GetDcHuffmanTable(
2036 UINT scanIndex,
2037 /* [range] */ UINT tableIndex,
2038 /* [out] */ DXGI_JPEG_DC_HUFFMAN_TABLE* pDcHuffmanTable);
2039
2040 HRESULT GetQuantizationTable(
2041 UINT scanIndex,
2042 /* [range] */ UINT tableIndex,
2043 /* [out] */ DXGI_JPEG_QUANTIZATION_TABLE* pQuantizationTable);
2044
2045 HRESULT WriteScan(
2046 /* [in] */ UINT cbScanData,
2047 /* [size_is][in] */ const(BYTE)* pbScanData);
2048
2049 }
2050
2051 extern(Windows)
2052 {
2053 import core.stdc.config : c_ulong;
2054
2055 c_ulong BSTR_UserSize( c_ulong *, c_ulong , BSTR * );
2056 byte * BSTR_UserMarshal( c_ulong *, byte *, BSTR * );
2057 byte * BSTR_UserUnmarshal(c_ulong *, byte *, BSTR * );
2058 void BSTR_UserFree( c_ulong *, BSTR * );
2059
2060 c_ulong HBITMAP_UserSize( c_ulong *, c_ulong , HBITMAP * );
2061 byte * HBITMAP_UserMarshal( c_ulong *, byte *, HBITMAP * );
2062 byte * HBITMAP_UserUnmarshal(c_ulong *, byte *, HBITMAP * );
2063 void HBITMAP_UserFree( c_ulong *, HBITMAP * );
2064
2065 c_ulong HICON_UserSize( c_ulong *, c_ulong , HICON * );
2066 byte * HICON_UserMarshal( c_ulong *, byte *, HICON * );
2067 byte * HICON_UserUnmarshal(c_ulong *, byte *, HICON * );
2068 void HICON_UserFree( c_ulong *, HICON * );
2069
2070 c_ulong HPALETTE_UserSize( c_ulong *, c_ulong , HPALETTE * );
2071 byte * HPALETTE_UserMarshal( c_ulong *, byte *, HPALETTE * );
2072 byte * HPALETTE_UserUnmarshal(c_ulong *, byte *, HPALETTE * );
2073 void HPALETTE_UserFree( c_ulong *, HPALETTE * );
2074
2075 c_ulong LPSAFEARRAY_UserSize( c_ulong *, c_ulong , LPSAFEARRAY * );
2076 byte * LPSAFEARRAY_UserMarshal( c_ulong *, byte *, LPSAFEARRAY * );
2077 byte * LPSAFEARRAY_UserUnmarshal(c_ulong *, byte *, LPSAFEARRAY * );
2078 void LPSAFEARRAY_UserFree( c_ulong *, LPSAFEARRAY * );
2079
2080 c_ulong WICInProcPointer_UserSize( c_ulong *, c_ulong , WICInProcPointer * );
2081 byte * WICInProcPointer_UserMarshal( c_ulong *, byte *, WICInProcPointer * );
2082 byte * WICInProcPointer_UserUnmarshal(c_ulong *, byte *, WICInProcPointer * );
2083 void WICInProcPointer_UserFree( c_ulong *, WICInProcPointer * );
2084
2085 /* [local] */ HRESULT IWICBitmapCodecProgressNotification_RegisterProgressNotification_Proxy(
2086 IWICBitmapCodecProgressNotification This,
2087 /* [annotation][unique][in] */
2088 PFNProgressNotification pfnProgressNotification,
2089 /* [annotation][unique][in] */
2090 LPVOID pvData,
2091 /* [in] */ DWORD dwProgressFlags);
2092
2093
2094 /* [call_as] */ HRESULT IWICBitmapCodecProgressNotification_RegisterProgressNotification_Stub(
2095 IWICBitmapCodecProgressNotification This,
2096 /* [unique][in] */ IWICProgressCallback pICallback,
2097 /* [in] */ DWORD dwProgressFlags);
2098
2099 /* [local] */ HRESULT IWICBitmapDecoderInfo_GetPatterns_Proxy(
2100 IWICBitmapDecoderInfo This,
2101 /* [in] */ UINT cbSizePatterns,
2102 /* [annotation][unique][size_is][out] */
2103 WICBitmapPattern* pPatterns,
2104 /* [annotation][unique][out] */
2105 UINT* pcPatterns,
2106 /* [annotation][out] */
2107 UINT* pcbPatternsActual);
2108
2109
2110 /* [call_as] */ HRESULT IWICBitmapDecoderInfo_GetPatterns_Stub(
2111 IWICBitmapDecoderInfo This,
2112 /* [size_is][size_is][out] */ WICBitmapPattern** ppPatterns,
2113 /* [out] */ UINT* pcPatterns);
2114
2115 /* [local] */ HRESULT IWICDevelopRaw_QueryRawCapabilitiesInfo_Proxy(
2116 IWICDevelopRaw This,
2117 /* [out][in] */ WICRawCapabilitiesInfo* pInfo);
2118
2119
2120 /* [call_as] */ HRESULT IWICDevelopRaw_QueryRawCapabilitiesInfo_Stub(
2121 IWICDevelopRaw This,
2122 /* [out][in] */ WICRawCapabilitiesInfo* pInfo);
2123
2124 /* [local] */ HRESULT IWICDevelopRaw_SetToneCurve_Proxy(
2125 IWICDevelopRaw This,
2126 /* [in] */ UINT cbToneCurveSize,
2127 /* [annotation][in] */
2128 const(WICRawToneCurve)* pToneCurve);
2129
2130
2131 /* [call_as] */ HRESULT IWICDevelopRaw_SetToneCurve_Stub(
2132 IWICDevelopRaw This,
2133 /* [in] */ UINT cPoints,
2134 /* [size_is][in] */ const(WICRawToneCurvePoint)* aPoints);
2135
2136 /* [local] */ HRESULT IWICDevelopRaw_GetToneCurve_Proxy(
2137 IWICDevelopRaw This,
2138 /* [in] */ UINT cbToneCurveBufferSize,
2139 /* [annotation][unique][out] */
2140 WICRawToneCurve* pToneCurve,
2141 /* [annotation][unique][out] */
2142 UINT* pcbActualToneCurveBufferSize);
2143
2144
2145 /* [call_as] */ HRESULT IWICDevelopRaw_GetToneCurve_Stub(
2146 IWICDevelopRaw This,
2147 /* [out] */ UINT* pcPoints,
2148 /* [size_is][size_is][out] */ WICRawToneCurvePoint** paPoints);
2149 }