summaryrefslogtreecommitdiffstats
path: root/third_party/rust/winapi-0.2.8/src/wingdi.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--third_party/rust/winapi-0.2.8/src/wingdi.rs1238
1 files changed, 1238 insertions, 0 deletions
diff --git a/third_party/rust/winapi-0.2.8/src/wingdi.rs b/third_party/rust/winapi-0.2.8/src/wingdi.rs
new file mode 100644
index 0000000000..edc5850ed5
--- /dev/null
+++ b/third_party/rust/winapi-0.2.8/src/wingdi.rs
@@ -0,0 +1,1238 @@
+// 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;