| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Mappings for the contents of wincodec.h |
| use ctypes::c_double; |
| use shared::basetsd::{UINT32, ULONG_PTR}; |
| use shared::dxgiformat::DXGI_FORMAT; |
| use shared::dxgitype::{ |
| DXGI_JPEG_AC_HUFFMAN_TABLE, DXGI_JPEG_DC_HUFFMAN_TABLE, |
| DXGI_JPEG_QUANTIZATION_TABLE |
| }; |
| use shared::guiddef::{CLSID, GUID, REFCLSID, REFGUID}; |
| use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, LPVOID, UINT, ULONG}; |
| use shared::ntdef::{LPCWSTR, LPWSTR, PCWSTR, WCHAR}; |
| use shared::windef::{HBITMAP, HICON, HPALETTE}; |
| use shared::winerror::{ |
| E_ABORT, E_ACCESSDENIED, E_FAIL, E_INVALIDARG, E_NOTIMPL, E_OUTOFMEMORY, HRESULT, |
| SEVERITY_ERROR |
| }; |
| use um::d2d1::ID2D1Image; |
| use um::d2d1_1::ID2D1Device; |
| use um::dcommon::D2D1_PIXEL_FORMAT; |
| use um::objidlbase::{IEnumString, IEnumUnknown, IStream, IStreamVtbl}; |
| use um::ocidl::IPropertyBag2; |
| use um::propidl::PROPVARIANT; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::winnt::{HANDLE, ULARGE_INTEGER}; |
| DEFINE_GUID!{CLSID_WICImagingFactory, |
| 0xcacaf262, 0x9370, 0x4615, 0xa1, 0x3b, 0x9f, 0x55, 0x39, 0xda, 0x4c, 0xa} |
| DEFINE_GUID!{CLSID_WICImagingFactory1, |
| 0xcacaf262, 0x9370, 0x4615, 0xa1, 0x3b, 0x9f, 0x55, 0x39, 0xda, 0x4c, 0xa} |
| DEFINE_GUID!{CLSID_WICImagingFactory2, |
| 0x317d06e8, 0x5f24, 0x433d, 0xbd, 0xf7, 0x79, 0xce, 0x68, 0xd8, 0xab, 0xc2} |
| DEFINE_GUID!{GUID_VendorMicrosoft, |
| 0xf0e749ca, 0xedef, 0x4589, 0xa7, 0x3a, 0xee, 0xe, 0x62, 0x6a, 0x2a, 0x2b} |
| DEFINE_GUID!{GUID_VendorMicrosoftBuiltIn, |
| 0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33} |
| DEFINE_GUID!{CLSID_WICPngDecoder, |
| 0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51} |
| DEFINE_GUID!{CLSID_WICPngDecoder1, |
| 0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51} |
| DEFINE_GUID!{CLSID_WICPngDecoder2, |
| 0xe018945b, 0xaa86, 0x4008, 0x9b, 0xd4, 0x67, 0x77, 0xa1, 0xe4, 0x0c, 0x11} |
| DEFINE_GUID!{CLSID_WICBmpDecoder, |
| 0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0x0f, 0x27, 0x78} |
| DEFINE_GUID!{CLSID_WICIcoDecoder, |
| 0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe} |
| DEFINE_GUID!{CLSID_WICJpegDecoder, |
| 0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0x0b, 0x2d, 0x9b, 0x71, 0xb1, 0xca} |
| DEFINE_GUID!{CLSID_WICGifDecoder, |
| 0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe} |
| DEFINE_GUID!{CLSID_WICTiffDecoder, |
| 0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b} |
| DEFINE_GUID!{CLSID_WICWmpDecoder, |
| 0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d} |
| DEFINE_GUID!{CLSID_WICDdsDecoder, |
| 0x9053699f, 0xa341, 0x429d, 0x9e, 0x90, 0xee, 0x43, 0x7c, 0xf8, 0x0c, 0x73} |
| DEFINE_GUID!{CLSID_WICBmpEncoder, |
| 0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82} |
| DEFINE_GUID!{CLSID_WICPngEncoder, |
| 0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc} |
| DEFINE_GUID!{CLSID_WICJpegEncoder, |
| 0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76} |
| DEFINE_GUID!{CLSID_WICGifEncoder, |
| 0x114f5598, 0x0b22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd} |
| DEFINE_GUID!{CLSID_WICTiffEncoder, |
| 0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8} |
| DEFINE_GUID!{CLSID_WICWmpEncoder, |
| 0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2} |
| DEFINE_GUID!{CLSID_WICDdsEncoder, |
| 0xa61dde94, 0x66ce, 0x4ac1, 0x88, 0x1b, 0x71, 0x68, 0x05, 0x88, 0x89, 0x5e} |
| DEFINE_GUID!{CLSID_WICAdngDecoder, |
| 0x981d9411, 0x909e, 0x42a7, 0x8f, 0x5d, 0xa7, 0x47, 0xff, 0x05, 0x2e, 0xdb} |
| DEFINE_GUID!{CLSID_WICJpegQualcommPhoneEncoder, |
| 0x68ed5c62, 0xf534, 0x4979, 0xb2, 0xb3, 0x68, 0x6a, 0x12, 0xb2, 0xb3, 0x4c} |
| DEFINE_GUID!{GUID_ContainerFormatBmp, |
| 0x0af1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3} |
| DEFINE_GUID!{GUID_ContainerFormatPng, |
| 0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf} |
| DEFINE_GUID!{GUID_ContainerFormatIco, |
| 0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21} |
| DEFINE_GUID!{GUID_ContainerFormatJpeg, |
| 0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x02, 0x8e, 0x10, 0x57} |
| DEFINE_GUID!{GUID_ContainerFormatTiff, |
| 0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3} |
| DEFINE_GUID!{GUID_ContainerFormatGif, |
| 0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5} |
| DEFINE_GUID!{GUID_ContainerFormatWmp, |
| 0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b} |
| DEFINE_GUID!{GUID_ContainerFormatDds, |
| 0x9967cb95, 0x2e85, 0x4ac8, 0x8c, 0xa2, 0x83, 0xd7, 0xcc, 0xd4, 0x25, 0xc9} |
| DEFINE_GUID!{GUID_ContainerFormatAdng, |
| 0xf3ff6d0d, 0x38c0, 0x41c4, 0xb1, 0xfe, 0x1f, 0x38, 0x24, 0xf1, 0x7b, 0x84} |
| DEFINE_GUID!{CLSID_WICImagingCategories, |
| 0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81} |
| DEFINE_GUID!{CATID_WICBitmapDecoders, |
| 0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3} |
| DEFINE_GUID!{CATID_WICBitmapEncoders, |
| 0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e} |
| DEFINE_GUID!{CATID_WICPixelFormats, |
| 0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b} |
| DEFINE_GUID!{CATID_WICFormatConverters, |
| 0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48} |
| DEFINE_GUID!{CATID_WICMetadataReader, |
| 0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8} |
| DEFINE_GUID!{CATID_WICMetadataWriter, |
| 0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e} |
| DEFINE_GUID!{CLSID_WICDefaultFormatConverter, |
| 0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1} |
| DEFINE_GUID!{CLSID_WICFormatConverterHighColor, |
| 0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11} |
| DEFINE_GUID!{CLSID_WICFormatConverterNChannel, |
| 0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1} |
| DEFINE_GUID!{CLSID_WICFormatConverterWMPhoto, |
| 0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9} |
| DEFINE_GUID!{CLSID_WICPlanarFormatConverter, |
| 0x184132b8, 0x32f8, 0x4784, 0x91, 0x31, 0xdd, 0x72, 0x24, 0xb2, 0x34, 0x38} |
| pub type WICColor = UINT32; |
| STRUCT!{struct WICRect { |
| X: INT, |
| Y: INT, |
| Width: INT, |
| Height: INT, |
| }} |
| pub type WICInProcPointer = *mut BYTE; |
| ENUM!{enum WICColorContextType { |
| WICColorContextUninitialized = 0x00000000, |
| WICColorContextProfile = 0x00000001, |
| WICColorContextExifColorSpace = 0x00000002, |
| }} |
| pub const CODEC_FORCE_DWORD: DWORD = 0x7FFFFFFF; |
| pub const WIC_JPEG_MAX_COMPONENT_COUNT: UINT = 4; |
| pub const WIC_JPEG_MAX_TABLE_INDEX: UINT = 3; |
| pub const WIC_JPEG_SAMPLE_FACTORS_ONE: DWORD = 0x00000011; |
| pub const WIC_JPEG_SAMPLE_FACTORS_THREE_420: DWORD = 0x00111122; |
| pub const WIC_JPEG_SAMPLE_FACTORS_THREE_422: DWORD = 0x00111121; |
| pub const WIC_JPEG_SAMPLE_FACTORS_THREE_440: DWORD = 0x00111112; |
| pub const WIC_JPEG_SAMPLE_FACTORS_THREE_444: DWORD = 0x00111111; |
| pub const WIC_JPEG_QUANTIZATION_BASELINE_ONE: DWORD = 0x00000000; |
| pub const WIC_JPEG_QUANTIZATION_BASELINE_THREE: DWORD = 0x00010100; |
| pub const WIC_JPEG_HUFFMAN_BASELINE_ONE: DWORD = 0x00000000; |
| pub const WIC_JPEG_HUFFMAN_BASELINE_THREE: DWORD = 0x00111100; |
| pub type REFWICPixelFormatGUID = REFGUID; |
| pub type WICPixelFormatGUID = GUID; |
| DEFINE_GUID!{GUID_WICPixelFormatDontCare, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00} |
| DEFINE_GUID!{GUID_WICPixelFormat1bppIndexed, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01} |
| DEFINE_GUID!{GUID_WICPixelFormat2bppIndexed, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02} |
| DEFINE_GUID!{GUID_WICPixelFormat4bppIndexed, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppIndexed, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04} |
| DEFINE_GUID!{GUID_WICPixelFormatBlackWhite, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05} |
| DEFINE_GUID!{GUID_WICPixelFormat2bppGray, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06} |
| DEFINE_GUID!{GUID_WICPixelFormat4bppGray, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppGray, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppAlpha, |
| 0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppBGR555, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppBGR565, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppBGRA5551, |
| 0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppGray, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b} |
| DEFINE_GUID!{GUID_WICPixelFormat24bppBGR, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c} |
| DEFINE_GUID!{GUID_WICPixelFormat24bppRGB, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppBGR, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppBGRA, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppPBGRA, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppGrayFloat, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppRGB, |
| 0xd98c6b95, 0x3efe, 0x47d6, 0xbb, 0x25, 0xeb, 0x17, 0x48, 0xab, 0x0c, 0xf1} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA, |
| 0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppPRGBA, |
| 0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba} |
| DEFINE_GUID!{GUID_WICPixelFormat48bppRGB, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15} |
| DEFINE_GUID!{GUID_WICPixelFormat48bppBGR, |
| 0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGB, |
| 0xa1182111, 0x186d, 0x4d42, 0xbc, 0x6a, 0x9c, 0x83, 0x03, 0xa8, 0xdf, 0xf9} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGBA, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppBGRA, |
| 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppPRGBA, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppPBGRA, |
| 0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppGrayFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppBGR101010, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14} |
| DEFINE_GUID!{GUID_WICPixelFormat48bppRGBFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12} |
| DEFINE_GUID!{GUID_WICPixelFormat48bppBGRFixedPoint, |
| 0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a} |
| DEFINE_GUID!{GUID_WICPixelFormat96bppRGBFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18} |
| DEFINE_GUID!{GUID_WICPixelFormat96bppRGBFloat, |
| 0xe3fed78f, 0xe8db, 0x4acf, 0x84, 0xc1, 0xe9, 0x7f, 0x61, 0x36, 0xb3, 0x27} |
| DEFINE_GUID!{GUID_WICPixelFormat128bppRGBAFloat, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19} |
| DEFINE_GUID!{GUID_WICPixelFormat128bppPRGBAFloat, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a} |
| DEFINE_GUID!{GUID_WICPixelFormat128bppRGBFloat, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppCMYK, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGBAFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppBGRAFixedPoint, |
| 0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGBFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40} |
| DEFINE_GUID!{GUID_WICPixelFormat128bppRGBAFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e} |
| DEFINE_GUID!{GUID_WICPixelFormat128bppRGBFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGBAHalf, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppPRGBAHalf, |
| 0x58ad26c2, 0xc623, 0x4d9d, 0xb3, 0x20, 0x38, 0x7e, 0x49, 0xf8, 0xc4, 0x42} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppRGBHalf, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42} |
| DEFINE_GUID!{GUID_WICPixelFormat48bppRGBHalf, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppRGBE, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppGrayHalf, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppGrayFixedPoint, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA1010102, |
| 0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0} |
| DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA1010102XR, |
| 0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c} |
| DEFINE_GUID!{GUID_WICPixelFormat64bppCMYK, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f} |
| DEFINE_GUID!{GUID_WICPixelFormat24bpp3Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20} |
| DEFINE_GUID!{GUID_WICPixelFormat32bpp4Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21} |
| DEFINE_GUID!{GUID_WICPixelFormat40bpp5Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22} |
| DEFINE_GUID!{GUID_WICPixelFormat48bpp6Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23} |
| DEFINE_GUID!{GUID_WICPixelFormat56bpp7Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24} |
| DEFINE_GUID!{GUID_WICPixelFormat64bpp8Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25} |
| DEFINE_GUID!{GUID_WICPixelFormat48bpp3Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26} |
| DEFINE_GUID!{GUID_WICPixelFormat64bpp4Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27} |
| DEFINE_GUID!{GUID_WICPixelFormat80bpp5Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28} |
| DEFINE_GUID!{GUID_WICPixelFormat96bpp6Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29} |
| DEFINE_GUID!{GUID_WICPixelFormat112bpp7Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a} |
| DEFINE_GUID!{GUID_WICPixelFormat128bpp8Channels, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b} |
| DEFINE_GUID!{GUID_WICPixelFormat40bppCMYKAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c} |
| DEFINE_GUID!{GUID_WICPixelFormat80bppCMYKAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d} |
| DEFINE_GUID!{GUID_WICPixelFormat32bpp3ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e} |
| DEFINE_GUID!{GUID_WICPixelFormat40bpp4ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f} |
| DEFINE_GUID!{GUID_WICPixelFormat48bpp5ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30} |
| DEFINE_GUID!{GUID_WICPixelFormat56bpp6ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31} |
| DEFINE_GUID!{GUID_WICPixelFormat64bpp7ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32} |
| DEFINE_GUID!{GUID_WICPixelFormat72bpp8ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33} |
| DEFINE_GUID!{GUID_WICPixelFormat64bpp3ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34} |
| DEFINE_GUID!{GUID_WICPixelFormat80bpp4ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35} |
| DEFINE_GUID!{GUID_WICPixelFormat96bpp5ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36} |
| DEFINE_GUID!{GUID_WICPixelFormat112bpp6ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37} |
| DEFINE_GUID!{GUID_WICPixelFormat128bpp7ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38} |
| DEFINE_GUID!{GUID_WICPixelFormat144bpp8ChannelsAlpha, |
| 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppY, |
| 0x91B4DB54, 0x2DF9, 0x42F0, 0xB4, 0x49, 0x29, 0x09, 0xBB, 0x3D, 0xF8, 0x8E} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppCb, |
| 0x1339F224, 0x6BFE, 0x4C3E, 0x93, 0x02, 0xE4, 0xF3, 0xA6, 0xD0, 0xCA, 0x2A} |
| DEFINE_GUID!{GUID_WICPixelFormat8bppCr, |
| 0xB8145053, 0x2116, 0x49F0, 0x88, 0x35, 0xED, 0x84, 0x4B, 0x20, 0x5C, 0x51} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppCbCr, |
| 0xFF95BA6E, 0x11E0, 0x4263, 0xBB, 0x45, 0x01, 0x72, 0x1F, 0x34, 0x60, 0xA4} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppYQuantizedDctCoefficients, |
| 0xA355F433, 0x48E8, 0x4A42, 0x84, 0xD8, 0xE2, 0xAA, 0x26, 0xCA, 0x80, 0xA4} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppCbQuantizedDctCoefficients, |
| 0xD2C4FF61, 0x56A5, 0x49C2, 0x8B, 0x5C, 0x4C, 0x19, 0x25, 0x96, 0x48, 0x37} |
| DEFINE_GUID!{GUID_WICPixelFormat16bppCrQuantizedDctCoefficients, |
| 0x2FE354F0, 0x1680, 0x42D8, 0x92, 0x31, 0xE7, 0x3C, 0x05, 0x65, 0xBF, 0xC1} |
| ENUM!{enum WICBitmapCreateCacheOption { |
| WICBitmapNoCache = 0x00000000, |
| WICBitmapCacheOnDemand = 0x00000001, |
| WICBitmapCacheOnLoad = 0x00000002, |
| WICBITMAPCREATECACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICDecodeOptions { |
| WICDecodeMetadataCacheOnDemand = 0x00000000, |
| WICDecodeMetadataCacheOnLoad = 0x00000001, |
| WICMETADATACACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapEncoderCacheOption { |
| WICBitmapEncoderCacheInMemory = 0x00000000, |
| WICBitmapEncoderCacheTempFile = 0x00000001, |
| WICBitmapEncoderNoCache = 0x00000002, |
| WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICComponentType { |
| WICDecoder = 0x00000001, |
| WICEncoder = 0x00000002, |
| WICPixelFormatConverter = 0x00000004, |
| WICMetadataReader = 0x00000008, |
| WICMetadataWriter = 0x00000010, |
| WICPixelFormat = 0x00000020, |
| WICAllComponents = 0x0000003F, |
| WICCOMPONENTTYPE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICComponentEnumerateOptions { |
| WICComponentEnumerateDefault = 0x00000000, |
| WICComponentEnumerateRefresh = 0x00000001, |
| WICComponentEnumerateDisabled = 0x80000000, |
| WICComponentEnumerateUnsigned = 0x40000000, |
| WICComponentEnumerateBuiltInOnly = 0x20000000, |
| WICCOMPONENTENUMERATEOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| STRUCT!{struct WICBitmapPattern { |
| Position: ULARGE_INTEGER, |
| Length: ULONG, |
| Pattern: *mut BYTE, |
| Mask: *mut BYTE, |
| EndOfStream: BOOL, |
| }} |
| ENUM!{enum WICBitmapInterpolationMode { |
| WICBitmapInterpolationModeNearestNeighbor = 0x00000000, |
| WICBitmapInterpolationModeLinear = 0x00000001, |
| WICBitmapInterpolationModeCubic = 0x00000002, |
| WICBitmapInterpolationModeFant = 0x00000003, |
| WICBitmapInterpolationModeHighQualityCubic = 0x00000004, |
| WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapPaletteType { |
| WICBitmapPaletteTypeCustom = 0x00000000, |
| WICBitmapPaletteTypeMedianCut = 0x00000001, |
| WICBitmapPaletteTypeFixedBW = 0x00000002, |
| WICBitmapPaletteTypeFixedHalftone8 = 0x00000003, |
| WICBitmapPaletteTypeFixedHalftone27 = 0x00000004, |
| WICBitmapPaletteTypeFixedHalftone64 = 0x00000005, |
| WICBitmapPaletteTypeFixedHalftone125 = 0x00000006, |
| WICBitmapPaletteTypeFixedHalftone216 = 0x00000007, |
| WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216, |
| WICBitmapPaletteTypeFixedHalftone252 = 0x00000008, |
| WICBitmapPaletteTypeFixedHalftone256 = 0x00000009, |
| WICBitmapPaletteTypeFixedGray4 = 0x0000000A, |
| WICBitmapPaletteTypeFixedGray16 = 0x0000000B, |
| WICBitmapPaletteTypeFixedGray256 = 0x0000000C, |
| WICBITMAPPALETTETYPE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapDitherType { |
| WICBitmapDitherTypeNone = 0x00000000, |
| WICBitmapDitherTypeSolid = 0x00000000, |
| WICBitmapDitherTypeOrdered4x4 = 0x00000001, |
| WICBitmapDitherTypeOrdered8x8 = 0x00000002, |
| WICBitmapDitherTypeOrdered16x16 = 0x00000003, |
| WICBitmapDitherTypeSpiral4x4 = 0x00000004, |
| WICBitmapDitherTypeSpiral8x8 = 0x00000005, |
| WICBitmapDitherTypeDualSpiral4x4 = 0x00000006, |
| WICBitmapDitherTypeDualSpiral8x8 = 0x00000007, |
| WICBitmapDitherTypeErrorDiffusion = 0x00000008, |
| WICBITMAPDITHERTYPE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapAlphaChannelOption { |
| WICBitmapUseAlpha = 0x00000000, |
| WICBitmapUsePremultipliedAlpha = 0x00000001, |
| WICBitmapIgnoreAlpha = 0x00000002, |
| WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapTransformOptions { |
| WICBitmapTransformRotate0 = 0x00000000, |
| WICBitmapTransformRotate90 = 0x00000001, |
| WICBitmapTransformRotate180 = 0x00000002, |
| WICBitmapTransformRotate270 = 0x00000003, |
| WICBitmapTransformFlipHorizontal = 0x00000008, |
| WICBitmapTransformFlipVertical = 0x00000010, |
| WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapLockFlags { |
| WICBitmapLockRead = 0x00000001, |
| WICBitmapLockWrite = 0x00000002, |
| WICBITMAPLOCKFLAGS_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICBitmapDecoderCapabilities { |
| WICBitmapDecoderCapabilitySameEncoder = 0x00000001, |
| WICBitmapDecoderCapabilityCanDecodeAllImages = 0x00000002, |
| WICBitmapDecoderCapabilityCanDecodeSomeImages = 0x00000004, |
| WICBitmapDecoderCapabilityCanEnumerateMetadata = 0x00000008, |
| WICBitmapDecoderCapabilityCanDecodeThumbnail = 0x00000010, |
| WICBITMAPDECODERCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICProgressOperation { |
| WICProgressOperationCopyPixels = 0x00000001, |
| WICProgressOperationWritePixels = 0x00000002, |
| WICProgressOperationAll = 0x0000FFFF, |
| WICPROGRESSOPERATION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICProgressNotification { |
| WICProgressNotificationBegin = 0x00010000, |
| WICProgressNotificationEnd = 0x00020000, |
| WICProgressNotificationFrequent = 0x00040000, |
| WICProgressNotificationAll = 0xFFFF0000, |
| WICPROGRESSNOTIFICATION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICComponentSigning { |
| WICComponentSigned = 0x00000001, |
| WICComponentUnsigned = 0x00000002, |
| WICComponentSafe = 0x00000004, |
| WICComponentDisabled = 0x80000000, |
| WICCOMPONENTSIGNING_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICGifLogicalScreenDescriptorProperties { |
| WICGifLogicalScreenSignature = 0x00000001, |
| WICGifLogicalScreenDescriptorWidth = 0x00000002, |
| WICGifLogicalScreenDescriptorHeight = 0x00000003, |
| WICGifLogicalScreenDescriptorGlobalColorTableFlag = 0x00000004, |
| WICGifLogicalScreenDescriptorColorResolution = 0x00000005, |
| WICGifLogicalScreenDescriptorSortFlag = 0x00000006, |
| WICGifLogicalScreenDescriptorGlobalColorTableSize = 0x00000007, |
| WICGifLogicalScreenDescriptorBackgroundColorIndex = 0x00000008, |
| WICGifLogicalScreenDescriptorPixelAspectRatio = 0x00000009, |
| WICGifLogicalScreenDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICGifImageDescriptorProperties { |
| WICGifImageDescriptorLeft = 0x00000001, |
| WICGifImageDescriptorTop = 0x00000002, |
| WICGifImageDescriptorWidth = 0x00000003, |
| WICGifImageDescriptorHeight = 0x00000004, |
| WICGifImageDescriptorLocalColorTableFlag = 0x00000005, |
| WICGifImageDescriptorInterlaceFlag = 0x00000006, |
| WICGifImageDescriptorSortFlag = 0x00000007, |
| WICGifImageDescriptorLocalColorTableSize = 0x00000008, |
| WICGifImageDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICGifGraphicControlExtensionProperties { |
| WICGifGraphicControlExtensionDisposal = 0x00000001, |
| WICGifGraphicControlExtensionUserInputFlag = 0x00000002, |
| WICGifGraphicControlExtensionTransparencyFlag = 0x00000003, |
| WICGifGraphicControlExtensionDelay = 0x00000004, |
| WICGifGraphicControlExtensionTransparentColorIndex = 0x00000005, |
| WICGifGraphicControlExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICGifApplicationExtensionProperties { |
| WICGifApplicationExtensionApplication = 0x00000001, |
| WICGifApplicationExtensionData = 0x00000002, |
| WICGifApplicationExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICGifCommentExtensionProperties { |
| WICGifCommentExtensionText = 0x00000001, |
| WICGifCommentExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegCommentProperties { |
| WICJpegCommentText = 0x00000001, |
| WICJpegCommentProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegLuminanceProperties { |
| WICJpegLuminanceTable = 0x00000001, |
| WICJpegLuminanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegChrominanceProperties { |
| WICJpegChrominanceTable = 0x00000001, |
| WICJpegChrominanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WIC8BIMIptcProperties { |
| WIC8BIMIptcPString = 0x00000000, |
| WIC8BIMIptcEmbeddedIPTC = 0x00000001, |
| WIC8BIMIptcProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WIC8BIMResolutionInfoProperties { |
| WIC8BIMResolutionInfoPString = 0x00000001, |
| WIC8BIMResolutionInfoHResolution = 0x00000002, |
| WIC8BIMResolutionInfoHResolutionUnit = 0x00000003, |
| WIC8BIMResolutionInfoWidthUnit = 0x00000004, |
| WIC8BIMResolutionInfoVResolution = 0x00000005, |
| WIC8BIMResolutionInfoVResolutionUnit = 0x00000006, |
| WIC8BIMResolutionInfoHeightUnit = 0x00000007, |
| WIC8BIMResolutionInfoProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WIC8BIMIptcDigestProperties { |
| WIC8BIMIptcDigestPString = 0x00000001, |
| WIC8BIMIptcDigestIptcDigest = 0x00000002, |
| WIC8BIMIptcDigestProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngGamaProperties { |
| WICPngGamaGamma = 0x00000001, |
| WICPngGamaProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngBkgdProperties { |
| WICPngBkgdBackgroundColor = 0x00000001, |
| WICPngBkgdProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngItxtProperties { |
| WICPngItxtKeyword = 0x00000001, |
| WICPngItxtCompressionFlag = 0x00000002, |
| WICPngItxtLanguageTag = 0x00000003, |
| WICPngItxtTranslatedKeyword = 0x00000004, |
| WICPngItxtText = 0x00000005, |
| WICPngItxtProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngChrmProperties { |
| WICPngChrmWhitePointX = 0x00000001, |
| WICPngChrmWhitePointY = 0x00000002, |
| WICPngChrmRedX = 0x00000003, |
| WICPngChrmRedY = 0x00000004, |
| WICPngChrmGreenX = 0x00000005, |
| WICPngChrmGreenY = 0x00000006, |
| WICPngChrmBlueX = 0x00000007, |
| WICPngChrmBlueY = 0x0000008, |
| WICPngChrmProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngHistProperties { |
| WICPngHistFrequencies = 0x00000001, |
| WICPngHistProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngIccpProperties { |
| WICPngIccpProfileName = 0x00000001, |
| WICPngIccpProfileData = 0x00000002, |
| WICPngIccpProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngSrgbProperties { |
| WICPngSrgbRenderingIntent = 0x00000001, |
| WICPngSrgbProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngTimeProperties { |
| WICPngTimeYear = 0x00000001, |
| WICPngTimeMonth = 0x00000002, |
| WICPngTimeDay = 0x00000003, |
| WICPngTimeHour = 0x00000004, |
| WICPngTimeMinute = 0x00000005, |
| WICPngTimeSecond = 0x00000006, |
| WICPngTimeProperties_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICSectionAccessLevel { |
| WICSectionAccessLevelRead = 0x00000001, |
| WICSectionAccessLevelReadWrite = 0x00000003, |
| WICSectionAccessLevel_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPixelFormatNumericRepresentation { |
| WICPixelFormatNumericRepresentationUnspecified = 0x00000000, |
| WICPixelFormatNumericRepresentationIndexed = 0x00000001, |
| WICPixelFormatNumericRepresentationUnsignedInteger = 0x00000002, |
| WICPixelFormatNumericRepresentationSignedInteger = 0x00000003, |
| WICPixelFormatNumericRepresentationFixed = 0x00000004, |
| WICPixelFormatNumericRepresentationFloat = 0x00000005, |
| WICPixelFormatNumericRepresentation_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPlanarOptions { |
| WICPlanarOptionsDefault = 0x00000000, |
| WICPlanarOptionsPreserveSubsampling = 0x00000001, |
| WICPLANAROPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegIndexingOptions { |
| WICJpegIndexingOptionsGenerateOnDemand = 0x00000000, |
| WICJpegIndexingOptionsGenerateOnLoad = 0x00000001, |
| WICJpegIndexingOptions_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegTransferMatrix { |
| WICJpegTransferMatrixIdentity = 0x00000000, |
| WICJpegTransferMatrixBT601 = 0x00000001, |
| WICJpegTransferMatrix_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegScanType { |
| WICJpegScanTypeInterleaved = 0x00000000, |
| WICJpegScanTypePlanarComponents = 0x00000001, |
| WICJpegScanTypeProgressive = 0x00000002, |
| WICJpegScanType_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| STRUCT!{struct WICImageParameters { |
| PixelFormat: D2D1_PIXEL_FORMAT, |
| DpiX: FLOAT, |
| DpiY: FLOAT, |
| Top: FLOAT, |
| Left: FLOAT, |
| PixelWidth: UINT32, |
| PixelHeight: UINT32, |
| }} |
| STRUCT!{struct WICBitmapPlaneDescription { |
| Format: WICPixelFormatGUID, |
| Width: UINT, |
| Height: UINT, |
| }} |
| STRUCT!{struct WICBitmapPlane { |
| Format: WICPixelFormatGUID, |
| pbBuffer: *mut BYTE, |
| cbStride: UINT, |
| cbBufferSize: UINT, |
| }} |
| STRUCT!{struct WICJpegFrameHeader { |
| Width: UINT, |
| Height: UINT, |
| TransferMatrix: WICJpegTransferMatrix, |
| ScanType: WICJpegScanType, |
| cComponents: UINT, |
| ComponentIdentifiers: DWORD, |
| SampleFactors: DWORD, |
| QuantizationTableIndices: DWORD, |
| }} |
| STRUCT!{struct WICJpegScanHeader { |
| cComponents: UINT, |
| RestartInterval: UINT, |
| ComponentSelectors: DWORD, |
| HuffmanTableIndices: DWORD, |
| StartSpectralSelection: BYTE, |
| EndSpectralSelection: BYTE, |
| SuccessiveApproximationHigh: BYTE, |
| SuccessiveApproximationLow: BYTE, |
| }} |
| RIDL!{#[uuid(0x00000040, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICPalette(IWICPaletteVtbl): IUnknown(IUnknownVtbl) { |
| fn InitializePredefined( |
| ePaletteType: WICBitmapPaletteType, |
| fAddTransparentColor: BOOL, |
| ) -> HRESULT, |
| fn InitializeCustom( |
| pColors: *const WICColor, |
| cCount: UINT, |
| ) -> HRESULT, |
| fn InitializeFromBitmap( |
| pISurface: *const IWICBitmapSource, |
| cCount: UINT, |
| fAddTransparentColor: BOOL, |
| ) -> HRESULT, |
| fn InitializeFromPalette( |
| pIPalette: *const IWICPalette, |
| ) -> HRESULT, |
| fn GetType( |
| pePaletteType: *mut WICBitmapPaletteType, |
| ) -> HRESULT, |
| fn GetColorCount( |
| pcCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetColors( |
| cCount: UINT, |
| pColors: *mut WICColor, |
| pcActualColors: *mut UINT, |
| ) -> HRESULT, |
| fn IsBlackWhite( |
| pfIsBlackWhite: *mut BOOL, |
| ) -> HRESULT, |
| fn IsGrayscale( |
| pfIsGrayscale: *mut BOOL, |
| ) -> HRESULT, |
| fn HasAlpha( |
| pfHasAlpha: *mut BOOL, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000120, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmapSource(IWICBitmapSourceVtbl): IUnknown(IUnknownVtbl) { |
| fn GetSize( |
| puiWidth: *mut UINT, |
| puiHeight: *mut UINT, |
| ) -> HRESULT, |
| fn GetPixelFormat( |
| pPixelFormat: *mut WICPixelFormatGUID, |
| ) -> HRESULT, |
| fn GetResolution( |
| pDpiX: *mut c_double, |
| pDpiY: *mut c_double, |
| ) -> HRESULT, |
| fn CopyPalette( |
| pIPalette: *mut IWICPalette, |
| ) -> HRESULT, |
| fn CopyPixels( |
| prc: *const WICRect, |
| cbStride: UINT, |
| cbBufferSize: UINT, |
| pbBuffer: *mut BYTE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000301, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICFormatConverter(IWICFormatConverterVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| pISource: *const IWICBitmapSource, |
| dstFormat: REFWICPixelFormatGUID, |
| dither: WICBitmapDitherType, |
| pIPalette: *const IWICPalette, |
| alphaThresholdPercent: c_double, |
| paletteTranslate: WICBitmapPaletteType, |
| ) -> HRESULT, |
| fn CanConvert( |
| srcPixelFormat: REFWICPixelFormatGUID, |
| dstPixelFormat: REFWICPixelFormatGUID, |
| pfCanConvert: *mut BOOL, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xbebee9cb, 0x83b0, 0x4dcc, 0x81, 0x32, 0xb0, 0xaa, 0xa5, 0x5e, 0xac, 0x96)] |
| interface IWICPlanarFormatConverter(IWICPlanarFormatConverterVtbl): |
| IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| ppPlanes: *const *const IWICBitmapSource, |
| cPlanes: UINT, |
| dstFormat: REFWICPixelFormatGUID, |
| dither: WICBitmapDitherType, |
| pIPalette: *const IWICPalette, |
| alphaThresholdPercent: c_double, |
| paletteTranslate: WICBitmapPaletteType, |
| ) -> HRESULT, |
| fn CanConvert( |
| pSrcPixelFormats: *const WICPixelFormatGUID, |
| cSrcPlanes: UINT, |
| dstPixelFormat: REFWICPixelFormatGUID, |
| pfCanConvert: *mut BOOL, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000302, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmapScaler(IWICBitmapScalerVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| pISource: *const IWICBitmapSource, |
| uiWidth: UINT, |
| uiHeight: UINT, |
| mode: WICBitmapInterpolationMode, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xe4fbcf03, 0x223d, 0x4e81, 0x93, 0x33, 0xd6, 0x35, 0x55, 0x6d, 0xd1, 0xb5)] |
| interface IWICBitmapClipper(IWICBitmapClipperVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| pISource: *const IWICBitmapSource, |
| prc: *const WICRect, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x5009834f, 0x2d6a, 0x41ce, 0x9e, 0x1b, 0x17, 0xc5, 0xaf, 0xf7, 0xa7, 0x82)] |
| interface IWICBitmapFlipRotator(IWICBitmapFlipRotatorVtbl): |
| IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| pISource: *const IWICBitmapSource, |
| options: WICBitmapTransformOptions, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000123, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmapLock(IWICBitmapLockVtbl): IUnknown(IUnknownVtbl) { |
| fn GetSize( |
| puiWidth: *mut UINT, |
| puiHeight: *mut UINT, |
| ) -> HRESULT, |
| fn GetStride( |
| pcbStride: *mut UINT, |
| ) -> HRESULT, |
| fn GetDataPointer( |
| pcbBufferSize: *mut UINT, |
| ppbData: *mut WICInProcPointer, |
| ) -> HRESULT, |
| fn GetPixelFormat( |
| pPixelFormat: *mut WICPixelFormatGUID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000121, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmap(IWICBitmapVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Lock( |
| prcLock: *const WICRect, |
| flags: DWORD, |
| ppILock: *mut *mut IWICBitmapLock, |
| ) -> HRESULT, |
| fn SetPalette( |
| pIPalette: *const IWICPalette, |
| ) -> HRESULT, |
| fn SetResolution( |
| dpiX: c_double, |
| dpiY: c_double, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x3c613a02, 0x34b2, 0x44ea, 0x9a, 0x7c, 0x45, 0xae, 0xa9, 0xc6, 0xfd, 0x6d)] |
| interface IWICColorContext(IWICColorContextVtbl): IUnknown(IUnknownVtbl) { |
| fn InitializeFromFilename( |
| wzFilename: LPCWSTR, |
| ) -> HRESULT, |
| fn InitializeFromMemory( |
| pbBuffer: *const BYTE, |
| cbBufferSize: UINT, |
| ) -> HRESULT, |
| fn InitializeFromExifColorSpace( |
| value: UINT, |
| ) -> HRESULT, |
| fn GetType( |
| pType: *mut WICColorContextType, |
| ) -> HRESULT, |
| fn GetProfileBytes( |
| cbBuffer: UINT, |
| pbBuffer: *mut BYTE, |
| pcbActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetExifColorSpace( |
| pValue: *mut UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xb66f034f, 0xd0e2, 0x40ab, 0xb4, 0x36, 0x6d, 0xe3, 0x9e, 0x32, 0x1a, 0x94)] |
| interface IWICColorTransform(IWICColorTransformVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn Initialize( |
| pIBitmapSource: *const IWICBitmapSource, |
| pIContextSource: *const IWICColorContext, |
| pIContextDest: *const IWICColorContext, |
| pixelFmtDest: REFWICPixelFormatGUID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xb84e2c09, 0x78c9, 0x4ac4, 0x8b, 0xd3, 0x52, 0x4a, 0xe1, 0x66, 0x3a, 0x2f)] |
| interface IWICFastMetadataEncoder(IWICFastMetadataEncoderVtbl): IUnknown(IUnknownVtbl) { |
| fn Commit() -> HRESULT, |
| fn GetMetadataQueryWriter( |
| ppIMetadataQueryWriter: *mut *mut IWICMetadataQueryWriter, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x135ff860, 0x22b7, 0x4ddf, 0xb0, 0xf6, 0x21, 0x8f, 0x4f, 0x29, 0x9a, 0x43)] |
| interface IWICStream(IWICStreamVtbl): IStream(IStreamVtbl) { |
| fn InitializeFromIStream( |
| pIStream: *const IStream, |
| ) -> HRESULT, |
| fn InitializeFromFilename( |
| wzFileName: LPCWSTR, |
| dwDesiredAccess: DWORD, |
| ) -> HRESULT, |
| fn InitializeFromMemory( |
| pbBuffer: WICInProcPointer, |
| cbBufferSize: DWORD, |
| ) -> HRESULT, |
| fn InitializeFromIStreamRegion( |
| pIStream: *const IStream, |
| ulOffset: ULARGE_INTEGER, |
| ulMaxSize: ULARGE_INTEGER, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdc2bb46d, 0x3f07, 0x481e, 0x86, 0x25, 0x22, 0x0c, 0x4a, 0xed, 0xbb, 0x33)] |
| interface IWICEnumMetadataItem(IWICEnumMetadataItemVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgeltSchema: *mut PROPVARIANT, |
| rgeltId: *mut PROPVARIANT, |
| rgeltValue: *mut PROPVARIANT, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppIEnumMetadataItem: *mut *mut IWICEnumMetadataItem, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x30989668, 0xe1c9, 0x4597, 0xb3, 0x95, 0x45, 0x8e, 0xed, 0xb8, 0x08, 0xdf)] |
| interface IWICMetadataQueryReader(IWICMetadataQueryReaderVtbl): IUnknown(IUnknownVtbl) { |
| fn GetContainerFormat( |
| pguidContainerFormat: *mut GUID, |
| ) -> HRESULT, |
| fn GetLocation( |
| cchMaxLength: UINT, |
| wzNamespace: *mut WCHAR, |
| pcchActualLength: *mut UINT, |
| ) -> HRESULT, |
| fn GetMetadataByName( |
| wzName: LPCWSTR, |
| pvarValue: *mut PROPVARIANT, |
| ) -> HRESULT, |
| fn GetEnumerator( |
| ppIEnumString: *mut *mut IEnumString, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xa721791a, 0x0def, 0x4d06, 0xbd, 0x91, 0x21, 0x18, 0xbf, 0x1d, 0xb1, 0x0b)] |
| interface IWICMetadataQueryWriter(IWICMetadataQueryWriterVtbl): |
| IWICMetadataQueryReader(IWICMetadataQueryReaderVtbl) { |
| fn SetMetadataByName( |
| wzName: LPCWSTR, |
| pvarValue: *const PROPVARIANT, |
| ) -> HRESULT, |
| fn RemoveMetadataByName( |
| wzName: LPCWSTR, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000103, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmapEncoder(IWICBitmapEncoderVtbl): IUnknown(IUnknownVtbl) { |
| fn Initialize( |
| pIStream: *const IStream, |
| cacheOption: WICBitmapEncoderCacheOption, |
| ) -> HRESULT, |
| fn GetContainerFormat( |
| pguidContainerFormat: *mut GUID, |
| ) -> HRESULT, |
| fn GetEncoderInfo( |
| ppIEncoderInfo: *mut *mut IWICBitmapEncoderInfo, |
| ) -> HRESULT, |
| fn SetColorContexts( |
| cCount: UINT, |
| ppIColorContext: *const *const IWICColorContext, |
| ) -> HRESULT, |
| fn SetPalette( |
| pIPalette: *const IWICPalette, |
| ) -> HRESULT, |
| fn SetThumbnail( |
| pIThumbnail: *const IWICBitmapSource, |
| ) -> HRESULT, |
| fn SetPreview( |
| pIPreview: *const IWICBitmapSource, |
| ) -> HRESULT, |
| fn CreateNewFrame( |
| ppIFrameEncode: *mut *mut IWICBitmapFrameEncode, |
| ppIEncoderOptions: *mut *mut IPropertyBag2, |
| ) -> HRESULT, |
| fn Commit() -> HRESULT, |
| fn GetMetadataQueryWriter( |
| ppIMetadataQueryWriter: *mut *mut IWICMetadataQueryWriter, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000105, 0xa8f2, 0x4877, 0xba, 0x0a, 0xfd, 0x2b, 0x66, 0x45, 0xfb, 0x94)] |
| interface IWICBitmapFrameEncode(IWICBitmapFrameEncodeVtbl): IUnknown(IUnknownVtbl) { |
| fn Initialize( |
| pIEncoderOptions: *const IPropertyBag2, |
| ) -> HRESULT, |
| fn SetSize( |
| uiWidth: UINT, |
| uiHeight: UINT, |
| ) -> HRESULT, |
| fn SetResolution( |
| dpiX: c_double, |
| dpiY: c_double, |
| ) -> HRESULT, |
| fn SetPixelFormat( |
| pPixelFormat: *mut WICPixelFormatGUID, |
| ) -> HRESULT, |
| fn SetColorContexts( |
| cCount: UINT, |
| ppIColorContext: *const *const IWICColorContext, |
| ) -> HRESULT, |
| fn SetPalette( |
| pIPalette: *const IWICPalette, |
| ) -> HRESULT, |
| fn SetThumbnail( |
| pIThumbnail: *const IWICBitmapSource, |
| ) -> HRESULT, |
| fn WritePixels( |
| lineCount: UINT, |
| cbStride: UINT, |
| cbBufferSize: UINT, |
| pbPixels: *const BYTE, |
| ) -> HRESULT, |
| fn WriteSource( |
| pIBitmapSource: *const IWICBitmapSource, |
| prc: *const WICRect, |
| ) -> HRESULT, |
| fn Commit() -> HRESULT, |
| fn GetMetadataQueryWriter( |
| ppIMetadataQueryWriter: *mut *mut IWICMetadataQueryWriter, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xf928b7b8, 0x2221, 0x40c1, 0xb7, 0x2e, 0x7e, 0x82, 0xf1, 0x97, 0x4d, 0x1a)] |
| interface IWICPlanarBitmapFrameEncode(IWICPlanarBitmapFrameEncodeVtbl): IUnknown(IUnknownVtbl) { |
| fn WritePixels( |
| lineCount: UINT, |
| pPlanes: *const WICBitmapPlane, |
| cPlanes: UINT, |
| ) -> HRESULT, |
| fn WriteSource( |
| ppPlanes: *const *const IWICBitmapSource, |
| cPlanes: UINT, |
| prcSource: *const WICRect, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x04c75bf8, 0x3ce1, 0x473b, 0xac, 0xc5, 0x3c, 0xc4, 0xf5, 0xe9, 0x49, 0x99)] |
| interface IWICImageEncoder(IWICImageEncoderVtbl): IUnknown(IUnknownVtbl) { |
| fn WriteFrame( |
| pImage: *const ID2D1Image, |
| pFrameEncode: *const IWICBitmapFrameEncode, |
| pImageParameters: *const WICImageParameters, |
| ) -> HRESULT, |
| fn WriteFrameThumbnail( |
| pImage: *const ID2D1Image, |
| pFrameEncode: *const IWICBitmapFrameEncode, |
| pImageParameters: *const WICImageParameters, |
| ) -> HRESULT, |
| fn WriteThumbnail( |
| pImage: *const ID2D1Image, |
| pEncoder: *const IWICBitmapEncoder, |
| pImageParameters: *const WICImageParameters, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x9edde9e7, 0x8dee, 0x47ea, 0x99, 0xdf, 0xe6, 0xfa, 0xf2, 0xed, 0x44, 0xbf)] |
| interface IWICBitmapDecoder(IWICBitmapDecoderVtbl): IUnknown(IUnknownVtbl) { |
| fn QueryCapability( |
| pIStream: *const IStream, |
| pdwCapability: *mut DWORD, |
| ) -> HRESULT, |
| fn Initialize( |
| pIStream: *const IStream, |
| cacheOptions: WICDecodeOptions, |
| ) -> HRESULT, |
| fn GetContainerFormat( |
| pguidContainerFormat: *mut GUID, |
| ) -> HRESULT, |
| fn GetDecoderInfo( |
| ppIDecoderInfo: *mut *mut IWICBitmapDecoderInfo, |
| ) -> HRESULT, |
| fn CopyPalette( |
| pIPalette: *const IWICPalette, |
| ) -> HRESULT, |
| fn GetMetadataQueryReader( |
| ppIMetadataQueryReader: *mut *mut IWICMetadataQueryReader, |
| ) -> HRESULT, |
| fn GetPreview( |
| ppIBitmapSource: *mut *mut IWICBitmapSource, |
| ) -> HRESULT, |
| fn GetColorContexts( |
| cCount: UINT, |
| ppIColorContexts: *mut *mut IWICColorContext, |
| pcActualCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetThumbnail( |
| ppIThumbnail: *mut *mut IWICBitmapSource, |
| ) -> HRESULT, |
| fn GetFrameCount( |
| pCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetFrame( |
| index: UINT, |
| ppIBitmapFrame: *mut *mut IWICBitmapFrameDecode, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x3b16811b, 0x6a43, 0x4ec9, 0xb7, 0x13, 0x3d, 0x5a, 0x0c, 0x13, 0xb9, 0x40)] |
| interface IWICBitmapSourceTransform(IWICBitmapSourceTransformVtbl): IUnknown(IUnknownVtbl) { |
| fn CopyPixels( |
| prc: *const WICRect, |
| uiWidth: UINT, |
| uiHeight: UINT, |
| pguidDstFormat: *const WICPixelFormatGUID, |
| dstTransform: WICBitmapTransformOptions, |
| nStride: UINT, |
| cbBufferSize: UINT, |
| pbBuffer: *mut BYTE, |
| ) -> HRESULT, |
| fn GetClosestSize( |
| puiWidth: *mut UINT, |
| puiHeight: *mut UINT, |
| ) -> HRESULT, |
| fn GetClosestPixelFormat( |
| pguidDstFormat: *mut WICPixelFormatGUID, |
| ) -> HRESULT, |
| fn DoesSupportTransform( |
| dstTransform: WICBitmapTransformOptions, |
| pfIsSupported: *mut BOOL, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x3aff9cce, 0xbe95, 0x4303, 0xb9, 0x27, 0xe7, 0xd1, 0x6f, 0xf4, 0xa6, 0x13)] |
| interface IWICPlanarBitmapSourceTransform(IWICPlanarBitmapSourceTransformVtbl): |
| IUnknown(IUnknownVtbl) { |
| fn DoesSupportTransform( |
| puiWidth: *mut UINT, |
| puiHeight: *mut UINT, |
| dstTransform: WICBitmapTransformOptions, |
| dstPlanarOptions: WICPlanarOptions, |
| pguidDstFormats: *const WICPixelFormatGUID, |
| pPlaneDescriptions: *mut WICBitmapPlaneDescription, |
| cPlanes: UINT, |
| pfIsSupported: *mut BOOL, |
| ) -> HRESULT, |
| fn CopyPixels( |
| prcSource: *const WICRect, |
| uiWidth: UINT, |
| uiHeight: UINT, |
| dstTransform: WICBitmapTransformOptions, |
| dstPlanarOptions: WICPlanarOptions, |
| pDstPlanes: *const WICBitmapPlane, |
| cPlanes: UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x3b16811b, 0x6a43, 0x4ec9, 0xa8, 0x13, 0x3d, 0x93, 0x0c, 0x13, 0xb9, 0x40)] |
| interface IWICBitmapFrameDecode(IWICBitmapFrameDecodeVtbl): |
| IWICBitmapSource(IWICBitmapSourceVtbl) { |
| fn GetMetadataQueryReader( |
| ppIMetadataQueryReader: *mut *mut IWICMetadataQueryReader, |
| ) -> HRESULT, |
| fn GetColorContexts( |
| cCount: UINT, |
| ppIColorContexts: *mut *mut IWICColorContext, |
| pcActualCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetThumbnail( |
| ppIThumbnail: *mut *mut IWICBitmapSource, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdaac296f, 0x7aa5, 0x4dbf, 0x8d, 0x15, 0x22, 0x5c, 0x59, 0x76, 0xf8, 0x91)] |
| interface IWICProgressiveLevelControl(IWICProgressiveLevelControlVtbl): IUnknown(IUnknownVtbl) { |
| fn GetLevelCount( |
| pcLevels: *mut UINT, |
| ) -> HRESULT, |
| fn GetCurrentLevel( |
| pnLevel: *mut UINT, |
| ) -> HRESULT, |
| fn SetCurrentLevel( |
| nLevel: UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x4776f9cd, 0x9517, 0x45fa, 0xbf, 0x24, 0xe8, 0x9c, 0x5e, 0xc5, 0xc6, 0x0c)] |
| interface IWICProgressCallback(IWICProgressCallbackVtbl): IUnknown(IUnknownVtbl) { |
| fn Notify( |
| uFrameNum: ULONG, |
| operation: WICProgressOperation, |
| dblProgress: c_double, |
| ) -> HRESULT, |
| }} |
| FN!{stdcall PFNProgressNotification( |
| pvData: LPVOID, |
| uFrameNum: ULONG, |
| operation: WICProgressOperation, |
| dblProgress: c_double, |
| ) -> HRESULT} |
| RIDL!{#[uuid(0x64c1024e, 0xc3cf, 0x4462, 0x80, 0x78, 0x88, 0xc2, 0xb1, 0x1c, 0x46, 0xd9)] |
| interface IWICBitmapCodecProgressNotification(IWICBitmapCodecProgressNotificationVtbl): |
| IUnknown(IUnknownVtbl) { |
| fn RegisterProgressNotification( |
| pfnProgressNotification: PFNProgressNotification, |
| pvData: LPVOID, |
| dwProgressFlags: DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x23bc3f0a, 0x698b, 0x4357, 0x88, 0x6b, 0xf2, 0x4d, 0x50, 0x67, 0x13, 0x34)] |
| interface IWICComponentInfo(IWICComponentInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetComponentType( |
| pType: *mut WICComponentType, |
| ) -> HRESULT, |
| fn GetCLSID( |
| pclsid: *mut CLSID, |
| ) -> HRESULT, |
| fn GetSigningStatus( |
| pStatus: *mut DWORD, |
| ) -> HRESULT, |
| fn GetAuthor( |
| cchAuthor: UINT, |
| wzAuthor: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetVendorGUID( |
| pguidVendor: *mut GUID, |
| ) -> HRESULT, |
| fn GetVersion( |
| cchVersion: UINT, |
| wzVersion: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetSpecVersion( |
| cchSpecVersion: UINT, |
| wzSpecVersion: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetFriendlyName( |
| cchFriendlyName: UINT, |
| wzFriendlyName: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x9f34fb65, 0x13f4, 0x4f15, 0xbc, 0x57, 0x37, 0x26, 0xb5, 0xe5, 0x3d, 0x9f)] |
| interface IWICFormatConverterInfo(IWICFormatConverterInfoVtbl): |
| IWICComponentInfo(IWICComponentInfoVtbl) { |
| fn GetPixelFormats( |
| cFormats: UINT, |
| pPixelFormatGUIDs: *mut WICPixelFormatGUID, |
| pcActual: *mut UINT, |
| ) -> HRESULT, |
| fn CreateInstance( |
| ppIConverter: *mut *mut IWICFormatConverter, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xe87a44c4, 0xb76e, 0x4c47, 0x8b, 0x09, 0x29, 0x8e, 0xb1, 0x2a, 0x27, 0x14)] |
| interface IWICBitmapCodecInfo(IWICBitmapCodecInfoVtbl): IWICComponentInfo(IWICComponentInfoVtbl) { |
| fn GetContainerFormat( |
| pguidContainerFormat: *mut GUID, |
| ) -> HRESULT, |
| fn GetPixelFormats( |
| cFormats: UINT, |
| pguidPixelFormats: *mut GUID, |
| pcActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetColorManagementVersion( |
| cchColorManagementVersion: UINT, |
| wzColorManagementVersion: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetDeviceManufacturer( |
| cchDeviceManufacturer: UINT, |
| wzDeviceManufacturer: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetDeviceModels( |
| cchDeviceModels: UINT, |
| wzDeviceModels: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetMimeTypes( |
| cchMimeTypes: UINT, |
| wzMimeTypes: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn GetFileExtensions( |
| cchFileExtensions: UINT, |
| wzFileExtensions: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT, |
| fn DoesSupportAnimation( |
| pfSupportAnimation: *mut BOOL, |
| ) -> HRESULT, |
| fn DoesSupportChromakey( |
| pfSupportChromakey: *mut BOOL, |
| ) -> HRESULT, |
| fn DoesSupportLossless( |
| pfSupportLossless: *mut BOOL, |
| ) -> HRESULT, |
| fn DoesSupportMultiframe( |
| pfSupportMultiframe: *mut BOOL, |
| ) -> HRESULT, |
| fn MatchesMimeType( |
| wzMimeType: LPCWSTR, |
| pfMatches: *mut BOOL, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x94c9b4ee, 0xa09f, 0x4f92, 0x8a, 0x1e, 0x4a, 0x9b, 0xce, 0x7e, 0x76, 0xfb)] |
| interface IWICBitmapEncoderInfo(IWICBitmapEncoderInfoVtbl): |
| IWICBitmapCodecInfo(IWICBitmapCodecInfoVtbl) { |
| fn CreateInstance( |
| ppIBitmapEncoder: *mut *mut IWICBitmapEncoder, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xd8cd007f, 0xd08f, 0x4191, 0x9b, 0xfc, 0x23, 0x6e, 0xa7, 0xf0, 0xe4, 0xb5)] |
| interface IWICBitmapDecoderInfo(IWICBitmapDecoderInfoVtbl): |
| IWICBitmapCodecInfo(IWICBitmapCodecInfoVtbl) { |
| fn GetPatterns( |
| cbSizePatterns: UINT, |
| pPatterns: *mut WICBitmapPattern, |
| pcPatterns: *mut UINT, |
| pcbPatternsActual: *mut UINT, |
| ) -> HRESULT, |
| fn MatchesPattern( |
| pIStream: *const IStream, |
| pfMatches: *mut BOOL, |
| ) -> HRESULT, |
| fn CreateInstance( |
| ppIBitmapDecoder: *mut *mut IWICBitmapDecoder, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xe8eda601, 0x3d48, 0x431a, 0xab, 0x44, 0x69, 0x05, 0x9b, 0xe8, 0x8b, 0xbe)] |
| interface IWICPixelFormatInfo(IWICPixelFormatInfoVtbl): IWICComponentInfo(IWICComponentInfoVtbl) { |
| fn GetFormatGUID( |
| pFormat: *mut GUID, |
| ) -> HRESULT, |
| fn GetColorContext( |
| ppIColorContext: *mut *mut IWICColorContext, |
| ) -> HRESULT, |
| fn GetBitsPerPixel( |
| puiBitsPerPixel: *mut UINT, |
| ) -> HRESULT, |
| fn GetChannelCount( |
| puiChannelCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetChannelMask( |
| uiChannelIndex: UINT, |
| cbMaskBuffer: UINT, |
| pbMaskBuffer: *mut BYTE, |
| pcbActual: *mut UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xa9db33a2, 0xaf5f, 0x43c7, 0xb6, 0x79, 0x74, 0xf5, 0x98, 0x4b, 0x5a, 0xa4)] |
| interface IWICPixelFormatInfo2(IWICPixelFormatInfo2Vtbl): |
| IWICPixelFormatInfo(IWICPixelFormatInfoVtbl) { |
| fn SupportsTransparency( |
| pfSupportsTransparency: *mut BOOL, |
| ) -> HRESULT, |
| fn GetNumericRepresentation( |
| pNumericRepresentation: *mut WICPixelFormatNumericRepresentation, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xec5ec8a9, 0xc395, 0x4314, 0x9c, 0x77, 0x54, 0xd7, 0xa9, 0x35, 0xff, 0x70)] |
| interface IWICImagingFactory(IWICImagingFactoryVtbl): IUnknown(IUnknownVtbl) { |
| fn CreateDecoderFromFilename( |
| wzFilename: LPCWSTR, |
| pguidVendor: *const GUID, |
| dwDesiredAccess: DWORD, |
| metadataOptions: WICDecodeOptions, |
| ppIDecoder: *mut *mut IWICBitmapDecoder, |
| ) -> HRESULT, |
| fn CreateDecoderFromStream( |
| pIStream: *const IStream, |
| pguidVendor: *const GUID, |
| metadataOptions: WICDecodeOptions, |
| ppIDecoder: *mut *mut IWICBitmapDecoder, |
| ) -> HRESULT, |
| fn CreateDecoderFromFileHandle( |
| hFile: ULONG_PTR, |
| pguidVendor: *const GUID, |
| metadataOptions: WICDecodeOptions, |
| ppIDecoder: *mut *mut IWICBitmapDecoder, |
| ) -> HRESULT, |
| fn CreateComponentInfo( |
| clsidComponent: REFCLSID, |
| ppIInfo: *mut *mut IWICComponentInfo, |
| ) -> HRESULT, |
| fn CreateDecoder( |
| guidContainerFormat: REFGUID, |
| pguidVendor: *const GUID, |
| ppIDecoder: *mut *mut IWICBitmapDecoder, |
| ) -> HRESULT, |
| fn CreateEncoder( |
| guidContainerFormat: REFGUID, |
| pguidVendor: *const GUID, |
| ppIEncoder: *mut *mut IWICBitmapEncoder, |
| ) -> HRESULT, |
| fn CreatePalette( |
| ppIPalette: *mut *mut IWICPalette, |
| ) -> HRESULT, |
| fn CreateFormatConverter( |
| ppIFormatConverter: *mut *mut IWICFormatConverter, |
| ) -> HRESULT, |
| fn CreateBitmapScaler( |
| ppIBitmapScaler: *mut *mut IWICBitmapScaler, |
| ) -> HRESULT, |
| fn CreateBitmapClipper( |
| ppIBitmapClipper: *mut *mut IWICBitmapClipper, |
| ) -> HRESULT, |
| fn CreateBitmapFlipRotator( |
| ppIBitmapFlipRotator: *mut *mut IWICBitmapFlipRotator, |
| ) -> HRESULT, |
| fn CreateStream( |
| ppIWICStream: *mut *mut IWICStream, |
| ) -> HRESULT, |
| fn CreateColorContext( |
| ppIWICColorContext: *mut *mut IWICColorContext, |
| ) -> HRESULT, |
| fn CreateColorTransformer( |
| ppIWICColorTransform: *mut *mut IWICColorTransform, |
| ) -> HRESULT, |
| fn CreateBitmap( |
| uiWidth: UINT, |
| uiHeight: UINT, |
| pixelFormat: REFWICPixelFormatGUID, |
| option: WICBitmapCreateCacheOption, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromSource( |
| pIBitmapSource: *const IWICBitmapSource, |
| option: WICBitmapCreateCacheOption, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromSourceRect( |
| pIBitmapSource: *const IWICBitmapSource, |
| x: UINT, |
| y: UINT, |
| width: UINT, |
| height: UINT, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromMemory( |
| uiWidth: UINT, |
| uiHeight: UINT, |
| pixelFormat: REFWICPixelFormatGUID, |
| cbStride: UINT, |
| cbBufferSize: UINT, |
| pbBuffer: *const BYTE, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromHBITMAP( |
| hBitmap: HBITMAP, |
| hPalette: HPALETTE, |
| options: WICBitmapAlphaChannelOption, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromHICON( |
| hIcon: HICON, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT, |
| fn CreateComponentEnumerator( |
| componentTypes: DWORD, |
| options: DWORD, |
| ppIEnumUnknown: *mut *mut IEnumUnknown, |
| ) -> HRESULT, |
| fn CreateFastMetadataEncoderFromDecoder( |
| pIDecoder: *const IWICBitmapDecoder, |
| ppIFastEncoder: *mut *mut IWICFastMetadataEncoder, |
| ) -> HRESULT, |
| fn CreateFastMetadataEncoderFromFrameDecode( |
| pIFrameDecoder: *const IWICBitmapFrameDecode, |
| ppIFastEncoder: *mut *mut IWICFastMetadataEncoder, |
| ) -> HRESULT, |
| fn CreateQueryWriter( |
| guidMetadataFormat: REFGUID, |
| pguidVendor: *const GUID, |
| ppIQueryWriter: *mut *mut IWICMetadataQueryWriter, |
| ) -> HRESULT, |
| fn CreateQueryWriterFromReader( |
| pIQueryReader: *const IWICMetadataQueryReader, |
| pguidVendor: *const GUID, |
| ppIQueryWriter: *mut *mut IWICMetadataQueryWriter, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x7b816b45, 0x1996, 0x4476, 0xb1, 0x32, 0xde, 0x9e, 0x24, 0x7c, 0x8a, 0xf0)] |
| interface IWICImagingFactory2(IWICImagingFactory2Vtbl): |
| IWICImagingFactory(IWICImagingFactoryVtbl) { |
| fn CreateImageEncoder( |
| pD2DDevice: *const ID2D1Device, |
| ppWICImageEncoder: *mut *mut IWICImageEncoder, |
| ) -> HRESULT, |
| }} |
| extern "system" { |
| pub fn WICConvertBitmapSource( |
| dstFormat: REFWICPixelFormatGUID, |
| pISrc: *const IWICBitmapSource, |
| ppIDst: *mut *mut IWICBitmapSource, |
| ) -> HRESULT; |
| pub fn WICCreateBitmapFromSection( |
| width: UINT, |
| height: UINT, |
| pixelFormat: REFWICPixelFormatGUID, |
| hSection: HANDLE, |
| stride: UINT, |
| offset: UINT, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT; |
| pub fn WICCreateBitmapFromSectionEx( |
| width: UINT, |
| height: UINT, |
| pixelFormat: REFWICPixelFormatGUID, |
| hSection: HANDLE, |
| stride: UINT, |
| offset: UINT, |
| desiredAccessLevel: WICSectionAccessLevel, |
| ppIBitmap: *mut *mut IWICBitmap, |
| ) -> HRESULT; |
| pub fn WICMapGuidToShortName( |
| guid: REFGUID, |
| cchName: UINT, |
| wzName: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT; |
| pub fn WICMapShortNameToGuid( |
| wzName: PCWSTR, |
| pguid: *mut GUID, |
| ) -> HRESULT; |
| pub fn WICMapSchemaToName( |
| guidMetadataFormat: REFGUID, |
| pwzSchema: LPWSTR, |
| cchName: UINT, |
| wzName: *mut WCHAR, |
| pcchActual: *mut UINT, |
| ) -> HRESULT; |
| } |
| pub const FACILITY_WINCODEC_ERR: HRESULT = 0x898; |
| pub const WINCODEC_ERR_BASE: HRESULT = 0x2000; |
| /// intsafe.h, 0x216 = 534 = ERROR_ARITHMETIC_OVERFLOW |
| pub const INTSAFE_E_ARITHMETIC_OVERFLOW: HRESULT = 0x80070216; |
| #[inline] |
| pub fn MAKE_WINCODECHR(severity: HRESULT, code: HRESULT) -> HRESULT { |
| MAKE_HRESULT!(severity, FACILITY_WINCODEC_ERR, WINCODEC_ERR_BASE + code) |
| } |
| #[inline] |
| pub fn MAKE_WINCODECHR_ERR(code: HRESULT) -> HRESULT { |
| MAKE_WINCODECHR(SEVERITY_ERROR, code) |
| } |
| pub const WINCODEC_ERR_GENERIC_ERROR: HRESULT = E_FAIL; |
| pub const WINCODEC_ERR_INVALIDPARAMETER: HRESULT = E_INVALIDARG; |
| pub const WINCODEC_ERR_OUTOFMEMORY: HRESULT = E_OUTOFMEMORY; |
| pub const WINCODEC_ERR_NOTIMPLEMENTED: HRESULT = E_NOTIMPL; |
| pub const WINCODEC_ERR_ABORTED: HRESULT = E_ABORT; |
| pub const WINCODEC_ERR_ACCESSDENIED: HRESULT = E_ACCESSDENIED; |
| pub const WINCODEC_ERR_VALUEOVERFLOW: HRESULT = INTSAFE_E_ARITHMETIC_OVERFLOW; |
| ENUM!{enum WICTiffCompressionOption { |
| WICTiffCompressionDontCare = 0x00000000, |
| WICTiffCompressionNone = 0x00000001, |
| WICTiffCompressionCCITT3 = 0x00000002, |
| WICTiffCompressionCCITT4 = 0x00000003, |
| WICTiffCompressionLZW = 0x00000004, |
| WICTiffCompressionRLE = 0x00000005, |
| WICTiffCompressionZIP = 0x00000006, |
| WICTiffCompressionLZWHDifferencing = 0x00000007, |
| WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICJpegYCrCbSubsamplingOption { |
| WICJpegYCrCbSubsamplingDefault = 0x00000000, |
| WICJpegYCrCbSubsampling420 = 0x00000001, |
| WICJpegYCrCbSubsampling422 = 0x00000002, |
| WICJpegYCrCbSubsampling444 = 0x00000003, |
| WICJpegYCrCbSubsampling440 = 0x00000004, |
| WICJPEGYCRCBSUBSAMPLING_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICPngFilterOption { |
| WICPngFilterUnspecified = 0x00000000, |
| WICPngFilterNone = 0x00000001, |
| WICPngFilterSub = 0x00000002, |
| WICPngFilterUp = 0x00000003, |
| WICPngFilterAverage = 0x00000004, |
| WICPngFilterPaeth = 0x00000005, |
| WICPngFilterAdaptive = 0x00000006, |
| WICPNGFILTEROPTION_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICNamedWhitePoint { |
| WICWhitePointDefault = 0x00000001, |
| WICWhitePointDaylight = 0x00000002, |
| WICWhitePointCloudy = 0x00000004, |
| WICWhitePointShade = 0x00000008, |
| WICWhitePointTungsten = 0x00000010, |
| WICWhitePointFluorescent = 0x00000020, |
| WICWhitePointFlash = 0x00000040, |
| WICWhitePointUnderwater = 0x00000080, |
| WICWhitePointCustom = 0x00000100, |
| WICWhitePointAutoWhiteBalance = 0x00000200, |
| WICWhitePointAsShot = WICWhitePointDefault, |
| WICNAMEDWHITEPOINT_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICRawCapabilities { |
| WICRawCapabilityNotSupported = 0x00000000, |
| WICRawCapabilityGetSupported = 0x00000001, |
| WICRawCapabilityFullySupported = 0x00000002, |
| WICRAWCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICRawRotationCapabilities { |
| WICRawRotationCapabilityNotSupported = 0x00000000, |
| WICRawRotationCapabilityGetSupported = 0x00000001, |
| WICRawRotationCapabilityNinetyDegreesSupported = 0x00000002, |
| WICRawRotationCapabilityFullySupported = 0x00000003, |
| WICRAWROTATIONCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| STRUCT!{struct WICRawCapabilitiesInfo { |
| cbSize: UINT, |
| CodecMajorVersion: UINT, |
| CodecMinorVersion: UINT, |
| ExposureCompensationSupport: WICRawCapabilities, |
| ContrastSupport: WICRawCapabilities, |
| RGBWhitePointSupport: WICRawCapabilities, |
| NamedWhitePointSupport: WICRawCapabilities, |
| NamedWhitePointSupportMask: UINT, |
| KelvinWhitePointSupport: WICRawCapabilities, |
| GammaSupport: WICRawCapabilities, |
| TintSupport: WICRawCapabilities, |
| SaturationSupport: WICRawCapabilities, |
| SharpnessSupport: WICRawCapabilities, |
| NoiseReductionSupport: WICRawCapabilities, |
| DestinationColorProfileSupport: WICRawCapabilities, |
| ToneCurveSupport: WICRawCapabilities, |
| RotationSupport: WICRawRotationCapabilities, |
| RenderModeSupport: WICRawCapabilities, |
| }} |
| ENUM!{enum WICRawParameterSet { |
| WICAsShotParameterSet = 0x00000001, |
| WICUserAdjustedParameterSet = 0x00000002, |
| WICAutoAdjustedParameterSet = 0x00000003, |
| WICRAWPARAMETERSET_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICRawRenderMode { |
| WICRawRenderModeDraft = 0x00000001, |
| WICRawRenderModeNormal = 0x00000002, |
| WICRawRenderModeBestQuality = 0x00000003, |
| WICRAWRENDERMODE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| STRUCT!{struct WICRawToneCurvePoint { |
| Input: c_double, |
| Output: c_double, |
| }} |
| STRUCT!{struct WICRawToneCurve { |
| cPoints: UINT, |
| aPoints: [WICRawToneCurvePoint; 1], |
| }} |
| pub const WICRawChangeNotification_ExposureCompensation: UINT = 0x00000001; |
| pub const WICRawChangeNotification_NamedWhitePoint: UINT = 0x00000002; |
| pub const WICRawChangeNotification_KelvinWhitePoint: UINT = 0x00000004; |
| pub const WICRawChangeNotification_RGBWhitePoint: UINT = 0x00000008; |
| pub const WICRawChangeNotification_Contrast: UINT = 0x00000010; |
| pub const WICRawChangeNotification_Gamma: UINT = 0x00000020; |
| pub const WICRawChangeNotification_Sharpness: UINT = 0x00000040; |
| pub const WICRawChangeNotification_Saturation: UINT = 0x00000080; |
| pub const WICRawChangeNotification_Tint: UINT = 0x00000100; |
| pub const WICRawChangeNotification_NoiseReduction: UINT = 0x00000200; |
| pub const WICRawChangeNotification_DestinationColorContext: UINT = 0x00000400; |
| pub const WICRawChangeNotification_ToneCurve: UINT = 0x00000800; |
| pub const WICRawChangeNotification_Rotation: UINT = 0x00001000; |
| pub const WICRawChangeNotification_RenderMode: UINT = 0x00002000; |
| RIDL!{#[uuid(0x95c75a6e, 0x3e8c, 0x4ec2, 0x85, 0xa8, 0xae, 0xbc, 0xc5, 0x51, 0xe5, 0x9b)] |
| interface IWICDevelopRawNotificationCallback(IWICDevelopRawNotificationCallbackVtbl): |
| IUnknown(IUnknownVtbl) { |
| fn Notify( |
| NotificationMask: UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xfbec5e44, 0xf7be, 0x4b65, 0xb7, 0xf8, 0xc0, 0xc8, 0x1f, 0xef, 0x02, 0x6d)] |
| interface IWICDevelopRaw(IWICDevelopRawVtbl): IWICBitmapFrameDecode(IWICBitmapFrameDecodeVtbl) { |
| fn QueryRawCapabilitiesInfo( |
| pInfo: *mut WICRawCapabilitiesInfo, |
| ) -> HRESULT, |
| fn LoadParameterSet( |
| ParameterSet: WICRawParameterSet, |
| ) -> HRESULT, |
| fn GetCurrentParameterSet( |
| ppCurrentParameterSet: *mut *mut IPropertyBag2, |
| ) -> HRESULT, |
| fn SetExposureCompensation( |
| ev: c_double, |
| ) -> HRESULT, |
| fn GetExposureCompensation( |
| pEV: *mut c_double, |
| ) -> HRESULT, |
| fn SetWhitePointRGB( |
| Red: UINT, |
| Green: UINT, |
| Blue: UINT, |
| ) -> HRESULT, |
| fn GetWhitePointRGB( |
| pRed: *mut UINT, |
| pGreen: *mut UINT, |
| pBlue: *mut UINT, |
| ) -> HRESULT, |
| fn SetNamedWhitePoint( |
| WhitePoint: WICNamedWhitePoint, |
| ) -> HRESULT, |
| fn GetNamedWhitePoint( |
| pWhitePoint: *mut WICNamedWhitePoint, |
| ) -> HRESULT, |
| fn SetWhitePointKelvin( |
| WhitePointKelvin: UINT, |
| ) -> HRESULT, |
| fn GetWhitePointKelvin( |
| pWhitePointKelvin: *mut UINT, |
| ) -> HRESULT, |
| fn GetKelvinRangeInfo( |
| pMinKelvinTemp: *mut UINT, |
| pMaxKelvinTemp: *mut UINT, |
| pKelvinTempStepValue: *mut UINT, |
| ) -> HRESULT, |
| fn SetContrast( |
| Contrast: c_double, |
| ) -> HRESULT, |
| fn GetContrast( |
| pContrast: *mut c_double, |
| ) -> HRESULT, |
| fn SetGamma( |
| Gamma: c_double, |
| ) -> HRESULT, |
| fn GetGamma( |
| pGamma: *mut c_double, |
| ) -> HRESULT, |
| fn SetSharpness( |
| Sharpness: c_double, |
| ) -> HRESULT, |
| fn GetSharpness( |
| pSharpness: *mut c_double, |
| ) -> HRESULT, |
| fn SetSaturation( |
| Saturation: c_double, |
| ) -> HRESULT, |
| fn GetSaturation( |
| pSaturation: *mut c_double, |
| ) -> HRESULT, |
| fn SetTint( |
| Tint: c_double, |
| ) -> HRESULT, |
| fn GetTint( |
| pTint: *mut c_double, |
| ) -> HRESULT, |
| fn SetNoiseReduction( |
| NoiseReduction: c_double, |
| ) -> HRESULT, |
| fn GetNoiseReduction( |
| pNoiseReduction: *mut c_double, |
| ) -> HRESULT, |
| fn SetDestinationColorContext( |
| pColorContext: *const IWICColorContext, |
| ) -> HRESULT, |
| fn SetToneCurve( |
| cbToneCurveSize: UINT, |
| pToneCurve: *const WICRawToneCurve, |
| ) -> HRESULT, |
| fn GetToneCurve( |
| cbToneCurveBufferSize: UINT, |
| pToneCurve: *mut WICRawToneCurve, |
| pcbActualToneCurveBufferSize: *mut UINT, |
| ) -> HRESULT, |
| fn SetRotation( |
| Rotation: c_double, |
| ) -> HRESULT, |
| fn GetRotation( |
| pRotation: *mut c_double, |
| ) -> HRESULT, |
| fn SetRenderMode( |
| RenderMode: WICRawRenderMode, |
| ) -> HRESULT, |
| fn GetRenderMode( |
| pRenderMode: *mut WICRawRenderMode, |
| ) -> HRESULT, |
| fn SetNotificationCallback( |
| pCallback: *const IWICDevelopRawNotificationCallback, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum WICDdsDimension { |
| WICDdsTexture1D = 0x00000000, |
| WICDdsTexture2D = 0x00000001, |
| WICDdsTexture3D = 0x00000002, |
| WICDdsTextureCube = 0x00000003, |
| WICDDSTEXTURE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| ENUM!{enum WICDdsAlphaMode { |
| WICDdsAlphaModeUnknown = 0x00000000, |
| WICDdsAlphaModeStraight = 0x00000001, |
| WICDdsAlphaModePremultiplied = 0x00000002, |
| WICDdsAlphaModeOpaque = 0x00000003, |
| WICDdsAlphaModeCustom = 0x00000004, |
| WICDDSALPHAMODE_FORCE_DWORD = CODEC_FORCE_DWORD, |
| }} |
| STRUCT!{struct WICDdsParameters { |
| Width: UINT, |
| Height: UINT, |
| Depth: UINT, |
| MipLevels: UINT, |
| ArraySize: UINT, |
| DxgiFormat: DXGI_FORMAT, |
| Dimension: WICDdsDimension, |
| AlphaMode: WICDdsAlphaMode, |
| }} |
| RIDL!{#[uuid(0x409cd537, 0x8532, 0x40cb, 0x97, 0x74, 0xe2, 0xfe, 0xb2, 0xdf, 0x4e, 0x9c)] |
| interface IWICDdsDecoder(IWICDdsDecoderVtbl): IUnknown(IUnknownVtbl) { |
| fn GetParameters( |
| pParameters: *mut WICDdsParameters, |
| ) -> HRESULT, |
| fn GetFrame( |
| arrayIndex: UINT, |
| mipLevel: UINT, |
| sliceIndex: UINT, |
| ppIBitmapFrame: *mut *mut IWICBitmapFrameDecode, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x5cacdb4c, 0x407e, 0x41b3, 0xb9, 0x36, 0xd0, 0xf0, 0x10, 0xcd, 0x67, 0x32)] |
| interface IWICDdsEncoder(IWICDdsEncoderVtbl): IUnknown(IUnknownVtbl) { |
| fn SetParameters( |
| pParameters: *const WICDdsParameters, |
| ) -> HRESULT, |
| fn GetParameters( |
| pParameters: *mut WICDdsParameters, |
| ) -> HRESULT, |
| fn CreateNewFrame( |
| ppIFrameEncode: *mut *mut IWICBitmapFrameEncode, |
| pArrayIndex: *mut UINT, |
| pMipLevel: *mut UINT, |
| pSliceIndex: *mut UINT, |
| ) -> HRESULT, |
| }} |
| STRUCT!{struct WICDdsFormatInfo { |
| DxgiFormat: DXGI_FORMAT, |
| BytesPerBlock: UINT, |
| BlockWidth: UINT, |
| BlockHeight: UINT, |
| }} |
| RIDL!{#[uuid(0x3d4c0c61, 0x18a4, 0x41e4, 0xbd, 0x80, 0x48, 0x1a, 0x4f, 0xc9, 0xf4, 0x64)] |
| interface IWICDdsFrameDecode(IWICDdsFrameDecodeVtbl): IUnknown(IUnknownVtbl) { |
| fn GetSizeInBlocks( |
| pWidthInBlocks: *mut UINT, |
| pHeightInBlocks: *mut UINT, |
| ) -> HRESULT, |
| fn GetFormatInfo( |
| pFormatInfo: *mut WICDdsFormatInfo, |
| ) -> HRESULT, |
| fn CopyBlocks( |
| prcBoundsInBlocks: *const WICRect, |
| cbStride: UINT, |
| cbBufferSize: UINT, |
| pbBuffer: *mut BYTE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x8939f66e, 0xc46a, 0x4c21, 0xa9, 0xd1, 0x98, 0xb3, 0x27, 0xce, 0x16, 0x79)] |
| interface IWICJpegFrameDecode(IWICJpegFrameDecodeVtbl): IUnknown(IUnknownVtbl) { |
| fn DoesSupportIndexing( |
| pfIndexingSupported: *mut BOOL, |
| ) -> HRESULT, |
| fn SetIndexing( |
| options: WICJpegIndexingOptions, |
| horizontalIntervalSize: UINT, |
| ) -> HRESULT, |
| fn ClearIndexing() -> HRESULT, |
| fn GetAcHuffmanTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pAcHuffmanTable: *mut DXGI_JPEG_AC_HUFFMAN_TABLE, |
| ) -> HRESULT, |
| fn GetDcHuffmanTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pDcHuffmanTable: *mut DXGI_JPEG_DC_HUFFMAN_TABLE, |
| ) -> HRESULT, |
| fn GetQuantizationTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pQuantizationTable: *mut DXGI_JPEG_QUANTIZATION_TABLE, |
| ) -> HRESULT, |
| fn GetFrameHeader( |
| pFrameHeader: *mut WICJpegFrameHeader, |
| ) -> HRESULT, |
| fn GetScanHeader( |
| scanIndex: UINT, |
| pScanHeader: *mut WICJpegScanHeader, |
| ) -> HRESULT, |
| fn CopyScan( |
| scanIndex: UINT, |
| scanOffset: UINT, |
| cbScanData: UINT, |
| pbScanData: *mut BYTE, |
| pcbScanDataActual: *mut UINT, |
| ) -> HRESULT, |
| fn CopyMinimalStream( |
| streamOffset: UINT, |
| cbStreamData: UINT, |
| pbStreamData: *mut BYTE, |
| pcbStreamDataActual: *mut UINT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2f0c601f, 0xd2c6, 0x468c, 0xab, 0xfa, 0x49, 0x49, 0x5d, 0x98, 0x3e, 0xd1)] |
| interface IWICJpegFrameEncode(IWICJpegFrameEncodeVtbl): IUnknown(IUnknownVtbl) { |
| fn GetAcHuffmanTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pAcHuffmanTable: *mut DXGI_JPEG_AC_HUFFMAN_TABLE, |
| ) -> HRESULT, |
| fn GetDcHuffmanTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pDcHuffmanTable: *mut DXGI_JPEG_DC_HUFFMAN_TABLE, |
| ) -> HRESULT, |
| fn GetQuantizationTable( |
| scanIndex: UINT, |
| tableIndex: UINT, |
| pQuantizationTable: *mut DXGI_JPEG_QUANTIZATION_TABLE, |
| ) -> HRESULT, |
| fn WriteScan( |
| cbScanData: UINT, |
| pbScanData: *const BYTE, |
| ) -> HRESULT, |
| }} |