From a990de90fe41456a23e58bd087d2f107d321f3a1 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Fri, 19 Jul 2024 16:37:58 +0400 Subject: Deleted vendor folder --- vendor/winapi/src/um/wingdi.rs | 5591 ---------------------------------------- 1 file changed, 5591 deletions(-) delete mode 100644 vendor/winapi/src/um/wingdi.rs (limited to 'vendor/winapi/src/um/wingdi.rs') diff --git a/vendor/winapi/src/um/wingdi.rs b/vendor/winapi/src/um/wingdi.rs deleted file mode 100644 index ccf8697..0000000 --- a/vendor/winapi/src/um/wingdi.rs +++ /dev/null @@ -1,5591 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// or the MIT license -// , at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! GDI procedure declarations, constant definitions and macros -use ctypes::{c_char, c_int, c_long, c_short, c_ushort, c_void}; -use shared::basetsd::{UINT16, UINT32, UINT64, ULONG_PTR}; -use shared::minwindef::{ - BOOL, BYTE, DWORD, FLOAT, HGLOBAL, HMETAFILE, HMODULE, HRGN, INT, LOBYTE, LPARAM, LPBYTE, - LPDWORD, LPINT, LPVOID, LPWORD, MAX_PATH, PFLOAT, PROC, UINT, ULONG, USHORT, WORD, -}; -use shared::windef::{ - COLORREF, HBITMAP, HBRUSH, HCOLORSPACE, HDC, HENHMETAFILE, HFONT, HGDIOBJ, HGLRC, HPALETTE, - HPEN, HWND, LPPOINT, LPRECT, LPSIZE, POINT, POINTL, POINTS, RECT, RECTL, SIZEL, -}; -use um::winnt::{ - CHAR, HANDLE, LONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR, LUID, PSTR, PVOID, SHORT, VOID, WCHAR, -}; -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; -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; -pub const NOMIRRORBITMAP: DWORD = 0x80000000; -pub const CAPTUREBLT: DWORD = 0x40000000; -#[inline] -pub fn MAKEROP4(fore: DWORD, back: DWORD) -> DWORD { - ((back << 8) & 0xFF000000) | fore -} -pub const GDI_ERROR: ULONG = 0xFFFFFFFF; -pub const HGDI_ERROR: HANDLE = -1isize as HANDLE; -pub const ERROR: c_int = 0; -pub const NULLREGION: c_int = 1; -pub const SIMPLEREGION: c_int = 2; -pub const COMPLEXREGION: c_int = 3; -pub const RGN_ERROR: c_int = ERROR; -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; -pub const BLACKONWHITE: c_int = 1; -pub const WHITEONBLACK: c_int = 2; -pub const COLORONCOLOR: c_int = 3; -pub const HALFTONE: c_int = 4; -pub const MAXSTRETCHBLTMODE: c_int = 4; -pub const STRETCH_ANDSCANS: c_int = BLACKONWHITE; -pub const STRETCH_ORSCANS: c_int = WHITEONBLACK; -pub const STRETCH_DELETESCANS: c_int = COLORONCOLOR; -pub const STRETCH_HALFTONE: c_int = HALFTONE; -pub const ALTERNATE: c_int = 1; -pub const WINDING: c_int = 2; -pub const POLYFILL_LAST: c_int = 2; -pub const LAYOUT_RTL: DWORD = 0x00000001; -pub const LAYOUT_BTT: DWORD = 0x00000002; -pub const LAYOUT_VBH: DWORD = 0x00000004; -pub const LAYOUT_ORIENTATIONMASK: DWORD = LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH; -pub const LAYOUT_BITMAPORIENTATIONPRESERVED: DWORD = 0x00000008; -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 VTA_BASELINE: UINT = TA_BASELINE; -pub const VTA_LEFT: UINT = TA_BOTTOM; -pub const VTA_RIGHT: UINT = TA_TOP; -pub const VTA_CENTER: UINT = TA_CENTER; -pub const VTA_BOTTOM: UINT = TA_RIGHT; -pub const VTA_TOP: UINT = TA_LEFT; -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; -pub const ASPECT_FILTERING: UINT = 0x0001; -pub const DCB_RESET: UINT = 0x0001; -pub const DCB_ACCUMULATE: UINT = 0x0002; -pub const DCB_DIRTY: UINT = DCB_ACCUMULATE; -pub const DCB_SET: UINT = DCB_RESET | DCB_ACCUMULATE; -pub const DCB_ENABLE: UINT = 0x0004; -pub const DCB_DISABLE: UINT = 0x0008; -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; -STRUCT!{struct DRAWPATRECT { - ptPosition: POINT, - ptSize: POINT, - wStyle: WORD, - wPattern: WORD, -}} -pub type PDRAWPATRECT = *mut DRAWPATRECT; -pub const NEWFRAME: c_int = 1; -pub const ABORTDOC: c_int = 2; -pub const NEXTBAND: c_int = 3; -pub const SETCOLORTABLE: c_int = 4; -pub const GETCOLORTABLE: c_int = 5; -pub const FLUSHOUTPUT: c_int = 6; -pub const DRAFTMODE: c_int = 7; -pub const QUERYESCSUPPORT: c_int = 8; -pub const SETABORTPROC: c_int = 9; -pub const STARTDOC: c_int = 10; -pub const ENDDOC: c_int = 11; -pub const GETPHYSPAGESIZE: c_int = 12; -pub const GETPRINTINGOFFSET: c_int = 13; -pub const GETSCALINGFACTOR: c_int = 14; -pub const MFCOMMENT: c_int = 15; -pub const GETPENWIDTH: c_int = 16; -pub const SETCOPYCOUNT: c_int = 17; -pub const SELECTPAPERSOURCE: c_int = 18; -pub const DEVICEDATA: c_int = 19; -pub const PASSTHROUGH: c_int = 19; -pub const GETTECHNOLGY: c_int = 20; -pub const GETTECHNOLOGY: c_int = 20; -pub const SETLINECAP: c_int = 21; -pub const SETLINEJOIN: c_int = 22; -pub const SETMITERLIMIT: c_int = 23; -pub const BANDINFO: c_int = 24; -pub const DRAWPATTERNRECT: c_int = 25; -pub const GETVECTORPENSIZE: c_int = 26; -pub const GETVECTORBRUSHSIZE: c_int = 27; -pub const ENABLEDUPLEX: c_int = 28; -pub const GETSETPAPERBINS: c_int = 29; -pub const GETSETPRINTORIENT: c_int = 30; -pub const ENUMPAPERBINS: c_int = 31; -pub const SETDIBSCALING: c_int = 32; -pub const EPSPRINTING: c_int = 33; -pub const ENUMPAPERMETRICS: c_int = 34; -pub const GETSETPAPERMETRICS: c_int = 35; -pub const POSTSCRIPT_DATA: c_int = 37; -pub const POSTSCRIPT_IGNORE: c_int = 38; -pub const MOUSETRAILS: c_int = 39; -pub const GETDEVICEUNITS: c_int = 42; -pub const GETEXTENDEDTEXTMETRICS: c_int = 256; -pub const GETEXTENTTABLE: c_int = 257; -pub const GETPAIRKERNTABLE: c_int = 258; -pub const GETTRACKKERNTABLE: c_int = 259; -pub const EXTTEXTOUT: c_int = 512; -pub const GETFACENAME: c_int = 513; -pub const DOWNLOADFACE: c_int = 514; -pub const ENABLERELATIVEWIDTHS: c_int = 768; -pub const ENABLEPAIRKERNING: c_int = 769; -pub const SETKERNTRACK: c_int = 770; -pub const SETALLJUSTVALUES: c_int = 771; -pub const SETCHARSET: c_int = 772; -pub const STRETCHBLT: c_int = 2048; -pub const METAFILE_DRIVER: c_int = 2049; -pub const GETSETSCREENPARAMS: c_int = 3072; -pub const QUERYDIBSUPPORT: c_int = 3073; -pub const BEGIN_PATH: c_int = 4096; -pub const CLIP_TO_PATH: c_int = 4097; -pub const END_PATH: c_int = 4098; -pub const EXT_DEVICE_CAPS: c_int = 4099; -pub const RESTORE_CTM: c_int = 4100; -pub const SAVE_CTM: c_int = 4101; -pub const SET_ARC_DIRECTION: c_int = 4102; -pub const SET_BACKGROUND_COLOR: c_int = 4103; -pub const SET_POLY_MODE: c_int = 4104; -pub const SET_SCREEN_ANGLE: c_int = 4105; -pub const SET_SPREAD: c_int = 4106; -pub const TRANSFORM_CTM: c_int = 4107; -pub const SET_CLIP_BOX: c_int = 4108; -pub const SET_BOUNDS: c_int = 4109; -pub const SET_MIRROR_MODE: c_int = 4110; -pub const OPENCHANNEL: c_int = 4110; -pub const DOWNLOADHEADER: c_int = 4111; -pub const CLOSECHANNEL: c_int = 4112; -pub const POSTSCRIPT_PASSTHROUGH: c_int = 4115; -pub const ENCAPSULATED_POSTSCRIPT: c_int = 4116; -pub const POSTSCRIPT_IDENTIFY: c_int = 4117; -pub const POSTSCRIPT_INJECTION: c_int = 4118; -pub const CHECKJPEGFORMAT: c_int = 4119; -pub const CHECKPNGFORMAT: c_int = 4120; -pub const GET_PS_FEATURESETTING: c_int = 4121; -pub const GDIPLUS_TS_QUERYVER: c_int = 4122; -pub const GDIPLUS_TS_RECORD: c_int = 4123; -pub const MILCORE_TS_QUERYVER_RESULT_FALSE: c_int = 0x0; -pub const MILCORE_TS_QUERYVER_RESULT_TRUE: c_int = 0x7FFFFFFF; -pub const SPCLPASSTHROUGH2: c_int = 4568; -pub const PSIDENT_GDICENTRIC: c_int = 0; -pub const PSIDENT_PSCENTRIC: c_int = 1; -STRUCT!{struct PSINJECTDATA { - DataBytes: DWORD, - InjectionPoint: WORD, - PageNumber: WORD, -}} -pub type PPSINJECTDATA = *mut PSINJECTDATA; -pub const PSINJECT_BEGINSTREAM: WORD = 1; -pub const PSINJECT_PSADOBE: WORD = 2; -pub const PSINJECT_PAGESATEND: WORD = 3; -pub const PSINJECT_PAGES: WORD = 4; -pub const PSINJECT_DOCNEEDEDRES: WORD = 5; -pub const PSINJECT_DOCSUPPLIEDRES: WORD = 6; -pub const PSINJECT_PAGEORDER: WORD = 7; -pub const PSINJECT_ORIENTATION: WORD = 8; -pub const PSINJECT_BOUNDINGBOX: WORD = 9; -pub const PSINJECT_DOCUMENTPROCESSCOLORS: WORD = 10; -pub const PSINJECT_COMMENTS: WORD = 11; -pub const PSINJECT_BEGINDEFAULTS: WORD = 12; -pub const PSINJECT_ENDDEFAULTS: WORD = 13; -pub const PSINJECT_BEGINPROLOG: WORD = 14; -pub const PSINJECT_ENDPROLOG: WORD = 15; -pub const PSINJECT_BEGINSETUP: WORD = 16; -pub const PSINJECT_ENDSETUP: WORD = 17; -pub const PSINJECT_TRAILER: WORD = 18; -pub const PSINJECT_EOF: WORD = 19; -pub const PSINJECT_ENDSTREAM: WORD = 20; -pub const PSINJECT_DOCUMENTPROCESSCOLORSATEND: WORD = 21; -pub const PSINJECT_PAGENUMBER: WORD = 100; -pub const PSINJECT_BEGINPAGESETUP: WORD = 101; -pub const PSINJECT_ENDPAGESETUP: WORD = 102; -pub const PSINJECT_PAGETRAILER: WORD = 103; -pub const PSINJECT_PLATECOLOR: WORD = 104; -pub const PSINJECT_SHOWPAGE: WORD = 105; -pub const PSINJECT_PAGEBBOX: WORD = 106; -pub const PSINJECT_ENDPAGECOMMENTS: WORD = 107; -pub const PSINJECT_VMSAVE: WORD = 200; -pub const PSINJECT_VMRESTORE: WORD = 201; -pub const PSINJECT_DLFONT: DWORD = 0xdddddddd; -pub const FEATURESETTING_NUP: WORD = 0; -pub const FEATURESETTING_OUTPUT: WORD = 1; -pub const FEATURESETTING_PSLEVEL: WORD = 2; -pub const FEATURESETTING_CUSTPAPER: WORD = 3; -pub const FEATURESETTING_MIRROR: WORD = 4; -pub const FEATURESETTING_NEGATIVE: WORD = 5; -pub const FEATURESETTING_PROTOCOL: WORD = 6; -pub const FEATURESETTING_PRIVATE_BEGIN: WORD = 0x1000; -pub const FEATURESETTING_PRIVATE_END: WORD = 0x1FFF; -STRUCT!{struct PSFEATURE_OUTPUT { - bPageIndependent: BOOL, - bSetPageDevice: BOOL, -}} -pub type PPSFEATURE_OUTPUT = *mut PSFEATURE_OUTPUT; -STRUCT!{struct PSFEATURE_CUSTPAPER { - lOrientation: LONG, - lWidth: LONG, - lHeight: LONG, - lWidthOffset: LONG, - lHeightOffset: LONG, -}} -pub type PPSFEATURE_CUSTPAPER = *mut PSFEATURE_CUSTPAPER; -pub const PSPROTOCOL_ASCII: c_int = 0; -pub const PSPROTOCOL_BCP: c_int = 1; -pub const PSPROTOCOL_TBCP: c_int = 2; -pub const PSPROTOCOL_BINARY: c_int = 3; -pub const QDI_SETDIBITS: c_int = 1; -pub const QDI_GETDIBITS: c_int = 2; -pub const QDI_DIBTOSCREEN: c_int = 4; -pub const QDI_STRETCHDIB: c_int = 8; -pub const SP_NOTREPORTED: c_int = 0x4000; -pub const SP_ERROR: c_int = -1; -pub const SP_APPABORT: c_int = -2; -pub const SP_USERABORT: c_int = -3; -pub const SP_OUTOFDISK: c_int = -4; -pub const SP_OUTOFMEMORY: c_int = -5; -pub const PR_JOBSTATUS: c_int = 0x0000; -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; -pub const MWT_IDENTITY: c_int = 1; -pub const MWT_LEFTMULTIPLY: c_int = 2; -pub const MWT_RIGHTMULTIPLY: c_int = 3; -pub const MWT_MIN: c_int = MWT_IDENTITY; -pub const MWT_MAX: c_int = MWT_RIGHTMULTIPLY; -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 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!{#[debug] struct RGBTRIPLE { - rgbtBlue: BYTE, - rgbtGreen: BYTE, - rgbtRed: BYTE, -}} -pub type PRGBTRIPLE = *mut RGBTRIPLE; -pub type NPRGBTRIPLE = *mut RGBTRIPLE; -pub type LPRGBTRIPLE = *mut RGBTRIPLE; -STRUCT!{#[debug] 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; -#[inline] -pub fn GetKValue(cmyk: COLORREF) -> BYTE { - cmyk as BYTE -} -#[inline] -pub fn GetYValue(cmyk: COLORREF) -> BYTE { - (cmyk >> 8) as BYTE -} -#[inline] -pub fn GetMValue(cmyk: COLORREF) -> BYTE { - (cmyk >> 16) as BYTE -} -#[inline] -pub fn GetCValue(cmyk: COLORREF) -> BYTE { - (cmyk >> 24) as BYTE -} -#[inline] -pub fn CMYK(c: BYTE, m: BYTE, y: BYTE, k: BYTE) -> COLORREF { - (k as COLORREF) | ((y as COLORREF) << 8) | ((m as COLORREF) << 16) | ((c as COLORREF) << 24) -} -pub type FXPT16DOT16 = c_long; -pub type LPFXPT16DOT16 = *mut c_long; -pub type FXPT2DOT30 = c_long; -pub type LPFXPT2DOT30 = *mut c_long; -STRUCT!{#[debug] struct CIEXYZ { - ciexyzX: FXPT2DOT30, - ciexyzY: FXPT2DOT30, - ciexyzZ: FXPT2DOT30, -}} -pub type LPCIEXYZ = *mut CIEXYZ; -STRUCT!{#[debug] struct CIEXYZTRIPLE { - ciexyzRed: CIEXYZ, - ciexyzGreen: CIEXYZ, - ciexyzBlue: CIEXYZ, -}} -pub type LPCIEXYZTRIPLE = *mut CIEXYZTRIPLE; -STRUCT!{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!{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; -STRUCT!{#[debug] struct BITMAPCOREHEADER { - bcSize: DWORD, - bcWidth: WORD, - bcHeight: WORD, - bcPlanes: WORD, - bcBitCount: WORD, -}} -pub type LPBITMAPCOREHEADER = *mut BITMAPCOREHEADER; -pub type PBITMAPCOREHEADER = *mut BITMAPCOREHEADER; -STRUCT!{#[debug] 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!{#[debug] struct BITMAPV4HEADER { - bV4Size: DWORD, - bV4Width: LONG, - bV4Height: LONG, - bV4Planes: WORD, - bV4BitCount: WORD, - bV4V4Compression: DWORD, - bV4SizeImage: DWORD, - bV4XPelsPerMeter: LONG, - bV4YPelsPerMeter: LONG, - bV4ClrUsed: DWORD, - bV4ClrImportant: DWORD, - bV4RedMask: DWORD, - bV4GreenMask: DWORD, - bV4BlueMask: DWORD, - bV4AlphaMask: DWORD, - bV4CSType: DWORD, - bV4Endpoints: CIEXYZTRIPLE, - bV4GammaRed: DWORD, - bV4GammaGreen: DWORD, - bV4GammaBlue: DWORD, -}} -pub type LPBITMAPV4HEADER = *mut BITMAPV4HEADER; -pub type PBITMAPV4HEADER = *mut BITMAPV4HEADER; -STRUCT!{#[debug] 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: DWORD, - bV5Endpoints: CIEXYZTRIPLE, - bV5GammaRed: DWORD, - bV5GammaGreen: DWORD, - bV5GammaBlue: DWORD, - bV5Intent: DWORD, - 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!{#[debug] struct BITMAPINFO { - bmiHeader: BITMAPINFOHEADER, - bmiColors: [RGBQUAD; 1], -}} -pub type LPBITMAPINFO = *mut BITMAPINFO; -pub type PBITMAPINFO = *mut BITMAPINFO; -STRUCT!{#[debug] struct BITMAPCOREINFO { - bmciHeader: BITMAPCOREHEADER, - bmciColors: [RGBTRIPLE; 1], -}} -pub type LPBITMAPCOREINFO = *mut BITMAPCOREINFO; -pub type PBITMAPCOREINFO = *mut BITMAPCOREINFO; -STRUCT!{#[debug] #[repr(packed)] struct BITMAPFILEHEADER { - bfType: WORD, - bfSize: DWORD, - bfReserved1: WORD, - bfReserved2: WORD, - bfOffBits: DWORD, -}} -pub type LPBITMAPFILEHEADER = *mut BITMAPFILEHEADER; -pub type PBITMAPFILEHEADER = *mut BITMAPFILEHEADER; -#[inline] -pub fn MAKEPOINTS(l: DWORD) -> POINTS { - unsafe { ::core::mem::transmute::(l) } -} -STRUCT!{#[debug] struct FONTSIGNATURE { - fsUsb: [DWORD; 4], - fsCsb: [DWORD; 2], -}} -pub type LPFONTSIGNATURE = *mut FONTSIGNATURE; -pub type PFONTSIGNATURE = *mut FONTSIGNATURE; -STRUCT!{#[debug] 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 TCI_SRCCHARSET: c_int = 1; -pub const TCI_SRCCODEPAGE: c_int = 2; -pub const TCI_SRCFONTSIG: c_int = 3; -pub const TCI_SRCLOCALE: c_int = 0x1000; -STRUCT!{#[debug] struct LOCALESIGNATURE { - lsUsb: [DWORD; 4], - lsCsbDefault: [DWORD; 2], - lsCsbSupported: [DWORD; 2], -}} -pub type PLOCALESIGNATURE = *mut LOCALESIGNATURE; -pub type LPLOCALESIGNATURE = *mut LOCALESIGNATURE; -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; -STRUCT!{struct METAFILEPICT { - mm: LONG, - xExt: LONG, - yExt: LONG, - hMF: HMETAFILE, -}} -pub type LPMETAFILEPICT = *mut METAFILEPICT; -STRUCT!{struct METAHEADER { - mtType: WORD, - mtHeaderSize: WORD, - mtVersion: WORD, - mtSize: DWORD, - mtNoObjects: WORD, - mtMaxRecord: DWORD, - mtNoParameters: WORD, -}} -pub type PMETAHEADER = *mut METAHEADER; -pub type LPMETAHEADER = *mut METAHEADER; -STRUCT!{struct ENHMETARECORD { - iType: DWORD, - nSize: DWORD, - dParm: [DWORD; 1], -}} -pub type PENHMETARECORD = *mut ENHMETARECORD; -pub type LPENHMETARECORD = *mut ENHMETARECORD; -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; -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; -// BCHAR -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 NTM_REGULAR: DWORD = 0x00000040; -pub const NTM_BOLD: DWORD = 0x00000020; -pub const NTM_ITALIC: DWORD = 0x00000001; -pub const NTM_NONNEGATIVE_AC: DWORD = 0x00010000; -pub const NTM_PS_OPENTYPE: DWORD = 0x00020000; -pub const NTM_TT_OPENTYPE: DWORD = 0x00040000; -pub const NTM_MULTIPLEMASTER: DWORD = 0x00080000; -pub const NTM_TYPE1: DWORD = 0x00100000; -pub const NTM_DSIG: DWORD = 0x00200000; -STRUCT!{struct NEWTEXTMETRICA { - 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, - ntmFlags: DWORD, - ntmSizeEM: UINT, - ntmCellHeight: UINT, - ntmAvgWidth: UINT, -}} -pub type PNEWTEXTMETRICA = *mut NEWTEXTMETRICA; -pub type NPNEWTEXTMETRICA = *mut NEWTEXTMETRICA; -pub type LPNEWTEXTMETRICA = *mut NEWTEXTMETRICA; -STRUCT!{struct NEWTEXTMETRICW { - 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, - ntmFlags: DWORD, - ntmSizeEM: UINT, - ntmCellHeight: UINT, - ntmAvgWidth: UINT, -}} -pub type PNEWTEXTMETRICW = *mut NEWTEXTMETRICW; -pub type NPNEWTEXTMETRICW = *mut NEWTEXTMETRICW; -pub type LPNEWTEXTMETRICW = *mut NEWTEXTMETRICW; -STRUCT!{struct NEWTEXTMETRICEXA { - ntmTm: NEWTEXTMETRICA, - ntmFontSig: FONTSIGNATURE, -}} -STRUCT!{struct NEWTEXTMETRICEXW { - ntmTm: NEWTEXTMETRICW, - ntmFontSig: FONTSIGNATURE, -}} -STRUCT!{struct PELARRAY { - paXCount: LONG, - paYCount: LONG, - paXExt: LONG, - paYExt: LONG, - paRGBs: BYTE, -}} -pub type PPELARRAY = *mut PELARRAY; -pub type NPPELARRAY = *mut PELARRAY; -pub type LPPELARRAY = *mut PELARRAY; -STRUCT!{struct LOGBRUSH { - lbStyle: UINT, - lbColor: COLORREF, - lbHatch: ULONG_PTR, -}} -pub type PLOGBRUSH = *mut LOGBRUSH; -pub type NPLOGBRUSH = *mut LOGBRUSH; -pub type LPLOGBRUSH = *mut LOGBRUSH; -STRUCT!{struct LOGBRUSH32 { - lbStyle: UINT, - lbColor: COLORREF, - lbHatch: ULONG, -}} -pub type PLOGBRUSH32 = *mut LOGBRUSH32; -pub type NPLOGBRUSH32 = *mut LOGBRUSH32; -pub type LPLOGBRUSH32 = *mut LOGBRUSH32; -pub type PATTERN = LOGBRUSH; -pub type PPATTERN = *mut PATTERN; -pub type NPPATTERN = *mut PATTERN; -pub type LPPATTERN = *mut PATTERN; -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 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; -STRUCT!{struct EXTLOGPEN32 { - elpPenStyle: DWORD, - elpWidth: DWORD, - elpBrushStyle: UINT, - elpColor: COLORREF, - elpHatch: ULONG, - elpNumEntries: DWORD, - elpStyleEntry: [DWORD; 1], -}} -pub type PEXTLOGPEN32 = *mut EXTLOGPEN32; -pub type NPEXTLOGPEN32 = *mut EXTLOGPEN32; -pub type LPEXTLOGPEN32 = *mut EXTLOGPEN32; -STRUCT!{struct PALETTEENTRY { - peRed: BYTE, - peGreen: BYTE, - peBlue: BYTE, - peFlags: BYTE, -}} -pub type PPALETTEENTRY = *mut PALETTEENTRY; -pub type LPPALETTEENTRY = *mut PALETTEENTRY; -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; -pub const LF_FACESIZE: usize = 32; -STRUCT!{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 PLOGFONTA = *mut LOGFONTA; -pub type NPLOGFONTA = *mut LOGFONTA; -pub type LPLOGFONTA = *mut LOGFONTA; -STRUCT!{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 PLOGFONTW = *mut LOGFONTW; -pub type NPLOGFONTW = *mut LOGFONTW; -pub type LPLOGFONTW = *mut LOGFONTW; -pub const LF_FULLFACESIZE: usize = 64; -STRUCT!{struct ENUMLOGFONTA { - elfLogFont: LOGFONTA, - elfFullName: [BYTE; LF_FULLFACESIZE], - elfStyle: [BYTE; LF_FACESIZE], -}} -pub type LPENUMLOGFONTA = *mut ENUMLOGFONTA; -STRUCT!{struct ENUMLOGFONTW { - elfLogFont: LOGFONTW, - elfFullName: [WCHAR; LF_FULLFACESIZE], - elfStyle: [WCHAR; LF_FACESIZE], -}} -pub type LPENUMLOGFONTW = *mut ENUMLOGFONTW; -STRUCT!{struct ENUMLOGFONTEXA { - elfLogFont: LOGFONTA, - elfFullName: [BYTE; LF_FULLFACESIZE], - elfStyle: [BYTE; LF_FACESIZE], - elfScript: [BYTE; LF_FACESIZE], -}} -pub type LPENUMLOGFONTEXA = *mut ENUMLOGFONTEXA; -STRUCT!{struct ENUMLOGFONTEXW { - elfLogFont: LOGFONTW, - elfFullName: [WCHAR; LF_FULLFACESIZE], - elfStyle: [WCHAR; LF_FACESIZE], - elfScript: [WCHAR; LF_FACESIZE], -}} -pub type LPENUMLOGFONTEXW = *mut ENUMLOGFONTEXW; -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 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 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 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 const PANOSE_COUNT: DWORD = 10; -pub const PAN_FAMILYTYPE_INDEX: DWORD = 0; -pub const PAN_SERIFSTYLE_INDEX: DWORD = 1; -pub const PAN_WEIGHT_INDEX: DWORD = 2; -pub const PAN_PROPORTION_INDEX: DWORD = 3; -pub const PAN_CONTRAST_INDEX: DWORD = 4; -pub const PAN_STROKEVARIATION_INDEX: DWORD = 5; -pub const PAN_ARMSTYLE_INDEX: DWORD = 6; -pub const PAN_LETTERFORM_INDEX: DWORD = 7; -pub const PAN_MIDLINE_INDEX: DWORD = 8; -pub const PAN_XHEIGHT_INDEX: DWORD = 9; -pub const PAN_CULTURE_LATIN: DWORD = 0; -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; -pub const PAN_ANY: BYTE = 0; -pub const PAN_NO_FIT: BYTE = 1; -pub const PAN_FAMILY_TEXT_DISPLAY: BYTE = 2; -pub const PAN_FAMILY_SCRIPT: BYTE = 3; -pub const PAN_FAMILY_DECORATIVE: BYTE = 4; -pub const PAN_FAMILY_PICTORIAL: BYTE = 5; -pub const PAN_SERIF_COVE: BYTE = 2; -pub const PAN_SERIF_OBTUSE_COVE: BYTE = 3; -pub const PAN_SERIF_SQUARE_COVE: BYTE = 4; -pub const PAN_SERIF_OBTUSE_SQUARE_COVE: BYTE = 5; -pub const PAN_SERIF_SQUARE: BYTE = 6; -pub const PAN_SERIF_THIN: BYTE = 7; -pub const PAN_SERIF_BONE: BYTE = 8; -pub const PAN_SERIF_EXAGGERATED: BYTE = 9; -pub const PAN_SERIF_TRIANGLE: BYTE = 10; -pub const PAN_SERIF_NORMAL_SANS: BYTE = 11; -pub const PAN_SERIF_OBTUSE_SANS: BYTE = 12; -pub const PAN_SERIF_PERP_SANS: BYTE = 13; -pub const PAN_SERIF_FLARED: BYTE = 14; -pub const PAN_SERIF_ROUNDED: BYTE = 15; -pub const PAN_WEIGHT_VERY_LIGHT: BYTE = 2; -pub const PAN_WEIGHT_LIGHT: BYTE = 3; -pub const PAN_WEIGHT_THIN: BYTE = 4; -pub const PAN_WEIGHT_BOOK: BYTE = 5; -pub const PAN_WEIGHT_MEDIUM: BYTE = 6; -pub const PAN_WEIGHT_DEMI: BYTE = 7; -pub const PAN_WEIGHT_BOLD: BYTE = 8; -pub const PAN_WEIGHT_HEAVY: BYTE = 9; -pub const PAN_WEIGHT_BLACK: BYTE = 10; -pub const PAN_WEIGHT_NORD: BYTE = 11; -pub const PAN_PROP_OLD_STYLE: BYTE = 2; -pub const PAN_PROP_MODERN: BYTE = 3; -pub const PAN_PROP_EVEN_WIDTH: BYTE = 4; -pub const PAN_PROP_EXPANDED: BYTE = 5; -pub const PAN_PROP_CONDENSED: BYTE = 6; -pub const PAN_PROP_VERY_EXPANDED: BYTE = 7; -pub const PAN_PROP_VERY_CONDENSED: BYTE = 8; -pub const PAN_PROP_MONOSPACED: BYTE = 9; -pub const PAN_CONTRAST_NONE: BYTE = 2; -pub const PAN_CONTRAST_VERY_LOW: BYTE = 3; -pub const PAN_CONTRAST_LOW: BYTE = 4; -pub const PAN_CONTRAST_MEDIUM_LOW: BYTE = 5; -pub const PAN_CONTRAST_MEDIUM: BYTE = 6; -pub const PAN_CONTRAST_MEDIUM_HIGH: BYTE = 7; -pub const PAN_CONTRAST_HIGH: BYTE = 8; -pub const PAN_CONTRAST_VERY_HIGH: BYTE = 9; -pub const PAN_STROKE_GRADUAL_DIAG: BYTE = 2; -pub const PAN_STROKE_GRADUAL_TRAN: BYTE = 3; -pub const PAN_STROKE_GRADUAL_VERT: BYTE = 4; -pub const PAN_STROKE_GRADUAL_HORZ: BYTE = 5; -pub const PAN_STROKE_RAPID_VERT: BYTE = 6; -pub const PAN_STROKE_RAPID_HORZ: BYTE = 7; -pub const PAN_STROKE_INSTANT_VERT: BYTE = 8; -pub const PAN_STRAIGHT_ARMS_HORZ: BYTE = 2; -pub const PAN_STRAIGHT_ARMS_WEDGE: BYTE = 3; -pub const PAN_STRAIGHT_ARMS_VERT: BYTE = 4; -pub const PAN_STRAIGHT_ARMS_SINGLE_SERIF: BYTE = 5; -pub const PAN_STRAIGHT_ARMS_DOUBLE_SERIF: BYTE = 6; -pub const PAN_BENT_ARMS_HORZ: BYTE = 7; -pub const PAN_BENT_ARMS_WEDGE: BYTE = 8; -pub const PAN_BENT_ARMS_VERT: BYTE = 9; -pub const PAN_BENT_ARMS_SINGLE_SERIF: BYTE = 10; -pub const PAN_BENT_ARMS_DOUBLE_SERIF: BYTE = 11; -pub const PAN_LETT_NORMAL_CONTACT: BYTE = 2; -pub const PAN_LETT_NORMAL_WEIGHTED: BYTE = 3; -pub const PAN_LETT_NORMAL_BOXED: BYTE = 4; -pub const PAN_LETT_NORMAL_FLATTENED: BYTE = 5; -pub const PAN_LETT_NORMAL_ROUNDED: BYTE = 6; -pub const PAN_LETT_NORMAL_OFF_CENTER: BYTE = 7; -pub const PAN_LETT_NORMAL_SQUARE: BYTE = 8; -pub const PAN_LETT_OBLIQUE_CONTACT: BYTE = 9; -pub const PAN_LETT_OBLIQUE_WEIGHTED: BYTE = 10; -pub const PAN_LETT_OBLIQUE_BOXED: BYTE = 11; -pub const PAN_LETT_OBLIQUE_FLATTENED: BYTE = 12; -pub const PAN_LETT_OBLIQUE_ROUNDED: BYTE = 13; -pub const PAN_LETT_OBLIQUE_OFF_CENTER: BYTE = 14; -pub const PAN_LETT_OBLIQUE_SQUARE: BYTE = 15; -pub const PAN_MIDLINE_STANDARD_TRIMMED: BYTE = 2; -pub const PAN_MIDLINE_STANDARD_POINTED: BYTE = 3; -pub const PAN_MIDLINE_STANDARD_SERIFED: BYTE = 4; -pub const PAN_MIDLINE_HIGH_TRIMMED: BYTE = 5; -pub const PAN_MIDLINE_HIGH_POINTED: BYTE = 6; -pub const PAN_MIDLINE_HIGH_SERIFED: BYTE = 7; -pub const PAN_MIDLINE_CONSTANT_TRIMMED: BYTE = 8; -pub const PAN_MIDLINE_CONSTANT_POINTED: BYTE = 9; -pub const PAN_MIDLINE_CONSTANT_SERIFED: BYTE = 10; -pub const PAN_MIDLINE_LOW_TRIMMED: BYTE = 11; -pub const PAN_MIDLINE_LOW_POINTED: BYTE = 12; -pub const PAN_MIDLINE_LOW_SERIFED: BYTE = 13; -pub const PAN_XHEIGHT_CONSTANT_SMALL: BYTE = 2; -pub const PAN_XHEIGHT_CONSTANT_STD: BYTE = 3; -pub const PAN_XHEIGHT_CONSTANT_LARGE: BYTE = 4; -pub const PAN_XHEIGHT_DUCKING_SMALL: BYTE = 5; -pub const PAN_XHEIGHT_DUCKING_STD: BYTE = 6; -pub const PAN_XHEIGHT_DUCKING_LARGE: BYTE = 7; -pub const ELF_VENDOR_SIZE: usize = 4; -STRUCT!{struct EXTLOGFONTA { - elfLogFont: LOGFONTA, - elfFullName: [BYTE; LF_FULLFACESIZE], - elfStyle: [BYTE; LF_FACESIZE], - elfVersion: DWORD, - elfStyleSize: DWORD, - elfMatch: DWORD, - elfReserved: DWORD, - elfVendorId: [BYTE; ELF_VENDOR_SIZE], - elfCulture: DWORD, - elfPanose: PANOSE, -}} -pub type PEXTLOGFONTA = *mut EXTLOGFONTA; -pub type NPEXTLOGFONTA = *mut EXTLOGFONTA; -pub type LPEXTLOGFONTA = *mut EXTLOGFONTA; -STRUCT!{struct EXTLOGFONTW { - elfLogFont: LOGFONTW, - elfFullNam: [WCHAR; LF_FULLFACESIZE], - elfStyle: [WCHAR; LF_FACESIZE], - elfVersion: DWORD, - elfStyleSize: DWORD, - elfMatch: DWORD, - elfReserved: DWORD, - elfVendorId: [BYTE; ELF_VENDOR_SIZE], - elfCulture: DWORD, - elfPanose: PANOSE, -}} -pub type PEXTLOGFONTW = *mut EXTLOGFONTW; -pub type NPEXTLOGFONTW = *mut EXTLOGFONTW; -pub type LPEXTLOGFONTW = *mut EXTLOGFONTW; -pub const ELF_VERSION: DWORD = 0; -pub const ELF_CULTURE_LATIN: DWORD = 0; -pub const RASTER_FONTTYPE: DWORD = 0x0001; -pub const DEVICE_FONTTYPE: DWORD = 0x0002; -pub const TRUETYPE_FONTTYPE: DWORD = 0x0004; -#[inline] -pub fn RGB(r: BYTE, g: BYTE, b: BYTE) -> COLORREF { - r as COLORREF | ((g as COLORREF) << 8) | ((b as COLORREF) << 16) -} -#[inline] -pub fn PALETTERGB(r: BYTE, g: BYTE, b: BYTE) -> COLORREF { - 0x02000000 | RGB(r, g, b) -} -#[inline] -pub fn PALETTEINDEX(i: WORD) -> COLORREF { - 0x01000000 | i as DWORD -} -pub const PC_RESERVED: DWORD = 0x01; -pub const PC_EXPLICIT: DWORD = 0x02; -pub const PC_NOCOLLAPSE: DWORD = 0x04; -#[inline] -pub fn GetRValue(rgb: COLORREF) -> BYTE { - LOBYTE(rgb as WORD) -} -#[inline] -pub fn GetGValue(rgb: COLORREF) -> BYTE { - LOBYTE((rgb as WORD) >> 8) -} -#[inline] -pub fn GetBValue(rgb: COLORREF) -> BYTE { - LOBYTE((rgb >> 16) as WORD) -} -pub const TRANSPARENT: DWORD = 1; -pub const OPAQUE: DWORD = 2; -pub const BKMODE_LAST: DWORD = 2; -pub const GM_COMPATIBLE: DWORD = 1; -pub const GM_ADVANCED: DWORD = 2; -pub const GM_LAST: DWORD = 2; -pub const PT_CLOSEFIGURE: DWORD = 0x01; -pub const PT_LINETO: DWORD = 0x02; -pub const PT_BEZIERTO: DWORD = 0x04; -pub const PT_MOVETO: DWORD = 0x06; -pub const MM_TEXT: DWORD = 1; -pub const MM_LOMETRIC: DWORD = 2; -pub const MM_HIMETRIC: DWORD = 3; -pub const MM_LOENGLISH: DWORD = 4; -pub const MM_HIENGLISH: DWORD = 5; -pub const MM_TWIPS: DWORD = 6; -pub const MM_ISOTROPIC: DWORD = 7; -pub const MM_ANISOTROPIC: DWORD = 8; -pub const MM_MIN: DWORD = MM_TEXT; -pub const MM_MAX: DWORD = MM_ANISOTROPIC; -pub const MM_MAX_FIXEDSCALE: DWORD = MM_TWIPS; -pub const ABSOLUTE: DWORD = 1; -pub const RELATIVE: DWORD = 2; -pub const WHITE_BRUSH: DWORD = 0; -pub const LTGRAY_BRUSH: DWORD = 1; -pub const GRAY_BRUSH: DWORD = 2; -pub const DKGRAY_BRUSH: DWORD = 3; -pub const BLACK_BRUSH: DWORD = 4; -pub const NULL_BRUSH: DWORD = 5; -pub const HOLLOW_BRUSH: DWORD = NULL_BRUSH; -pub const WHITE_PEN: DWORD = 6; -pub const BLACK_PEN: DWORD = 7; -pub const NULL_PEN: DWORD = 8; -pub const OEM_FIXED_FONT: DWORD = 10; -pub const ANSI_FIXED_FONT: DWORD = 11; -pub const ANSI_VAR_FONT: DWORD = 12; -pub const SYSTEM_FONT: DWORD = 13; -pub const DEVICE_DEFAULT_FONT: DWORD = 14; -pub const DEFAULT_PALETTE: DWORD = 15; -pub const SYSTEM_FIXED_FONT: DWORD = 16; -pub const DEFAULT_GUI_FONT: DWORD = 17; -pub const DC_BRUSH: DWORD = 18; -pub const DC_PEN: DWORD = 19; -pub const STOCK_LAST: DWORD = 19; -pub const CLR_INVALID: COLORREF = 0xFFFFFFFF; -pub const BS_SOLID: DWORD = 0; -pub const BS_NULL: DWORD = 1; -pub const BS_HOLLOW: DWORD = BS_NULL; -pub const BS_HATCHED: DWORD = 2; -pub const BS_PATTERN: DWORD = 3; -pub const BS_INDEXED: DWORD = 4; -pub const BS_DIBPATTERN: DWORD = 5; -pub const BS_DIBPATTERNPT: DWORD = 6; -pub const BS_PATTERN8X8: DWORD = 7; -pub const BS_DIBPATTERN8X8: DWORD = 8; -pub const BS_MONOPATTERN: DWORD = 9; -pub const HS_HORIZONTAL: DWORD = 0; -pub const HS_VERTICAL: DWORD = 1; -pub const HS_FDIAGONAL: DWORD = 2; -pub const HS_BDIAGONAL: DWORD = 3; -pub const HS_CROSS: DWORD = 4; -pub const HS_DIAGCROSS: DWORD = 5; -pub const HS_API_MAX: DWORD = 12; -pub const PS_SOLID: DWORD = 0; -pub const PS_DASH: DWORD = 1; -pub const PS_DOT: DWORD = 2; -pub const PS_DASHDOT: DWORD = 3; -pub const PS_DASHDOTDOT: DWORD = 4; -pub const PS_NULL: DWORD = 5; -pub const PS_INSIDEFRAME: DWORD = 6; -pub const PS_USERSTYLE: DWORD = 7; -pub const PS_ALTERNATE: DWORD = 8; -pub const PS_STYLE_MASK: DWORD = 0x0000000F; -pub const PS_ENDCAP_ROUND: DWORD = 0x00000000; -pub const PS_ENDCAP_SQUARE: DWORD = 0x00000100; -pub const PS_ENDCAP_FLAT: DWORD = 0x00000200; -pub const PS_ENDCAP_MASK: DWORD = 0x00000F00; -pub const PS_JOIN_ROUND: DWORD = 0x00000000; -pub const PS_JOIN_BEVEL: DWORD = 0x00001000; -pub const PS_JOIN_MITER: DWORD = 0x00002000; -pub const PS_JOIN_MASK: DWORD = 0x0000F000; -pub const PS_COSMETIC: DWORD = 0x00000000; -pub const PS_GEOMETRIC: DWORD = 0x00010000; -pub const PS_TYPE_MASK: DWORD = 0x000F0000; -pub const AD_COUNTERCLOCKWISE: DWORD = 1; -pub const AD_CLOCKWISE: DWORD = 2; -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; -pub const DT_PLOTTER: DWORD = 0; -pub const DT_RASDISPLAY: DWORD = 1; -pub const DT_RASPRINTER: DWORD = 2; -pub const DT_RASCAMERA: DWORD = 3; -pub const DT_CHARSTREAM: DWORD = 4; -pub const DT_METAFILE: DWORD = 5; -pub const DT_DISPFILE: DWORD = 6; -pub const CC_NONE: DWORD = 0; -pub const CC_CIRCLES: DWORD = 1; -pub const CC_PIE: DWORD = 2; -pub const CC_CHORD: DWORD = 4; -pub const CC_ELLIPSES: DWORD = 8; -pub const CC_WIDE: DWORD = 16; -pub const CC_STYLED: DWORD = 32; -pub const CC_WIDESTYLED: DWORD = 64; -pub const CC_INTERIORS: DWORD = 128; -pub const CC_ROUNDRECT: DWORD = 256; -pub const LC_NONE: DWORD = 0; -pub const LC_POLYLINE: DWORD = 2; -pub const LC_MARKER: DWORD = 4; -pub const LC_POLYMARKER: DWORD = 8; -pub const LC_WIDE: DWORD = 16; -pub const LC_STYLED: DWORD = 32; -pub const LC_WIDESTYLED: DWORD = 64; -pub const LC_INTERIORS: DWORD = 128; -pub const PC_NONE: DWORD = 0; -pub const PC_POLYGON: DWORD = 1; -pub const PC_RECTANGLE: DWORD = 2; -pub const PC_WINDPOLYGON: DWORD = 4; -pub const PC_TRAPEZOID: DWORD = 4; -pub const PC_SCANLINE: DWORD = 8; -pub const PC_WIDE: DWORD = 16; -pub const PC_STYLED: DWORD = 32; -pub const PC_WIDESTYLED: DWORD = 64; -pub const PC_INTERIORS: DWORD = 128; -pub const PC_POLYPOLYGON: DWORD = 256; -pub const PC_PATHS: DWORD = 512; -pub const CP_NONE: DWORD = 0; -pub const CP_RECTANGLE: DWORD = 1; -pub const CP_REGION: DWORD = 2; -pub const TC_OP_CHARACTER: DWORD = 0x00000001; -pub const TC_OP_STROKE: DWORD = 0x00000002; -pub const TC_CP_STROKE: DWORD = 0x00000004; -pub const TC_CR_90: DWORD = 0x00000008; -pub const TC_CR_ANY: DWORD = 0x00000010; -pub const TC_SF_X_YINDEP: DWORD = 0x00000020; -pub const TC_SA_DOUBLE: DWORD = 0x00000040; -pub const TC_SA_INTEGER: DWORD = 0x00000080; -pub const TC_SA_CONTIN: DWORD = 0x00000100; -pub const TC_EA_DOUBLE: DWORD = 0x00000200; -pub const TC_IA_ABLE: DWORD = 0x00000400; -pub const TC_UA_ABLE: DWORD = 0x00000800; -pub const TC_SO_ABLE: DWORD = 0x00001000; -pub const TC_RA_ABLE: DWORD = 0x00002000; -pub const TC_VA_ABLE: DWORD = 0x00004000; -pub const TC_RESERVED: DWORD = 0x00008000; -pub const TC_SCROLLBLT: DWORD = 0x00010000; -pub const RC_BITBLT: DWORD = 1; -pub const RC_BANDING: DWORD = 2; -pub const RC_SCALING: DWORD = 4; -pub const RC_BITMAP64: DWORD = 8; -pub const RC_GDI20_OUTPUT: DWORD = 0x0010; -pub const RC_GDI20_STATE: DWORD = 0x0020; -pub const RC_SAVEBITMAP: DWORD = 0x0040; -pub const RC_DI_BITMAP: DWORD = 0x0080; -pub const RC_PALETTE: DWORD = 0x0100; -pub const RC_DIBTODEV: DWORD = 0x0200; -pub const RC_BIGFONT: DWORD = 0x0400; -pub const RC_STRETCHBLT: DWORD = 0x0800; -pub const RC_FLOODFILL: DWORD = 0x1000; -pub const RC_STRETCHDIB: DWORD = 0x2000; -pub const RC_OP_DX_OUTPUT: DWORD = 0x4000; -pub const RC_DEVBITS: DWORD = 0x8000; -pub const SB_NONE: DWORD = 0x00000000; -pub const SB_CONST_ALPHA: DWORD = 0x00000001; -pub const SB_PIXEL_ALPHA: DWORD = 0x00000002; -pub const SB_PREMULT_ALPHA: DWORD = 0x00000004; -pub const SB_GRAD_RECT: DWORD = 0x00000010; -pub const SB_GRAD_TRI: DWORD = 0x00000020; -pub const CM_NONE: DWORD = 0x00000000; -pub const CM_DEVICE_ICM: DWORD = 0x00000001; -pub const CM_GAMMA_RAMP: DWORD = 0x00000002; -pub const CM_CMYK_COLOR: DWORD = 0x00000004; -pub const DIB_RGB_COLORS: DWORD = 0; -pub const DIB_PAL_COLORS: DWORD = 1; -pub const SYSPAL_ERROR: DWORD = 0; -pub const SYSPAL_STATIC: DWORD = 1; -pub const SYSPAL_NOSTATIC: DWORD = 2; -pub const SYSPAL_NOSTATIC256: DWORD = 3; -pub const CBM_INIT: DWORD = 0x04; -pub const FLOODFILLBORDER: DWORD = 0; -pub const FLOODFILLSURFACE: DWORD = 1; -pub const CCHDEVICENAME: usize = 32; -pub const CCHFORMNAME: usize = 32; -STRUCT!{struct DEVMODE_u1_s1 { - dmOrientation: c_short, - dmPaperSize: c_short, - dmPaperLength: c_short, - dmPaperWidth: c_short, - dmScale: c_short, - dmCopies: c_short, - dmDefaultSource: c_short, - dmPrintQuality: c_short, -}} -STRUCT!{struct DEVMODE_u1_s2 { - dmPosition: POINTL, - dmDisplayOrientation: DWORD, - dmDisplayFixedOutput: DWORD, -}} -UNION!{union DEVMODE_u1 { - [u32; 4], - s1 s1_mut: DEVMODE_u1_s1, - s2 s2_mut: DEVMODE_u1_s2, -}} -UNION!{union DEVMODE_u2 { - [u32; 1], - dmDisplayFlags dmDisplayFlags_mut: DWORD, - dmNup dmNup_mut: DWORD, -}} -STRUCT!{struct DEVMODEA { - dmDeviceName: [CHAR; CCHDEVICENAME], - dmSpecVersion: WORD, - dmDriverVersion: WORD, - dmSize: WORD, - dmDriverExtra: WORD, - dmFields: DWORD, - u1: DEVMODE_u1, - 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, - u2: DEVMODE_u2, - 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, - u1: DEVMODE_u1, - 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, - u2: DEVMODE_u2, - 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; -pub const DM_SPECVERSION: DWORD = 0x0401; -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 DMORIENT_PORTRAIT: DWORD = 1; -pub const DMORIENT_LANDSCAPE: DWORD = 2; -pub const DMPAPER_FIRST: DWORD = DMPAPER_LETTER; -pub const DMPAPER_LETTER: DWORD = 1; -pub const DMPAPER_LETTERSMALL: DWORD = 2; -pub const DMPAPER_TABLOID: DWORD = 3; -pub const DMPAPER_LEDGER: DWORD = 4; -pub const DMPAPER_LEGAL: DWORD = 5; -pub const DMPAPER_STATEMENT: DWORD = 6; -pub const DMPAPER_EXECUTIVE: DWORD = 7; -pub const DMPAPER_A3: DWORD = 8; -pub const DMPAPER_A4: DWORD = 9; -pub const DMPAPER_A4SMALL: DWORD = 10; -pub const DMPAPER_A5: DWORD = 11; -pub const DMPAPER_B4: DWORD = 12; -pub const DMPAPER_B5: DWORD = 13; -pub const DMPAPER_FOLIO: DWORD = 14; -pub const DMPAPER_QUARTO: DWORD = 15; -pub const DMPAPER_10X14: DWORD = 16; -pub const DMPAPER_11X17: DWORD = 17; -pub const DMPAPER_NOTE: DWORD = 18; -pub const DMPAPER_ENV_9: DWORD = 19; -pub const DMPAPER_ENV_10: DWORD = 20; -pub const DMPAPER_ENV_11: DWORD = 21; -pub const DMPAPER_ENV_12: DWORD = 22; -pub const DMPAPER_ENV_14: DWORD = 23; -pub const DMPAPER_CSHEET: DWORD = 24; -pub const DMPAPER_DSHEET: DWORD = 25; -pub const DMPAPER_ESHEET: DWORD = 26; -pub const DMPAPER_ENV_DL: DWORD = 27; -pub const DMPAPER_ENV_C5: DWORD = 28; -pub const DMPAPER_ENV_C3: DWORD = 29; -pub const DMPAPER_ENV_C4: DWORD = 30; -pub const DMPAPER_ENV_C6: DWORD = 31; -pub const DMPAPER_ENV_C65: DWORD = 32; -pub const DMPAPER_ENV_B4: DWORD = 33; -pub const DMPAPER_ENV_B5: DWORD = 34; -pub const DMPAPER_ENV_B6: DWORD = 35; -pub const DMPAPER_ENV_ITALY: DWORD = 36; -pub const DMPAPER_ENV_MONARCH: DWORD = 37; -pub const DMPAPER_ENV_PERSONAL: DWORD = 38; -pub const DMPAPER_FANFOLD_US: DWORD = 39; -pub const DMPAPER_FANFOLD_STD_GERMAN: DWORD = 40; -pub const DMPAPER_FANFOLD_LGL_GERMAN: DWORD = 41; -pub const DMPAPER_ISO_B4: DWORD = 42; -pub const DMPAPER_JAPANESE_POSTCARD: DWORD = 43; -pub const DMPAPER_9X11: DWORD = 44; -pub const DMPAPER_10X11: DWORD = 45; -pub const DMPAPER_15X11: DWORD = 46; -pub const DMPAPER_ENV_INVITE: DWORD = 47; -pub const DMPAPER_RESERVED_48: DWORD = 48; -pub const DMPAPER_RESERVED_49: DWORD = 49; -pub const DMPAPER_LETTER_EXTRA: DWORD = 50; -pub const DMPAPER_LEGAL_EXTRA: DWORD = 51; -pub const DMPAPER_TABLOID_EXTRA: DWORD = 52; -pub const DMPAPER_A4_EXTRA: DWORD = 53; -pub const DMPAPER_LETTER_TRANSVERSE: DWORD = 54; -pub const DMPAPER_A4_TRANSVERSE: DWORD = 55; -pub const DMPAPER_LETTER_EXTRA_TRANSVERSE: DWORD = 56; -pub const DMPAPER_A_PLUS: DWORD = 57; -pub const DMPAPER_B_PLUS: DWORD = 58; -pub const DMPAPER_LETTER_PLUS: DWORD = 59; -pub const DMPAPER_A4_PLUS: DWORD = 60; -pub const DMPAPER_A5_TRANSVERSE: DWORD = 61; -pub const DMPAPER_B5_TRANSVERSE: DWORD = 62; -pub const DMPAPER_A3_EXTRA: DWORD = 63; -pub const DMPAPER_A5_EXTRA: DWORD = 64; -pub const DMPAPER_B5_EXTRA: DWORD = 65; -pub const DMPAPER_A2: DWORD = 66; -pub const DMPAPER_A3_TRANSVERSE: DWORD = 67; -pub const DMPAPER_A3_EXTRA_TRANSVERSE: DWORD = 68; -pub const DMPAPER_DBL_JAPANESE_POSTCARD: DWORD = 69; -pub const DMPAPER_A6: DWORD = 70; -pub const DMPAPER_JENV_KAKU2: DWORD = 71; -pub const DMPAPER_JENV_KAKU3: DWORD = 72; -pub const DMPAPER_JENV_CHOU3: DWORD = 73; -pub const DMPAPER_JENV_CHOU4: DWORD = 74; -pub const DMPAPER_LETTER_ROTATED: DWORD = 75; -pub const DMPAPER_A3_ROTATED: DWORD = 76; -pub const DMPAPER_A4_ROTATED: DWORD = 77; -pub const DMPAPER_A5_ROTATED: DWORD = 78; -pub const DMPAPER_B4_JIS_ROTATED: DWORD = 79; -pub const DMPAPER_B5_JIS_ROTATED: DWORD = 80; -pub const DMPAPER_JAPANESE_POSTCARD_ROTATED: DWORD = 81; -pub const DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: DWORD = 82; -pub const DMPAPER_A6_ROTATED: DWORD = 83; -pub const DMPAPER_JENV_KAKU2_ROTATED: DWORD = 84; -pub const DMPAPER_JENV_KAKU3_ROTATED: DWORD = 85; -pub const DMPAPER_JENV_CHOU3_ROTATED: DWORD = 86; -pub const DMPAPER_JENV_CHOU4_ROTATED: DWORD = 87; -pub const DMPAPER_B6_JIS: DWORD = 88; -pub const DMPAPER_B6_JIS_ROTATED: DWORD = 89; -pub const DMPAPER_12X11: DWORD = 90; -pub const DMPAPER_JENV_YOU4: DWORD = 91; -pub const DMPAPER_JENV_YOU4_ROTATED: DWORD = 92; -pub const DMPAPER_P16K: DWORD = 93; -pub const DMPAPER_P32K: DWORD = 94; -pub const DMPAPER_P32KBIG: DWORD = 95; -pub const DMPAPER_PENV_1: DWORD = 96; -pub const DMPAPER_PENV_2: DWORD = 97; -pub const DMPAPER_PENV_3: DWORD = 98; -pub const DMPAPER_PENV_4: DWORD = 99; -pub const DMPAPER_PENV_5: DWORD = 100; -pub const DMPAPER_PENV_6: DWORD = 101; -pub const DMPAPER_PENV_7: DWORD = 102; -pub const DMPAPER_PENV_8: DWORD = 103; -pub const DMPAPER_PENV_9: DWORD = 104; -pub const DMPAPER_PENV_10: DWORD = 105; -pub const DMPAPER_P16K_ROTATED: DWORD = 106; -pub const DMPAPER_P32K_ROTATED: DWORD = 107; -pub const DMPAPER_P32KBIG_ROTATED: DWORD = 108; -pub const DMPAPER_PENV_1_ROTATED: DWORD = 109; -pub const DMPAPER_PENV_2_ROTATED: DWORD = 110; -pub const DMPAPER_PENV_3_ROTATED: DWORD = 111; -pub const DMPAPER_PENV_4_ROTATED: DWORD = 112; -pub const DMPAPER_PENV_5_ROTATED: DWORD = 113; -pub const DMPAPER_PENV_6_ROTATED: DWORD = 114; -pub const DMPAPER_PENV_7_ROTATED: DWORD = 115; -pub const DMPAPER_PENV_8_ROTATED: DWORD = 116; -pub const DMPAPER_PENV_9_ROTATED: DWORD = 117; -pub const DMPAPER_PENV_10_ROTATED: DWORD = 118; -pub const DMPAPER_LAST: DWORD = DMPAPER_PENV_10_ROTATED; -pub const DMPAPER_USER: DWORD = 256; -pub const DMBIN_FIRST: DWORD = DMBIN_UPPER; -pub const DMBIN_UPPER: DWORD = 1; -pub const DMBIN_ONLYONE: DWORD = 1; -pub const DMBIN_LOWER: DWORD = 2; -pub const DMBIN_MIDDLE: DWORD = 3; -pub const DMBIN_MANUAL: DWORD = 4; -pub const DMBIN_ENVELOPE: DWORD = 5; -pub const DMBIN_ENVMANUAL: DWORD = 6; -pub const DMBIN_AUTO: DWORD = 7; -pub const DMBIN_TRACTOR: DWORD = 8; -pub const DMBIN_SMALLFMT: DWORD = 9; -pub const DMBIN_LARGEFMT: DWORD = 10; -pub const DMBIN_LARGECAPACITY: DWORD = 11; -pub const DMBIN_CASSETTE: DWORD = 14; -pub const DMBIN_FORMSOURCE: DWORD = 15; -pub const DMBIN_LAST: DWORD = DMBIN_FORMSOURCE; -pub const DMBIN_USER: DWORD = 256; -pub const DMRES_DRAFT: c_int = -1; -pub const DMRES_LOW: c_int = -2; -pub const DMRES_MEDIUM: c_int = -3; -pub const DMRES_HIGH: c_int = -4; -pub const DMCOLOR_MONOCHROME: DWORD = 1; -pub const DMCOLOR_COLOR: DWORD = 2; -pub const DMDUP_SIMPLEX: DWORD = 1; -pub const DMDUP_VERTICAL: DWORD = 2; -pub const DMDUP_HORIZONTAL: DWORD = 3; -pub const DMTT_BITMAP: DWORD = 1; -pub const DMTT_DOWNLOAD: DWORD = 2; -pub const DMTT_SUBDEV: DWORD = 3; -pub const DMTT_DOWNLOAD_OUTLINE: DWORD = 4; -pub const DMCOLLATE_FALSE: DWORD = 0; -pub const DMCOLLATE_TRUE: DWORD = 1; -pub const DMDO_DEFAULT: DWORD = 0; -pub const DMDO_90: DWORD = 1; -pub const DMDO_180: DWORD = 2; -pub const DMDO_270: DWORD = 3; -pub const DMDFO_DEFAULT: DWORD = 0; -pub const DMDFO_STRETCH: DWORD = 1; -pub const DMDFO_CENTER: DWORD = 2; -pub const DM_INTERLACED: DWORD = 0x00000002; -pub const DMDISPLAYFLAGS_TEXTMODE: DWORD = 0x00000004; -pub const DMNUP_SYSTEM: DWORD = 1; -pub const DMNUP_ONEUP: DWORD = 2; -pub const DMICMMETHOD_NONE: DWORD = 1; -pub const DMICMMETHOD_SYSTEM: DWORD = 2; -pub const DMICMMETHOD_DRIVER: DWORD = 3; -pub const DMICMMETHOD_DEVICE: DWORD = 4; -pub const DMICMMETHOD_USER: DWORD = 256; -pub const DMICM_SATURATE: DWORD = 1; -pub const DMICM_CONTRAST: DWORD = 2; -pub const DMICM_COLORIMETRIC: DWORD = 3; -pub const DMICM_ABS_COLORIMETRIC: DWORD = 4; -pub const DMICM_USER: DWORD = 256; -pub const DMMEDIA_STANDARD: DWORD = 1; -pub const DMMEDIA_TRANSPARENCY: DWORD = 2; -pub const DMMEDIA_GLOSSY: DWORD = 3; -pub const DMMEDIA_USER: DWORD = 256; -pub const DMDITHER_NONE: DWORD = 1; -pub const DMDITHER_COARSE: DWORD = 2; -pub const DMDITHER_FINE: DWORD = 3; -pub const DMDITHER_LINEART: DWORD = 4; -pub const DMDITHER_ERRORDIFFUSION: DWORD = 5; -pub const DMDITHER_RESERVED6: DWORD = 6; -pub const DMDITHER_RESERVED7: DWORD = 7; -pub const DMDITHER_RESERVED8: DWORD = 8; -pub const DMDITHER_RESERVED9: DWORD = 9; -pub const DMDITHER_GRAYSCALE: DWORD = 10; -pub const DMDITHER_USER: DWORD = 256; -STRUCT!{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 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; -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_RDPUDD: DWORD = 0x01000000; -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 DISPLAYCONFIG_MAXPATH: usize = 1024; -STRUCT!{struct DISPLAYCONFIG_RATIONAL { - Numerator: UINT32, - Denominator: UINT32, -}} -ENUM!{enum DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY { - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1i32 as u32, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED = 16, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, - DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF, -}} -ENUM!{enum DISPLAYCONFIG_SCANLINE_ORDERING { - DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0, - DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1, - DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2, - DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = - DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, - DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3, - DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF, -}} -STRUCT!{struct DISPLAYCONFIG_2DREGION { - cx: UINT32, - cy: UINT32, -}} -STRUCT!{struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO_AdditionalSignalInfo { - bitfield: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_VIDEO_SIGNAL_INFO_AdditionalSignalInfo bitfield: UINT32 [ - videoStandard set_videoStandard[0..16], - vSyncFreqDivider set_vSyncFreqDivider[16..22], -]} -UNION!{union DISPLAYCONFIG_VIDEO_SIGNAL_INFO_u { - [u32; 1], - AdditionalSignalInfo AdditionalSignalInfo_mut: - DISPLAYCONFIG_VIDEO_SIGNAL_INFO_AdditionalSignalInfo, - videoStandard videoStandard_mut: UINT32, -}} -STRUCT!{struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO { - pixelRate: UINT64, - hSyncFreq: DISPLAYCONFIG_RATIONAL, - vSyncFreq: DISPLAYCONFIG_RATIONAL, - activeSize: DISPLAYCONFIG_2DREGION, - totalSize: DISPLAYCONFIG_2DREGION, - u: DISPLAYCONFIG_VIDEO_SIGNAL_INFO_u, - scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING, -}} -ENUM!{enum DISPLAYCONFIG_SCALING { - DISPLAYCONFIG_SCALING_IDENTITY = 1, - DISPLAYCONFIG_SCALING_CENTERED = 2, - DISPLAYCONFIG_SCALING_STRETCHED = 3, - DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4, - DISPLAYCONFIG_SCALING_CUSTOM = 5, - DISPLAYCONFIG_SCALING_PREFERRED = 128, - DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF, -}} -ENUM!{enum DISPLAYCONFIG_ROTATION { - DISPLAYCONFIG_ROTATION_IDENTITY = 1, - DISPLAYCONFIG_ROTATION_ROTATE90 = 2, - DISPLAYCONFIG_ROTATION_ROTATE180 = 3, - DISPLAYCONFIG_ROTATION_ROTATE270 = 4, - DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF, -}} -ENUM!{enum DISPLAYCONFIG_MODE_INFO_TYPE { - DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1, - DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2, - DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3, - DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF, -}} -ENUM!{enum DISPLAYCONFIG_PIXELFORMAT { - DISPLAYCONFIG_PIXELFORMAT_8BPP = 1, - DISPLAYCONFIG_PIXELFORMAT_16BPP = 2, - DISPLAYCONFIG_PIXELFORMAT_24BPP = 3, - DISPLAYCONFIG_PIXELFORMAT_32BPP = 4, - DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5, - DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xffffffff, -}} -STRUCT!{struct DISPLAYCONFIG_SOURCE_MODE { - width: UINT32, - height: UINT32, - pixelFormat: DISPLAYCONFIG_PIXELFORMAT, - position: POINTL, -}} -STRUCT!{struct DISPLAYCONFIG_TARGET_MODE { - targetVideoSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO, -}} -STRUCT!{struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO { - PathSourceSize: POINTL, - DesktopImageRegion: RECTL, - DesktopImageClip: RECTL, -}} -UNION!{union DISPLAYCONFIG_MODE_INFO_u { - [u64; 6], - targetMode targetMode_mut: DISPLAYCONFIG_TARGET_MODE, - sourceMode sourceMode_mut: DISPLAYCONFIG_SOURCE_MODE, - desktopImageInfo desktopImageInfo_mut: DISPLAYCONFIG_DESKTOP_IMAGE_INFO, -}} -STRUCT!{struct DISPLAYCONFIG_MODE_INFO { - infoType: DISPLAYCONFIG_MODE_INFO_TYPE, - id: UINT32, - adapterId: LUID, - u: DISPLAYCONFIG_MODE_INFO_u, -}} -pub const DISPLAYCONFIG_PATH_MODE_IDX_INVALID: DWORD = 0xffffffff; -pub const DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID: DWORD = 0xffff; -pub const DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID: DWORD = 0xffff; -pub const DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID: DWORD = 0xffff; -pub const DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID: DWORD = 0xffff; -STRUCT!{struct DISPLAYCONFIG_PATH_SOURCE_INFO { - adapterId: LUID, - id: UINT32, - modeInfoIdx: UINT32, - statusFlags: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_PATH_SOURCE_INFO modeInfoIdx: UINT32 [ - cloneGroupId set_cloneGroupId[0..16], - sourceModeInfoIdx set_sourceModeInfoIdx[16..32], -]} -pub const DISPLAYCONFIG_SOURCE_IN_USE: DWORD = 0x00000001; -STRUCT!{struct DISPLAYCONFIG_PATH_TARGET_INFO { - adapterId: LUID, - id: UINT32, - modeInfoIdx: UINT32, - outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, - rotation: DISPLAYCONFIG_ROTATION, - scaling: DISPLAYCONFIG_SCALING, - refreshRate: DISPLAYCONFIG_RATIONAL, - scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING, - targetAvailable: BOOL, - statusFlags: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_PATH_TARGET_INFO modeInfoIdx: UINT32 [ - desktopModeInfoIdx set_desktopModeInfoIdx[0..16], - targetModeInfoIdx set_targetModeInfoIdx[16..32], -]} -pub const DISPLAYCONFIG_TARGET_IN_USE: DWORD = 0x00000001; -pub const DISPLAYCONFIG_TARGET_FORCIBLE: DWORD = 0x00000002; -pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT: DWORD = 0x00000004; -pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH: DWORD = 0x00000008; -pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM: DWORD = 0x00000010; -pub const DISPLAYCONFIG_TARGET_IS_HMD: DWORD = 0x00000020; -STRUCT!{struct DISPLAYCONFIG_PATH_INFO { - sourceInfo: DISPLAYCONFIG_PATH_SOURCE_INFO, - targetInfo: DISPLAYCONFIG_PATH_TARGET_INFO, - flags: UINT32, -}} -pub const DISPLAYCONFIG_PATH_ACTIVE: DWORD = 0x00000001; -pub const DISPLAYCONFIG_PATH_PREFERRED_UNSCALED: DWORD = 0x00000004; -pub const DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE: DWORD = 0x00000008; -pub const DISPLAYCONFIG_PATH_VALID_FLAGS: DWORD = 0x0000000D; -ENUM!{enum DISPLAYCONFIG_TOPOLOGY_ID { - DISPLAYCONFIG_TOPOLOGY_INTERNAL = 0x00000001, - DISPLAYCONFIG_TOPOLOGY_CLONE = 0x00000002, - DISPLAYCONFIG_TOPOLOGY_EXTEND = 0x00000004, - DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 0x00000008, - DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF, -}} -ENUM!{enum DISPLAYCONFIG_DEVICE_INFO_TYPE { - DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, - DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2, - DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3, - DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4, - DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5, - DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6, - DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION = 7, - DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION = 8, - DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO = 9, - DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE = 10, - DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF, -}} -STRUCT!{struct DISPLAYCONFIG_DEVICE_INFO_HEADER { - _type: DISPLAYCONFIG_DEVICE_INFO_TYPE, - size: UINT32, - adapterId: LUID, - id: UINT32, -}} -STRUCT!{struct DISPLAYCONFIG_SOURCE_DEVICE_NAME { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - viewGdiDeviceName: [WCHAR; CCHDEVICENAME], -}} -STRUCT!{struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS { - value: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS value: UINT32 [ - friendlyNameFromEdid set_friendlyNameFromEdid[0..1], - friendlyNameForced set_friendlyNameForced[1..2], - edidIdsValid set_edidIdsValid[2..3], -]} -STRUCT!{struct DISPLAYCONFIG_TARGET_DEVICE_NAME { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - flags: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, - outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, - edidManufactureId: UINT16, - edidProductCodeId: UINT16, - connectorInstance: UINT32, - monitorFriendlyDeviceName: [WCHAR; 64], - monitorDevicePath: [WCHAR; 128], -}} -STRUCT!{struct DISPLAYCONFIG_TARGET_PREFERRED_MODE { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - width: UINT32, - height: UINT32, - targetMode: DISPLAYCONFIG_TARGET_MODE, -}} -STRUCT!{struct DISPLAYCONFIG_ADAPTER_NAME { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - adapterDevicePath: [WCHAR; 128], -}} -STRUCT!{struct DISPLAYCONFIG_TARGET_BASE_TYPE { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - baseOutputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, -}} -STRUCT!{struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - value: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_SET_TARGET_PERSISTENCE value: UINT32 [ - bootPersistenceOn set_bootPersistenceOn[0..1], -]} -STRUCT!{struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - value: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION value: UINT32 [ - disableMonitorVirtualResolution set_disableMonitorVirtualResolution[0..1], -]} -ENUM!{enum DISPLAYCONFIG_COLOR_ENCODING { - DISPLAYCONFIG_COLOR_ENCODING_RGB = 0, - DISPLAYCONFIG_COLOR_ENCODING_YCBCR444 = 1, - DISPLAYCONFIG_COLOR_ENCODING_YCBCR422 = 2, - DISPLAYCONFIG_COLOR_ENCODING_YCBCR420 = 3, - DISPLAYCONFIG_COLOR_ENCODING_INTENSITY = 4, - DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xFFFFFFFF, -}} -STRUCT!{struct DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - value: UINT32, - colorEncoding: DISPLAYCONFIG_COLOR_ENCODING, - bitsPerColorChannel: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO value: UINT32 [ - advancedColorSupported set_advancedColorSupported[0..1], - advancedColorEnabled set_advancedColorEnabled[1..2], - reserved set_reserved[2..32], -]} -STRUCT!{struct DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE { - header: DISPLAYCONFIG_DEVICE_INFO_HEADER, - value: UINT32, -}} -BITFIELD!{DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE value: UINT32 [ - enableAdvancedColor set_enableAdvancedColor[0..1], - reserved set_reserved[1..32], -]} -pub const QDC_ALL_PATHS: DWORD = 0x00000001; -pub const QDC_ONLY_ACTIVE_PATHS: DWORD = 0x00000002; -pub const QDC_DATABASE_CURRENT: DWORD = 0x00000004; -pub const QDC_VIRTUAL_MODE_AWARE: DWORD = 0x00000010; -pub const QDC_INCLUDE_HMD: DWORD = 0x00000020; -pub const SDC_TOPOLOGY_INTERNAL: DWORD = 0x00000001; -pub const SDC_TOPOLOGY_CLONE: DWORD = 0x00000002; -pub const SDC_TOPOLOGY_EXTEND: DWORD = 0x00000004; -pub const SDC_TOPOLOGY_EXTERNAL: DWORD = 0x00000008; -pub const SDC_TOPOLOGY_SUPPLIED: DWORD = 0x00000010; -pub const SDC_USE_DATABASE_CURRENT: DWORD = SDC_TOPOLOGY_INTERNAL | SDC_TOPOLOGY_CLONE - | SDC_TOPOLOGY_EXTEND | SDC_TOPOLOGY_EXTERNAL; -pub const SDC_USE_SUPPLIED_DISPLAY_CONFIG: DWORD = 0x00000020; -pub const SDC_VALIDATE: DWORD = 0x00000040; -pub const SDC_APPLY: DWORD = 0x00000080; -pub const SDC_NO_OPTIMIZATION: DWORD = 0x00000100; -pub const SDC_SAVE_TO_DATABASE: DWORD = 0x00000200; -pub const SDC_ALLOW_CHANGES: DWORD = 0x00000400; -pub const SDC_PATH_PERSIST_IF_REQUIRED: DWORD = 0x00000800; -pub const SDC_FORCE_MODE_ENUMERATION: DWORD = 0x00001000; -pub const SDC_ALLOW_PATH_ORDER_CHANGES: DWORD = 0x00002000; -pub const SDC_VIRTUAL_MODE_AWARE: DWORD = 0x00008000; -pub const RDH_RECTANGLES: DWORD = 1; -STRUCT!{struct RGNDATAHEADER { - dwSize: DWORD, - iType: DWORD, - nCount: DWORD, - nRgnSize: DWORD, - rcBound: RECT, -}} -pub type PRGNDATAHEADER = *mut RGNDATAHEADER; -STRUCT!{struct RGNDATA { - rdh: RGNDATAHEADER, - Buffer: [c_char; 1], -}} -pub type PRGNDATA = *mut RGNDATA; -pub type NPRGNDATA = *mut RGNDATA; -pub type LPRGNDATA = *mut RGNDATA; -pub const SYSRGN: INT = 4; -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; -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 POLYTEXTA { - x: c_int, - y: c_int, - n: UINT, - lpstr: LPCSTR, - uiFlags: UINT, - rcl: RECT, - pdx: *mut 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: *mut c_int, -}} -pub type PPOLYTEXTW = *mut POLYTEXTW; -pub type NPPOLYTEXTW = *mut POLYTEXTW; -pub type LPPOLYTEXTW = *mut POLYTEXTW; -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; -pub const GGO_METRICS: DWORD = 0; -pub const GGO_BITMAP: DWORD = 1; -pub const GGO_NATIVE: DWORD = 2; -pub const GGO_BEZIER: DWORD = 3; -pub const GGO_GRAY2_BITMAP: DWORD = 4; -pub const GGO_GRAY4_BITMAP: DWORD = 5; -pub const GGO_GRAY8_BITMAP: DWORD = 6; -pub const GGO_GLYPH_INDEX: DWORD = 0x0080; -pub const GGO_UNHINTED: DWORD = 0x0100; -pub const TT_POLYGON_TYPE: DWORD = 24; -pub const TT_PRIM_LINE: DWORD = 1; -pub const TT_PRIM_QSPLINE: DWORD = 2; -pub const TT_PRIM_CSPLINE: DWORD = 3; -STRUCT!{struct POINTFX { - x: FIXED, - y: FIXED, -}} -pub type LPPOINTFX = *mut POINTFX; -STRUCT!{struct TTPOLYCURVE { - wType: WORD, - cpfx: WORD, - apfx: [POINTFX; 1], -}} -pub type LPTTPOLYCURVE = *mut TTPOLYCURVE; -STRUCT!{struct TTPOLYGONHEADER { - cb: DWORD, - dwType: DWORD, - pfxStart: POINTFX, -}} -pub type LPTTPOLYGONHEADER = *mut TTPOLYGONHEADER; -pub const GCP_DBCS: DWORD = 0x0001; -pub const GCP_REORDER: DWORD = 0x0002; -pub const GCP_USEKERNING: DWORD = 0x0008; -pub const GCP_GLYPHSHAPE: DWORD = 0x0010; -pub const GCP_LIGATE: DWORD = 0x0020; -pub const GCP_DIACRITIC: DWORD = 0x0100; -pub const GCP_KASHIDA: DWORD = 0x0400; -pub const GCP_ERROR: DWORD = 0x8000; -pub const FLI_MASK: DWORD = 0x103B; -pub const GCP_JUSTIFY: DWORD = 0x00010000; -pub const FLI_GLYPHS: DWORD = 0x00040000; -pub const GCP_CLASSIN: DWORD = 0x00080000; -pub const GCP_MAXEXTENT: DWORD = 0x00100000; -pub const GCP_JUSTIFYIN: DWORD = 0x00200000; -pub const GCP_DISPLAYZWG: DWORD = 0x00400000; -pub const GCP_SYMSWAPOFF: DWORD = 0x00800000; -pub const GCP_NUMERICOVERRIDE: DWORD = 0x01000000; -pub const GCP_NEUTRALOVERRIDE: DWORD = 0x02000000; -pub const GCP_NUMERICSLATIN: DWORD = 0x04000000; -pub const GCP_NUMERICSLOCAL: DWORD = 0x08000000; -pub const GCPCLASS_LATIN: DWORD = 1; -pub const GCPCLASS_HEBREW: DWORD = 2; -pub const GCPCLASS_ARABIC: DWORD = 2; -pub const GCPCLASS_NEUTRAL: DWORD = 3; -pub const GCPCLASS_LOCALNUMBER: DWORD = 4; -pub const GCPCLASS_LATINNUMBER: DWORD = 5; -pub const GCPCLASS_LATINNUMERICTERMINATOR: DWORD = 6; -pub const GCPCLASS_LATINNUMERICSEPARATOR: DWORD = 7; -pub const GCPCLASS_NUMERICSEPARATOR: DWORD = 8; -pub const GCPCLASS_PREBOUNDLTR: DWORD = 0x80; -pub const GCPCLASS_PREBOUNDRTL: DWORD = 0x40; -pub const GCPCLASS_POSTBOUNDLTR: DWORD = 0x20; -pub const GCPCLASS_POSTBOUNDRTL: DWORD = 0x10; -pub const GCPGLYPH_LINKBEFORE: DWORD = 0x8000; -pub const GCPGLYPH_LINKAFTER: DWORD = 0x4000; -STRUCT!{struct GCP_RESULTSA { - lStructSize: DWORD, - lpOutString: LPSTR, - lpOrder: *mut UINT, - lpDx: *mut c_int, - lpCaretPos: *mut 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: *mut UINT, - lpDx: *mut c_int, - lpCaretPos: *mut c_int, - lpClass: LPSTR, - lpGlyphs: LPWSTR, - nGlyphs: UINT, - nMaxFit: c_int, -}} -pub type LPGCP_RESULTSW = *mut GCP_RESULTSW; -STRUCT!{struct RASTERIZER_STATUS { - nSize: c_short, - wFlags: c_short, - nLanguageID: c_short, -}} -pub type LPRASTERIZER_STATUS = *mut RASTERIZER_STATUS; -pub const TT_AVAILABLE: DWORD = 0x0001; -pub const TT_ENABLED: DWORD = 0x0002; -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 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 = -1i8 as u8; -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; -FN!{stdcall OLDFONTENUMPROCA( - *const LOGFONTA, - *const TEXTMETRICA, - DWORD, - LPARAM, -) -> c_int} -FN!{stdcall OLDFONTENUMPROCW( - *const LOGFONTW, - *const TEXTMETRICW, - DWORD, - LPARAM, -) -> c_int} -pub type FONTENUMPROCA = OLDFONTENUMPROCA; -pub type FONTENUMPROCW = OLDFONTENUMPROCW; -FN!{stdcall GOBJENUMPROC( - LPVOID, - LPARAM, -) -> c_int} -FN!{stdcall LINEDDAPROC( - c_int, - c_int, - LPARAM, -) -> ()} -extern "system" { - pub fn AddFontResourceA( - _: LPCSTR, - ) -> c_int; - pub fn AddFontResourceW( - _: LPCWSTR, - ) -> c_int; - pub fn AnimatePalette( - hPal: HPALETTE, - iStartIndex: UINT, - cEntries: UINT, - ppe: *const PALETTEENTRY, - ) -> BOOL; - pub fn Arc( - hdc: HDC, - x1: c_int, - y1: c_int, - x2: c_int, - y2: c_int, - x3: c_int, - y3: c_int, - x4: c_int, - y4: c_int, - ) -> BOOL; - pub fn BitBlt( - hdc: HDC, - x: c_int, - y: c_int, - cx: c_int, - cy: c_int, - hdcSrc: HDC, - x1: c_int, - y1: c_int, - rop: DWORD, - ) -> BOOL; - pub fn CancelDC( - hdc: HDC, - ) -> BOOL; - pub fn Chord( - hdc: HDC, - x1: c_int, - y1: c_int, - x2: c_int, - y2: c_int, - x3: c_int, - y3: c_int, - x4: c_int, - y4: c_int, - ) -> BOOL; - pub fn ChoosePixelFormat( - hdc: HDC, - ppfd: *const PIXELFORMATDESCRIPTOR, - ) -> c_int; - pub fn CloseMetaFile( - hdc: HDC, - ) -> HMETAFILE; - pub fn CombineRgn( - hrgnDst: HRGN, - hrgnSrc1: HRGN, - hrgnSrc2: HRGN, - iMode: c_int, - ) -> c_int; - pub fn CopyMetaFileA( - _: HMETAFILE, - _: LPCSTR, - ) -> HMETAFILE; - pub fn CopyMetaFileW( - _: HMETAFILE, - _: LPCWSTR, - ) -> HMETAFILE; - pub fn CreateBitmap( - nWidth: c_int, - nHeight: c_int, - nPlanes: UINT, - nBitCount: UINT, - lpBits: *const c_void, - ) -> HBITMAP; - pub fn CreateBitmapIndirect( - pbm: *const BITMAP, - ) -> HBITMAP; - pub fn CreateBrushIndirect( - plbrush: *const LOGBRUSH, - ) -> HBRUSH; - pub fn CreateCompatibleBitmap( - hdc: HDC, - cx: c_int, - cy: c_int, - ) -> HBITMAP; - pub fn CreateDiscardableBitmap( - hdc: HDC, - cx: c_int, - cy: c_int, - ) -> HBITMAP; - pub fn CreateCompatibleDC( - hdc: HDC, - ) -> HDC; - pub fn CreateDCA( - pwszDriver: LPCSTR, - pwszDevice: LPCSTR, - pszPort: LPCSTR, - pdm: *const DEVMODEA, - ) -> HDC; - pub fn CreateDCW( - pwszDriver: LPCWSTR, - pwszDevice: LPCWSTR, - pszPort: LPCWSTR, - pdm: *const DEVMODEW, - ) -> HDC; - pub fn CreateDIBitmap( - hdc: HDC, - pbmih: *const BITMAPINFOHEADER, - flInit: DWORD, - pjBits: *const c_void, - pbmi: *const BITMAPINFO, - iUsage: UINT, - ) -> HBITMAP; - pub fn CreateDIBPatternBrush( - h: HGLOBAL, - iUsage: UINT, - ) -> HBRUSH; - pub fn CreateDIBPatternBrushPt( - lpPackedDIB: *const c_void, - iUsage: UINT, - ) -> HBRUSH; - pub fn CreateEllipticRgn( - x1: c_int, - y1: c_int, - x2: c_int, - y2: c_int, - ) -> HRGN; - pub fn CreateEllipticRgnIndirect( - lprect: *const RECT, - ) -> HRGN; - pub fn CreateFontIndirectA( - lplf: *const LOGFONTA, - ) -> HFONT; - pub fn CreateFontIndirectW( - lplf: *const LOGFONTW, - ) -> HFONT; - pub fn CreateFontA( - cHeight: c_int, - cWidth: c_int, - cEscapement: c_int, - cOrientation: c_int, - cWeight: c_int, - bItalic: DWORD, - bUnderline: DWORD, - bStrikeOut: DWORD, - iCharSet: DWORD, - iOutPrecision: DWORD, - iClipPrecision: DWORD, - iQuality: DWORD, - iPitchAndFamily: DWORD, - pszFaceName: LPCSTR, - ) -> HFONT; - pub fn CreateFontW( - cHeight: c_int, - cWidth: c_int, - cEscapement: c_int, - cOrientation: c_int, - cWeight: c_int, - bItalic: DWORD, - bUnderline: DWORD, - bStrikeOut: DWORD, - iCharSet: DWORD, - iOutPrecision: DWORD, - iClipPrecision: DWORD, - iQuality: DWORD, - iPitchAndFamily: DWORD, - pszFaceName: LPCWSTR, - ) -> HFONT; - pub fn CreateHatchBrush( - iHatch: c_int, - color: COLORREF, - ) -> HBRUSH; - pub fn CreateICA( - pszDriver: LPCSTR, - pszDevice: LPCSTR, - pszPort: LPCSTR, - pdm: *const DEVMODEA, - ) -> HDC; - pub fn CreateICW( - pszDriver: LPCWSTR, - pszDevice: LPCWSTR, - pszPort: LPCWSTR, - pdm: *const DEVMODEW, - ) -> HDC; - pub fn CreateMetaFileA( - pszFile: LPCSTR, - ) -> HDC; - pub fn CreateMetaFileW( - pszFile: LPCWSTR, - ) -> HDC; - pub fn CreatePalette( - plpal: *const LOGPALETTE, - ) -> HPALETTE; - pub fn CreatePen( - iStyle: c_int, - cWidth: c_int, - color: COLORREF, - ) -> HPEN; - pub fn CreatePenIndirect( - plpen: *const LOGPEN, - ) -> HPEN; - pub fn CreatePolyPolygonRgn( - pptl: *const POINT, - pc: *const INT, - cPoly: c_int, - iMode: c_int, - ) -> HRGN; - pub fn CreatePatternBrush( - hbm: HBITMAP, - ) -> HBRUSH; - pub fn CreateRectRgn( - x1: c_int, - y1: c_int, - x2: c_int, - y2: c_int, - ) -> HRGN; - pub fn CreateRectRgnIndirect( - lprect: *const RECT, - ) -> HRGN; - pub fn CreateRoundRectRgn( - x1: c_int, - y1: c_int, - x2: c_int, - y2: c_int, - w: c_int, - h: c_int, - ) -> HRGN; - pub fn CreateScalableFontResourceA( - fdwHidden: DWORD, - lpszFont: LPCSTR, - lpszFile: LPCSTR, - lpszPath: LPCSTR, - ) -> BOOL; - pub fn CreateScalableFontResourceW( - fdwHidden: DWORD, - lpszFont: LPCWSTR, - lpszFile: LPCWSTR, - lpszPath: LPCWSTR, - ) -> BOOL; - pub fn CreateSolidBrush( - color: COLORREF, - ) -> HBRUSH; - pub fn DeleteDC( - hdc: HDC, - ) -> BOOL; - pub fn DeleteMetaFile( - hmf: HMETAFILE, - ) -> BOOL; - pub fn DeleteObject( - ho: HGDIOBJ, - ) -> BOOL; - pub fn DescribePixelFormat( - hdc: HDC, - iPixelFormat: c_int, - nBytes: UINT, - ppfd: LPPIXELFORMATDESCRIPTOR, - ) -> c_int; -} -FN!{stdcall LPFNDEVMODE( - HWND, - HMODULE, - LPDEVMODEA, - LPSTR, - LPSTR, - LPDEVMODEA, - LPSTR, - UINT, -) -> UINT} -FN!{stdcall LPFNDEVCAPS( - LPSTR, - LPSTR, - UINT, - LPSTR, - LPDEVMODEA, -) -> DWORD} -pub const DM_UPDATE: DWORD = 1; -pub const DM_COPY: DWORD = 2; -pub const DM_PROMPT: DWORD = 4; -pub const DM_MODIFY: DWORD = 8; -pub const DM_IN_BUFFER: DWORD = DM_MODIFY; -pub const DM_IN_PROMPT: DWORD = DM_PROMPT; -pub const DM_OUT_BUFFER: DWORD = DM_COPY; -pub const DM_OUT_DEFAULT: DWORD = DM_UPDATE; -pub const DC_FIELDS: WORD = 1; -pub const DC_PAPERS: WORD = 2; -pub const DC_PAPERSIZE: WORD = 3; -pub const DC_MINEXTENT: WORD = 4; -pub const DC_MAXEXTENT: WORD = 5; -pub const DC_BINS: WORD = 6; -pub const DC_DUPLEX: WORD = 7; -pub const DC_SIZE: WORD = 8; -pub const DC_EXTRA: WORD = 9; -pub const DC_VERSION: WORD = 10; -pub const DC_DRIVER: WORD = 11; -pub const DC_BINNAMES: WORD = 12; -pub const DC_ENUMRESOLUTIONS: WORD = 13; -pub const DC_FILEDEPENDENCIES: WORD = 14; -pub const DC_TRUETYPE: WORD = 15; -pub const DC_PAPERNAMES: WORD = 16; -pub const DC_ORIENTATION: WORD = 17; -pub const DC_COPIES: WORD = 18; -pub const DC_BINADJUST: WORD = 19; -pub const DC_EMF_COMPLIANT: WORD = 20; -pub const DC_DATATYPE_PRODUCED: WORD = 21; -pub const DC_COLLATE: WORD = 22; -pub const DC_MANUFACTURER: WORD = 23; -pub const DC_MODEL: WORD = 24; -pub const DC_PERSONALITY: WORD = 25; -pub const DC_PRINTRATE: WORD = 26; -pub const DC_PRINTRATEUNIT: WORD = 27; -pub const PRINTRATEUNIT_PPM: WORD = 1; -pub const PRINTRATEUNIT_CPS: WORD = 2; -pub const PRINTRATEUNIT_LPM: WORD = 3; -pub const PRINTRATEUNIT_IPM: WORD = 4; -pub const DC_PRINTERMEM: WORD = 28; -pub const DC_MEDIAREADY: WORD = 29; -pub const DC_STAPLE: WORD = 30; -pub const DC_PRINTRATEPPM: WORD = 31; -pub const DC_COLORDEVICE: WORD = 32; -pub const DC_NUP: WORD = 33; -pub const DC_MEDIATYPENAMES: WORD = 34; -pub const DC_MEDIATYPES: WORD = 35; -pub const DCTT_BITMAP: DWORD = 0x0000001; -pub const DCTT_DOWNLOAD: DWORD = 0x0000002; -pub const DCTT_SUBDEV: DWORD = 0x0000004; -pub const DCTT_DOWNLOAD_OUTLINE: DWORD = 0x0000008; -pub const DCBA_FACEUPNONE: DWORD = 0x0000; -pub const DCBA_FACEUPCENTER: DWORD = 0x0001; -pub const DCBA_FACEUPLEFT: DWORD = 0x0002; -pub const DCBA_FACEUPRIGHT: DWORD = 0x0003; -pub const DCBA_FACEDOWNNONE: DWORD = 0x0100; -pub const DCBA_FACEDOWNCENTER: DWORD = 0x0101; -pub const DCBA_FACEDOWNLEFT: DWORD = 0x0102; -pub const DCBA_FACEDOWNRIGHT: DWORD = 0x0103; -extern "system" { - pub fn DeviceCapabilitiesA( - pDevice: LPCSTR, - pPort: LPCSTR, - fwCapability: WORD, - pOutput: LPSTR, - pDevMode: *const DEVMODEA, - ) -> c_int; - pub fn DeviceCapabilitiesW( - pDevice: LPCWSTR, - pPort: LPCWSTR, - fwCapability: WORD, - pOutput: LPWSTR, - pDevMode: *const DEVMODEW, - ) -> c_int; - pub fn DrawEscape( - hdc: HDC, - iEscape: c_int, - cjIn: c_int, - lpIn: LPCSTR, - ) -> c_int; - pub fn Ellipse( - hdc: HDC, - left: c_int, - top: c_int, - right: c_int, - bottom: c_int, - ) -> BOOL; - pub fn EnumFontFamiliesExA( - hdc: HDC, - lpLogfont: LPLOGFONTA, - lpProc: FONTENUMPROCA, - lParam: LPARAM, - dwFlags: DWORD, - ) -> c_int; - pub fn EnumFontFamiliesExW( - hdc: HDC, - lpLogfont: LPLOGFONTW, - lpProc: FONTENUMPROCW, - lParam: LPARAM, - dwFlags: DWORD, - ) -> c_int; - pub fn EnumFontFamiliesA( - hdc: HDC, - lpLogfont: LPCSTR, - lpProc: FONTENUMPROCA, - lParam: LPARAM, - ) -> c_int; - pub fn EnumFontFamiliesW( - hdc: HDC, - lpLogfont: LPCWSTR, - lpProc: FONTENUMPROCW, - lParam: LPARAM, - ) -> c_int; - pub fn EnumFontsA( - hdc: HDC, - lpLogfont: LPCSTR, - lpProc: FONTENUMPROCA, - lParam: LPARAM, - ) -> c_int; - pub fn EnumFontsW( - hdc: HDC, - lpLogfont: LPCWSTR, - lpProc: FONTENUMPROCW, - lParam: LPARAM, - ) -> c_int; - pub fn EnumObjects( - hdc: HDC, - nType: c_int, - lpFunc: GOBJENUMPROC, - lParam: LPARAM, - ) -> c_int; - pub fn EqualRgn( - hrgn1: HRGN, - hrgn2: HRGN, - ) -> BOOL; - pub fn Escape( - hdc: HDC, - iEscape: c_int, - cjIn: c_int, - pvIn: LPCSTR, - pvOut: LPVOID, - ) -> c_int; - pub fn ExtEscape( - hdc: HDC, - iEscape: c_int, - cjInput: c_int, - lpInData: LPCSTR, - cjOutput: c_int, - lpOutData: LPSTR, - ) -> c_int; - pub fn ExcludeClipRect( - hdc: HDC, - left: c_int, - top: c_int, - right: c_int, - bottom: c_int, - ) -> c_int; - pub fn ExtCreateRegion( - lpx: *const XFORM, - nCount: DWORD, - lpData: *const RGNDATA, - ) -> HRGN; - pub fn ExtFloodFill( - hdc: HDC, - x: c_int, - y: c_int, - color: COLORREF, - utype: UINT, - ) -> BOOL; - pub fn FillRgn( - hdc: HDC, - hrgn: HRGN, - hbr: HBRUSH, - ) -> BOOL; - pub fn FloodFill( - hdc: HDC, - x: c_int, - y: c_int, - color: COLORREF, - ) -> BOOL; - pub fn FrameRgn( - hdc: HDC, - hrgn: HRGN, - hbr: HBRUSH, - w: c_int, - h: c_int, - ) -> BOOL; - pub fn GetROP2( - hdc: HDC, - ) -> c_int; - pub fn GetAspectRatioFilterEx( - hdc: HDC, - lpsize: LPSIZE, - ) -> BOOL; - pub fn GetBkColor( - hdc: HDC, - ) -> COLORREF; - pub fn GetDCBrushColor( - hdc: HDC, - ) -> COLORREF; - pub fn GetDCPenColor( - hdc: HDC, - ) -> COLORREF; - pub fn GetBkMode( - hdc: HDC, - ) -> c_int; - pub fn GetBitmapBits( - hbit: HBITMAP, - cb: LONG, - lpvBits: LPVOID, - ) -> LONG; - pub fn GetBitmapDimensionEx( - hbit: HBITMAP, - lpsize: LPSIZE, - ) -> BOOL; - pub fn GetBoundsRect( - hdc: HDC, - lprect: LPRECT, - flags: UINT, - ) -> UINT; - pub fn GetBrushOrgEx( - hdc: HDC, - lppt: LPPOINT, - ) -> BOOL; - pub fn GetCharWidthA( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: LPINT, - ) -> BOOL; - pub fn GetCharWidthW( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: LPINT, - ) -> BOOL; - pub fn GetCharWidth32A( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: LPINT, - ) -> BOOL; - pub fn GetCharWidth32W( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: LPINT, - ) -> BOOL; - pub fn GetCharWidthFloatA( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: PFLOAT, - ) -> BOOL; - pub fn GetCharWidthFloatW( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpBuffer: PFLOAT, - ) -> BOOL; - pub fn GetCharABCWidthsA( - hdc: HDC, - wFirst: UINT, - wLast: UINT, - lpABC: LPABC, - ) -> BOOL; - pub fn GetCharABCWidthsW( - hdc: HDC, - wFirst: UINT, - wLast: UINT, - lpABC: LPABC, - ) -> BOOL; - pub fn GetCharABCWidthsFloatA( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpABC: LPABCFLOAT, - ) -> BOOL; - pub fn GetCharABCWidthsFloatW( - hdc: HDC, - iFirst: UINT, - iLast: UINT, - lpABC: LPABCFLOAT, - ) -> BOOL; - pub fn GetClipBox( - hdc: HDC, - lprect: LPRECT, - ) -> c_int; - pub fn GetClipRgn( - hdc: HDC, - hrgn: HRGN, - ) -> c_int; - pub fn GetMetaRgn( - hdc: HDC, - hrgn: HRGN, - ) -> c_int; - pub fn GetCurrentObject( - hdc: HDC, - tp: UINT, - ) -> HGDIOBJ; - pub fn GetCurrentPositionEx( - hdc: HDC, - lppt: LPPOINT, - ) -> BOOL; - pub fn GetDeviceCaps( - hdc: HDC, - nIndex: c_int, - ) -> c_int; - pub fn GetDIBits( - hdc: HDC, - hbm: HBITMAP, - start: UINT, - cLines: UINT, - lpvBits: LPVOID, - lpbmi: LPBITMAPINFO, - usage: UINT, - ) -> c_int; - pub fn GetFontData( - hdc: HDC, - dwTable: DWORD, - dwOffset: DWORD, - pvBuffer: PVOID, - cjBuffer: DWORD, - ) -> DWORD; - pub fn GetGlyphOutlineA( - hdc: HDC, - uChar: UINT, - fuFormat: UINT, - lpgm: LPGLYPHMETRICS, - cjBuffer: DWORD, - pvBuffer: LPVOID, - lpmat2: *const MAT2, - ) -> DWORD; - pub fn GetGlyphOutlineW( - hdc: HDC, - uChar: UINT, - fuFormat: UINT, - lpgm: LPGLYPHMETRICS, - cjBuffer: DWORD, - pvBuffer: LPVOID, - lpmat2: *const MAT2, - ) -> DWORD; - pub fn GetGraphicsMode( - hdc: HDC, - ) -> c_int; - pub fn GetMapMode( - hdc: HDC, - ) -> c_int; - pub fn GetMetaFileBitsEx( - hMF: HMETAFILE, - cbBuffer: UINT, - lpData: LPVOID, - ) -> UINT; - pub fn GetMetaFileA( - lpName: LPCSTR, - ) -> HMETAFILE; - pub fn GetMetaFileW( - lpName: LPCWSTR, - ) -> HMETAFILE; - pub fn GetNearestColor( - hdc: HDC, - color: COLORREF, - ) -> COLORREF; - pub fn GetNearestPaletteIndex( - h: HPALETTE, - color: COLORREF, - ) -> UINT; - pub fn GetObjectType( - h: HGDIOBJ, - ) -> DWORD; - pub fn GetOutlineTextMetricsA( - hdc: HDC, - cjCopy: UINT, - potm: LPOUTLINETEXTMETRICA, - ) -> UINT; - pub fn GetOutlineTextMetricsW( - hdc: HDC, - cjCopy: UINT, - potm: LPOUTLINETEXTMETRICW, - ) -> UINT; - pub fn GetPaletteEntries( - hpal: HPALETTE, - iStart: UINT, - cEntries: UINT, - pPalEntries: LPPALETTEENTRY, - ) -> UINT; - pub fn GetPixel( - hdc: HDC, - x: c_int, - y: c_int, - ) -> COLORREF; - pub fn GetPixelFormat( - hdc: HDC, - ) -> c_int; - pub fn GetPolyFillMode( - hdc: HDC, - ) -> c_int; - pub fn GetRasterizerCaps( - lpraststat: LPRASTERIZER_STATUS, - cjBytes: UINT, - ) -> BOOL; - pub fn GetRandomRgn ( - hdc: HDC, - hrgn: HRGN, - i: INT, - ) -> c_int; - pub fn GetRegionData( - hrgn: HRGN, - nCount: DWORD, - lpRgnData: LPRGNDATA, - ) -> DWORD; - pub fn GetRgnBox( - hrgn: HRGN, - lprc: LPRECT, - ) -> c_int; - pub fn GetStockObject( - i: c_int, - ) -> HGDIOBJ; - pub fn GetStretchBltMode( - hdc: HDC, - ) -> c_int; - pub fn GetSystemPaletteEntries( - hdc: HDC, - iStart: UINT, - cEntries: UINT, - pPalEntries: LPPALETTEENTRY, - ) -> UINT; - pub fn GetSystemPaletteUse( - hdc: HDC, - ) -> UINT; - pub fn GetTextCharacterExtra( - hdc: HDC, - ) -> c_int; - pub fn GetTextAlign( - hdc: HDC, - ) -> UINT; - pub fn GetTextColor( - hdc: HDC, - ) -> COLORREF; - pub fn GetTextExtentPointA( - hdc: HDC, - lpString: LPCSTR, - c: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentPointW( - hdc: HDC, - lpString: LPCWSTR, - c: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentPoint32A( - hdc: HDC, - lpString: LPCSTR, - c: c_int, - psizl: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentPoint32W( - hdc: HDC, - lpString: LPCWSTR, - c: c_int, - psizl: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentExPointA( - hdc: HDC, - lpszString: LPCSTR, - cchString: c_int, - nMaxExtent: c_int, - lpnFit: LPINT, - lpnDx: LPINT, - lpSize: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentExPointW( - hdc: HDC, - lpszString: LPCWSTR, - cchString: c_int, - nMaxExtent: c_int, - lpnFit: LPINT, - lpnDx: LPINT, - lpSize: LPSIZE, - ) -> BOOL; - pub fn GetTextCharset( - hdc: HDC, - ) -> c_int; - pub fn GetTextCharsetInfo( - hdc: HDC, - lpSig: LPFONTSIGNATURE, - dwFlags: DWORD, - ) -> c_int; - pub fn TranslateCharsetInfo( - lpSrc: *const DWORD, - lpCs: LPCHARSETINFO, - dwFlags: DWORD, - ) -> BOOL; - pub fn GetFontLanguageInfo( - hdc: HDC, - ) -> DWORD; - pub fn GetCharacterPlacementA( - hdc: HDC, - lpString: LPCSTR, - nCount: c_int, - nMexExtent: c_int, - lpResults: LPGCP_RESULTSA, - dwFlags: DWORD, - ) -> DWORD; - pub fn GetCharacterPlacementW( - hdc: HDC, - lpString: LPCWSTR, - nCount: c_int, - nMexExtent: c_int, - lpResults: LPGCP_RESULTSW, - dwFlags: DWORD, - ) -> DWORD; -} -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 const GS_8BIT_INDICES: DWORD = 0x00000001; -pub const GGI_MARK_NONEXISTING_GLYPHS: DWORD = 0x0001; -extern "system" { - pub fn GetFontUnicodeRanges( - hdc: HDC, - lpgs: LPGLYPHSET, - ) -> DWORD; - pub fn GetGlyphIndicesA( - hdc: HDC, - lpstr: LPCSTR, - c: c_int, - pgi: LPWORD, - fl: DWORD, - ) -> DWORD; - pub fn GetGlyphIndicesW( - hdc: HDC, - lpstr: LPCWSTR, - c: c_int, - pgi: LPWORD, - fl: DWORD, - ) -> DWORD; - pub fn GetTextExtentPointI( - hdc: HDC, - pgiIn: LPWORD, - cgi: c_int, - psize: LPSIZE, - ) -> BOOL; - pub fn GetTextExtentExPointI( - hdc: HDC, - lpwszString: LPWORD, - cwchString: c_int, - nMaxExtent: c_int, - lpnFit: LPINT, - lpnDx: LPINT, - lpSize: LPSIZE, - ) -> BOOL; - pub fn GetCharWidthI( - hdc: HDC, - giFirst: UINT, - cgi: UINT, - pgi: LPWORD, - piWidths: LPINT, - ) -> BOOL; - pub fn GetCharABCWidthsI( - hdc: HDC, - giFirst: UINT, - cgi: UINT, - pgi: LPWORD, - pabc: LPABC, - ) -> BOOL; -} -pub const STAMP_DESIGNVECTOR: DWORD = 0x8000000 + 0x64 + (0x76 << 8); -pub const STAMP_AXESLIST: DWORD = 0x8000000 + 0x61 + (0x6c << 8); -pub const STAMP_TRUETYPE_VARIATION: DWORD = 0x8000000 + 0x74 + (0x76 << 8); -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; -extern "system" { - pub fn AddFontResourceExA( - lpszFilename: LPCSTR, - fl: DWORD, - pdv: PVOID, - ) -> c_int; - pub fn AddFontResourceExW( - lpszFilename: LPCWSTR, - fl: DWORD, - pdv: PVOID, - ) -> c_int; - pub fn RemoveFontResourceExA( - name: LPCSTR, - fl: DWORD, - pdv: PVOID, - ) -> BOOL; - pub fn RemoveFontResourceExW( - name: LPCWSTR, - fl: DWORD, - pdv: PVOID, - ) -> BOOL; - pub fn AddFontMemResourceEx( - pbFont: PVOID, - cbSize: DWORD, - pdv: PVOID, - pcFonts: *mut DWORD, - ) -> HANDLE; - pub fn RemoveFontMemResourceEx( - h: HANDLE, - ) -> BOOL; -} -pub const FR_PRIVATE: DWORD = 0x10; -pub const FR_NOT_ENUM: DWORD = 0x20; -pub const MM_MAX_AXES_NAMELEN: usize = 16; -STRUCT!{struct AXISINFOA { - axMinValue: LONG, - axMaxValue: LONG, - axAxisName: [BYTE; MM_MAX_AXES_NAMELEN], -}} -pub type PAXISINFOA = *mut AXISINFOA; -pub type LPAXISINFOA = *mut AXISINFOA; -STRUCT!{struct AXISINFOW { - axMinValue: LONG, - axMaxValue: LONG, - axAxisName: [WCHAR; MM_MAX_AXES_NAMELEN], -}} -pub type PAXISINFOW = *mut AXISINFOW; -pub type LPAXISINFOW = *mut AXISINFOW; -STRUCT!{struct AXESLISTA { - axlReserved: DWORD, - axlNumAxes: DWORD, - axlAxisInfo: [AXISINFOA; MM_MAX_AXES_NAMELEN], -}} -pub type PAXESLISTA = *mut AXESLISTA; -pub type LPAXESLISTA = *mut AXESLISTA; -STRUCT!{struct AXESLISTW { - axlReserved: DWORD, - axlNumAxes: DWORD, - axlAxisInfo: [AXISINFOW; MM_MAX_AXES_NAMELEN], -}} -pub type PAXESLISTW = *mut AXESLISTW; -pub type LPAXESLISTW = *mut AXESLISTW; -STRUCT!{struct ENUMLOGFONTEXDVA { - elfEnumLogfontEx: ENUMLOGFONTEXA, - elfDesignVector: DESIGNVECTOR, -}} -pub type PENUMLOGFONTEXDVA = *mut ENUMLOGFONTEXDVA; -pub type LPENUMLOGFONTEXDVA = *mut ENUMLOGFONTEXDVA; -STRUCT!{struct ENUMLOGFONTEXDVW { - elfEnumLogfontEx: ENUMLOGFONTEXW, - elfDesignVector: DESIGNVECTOR, -}} -pub type PENUMLOGFONTEXDVW = *mut ENUMLOGFONTEXDVW; -pub type LPENUMLOGFONTEXDVW = *mut ENUMLOGFONTEXDVW; -extern "system" { - pub fn CreateFontIndirectExA( - penumlfex: *const ENUMLOGFONTEXDVA, - ) -> HFONT; - pub fn CreateFontIndirectExW( - penumlfex: *const ENUMLOGFONTEXDVW, - ) -> HFONT; -} -STRUCT!{struct ENUMTEXTMETRICA { - etmNewTextMetricEx: NEWTEXTMETRICEXA, - etmAxesList: AXESLISTA, -}} -pub type PENUMTEXTMETRICA = *mut ENUMTEXTMETRICA; -pub type LPENUMTEXTMETRICA = *mut ENUMTEXTMETRICA; -STRUCT!{struct ENUMTEXTMETRICW { - etmNewTextMetricEx: NEWTEXTMETRICEXW, - etmAxesList: AXESLISTW, -}} -pub type PENUMTEXTMETRICW = *mut ENUMTEXTMETRICW; -pub type LPENUMTEXTMETRICW = *mut ENUMTEXTMETRICW; -extern "system" { - pub fn GetViewportExtEx( - hdc: HDC, - lpsize: LPSIZE, - ) -> BOOL; - pub fn GetViewportOrgEx( - hdc: HDC, - lppoint: LPPOINT, - ) -> BOOL; - pub fn GetWindowExtEx( - hdc: HDC, - lpsize: LPSIZE, - ) -> BOOL; - pub fn GetWindowOrgEx( - hdc: HDC, - lppoint: LPPOINT, - ) -> BOOL; - pub fn IntersectClipRect( - hdc: HDC, - left: c_int, - top: c_int, - right: c_int, - bottom: c_int, - ) -> c_int; - pub fn InvertRgn( - hdc: HDC, - hrgn: HRGN, - ) -> BOOL; - pub fn LineDDA( - nXStart: c_int, - nYStart: c_int, - nXEnd: c_int, - nYEnd: c_int, - lpLineFunc: LINEDDAPROC, - lpData: LPARAM, - ) -> BOOL; - pub fn LineTo( - hdc: HDC, - nXEnd: c_int, - nYEnd: c_int, - ) -> BOOL; - pub fn MaskBlt( - hdcDest: HDC, - xDest: c_int, - yDest: c_int, - width: c_int, - height: c_int, - hdcSrc: HDC, - xSrc: c_int, - ySrc: c_int, - hbmMask: HBITMAP, - xMask: c_int, - yMask: c_int, - rop: DWORD, - ) -> BOOL; - pub fn PlgBlt( - hdcDest: HDC, - lpPoint: *const POINT, - hdcSrc: HDC, - xSrc: c_int, - ySrc: c_int, - width: c_int, - height: c_int, - hbmMask: HBITMAP, - xMask: c_int, - yMask: c_int, - ) -> BOOL; - pub fn OffsetClipRgn( - hdc: HDC, - x: c_int, - y: c_int, - ) -> c_int; - pub fn OffsetRgn( - hrgn: HRGN, - x: c_int, - y: c_int, - ) -> c_int; - pub fn PatBlt( - hdc: HDC, - nXLeft: c_int, - nYLeft: c_int, - nWidth: c_int, - nHeight: c_int, - dwRop: DWORD, - ) -> BOOL; - pub fn Pie( - hdc: HDC, - nLeftRect: c_int, - nTopRect: c_int, - nRightRect: c_int, - nBottomRect: c_int, - nXRadial1: c_int, - nYRadial1: c_int, - nXRadial2: c_int, - nYRadial2: c_int, - ) -> BOOL; - pub fn PlayMetaFile( - hdc: HDC, - hmf: HMETAFILE, - ) -> BOOL; - pub fn PaintRgn( - hdc: HDC, - hrgn: HRGN, - ) -> BOOL; - pub fn PolyPolygon( - hdc: HDC, - lpPoints: *const POINT, - lpPolyCounts: *const INT, - cCount: DWORD, - ) -> BOOL; - pub fn PtInRegion( - hrgn: HRGN, - x: c_int, - y: c_int, - ) -> BOOL; - pub fn PtVisible( - hdc: HDC, - x: c_int, - y: c_int, - ) -> BOOL; - pub fn RectInRegion( - hrgn: HRGN, - lprect: *const RECT, - ) -> BOOL; - pub fn RectVisible( - hdc: HDC, - lprect: *const RECT, - ) -> BOOL; - pub fn Rectangle( - hdc: HDC, - left: c_int, - top: c_int, - right: c_int, - bottom: c_int, - ) -> BOOL; - pub fn RestoreDC( - hdc: HDC, - nSavedDC: c_int, - ) -> BOOL; - pub fn ResetDCA( - hdc: HDC, - lpdm: *const DEVMODEA, - ) -> HDC; - pub fn ResetDCW( - hdc: HDC, - lpdm: *const DEVMODEW, - ) -> HDC; - pub fn RealizePalette( - hdc: HDC, - ) -> UINT; - pub fn RemoveFontResourceA( - lpFileName: LPCSTR, - ) -> BOOL; - pub fn RemoveFontResourceW( - lpFileName: LPCWSTR, - ) -> BOOL; - pub fn RoundRect( - hdc: HDC, - nLeftRect: c_int, - nTopRect: c_int, - nRightRect: c_int, - nBottomRect: c_int, - nWidth: c_int, - nHeight: c_int, - ) -> BOOL; - pub fn ResizePalette( - hpal: HPALETTE, - n: UINT, - ) -> BOOL; - pub fn SaveDC( - hdc: HDC, - ) -> c_int; - pub fn SelectClipRgn( - hdc: HDC, - hrgn: HRGN, - ) -> c_int; - pub fn ExtSelectClipRgn( - hdc: HDC, - hrgn: HRGN, - mode: c_int, - ) -> c_int; - pub fn SetMetaRgn( - hdc: HDC, - ) -> c_int; - pub fn SelectObject( - hdc: HDC, - h: HGDIOBJ, - ) -> HGDIOBJ; - pub fn SelectPalette( - hdc: HDC, - hPal: HPALETTE, - bForceBkgd: BOOL, - ) -> HPALETTE; - pub fn SetBkColor( - hdc: HDC, - color: COLORREF, - ) -> COLORREF; - pub fn SetDCBrushColor( - hdc: HDC, - color: COLORREF, - ) -> COLORREF; - pub fn SetDCPenColor( - hdc: HDC, - color: COLORREF, - ) -> COLORREF; - pub fn SetBkMode( - hdc: HDC, - mode: c_int, - ) -> c_int; - pub fn SetBitmapBits( - hbm: HBITMAP, - cb: DWORD, - pvBits: *const VOID, - ) -> LONG; - pub fn SetBoundsRect( - hdc: HDC, - lprect: *const RECT, - flags: UINT, - ) -> UINT; - pub fn SetDIBits( - hdc: HDC, - hbm: HBITMAP, - start: UINT, - cLines: UINT, - lpBits: *const VOID, - lpbmi: *const BITMAPINFO, - ColorUse: UINT, - ) -> c_int; - pub fn SetDIBitsToDevice( - hdc: HDC, - xDest: c_int, - yDest: c_int, - w: DWORD, - h: DWORD, - xSrc: c_int, - ySrc: c_int, - StartScan: UINT, - cLines: UINT, - lpvBits: *const VOID, - lpbmi: *const BITMAPINFO, - ColorUse: UINT, - ) -> c_int; - pub fn SetMapperFlags( - hdc: HDC, - flags: DWORD, - ) -> DWORD; - pub fn SetGraphicsMode( - hdc: HDC, - iMode: c_int, - ) -> c_int; - pub fn SetMapMode( - hdc: HDC, - mode: c_int, - ) -> c_int; - pub fn SetLayout( - hdc: HDC, - l: DWORD, - ) -> DWORD; - pub fn GetLayout( - hdc: HDC, - ) -> DWORD; - pub fn SetMetaFileBitsEx( - cbBuffer: UINT, - lpData: *const BYTE, - ) -> HMETAFILE; - pub fn SetPaletteEntries( - hpal: HPALETTE, - iStart: UINT, - cEntries: UINT, - pPalEntries: *const PALETTEENTRY, - ) -> UINT; - pub fn SetPixel( - hdc: HDC, - x: c_int, - y: c_int, - color: COLORREF, - ) -> COLORREF; - pub fn SetPixelV( - hdc: HDC, - x: c_int, - y: c_int, - color: COLORREF, - ) -> BOOL; - pub fn SetPixelFormat( - hdc: HDC, - iPixelFormat: c_int, - ppfd: *const PIXELFORMATDESCRIPTOR, - ) -> BOOL; - pub fn SetPolyFillMode( - hdc: HDC, - iPolyFillMode: c_int, - ) -> c_int; - pub fn StretchBlt( - hdcDest: HDC, - xDest: c_int, - yDest: c_int, - wDest: c_int, - hDest: c_int, - hdcSrc: HDC, - xSrc: c_int, - ySrc: c_int, - wSrc: c_int, - hSrc: c_int, - rop: DWORD, - ) -> BOOL; - pub fn SetRectRgn( - hrgn: HRGN, - left: c_int, - top: c_int, - right: c_int, - bottom: c_int, - ) -> BOOL; - pub fn StretchDIBits( - hdc: HDC, - XDest: c_int, - YDest: c_int, - nDestWidth: c_int, - nDestHeight: c_int, - XSrc: c_int, - YSrc: c_int, - nSrcWidth: c_int, - nSrcHeight: c_int, - lpBits: *const VOID, - lpBitsInfo: *const BITMAPINFO, - iUsage: UINT, - dwRop: DWORD, - ) -> c_int; - pub fn SetROP2( - hdc: HDC, - rop2: c_int, - ) -> c_int; - pub fn SetStretchBltMode( - hdc: HDC, - mode: c_int, - ) -> c_int; - pub fn SetSystemPaletteUse( - hdc: HDC, - uuse: UINT, - ) -> UINT; - pub fn SetTextCharacterExtra( - hdc: HDC, - extra: c_int, - ) -> c_int; - pub fn SetTextColor( - hdc: HDC, - color: COLORREF, - ) -> COLORREF; - pub fn SetTextAlign( - hdc: HDC, - align: UINT, - ) -> UINT; - pub fn SetTextJustification( - hdc: HDC, - extra: c_int, - count: c_int, - ) -> BOOL; - pub fn UpdateColors( - hdc: HDC, - ) -> BOOL; -} -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; -STRUCT!{struct BLENDFUNCTION { - BlendOp: BYTE, - BlendFlags: BYTE, - SourceConstantAlpha: BYTE, - AlphaFormat: BYTE, -}} -pub type PBLENDFUNCTION = *mut BLENDFUNCTION; -pub const AC_SRC_OVER: BYTE = 0x00; -pub const AC_SRC_ALPHA: BYTE = 0x01; -extern "system" { - pub fn AlphaBlend( - hdcDest: HDC, - xoriginDest: c_int, - yoriginDest: c_int, - wDest: c_int, - hDest: c_int, - hdcSrc: HDC, - xoriginSrc: c_int, - yoriginSrc: c_int, - wSrc: c_int, - hSrc: c_int, - ftn: BLENDFUNCTION, - ) -> BOOL; - pub fn TransparentBlt( - hdcDest: HDC, - xoriginDest: c_int, - yoriginDest: c_int, - wDest: c_int, - hDest: c_int, - hdcSrc: HDC, - xoriginSrc: c_int, - yoriginSrc: c_int, - wSrc: c_int, - hSrc: c_int, - crTransparent: UINT, - ) -> BOOL; -} -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; -extern "system" { - pub fn GradientFill( - hdc: HDC, - pVertex: PTRIVERTEX, - nVertex: ULONG, - pMesh: PVOID, - nMesh: ULONG, - ulMode: ULONG, - ) -> BOOL; - pub fn GdiAlphaBlend( - hdcDest: HDC, - xoriginDest: c_int, - yoriginDest: c_int, - wDest: c_int, - hDest: c_int, - hdcSrc: HDC, - xoriginSrc: c_int, - yoriginSrc: c_int, - wSrc: c_int, - hSrc: c_int, - ftn: BLENDFUNCTION, - ) -> BOOL; - pub fn GdiTransparentBlt( - hdcDest: HDC, - xoriginDest: c_int, - yoriginDest: c_int, - wDest: c_int, - hDest: c_int, - hdcSrc: HDC, - xoriginSrc: c_int, - yoriginSrc: c_int, - wSrc: c_int, - hSrc: c_int, - crTransparent: UINT, - ) -> BOOL; - pub fn GdiGradientFill( - hdc: HDC, - pVertex: PTRIVERTEX, - nVertex: ULONG, - pMesh: PVOID, - nCount: ULONG, - ulMode: ULONG, - ) -> BOOL; - pub fn PlayMetaFileRecord( - hdc: HDC, - lpHandleTable: LPHANDLETABLE, - lpMR: LPMETARECORD, - noObjs: UINT, - ) -> BOOL; -} -FN!{stdcall MFENUMPROC( - hdc: HDC, - lpht: *mut HANDLETABLE, - lpMR: *mut METARECORD, - nObj: c_int, - param: LPARAM, -) -> c_int} -extern "system" { - pub fn EnumMetaFile( - hdc: HDC, - hmf: HMETAFILE, - mproc: MFENUMPROC, - param: LPARAM, - ) -> BOOL; -} -FN!{stdcall ENHMFENUMPROC( - hdc: HDC, - lpht: *mut HANDLETABLE, - lpmr: *const ENHMETARECORD, - nHandles: c_int, - data: LPARAM, -) -> c_int} -extern "system" { - pub fn CloseEnhMetaFile( - hdc: HDC, - ) -> HENHMETAFILE; - pub fn CopyEnhMetaFileA( - hemfSrc: HENHMETAFILE, - lpszFile: LPCSTR, - ) -> HENHMETAFILE; - pub fn CopyEnhMetaFileW( - hemfSrc: HENHMETAFILE, - lpszFile: LPCWSTR, - ) -> HENHMETAFILE; - pub fn CreateEnhMetaFileA( - hdcRef: HDC, - lpFilename: LPCSTR, - lpRect: *const RECT, - lpDescription: LPCSTR, - ) -> HDC; - pub fn CreateEnhMetaFileW( - hdcRef: HDC, - lpFilename: LPCWSTR, - lpRect: *const RECT, - lpDescription: LPCWSTR, - ) -> HDC; - pub fn DeleteEnhMetaFile( - hmf: HENHMETAFILE, - ) -> BOOL; - pub fn EnumEnhMetaFile( - hdc: HDC, - hmf: HENHMETAFILE, - lpProc: ENHMFENUMPROC, - param: LPVOID, - lpRect: *const RECT, - ) -> BOOL; - pub fn GetEnhMetaFileA( - lpName: LPCSTR, - ) -> HENHMETAFILE; - pub fn GetEnhMetaFileW( - lpName: LPCWSTR, - ) -> HENHMETAFILE; - pub fn GetEnhMetaFileBits( - hEMF: HENHMETAFILE, - nSize: UINT, - lpData: LPBYTE, - ) -> UINT; - pub fn GetEnhMetaFileDescriptionA( - hemf: HENHMETAFILE, - cchBuffer: UINT, - lpDescription: LPSTR, - ) -> UINT; - pub fn GetEnhMetaFileDescriptionW( - hemf: HENHMETAFILE, - cchBuffer: UINT, - lpDescription: LPWSTR, - ) -> UINT; - pub fn GetEnhMetaFileHeader( - hemf: HENHMETAFILE, - nSize: UINT, - lpEnhMetaHeader: LPENHMETAHEADER, - ) -> UINT; - pub fn GetEnhMetaFilePaletteEntries( - hemf: HENHMETAFILE, - nNumEntries: UINT, - lpPaletteEntries: LPPALETTEENTRY, - ) -> UINT; - pub fn GetEnhMetaFilePixelFormat( - hemf: HENHMETAFILE, - cbBuffer: UINT, - ppfd: *mut PIXELFORMATDESCRIPTOR, - ) -> UINT; - pub fn GetWinMetaFileBits( - hemf: HENHMETAFILE, - cbData16: UINT, - pData16: LPBYTE, - iMapMode: INT, - hdcRef: HDC, - ) -> UINT; - pub fn PlayEnhMetaFile( - hdc: HDC, - hmf: HENHMETAFILE, - lprect: *const RECT, - ) -> BOOL; - pub fn PlayEnhMetaFileRecord( - hdc: HDC, - pht: LPHANDLETABLE, - pmr: *const ENHMETARECORD, - cht: UINT, - ) -> BOOL; - pub fn SetEnhMetaFileBits( - nSize: UINT, - pb: *const BYTE, - ) -> HENHMETAFILE; - pub fn SetWinMetaFileBits( - nSize: UINT, - lpMeta16Data: *const BYTE, - hdcRef: HDC, - lpMFP: *const METAFILEPICT, - ) -> HENHMETAFILE; - pub fn GdiComment( - hdc: HDC, - nSize: UINT, - lpData: *const BYTE, - ) -> BOOL; - pub fn GetTextMetricsA( - hdc: HDC, - lptm: LPTEXTMETRICA, - ) -> BOOL; - pub fn GetTextMetricsW( - hdc: HDC, - lptm: *mut TEXTMETRICW, - ) -> BOOL; -} -STRUCT!{struct DIBSECTION { - dsBm: BITMAP, - dsBmih: BITMAPINFOHEADER, - dsBitfields: [DWORD; 3], - dshSection: HANDLE, - dsOffset: DWORD, -}} -pub type PDIBSECTION = *mut DIBSECTION; -pub type LPDIBSECTION = *mut DIBSECTION; -extern "system" { - pub fn AngleArc( - hdc: HDC, - X: c_int, - Y: c_int, - dwRadius: DWORD, - eStartAngle: FLOAT, - eSweepAngle: FLOAT, - ) -> BOOL; - pub fn PolyPolyline( - hdc: HDC, - lppt: *const POINT, - lpdwPolyPoints: *const DWORD, - cCount: DWORD, - ) -> BOOL; - pub fn GetWorldTransform( - hdc: HDC, - lpxf: LPXFORM, - ) -> BOOL; - pub fn SetWorldTransform( - hdc: HDC, - lpxf: *const XFORM, - ) -> BOOL; - pub fn ModifyWorldTransform( - hdc: HDC, - lpxf: *const XFORM, - mode: DWORD, - ) -> BOOL; - pub fn CombineTransform( - lpxformResult: LPXFORM, - lpxform1: *const XFORM, - lpxform2: *const XFORM, - ) -> BOOL; -} -#[inline] -pub fn GDI_WIDTHBYTES(bits: DWORD) -> DWORD { - ((bits + 31) & !31) / 8 -} -#[inline] -pub fn GDI_DIBWIDTHBYTES(bi: &BITMAPINFOHEADER) -> DWORD { - GDI_WIDTHBYTES((bi.biWidth as DWORD) * (bi.biBitCount as DWORD)) -} -#[inline] -pub fn GDI__DIBSIZE(bi: &BITMAPINFOHEADER) -> DWORD { - GDI_DIBWIDTHBYTES(bi) * bi.biHeight as DWORD -} -#[inline] -pub fn GDI_DIBSIZE(bi: &BITMAPINFOHEADER) -> DWORD { - if bi.biHeight < 0 { - GDI__DIBSIZE(bi) * -1i32 as u32 - } else { - GDI__DIBSIZE(bi) - } -} -extern "system" { - pub fn CreateDIBSection( - hdc: HDC, - lpbmi: *const BITMAPINFO, - usage: UINT, - ppvBits: *mut *mut c_void, - hSection: HANDLE, - offset: DWORD, - ) -> HBITMAP; - pub fn GetDIBColorTable( - hdc: HDC, - iStart: UINT, - cEntries: UINT, - prgbq: *mut RGBQUAD, - ) -> UINT; - pub fn SetDIBColorTable( - hdc: HDC, - iStart: UINT, - cEntries: UINT, - prgbq: *const RGBQUAD, - ) -> UINT; -} -pub const CA_NEGATIVE: WORD = 0x0001; -pub const CA_LOG_FILTER: WORD = 0x0002; -pub const ILLUMINANT_DEVICE_DEFAULT: WORD = 0; -pub const ILLUMINANT_A: WORD = 1; -pub const ILLUMINANT_B: WORD = 2; -pub const ILLUMINANT_C: WORD = 3; -pub const ILLUMINANT_D50: WORD = 4; -pub const ILLUMINANT_D55: WORD = 5; -pub const ILLUMINANT_D65: WORD = 6; -pub const ILLUMINANT_D75: WORD = 7; -pub const ILLUMINANT_F2: WORD = 8; -pub const ILLUMINANT_MAX_INDEX: WORD = ILLUMINANT_F2; -pub const ILLUMINANT_TUNGSTEN: WORD = ILLUMINANT_A; -pub const ILLUMINANT_DAYLIGHT: WORD = ILLUMINANT_C; -pub const ILLUMINANT_FLUORESCENT: WORD = ILLUMINANT_F2; -pub const ILLUMINANT_NTSC: WORD = ILLUMINANT_C; -pub const RGB_GAMMA_MIN: WORD = 0o2500; // FIXME It is octal in the headers but are the headers actually right? -pub const RGB_GAMMA_MAX: WORD = 65000; -pub const REFERENCE_WHITE_MIN: WORD = 6000; -pub const REFERENCE_WHITE_MAX: WORD = 10000; -pub const REFERENCE_BLACK_MIN: WORD = 0; -pub const REFERENCE_BLACK_MAX: WORD = 4000; -pub const COLOR_ADJ_MIN: SHORT = -100; -pub const COLOR_ADJ_MAX: SHORT = 100; -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; -extern "system" { - pub fn SetColorAdjustment( - hdc: HDC, - lpca: *const COLORADJUSTMENT, - ) -> BOOL; - pub fn GetColorAdjustment( - hdc: HDC, - lpca: LPCOLORADJUSTMENT, - ) -> BOOL; - pub fn CreateHalftonePalette( - hdc: HDC, - ) -> HPALETTE; -} -FN!{stdcall ABORTPROC( - 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 const DI_APPBANDING: DWORD = 0x00000001; -pub const DI_ROPS_READ_DESTINATION: DWORD = 0x00000002; -extern "system" { - pub fn StartDocA( - hdc: HDC, - lpdi: *const DOCINFOA, - ) -> c_int; - pub fn StartDocW( - hdc: HDC, - lpdi: *const DOCINFOW, - ) -> c_int; - pub fn EndDoc( - hdc: HDC, - ) -> c_int; - pub fn StartPage( - hdc: HDC, - ) -> c_int; - pub fn EndPage( - hdc: HDC, - ) -> c_int; - pub fn AbortDoc( - hdc: HDC, - ) -> c_int; - pub fn SetAbortProc( - hdc: HDC, - aproc: ABORTPROC, - ) -> c_int; - pub fn AbortPath( - hdc: HDC, - ) -> BOOL; - pub fn ArcTo( - hdc: HDC, - nLeftRect: c_int, - nTopRect: c_int, - nRightRect: c_int, - nBottomRect: c_int, - nXRadial1: c_int, - nYRadial1: c_int, - nXRadial2: c_int, - nYRadial2: c_int, - ) -> BOOL; - pub fn BeginPath( - hdc: HDC, - ) -> BOOL; - pub fn CloseFigure( - hdc: HDC, - ) -> BOOL; - pub fn EndPath( - hdc: HDC, - ) -> BOOL; - pub fn FillPath( - hdc: HDC, - ) -> BOOL; - pub fn FlattenPath( - hdc: HDC, - ) -> BOOL; - pub fn GetPath( - hdc: HDC, - apt: LPPOINT, - aj: LPBYTE, - cpt: c_int, - ) -> c_int; - pub fn PathToRegion( - hdc: HDC, - ) -> HRGN; - pub fn PolyDraw( - hdc: HDC, - lppt: *const POINT, - lpbTypes: *const BYTE, - cCount: c_int, - ) -> BOOL; - pub fn SelectClipPath( - hdc: HDC, - mode: c_int, - ) -> BOOL; - pub fn SetArcDirection( - hdc: HDC, - ArcDirection: c_int, - ) -> c_int; - pub fn SetMiterLimit( - hdc: HDC, - limit: FLOAT, - old: PFLOAT, - ) -> BOOL; - pub fn StrokeAndFillPath( - hdc: HDC, - ) -> BOOL; - pub fn StrokePath( - hdc: HDC, - ) -> BOOL; - pub fn WidenPath( - hdc: HDC, - ) -> BOOL; - pub fn ExtCreatePen( - iPenStyle: DWORD, - cWidth: DWORD, - plbrush: *const LOGBRUSH, - cStyle: DWORD, - pstyle: *const DWORD, - ) -> HPEN; - pub fn GetMiterLimit( - hdc: HDC, - plimit: PFLOAT, - ) -> BOOL; - pub fn GetArcDirection( - hdc: HDC, - ) -> c_int; - pub fn GetObjectA( - h: HANDLE, - c: c_int, - pv: LPVOID, - ) -> c_int; - pub fn GetObjectW( - h: HANDLE, - c: c_int, - pv: LPVOID, - ) -> c_int; - pub fn MoveToEx( - hdc: HDC, - X: c_int, - Y: c_int, - lpPoint:LPPOINT, - ) -> BOOL; - pub fn TextOutA( - hdc: HDC, - x: c_int, - y: c_int, - lpString: LPCSTR, - c: c_int, - ) -> BOOL; - pub fn TextOutW( - hdc: HDC, - x: c_int, - y: c_int, - lpString: LPCWSTR, - c: c_int, - ) -> BOOL; - pub fn ExtTextOutA( - hdc: HDC, - x: c_int, - y: c_int, - options: UINT, - lprect: *const RECT, - lpString: LPCSTR, - c: UINT, - lpDx: *const INT, - ) -> BOOL; - pub fn ExtTextOutW( - hdc: HDC, - x: c_int, - y: c_int, - options: UINT, - lprect: *const RECT, - lpString: LPCWSTR, - c: UINT, - lpDx: *const INT, - ) -> BOOL; - pub fn PolyTextOutA( - hdc: HDC, - ppt: *const POLYTEXTA, - nstrings: c_int, - ) -> BOOL; - pub fn PolyTextOutW( - hdc: HDC, - ppt: *const POLYTEXTW, - nstrings: c_int, - ) -> BOOL; - pub fn CreatePolygonRgn( - lppt: *const POINT, - cPoints: c_int, - fnPolyFillMode: c_int, - ) -> HRGN; - pub fn DPtoLP( - hdc: HDC, - lppt: *mut POINT, - c: c_int, - ) -> BOOL; - pub fn LPtoDP( - hdc: HDC, - lppt: LPPOINT, - c: c_int, - ) -> BOOL; - pub fn Polygon( - hdc: HDC, - lpPoints: *const POINT, - nCount: c_int, - ) -> BOOL; - pub fn Polyline( - hdc: HDC, - lppt: *const POINT, - cCount: c_int, - ) -> BOOL; - pub fn PolyBezier( - hdc: HDC, - lppt: *const POINT, - cPoints: DWORD, - ) -> BOOL; - pub fn PolyBezierTo( - hdc: HDC, - lppt: *const POINT, - cPoints: DWORD, - ) -> BOOL; - pub fn PolylineTo( - hdc: HDC, - lppt: *const POINT, - cCount: DWORD, - ) -> BOOL; - pub fn SetViewportExtEx( - hdc: HDC, - x: c_int, - y: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn SetViewportOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: *mut POINT, - ) -> BOOL; - pub fn SetWindowExtEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: LPSIZE, - ) -> BOOL; - pub fn SetWindowOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: LPPOINT, - ) -> BOOL; - pub fn OffsetViewportOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: LPPOINT, - ) -> BOOL; - pub fn OffsetWindowOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: LPPOINT, - ) -> BOOL; - pub fn ScaleViewportExtEx( - hdc: HDC,xn: c_int, - dx: c_int, - yn: c_int, - yd: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn ScaleWindowExtEx( - hdc: HDC, - xn: c_int, - xd: c_int, - yn: c_int, - yd: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn SetBitmapDimensionEx( - hbm: HBITMAP, - w: c_int, - h: c_int, - lpsz: LPSIZE, - ) -> BOOL; - pub fn SetBrushOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - lppt: LPPOINT, - ) -> BOOL; - pub fn GetTextFaceA( - hdc: HDC, - c: c_int, - lpName: LPSTR, - ) -> c_int; - pub fn GetTextFaceW( - hdc: HDC, - c: c_int, - lpName: LPWSTR, - ) -> c_int; -} -STRUCT!{struct KERNINGPAIR { - wFirst: WORD, - wSecond: WORD, - iKernAmount: c_int, -}} -pub type LPKERNINGPAIR = *mut KERNINGPAIR; -extern "system" { - pub fn GetKerningPairsA( - hdc: HDC, - nPairs: DWORD, - lpKernPair: LPKERNINGPAIR, - ) -> DWORD; - pub fn GetKerningPairsW( - hdc: HDC, - nPairs: DWORD, - lpKernPair: LPKERNINGPAIR, - ) -> DWORD; - pub fn GetDCOrgEx( - hdc: HDC, - lppt: LPPOINT, - ) -> BOOL; - pub fn FixBrushOrgEx( - hdc: HDC, - x: c_int, - y: c_int, - ptl: LPPOINT, - ) -> BOOL; - pub fn UnrealizeObject( - h: HGDIOBJ, - ) -> BOOL; - pub fn GdiFlush() -> BOOL; - pub fn GdiSetBatchLimit( - dw: DWORD, - ) -> DWORD; - pub fn GdiGetBatchLimit() -> DWORD; -} -pub const ICM_OFF: c_int = 1; -pub const ICM_ON: c_int = 2; -pub const ICM_QUERY: c_int = 3; -pub const ICM_DONE_OUTSIDEDC: c_int = 4; -FN!{stdcall ICMENUMPROCA( - LPSTR, - LPARAM, -) -> c_int} -FN!{stdcall ICMENUMPROCW( - LPWSTR, - LPARAM, -) -> c_int} -extern "system" { - pub fn SetICMMode( - hdc: HDC, - mode: c_int, - ) -> c_int; - pub fn CheckColorsInGamut( - hDC: HDC, - lpRGBTriples: LPVOID, - lpBuffer: LPVOID, - nCount: UINT, - ) -> BOOL; - pub fn GetColorSpace( - hdc: HDC, - ) -> HCOLORSPACE; - pub fn GetLogColorSpaceA( - hColorSpace: HCOLORSPACE, - lpBuffer: LPLOGCOLORSPACEA, - nSize: DWORD, - ) -> BOOL; - pub fn GetLogColorSpaceW( - hColorSpace: HCOLORSPACE, - lpBuffer: LPLOGCOLORSPACEW, - nSize: DWORD, - ) -> BOOL; - pub fn CreateColorSpaceA( - lpLogColorSpace: LPLOGCOLORSPACEA, - ) -> HCOLORSPACE; - pub fn CreateColorSpaceW( - lpLogColorSpace: LPLOGCOLORSPACEW, - ) -> HCOLORSPACE; - pub fn SetColorSpace( - hdc: HDC, - hcs: HCOLORSPACE, - ) -> HCOLORSPACE; - pub fn DeleteColorSpace( - hcs: HCOLORSPACE, - ) -> BOOL; - pub fn GetICMProfileA( - hdc: HDC, - pBufSize: LPDWORD, - pszFilename: LPSTR, - ) -> BOOL; - pub fn GetICMProfileW( - hdc: HDC, - pBufSize: LPDWORD, - pszFilename: LPWSTR, - ) -> BOOL; - pub fn SetICMProfileA( - hdc: HDC, - lpFileName: LPSTR, - ) -> BOOL; - pub fn SetICMProfileW( - hdc: HDC, - lpFileName: LPWSTR, - ) -> BOOL; - pub fn GetDeviceGammaRamp( - hdc: HDC, - lpRamp: LPVOID, - ) -> BOOL; - pub fn SetDeviceGammaRamp( - hdc: HDC, - lpRamp: LPVOID, - ) -> BOOL; - pub fn ColorMatchToTarget( - hDC: HDC, - hdcTarget: HDC, - uiAction: UINT, - ) -> BOOL; - pub fn EnumICMProfilesA( - hdc: HDC, - iproc: ICMENUMPROCA, - param: LPARAM, - ) -> c_int; - pub fn EnumICMProfilesW( - hdc: HDC, - iproc: ICMENUMPROCW, - param: LPARAM, - ) -> c_int; - pub fn UpdateICMRegKeyA( - reserved: DWORD, - lpszCMID: LPSTR, - lpszFileName: LPSTR, - command: UINT, - ) -> BOOL; - pub fn UpdateICMRegKeyW( - reserved: DWORD, - lpszCMID: LPWSTR, - lpszFileName: LPWSTR, - command: UINT, - ) -> BOOL; - pub fn ColorCorrectPalette( - hDC: HDC, - hPalette: HPALETTE, - dwFirstEntry: DWORD, - dwNumOfEntries: DWORD, - ) -> BOOL; -} -pub const ENHMETA_SIGNATURE: DWORD = 0x464D4520; -pub const ENHMETA_STOCK_OBJECT: DWORD = 0x80000000; -pub const EMR_HEADER: DWORD = 1; -pub const EMR_POLYBEZIER: DWORD = 2; -pub const EMR_POLYGON: DWORD = 3; -pub const EMR_POLYLINE: DWORD = 4; -pub const EMR_POLYBEZIERTO: DWORD = 5; -pub const EMR_POLYLINETO: DWORD = 6; -pub const EMR_POLYPOLYLINE: DWORD = 7; -pub const EMR_POLYPOLYGON: DWORD = 8; -pub const EMR_SETWINDOWEXTEX: DWORD = 9; -pub const EMR_SETWINDOWORGEX: DWORD = 10; -pub const EMR_SETVIEWPORTEXTEX: DWORD = 11; -pub const EMR_SETVIEWPORTORGEX: DWORD = 12; -pub const EMR_SETBRUSHORGEX: DWORD = 13; -pub const EMR_EOF: DWORD = 14; -pub const EMR_SETPIXELV: DWORD = 15; -pub const EMR_SETMAPPERFLAGS: DWORD = 16; -pub const EMR_SETMAPMODE: DWORD = 17; -pub const EMR_SETBKMODE: DWORD = 18; -pub const EMR_SETPOLYFILLMODE: DWORD = 19; -pub const EMR_SETROP2: DWORD = 20; -pub const EMR_SETSTRETCHBLTMODE: DWORD = 21; -pub const EMR_SETTEXTALIGN: DWORD = 22; -pub const EMR_SETCOLORADJUSTMENT: DWORD = 23; -pub const EMR_SETTEXTCOLOR: DWORD = 24; -pub const EMR_SETBKCOLOR: DWORD = 25; -pub const EMR_OFFSETCLIPRGN: DWORD = 26; -pub const EMR_MOVETOEX: DWORD = 27; -pub const EMR_SETMETARGN: DWORD = 28; -pub const EMR_EXCLUDECLIPRECT: DWORD = 29; -pub const EMR_INTERSECTCLIPRECT: DWORD = 30; -pub const EMR_SCALEVIEWPORTEXTEX: DWORD = 31; -pub const EMR_SCALEWINDOWEXTEX: DWORD = 32; -pub const EMR_SAVEDC: DWORD = 33; -pub const EMR_RESTOREDC: DWORD = 34; -pub const EMR_SETWORLDTRANSFORM: DWORD = 35; -pub const EMR_MODIFYWORLDTRANSFORM: DWORD = 36; -pub const EMR_SELECTOBJECT: DWORD = 37; -pub const EMR_CREATEPEN: DWORD = 38; -pub const EMR_CREATEBRUSHINDIRECT: DWORD = 39; -pub const EMR_DELETEOBJECT: DWORD = 40; -pub const EMR_ANGLEARC: DWORD = 41; -pub const EMR_ELLIPSE: DWORD = 42; -pub const EMR_RECTANGLE: DWORD = 43; -pub const EMR_ROUNDRECT: DWORD = 44; -pub const EMR_ARC: DWORD = 45; -pub const EMR_CHORD: DWORD = 46; -pub const EMR_PIE: DWORD = 47; -pub const EMR_SELECTPALETTE: DWORD = 48; -pub const EMR_CREATEPALETTE: DWORD = 49; -pub const EMR_SETPALETTEENTRIES: DWORD = 50; -pub const EMR_RESIZEPALETTE: DWORD = 51; -pub const EMR_REALIZEPALETTE: DWORD = 52; -pub const EMR_EXTFLOODFILL: DWORD = 53; -pub const EMR_LINETO: DWORD = 54; -pub const EMR_ARCTO: DWORD = 55; -pub const EMR_POLYDRAW: DWORD = 56; -pub const EMR_SETARCDIRECTION: DWORD = 57; -pub const EMR_SETMITERLIMIT: DWORD = 58; -pub const EMR_BEGINPATH: DWORD = 59; -pub const EMR_ENDPATH: DWORD = 60; -pub const EMR_CLOSEFIGURE: DWORD = 61; -pub const EMR_FILLPATH: DWORD = 62; -pub const EMR_STROKEANDFILLPATH: DWORD = 63; -pub const EMR_STROKEPATH: DWORD = 64; -pub const EMR_FLATTENPATH: DWORD = 65; -pub const EMR_WIDENPATH: DWORD = 66; -pub const EMR_SELECTCLIPPATH: DWORD = 67; -pub const EMR_ABORTPATH: DWORD = 68; -pub const EMR_GDICOMMENT: DWORD = 70; -pub const EMR_FILLRGN: DWORD = 71; -pub const EMR_FRAMERGN: DWORD = 72; -pub const EMR_INVERTRGN: DWORD = 73; -pub const EMR_PAINTRGN: DWORD = 74; -pub const EMR_EXTSELECTCLIPRGN: DWORD = 75; -pub const EMR_BITBLT: DWORD = 76; -pub const EMR_STRETCHBLT: DWORD = 77; -pub const EMR_MASKBLT: DWORD = 78; -pub const EMR_PLGBLT: DWORD = 79; -pub const EMR_SETDIBITSTODEVICE: DWORD = 80; -pub const EMR_STRETCHDIBITS: DWORD = 81; -pub const EMR_EXTCREATEFONTINDIRECTW: DWORD = 82; -pub const EMR_EXTTEXTOUTA: DWORD = 83; -pub const EMR_EXTTEXTOUTW: DWORD = 84; -pub const EMR_POLYBEZIER16: DWORD = 85; -pub const EMR_POLYGON16: DWORD = 86; -pub const EMR_POLYLINE16: DWORD = 87; -pub const EMR_POLYBEZIERTO16: DWORD = 88; -pub const EMR_POLYLINETO16: DWORD = 89; -pub const EMR_POLYPOLYLINE16: DWORD = 90; -pub const EMR_POLYPOLYGON16: DWORD = 91; -pub const EMR_POLYDRAW16: DWORD = 92; -pub const EMR_CREATEMONOBRUSH: DWORD = 93; -pub const EMR_CREATEDIBPATTERNBRUSHPT: DWORD = 94; -pub const EMR_EXTCREATEPEN: DWORD = 95; -pub const EMR_POLYTEXTOUTA: DWORD = 96; -pub const EMR_POLYTEXTOUTW: DWORD = 97; -pub const EMR_SETICMMODE: DWORD = 98; -pub const EMR_CREATECOLORSPACE: DWORD = 99; -pub const EMR_SETCOLORSPACE: DWORD = 100; -pub const EMR_DELETECOLORSPACE: DWORD = 101; -pub const EMR_GLSRECORD: DWORD = 102; -pub const EMR_GLSBOUNDEDRECORD: DWORD = 103; -pub const EMR_PIXELFORMAT: DWORD = 104; -pub const EMR_RESERVED_105: DWORD = 105; -pub const EMR_RESERVED_106: DWORD = 106; -pub const EMR_RESERVED_107: DWORD = 107; -pub const EMR_RESERVED_108: DWORD = 108; -pub const EMR_RESERVED_109: DWORD = 109; -pub const EMR_RESERVED_110: DWORD = 110; -pub const EMR_COLORCORRECTPALETTE: DWORD = 111; -pub const EMR_SETICMPROFILEA: DWORD = 112; -pub const EMR_SETICMPROFILEW: DWORD = 113; -pub const EMR_ALPHABLEND: DWORD = 114; -pub const EMR_SETLAYOUT: DWORD = 115; -pub const EMR_TRANSPARENTBLT: DWORD = 116; -pub const EMR_RESERVED_117: DWORD = 117; -pub const EMR_GRADIENTFILL: DWORD = 118; -pub const EMR_RESERVED_119: DWORD = 119; -pub const EMR_RESERVED_120: DWORD = 120; -pub const EMR_COLORMATCHTOTARGETW: DWORD = 121; -pub const EMR_CREATECOLORSPACEW: DWORD = 122; -pub const EMR_MIN: DWORD = 1; -pub const EMR_MAX: DWORD = 122; -STRUCT!{struct EMR { - iType: DWORD, - nSize: DWORD, -}} -pub type PEMR = *mut EMR; -STRUCT!{struct EMRTEXT { - ptlReference: POINTL, - nChars: DWORD, - offString: DWORD, - fOptions: DWORD, - rcl: RECTL, - offDx: DWORD, -}} -pub type PEMRTEXT = *mut EMRTEXT; -STRUCT!{struct EMRABORTPATH { - emr: EMR, -}} -pub type PEMRABORTPATH = *mut EMRABORTPATH; -pub type EMRBEGINPATH = EMRABORTPATH; -pub type PEMRBEGINPATH = *mut EMRABORTPATH; -pub type EMRENDPATH = EMRABORTPATH; -pub type PEMRENDPATH = *mut EMRABORTPATH; -pub type EMRCLOSEFIGURE = EMRABORTPATH; -pub type PEMRCLOSEFIGURE = *mut EMRABORTPATH; -pub type EMRFLATTENPATH = EMRABORTPATH; -pub type PEMRFLATTENPATH = *mut EMRABORTPATH; -pub type EMRWIDENPATH = EMRABORTPATH; -pub type PEMRWIDENPATH = *mut EMRABORTPATH; -pub type EMRSETMETARGN = EMRABORTPATH; -pub type PEMRSETMETARGN = *mut EMRABORTPATH; -pub type EMRSAVEDC = EMRABORTPATH; -pub type PEMRSAVEDC = *mut EMRABORTPATH; -pub type EMRREALIZEPALETTE = EMRABORTPATH; -pub type PEMRREALIZEPALETTE = *mut EMRABORTPATH; -STRUCT!{struct EMRSELECTCLIPPATH { - emr: EMR, - iMode: DWORD, -}} -pub type PEMRSELECTCLIPPATH = *mut EMRSELECTCLIPPATH; -pub type EMRSETBKMODE = EMRSELECTCLIPPATH; -pub type PEMRSETBKMODE = *mut EMRSELECTCLIPPATH; -pub type EMRSETMAPMODE = EMRSELECTCLIPPATH; -pub type PEMRSETMAPMODE = *mut EMRSELECTCLIPPATH; -pub type EMRSETLAYOUT = EMRSELECTCLIPPATH; -pub type PEMRSETLAYOUT = *mut EMRSELECTCLIPPATH; -pub type EMRSETPOLYFILLMODE = EMRSELECTCLIPPATH; -pub type PEMRSETPOLYFILLMODE = *mut EMRSELECTCLIPPATH; -pub type EMRSETROP2 = EMRSELECTCLIPPATH; -pub type PEMRSETROP2 = *mut EMRSELECTCLIPPATH; -pub type EMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH; -pub type PEMRSETSTRETCHBLTMODE = *mut EMRSELECTCLIPPATH; -pub type EMRSETICMMODE = EMRSELECTCLIPPATH; -pub type PEMRSETICMMODE = *mut EMRSELECTCLIPPATH; -pub type EMRSETTEXTALIGN = EMRSELECTCLIPPATH; -pub type PEMRSETTEXTALIGN = *mut EMRSELECTCLIPPATH; -STRUCT!{struct EMRSETMITERLIMIT { - emr: EMR, - eMiterLimit: FLOAT, -}} -pub type PEMRSETMITERLIMIT = *mut EMRSETMITERLIMIT; -STRUCT!{struct EMRRESTOREDC { - emr: EMR, - iRelative: LONG, -}} -pub type PEMRRESTOREDC = *mut EMRRESTOREDC; -STRUCT!{struct EMRSETARCDIRECTION { - emr: EMR, - iArcDirection: DWORD, -}} -pub type PEMRSETARCDIRECTION = *mut EMRSETARCDIRECTION; -STRUCT!{struct EMRSETMAPPERFLAGS { - emr: EMR, - dwFlags: DWORD, -}} -pub type PEMRSETMAPPERFLAGS = *mut EMRSETMAPPERFLAGS; -STRUCT!{struct EMRSETBKCOLOR { - emr: EMR, - crColor: COLORREF, -}} -pub type PEMRSETBKCOLOR = *mut EMRSETBKCOLOR; -pub type EMRSETTEXTCOLOR = EMRSETBKCOLOR; -pub type PEMRSETTEXTCOLOR = *mut EMRSETBKCOLOR; -STRUCT!{struct EMRSELECTOBJECT { - emr: EMR, - ihObject: DWORD, -}} -pub type PEMRSELECTOBJECT = *mut EMRSELECTOBJECT; -pub type EMRDELETEOBJECT = EMRSELECTOBJECT; -pub type PEMRDELETEOBJECT = *mut EMRSELECTOBJECT; -STRUCT!{struct EMRSELECTPALETTE { - emr: EMR, - ihPal: DWORD, -}} -pub type PEMRSELECTPALETTE = *mut EMRSELECTPALETTE; -STRUCT!{struct EMRRESIZEPALETTE { - emr: EMR, - ihPal: DWORD, - cEntries: DWORD, -}} -pub type PEMRRESIZEPALETTE = *mut EMRRESIZEPALETTE; -STRUCT!{struct EMRSETPALETTEENTRIES { - emr: EMR, - ihPal: DWORD, - iStart: DWORD, - cEntries: DWORD, - aPalEntries: [PALETTEENTRY; 1], -}} -pub type PEMRSETPALETTEENTRIES = *mut EMRSETPALETTEENTRIES; -STRUCT!{struct EMRSETCOLORADJUSTMENT { - emr: EMR, - ColorAdjustment: COLORADJUSTMENT, -}} -pub type PEMRSETCOLORADJUSTMENT = *mut EMRSETCOLORADJUSTMENT; -STRUCT!{struct EMRGDICOMMENT { - emr: EMR, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRGDICOMMENT = *mut EMRGDICOMMENT; -STRUCT!{struct EMREOF { - emr: EMR, - nPalEntries: DWORD, - offPalEntries: DWORD, - nSizeLast: DWORD, -}} -pub type PEMREOF = *mut EMREOF; -STRUCT!{struct EMRLINETO { - emr: EMR, - ptl: POINTL, -}} -pub type PEMRLINETO = *mut EMRLINETO; -pub type EMRMOVETOEX = EMRLINETO; -pub type PEMRMOVETOEX = *mut EMRLINETO; -STRUCT!{struct EMROFFSETCLIPRGN { - emr: EMR, - ptlOffset: POINTL, -}} -pub type PEMROFFSETCLIPRGN = *mut EMROFFSETCLIPRGN; -STRUCT!{struct EMRFILLPATH { - emr: EMR, - rclBounds: RECTL, -}} -pub type PEMRFILLPATH = *mut EMRFILLPATH; -pub type EMRSTROKEANDFILLPATH = EMRFILLPATH; -pub type PEMRSTROKEANDFILLPATH = *mut EMRFILLPATH; -pub type EMRSTROKEPATH = EMRFILLPATH; -pub type PEMRSTROKEPATH = *mut EMRFILLPATH; -STRUCT!{struct EMREXCLUDECLIPRECT { - emr: EMR, - rclClip: RECTL, -}} -pub type PEMREXCLUDECLIPRECT = *mut EMREXCLUDECLIPRECT; -pub type EMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT; -pub type PEMRINTERSECTCLIPRECT = *mut EMREXCLUDECLIPRECT; -STRUCT!{struct EMRSETVIEWPORTORGEX { - emr: EMR, - ptlOrigin: POINTL, -}} -pub type PEMRSETVIEWPORTORGEX = *mut EMRSETVIEWPORTORGEX; -pub type EMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX; -pub type PEMRSETWINDOWORGEX = *mut EMRSETVIEWPORTORGEX; -pub type EMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX; -pub type PEMRSETBRUSHORGEX = *mut EMRSETVIEWPORTORGEX; -STRUCT!{struct EMRSETVIEWPORTEXTEX { - emr: EMR, - szlExtent: SIZEL, -}} -pub type PEMRSETVIEWPORTEXTEX = *mut EMRSETVIEWPORTEXTEX; -pub type EMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX; -pub type PEMRSETWINDOWEXTEX = *mut EMRSETVIEWPORTEXTEX; -STRUCT!{struct EMRSCALEVIEWPORTEXTEX { - emr: EMR, - xNum: LONG, - xDenom: LONG, - yNum: LONG, - yDenom: LONG, -}} -pub type PEMRSCALEVIEWPORTEXTEX = *mut EMRSCALEVIEWPORTEXTEX; -pub type EMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX; -pub type PEMRSCALEWINDOWEXTEX = *mut EMRSCALEVIEWPORTEXTEX; -STRUCT!{struct EMRSETWORLDTRANSFORM { - emr: EMR, - xform: XFORM, -}} -pub type PEMRSETWORLDTRANSFORM = *mut EMRSETWORLDTRANSFORM; -STRUCT!{struct EMRMODIFYWORLDTRANSFORM { - emr: EMR, - xform: XFORM, - iMode: DWORD, -}} -pub type PEMRMODIFYWORLDTRANSFORM = *mut EMRMODIFYWORLDTRANSFORM; -STRUCT!{struct EMRSETPIXELV { - emr: EMR, - ptlPixel: POINTL, - crColor: COLORREF, -}} -pub type PEMRSETPIXELV = *mut EMRSETPIXELV; -STRUCT!{struct EMREXTFLOODFILL { - emr: EMR, - ptlStart: POINTL, - crColor: COLORREF, - iMode: DWORD, -}} -pub type PEMREXTFLOODFILL = *mut EMREXTFLOODFILL; -STRUCT!{struct EMRELLIPSE { - emr: EMR, - rclBox: RECTL, -}} -pub type PEMRELLIPSE = *mut EMRELLIPSE; -pub type EMRRECTANGLE = EMRELLIPSE; -pub type PEMRRECTANGLE = *mut EMRELLIPSE; -STRUCT!{struct EMRROUNDRECT { - emr: EMR, - rclBox: RECTL, - szlCorner: SIZEL, -}} -pub type PEMRROUNDRECT = *mut EMRROUNDRECT; -STRUCT!{struct EMRARC { - emr: EMR, - rclBox: RECTL, - ptlStart: POINTL, - ptlEnd: POINTL, -}} -pub type PEMRARC = *mut EMRARC; -pub type EMRARCTO = EMRARC; -pub type PEMRARCTO = *mut EMRARC; -pub type EMRCHORD = EMRARC; -pub type PEMRCHORD = *mut EMRARC; -pub type EMRPIE = EMRARC; -pub type PEMRPIE = *mut EMRARC; -STRUCT!{struct EMRANGLEARC { - emr: EMR, - ptlCenter: POINTL, - nRadius: DWORD, - eStartAngle: FLOAT, - eSweepAngle: FLOAT, -}} -pub type PEMRANGLEARC = *mut EMRANGLEARC; -STRUCT!{struct EMRPOLYLINE { - emr: EMR, - rclBounds: RECTL, - cptl: DWORD, - aptl: [POINTL; 1], -}} -pub type PEMRPOLYLINE = *mut EMRPOLYLINE; -pub type EMRPOLYBEZIER = EMRPOLYLINE; -pub type PEMRPOLYBEZIER = *mut EMRPOLYLINE; -pub type EMRPOLYGON = EMRPOLYLINE; -pub type PEMRPOLYGON = *mut EMRPOLYLINE; -pub type EMRPOLYBEZIERTO = EMRPOLYLINE; -pub type PEMRPOLYBEZIERTO = *mut EMRPOLYLINE; -pub type EMRPOLYLINETO = EMRPOLYLINE; -pub type PEMRPOLYLINETO = *mut EMRPOLYLINE; -STRUCT!{struct EMRPOLYLINE16 { - emr: EMR, - rclBounds: RECTL, - cpts: DWORD, - apts: [POINTS; 1], -}} -pub type PEMRPOLYLINE16 = *mut EMRPOLYLINE16; -pub type EMRPOLYBEZIER16 = EMRPOLYLINE16; -pub type PEMRPOLYBEZIER16 = *mut EMRPOLYLINE16; -pub type EMRPOLYGON16 = EMRPOLYLINE16; -pub type PEMRPOLYGON16 = *mut EMRPOLYLINE16; -pub type EMRPOLYBEZIERTO16 = EMRPOLYLINE16; -pub type PEMRPOLYBEZIERTO16 = *mut EMRPOLYLINE16; -pub type EMRPOLYLINETO16 = EMRPOLYLINE16; -pub type PEMRPOLYLINETO16 = *mut EMRPOLYLINE16; -STRUCT!{struct EMRPOLYDRAW { - emr: EMR, - rclBounds: RECTL, - cptl: DWORD, - aptl: [POINTL; 1], - abTypes: [BYTE; 1], -}} -pub type PEMRPOLYDRAW = *mut EMRPOLYDRAW; -STRUCT!{struct EMRPOLYDRAW16 { - emr: EMR, - rclBounds: RECTL, - cpts: DWORD, - apts: [POINTS; 1], - abTypes: [BYTE; 1], -}} -pub type PEMRPOLYDRAW16 = *mut EMRPOLYDRAW16; -STRUCT!{struct EMRPOLYPOLYLINE { - emr: EMR, - rclBounds: RECTL, - nPolys: DWORD, - cptl: DWORD, - aPolyCounts: [DWORD; 1], - aptl: [POINTL; 1], -}} -pub type PEMRPOLYPOLYLINE = *mut EMRPOLYPOLYLINE; -pub type EMRPOLYPOLYGON = EMRPOLYPOLYLINE; -pub type PEMRPOLYPOLYGON = *mut EMRPOLYPOLYLINE; -STRUCT!{struct EMRPOLYPOLYLINE16 { - emr: EMR, - rclBounds: RECTL, - nPolys: DWORD, - cpts: DWORD, - aPolyCounts: [DWORD; 1], - apts: [POINTS; 1], -}} -pub type PEMRPOLYPOLYLINE16 = *mut EMRPOLYPOLYLINE16; -pub type EMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16; -pub type PEMRPOLYPOLYGON16 = *mut EMRPOLYPOLYLINE16; -STRUCT!{struct EMRINVERTRGN { - emr: EMR, - rclBounds: RECTL, - cbRgnData: DWORD, - RgnData: [BYTE; 1], -}} -pub type PEMRINVERTRGN = *mut EMRINVERTRGN; -pub type EMRPAINTRGN = EMRINVERTRGN; -pub type PEMRPAINTRGN = *mut EMRINVERTRGN; -STRUCT!{struct EMRFILLRGN { - emr: EMR, - rclBounds: RECTL, - cbRgnData: DWORD, - ihBrush: DWORD, - RgnData: [BYTE; 1], -}} -pub type PEMRFILLRGN = *mut EMRFILLRGN; -STRUCT!{struct EMRFRAMERGN { - emr: EMR, - rclBounds: RECTL, - cbRgnData: DWORD, - ihBrush: DWORD, - szlStroke: SIZEL, - RgnData: [BYTE; 1], -}} -pub type PEMRFRAMERGN = *mut EMRFRAMERGN; -STRUCT!{struct EMREXTSELECTCLIPRGN { - emr: EMR, - cbRgnData: DWORD, - iMode: DWORD, - RgnData: [BYTE; 1], -}} -pub type PEMREXTSELECTCLIPRGN = *mut EMREXTSELECTCLIPRGN; -STRUCT!{struct EMREXTTEXTOUTA { - emr: EMR, - rclBounds: RECTL, - iGraphicsMode: DWORD, - exScale: FLOAT, - eyScale: FLOAT, - emrtext: EMRTEXT, -}} -pub type PEMREXTTEXTOUTA = *mut EMREXTTEXTOUTA; -pub type EMREXTTEXTOUTW = EMREXTTEXTOUTA; -pub type PEMREXTTEXTOUTW = *mut EMREXTTEXTOUTA; -STRUCT!{struct EMRPOLYTEXTOUTA { - emr: EMR, - rclBounds: RECTL, - iGraphicsMode: DWORD, - exScale: FLOAT, - eyScale: FLOAT, - cStrings: LONG, - aemrtext: [EMRTEXT; 1], -}} -pub type PEMRPOLYTEXTOUTA = *mut EMRPOLYTEXTOUTA; -pub type EMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA; -pub type PEMRPOLYTEXTOUTW = *mut EMRPOLYTEXTOUTA; -STRUCT!{struct EMRBITBLT { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - cxDest: LONG, - cyDest: LONG, - dwRop: DWORD, - xSrc: LONG, - ySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, -}} -pub type PEMRBITBLT = *mut EMRBITBLT; -STRUCT!{struct EMRSTRETCHBLT { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - cxDest: LONG, - cyDest: LONG, - dwRop: DWORD, - xSrc: LONG, - ySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - cxSrc: LONG, - cySrc: LONG, -}} -pub type PEMRSTRETCHBLT = *mut EMRSTRETCHBLT; -STRUCT!{struct EMRMASKBLT { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - cxDest: LONG, - cyDest: LONG, - dwRop: DWORD, - xSrc: LONG, - ySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - xMask: LONG, - yMask: LONG, - iUsageMask: DWORD, - offBmiMask: DWORD, - cbBmiMask: DWORD, - offBitsMask: DWORD, - cbBitsMask: DWORD, -}} -pub type PEMRMASKBLT = *mut EMRMASKBLT; -STRUCT!{struct EMRPLGBLT { - emr: EMR, - rclBounds: RECTL, - aptlDest: [POINTL; 3], - xSrc: LONG, - ySrc: LONG, - cxSrc: LONG, - cySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - xMask: LONG, - yMask: LONG, - iUsageMask: DWORD, - offBmiMask: DWORD, - cbBmiMask: DWORD, - offBitsMask: DWORD, - cbBitsMask: DWORD, -}} -pub type PEMRPLGBLT = *mut EMRPLGBLT; -STRUCT!{struct EMRSETDIBITSTODEVICE { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - xSrc: LONG, - ySrc: LONG, - cxSrc: LONG, - cySrc: LONG, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - iUsageSrc: DWORD, - iStartScan: DWORD, - cScans: DWORD, -}} -pub type PEMRSETDIBITSTODEVICE = *mut EMRSETDIBITSTODEVICE; -STRUCT!{struct EMRSTRETCHDIBITS { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - xSrc: LONG, - ySrc: LONG, - cxSrc: LONG, - cySrc: LONG, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - iUsageSrc: DWORD, - dwRop: DWORD, - cxDest: LONG, - cyDest: LONG, -}} -pub type PEMRSTRETCHDIBITS = *mut EMRSTRETCHDIBITS; -STRUCT!{struct EMREXTCREATEFONTINDIRECTW { - emr: EMR, - ihFont: DWORD, - elfw: EXTLOGFONTW, -}} -pub type PEMREXTCREATEFONTINDIRECTW = *mut EMREXTCREATEFONTINDIRECTW; -STRUCT!{struct EMRCREATEPALETTE { - emr: EMR, - ihPal: DWORD, - lgpl: LOGPALETTE, -}} -pub type PEMRCREATEPALETTE = *mut EMRCREATEPALETTE; -STRUCT!{struct EMRCREATEPEN { - emr: EMR, - ihPen: DWORD, - lopn: LOGPEN, -}} -pub type PEMRCREATEPEN = *mut EMRCREATEPEN; -STRUCT!{struct EMREXTCREATEPEN { - emr: EMR, - ihPen: DWORD, - offBmi: DWORD, - cbBmi: DWORD, - offBits: DWORD, - cbBits: DWORD, - elp: EXTLOGPEN32, -}} -pub type PEMREXTCREATEPEN = *mut EMREXTCREATEPEN; -STRUCT!{struct EMRCREATEBRUSHINDIRECT { - emr: EMR, - ihBrush: DWORD, - lb: LOGBRUSH32, -}} -pub type PEMRCREATEBRUSHINDIRECT = *mut EMRCREATEBRUSHINDIRECT; -STRUCT!{struct EMRCREATEMONOBRUSH { - emr: EMR, - ihBrush: DWORD, - iUsage: DWORD, - offBmi: DWORD, - cbBmi: DWORD, - offBits: DWORD, - cbBits: DWORD, -}} -pub type PEMRCREATEMONOBRUSH = *mut EMRCREATEMONOBRUSH; -STRUCT!{struct EMRCREATEDIBPATTERNBRUSHPT { - emr: EMR, - ihBrush: DWORD, - iUsage: DWORD, - offBmi: DWORD, - cbBmi: DWORD, - offBits: DWORD, - cbBits: DWORD, -}} -pub type PEMRCREATEDIBPATTERNBRUSHPT = *mut EMRCREATEDIBPATTERNBRUSHPT; -STRUCT!{struct EMRFORMAT { - dSignature: DWORD, - nVersion: DWORD, - cbData: DWORD, - offData: DWORD, -}} -pub type PEMRFORMAT = *mut EMRFORMAT; -STRUCT!{struct EMRGLSRECORD { - emr: EMR, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRGLSRECORD = *mut EMRGLSRECORD; -STRUCT!{struct EMRGLSBOUNDEDRECORD { - emr: EMR, - rclBounds: RECTL, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRGLSBOUNDEDRECORD = *mut EMRGLSBOUNDEDRECORD; -STRUCT!{struct EMRPIXELFORMAT { - emr: EMR, - pfd: PIXELFORMATDESCRIPTOR, -}} -pub type PEMRPIXELFORMAT = *mut EMRPIXELFORMAT; -STRUCT!{struct EMRCREATECOLORSPACE { - emr: EMR, - ihCS: DWORD, - lcs: LOGCOLORSPACEA, -}} -pub type PEMRCREATECOLORSPACE = *mut EMRCREATECOLORSPACE; -STRUCT!{struct EMRSETCOLORSPACE { - emr: EMR, - ihCS: DWORD, -}} -pub type PEMRSETCOLORSPACE = *mut EMRSETCOLORSPACE; -pub type EMRSELECTCOLORSPACE = EMRSETCOLORSPACE; -pub type PEMRSELECTCOLORSPACE = *mut EMRSETCOLORSPACE; -pub type EMRDELETECOLORSPACE = EMRSETCOLORSPACE; -pub type PEMRDELETECOLORSPACE = *mut EMRSETCOLORSPACE; -STRUCT!{struct EMREXTESCAPE { - emr: EMR, - iEscape: INT, - cbEscData: INT, - EscData: [BYTE; 1], -}} -pub type PEMREXTESCAPE = *mut EMREXTESCAPE; -pub type EMRDRAWESCAPE = EMREXTESCAPE; -pub type PEMRDRAWESCAPE = *mut EMREXTESCAPE; -STRUCT!{struct EMRNAMEDESCAPE { - emr: EMR, - iEscape: INT, - cbDriver: INT, - cbEscData: INT, - EscData: [BYTE; 1], -}} -pub type PEMRNAMEDESCAPE = *mut EMRNAMEDESCAPE; -pub const SETICMPROFILE_EMBEDED: DWORD = 0x00000001; -STRUCT!{struct EMRSETICMPROFILE { - emr: EMR, - dwFlags: DWORD, - cbName: DWORD, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRSETICMPROFILE = *mut EMRSETICMPROFILE; -pub type EMRSETICMPROFILEA = EMRSETICMPROFILE; -pub type PEMRSETICMPROFILEA = *mut EMRSETICMPROFILE; -pub type EMRSETICMPROFILEW = EMRSETICMPROFILE; -pub type PEMRSETICMPROFILEW = *mut EMRSETICMPROFILE; -pub const CREATECOLORSPACE_EMBEDED: DWORD = 0x00000001; -STRUCT!{struct EMRCREATECOLORSPACEW { - emr: EMR, - ihCS: DWORD, - lcs: LOGCOLORSPACEW, - dwFlags: DWORD, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRCREATECOLORSPACEW = *mut EMRCREATECOLORSPACEW; -pub const COLORMATCHTOTARGET_EMBEDED: DWORD = 0x00000001; -STRUCT!{struct EMRCOLORMATCHTOTARGET { - emr: EMR, - dwAction: DWORD, - dwFlags: DWORD, - cbName: DWORD, - cbData: DWORD, - Data: [BYTE; 1], -}} -pub type PEMRCOLORMATCHTOTARGET = *mut EMRCOLORMATCHTOTARGET; -STRUCT!{struct EMRCOLORCORRECTPALETTE { - emr: EMR, - ihPalette: DWORD, - nFirstEntry: DWORD, - nPalEntries: DWORD, - nReserved: DWORD, -}} -pub type PEMRCOLORCORRECTPALETTE = *mut EMRCOLORCORRECTPALETTE; -STRUCT!{struct EMRALPHABLEND { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - cxDest: LONG, - cyDest: LONG, - dwRop: DWORD, - xSrc: LONG, - ySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - cxSrc: LONG, - cySrc: LONG, -}} -pub type PEMRALPHABLEND = *mut EMRALPHABLEND; -STRUCT!{struct EMRGRADIENTFILL { - emr: EMR, - rclBounds: RECTL, - nVer: DWORD, - nTri: DWORD, - ulMode: ULONG, - Ver: [TRIVERTEX; 1], -}} -pub type PEMRGRADIENTFILL = *mut EMRGRADIENTFILL; -STRUCT!{struct EMRTRANSPARENTBLT { - emr: EMR, - rclBounds: RECTL, - xDest: LONG, - yDest: LONG, - cxDest: LONG, - cyDest: LONG, - dwRop: DWORD, - xSrc: LONG, - ySrc: LONG, - xformSrc: XFORM, - crBkColorSrc: COLORREF, - iUsageSrc: DWORD, - offBmiSrc: DWORD, - cbBmiSrc: DWORD, - offBitsSrc: DWORD, - cbBitsSrc: DWORD, - cxSrc: LONG, - cySrc: LONG, -}} -pub type PEMRTRANSPARENTBLT = *mut EMRTRANSPARENTBLT; -pub const GDICOMMENT_IDENTIFIER: DWORD = 0x43494447; -pub const GDICOMMENT_WINDOWS_METAFILE: DWORD = 0x80000001; -pub const GDICOMMENT_BEGINGROUP: DWORD = 0x00000002; -pub const GDICOMMENT_ENDGROUP: DWORD = 0x00000003; -pub const GDICOMMENT_MULTIFORMATS: DWORD = 0x40000004; -pub const EPS_SIGNATURE: DWORD = 0x46535045; -pub const GDICOMMENT_UNICODE_STRING: DWORD = 0x00000040; -pub const GDICOMMENT_UNICODE_END: DWORD = 0x00000080; -extern "system" { - pub fn wglCopyContext( - hglrcSrc: HGLRC, - hglrcDst: HGLRC, - mask: UINT, - ) -> BOOL; - pub fn wglCreateContext( - hdc: HDC, - ) -> HGLRC; - pub fn wglCreateLayerContext( - hdc: HDC, - iLayerPlane: c_int, - ) -> HGLRC; - pub fn wglDeleteContext( - hglrc: HGLRC, - ) -> BOOL; - pub fn wglGetCurrentContext() -> HGLRC; - pub fn wglGetCurrentDC() -> HDC; - pub fn wglGetProcAddress( - lpszProc: LPCSTR, - ) -> PROC; - pub fn wglMakeCurrent( - hdc: HDC, - hglrc: HGLRC, - ) -> BOOL; - pub fn wglShareLists( - hglrc1: HGLRC, - hglrc2: HGLRC, - ) -> BOOL; - pub fn wglUseFontBitmapsA( - hdc: HDC, - first: DWORD, - count: DWORD, - listBase: DWORD, - ) -> BOOL; - pub fn wglUseFontBitmapsW( - hdc: HDC, - first: DWORD, - count: DWORD, - listBase: DWORD, - ) -> BOOL; - pub fn SwapBuffers( - hdc: HDC, - ) -> BOOL; -} -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 WGL_FONT_LINES: DWORD = 0; -pub const WGL_FONT_POLYGONS: DWORD = 1; -extern "system" { - pub fn wglUseFontOutlinesA( - hdc: HDC, - first: DWORD, - count: DWORD, - listBase: DWORD, - deviation: FLOAT, - extrusion: FLOAT, - format: c_int, - lpgmf: LPGLYPHMETRICSFLOAT, - ) -> BOOL; - pub fn wglUseFontOutlinesW( - hdc: HDC, - first: DWORD, - count: DWORD, - listBase: DWORD, - deviation: FLOAT, - extrusion: FLOAT, - format: c_int, - lpgmf: LPGLYPHMETRICSFLOAT, - ) -> BOOL; -} -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; -pub const LPD_DOUBLEBUFFER: DWORD = 0x00000001; -pub const LPD_STEREO: DWORD = 0x00000002; -pub const LPD_SUPPORT_GDI: DWORD = 0x00000010; -pub const LPD_SUPPORT_OPENGL: DWORD = 0x00000020; -pub const LPD_SHARE_DEPTH: DWORD = 0x00000040; -pub const LPD_SHARE_STENCIL: DWORD = 0x00000080; -pub const LPD_SHARE_ACCUM: DWORD = 0x00000100; -pub const LPD_SWAP_EXCHANGE: DWORD = 0x00000200; -pub const LPD_SWAP_COPY: DWORD = 0x00000400; -pub const LPD_TRANSPARENT: DWORD = 0x00001000; -pub const LPD_TYPE_RGBA: BYTE = 0; -pub const LPD_TYPE_COLORINDEX: BYTE = 1; -pub const WGL_SWAP_MAIN_PLANE: UINT = 0x00000001; -pub const WGL_SWAP_OVERLAY1: UINT = 0x00000002; -pub const WGL_SWAP_OVERLAY2: UINT = 0x00000004; -pub const WGL_SWAP_OVERLAY3: UINT = 0x00000008; -pub const WGL_SWAP_OVERLAY4: UINT = 0x00000010; -pub const WGL_SWAP_OVERLAY5: UINT = 0x00000020; -pub const WGL_SWAP_OVERLAY6: UINT = 0x00000040; -pub const WGL_SWAP_OVERLAY7: UINT = 0x00000080; -pub const WGL_SWAP_OVERLAY8: UINT = 0x00000100; -pub const WGL_SWAP_OVERLAY9: UINT = 0x00000200; -pub const WGL_SWAP_OVERLAY10: UINT = 0x00000400; -pub const WGL_SWAP_OVERLAY11: UINT = 0x00000800; -pub const WGL_SWAP_OVERLAY12: UINT = 0x00001000; -pub const WGL_SWAP_OVERLAY13: UINT = 0x00002000; -pub const WGL_SWAP_OVERLAY14: UINT = 0x00004000; -pub const WGL_SWAP_OVERLAY15: UINT = 0x00008000; -pub const WGL_SWAP_UNDERLAY1: UINT = 0x00010000; -pub const WGL_SWAP_UNDERLAY2: UINT = 0x00020000; -pub const WGL_SWAP_UNDERLAY3: UINT = 0x00040000; -pub const WGL_SWAP_UNDERLAY4: UINT = 0x00080000; -pub const WGL_SWAP_UNDERLAY5: UINT = 0x00100000; -pub const WGL_SWAP_UNDERLAY6: UINT = 0x00200000; -pub const WGL_SWAP_UNDERLAY7: UINT = 0x00400000; -pub const WGL_SWAP_UNDERLAY8: UINT = 0x00800000; -pub const WGL_SWAP_UNDERLAY9: UINT = 0x01000000; -pub const WGL_SWAP_UNDERLAY10: UINT = 0x02000000; -pub const WGL_SWAP_UNDERLAY11: UINT = 0x04000000; -pub const WGL_SWAP_UNDERLAY12: UINT = 0x08000000; -pub const WGL_SWAP_UNDERLAY13: UINT = 0x10000000; -pub const WGL_SWAP_UNDERLAY14: UINT = 0x20000000; -pub const WGL_SWAP_UNDERLAY15: UINT = 0x40000000; -extern "system" { - pub fn wglDescribeLayerPlane( - hdc: HDC, - iPixelFormat: c_int, - iLayerPlane: c_int, - nBytes: UINT, - plpd: LPLAYERPLANEDESCRIPTOR, - ) -> BOOL; - pub fn wglSetLayerPaletteEntries( - hdc: HDC, - iLayerPlane: c_int, - iStart: c_int, - cEntries: c_int, - pcr: *const COLORREF, - ) -> c_int; - pub fn wglGetLayerPaletteEntries( - hdc: HDC, - iLayerPlane: c_int, - iStart: c_int, - cEntries: c_int, - pcr: *const COLORREF, - ) -> c_int; - pub fn wglRealizeLayerPalette( - hdc: HDC, - iLayerPlane: c_int, - bRealize: BOOL, - ) -> BOOL; - pub fn wglSwapLayerBuffers( - hdc: HDC, - fuPlanes: UINT, - ) -> BOOL; -} -STRUCT!{struct WGLSWAP { - hdc: HDC, - uiFlags: UINT, -}} -pub type PWGLSWAP = *mut WGLSWAP; -pub type LPWGLSWAP = *mut WGLSWAP; -pub const WGL_SWAPMULTIPLE_MAX: usize = 16; -extern "system" { - pub fn wglSwapMultipleBuffers( - n: UINT, - ps: *const WGLSWAP, - ) -> DWORD; -} -- cgit v1.2.3