| // Copyright © 2015, Peter Atashian |
| // Licensed under the MIT License <LICENSE.md> |
| //! GDI procedure declarations, constant definitions and macros |
| pub const DISPLAY_DEVICE_ATTACHED_TO_DESKTOP: ::DWORD = 0x00000001; |
| pub const DISPLAY_DEVICE_MULTI_DRIVER: ::DWORD = 0x00000002; |
| pub const DISPLAY_DEVICE_PRIMARY_DEVICE: ::DWORD = 0x00000004; |
| pub const DISPLAY_DEVICE_MIRRORING_DRIVER: ::DWORD = 0x00000008; |
| pub const DISPLAY_DEVICE_VGA_COMPATIBLE: ::DWORD = 0x00000010; |
| pub const DISPLAY_DEVICE_REMOVABLE: ::DWORD = 0x00000020; |
| pub const DISPLAY_DEVICE_ACC_DRIVER: ::DWORD = 0x00000040; |
| pub const DISPLAY_DEVICE_MODESPRUNED: ::DWORD = 0x08000000; |
| pub const DISPLAY_DEVICE_REMOTE: ::DWORD = 0x04000000; |
| pub const DISPLAY_DEVICE_DISCONNECT: ::DWORD = 0x02000000; |
| pub const DISPLAY_DEVICE_TS_COMPATIBLE: ::DWORD = 0x00200000; |
| pub const DISPLAY_DEVICE_UNSAFE_MODES_ON: ::DWORD = 0x00080000; |
| pub const DISPLAY_DEVICE_ACTIVE: ::DWORD = 0x00000001; |
| pub const DISPLAY_DEVICE_ATTACHED: ::DWORD = 0x00000002; |
| pub const DM_ORIENTATION: ::DWORD = 0x00000001; |
| pub const DM_PAPERSIZE: ::DWORD = 0x00000002; |
| pub const DM_PAPERLENGTH: ::DWORD = 0x00000004; |
| pub const DM_PAPERWIDTH: ::DWORD = 0x00000008; |
| pub const DM_SCALE: ::DWORD = 0x00000010; |
| pub const DM_POSITION: ::DWORD = 0x00000020; |
| pub const DM_NUP: ::DWORD = 0x00000040; |
| pub const DM_DISPLAYORIENTATION: ::DWORD = 0x00000080; |
| pub const DM_COPIES: ::DWORD = 0x00000100; |
| pub const DM_DEFAULTSOURCE: ::DWORD = 0x00000200; |
| pub const DM_PRINTQUALITY: ::DWORD = 0x00000400; |
| pub const DM_COLOR: ::DWORD = 0x00000800; |
| pub const DM_DUPLEX: ::DWORD = 0x00001000; |
| pub const DM_YRESOLUTION: ::DWORD = 0x00002000; |
| pub const DM_TTOPTION: ::DWORD = 0x00004000; |
| pub const DM_COLLATE: ::DWORD = 0x00008000; |
| pub const DM_FORMNAME: ::DWORD = 0x00010000; |
| pub const DM_LOGPIXELS: ::DWORD = 0x00020000; |
| pub const DM_BITSPERPEL: ::DWORD = 0x00040000; |
| pub const DM_PELSWIDTH: ::DWORD = 0x00080000; |
| pub const DM_PELSHEIGHT: ::DWORD = 0x00100000; |
| pub const DM_DISPLAYFLAGS: ::DWORD = 0x00200000; |
| pub const DM_DISPLAYFREQUENCY: ::DWORD = 0x00400000; |
| pub const DM_ICMMETHOD: ::DWORD = 0x00800000; |
| pub const DM_ICMINTENT: ::DWORD = 0x01000000; |
| pub const DM_MEDIATYPE: ::DWORD = 0x02000000; |
| pub const DM_DITHERTYPE: ::DWORD = 0x04000000; |
| pub const DM_PANNINGWIDTH: ::DWORD = 0x08000000; |
| pub const DM_PANNINGHEIGHT: ::DWORD = 0x10000000; |
| pub const DM_DISPLAYFIXEDOUTPUT: ::DWORD = 0x20000000; |
| pub const PFD_TYPE_RGBA: ::BYTE = 0; |
| pub const PFD_TYPE_COLORINDEX: ::BYTE = 1; |
| pub const PFD_MAIN_PLANE: ::BYTE = 0; |
| pub const PFD_OVERLAY_PLANE: ::BYTE = 1; |
| pub const PFD_UNDERLAY_PLANE: ::BYTE = 0xFF; |
| pub const PFD_DOUBLEBUFFER: ::DWORD = 0x00000001; |
| pub const PFD_STEREO: ::DWORD = 0x00000002; |
| pub const PFD_DRAW_TO_WINDOW: ::DWORD = 0x00000004; |
| pub const PFD_DRAW_TO_BITMAP: ::DWORD = 0x00000008; |
| pub const PFD_SUPPORT_GDI: ::DWORD = 0x00000010; |
| pub const PFD_SUPPORT_OPENGL: ::DWORD = 0x00000020; |
| pub const PFD_GENERIC_FORMAT: ::DWORD = 0x00000040; |
| pub const PFD_NEED_PALETTE: ::DWORD = 0x00000080; |
| pub const PFD_NEED_SYSTEM_PALETTE: ::DWORD = 0x00000100; |
| pub const PFD_SWAP_EXCHANGE: ::DWORD = 0x00000200; |
| pub const PFD_SWAP_COPY: ::DWORD = 0x00000400; |
| pub const PFD_SWAP_LAYER_BUFFERS: ::DWORD = 0x00000800; |
| pub const PFD_GENERIC_ACCELERATED: ::DWORD = 0x00001000; |
| pub const PFD_SUPPORT_DIRECTDRAW: ::DWORD = 0x00002000; |
| pub const PFD_DIRECT3D_ACCELERATED: ::DWORD = 0x00004000; |
| pub const PFD_SUPPORT_COMPOSITION: ::DWORD = 0x00008000; |
| pub const PFD_DEPTH_DONTCARE: ::DWORD = 0x20000000; |
| pub const PFD_DOUBLEBUFFER_DONTCARE: ::DWORD = 0x40000000; |
| pub const PFD_STEREO_DONTCARE: ::DWORD = 0x80000000; |
| pub const CCHFORMNAME: usize = 32; |
| STRUCT!{struct DEVMODEA { |
| dmDeviceName: [::CHAR; ::CCHDEVICENAME], |
| dmSpecVersion: ::WORD, |
| dmDriverVersion: ::WORD, |
| dmSize: ::WORD, |
| dmDriverExtra: ::WORD, |
| dmFields: ::DWORD, |
| union1: [u8; 16], |
| dmColor: ::c_short, |
| dmDuplex: ::c_short, |
| dmYResolution: ::c_short, |
| dmTTOption: ::c_short, |
| dmCollate: ::c_short, |
| dmFormName: [::CHAR; CCHFORMNAME], |
| dmLogPixels: ::WORD, |
| dmBitsPerPel: ::DWORD, |
| dmPelsWidth: ::DWORD, |
| dmPelsHeight: ::DWORD, |
| dmDisplayFlags: ::DWORD, |
| dmDisplayFrequency: ::DWORD, |
| dmICMMethod: ::DWORD, |
| dmICMIntent: ::DWORD, |
| dmMediaType: ::DWORD, |
| dmDitherType: ::DWORD, |
| dmReserved1: ::DWORD, |
| dmReserved2: ::DWORD, |
| dmPanningWidth: ::DWORD, |
| dmPanningHeight: ::DWORD, |
| }} |
| pub type PDEVMODEA = *mut DEVMODEA; |
| pub type NPDEVMODEA = *mut DEVMODEA; |
| pub type LPDEVMODEA = *mut DEVMODEA; |
| STRUCT!{struct DEVMODEW { |
| dmDeviceName: [::WCHAR; ::CCHDEVICENAME], |
| dmSpecVersion: ::WORD, |
| dmDriverVersion: ::WORD, |
| dmSize: ::WORD, |
| dmDriverExtra: ::WORD, |
| dmFields: ::DWORD, |
| union1: [u8; 16], |
| dmColor: ::c_short, |
| dmDuplex: ::c_short, |
| dmYResolution: ::c_short, |
| dmTTOption: ::c_short, |
| dmCollate: ::c_short, |
| dmFormName: [::WCHAR; CCHFORMNAME], |
| dmLogPixels: ::WORD, |
| dmBitsPerPel: ::DWORD, |
| dmPelsWidth: ::DWORD, |
| dmPelsHeight: ::DWORD, |
| dmDisplayFlags: ::DWORD, |
| dmDisplayFrequency: ::DWORD, |
| dmICMMethod: ::DWORD, |
| dmICMIntent: ::DWORD, |
| dmMediaType: ::DWORD, |
| dmDitherType: ::DWORD, |
| dmReserved1: ::DWORD, |
| dmReserved2: ::DWORD, |
| dmPanningWidth: ::DWORD, |
| dmPanningHeight: ::DWORD, |
| }} |
| pub type PDEVMODEW = *mut DEVMODEW; |
| pub type NPDEVMODEW = *mut DEVMODEW; |
| pub type LPDEVMODEW = *mut DEVMODEW; |
| STRUCT!{nodebug struct DISPLAY_DEVICEW { |
| cb: ::DWORD, |
| DeviceName: [::WCHAR; 32], |
| DeviceString: [::WCHAR; 128], |
| StateFlags: ::DWORD, |
| DeviceID: [::WCHAR; 128], |
| DeviceKey: [::WCHAR; 128], |
| }} |
| pub type PDISPLAY_DEVICEW = *mut DISPLAY_DEVICEW; |
| pub type LPDISPLAY_DEVICEW = *mut DISPLAY_DEVICEW; |
| STRUCT!{nodebug struct DISPLAY_DEVICEA { |
| cb: ::DWORD, |
| DeviceName: [::CHAR; 32], |
| DeviceString: [::CHAR; 128], |
| StateFlags: ::DWORD, |
| DeviceID: [::CHAR; 128], |
| DeviceKey: [::CHAR; 128], |
| }} |
| pub type PDISPLAY_DEVICEA = *mut DISPLAY_DEVICEA; |
| pub type LPDISPLAY_DEVICEA = *mut DISPLAY_DEVICEA; |
| STRUCT!{struct PIXELFORMATDESCRIPTOR { |
| nSize: ::WORD, |
| nVersion: ::WORD, |
| dwFlags: ::DWORD, |
| iPixelType: ::BYTE, |
| cColorBits: ::BYTE, |
| cRedBits: ::BYTE, |
| cRedShift: ::BYTE, |
| cGreenBits: ::BYTE, |
| cGreenShift: ::BYTE, |
| cBlueBits: ::BYTE, |
| cBlueShift: ::BYTE, |
| cAlphaBits: ::BYTE, |
| cAlphaShift: ::BYTE, |
| cAccumBits: ::BYTE, |
| cAccumRedBits: ::BYTE, |
| cAccumGreenBits: ::BYTE, |
| cAccumBlueBits: ::BYTE, |
| cAccumAlphaBits: ::BYTE, |
| cDepthBits: ::BYTE, |
| cStencilBits: ::BYTE, |
| cAuxBuffers: ::BYTE, |
| iLayerType: ::BYTE, |
| bReserved: ::BYTE, |
| dwLayerMask: ::DWORD, |
| dwVisibleMask: ::DWORD, |
| dwDamageMask: ::DWORD, |
| }} |
| pub type PPIXELFORMATDESCRIPTOR = *mut PIXELFORMATDESCRIPTOR; |
| pub type LPPIXELFORMATDESCRIPTOR = *mut PIXELFORMATDESCRIPTOR; |
| pub const R2_BLACK: ::c_int = 1; |
| pub const R2_NOTMERGEPEN: ::c_int = 2; |
| pub const R2_MASKNOTPEN: ::c_int = 3; |
| pub const R2_NOTCOPYPEN: ::c_int = 4; |
| pub const R2_MASKPENNOT: ::c_int = 5; |
| pub const R2_NOT: ::c_int = 6; |
| pub const R2_XORPEN: ::c_int = 7; |
| pub const R2_NOTMASKPEN: ::c_int = 8; |
| pub const R2_MASKPEN: ::c_int = 9; |
| pub const R2_NOTXORPEN: ::c_int = 10; |
| pub const R2_NOP: ::c_int = 11; |
| pub const R2_MERGENOTPEN: ::c_int = 12; |
| pub const R2_COPYPEN: ::c_int = 13; |
| pub const R2_MERGEPENNOT: ::c_int = 14; |
| pub const R2_MERGEPEN: ::c_int = 15; |
| pub const R2_WHITE: ::c_int = 16; |
| pub const R2_LAST: ::c_int = 16; |
| //83 |
| pub const SRCCOPY: ::DWORD = 0x00CC0020; |
| pub const SRCPAINT: ::DWORD = 0x00EE0086; |
| pub const SRCAND: ::DWORD = 0x008800C6; |
| pub const SRCINVERT: ::DWORD = 0x00660046; |
| pub const SRCERASE: ::DWORD = 0x00440328; |
| pub const NOTSRCCOPY: ::DWORD = 0x00330008; |
| pub const NOTSRCERASE: ::DWORD = 0x001100A6; |
| pub const MERGECOPY: ::DWORD = 0x00C000CA; |
| pub const MERGEPAINT: ::DWORD = 0x00BB0226; |
| pub const PATCOPY: ::DWORD = 0x00F00021; |
| pub const PATPAINT: ::DWORD = 0x00FB0A09; |
| pub const PATINVERT: ::DWORD = 0x005A0049; |
| pub const DSTINVERT: ::DWORD = 0x00550009; |
| pub const BLACKNESS: ::DWORD = 0x00000042; |
| pub const WHITENESS: ::DWORD = 0x00FF0062; |
| //121 |
| // fnCombineMode values for CombineRgn |
| pub const RGN_AND: ::c_int = 1; |
| pub const RGN_OR: ::c_int = 2; |
| pub const RGN_XOR: ::c_int = 3; |
| pub const RGN_DIFF: ::c_int = 4; |
| pub const RGN_COPY: ::c_int = 5; |
| pub const RGN_MIN: ::c_int = RGN_AND; |
| pub const RGN_MAX: ::c_int = RGN_COPY; |
| //572 (Win 7 SDK) |
| STRUCT!{struct BITMAP { |
| bmType: ::LONG, |
| bmWidth: ::LONG, |
| bmHeight: ::LONG, |
| bmWidthBytes: ::LONG, |
| bmPlanes: ::WORD, |
| bmBitsPixel: ::WORD, |
| bmBits: ::LPVOID, |
| }} |
| pub type PBITMAP = *mut BITMAP; |
| pub type NPBITMAP = *mut BITMAP; |
| pub type LPBITMAP = *mut BITMAP; |
| STRUCT!{struct RGBQUAD { |
| rgbBlue: ::BYTE, |
| rgbGreen: ::BYTE, |
| rgbRed: ::BYTE, |
| rgbReserved: ::BYTE, |
| }} |
| pub type LPRGBQUAD = *mut RGBQUAD; |
| pub const CS_ENABLE: ::DWORD = 0x00000001; |
| pub const CS_DISABLE: ::DWORD = 0x00000002; |
| pub const CS_DELETE_TRANSFORM: ::DWORD = 0x00000003; |
| pub const LCS_SIGNATURE: ::DWORD = 0x5053_4F43; // 'PSOC' |
| pub const LCS_sRGB: LCSCSTYPE = 0x7352_4742; // 'sRGB' |
| pub const LCS_WINDOWS_COLOR_SPACE: LCSCSTYPE = 0x5769_6E20; // 'Win ' |
| pub type LCSCSTYPE = ::LONG; |
| pub const LCS_CALIBRATED_RGB: LCSCSTYPE = 0x00000000; |
| pub type LCSGAMUTMATCH = ::LONG; |
| pub const LCS_GM_BUSINESS: LCSGAMUTMATCH = 0x00000001; |
| pub const LCS_GM_GRAPHICS: LCSGAMUTMATCH = 0x00000002; |
| pub const LCS_GM_IMAGES: LCSGAMUTMATCH = 0x00000004; |
| pub const LCS_GM_ABS_COLORIMETRIC: LCSGAMUTMATCH = 0x00000008; |
| pub const CM_OUT_OF_GAMUT: ::BYTE = 255; |
| pub const CM_IN_GAMUT: ::BYTE = 0; |
| pub const ICM_ADDPROFILE: ::UINT = 1; |
| pub const ICM_DELETEPROFILE: ::UINT = 2; |
| pub const ICM_QUERYPROFILE: ::UINT = 3; |
| pub const ICM_SETDEFAULTPROFILE: ::UINT = 4; |
| pub const ICM_REGISTERICMATCHER: ::UINT = 5; |
| pub const ICM_UNREGISTERICMATCHER: ::UINT = 6; |
| pub const ICM_QUERYMATCH: ::UINT = 7; |
| pub type FXPT16DOT16 = ::c_long; |
| pub type LPFXPT16DOT16 = *mut ::c_long; |
| pub type FXPT2DOT30 = ::c_long; |
| pub type LPFXPT2DOT30 = *mut ::c_long; |
| STRUCT!{struct CIEXYZ { |
| ciexyzX: FXPT2DOT30, |
| ciexyzY: FXPT2DOT30, |
| ciexyzZ: FXPT2DOT30, |
| }} |
| pub type LPCIEXYZ = *mut CIEXYZ; |
| STRUCT!{struct CIEXYZTRIPLE { |
| ciexyzRed: CIEXYZ, |
| ciexyzGreen: CIEXYZ, |
| ciexyzBlue: CIEXYZ, |
| }} |
| pub type LPCIEXYZTRIPLE = *mut CIEXYZTRIPLE; |
| //716 (Win 7 SDK) |
| STRUCT!{struct BITMAPINFOHEADER { |
| biSize: ::DWORD, |
| biWidth: ::LONG, |
| biHeight: ::LONG, |
| biPlanes: ::WORD, |
| biBitCount: ::WORD, |
| biCompression: ::DWORD, |
| biSizeImage: ::DWORD, |
| biXPelsPerMeter: ::LONG, |
| biYPelsPerMeter: ::LONG, |
| biClrUsed: ::DWORD, |
| biClrImportant: ::DWORD, |
| }} |
| pub type LPBITMAPINFOHEADER = *mut BITMAPINFOHEADER; |
| pub type PBITMAPINFOHEADER = *mut BITMAPINFOHEADER; |
| STRUCT!{struct BITMAPV5HEADER { |
| bV5Size: ::DWORD, |
| bV5Width: ::LONG, |
| bV5Height: ::LONG, |
| bV5Planes: ::WORD, |
| bV5BitCount: ::WORD, |
| bV5Compression: ::DWORD, |
| bV5SizeImage: ::DWORD, |
| bV5XPelsPerMeter: ::LONG, |
| bV5YPelsPerMeter: ::LONG, |
| bV5ClrUsed: ::DWORD, |
| bV5ClrImportant: ::DWORD, |
| bV5RedMask: ::DWORD, |
| bV5GreenMask: ::DWORD, |
| bV5BlueMask: ::DWORD, |
| bV5AlphaMask: ::DWORD, |
| bV5CSType: ::LONG, // LONG to match LOGCOLORSPACE |
| bV5Endpoints: CIEXYZTRIPLE, |
| bV5GammaRed: ::DWORD, |
| bV5GammaGreen: ::DWORD, |
| bV5GammaBlue: ::DWORD, |
| bV5Intent: ::LONG, // LONG to match LOGCOLORSPACE |
| bV5ProfileData: ::DWORD, |
| bV5ProfileSize: ::DWORD, |
| bV5Reserved: ::DWORD, |
| }} |
| pub type LPBITMAPV5HEADER = *mut BITMAPV5HEADER; |
| pub type PBITMAPV5HEADER = *mut BITMAPV5HEADER; |
| pub const PROFILE_LINKED: ::LONG = 0x4C49_4E4B; // 'LINK' |
| pub const PROFILE_EMBEDDED: ::LONG = 0x4D42_4544; // 'MBED' |
| pub const BI_RGB: ::DWORD = 0; |
| pub const BI_RLE8: ::DWORD = 1; |
| pub const BI_RLE4: ::DWORD = 2; |
| pub const BI_BITFIELDS: ::DWORD = 3; |
| pub const BI_JPEG: ::DWORD = 4; |
| pub const BI_PNG: ::DWORD = 5; |
| STRUCT!{struct BITMAPINFO { |
| bmiHeader: BITMAPINFOHEADER, |
| bmiColors: [RGBQUAD; 0], |
| }} |
| pub type LPBITMAPINFO = *mut BITMAPINFO; |
| pub type PBITMAPINFO = *mut BITMAPINFO; |
| //1438 |
| pub const LF_FACESIZE: usize = 32; |
| STRUCT!{nodebug struct LOGFONTA { |
| lfHeight: ::LONG, |
| lfWidth: ::LONG, |
| lfEscapement: ::LONG, |
| lfOrientation: ::LONG, |
| lfWeight: ::LONG, |
| lfItalic: ::BYTE, |
| lfUnderline: ::BYTE, |
| lfStrikeOut: ::BYTE, |
| lfCharSet: ::BYTE, |
| lfOutPrecision: ::BYTE, |
| lfClipPrecision: ::BYTE, |
| lfQuality: ::BYTE, |
| lfPitchAndFamily: ::BYTE, |
| lfFaceName: [::CHAR; LF_FACESIZE], |
| }} |
| pub type LPLOGFONTA = *mut LOGFONTA; |
| STRUCT!{nodebug struct LOGFONTW { |
| lfHeight: ::LONG, |
| lfWidth: ::LONG, |
| lfEscapement: ::LONG, |
| lfOrientation: ::LONG, |
| lfWeight: ::LONG, |
| lfItalic: ::BYTE, |
| lfUnderline: ::BYTE, |
| lfStrikeOut: ::BYTE, |
| lfCharSet: ::BYTE, |
| lfOutPrecision: ::BYTE, |
| lfClipPrecision: ::BYTE, |
| lfQuality: ::BYTE, |
| lfPitchAndFamily: ::BYTE, |
| lfFaceName: [::WCHAR; LF_FACESIZE], |
| }} |
| pub type LPLOGFONTW = *mut LOGFONTW; |
| //1595 |
| #[inline] |
| pub fn RGB (r: ::BYTE, g: ::BYTE, b: ::BYTE) -> ::COLORREF { |
| r as ::COLORREF | ((g as ::COLORREF) << 8) | ((b as ::COLORREF) << 16) |
| } |
| // |
| pub const DRIVERVERSION: ::c_int = 0; |
| pub const TECHNOLOGY: ::c_int = 2; |
| pub const HORZSIZE: ::c_int = 4; |
| pub const VERTSIZE: ::c_int = 6; |
| pub const HORZRES: ::c_int = 8; |
| pub const VERTRES: ::c_int = 10; |
| pub const BITSPIXEL: ::c_int = 12; |
| pub const PLANES: ::c_int = 14; |
| pub const NUMBRUSHES: ::c_int = 16; |
| pub const NUMPENS: ::c_int = 18; |
| pub const NUMMARKERS: ::c_int = 20; |
| pub const NUMFONTS: ::c_int = 22; |
| pub const NUMCOLORS: ::c_int = 24; |
| pub const PDEVICESIZE: ::c_int = 26; |
| pub const CURVECAPS: ::c_int = 28; |
| pub const LINECAPS: ::c_int = 30; |
| pub const POLYGONALCAPS: ::c_int = 32; |
| pub const TEXTCAPS: ::c_int = 34; |
| pub const CLIPCAPS: ::c_int = 36; |
| pub const RASTERCAPS: ::c_int = 38; |
| pub const ASPECTX: ::c_int = 40; |
| pub const ASPECTY: ::c_int = 42; |
| pub const ASPECTXY: ::c_int = 44; |
| pub const LOGPIXELSX: ::c_int = 88; |
| pub const LOGPIXELSY: ::c_int = 90; |
| pub const SIZEPALETTE: ::c_int = 104; |
| pub const NUMRESERVED: ::c_int = 106; |
| pub const COLORRES: ::c_int = 108; |
| pub const PHYSICALWIDTH: ::c_int = 110; |
| pub const PHYSICALHEIGHT: ::c_int = 111; |
| pub const PHYSICALOFFSETX: ::c_int = 112; |
| pub const PHYSICALOFFSETY: ::c_int = 113; |
| pub const SCALINGFACTORX: ::c_int = 114; |
| pub const SCALINGFACTORY: ::c_int = 115; |
| pub const VREFRESH: ::c_int = 116; |
| pub const DESKTOPVERTRES: ::c_int = 117; |
| pub const DESKTOPHORZRES: ::c_int = 118; |
| pub const BLTALIGNMENT: ::c_int = 119; |
| pub const SHADEBLENDCAPS: ::c_int = 120; |
| pub const COLORMGMTCAPS: ::c_int = 121; |
| //1906 |
| pub const DIB_RGB_COLORS: ::UINT = 0; |
| pub const DIB_PAL_COLORS: ::UINT = 1; |
| pub const CBM_INIT: ::DWORD = 4; |
| STRUCT!{struct RGNDATAHEADER { |
| dwSize: ::DWORD, |
| iType: ::DWORD, |
| nCount: ::DWORD, |
| nRgnSize: ::DWORD, |
| rcBound: ::RECT, |
| }} |
| pub type PRGNDATAHEADER = *mut RGNDATAHEADER; |
| STRUCT!{nodebug struct RGNDATA { |
| rdh: RGNDATAHEADER, |
| Buffer: [::c_char; 0], |
| }} |
| pub type PRGNDATA = *mut RGNDATA; |
| pub type NPRGNDATA = *mut RGNDATA; |
| pub type LPRGNDATA = *mut RGNDATA; |
| STRUCT!{struct PALETTEENTRY { |
| peRed: ::BYTE, |
| peGreen: ::BYTE, |
| peBlue: ::BYTE, |
| peFlags: ::BYTE, |
| }} |
| pub type PPALETTEENTRY = *mut PALETTEENTRY; |
| pub type LPPALETTEENTRY = *mut PALETTEENTRY; |
| //2824 (Win 7 SDK) |
| STRUCT!{struct ABC { |
| abcA: ::c_int, |
| abcB: ::UINT, |
| abcC: ::c_int, |
| }} |
| pub type PABC = *mut ABC; |
| pub type NPABC = *mut ABC; |
| pub type LPABC = *mut ABC; |
| STRUCT!{struct ABCFLOAT { |
| abcfA: ::FLOAT, |
| abcfB: ::FLOAT, |
| abcfC: ::FLOAT, |
| }} |
| pub type PABCFLOAT = *mut ABCFLOAT; |
| pub type NPABCFLOAT = *mut ABCFLOAT; |
| pub type LPABCFLOAT = *mut ABCFLOAT; |
| //3581 |
| pub type LINEDDAPROC = Option<unsafe extern "system" fn(::c_int, ::c_int, ::LPARAM)>; |
| STRUCT!{struct XFORM { |
| eM11: ::FLOAT, |
| eM12: ::FLOAT, |
| eM21: ::FLOAT, |
| eM22: ::FLOAT, |
| eDx: ::FLOAT, |
| eDy: ::FLOAT, |
| }} |
| pub type PXFORM = *mut XFORM; |
| pub type LPXFORM = *mut XFORM; |
| STRUCT!{struct LOGBRUSH { |
| lbStyle: ::UINT, |
| lbColor: ::COLORREF, |
| lbHatch: ::ULONG_PTR, |
| }} |
| pub type PLOGBRUSH = *mut LOGBRUSH; |
| STRUCT!{nodebug struct LOGCOLORSPACEA { |
| lcsSignature: ::DWORD, |
| lcsVersion: ::DWORD, |
| lcsSize: ::DWORD, |
| lcsCSType: LCSCSTYPE, |
| lcsIntent: LCSGAMUTMATCH, |
| lcsEndpoints: CIEXYZTRIPLE, |
| lcsGammaRed: ::DWORD, |
| lcsGammaGreen: ::DWORD, |
| lcsGammaBlue: ::DWORD, |
| lcsFilename: [::CHAR; ::MAX_PATH], |
| }} |
| pub type LPLOGCOLORSPACEA = *mut LOGCOLORSPACEA; |
| STRUCT!{nodebug struct LOGCOLORSPACEW { |
| lcsSignature: ::DWORD, |
| lcsVersion: ::DWORD, |
| lcsSize: ::DWORD, |
| lcsCSType: LCSCSTYPE, |
| lcsIntent: LCSGAMUTMATCH, |
| lcsEndpoints: CIEXYZTRIPLE, |
| lcsGammaRed: ::DWORD, |
| lcsGammaGreen: ::DWORD, |
| lcsGammaBlue: ::DWORD, |
| lcsFilename: [::WCHAR; ::MAX_PATH], |
| }} |
| pub type LPLOGCOLORSPACEW = *mut LOGCOLORSPACEW; |
| pub const LF_FULLFACESIZE: usize = 64; |
| STRUCT!{nodebug struct ENUMLOGFONTEXA { |
| elfLogFont: LOGFONTA, |
| elfFullName: [::BYTE; LF_FULLFACESIZE], |
| elfStyle: [::BYTE; LF_FACESIZE], |
| elfScript: [::BYTE; LF_FACESIZE], |
| }} |
| pub type LPENUMLOGFONTEXA = *mut ENUMLOGFONTEXA; |
| STRUCT!{nodebug struct ENUMLOGFONTEXW { |
| elfLogFont: LOGFONTW, |
| elfFullName: [::WCHAR; LF_FULLFACESIZE], |
| elfStyle: [::WCHAR; LF_FACESIZE], |
| elfScript: [::WCHAR; LF_FACESIZE], |
| }} |
| pub type LPENUMLOGFONTEXW = *mut ENUMLOGFONTEXW; |
| pub const MM_MAX_NUMAXES: usize = 16; |
| STRUCT!{struct DESIGNVECTOR { |
| dvReserved: ::DWORD, |
| dvNumAxes: ::DWORD, |
| dvValues: [::LONG; MM_MAX_NUMAXES], |
| }} |
| pub type PDESIGNVECTOR = *mut DESIGNVECTOR; |
| pub type LPDESIGNVECTOR = *mut DESIGNVECTOR; |
| STRUCT!{nodebug struct ENUMLOGFONTEXDVA { |
| elfEnumLogfontEx: ENUMLOGFONTEXA, |
| elfDesignVector: DESIGNVECTOR, |
| }} |
| pub type PENUMLOGFONTEXDVA = *mut ENUMLOGFONTEXDVA; |
| pub type LPENUMLOGFONTEXDVA = *mut ENUMLOGFONTEXDVA; |
| STRUCT!{nodebug struct ENUMLOGFONTEXDVW { |
| elfEnumLogfontEx: ENUMLOGFONTEXW, |
| elfDesignVector: DESIGNVECTOR, |
| }} |
| pub type PENUMLOGFONTEXDVW = *mut ENUMLOGFONTEXDVW; |
| pub type LPENUMLOGFONTEXDVW = *mut ENUMLOGFONTEXDVW; |
| STRUCT!{struct LOGPALETTE { |
| palVersion: ::WORD, |
| palNumEntries: ::WORD, |
| palPalEntry: [PALETTEENTRY; 1], |
| }} |
| pub type PLOGPALETTE = *mut LOGPALETTE; |
| pub type NPLOGPALETTE = *mut LOGPALETTE; |
| pub type LPLOGPALETTE = *mut LOGPALETTE; |
| STRUCT!{struct LOGPEN { |
| lopnStyle: ::UINT, |
| lopnWidth: ::POINT, |
| lopnColor: ::COLORREF, |
| }} |
| pub type PLOGPEN = *mut LOGPEN; |
| pub type NPLOGPEN = *mut LOGPEN; |
| pub type LPLOGPEN = *mut LOGPEN; |
| STRUCT!{struct BLENDFUNCTION { |
| BlendOp: ::BYTE, |
| BlendFlags: ::BYTE, |
| SourceConstantAlpha: ::BYTE, |
| AlphaFormat: ::BYTE, |
| }} |
| pub type PBLENDFUNCTION = *mut BLENDFUNCTION; |
| pub const TMPF_FIXED_PITCH: ::BYTE = 0x01; |
| pub const TMPF_VECTOR: ::BYTE = 0x02; |
| pub const TMPF_DEVICE: ::BYTE = 0x08; |
| pub const TMPF_TRUETYPE: ::BYTE = 0x04; |
| STRUCT!{struct TEXTMETRICA { |
| tmHeight: ::LONG, |
| tmAscent: ::LONG, |
| tmDescent: ::LONG, |
| tmInternalLeading: ::LONG, |
| tmExternalLeading: ::LONG, |
| tmAveCharWidth: ::LONG, |
| tmMaxCharWidth: ::LONG, |
| tmWeight: ::LONG, |
| tmOverhang: ::LONG, |
| tmDigitizedAspectX: ::LONG, |
| tmDigitizedAspectY: ::LONG, |
| tmFirstChar: ::BYTE, |
| tmLastChar: ::BYTE, |
| tmDefaultChar: ::BYTE, |
| tmBreakChar: ::BYTE, |
| tmItalic: ::BYTE, |
| tmUnderlined: ::BYTE, |
| tmStruckOut: ::BYTE, |
| tmPitchAndFamily: ::BYTE, |
| tmCharSet: ::BYTE, |
| }} |
| pub type PTEXTMETRICA = *mut TEXTMETRICA; |
| pub type NPTEXTMETRICA = *mut TEXTMETRICA; |
| pub type LPTEXTMETRICA = *mut TEXTMETRICA; |
| STRUCT!{struct TEXTMETRICW { |
| tmHeight: ::LONG, |
| tmAscent: ::LONG, |
| tmDescent: ::LONG, |
| tmInternalLeading: ::LONG, |
| tmExternalLeading: ::LONG, |
| tmAveCharWidth: ::LONG, |
| tmMaxCharWidth: ::LONG, |
| tmWeight: ::LONG, |
| tmOverhang: ::LONG, |
| tmDigitizedAspectX: ::LONG, |
| tmDigitizedAspectY: ::LONG, |
| tmFirstChar: ::WCHAR, |
| tmLastChar: ::WCHAR, |
| tmDefaultChar: ::WCHAR, |
| tmBreakChar: ::WCHAR, |
| tmItalic: ::BYTE, |
| tmUnderlined: ::BYTE, |
| tmStruckOut: ::BYTE, |
| tmPitchAndFamily: ::BYTE, |
| tmCharSet: ::BYTE, |
| }} |
| pub type PTEXTMETRICW = *mut TEXTMETRICW; |
| pub type NPTEXTMETRICW = *mut TEXTMETRICW; |
| pub type LPTEXTMETRICW = *mut TEXTMETRICW; |
| pub const TA_NOUPDATECP: ::UINT = 0; |
| pub const TA_UPDATECP: ::UINT = 1; |
| pub const TA_LEFT: ::UINT = 0; |
| pub const TA_RIGHT: ::UINT = 2; |
| pub const TA_CENTER: ::UINT = 6; |
| pub const TA_TOP: ::UINT = 0; |
| pub const TA_BOTTOM: ::UINT = 8; |
| pub const TA_BASELINE: ::UINT = 24; |
| pub const TA_RTLREADING: ::UINT = 256; |
| pub const TA_MASK: ::UINT = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING; |
| pub const WHITE_BRUSH: ::c_int = 0; |
| pub const LTGRAY_BRUSH: ::c_int = 1; |
| pub const GRAY_BRUSH: ::c_int = 2; |
| pub const DKGRAY_BRUSH: ::c_int = 3; |
| pub const BLACK_BRUSH: ::c_int = 4; |
| pub const NULL_BRUSH: ::c_int = 5; |
| pub const HOLLOW_BRUSH: ::c_int = 5; |
| pub const WHITE_PEN: ::c_int = 6; |
| pub const BLACK_PEN: ::c_int = 7; |
| pub const NULL_PEN: ::c_int = 8; |
| pub const OEM_FIXED_FONT: ::c_int = 10; |
| pub const ANSI_FIXED_FONT: ::c_int = 11; |
| pub const ANSI_VAR_FONT: ::c_int = 12; |
| pub const SYSTEM_FONT: ::c_int = 13; |
| pub const DEVICE_DEFAULT_FONT: ::c_int = 14; |
| pub const DEFAULT_PALETTE: ::c_int = 15; |
| pub const SYSTEM_FIXED_FONT: ::c_int = 16; |
| pub const DEFAULT_GUI_FONT: ::c_int = 17; |
| pub const DC_BRUSH: ::c_int = 18; |
| pub const DC_PEN: ::c_int = 19; |
| pub const STOCK_LAST: ::c_int = 19;pub const PS_SOLID: ::c_int = 0; |
| pub const PS_DASH: ::c_int = 1; |
| pub const PS_DOT: ::c_int = 2; |
| pub const PS_DASHDOT: ::c_int = 3; |
| pub const PS_DASHDOTDOT: ::c_int = 4; |
| pub const PS_NULL: ::c_int = 5; |
| pub const PS_INSIDEFRAME: ::c_int = 6; |
| pub const PS_USERSTYLE: ::c_int = 7; |
| pub const PS_ALTERNATE: ::c_int = 8; |
| pub const TRANSPARENT: ::c_int = 1; |
| pub const OPAQUE: ::c_int = 2; |
| pub const BKMODE_LAST: ::c_int = 2; |
| pub const MM_TEXT: ::c_int = 1; |
| pub const MM_LOMETRIC: ::c_int = 2; |
| pub const MM_HIMETRIC: ::c_int = 3; |
| pub const MM_LOENGLISH: ::c_int = 4; |
| pub const MM_HIENGLISH: ::c_int = 5; |
| pub const MM_TWIPS: ::c_int = 6; |
| pub const MM_ISOTROPIC: ::c_int = 7; |
| pub const MM_ANISOTROPIC: ::c_int = 8; |
| pub const ALTERNATE: ::c_int = 1; |
| pub const WINDING: ::c_int = 2; |
| pub const POLYFILL_LAST: ::c_int = 2; |
| pub const OUT_DEFAULT_PRECIS: ::DWORD = 0; |
| pub const OUT_STRING_PRECIS: ::DWORD = 1; |
| pub const OUT_CHARACTER_PRECIS: ::DWORD = 2; |
| pub const OUT_STROKE_PRECIS: ::DWORD = 3; |
| pub const OUT_TT_PRECIS: ::DWORD = 4; |
| pub const OUT_DEVICE_PRECIS: ::DWORD = 5; |
| pub const OUT_RASTER_PRECIS: ::DWORD = 6; |
| pub const OUT_TT_ONLY_PRECIS: ::DWORD = 7; |
| pub const OUT_OUTLINE_PRECIS: ::DWORD = 8; |
| pub const OUT_SCREEN_OUTLINE_PRECIS: ::DWORD = 9; |
| pub const OUT_PS_ONLY_PRECIS: ::DWORD = 10; |
| pub const CLIP_DEFAULT_PRECIS: ::DWORD = 0; |
| pub const CLIP_CHARACTER_PRECIS: ::DWORD = 1; |
| pub const CLIP_STROKE_PRECIS: ::DWORD = 2; |
| pub const CLIP_MASK: ::DWORD = 0xf; |
| pub const CLIP_LH_ANGLES: ::DWORD = 1 << 4; |
| pub const CLIP_TT_ALWAYS: ::DWORD = 2 << 4; |
| pub const CLIP_DFA_DISABLE: ::DWORD = 4 << 4; |
| pub const CLIP_EMBEDDED: ::DWORD = 8 << 4; |
| pub const DEFAULT_QUALITY: ::DWORD = 0; |
| pub const DRAFT_QUALITY: ::DWORD = 1; |
| pub const PROOF_QUALITY: ::DWORD = 2; |
| pub const NONANTIALIASED_QUALITY: ::DWORD = 3; |
| pub const ANTIALIASED_QUALITY: ::DWORD = 4; |
| pub const CLEARTYPE_QUALITY: ::DWORD = 5; |
| pub const CLEARTYPE_NATURAL_QUALITY: ::DWORD = 6; |
| pub const DEFAULT_PITCH: ::DWORD = 0; |
| pub const FIXED_PITCH: ::DWORD = 1; |
| pub const VARIABLE_PITCH: ::DWORD = 2; |
| pub const FF_DONTCARE: ::DWORD = 0 << 4; |
| pub const FF_ROMAN: ::DWORD = 1 << 4; |
| pub const FF_SWISS: ::DWORD = 2 << 4; |
| pub const FF_MODERN: ::DWORD = 3 << 4; |
| pub const FF_SCRIPT: ::DWORD = 4 << 4; |
| pub const FF_DECORATIVE: ::DWORD = 5 << 4; |
| pub const MONO_FONT: ::DWORD = 8; |
| pub const ANSI_CHARSET: ::DWORD = 0; |
| pub const DEFAULT_CHARSET: ::DWORD = 1; |
| pub const SYMBOL_CHARSET: ::DWORD = 2; |
| pub const SHIFTJIS_CHARSET: ::DWORD = 128; |
| pub const HANGEUL_CHARSET: ::DWORD = 129; |
| pub const HANGUL_CHARSET: ::DWORD = 129; |
| pub const GB2312_CHARSET: ::DWORD = 134; |
| pub const CHINESEBIG5_CHARSET: ::DWORD = 136; |
| pub const OEM_CHARSET: ::DWORD = 255; |
| pub const JOHAB_CHARSET: ::DWORD = 130; |
| pub const HEBREW_CHARSET: ::DWORD = 177; |
| pub const ARABIC_CHARSET: ::DWORD = 178; |
| pub const GREEK_CHARSET: ::DWORD = 161; |
| pub const TURKISH_CHARSET: ::DWORD = 162; |
| pub const VIETNAMESE_CHARSET: ::DWORD = 163; |
| pub const THAI_CHARSET: ::DWORD = 222; |
| pub const EASTEUROPE_CHARSET: ::DWORD = 238; |
| pub const RUSSIAN_CHARSET: ::DWORD = 204; |
| pub const MAC_CHARSET: ::DWORD = 77; |
| pub const BALTIC_CHARSET: ::DWORD = 186; |
| pub const FS_LATIN1: ::DWORD = 0x00000001; |
| pub const FS_LATIN2: ::DWORD = 0x00000002; |
| pub const FS_CYRILLIC: ::DWORD = 0x00000004; |
| pub const FS_GREEK: ::DWORD = 0x00000008; |
| pub const FS_TURKISH: ::DWORD = 0x00000010; |
| pub const FS_HEBREW: ::DWORD = 0x00000020; |
| pub const FS_ARABIC: ::DWORD = 0x00000040; |
| pub const FS_BALTIC: ::DWORD = 0x00000080; |
| pub const FS_VIETNAMESE: ::DWORD = 0x00000100; |
| pub const FS_THAI: ::DWORD = 0x00010000; |
| pub const FS_JISJAPAN: ::DWORD = 0x00020000; |
| pub const FS_CHINESESIMP: ::DWORD = 0x00040000; |
| pub const FS_WANSUNG: ::DWORD = 0x00080000; |
| pub const FS_CHINESETRAD: ::DWORD = 0x00100000; |
| pub const FS_JOHAB: ::DWORD = 0x00200000; |
| pub const FS_SYMBOL: ::DWORD = 0x80000000; |
| pub const FW_DONTCARE: ::c_int = 0; |
| pub const FW_THIN: ::c_int = 100; |
| pub const FW_EXTRALIGHT: ::c_int = 200; |
| pub const FW_LIGHT: ::c_int = 300; |
| pub const FW_NORMAL: ::c_int = 400; |
| pub const FW_MEDIUM: ::c_int = 500; |
| pub const FW_SEMIBOLD: ::c_int = 600; |
| pub const FW_BOLD: ::c_int = 700; |
| pub const FW_EXTRABOLD: ::c_int = 800; |
| pub const FW_HEAVY: ::c_int = 900; |
| pub const FW_ULTRALIGHT: ::c_int = FW_EXTRALIGHT; |
| pub const FW_REGULAR: ::c_int = FW_NORMAL; |
| pub const FW_DEMIBOLD: ::c_int = FW_SEMIBOLD; |
| pub const FW_ULTRABOLD: ::c_int = FW_EXTRABOLD; |
| pub const FW_BLACK: ::c_int = FW_HEAVY; |
| pub type COLOR16 = ::c_ushort; |
| STRUCT!{struct TRIVERTEX { |
| x: ::LONG, |
| y: ::LONG, |
| Red: COLOR16, |
| Green: COLOR16, |
| Blue: COLOR16, |
| Alpha: COLOR16, |
| }} |
| pub type PTRIVERTEX = *mut TRIVERTEX; |
| pub type LPTRIVERTEX = *mut TRIVERTEX; |
| STRUCT!{struct GRADIENT_RECT { |
| UpperLeft: ::ULONG, |
| LowerRight: ::ULONG, |
| }} |
| pub type PGRADIENT_RECT = *mut GRADIENT_RECT; |
| pub type LPGRADIENT_RECT = *mut GRADIENT_RECT; |
| /* Object Definitions for EnumObjects() */ |
| pub const OBJ_PEN: ::UINT = 1; |
| pub const OBJ_BRUSH: ::UINT = 2; |
| pub const OBJ_DC: ::UINT = 3; |
| pub const OBJ_METADC: ::UINT = 4; |
| pub const OBJ_PAL: ::UINT = 5; |
| pub const OBJ_FONT: ::UINT = 6; |
| pub const OBJ_BITMAP: ::UINT = 7; |
| pub const OBJ_REGION: ::UINT = 8; |
| pub const OBJ_METAFILE: ::UINT = 9; |
| pub const OBJ_MEMDC: ::UINT = 10; |
| pub const OBJ_EXTPEN: ::UINT = 11; |
| pub const OBJ_ENHMETADC: ::UINT = 12; |
| pub const OBJ_ENHMETAFILE: ::UINT = 13; |
| pub const OBJ_COLORSPACE: ::UINT = 14; |
| pub const GDI_OBJ_LAST: ::UINT = OBJ_COLORSPACE; |
| STRUCT!{struct COLORADJUSTMENT { |
| caSize: ::WORD, |
| caFlags: ::WORD, |
| caIlluminantIndex: ::WORD, |
| caRedGamma: ::WORD, |
| caGreenGamma: ::WORD, |
| caBlueGamma: ::WORD, |
| caReferenceBlack: ::WORD, |
| caReferenceWhite: ::WORD, |
| caContrast: ::SHORT, |
| caBrightness: ::SHORT, |
| caColorfulness: ::SHORT, |
| caRedGreenTint: ::SHORT, |
| }} |
| pub type PCOLORADJUSTMENT = *mut COLORADJUSTMENT; |
| pub type LPCOLORADJUSTMENT = *mut COLORADJUSTMENT; |
| pub type OLDFONTENUMPROCA = Option<unsafe extern "system" fn( |
| *const LOGFONTA, *const ::VOID, ::DWORD, ::LPARAM |
| ) -> ::c_int>; |
| pub type OLDFONTENUMPROCW = Option<unsafe extern "system" fn( |
| *const LOGFONTW, *const ::VOID, ::DWORD, ::LPARAM |
| ) -> ::c_int>; |
| pub type FONTENUMPROCA = OLDFONTENUMPROCA; |
| pub type FONTENUMPROCW = OLDFONTENUMPROCW; |
| STRUCT!{struct WCRANGE { |
| wcLow: ::WCHAR, |
| cGlyphs: ::USHORT, |
| }} |
| pub type PWCRANGE = *mut WCRANGE; |
| pub type LPWCRANGE = *mut WCRANGE; |
| STRUCT!{struct GLYPHSET { |
| cbThis: ::DWORD, |
| flAccel: ::DWORD, |
| cGlyphsSupported: ::DWORD, |
| cRanges: ::DWORD, |
| ranges: [WCRANGE;1], |
| }} |
| pub type PGLYPHSET = *mut GLYPHSET; |
| pub type LPGLYPHSET = *mut GLYPHSET; |
| pub type ABORTPROC = Option<unsafe extern "system" fn(::HDC, ::c_int) -> ::BOOL>; |
| STRUCT!{struct DOCINFOA { |
| cbSize: ::c_int, |
| lpszDocName: ::LPCSTR, |
| lpszOutput: ::LPCSTR, |
| lpszDatatype: ::LPCSTR, |
| fwType: ::DWORD, |
| }} |
| pub type LPDOCINFOA = *mut DOCINFOA; |
| STRUCT!{struct DOCINFOW { |
| cbSize: ::c_int, |
| lpszDocName: ::LPCWSTR, |
| lpszOutput: ::LPCWSTR, |
| lpszDatatype: ::LPCWSTR, |
| fwType: ::DWORD, |
| }} |
| pub type LPDOCINFOW = *mut DOCINFOW; |
| pub type ICMENUMPROCA = Option<unsafe extern "system" fn(::LPSTR, ::LPARAM) -> ::c_int>; |
| pub type ICMENUMPROCW = Option<unsafe extern "system" fn(::LPWSTR, ::LPARAM) -> ::c_int>; |
| STRUCT!{struct HANDLETABLE { |
| objectHandle: [::HGDIOBJ; 1], |
| }} |
| pub type LPHANDLETABLE = *mut HANDLETABLE; |
| pub type PHANDLETABLE = *mut HANDLETABLE; |
| STRUCT!{struct METARECORD { |
| rdSize: ::DWORD, |
| rdFunction: ::WORD, |
| rdParm: [::WORD; 1], |
| }} |
| pub type PMETARECORD = *mut METARECORD; |
| pub type LPMETARECORD = *mut METARECORD; |
| pub type MFENUMPROC = Option<unsafe extern "system" fn( |
| hdc: ::HDC, lpht: *mut ::HANDLETABLE, lpMR: *mut ::METARECORD, nObj: ::c_int, param: ::LPARAM |
| ) -> ::c_int>; |
| pub type GOBJENUMPROC = Option<unsafe extern "system" fn(::LPVOID, ::LPARAM) -> ::c_int>; |
| STRUCT!{struct GCP_RESULTSA { |
| lStructSize: ::DWORD, |
| lpOutString: ::LPSTR, |
| lpOrder: *const ::UINT, |
| lpDx: *const ::c_int, |
| lpCaretPos: *const ::c_int, |
| lpClass: ::LPSTR, |
| lpGlyphs: ::LPWSTR, |
| nGlyphs: ::UINT, |
| nMaxFit: ::c_int, |
| }} |
| pub type LPGCP_RESULTSA = *mut GCP_RESULTSA; |
| STRUCT!{struct GCP_RESULTSW { |
| lStructSize: ::DWORD, |
| lpOutString: ::LPWSTR, |
| lpOrder: *const ::UINT, |
| lpDx: *const ::c_int, |
| lpCaretPos: *const ::c_int, |
| lpClass: ::LPSTR, |
| lpGlyphs: ::LPWSTR, |
| nGlyphs: ::UINT, |
| nMaxFit: ::c_int, |
| }} |
| pub type LPGCP_RESULTSW = *mut GCP_RESULTSW; |
| STRUCT!{struct FONTSIGNATURE { |
| fsUsb: [::DWORD; 4], |
| fsCsb: [::DWORD; 2], |
| }} |
| pub type LPFONTSIGNATURE = *mut FONTSIGNATURE; |
| pub type PFONTSIGNATURE = *mut FONTSIGNATURE; |
| STRUCT!{struct POLYTEXTA { |
| x: ::c_int, |
| y: ::c_int, |
| n: ::UINT, |
| lpstr: ::LPCSTR, |
| uiFlags: ::UINT, |
| rcl: ::RECT, |
| pdx: *const ::c_int, |
| }} |
| pub type PPOLYTEXTA = *mut POLYTEXTA; |
| pub type NPPOLYTEXTA = *mut POLYTEXTA; |
| pub type LPPOLYTEXTA = *mut POLYTEXTA; |
| STRUCT!{struct POLYTEXTW { |
| x: ::c_int, |
| y: ::c_int, |
| n: ::UINT, |
| lpstr: ::LPCWSTR, |
| uiFlags: ::UINT, |
| rcl: ::RECT, |
| pdx: *const ::c_int, |
| }} |
| pub type PPOLYTEXTW = *mut POLYTEXTW; |
| pub type NPPOLYTEXTW = *mut POLYTEXTW; |
| pub type LPPOLYTEXTW = *mut POLYTEXTW; |
| STRUCT!{struct CHARSETINFO { |
| ciCharset: ::UINT, |
| ciACP: ::UINT, |
| fs: ::FONTSIGNATURE, |
| }} |
| pub type PCHARSETINFO = *mut CHARSETINFO; |
| pub type NPCHARSETINFO = *mut CHARSETINFO; |
| pub type LPCHARSETINFO = *mut CHARSETINFO; |
| pub const GRADIENT_FILL_RECT_H: ::ULONG = 0x00000000; |
| pub const GRADIENT_FILL_RECT_V: ::ULONG = 0x00000001; |
| pub const GRADIENT_FILL_TRIANGLE: ::ULONG = 0x00000002; |
| pub const GRADIENT_FILL_OP_FLAG: ::ULONG = 0x000000ff; |
| STRUCT!{struct LAYERPLANEDESCRIPTOR { |
| nSize: ::WORD, |
| nVersion: ::WORD, |
| dwFlags: ::DWORD, |
| iPixelType: ::BYTE, |
| cColorBits: ::BYTE, |
| cRedBits: ::BYTE, |
| cRedShift: ::BYTE, |
| cGreenBits: ::BYTE, |
| cGreenShift: ::BYTE, |
| cBlueBits: ::BYTE, |
| cBlueShift: ::BYTE, |
| cAlphaBits: ::BYTE, |
| cAlphaShift: ::BYTE, |
| cAccumBits: ::BYTE, |
| cAccumRedBits: ::BYTE, |
| cAccumGreenBits: ::BYTE, |
| cAccumBlueBits: ::BYTE, |
| cAccumAlphaBits: ::BYTE, |
| cDepthBits: ::BYTE, |
| cStencilBits: ::BYTE, |
| cAuxBuffers: ::BYTE, |
| iLayerPlane: ::BYTE, |
| bReserved: ::BYTE, |
| crTransparent: ::COLORREF, |
| }} |
| pub type PLAYERPLANEDESCRIPTOR = *mut LAYERPLANEDESCRIPTOR; |
| pub type LPLAYERPLANEDESCRIPTOR = *mut LAYERPLANEDESCRIPTOR; |
| STRUCT!{struct ENHMETAHEADER { |
| iType: ::DWORD, |
| nSize: ::DWORD, |
| rclBounds: ::RECTL, |
| rclFrame: ::RECTL, |
| dSignature: ::DWORD, |
| nVersion: ::DWORD, |
| nBytes: ::DWORD, |
| nRecords: ::DWORD, |
| nHandles: ::WORD, |
| sReserved: ::WORD, |
| nDescription: ::DWORD, |
| offDescription: ::DWORD, |
| nPalEntries: ::DWORD, |
| szlDevice: ::SIZEL, |
| szlMillimeters: ::SIZEL, |
| cbPixelFormat: ::DWORD, |
| offPixelFormat: ::DWORD, |
| bOpenGL: ::DWORD, |
| szlMicrometers: ::SIZEL, |
| }} |
| pub type PENHMETAHEADER = *mut ENHMETAHEADER; |
| pub type LPENHMETAHEADER = *mut ENHMETAHEADER; |
| STRUCT!{struct FIXED { |
| fract: ::WORD, |
| value: ::c_short, |
| }} |
| STRUCT!{struct MAT2 { |
| eM11: FIXED, |
| eM12: FIXED, |
| eM21: FIXED, |
| eM22: FIXED, |
| }} |
| pub type LPMAT2 = *mut MAT2; |
| STRUCT!{struct GLYPHMETRICS { |
| gmBlackBoxX: ::UINT, |
| gmBlackBoxY: ::UINT, |
| gmptGlyphOrigin: ::POINT, |
| gmCellIncX: ::c_short, |
| gmCellIncY: ::c_short, |
| }} |
| pub type LPGLYPHMETRICS = *mut GLYPHMETRICS; |
| STRUCT!{struct KERNINGPAIR { |
| wFirst: ::WORD, |
| wSecond: ::WORD, |
| iKernAmount: ::c_int, |
| }} |
| pub type LPKERNINGPAIR = *mut KERNINGPAIR; |
| STRUCT!{struct PANOSE { |
| bFamilyType: ::BYTE, |
| bSerifStyle: ::BYTE, |
| bWeight: ::BYTE, |
| bProportion: ::BYTE, |
| bContrast: ::BYTE, |
| bStrokeVariation: ::BYTE, |
| bArmStyle: ::BYTE, |
| bLetterform: ::BYTE, |
| bMidline: ::BYTE, |
| bXHeight: ::BYTE, |
| }} |
| pub type LPPANOSE = *mut PANOSE; |
| STRUCT!{struct OUTLINETEXTMETRICA { |
| otmSize: ::UINT, |
| otmTextMetrics: TEXTMETRICA, |
| otmFiller: ::BYTE, |
| otmPanoseNumber: ::PANOSE, |
| otmfsSelection: ::UINT, |
| otmfsType: ::UINT, |
| otmsCharSlopeRise: ::c_int, |
| otmsCharSlopeRun: ::c_int, |
| otmItalicAngle: ::c_int, |
| otmEMSquare: ::UINT, |
| otmAscent: ::c_int, |
| otmDescent: ::c_int, |
| otmLineGap: ::UINT, |
| otmsCapEmHeight: ::UINT, |
| otmsXHeight: ::UINT, |
| otmrcFontBox: ::RECT, |
| otmMacAscent: ::c_int, |
| otmMacDescent: ::c_int, |
| otmMacLineGap: ::UINT, |
| otmusMinimumPPEM: ::UINT, |
| otmptSubscriptSize: ::POINT, |
| otmptSubscriptOffset: ::POINT, |
| otmptSuperscriptSize: ::POINT, |
| otmptSuperscriptOffset: ::POINT, |
| otmsStrikeoutSize: ::UINT, |
| otmsStrikeoutPosition: ::c_int, |
| otmsUnderscoreSize: ::c_int, |
| otmsUnderscorePosition: ::c_int, |
| otmpFamilyName: ::PSTR, |
| otmpFaceName: ::PSTR, |
| otmpStyleName: ::PSTR, |
| otmpFullName: ::PSTR, |
| }} |
| pub type POUTLINETEXTMETRICA = *mut OUTLINETEXTMETRICA; |
| pub type NPOUTLINETEXTMETRICA = *mut OUTLINETEXTMETRICA; |
| pub type LPOUTLINETEXTMETRICA = *mut OUTLINETEXTMETRICA; |
| STRUCT!{struct OUTLINETEXTMETRICW { |
| otmSize: ::UINT, |
| otmTextMetrics: TEXTMETRICW, |
| otmFiller: ::BYTE, |
| otmPanoseNumber: ::PANOSE, |
| otmfsSelection: ::UINT, |
| otmfsType: ::UINT, |
| otmsCharSlopeRise: ::c_int, |
| otmsCharSlopeRun: ::c_int, |
| otmItalicAngle: ::c_int, |
| otmEMSquare: ::UINT, |
| otmAscent: ::c_int, |
| otmDescent: ::c_int, |
| otmLineGap: ::UINT, |
| otmsCapEmHeight: ::UINT, |
| otmsXHeight: ::UINT, |
| otmrcFontBox: ::RECT, |
| otmMacAscent: ::c_int, |
| otmMacDescent: ::c_int, |
| otmMacLineGap: ::UINT, |
| otmusMinimumPPEM: ::UINT, |
| otmptSubscriptSize: ::POINT, |
| otmptSubscriptOffset: ::POINT, |
| otmptSuperscriptSize: ::POINT, |
| otmptSuperscriptOffset: ::POINT, |
| otmsStrikeoutSize: ::UINT, |
| otmsStrikeoutPosition: ::c_int, |
| otmsUnderscoreSize: ::c_int, |
| otmsUnderscorePosition: ::c_int, |
| otmpFamilyName: ::PSTR, |
| otmpFaceName: ::PSTR, |
| otmpStyleName: ::PSTR, |
| otmpFullName: ::PSTR, |
| }} |
| pub type POUTLINETEXTMETRICW = *mut OUTLINETEXTMETRICW; |
| pub type NPOUTLINETEXTMETRICW = *mut OUTLINETEXTMETRICW; |
| pub type LPOUTLINETEXTMETRICW = *mut OUTLINETEXTMETRICW; |
| STRUCT!{struct RASTERIZER_STATUS { |
| nSize: ::c_short, |
| wFlags: ::c_short, |
| nLanguageID: ::c_short, |
| }} |
| pub type LPRASTERIZER_STATUS = *mut RASTERIZER_STATUS; |
| STRUCT!{struct ENHMETARECORD { |
| iType: ::DWORD, |
| nSize: ::DWORD, |
| dParm: [::DWORD; 1], |
| }} |
| pub type PENHMETARECORD = *mut ENHMETARECORD; |
| pub type LPENHMETARECORD = *mut ENHMETARECORD; |
| STRUCT!{struct METAFILEPICT { |
| mm: ::LONG, |
| xExt: ::LONG, |
| yExt: ::LONG, |
| hMF: ::HMETAFILE, |
| }} |
| pub type LPMETAFILEPICT = *mut METAFILEPICT; |
| STRUCT!{struct POINTFLOAT { |
| x: ::FLOAT, |
| y: ::FLOAT, |
| }} |
| pub type PPOINTFLOAT = *mut POINTFLOAT; |
| STRUCT!{struct GLYPHMETRICSFLOAT { |
| gmfBlackBoxX: ::FLOAT, |
| gmfBlackBoxY: ::FLOAT, |
| gmfptGlyphOrigin: POINTFLOAT, |
| gmfCellIncX: ::FLOAT, |
| gmfCellIncY: ::FLOAT, |
| }} |
| pub type PGLYPHMETRICSFLOAT = *mut GLYPHMETRICSFLOAT; |
| pub type LPGLYPHMETRICSFLOAT = *mut GLYPHMETRICSFLOAT; |
| pub const DT_PLOTTER: ::c_int = 0; |
| pub const DT_RASDISPLAY: ::c_int = 1; |
| pub const DT_RASPRINTER: ::c_int = 2; |
| pub const DT_RASCAMERA: ::c_int = 3; |
| pub const DT_CHARSTREAM: ::c_int = 4; |
| pub const DT_METAFILE: ::c_int = 5; |
| pub const DT_DISPFILE: ::c_int = 6; |
| pub const CLR_INVALID: ::COLORREF = 0xFFFFFFFF; |
| pub const ETO_OPAQUE: ::UINT = 0x0002; |
| pub const ETO_CLIPPED: ::UINT = 0x0004; |
| pub const ETO_GLYPH_INDEX: ::UINT = 0x0010; |
| pub const ETO_RTLREADING: ::UINT = 0x0080; |
| pub const ETO_NUMERICSLOCAL: ::UINT = 0x0400; |
| pub const ETO_NUMERICSLATIN: ::UINT = 0x0800; |
| pub const ETO_IGNORELANGUAGE: ::UINT = 0x1000; |
| pub const ETO_PDY: ::UINT = 0x2000; |
| pub const ETO_REVERSE_INDEX_MAP: ::UINT = 0x10000; |
| STRUCT!{struct EXTLOGPEN { |
| elpPenStyle: ::DWORD, |
| elpWidth: ::DWORD, |
| elpBrushStyle: ::UINT, |
| elpColor: ::COLORREF, |
| elpHatch: ::ULONG_PTR, |
| elpNumEntries: ::DWORD, |
| elpStyleEntry: [::DWORD; 1], |
| }} |
| pub type PEXTLOGPEN = *mut EXTLOGPEN; |
| pub type NPEXTLOGPEN = *mut EXTLOGPEN; |
| pub type LPEXTLOGPEN = *mut EXTLOGPEN; |
| pub type ENHMFENUMPROC = Option<unsafe extern "system" fn( |
| hdc: ::HDC, lpht: HANDLETABLE, lpmr: *const ENHMETARECORD, nHandles: ::c_int, data: ::LPARAM |
| ) -> ::c_int>; |
| /* Metafile Functions */ |
| pub const META_SETBKCOLOR: ::WORD = 0x0201; |
| pub const META_SETBKMODE: ::WORD = 0x0102; |
| pub const META_SETMAPMODE: ::WORD = 0x0103; |
| pub const META_SETROP2: ::WORD = 0x0104; |
| pub const META_SETRELABS: ::WORD = 0x0105; |
| pub const META_SETPOLYFILLMODE: ::WORD = 0x0106; |
| pub const META_SETSTRETCHBLTMODE: ::WORD = 0x0107; |
| pub const META_SETTEXTCHAREXTRA: ::WORD = 0x0108; |
| pub const META_SETTEXTCOLOR: ::WORD = 0x0209; |
| pub const META_SETTEXTJUSTIFICATION: ::WORD = 0x020A; |
| pub const META_SETWINDOWORG: ::WORD = 0x020B; |
| pub const META_SETWINDOWEXT: ::WORD = 0x020C; |
| pub const META_SETVIEWPORTORG: ::WORD = 0x020D; |
| pub const META_SETVIEWPORTEXT: ::WORD = 0x020E; |
| pub const META_OFFSETWINDOWORG: ::WORD = 0x020F; |
| pub const META_SCALEWINDOWEXT: ::WORD = 0x0410; |
| pub const META_OFFSETVIEWPORTORG: ::WORD = 0x0211; |
| pub const META_SCALEVIEWPORTEXT: ::WORD = 0x0412; |
| pub const META_LINETO: ::WORD = 0x0213; |
| pub const META_MOVETO: ::WORD = 0x0214; |
| pub const META_EXCLUDECLIPRECT: ::WORD = 0x0415; |
| pub const META_INTERSECTCLIPRECT: ::WORD = 0x0416; |
| pub const META_ARC: ::WORD = 0x0817; |
| pub const META_ELLIPSE: ::WORD = 0x0418; |
| pub const META_FLOODFILL: ::WORD = 0x0419; |
| pub const META_PIE: ::WORD = 0x081A; |
| pub const META_RECTANGLE: ::WORD = 0x041B; |
| pub const META_ROUNDRECT: ::WORD = 0x061C; |
| pub const META_PATBLT: ::WORD = 0x061D; |
| pub const META_SAVEDC: ::WORD = 0x001E; |
| pub const META_SETPIXEL: ::WORD = 0x041F; |
| pub const META_OFFSETCLIPRGN: ::WORD = 0x0220; |
| pub const META_TEXTOUT: ::WORD = 0x0521; |
| pub const META_BITBLT: ::WORD = 0x0922; |
| pub const META_STRETCHBLT: ::WORD = 0x0B23; |
| pub const META_POLYGON: ::WORD = 0x0324; |
| pub const META_POLYLINE: ::WORD = 0x0325; |
| pub const META_ESCAPE: ::WORD = 0x0626; |
| pub const META_RESTOREDC: ::WORD = 0x0127; |
| pub const META_FILLREGION: ::WORD = 0x0228; |
| pub const META_FRAMEREGION: ::WORD = 0x0429; |
| pub const META_INVERTREGION: ::WORD = 0x012A; |
| pub const META_PAINTREGION: ::WORD = 0x012B; |
| pub const META_SELECTCLIPREGION: ::WORD = 0x012C; |
| pub const META_SELECTOBJECT: ::WORD = 0x012D; |
| pub const META_SETTEXTALIGN: ::WORD = 0x012E; |
| pub const META_CHORD: ::WORD = 0x0830; |
| pub const META_SETMAPPERFLAGS: ::WORD = 0x0231; |
| pub const META_EXTTEXTOUT: ::WORD = 0x0a32; |
| pub const META_SETDIBTODEV: ::WORD = 0x0d33; |
| pub const META_SELECTPALETTE: ::WORD = 0x0234; |
| pub const META_REALIZEPALETTE: ::WORD = 0x0035; |
| pub const META_ANIMATEPALETTE: ::WORD = 0x0436; |
| pub const META_SETPALENTRIES: ::WORD = 0x0037; |
| pub const META_POLYPOLYGON: ::WORD = 0x0538; |
| pub const META_RESIZEPALETTE: ::WORD = 0x0139; |
| pub const META_DIBBITBLT: ::WORD = 0x0940; |
| pub const META_DIBSTRETCHBLT: ::WORD = 0x0b41; |
| pub const META_DIBCREATEPATTERNBRUSH: ::WORD = 0x0142; |
| pub const META_STRETCHDIB: ::WORD = 0x0f43; |
| pub const META_EXTFLOODFILL: ::WORD = 0x0548; |
| pub const META_SETLAYOUT: ::WORD = 0x0149; |
| pub const META_DELETEOBJECT: ::WORD = 0x01f0; |
| pub const META_CREATEPALETTE: ::WORD = 0x00f7; |
| pub const META_CREATEPATTERNBRUSH: ::WORD = 0x01F9; |
| pub const META_CREATEPENINDIRECT: ::WORD = 0x02FA; |
| pub const META_CREATEFONTINDIRECT: ::WORD = 0x02FB; |
| pub const META_CREATEBRUSHINDIRECT: ::WORD = 0x02FC; |
| pub const META_CREATEREGION: ::WORD = 0x06FF; |