// 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,
0 xcacaf262,
0 x9370,
0 x4615,
0 xa1,
0 x3b,
0 x9f,
0 x55,
0 x39,
0 xda,
0 x4c,
0 xa}
DEFINE_GUID!{CLSID_WICImagingFactory1,
0 xcacaf262,
0 x9370,
0 x4615,
0 xa1,
0 x3b,
0 x9f,
0 x55,
0 x39,
0 xda,
0 x4c,
0 xa}
DEFINE_GUID!{CLSID_WICImagingFactory2,
0 x317d06e8,
0 x5f24,
0 x433d,
0 xbd,
0 xf7,
0 x79,
0 xce,
0 x68,
0 xd8,
0 xab,
0 xc2}
DEFINE_GUID!{GUID_VendorMicrosoft,
0 xf0e749ca,
0 xedef,
0 x4589,
0 xa7,
0 x3a,
0 xee,
0 xe,
0 x62,
0 x6a,
0 x2a,
0 x2b}
DEFINE_GUID!{GUID_VendorMicrosoftBuiltIn,
0 x257a30fd,
0 x6b6,
0 x462b,
0 xae,
0 xa4,
0 x63,
0 xf7,
0 xb,
0 x86,
0 xe5,
0 x33}
DEFINE_GUID!{CLSID_WICPngDecoder,
0 x389ea17b,
0 x5078,
0 x4cde,
0 xb6,
0 xef,
0 x25,
0 xc1,
0 x51,
0 x75,
0 xc7,
0 x51}
DEFINE_GUID!{CLSID_WICPngDecoder1,
0 x389ea17b,
0 x5078,
0 x4cde,
0 xb6,
0 xef,
0 x25,
0 xc1,
0 x51,
0 x75,
0 xc7,
0 x51}
DEFINE_GUID!{CLSID_WICPngDecoder2,
0 xe018945b,
0 xaa86,
0 x4008,
0 x9b,
0 xd4,
0 x67,
0 x77,
0 xa1,
0 xe4,
0 x0c,
0 x11}
DEFINE_GUID!{CLSID_WICBmpDecoder,
0 x6b462062,
0 x7cbf,
0 x400d,
0 x9f,
0 xdb,
0 x81,
0 x3d,
0 xd1,
0 x0f,
0 x27,
0 x78}
DEFINE_GUID!{CLSID_WICIcoDecoder,
0 xc61bfcdf,
0 x2e0f,
0 x4aad,
0 xa8,
0 xd7,
0 xe0,
0 x6b,
0 xaf,
0 xeb,
0 xcd,
0 xfe}
DEFINE_GUID!{CLSID_WICJpegDecoder,
0 x9456a480,
0 xe88b,
0 x43ea,
0 x9e,
0 x73,
0 x0b,
0 x2d,
0 x9b,
0 x71,
0 xb1,
0 xca}
DEFINE_GUID!{CLSID_WICGifDecoder,
0 x381dda3c,
0 x9ce9,
0 x4834,
0 xa2,
0 x3e,
0 x1f,
0 x98,
0 xf8,
0 xfc,
0 x52,
0 xbe}
DEFINE_GUID!{CLSID_WICTiffDecoder,
0 xb54e85d9,
0 xfe23,
0 x499f,
0 x8b,
0 x88,
0 x6a,
0 xce,
0 xa7,
0 x13,
0 x75,
0 x2b}
DEFINE_GUID!{CLSID_WICWmpDecoder,
0 xa26cec36,
0 x234c,
0 x4950,
0 xae,
0 x16,
0 xe3,
0 x4a,
0 xac,
0 xe7,
0 x1d,
0 x0d}
DEFINE_GUID!{CLSID_WICDdsDecoder,
0 x9053699f,
0 xa341,
0 x429d,
0 x9e,
0 x90,
0 xee,
0 x43,
0 x7c,
0 xf8,
0 x0c,
0 x73}
DEFINE_GUID!{CLSID_WICBmpEncoder,
0 x69be8bb4,
0 xd66d,
0 x47c8,
0 x86,
0 x5a,
0 xed,
0 x15,
0 x89,
0 x43,
0 x37,
0 x82}
DEFINE_GUID!{CLSID_WICPngEncoder,
0 x27949969,
0 x876a,
0 x41d7,
0 x94,
0 x47,
0 x56,
0 x8f,
0 x6a,
0 x35,
0 xa4,
0 xdc}
DEFINE_GUID!{CLSID_WICJpegEncoder,
0 x1a34f5c1,
0 x4a5a,
0 x46dc,
0 xb6,
0 x44,
0 x1f,
0 x45,
0 x67,
0 xe7,
0 xa6,
0 x76}
DEFINE_GUID!{CLSID_WICGifEncoder,
0 x114f5598,
0 x0b22,
0 x40a0,
0 x86,
0 xa1,
0 xc8,
0 x3e,
0 xa4,
0 x95,
0 xad,
0 xbd}
DEFINE_GUID!{CLSID_WICTiffEncoder,
0 x0131be10,
0 x2001,
0 x4c5f,
0 xa9,
0 xb0,
0 xcc,
0 x88,
0 xfa,
0 xb6,
0 x4c,
0 xe8}
DEFINE_GUID!{CLSID_WICWmpEncoder,
0 xac4ce3cb,
0 xe1c1,
0 x44cd,
0 x82,
0 x15,
0 x5a,
0 x16,
0 x65,
0 x50,
0 x9e,
0 xc2}
DEFINE_GUID!{CLSID_WICDdsEncoder,
0 xa61dde94,
0 x66ce,
0 x4ac1,
0 x88,
0 x1b,
0 x71,
0 x68,
0 x05,
0 x88,
0 x89,
0 x5e}
DEFINE_GUID!{CLSID_WICAdngDecoder,
0 x981d9411,
0 x909e,
0 x42a7,
0 x8f,
0 x5d,
0 xa7,
0 x47,
0 xff,
0 x05,
0 x2e,
0 xdb}
DEFINE_GUID!{CLSID_WICJpegQualcommPhoneEncoder,
0 x68ed5c62,
0 xf534,
0 x4979,
0 xb2,
0 xb3,
0 x68,
0 x6a,
0 x12,
0 xb2,
0 xb3,
0 x4c}
DEFINE_GUID!{GUID_ContainerFormatBmp,
0 x0af1d87e,
0 xfcfe,
0 x4188,
0 xbd,
0 xeb,
0 xa7,
0 x90,
0 x64,
0 x71,
0 xcb,
0 xe3}
DEFINE_GUID!{GUID_ContainerFormatPng,
0 x1b7cfaf4,
0 x713f,
0 x473c,
0 xbb,
0 xcd,
0 x61,
0 x37,
0 x42,
0 x5f,
0 xae,
0 xaf}
DEFINE_GUID!{GUID_ContainerFormatIco,
0 xa3a860c4,
0 x338f,
0 x4c17,
0 x91,
0 x9a,
0 xfb,
0 xa4,
0 xb5,
0 x62,
0 x8f,
0 x21}
DEFINE_GUID!{GUID_ContainerFormatJpeg,
0 x19e4a5aa,
0 x5662,
0 x4fc5,
0 xa0,
0 xc0,
0 x17,
0 x58,
0 x02,
0 x8e,
0 x10,
0 x57}
DEFINE_GUID!{GUID_ContainerFormatTiff,
0 x163bcc30,
0 xe2e9,
0 x4f0b,
0 x96,
0 x1d,
0 xa3,
0 xe9,
0 xfd,
0 xb7,
0 x88,
0 xa3}
DEFINE_GUID!{GUID_ContainerFormatGif,
0 x1f8a5601,
0 x7d4d,
0 x4cbd,
0 x9c,
0 x82,
0 x1b,
0 xc8,
0 xd4,
0 xee,
0 xb9,
0 xa5}
DEFINE_GUID!{GUID_ContainerFormatWmp,
0 x57a37caa,
0 x367a,
0 x4540,
0 x91,
0 x6b,
0 xf1,
0 x83,
0 xc5,
0 x09,
0 x3a,
0 x4b}
DEFINE_GUID!{GUID_ContainerFormatDds,
0 x9967cb95,
0 x2e85,
0 x4ac8,
0 x8c,
0 xa2,
0 x83,
0 xd7,
0 xcc,
0 xd4,
0 x25,
0 xc9}
DEFINE_GUID!{GUID_ContainerFormatAdng,
0 xf3ff6d0d,
0 x38c0,
0 x41c4,
0 xb1,
0 xfe,
0 x1f,
0 x38,
0 x24,
0 xf1,
0 x7b,
0 x84}
DEFINE_GUID!{CLSID_WICImagingCategories,
0 xfae3d380,
0 xfea4,
0 x4623,
0 x8c,
0 x75,
0 xc6,
0 xb6,
0 x11,
0 x10,
0 xb6,
0 x81}
DEFINE_GUID!{CATID_WICBitmapDecoders,
0 x7ed96837,
0 x96f0,
0 x4812,
0 xb2,
0 x11,
0 xf1,
0 x3c,
0 x24,
0 x11,
0 x7e,
0 xd3}
DEFINE_GUID!{CATID_WICBitmapEncoders,
0 xac757296,
0 x3522,
0 x4e11,
0 x98,
0 x62,
0 xc1,
0 x7b,
0 xe5,
0 xa1,
0 x76,
0 x7e}
DEFINE_GUID!{CATID_WICPixelFormats,
0 x2b46e70f,
0 xcda7,
0 x473e,
0 x89,
0 xf6,
0 xdc,
0 x96,
0 x30,
0 xa2,
0 x39,
0 x0b}
DEFINE_GUID!{CATID_WICFormatConverters,
0 x7835eae8,
0 xbf14,
0 x49d1,
0 x93,
0 xce,
0 x53,
0 x3a,
0 x40,
0 x7b,
0 x22,
0 x48}
DEFINE_GUID!{CATID_WICMetadataReader,
0 x05af94d8,
0 x7174,
0 x4cd2,
0 xbe,
0 x4a,
0 x41,
0 x24,
0 xb8,
0 x0e,
0 xe4,
0 xb8}
DEFINE_GUID!{CATID_WICMetadataWriter,
0 xabe3b9a4,
0 x257d,
0 x4b97,
0 xbd,
0 x1a,
0 x29,
0 x4a,
0 xf4,
0 x96,
0 x22,
0 x2e}
DEFINE_GUID!{CLSID_WICDefaultFormatConverter,
0 x1a3f11dc,
0 xb514,
0 x4b17,
0 x8c,
0 x5f,
0 x21,
0 x54,
0 x51,
0 x38,
0 x52,
0 xf1}
DEFINE_GUID!{CLSID_WICFormatConverterHighColor,
0 xac75d454,
0 x9f37,
0 x48f8,
0 xb9,
0 x72,
0 x4e,
0 x19,
0 xbc,
0 x85,
0 x60,
0 x11}
DEFINE_GUID!{CLSID_WICFormatConverterNChannel,
0 xc17cabb2,
0 xd4a3,
0 x47d7,
0 xa5,
0 x57,
0 x33,
0 x9b,
0 x2e,
0 xfb,
0 xd4,
0 xf1}
DEFINE_GUID!{CLSID_WICFormatConverterWMPhoto,
0 x9cb5172b,
0 xd600,
0 x46ba,
0 xab,
0 x77,
0 x77,
0 xbb,
0 x7e,
0 x3a,
0 x00,
0 xd9}
DEFINE_GUID!{CLSID_WICPlanarFormatConverter,
0 x184132b8,
0 x32f8,
0 x4784,
0 x91,
0 x31,
0 xdd,
0 x72,
0 x24,
0 xb2,
0 x34,
0 x38}
pub type WICColor = UINT32;
STRUCT !{
struct WICRect {
X: INT,
Y: INT,
Width: INT,
Height: INT,
}}
pub type WICInProcPointer = *
mut BYTE;
ENUM !{
enum WICColorContextType {
WICColorContextUninitialized =
0 x00000000,
WICColorContextProfile =
0 x00000001,
WICColorContextExifColorSpace =
0 x00000002,
}}
pub const CODEC_FORCE_DWORD: DWORD =
0 x7FFFFFFF;
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 =
0 x00000011;
pub const WIC_JPEG_SAMPLE_FACTORS_THREE_420: DWORD =
0 x00111122;
pub const WIC_JPEG_SAMPLE_FACTORS_THREE_422: DWORD =
0 x00111121;
pub const WIC_JPEG_SAMPLE_FACTORS_THREE_440: DWORD =
0 x00111112;
pub const WIC_JPEG_SAMPLE_FACTORS_THREE_444: DWORD =
0 x00111111;
pub const WIC_JPEG_QUANTIZATION_BASELINE_ONE: DWORD =
0 x00000000;
pub const WIC_JPEG_QUANTIZATION_BASELINE_THREE: DWORD =
0 x00010100;
pub const WIC_JPEG_HUFFMAN_BASELINE_ONE: DWORD =
0 x00000000;
pub const WIC_JPEG_HUFFMAN_BASELINE_THREE: DWORD =
0 x00111100;
pub type REFWICPixelFormatGUID = REFGUID;
pub type WICPixelFormatGUID = GUID;
DEFINE_GUID!{GUID_WICPixelFormatDontCare,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x00}
DEFINE_GUID!{GUID_WICPixelFormat1bppIndexed,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x01}
DEFINE_GUID!{GUID_WICPixelFormat2bppIndexed,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x02}
DEFINE_GUID!{GUID_WICPixelFormat4bppIndexed,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x03}
DEFINE_GUID!{GUID_WICPixelFormat8bppIndexed,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x04}
DEFINE_GUID!{GUID_WICPixelFormatBlackWhite,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x05}
DEFINE_GUID!{GUID_WICPixelFormat2bppGray,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x06}
DEFINE_GUID!{GUID_WICPixelFormat4bppGray,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x07}
DEFINE_GUID!{GUID_WICPixelFormat8bppGray,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x08}
DEFINE_GUID!{GUID_WICPixelFormat8bppAlpha,
0 xe6cd0116,
0 xeeba,
0 x4161,
0 xaa,
0 x85,
0 x27,
0 xdd,
0 x9f,
0 xb3,
0 xa8,
0 x95}
DEFINE_GUID!{GUID_WICPixelFormat16bppBGR555,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x09}
DEFINE_GUID!{GUID_WICPixelFormat16bppBGR565,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0a}
DEFINE_GUID!{GUID_WICPixelFormat16bppBGRA5551,
0 x05ec7c2b,
0 xf1e6,
0 x4961,
0 xad,
0 x46,
0 xe1,
0 xcc,
0 x81,
0 x0a,
0 x87,
0 xd2}
DEFINE_GUID!{GUID_WICPixelFormat16bppGray,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0b}
DEFINE_GUID!{GUID_WICPixelFormat24bppBGR,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0c}
DEFINE_GUID!{GUID_WICPixelFormat24bppRGB,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0d}
DEFINE_GUID!{GUID_WICPixelFormat32bppBGR,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0e}
DEFINE_GUID!{GUID_WICPixelFormat32bppBGRA,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x0f}
DEFINE_GUID!{GUID_WICPixelFormat32bppPBGRA,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x10}
DEFINE_GUID!{GUID_WICPixelFormat32bppGrayFloat,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x11}
DEFINE_GUID!{GUID_WICPixelFormat32bppRGB,
0 xd98c6b95,
0 x3efe,
0 x47d6,
0 xbb,
0 x25,
0 xeb,
0 x17,
0 x48,
0 xab,
0 x0c,
0 xf1}
DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA,
0 xf5c7ad2d,
0 x6a8d,
0 x43dd,
0 xa7,
0 xa8,
0 xa2,
0 x99,
0 x35,
0 x26,
0 x1a,
0 xe9}
DEFINE_GUID!{GUID_WICPixelFormat32bppPRGBA,
0 x3cc4a650,
0 xa527,
0 x4d37,
0 xa9,
0 x16,
0 x31,
0 x42,
0 xc7,
0 xeb,
0 xed,
0 xba}
DEFINE_GUID!{GUID_WICPixelFormat48bppRGB,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x15}
DEFINE_GUID!{GUID_WICPixelFormat48bppBGR,
0 xe605a384,
0 xb468,
0 x46ce,
0 xbb,
0 x2e,
0 x36,
0 xf1,
0 x80,
0 xe6,
0 x43,
0 x13}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGB,
0 xa1182111,
0 x186d,
0 x4d42,
0 xbc,
0 x6a,
0 x9c,
0 x83,
0 x03,
0 xa8,
0 xdf,
0 xf9}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGBA,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x16}
DEFINE_GUID!{GUID_WICPixelFormat64bppBGRA,
0 x1562ff7c,
0 xd352,
0 x46f9,
0 x97,
0 x9e,
0 x42,
0 x97,
0 x6b,
0 x79,
0 x22,
0 x46}
DEFINE_GUID!{GUID_WICPixelFormat64bppPRGBA,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x17}
DEFINE_GUID!{GUID_WICPixelFormat64bppPBGRA,
0 x8c518e8e,
0 xa4ec,
0 x468b,
0 xae,
0 x70,
0 xc9,
0 xa3,
0 x5a,
0 x9c,
0 x55,
0 x30}
DEFINE_GUID!{GUID_WICPixelFormat16bppGrayFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x13}
DEFINE_GUID!{GUID_WICPixelFormat32bppBGR101010,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x14}
DEFINE_GUID!{GUID_WICPixelFormat48bppRGBFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x12}
DEFINE_GUID!{GUID_WICPixelFormat48bppBGRFixedPoint,
0 x49ca140e,
0 xcab6,
0 x493b,
0 x9d,
0 xdf,
0 x60,
0 x18,
0 x7c,
0 x37,
0 x53,
0 x2a}
DEFINE_GUID!{GUID_WICPixelFormat96bppRGBFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x18}
DEFINE_GUID!{GUID_WICPixelFormat96bppRGBFloat,
0 xe3fed78f,
0 xe8db,
0 x4acf,
0 x84,
0 xc1,
0 xe9,
0 x7f,
0 x61,
0 x36,
0 xb3,
0 x27}
DEFINE_GUID!{GUID_WICPixelFormat128bppRGBAFloat,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x19}
DEFINE_GUID!{GUID_WICPixelFormat128bppPRGBAFloat,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1a}
DEFINE_GUID!{GUID_WICPixelFormat128bppRGBFloat,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1b}
DEFINE_GUID!{GUID_WICPixelFormat32bppCMYK,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1c}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGBAFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1d}
DEFINE_GUID!{GUID_WICPixelFormat64bppBGRAFixedPoint,
0 x356de33c,
0 x54d2,
0 x4a23,
0 xbb,
0 x4,
0 x9b,
0 x7b,
0 xf9,
0 xb1,
0 xd4,
0 x2d}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGBFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x40}
DEFINE_GUID!{GUID_WICPixelFormat128bppRGBAFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1e}
DEFINE_GUID!{GUID_WICPixelFormat128bppRGBFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x41}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGBAHalf,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x3a}
DEFINE_GUID!{GUID_WICPixelFormat64bppPRGBAHalf,
0 x58ad26c2,
0 xc623,
0 x4d9d,
0 xb3,
0 x20,
0 x38,
0 x7e,
0 x49,
0 xf8,
0 xc4,
0 x42}
DEFINE_GUID!{GUID_WICPixelFormat64bppRGBHalf,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x42}
DEFINE_GUID!{GUID_WICPixelFormat48bppRGBHalf,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x3b}
DEFINE_GUID!{GUID_WICPixelFormat32bppRGBE,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x3d}
DEFINE_GUID!{GUID_WICPixelFormat16bppGrayHalf,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x3e}
DEFINE_GUID!{GUID_WICPixelFormat32bppGrayFixedPoint,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x3f}
DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA1010102,
0 x25238D72,
0 xFCF9,
0 x4522,
0 xb5,
0 x14,
0 x55,
0 x78,
0 xe5,
0 xad,
0 x55,
0 xe0}
DEFINE_GUID!{GUID_WICPixelFormat32bppRGBA1010102XR,
0 x00DE6B9A,
0 xC101,
0 x434b,
0 xb5,
0 x02,
0 xd0,
0 x16,
0 x5e,
0 xe1,
0 x12,
0 x2c}
DEFINE_GUID!{GUID_WICPixelFormat64bppCMYK,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x1f}
DEFINE_GUID!{GUID_WICPixelFormat24bpp3Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x20}
DEFINE_GUID!{GUID_WICPixelFormat32bpp4Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x21}
DEFINE_GUID!{GUID_WICPixelFormat40bpp5Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x22}
DEFINE_GUID!{GUID_WICPixelFormat48bpp6Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x23}
DEFINE_GUID!{GUID_WICPixelFormat56bpp7Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x24}
DEFINE_GUID!{GUID_WICPixelFormat64bpp8Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x25}
DEFINE_GUID!{GUID_WICPixelFormat48bpp3Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x26}
DEFINE_GUID!{GUID_WICPixelFormat64bpp4Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x27}
DEFINE_GUID!{GUID_WICPixelFormat80bpp5Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x28}
DEFINE_GUID!{GUID_WICPixelFormat96bpp6Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x29}
DEFINE_GUID!{GUID_WICPixelFormat112bpp7Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2a}
DEFINE_GUID!{GUID_WICPixelFormat128bpp8Channels,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2b}
DEFINE_GUID!{GUID_WICPixelFormat40bppCMYKAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2c}
DEFINE_GUID!{GUID_WICPixelFormat80bppCMYKAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2d}
DEFINE_GUID!{GUID_WICPixelFormat32bpp3ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2e}
DEFINE_GUID!{GUID_WICPixelFormat40bpp4ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x2f}
DEFINE_GUID!{GUID_WICPixelFormat48bpp5ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x30}
DEFINE_GUID!{GUID_WICPixelFormat56bpp6ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x31}
DEFINE_GUID!{GUID_WICPixelFormat64bpp7ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x32}
DEFINE_GUID!{GUID_WICPixelFormat72bpp8ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x33}
DEFINE_GUID!{GUID_WICPixelFormat64bpp3ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x34}
DEFINE_GUID!{GUID_WICPixelFormat80bpp4ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x35}
DEFINE_GUID!{GUID_WICPixelFormat96bpp5ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x36}
DEFINE_GUID!{GUID_WICPixelFormat112bpp6ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x37}
DEFINE_GUID!{GUID_WICPixelFormat128bpp7ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x38}
DEFINE_GUID!{GUID_WICPixelFormat144bpp8ChannelsAlpha,
0 x6fddc324,
0 x4e03,
0 x4bfe,
0 xb1,
0 x85,
0 x3d,
0 x77,
0 x76,
0 x8d,
0 xc9,
0 x39}
DEFINE_GUID!{GUID_WICPixelFormat8bppY,
0 x91B4DB54,
0 x2DF9,
0 x42F0,
0 xB4,
0 x49,
0 x29,
0 x09,
0 xBB,
0 x3D,
0 xF8,
0 x8E}
DEFINE_GUID!{GUID_WICPixelFormat8bppCb,
0 x1339F224,
0 x6BFE,
0 x4C3E,
0 x93,
0 x02,
0 xE4,
0 xF3,
0 xA6,
0 xD0,
0 xCA,
0 x2A}
DEFINE_GUID!{GUID_WICPixelFormat8bppCr,
0 xB8145053,
0 x2116,
0 x49F0,
0 x88,
0 x35,
0 xED,
0 x84,
0 x4B,
0 x20,
0 x5C,
0 x51}
DEFINE_GUID!{GUID_WICPixelFormat16bppCbCr,
0 xFF95BA6E,
0 x11E0,
0 x4263,
0 xBB,
0 x45,
0 x01,
0 x72,
0 x1F,
0 x34,
0 x60,
0 xA4}
DEFINE_GUID!{GUID_WICPixelFormat16bppYQuantizedDctCoefficients,
0 xA355F433,
0 x48E8,
0 x4A42,
0 x84,
0 xD8,
0 xE2,
0 xAA,
0 x26,
0 xCA,
0 x80,
0 xA4}
DEFINE_GUID!{GUID_WICPixelFormat16bppCbQuantizedDctCoefficients,
0 xD2C4FF61,
0 x56A5,
0 x49C2,
0 x8B,
0 x5C,
0 x4C,
0 x19,
0 x25,
0 x96,
0 x48,
0 x37}
DEFINE_GUID!{GUID_WICPixelFormat16bppCrQuantizedDctCoefficients,
0 x2FE354F0,
0 x1680,
0 x42D8,
0 x92,
0 x31,
0 xE7,
0 x3C,
0 x05,
0 x65,
0 xBF,
0 xC1}
ENUM !{
enum WICBitmapCreateCacheOption {
WICBitmapNoCache =
0 x00000000,
WICBitmapCacheOnDemand =
0 x00000001,
WICBitmapCacheOnLoad =
0 x00000002,
WICBITMAPCREATECACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICDecodeOptions {
WICDecodeMetadataCacheOnDemand =
0 x00000000,
WICDecodeMetadataCacheOnLoad =
0 x00000001,
WICMETADATACACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapEncoderCacheOption {
WICBitmapEncoderCacheInMemory =
0 x00000000,
WICBitmapEncoderCacheTempFile =
0 x00000001,
WICBitmapEncoderNoCache =
0 x00000002,
WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICComponentType {
WICDecoder =
0 x00000001,
WICEncoder =
0 x00000002,
WICPixelFormatConverter =
0 x00000004,
WICMetadataReader =
0 x00000008,
WICMetadataWriter =
0 x00000010,
WICPixelFormat =
0 x00000020,
WICAllComponents =
0 x0000003F,
WICCOMPONENTTYPE_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICComponentEnumerateOptions {
WICComponentEnumerateDefault =
0 x00000000,
WICComponentEnumerateRefresh =
0 x00000001,
WICComponentEnumerateDisabled =
0 x80000000,
WICComponentEnumerateUnsigned =
0 x40000000,
WICComponentEnumerateBuiltInOnly =
0 x20000000,
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 =
0 x00000000,
WICBitmapInterpolationModeLinear =
0 x00000001,
WICBitmapInterpolationModeCubic =
0 x00000002,
WICBitmapInterpolationModeFant =
0 x00000003,
WICBitmapInterpolationModeHighQualityCubic =
0 x00000004,
WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapPaletteType {
WICBitmapPaletteTypeCustom =
0 x00000000,
WICBitmapPaletteTypeMedianCut =
0 x00000001,
WICBitmapPaletteTypeFixedBW =
0 x00000002,
WICBitmapPaletteTypeFixedHalftone8 =
0 x00000003,
WICBitmapPaletteTypeFixedHalftone27 =
0 x00000004,
WICBitmapPaletteTypeFixedHalftone64 =
0 x00000005,
WICBitmapPaletteTypeFixedHalftone125 =
0 x00000006,
WICBitmapPaletteTypeFixedHalftone216 =
0 x00000007,
WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216,
WICBitmapPaletteTypeFixedHalftone252 =
0 x00000008,
WICBitmapPaletteTypeFixedHalftone256 =
0 x00000009,
WICBitmapPaletteTypeFixedGray4 =
0 x0000000A,
WICBitmapPaletteTypeFixedGray16 =
0 x0000000B,
WICBitmapPaletteTypeFixedGray256 =
0 x0000000C,
WICBITMAPPALETTETYPE_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapDitherType {
WICBitmapDitherTypeNone =
0 x00000000,
WICBitmapDitherTypeSolid =
0 x00000000,
WICBitmapDitherTypeOrdered4x4 =
0 x00000001,
WICBitmapDitherTypeOrdered8x8 =
0 x00000002,
WICBitmapDitherTypeOrdered16x16 =
0 x00000003,
WICBitmapDitherTypeSpiral4x4 =
0 x00000004,
WICBitmapDitherTypeSpiral8x8 =
0 x00000005,
WICBitmapDitherTypeDualSpiral4x4 =
0 x00000006,
WICBitmapDitherTypeDualSpiral8x8 =
0 x00000007,
WICBitmapDitherTypeErrorDiffusion =
0 x00000008,
WICBITMAPDITHERTYPE_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapAlphaChannelOption {
WICBitmapUseAlpha =
0 x00000000,
WICBitmapUsePremultipliedAlpha =
0 x00000001,
WICBitmapIgnoreAlpha =
0 x00000002,
WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapTransformOptions {
WICBitmapTransformRotate0 =
0 x00000000,
WICBitmapTransformRotate90 =
0 x00000001,
WICBitmapTransformRotate180 =
0 x00000002,
WICBitmapTransformRotate270 =
0 x00000003,
WICBitmapTransformFlipHorizontal =
0 x00000008,
WICBitmapTransformFlipVertical =
0 x00000010,
WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapLockFlags {
WICBitmapLockRead =
0 x00000001,
WICBitmapLockWrite =
0 x00000002,
WICBITMAPLOCKFLAGS_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICBitmapDecoderCapabilities {
WICBitmapDecoderCapabilitySameEncoder =
0 x00000001,
WICBitmapDecoderCapabilityCanDecodeAllImages =
0 x00000002,
WICBitmapDecoderCapabilityCanDecodeSomeImages =
0 x00000004,
WICBitmapDecoderCapabilityCanEnumerateMetadata =
0 x00000008,
WICBitmapDecoderCapabilityCanDecodeThumbnail =
0 x00000010,
WICBITMAPDECODERCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICProgressOperation {
WICProgressOperationCopyPixels =
0 x00000001,
WICProgressOperationWritePixels =
0 x00000002,
WICProgressOperationAll =
0 x0000FFFF,
WICPROGRESSOPERATION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICProgressNotification {
WICProgressNotificationBegin =
0 x00010000,
WICProgressNotificationEnd =
0 x00020000,
WICProgressNotificationFrequent =
0 x00040000,
WICProgressNotificationAll =
0 xFFFF0000,
WICPROGRESSNOTIFICATION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICComponentSigning {
WICComponentSigned =
0 x00000001,
WICComponentUnsigned =
0 x00000002,
WICComponentSafe =
0 x00000004,
WICComponentDisabled =
0 x80000000,
WICCOMPONENTSIGNING_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICGifLogicalScreenDescriptorProperties {
WICGifLogicalScreenSignature =
0 x00000001,
WICGifLogicalScreenDescriptorWidth =
0 x00000002,
WICGifLogicalScreenDescriptorHeight =
0 x00000003,
WICGifLogicalScreenDescriptorGlobalColorTableFlag =
0 x00000004,
WICGifLogicalScreenDescriptorColorResolution =
0 x00000005,
WICGifLogicalScreenDescriptorSortFlag =
0 x00000006,
WICGifLogicalScreenDescriptorGlobalColorTableSize =
0 x00000007,
WICGifLogicalScreenDescriptorBackgroundColorIndex =
0 x00000008,
WICGifLogicalScreenDescriptorPixelAspectRatio =
0 x00000009,
WICGifLogicalScreenDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICGifImageDescriptorProperties {
WICGifImageDescriptorLeft =
0 x00000001,
WICGifImageDescriptorTop =
0 x00000002,
WICGifImageDescriptorWidth =
0 x00000003,
WICGifImageDescriptorHeight =
0 x00000004,
WICGifImageDescriptorLocalColorTableFlag =
0 x00000005,
WICGifImageDescriptorInterlaceFlag =
0 x00000006,
WICGifImageDescriptorSortFlag =
0 x00000007,
WICGifImageDescriptorLocalColorTableSize =
0 x00000008,
WICGifImageDescriptorProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICGifGraphicControlExtensionProperties {
WICGifGraphicControlExtensionDisposal =
0 x00000001,
WICGifGraphicControlExtensionUserInputFlag =
0 x00000002,
WICGifGraphicControlExtensionTransparencyFlag =
0 x00000003,
WICGifGraphicControlExtensionDelay =
0 x00000004,
WICGifGraphicControlExtensionTransparentColorIndex =
0 x00000005,
WICGifGraphicControlExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICGifApplicationExtensionProperties {
WICGifApplicationExtensionApplication =
0 x00000001,
WICGifApplicationExtensionData =
0 x00000002,
WICGifApplicationExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICGifCommentExtensionProperties {
WICGifCommentExtensionText =
0 x00000001,
WICGifCommentExtensionProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegCommentProperties {
WICJpegCommentText =
0 x00000001,
WICJpegCommentProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegLuminanceProperties {
WICJpegLuminanceTable =
0 x00000001,
WICJpegLuminanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegChrominanceProperties {
WICJpegChrominanceTable =
0 x00000001,
WICJpegChrominanceProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WIC8BIMIptcProperties {
WIC8BIMIptcPString =
0 x00000000,
WIC8BIMIptcEmbeddedIPTC =
0 x00000001,
WIC8BIMIptcProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WIC8BIMResolutionInfoProperties {
WIC8BIMResolutionInfoPString =
0 x00000001,
WIC8BIMResolutionInfoHResolution =
0 x00000002,
WIC8BIMResolutionInfoHResolutionUnit =
0 x00000003,
WIC8BIMResolutionInfoWidthUnit =
0 x00000004,
WIC8BIMResolutionInfoVResolution =
0 x00000005,
WIC8BIMResolutionInfoVResolutionUnit =
0 x00000006,
WIC8BIMResolutionInfoHeightUnit =
0 x00000007,
WIC8BIMResolutionInfoProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WIC8BIMIptcDigestProperties {
WIC8BIMIptcDigestPString =
0 x00000001,
WIC8BIMIptcDigestIptcDigest =
0 x00000002,
WIC8BIMIptcDigestProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngGamaProperties {
WICPngGamaGamma =
0 x00000001,
WICPngGamaProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngBkgdProperties {
WICPngBkgdBackgroundColor =
0 x00000001,
WICPngBkgdProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngItxtProperties {
WICPngItxtKeyword =
0 x00000001,
WICPngItxtCompressionFlag =
0 x00000002,
WICPngItxtLanguageTag =
0 x00000003,
WICPngItxtTranslatedKeyword =
0 x00000004,
WICPngItxtText =
0 x00000005,
WICPngItxtProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngChrmProperties {
WICPngChrmWhitePointX =
0 x00000001,
WICPngChrmWhitePointY =
0 x00000002,
WICPngChrmRedX =
0 x00000003,
WICPngChrmRedY =
0 x00000004,
WICPngChrmGreenX =
0 x00000005,
WICPngChrmGreenY =
0 x00000006,
WICPngChrmBlueX =
0 x00000007,
WICPngChrmBlueY =
0 x0000008,
WICPngChrmProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngHistProperties {
WICPngHistFrequencies =
0 x00000001,
WICPngHistProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngIccpProperties {
WICPngIccpProfileName =
0 x00000001,
WICPngIccpProfileData =
0 x00000002,
WICPngIccpProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngSrgbProperties {
WICPngSrgbRenderingIntent =
0 x00000001,
WICPngSrgbProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPngTimeProperties {
WICPngTimeYear =
0 x00000001,
WICPngTimeMonth =
0 x00000002,
WICPngTimeDay =
0 x00000003,
WICPngTimeHour =
0 x00000004,
WICPngTimeMinute =
0 x00000005,
WICPngTimeSecond =
0 x00000006,
WICPngTimeProperties_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICSectionAccessLevel {
WICSectionAccessLevelRead =
0 x00000001,
WICSectionAccessLevelReadWrite =
0 x00000003,
WICSectionAccessLevel_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPixelFormatNumericRepresentation {
WICPixelFormatNumericRepresentationUnspecified =
0 x00000000,
WICPixelFormatNumericRepresentationIndexed =
0 x00000001,
WICPixelFormatNumericRepresentationUnsignedInteger =
0 x00000002,
WICPixelFormatNumericRepresentationSignedInteger =
0 x00000003,
WICPixelFormatNumericRepresentationFixed =
0 x00000004,
WICPixelFormatNumericRepresentationFloat =
0 x00000005,
WICPixelFormatNumericRepresentation_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICPlanarOptions {
WICPlanarOptionsDefault =
0 x00000000,
WICPlanarOptionsPreserveSubsampling =
0 x00000001,
WICPLANAROPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegIndexingOptions {
WICJpegIndexingOptionsGenerateOnDemand =
0 x00000000,
WICJpegIndexingOptionsGenerateOnLoad =
0 x00000001,
WICJpegIndexingOptions_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegTransferMatrix {
WICJpegTransferMatrixIdentity =
0 x00000000,
WICJpegTransferMatrixBT601 =
0 x00000001,
WICJpegTransferMatrix_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{
enum WICJpegScanType {
WICJpegScanTypeInterleaved =
0 x00000000,
WICJpegScanTypePlanarComponents =
0 x00000001,
WICJpegScanTypeProgressive =
0 x00000002,
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(
0 x00000040,
0 xa8f2,
0 x4877,
0 xba,
0 x0a,
0 xfd,
0 x2b,
0 x66,
0 x45,
0 xfb,
0 x94)]
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(
0 x00000120,
0 xa8f2,
0 x4877,
0 xba,
0 x0a,
0 xfd,
0 x2b,
0 x66,
0 x45,
0 xfb,
0 x94)]
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(
0 x00000301,
0 xa8f2,
0 x4877,
0 xba,
0 x0a,
0 xfd,
0 x2b,
0 x66,
0 x45,
0 xfb,
0 x94)]
interface IWICFormatConverter(IWICFormatConverterVtbl): IWICBitmapSource(IWICBitma
pSourceVtbl) {
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(0 xbebee9cb, 0 x83b0, 0 x4dcc, 0 x81, 0 x32, 0 xb0, 0 xaa, 0 xa5, 0 x5e, 0 xac, 0 x96)]
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(0 x00000302, 0 xa8f2, 0 x4877, 0 xba, 0 x0a, 0 xfd, 0 x2b, 0 x66, 0 x45, 0 xfb, 0 x94)]
interface IWICBitmapScaler(IWICBitmapScalerVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) {
fn Initialize(
pISource: *const IWICBitmapSource,
uiWidth: UINT,
uiHeight: UINT,
mode: WICBitmapInterpolationMode,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xe4fbcf03, 0 x223d, 0 x4e81, 0 x93, 0 x33, 0 xd6, 0 x35, 0 x55, 0 x6d, 0 xd1, 0 xb5)]
interface IWICBitmapClipper(IWICBitmapClipperVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) {
fn Initialize(
pISource: *const IWICBitmapSource,
prc: *const WICRect,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x5009834f, 0 x2d6a, 0 x41ce, 0 x9e, 0 x1b, 0 x17, 0 xc5, 0 xaf, 0 xf7, 0 xa7, 0 x82)]
interface IWICBitmapFlipRotator(IWICBitmapFlipRotatorVtbl):
IWICBitmapSource(IWICBitmapSourceVtbl) {
fn Initialize(
pISource: *const IWICBitmapSource,
options: WICBitmapTransformOptions,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x00000123, 0 xa8f2, 0 x4877, 0 xba, 0 x0a, 0 xfd, 0 x2b, 0 x66, 0 x45, 0 xfb, 0 x94)]
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(0 x00000121, 0 xa8f2, 0 x4877, 0 xba, 0 x0a, 0 xfd, 0 x2b, 0 x66, 0 x45, 0 xfb, 0 x94)]
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(0 x3c613a02, 0 x34b2, 0 x44ea, 0 x9a, 0 x7c, 0 x45, 0 xae, 0 xa9, 0 xc6, 0 xfd, 0 x6d)]
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(0 xb66f034f, 0 xd0e2, 0 x40ab, 0 xb4, 0 x36, 0 x6d, 0 xe3, 0 x9e, 0 x32, 0 x1a, 0 x94)]
interface IWICColorTransform(IWICColorTransformVtbl): IWICBitmapSource(IWICBitmapSourceVtbl) {
fn Initialize(
pIBitmapSource: *const IWICBitmapSource,
pIContextSource: *const IWICColorContext,
pIContextDest: *const IWICColorContext,
pixelFmtDest: REFWICPixelFormatGUID,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xb84e2c09, 0 x78c9, 0 x4ac4, 0 x8b, 0 xd3, 0 x52, 0 x4a, 0 xe1, 0 x66, 0 x3a, 0 x2f)]
interface IWICFastMetadataEncoder(IWICFastMetadataEncoderVtbl): IUnknown(IUnknownVtbl) {
fn Commit() -> HRESULT,
fn GetMetadataQueryWriter(
ppIMetadataQueryWriter: *mut *mut IWICMetadataQueryWriter,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x135ff860, 0 x22b7, 0 x4ddf, 0 xb0, 0 xf6, 0 x21, 0 x8f, 0 x4f, 0 x29, 0 x9a, 0 x43)]
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(0 xdc2bb46d, 0 x3f07, 0 x481e, 0 x86, 0 x25, 0 x22, 0 x0c, 0 x4a, 0 xed, 0 xbb, 0 x33)]
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(0 x30989668, 0 xe1c9, 0 x4597, 0 xb3, 0 x95, 0 x45, 0 x8e, 0 xed, 0 xb8, 0 x08, 0 xdf)]
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(0 xa721791a, 0 x0def, 0 x4d06, 0 xbd, 0 x91, 0 x21, 0 x18, 0 xbf, 0 x1d, 0 xb1, 0 x0b)]
interface IWICMetadataQueryWriter(IWICMetadataQueryWriterVtbl):
IWICMetadataQueryReader(IWICMetadataQueryReaderVtbl) {
fn SetMetadataByName(
wzName: LPCWSTR,
pvarValue: *const PROPVARIANT,
) -> HRESULT,
fn RemoveMetadataByName(
wzName: LPCWSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x00000103, 0 xa8f2, 0 x4877, 0 xba, 0 x0a, 0 xfd, 0 x2b, 0 x66, 0 x45, 0 xfb, 0 x94)]
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(0 x00000105, 0 xa8f2, 0 x4877, 0 xba, 0 x0a, 0 xfd, 0 x2b, 0 x66, 0 x45, 0 xfb, 0 x94)]
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(0 xf928b7b8, 0 x2221, 0 x40c1, 0 xb7, 0 x2e, 0 x7e, 0 x82, 0 xf1, 0 x97, 0 x4d, 0 x1a)]
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(0 x04c75bf8, 0 x3ce1, 0 x473b, 0 xac, 0 xc5, 0 x3c, 0 xc4, 0 xf5, 0 xe9, 0 x49, 0 x99)]
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(0 x9edde9e7, 0 x8dee, 0 x47ea, 0 x99, 0 xdf, 0 xe6, 0 xfa, 0 xf2, 0 xed, 0 x44, 0 xbf)]
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(0 x3b16811b, 0 x6a43, 0 x4ec9, 0 xb7, 0 x13, 0 x3d, 0 x5a, 0 x0c, 0 x13, 0 xb9, 0 x40)]
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(0 x3aff9cce, 0 xbe95, 0 x4303, 0 xb9, 0 x27, 0 xe7, 0 xd1, 0 x6f, 0 xf4, 0 xa6, 0 x13)]
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(0 x3b16811b, 0 x6a43, 0 x4ec9, 0 xa8, 0 x13, 0 x3d, 0 x93, 0 x0c, 0 x13, 0 xb9, 0 x40)]
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(0 xdaac296f, 0 x7aa5, 0 x4dbf, 0 x8d, 0 x15, 0 x22, 0 x5c, 0 x59, 0 x76, 0 xf8, 0 x91)]
interface IWICProgressiveLevelControl(IWICProgressiveLevelControlVtbl): IUnknown(IUnknownVtbl) {
fn GetLevelCount(
pcLevels: *mut UINT,
) -> HRESULT,
fn GetCurrentLevel(
pnLevel: *mut UINT,
) -> HRESULT,
fn SetCurrentLevel(
nLevel: UINT,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x4776f9cd, 0 x9517, 0 x45fa, 0 xbf, 0 x24, 0 xe8, 0 x9c, 0 x5e, 0 xc5, 0 xc6, 0 x0c)]
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(0 x64c1024e, 0 xc3cf, 0 x4462, 0 x80, 0 x78, 0 x88, 0 xc2, 0 xb1, 0 x1c, 0 x46, 0 xd9)]
interface IWICBitmapCodecProgressNotification(IWICBitmapCodecProgressNotificationVtbl):
IUnknown(IUnknownVtbl) {
fn RegisterProgressNotification(
pfnProgressNotification: PFNProgressNotification,
pvData: LPVOID,
dwProgressFlags: DWORD,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x23bc3f0a, 0 x698b, 0 x4357, 0 x88, 0 x6b, 0 xf2, 0 x4d, 0 x50, 0 x67, 0 x13, 0 x34)]
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(0 x9f34fb65, 0 x13f4, 0 x4f15, 0 xbc, 0 x57, 0 x37, 0 x26, 0 xb5, 0 xe5, 0 x3d, 0 x9f)]
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(0 xe87a44c4, 0 xb76e, 0 x4c47, 0 x8b, 0 x09, 0 x29, 0 x8e, 0 xb1, 0 x2a, 0 x27, 0 x14)]
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(0 x94c9b4ee, 0 xa09f, 0 x4f92, 0 x8a, 0 x1e, 0 x4a, 0 x9b, 0 xce, 0 x7e, 0 x76, 0 xfb)]
interface IWICBitmapEncoderInfo(IWICBitmapEncoderInfoVtbl):
IWICBitmapCodecInfo(IWICBitmapCodecInfoVtbl) {
fn CreateInstance(
ppIBitmapEncoder: *mut *mut IWICBitmapEncoder,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xd8cd007f, 0 xd08f, 0 x4191, 0 x9b, 0 xfc, 0 x23, 0 x6e, 0 xa7, 0 xf0, 0 xe4, 0 xb5)]
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(0 xe8eda601, 0 x3d48, 0 x431a, 0 xab, 0 x44, 0 x69, 0 x05, 0 x9b, 0 xe8, 0 x8b, 0 xbe)]
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(0 xa9db33a2, 0 xaf5f, 0 x43c7, 0 xb6, 0 x79, 0 x74, 0 xf5, 0 x98, 0 x4b, 0 x5a, 0 xa4)]
interface IWICPixelFormatInfo2(IWICPixelFormatInfo2Vtbl):
IWICPixelFormatInfo(IWICPixelFormatInfoVtbl) {
fn SupportsTransparency(
pfSupportsTransparency: *mut BOOL,
) -> HRESULT,
fn GetNumericRepresentation(
pNumericRepresentation: *mut WICPixelFormatNumericRepresentation,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xec5ec8a9, 0 xc395, 0 x4314, 0 x9c, 0 x77, 0 x54, 0 xd7, 0 xa9, 0 x35, 0 xff, 0 x70)]
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(0 x7b816b45, 0 x1996, 0 x4476, 0 xb1, 0 x32, 0 xde, 0 x9e, 0 x24, 0 x7c, 0 x8a, 0 xf0)]
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 = 0 x898;
pub const WINCODEC_ERR_BASE: HRESULT = 0 x2000;
/// intsafe.h, 0x216 = 534 = ERROR_ARITHMETIC_OVERFLOW
pub const INTSAFE_E_ARITHMETIC_OVERFLOW: HRESULT = 0 x80070216;
#[ 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 = 0 x00000000,
WICTiffCompressionNone = 0 x00000001,
WICTiffCompressionCCITT3 = 0 x00000002,
WICTiffCompressionCCITT4 = 0 x00000003,
WICTiffCompressionLZW = 0 x00000004,
WICTiffCompressionRLE = 0 x00000005,
WICTiffCompressionZIP = 0 x00000006,
WICTiffCompressionLZWHDifferencing = 0 x00000007,
WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICJpegYCrCbSubsamplingOption {
WICJpegYCrCbSubsamplingDefault = 0 x00000000,
WICJpegYCrCbSubsampling420 = 0 x00000001,
WICJpegYCrCbSubsampling422 = 0 x00000002,
WICJpegYCrCbSubsampling444 = 0 x00000003,
WICJpegYCrCbSubsampling440 = 0 x00000004,
WICJPEGYCRCBSUBSAMPLING_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICPngFilterOption {
WICPngFilterUnspecified = 0 x00000000,
WICPngFilterNone = 0 x00000001,
WICPngFilterSub = 0 x00000002,
WICPngFilterUp = 0 x00000003,
WICPngFilterAverage = 0 x00000004,
WICPngFilterPaeth = 0 x00000005,
WICPngFilterAdaptive = 0 x00000006,
WICPNGFILTEROPTION_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICNamedWhitePoint {
WICWhitePointDefault = 0 x00000001,
WICWhitePointDaylight = 0 x00000002,
WICWhitePointCloudy = 0 x00000004,
WICWhitePointShade = 0 x00000008,
WICWhitePointTungsten = 0 x00000010,
WICWhitePointFluorescent = 0 x00000020,
WICWhitePointFlash = 0 x00000040,
WICWhitePointUnderwater = 0 x00000080,
WICWhitePointCustom = 0 x00000100,
WICWhitePointAutoWhiteBalance = 0 x00000200,
WICWhitePointAsShot = WICWhitePointDefault,
WICNAMEDWHITEPOINT_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICRawCapabilities {
WICRawCapabilityNotSupported = 0 x00000000,
WICRawCapabilityGetSupported = 0 x00000001,
WICRawCapabilityFullySupported = 0 x00000002,
WICRAWCAPABILITIES_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICRawRotationCapabilities {
WICRawRotationCapabilityNotSupported = 0 x00000000,
WICRawRotationCapabilityGetSupported = 0 x00000001,
WICRawRotationCapabilityNinetyDegreesSupported = 0 x00000002,
WICRawRotationCapabilityFullySupported = 0 x00000003,
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 = 0 x00000001,
WICUserAdjustedParameterSet = 0 x00000002,
WICAutoAdjustedParameterSet = 0 x00000003,
WICRAWPARAMETERSET_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICRawRenderMode {
WICRawRenderModeDraft = 0 x00000001,
WICRawRenderModeNormal = 0 x00000002,
WICRawRenderModeBestQuality = 0 x00000003,
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 = 0 x00000001;
pub const WICRawChangeNotification_NamedWhitePoint: UINT = 0 x00000002;
pub const WICRawChangeNotification_KelvinWhitePoint: UINT = 0 x00000004;
pub const WICRawChangeNotification_RGBWhitePoint: UINT = 0 x00000008;
pub const WICRawChangeNotification_Contrast: UINT = 0 x00000010;
pub const WICRawChangeNotification_Gamma: UINT = 0 x00000020;
pub const WICRawChangeNotification_Sharpness: UINT = 0 x00000040;
pub const WICRawChangeNotification_Saturation: UINT = 0 x00000080;
pub const WICRawChangeNotification_Tint: UINT = 0 x00000100;
pub const WICRawChangeNotification_NoiseReduction: UINT = 0 x00000200;
pub const WICRawChangeNotification_DestinationColorContext: UINT = 0 x00000400;
pub const WICRawChangeNotification_ToneCurve: UINT = 0 x00000800;
pub const WICRawChangeNotification_Rotation: UINT = 0 x00001000;
pub const WICRawChangeNotification_RenderMode: UINT = 0 x00002000;
RIDL!{#[ uuid(0 x95c75a6e, 0 x3e8c, 0 x4ec2, 0 x85, 0 xa8, 0 xae, 0 xbc, 0 xc5, 0 x51, 0 xe5, 0 x9b)]
interface IWICDevelopRawNotificationCallback(IWICDevelopRawNotificationCallbackVtbl):
IUnknown(IUnknownVtbl) {
fn Notify(
NotificationMask: UINT,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xfbec5e44, 0 xf7be, 0 x4b65, 0 xb7, 0 xf8, 0 xc0, 0 xc8, 0 x1f, 0 xef, 0 x02, 0 x6d)]
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 = 0 x00000000,
WICDdsTexture2D = 0 x00000001,
WICDdsTexture3D = 0 x00000002,
WICDdsTextureCube = 0 x00000003,
WICDDSTEXTURE_FORCE_DWORD = CODEC_FORCE_DWORD,
}}
ENUM !{enum WICDdsAlphaMode {
WICDdsAlphaModeUnknown = 0 x00000000,
WICDdsAlphaModeStraight = 0 x00000001,
WICDdsAlphaModePremultiplied = 0 x00000002,
WICDdsAlphaModeOpaque = 0 x00000003,
WICDdsAlphaModeCustom = 0 x00000004,
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(0 x409cd537, 0 x8532, 0 x40cb, 0 x97, 0 x74, 0 xe2, 0 xfe, 0 xb2, 0 xdf, 0 x4e, 0 x9c)]
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(0 x5cacdb4c, 0 x407e, 0 x41b3, 0 xb9, 0 x36, 0 xd0, 0 xf0, 0 x10, 0 xcd, 0 x67, 0 x32)]
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(0 x3d4c0c61, 0 x18a4, 0 x41e4, 0 xbd, 0 x80, 0 x48, 0 x1a, 0 x4f, 0 xc9, 0 xf4, 0 x64)]
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(0 x8939f66e, 0 xc46a, 0 x4c21, 0 xa9, 0 xd1, 0 x98, 0 xb3, 0 x27, 0 xce, 0 x16, 0 x79)]
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(0 x2f0c601f, 0 xd2c6, 0 x468c, 0 xab, 0 xfa, 0 x49, 0 x49, 0 x5d, 0 x98, 0 x3e, 0 xd1)]
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,
}}
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.46 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland