|
|
|
|
Quelle wingdi.rs
Sprache: unbekannt
|
|
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! 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, HPALETT E,
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::<DWORD, POINTS>(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,
--> --------------------
--> maximum size reached
--> --------------------
[ Verzeichnis aufwärts0.7unsichere Verbindung
Übersetzung europäischer Sprachen durch Browser
]
|
2026-04-02
|
|
|
|
|