mirror of https://github.com/buggins/dlangui.git
4561 lines
108 KiB
D
4561 lines
108 KiB
D
/***********************************************************************\
|
|
* wingdi.d *
|
|
* *
|
|
* Windows API header module *
|
|
* *
|
|
* Translated from MinGW Windows headers *
|
|
* *
|
|
* Placed into public domain *
|
|
\***********************************************************************/
|
|
module win32.wingdi;
|
|
pragma(lib, "gdi32");
|
|
|
|
// FIXME: clean up Windows version support
|
|
|
|
private import win32.w32api, win32.windef, win32.winver;
|
|
|
|
// BITMAPINFOHEADER.biCompression
|
|
enum : DWORD {
|
|
BI_RGB = 0,
|
|
BI_RLE8,
|
|
BI_RLE4,
|
|
BI_BITFIELDS,
|
|
BI_JPEG,
|
|
BI_PNG
|
|
}
|
|
|
|
// ---
|
|
// COLORADJUSTMENT -- only for NT 3.1+, Win2000+
|
|
const WORD
|
|
CA_NEGATIVE = 1,
|
|
CA_LOG_FILTER = 2;
|
|
|
|
// COLORADJUSTMENT
|
|
enum : WORD {
|
|
ILLUMINANT_DEVICE_DEFAULT = 0,
|
|
ILLUMINANT_A,
|
|
ILLUMINANT_B,
|
|
ILLUMINANT_C,
|
|
ILLUMINANT_D50,
|
|
ILLUMINANT_D55,
|
|
ILLUMINANT_D65,
|
|
ILLUMINANT_D75,
|
|
ILLUMINANT_F2,
|
|
ILLUMINANT_MAX_INDEX = ILLUMINANT_F2,
|
|
ILLUMINANT_TUNGSTEN = ILLUMINANT_A,
|
|
ILLUMINANT_DAYLIGHT = ILLUMINANT_C,
|
|
ILLUMINANT_FLUORESCENT = ILLUMINANT_F2,
|
|
ILLUMINANT_NTSC = ILLUMINANT_C
|
|
}
|
|
|
|
enum {
|
|
RGB_GAMMA_MIN = 2500,
|
|
RGB_GAMMA_MAX = 65000,
|
|
REFERENCE_WHITE_MIN = 6000,
|
|
REFERENCE_WHITE_MAX = 10000,
|
|
REFERENCE_BLACK_MIN = 0,
|
|
REFERENCE_BLACK_MAX = 4000,
|
|
COLOR_ADJ_MIN = -100,
|
|
COLOR_ADJ_MAX = 100,
|
|
}
|
|
//---
|
|
|
|
/* FIXME: move to win32.winuser ? */
|
|
// DrawIconEx()
|
|
enum : UINT {
|
|
DI_MASK = 1,
|
|
DI_IMAGE = 2,
|
|
DI_NORMAL = 3,
|
|
DI_COMPAT = 4,
|
|
DI_DEFAULTSIZE = 8
|
|
}
|
|
|
|
// DOCINFO
|
|
enum : DWORD {
|
|
DI_APPBANDING = 1,
|
|
DI_ROPS_READ_DESTINATION = 2,
|
|
}
|
|
|
|
// ENHMETAHEADER
|
|
enum : DWORD {
|
|
EMR_HEADER = 1,
|
|
EMR_POLYBEZIER,
|
|
EMR_POLYGON,
|
|
EMR_POLYLINE,
|
|
EMR_POLYBEZIERTO,
|
|
EMR_POLYLINETO,
|
|
EMR_POLYPOLYLINE,
|
|
EMR_POLYPOLYGON,
|
|
EMR_SETWINDOWEXTEX,
|
|
EMR_SETWINDOWORGEX,
|
|
EMR_SETVIEWPORTEXTEX,
|
|
EMR_SETVIEWPORTORGEX,
|
|
EMR_SETBRUSHORGEX,
|
|
EMR_EOF,
|
|
EMR_SETPIXELV,
|
|
EMR_SETMAPPERFLAGS,
|
|
EMR_SETMAPMODE,
|
|
EMR_SETBKMODE,
|
|
EMR_SETPOLYFILLMODE,
|
|
EMR_SETROP2,
|
|
EMR_SETSTRETCHBLTMODE,
|
|
EMR_SETTEXTALIGN,
|
|
EMR_SETCOLORADJUSTMENT,
|
|
EMR_SETTEXTCOLOR,
|
|
EMR_SETBKCOLOR,
|
|
EMR_OFFSETCLIPRGN,
|
|
EMR_MOVETOEX,
|
|
EMR_SETMETARGN,
|
|
EMR_EXCLUDECLIPRECT,
|
|
EMR_INTERSECTCLIPRECT,
|
|
EMR_SCALEVIEWPORTEXTEX,
|
|
EMR_SCALEWINDOWEXTEX,
|
|
EMR_SAVEDC,
|
|
EMR_RESTOREDC,
|
|
EMR_SETWORLDTRANSFORM,
|
|
EMR_MODIFYWORLDTRANSFORM,
|
|
EMR_SELECTOBJECT,
|
|
EMR_CREATEPEN,
|
|
EMR_CREATEBRUSHINDIRECT,
|
|
EMR_DELETEOBJECT,
|
|
EMR_ANGLEARC,
|
|
EMR_ELLIPSE,
|
|
EMR_RECTANGLE,
|
|
EMR_ROUNDRECT,
|
|
EMR_ARC,
|
|
EMR_CHORD,
|
|
EMR_PIE,
|
|
EMR_SELECTPALETTE,
|
|
EMR_CREATEPALETTE,
|
|
EMR_SETPALETTEENTRIES,
|
|
EMR_RESIZEPALETTE,
|
|
EMR_REALIZEPALETTE,
|
|
EMR_EXTFLOODFILL,
|
|
EMR_LINETO,
|
|
EMR_ARCTO,
|
|
EMR_POLYDRAW,
|
|
EMR_SETARCDIRECTION,
|
|
EMR_SETMITERLIMIT,
|
|
EMR_BEGINPATH,
|
|
EMR_ENDPATH,
|
|
EMR_CLOSEFIGURE,
|
|
EMR_FILLPATH,
|
|
EMR_STROKEANDFILLPATH,
|
|
EMR_STROKEPATH,
|
|
EMR_FLATTENPATH,
|
|
EMR_WIDENPATH,
|
|
EMR_SELECTCLIPPATH,
|
|
EMR_ABORTPATH, // 68
|
|
// reserved 69
|
|
EMR_GDICOMMENT = 70,
|
|
EMR_FILLRGN,
|
|
EMR_FRAMERGN,
|
|
EMR_INVERTRGN,
|
|
EMR_PAINTRGN,
|
|
EMR_EXTSELECTCLIPRGN,
|
|
EMR_BITBLT,
|
|
EMR_STRETCHBLT,
|
|
EMR_MASKBLT,
|
|
EMR_PLGBLT,
|
|
EMR_SETDIBITSTODEVICE,
|
|
EMR_STRETCHDIBITS,
|
|
EMR_EXTCREATEFONTINDIRECTW,
|
|
EMR_EXTTEXTOUTA,
|
|
EMR_EXTTEXTOUTW,
|
|
EMR_POLYBEZIER16,
|
|
EMR_POLYGON16,
|
|
EMR_POLYLINE16,
|
|
EMR_POLYBEZIERTO16,
|
|
EMR_POLYLINETO16,
|
|
EMR_POLYPOLYLINE16,
|
|
EMR_POLYPOLYGON16,
|
|
EMR_POLYDRAW16,
|
|
EMR_CREATEMONOBRUSH,
|
|
EMR_CREATEDIBPATTERNBRUSHPT,
|
|
EMR_EXTCREATEPEN,
|
|
EMR_POLYTEXTOUTA,
|
|
EMR_POLYTEXTOUTW, // 97
|
|
EMR_SETICMMODE,
|
|
EMR_CREATECOLORSPACE,
|
|
EMR_SETCOLORSPACE,
|
|
EMR_DELETECOLORSPACE,
|
|
EMR_GLSRECORD,
|
|
EMR_GLSBOUNDEDRECORD,
|
|
EMR_PIXELFORMAT, // = 104
|
|
// reserved 105 - 110
|
|
EMR_COLORCORRECTPALETTE = 111,
|
|
EMR_SETICMPROFILEA,
|
|
EMR_SETICMPROFILEW,
|
|
EMR_ALPHABLEND,
|
|
EMR_SETLAYOUT,
|
|
EMR_TRANSPARENTBLT, // 116
|
|
// reserved 117
|
|
EMR_GRADIENTFILL = 118,
|
|
// reserved 119, 120
|
|
EMR_COLORMATCHTOTARGETW = 121,
|
|
EMR_CREATECOLORSPACEW // 122
|
|
}
|
|
|
|
const EMR_MIN = EMR_HEADER;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const EMR_MAX = EMR_CREATECOLORSPACEW;
|
|
} else {
|
|
const EMR_MAX = EMR_PIXELFORMAT;
|
|
}
|
|
|
|
// ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature,
|
|
// EMRFORMAT.dSignature
|
|
enum : DWORD {
|
|
ENHMETA_SIGNATURE = 1179469088,
|
|
EPS_SIGNATURE = 0x46535045
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
// AddFontResourceEx()
|
|
enum : DWORD {
|
|
FR_PRIVATE = 0x10,
|
|
FR_NOT_ENUM = 0x20
|
|
}
|
|
}
|
|
|
|
enum {
|
|
META_SAVEDC = 0x1E,
|
|
META_REALIZEPALETTE = 0x35,
|
|
META_SETPALENTRIES = 0x37,
|
|
META_CREATEPALETTE = 0xf7,
|
|
META_SETBKMODE = 0x102,
|
|
META_SETMAPMODE = 0x103,
|
|
META_SETROP2 = 0x104,
|
|
META_SETRELABS = 0x105,
|
|
META_SETPOLYFILLMODE = 0x106,
|
|
META_SETSTRETCHBLTMODE = 0x107,
|
|
META_SETTEXTCHAREXTRA = 0x108,
|
|
META_RESTOREDC = 0x127,
|
|
META_INVERTREGION = 0x12A,
|
|
META_PAINTREGION = 0x12B,
|
|
META_SELECTCLIPREGION = 0x12C,
|
|
META_SELECTOBJECT = 0x12D,
|
|
META_SETTEXTALIGN = 0x12E,
|
|
META_RESIZEPALETTE = 0x139,
|
|
META_DIBCREATEPATTERNBRUSH = 0x142,
|
|
META_SETLAYOUT = 0x149,
|
|
META_DELETEOBJECT = 0x1F0,
|
|
META_CREATEPATTERNBRUSH = 0x1F9,
|
|
META_SETBKCOLOR = 0x201,
|
|
META_SETTEXTCOLOR = 0x209,
|
|
META_SETTEXTJUSTIFICATION = 0x20A,
|
|
META_SETWINDOWORG = 0x20B,
|
|
META_SETWINDOWEXT = 0x20C,
|
|
META_SETVIEWPORTORG = 0x20D,
|
|
META_SETVIEWPORTEXT = 0x20E,
|
|
META_OFFSETWINDOWORG = 0x20F,
|
|
META_OFFSETVIEWPORTORG = 0x211,
|
|
META_LINETO = 0x213,
|
|
META_MOVETO = 0x214,
|
|
META_OFFSETCLIPRGN = 0x220,
|
|
META_FILLREGION = 0x228,
|
|
META_SETMAPPERFLAGS = 0x231,
|
|
META_SELECTPALETTE = 0x234,
|
|
META_CREATEPENINDIRECT = 0x2FA,
|
|
META_CREATEFONTINDIRECT = 0x2FB,
|
|
META_CREATEBRUSHINDIRECT = 0x2FC,
|
|
META_POLYGON = 0x324,
|
|
META_POLYLINE = 0x325,
|
|
META_SCALEWINDOWEXT = 0x410,
|
|
META_SCALEVIEWPORTEXT = 0x412,
|
|
META_EXCLUDECLIPRECT = 0x415,
|
|
META_INTERSECTCLIPRECT = 0x416,
|
|
META_ELLIPSE = 0x418,
|
|
META_FLOODFILL = 0x419,
|
|
META_RECTANGLE = 0x41B,
|
|
META_SETPIXEL = 0x41F,
|
|
META_FRAMEREGION = 0x429,
|
|
META_ANIMATEPALETTE = 0x436,
|
|
META_TEXTOUT = 0x521,
|
|
META_POLYPOLYGON = 0x538,
|
|
META_EXTFLOODFILL = 0x548,
|
|
META_ROUNDRECT = 0x61C,
|
|
META_PATBLT = 0x61D,
|
|
META_ESCAPE = 0x626,
|
|
META_CREATEREGION = 0x6FF,
|
|
META_ARC = 0x817,
|
|
META_PIE = 0x81A,
|
|
META_CHORD = 0x830,
|
|
META_BITBLT = 0x922,
|
|
META_DIBBITBLT = 0x940,
|
|
META_EXTTEXTOUT = 0xA32,
|
|
META_STRETCHBLT = 0xB23,
|
|
META_DIBSTRETCHBLT = 0xB41,
|
|
META_SETDIBTODEV = 0xD33,
|
|
META_STRETCHDIB = 0xF43
|
|
}
|
|
|
|
// EMRPOLYDRAW
|
|
enum : BYTE {
|
|
PT_CLOSEFIGURE = 1,
|
|
PT_LINETO = 2,
|
|
PT_BEZIERTO = 4,
|
|
PT_MOVETO = 6
|
|
}
|
|
|
|
// ----
|
|
// PIXELFORMATDESCRIPTOR.iPixelType
|
|
enum : BYTE {
|
|
PFD_TYPE_RGBA = 0,
|
|
PFD_TYPE_COLORINDEX = 1
|
|
}
|
|
|
|
deprecated {
|
|
// PIXELFORMATDESCRIPTOR.
|
|
const byte
|
|
PFD_MAIN_PLANE = 0,
|
|
PFD_OVERLAY_PLANE = 1,
|
|
PFD_UNDERLAY_PLANE = -1;
|
|
}
|
|
// PIXELFORMATDESCRIPTOR.dwFlags
|
|
const DWORD
|
|
PFD_DOUBLEBUFFER = 0x00000001,
|
|
PFD_STEREO = 0x00000002,
|
|
PFD_DRAW_TO_WINDOW = 0x00000004,
|
|
PFD_DRAW_TO_BITMAP = 0x00000008,
|
|
PFD_SUPPORT_GDI = 0x00000010,
|
|
PFD_SUPPORT_OPENGL = 0x00000020,
|
|
PFD_GENERIC_FORMAT = 0x00000040,
|
|
PFD_NEED_PALETTE = 0x00000080,
|
|
PFD_NEED_SYSTEM_PALETTE = 0x00000100,
|
|
PFD_SWAP_EXCHANGE = 0x00000200,
|
|
PFD_SWAP_COPY = 0x00000400,
|
|
PFD_SWAP_LAYER_BUFFERS = 0x00000800,
|
|
PFD_GENERIC_ACCELERATED = 0x00001000,
|
|
PFD_SUPPORT_DIRECTDRAW = 0x00002000,
|
|
/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
|
|
PFD_DEPTH_DONTCARE = 0x20000000,
|
|
PFD_DOUBLEBUFFER_DONTCARE = 0x40000000,
|
|
PFD_STEREO_DONTCARE = 0x80000000;
|
|
|
|
// ----
|
|
|
|
const DWORD
|
|
BLACKNESS = 0x000042,
|
|
NOTSRCERASE = 0x1100A6,
|
|
NOTSRCCOPY = 0x330008,
|
|
SRCERASE = 0x440328,
|
|
DSTINVERT = 0x550009,
|
|
PATINVERT = 0x5A0049,
|
|
SRCINVERT = 0x660046,
|
|
SRCAND = 0x8800C6,
|
|
MERGEPAINT = 0xBB0226,
|
|
MERGECOPY = 0xC000CA,
|
|
SRCCOPY = 0xCC0020,
|
|
SRCPAINT = 0xEE0086,
|
|
PATCOPY = 0xF00021,
|
|
PATPAINT = 0xFB0A09,
|
|
WHITENESS = 0xFF0062;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const DWORD
|
|
NOMIRRORBITMAP = 0x80000000,
|
|
CAPTUREBLT = 0x40000000;
|
|
}
|
|
|
|
// GetROP2(), SetROP2()
|
|
enum : int {
|
|
R2_BLACK = 1,
|
|
R2_NOTMERGEPEN = 2,
|
|
R2_MASKNOTPEN = 3,
|
|
R2_NOTCOPYPEN = 4,
|
|
R2_MASKPENNOT = 5,
|
|
R2_NOT = 6,
|
|
R2_XORPEN = 7,
|
|
R2_NOTMASKPEN = 8,
|
|
R2_MASKPEN = 9,
|
|
R2_NOTXORPEN = 10,
|
|
R2_NOP = 11,
|
|
R2_MERGENOTPEN = 12,
|
|
R2_COPYPEN = 13,
|
|
R2_MERGEPENNOT = 14,
|
|
R2_MERGEPEN = 15,
|
|
R2_WHITE = 16
|
|
}
|
|
|
|
const R2_LAST = R2_WHITE;
|
|
|
|
// CheckColorsInGamut()
|
|
const ubyte
|
|
CM_IN_GAMUT = 0,
|
|
CM_OUT_OF_GAMUT = 255;
|
|
|
|
/* UpdateICMRegKey Constants */
|
|
const int
|
|
ICM_ADDPROFILE = 1,
|
|
ICM_DELETEPROFILE = 2,
|
|
ICM_QUERYPROFILE = 3,
|
|
ICM_SETDEFAULTPROFILE = 4,
|
|
ICM_REGISTERICMATCHER = 5,
|
|
ICM_UNREGISTERICMATCHER = 6,
|
|
ICM_QUERYMATCH = 7;
|
|
|
|
enum : int {
|
|
RGN_AND = 1,
|
|
RGN_OR = 2,
|
|
RGN_XOR = 3,
|
|
RGN_DIFF = 4,
|
|
RGN_COPY = 5
|
|
}
|
|
|
|
const RGN_MIN = RGN_AND;
|
|
const RGN_MAX = RGN_COPY;
|
|
|
|
// Return values for CombineRgn()
|
|
enum {
|
|
NULLREGION = 1,
|
|
SIMPLEREGION = 2,
|
|
COMPLEXREGION = 3
|
|
}
|
|
|
|
const ERROR = 0;
|
|
alias ERROR RGN_ERROR;
|
|
|
|
// CreateDIBitmap()
|
|
const DWORD CBM_INIT = 4;
|
|
|
|
// CreateDIBitmap()
|
|
enum : UINT {
|
|
DIB_RGB_COLORS = 0,
|
|
DIB_PAL_COLORS = 1
|
|
}
|
|
|
|
// ---
|
|
// Values for LOGFONT and CreateFont()
|
|
|
|
// FIXME: For D, replace with lfFaceName.length()
|
|
const LF_FACESIZE = 32;
|
|
const LF_FULLFACESIZE = 64;
|
|
|
|
// FIXME: Not needed for D, only EXTLOGFONT
|
|
const ELF_VENDOR_SIZE = 4;
|
|
|
|
// ???
|
|
const ELF_VERSION = 0;
|
|
const ELF_CULTURE_LATIN = 0;
|
|
|
|
// LOGFONT.lfWeight
|
|
const LONG
|
|
FW_DONTCARE = 0,
|
|
FW_THIN = 100,
|
|
FW_EXTRALIGHT = 200,
|
|
FW_ULTRALIGHT = FW_EXTRALIGHT,
|
|
FW_LIGHT = 300,
|
|
FW_NORMAL = 400,
|
|
FW_REGULAR = FW_NORMAL,
|
|
FW_MEDIUM = 500,
|
|
FW_SEMIBOLD = 600,
|
|
FW_DEMIBOLD = FW_SEMIBOLD,
|
|
FW_BOLD = 700,
|
|
FW_EXTRABOLD = 800,
|
|
FW_ULTRABOLD = FW_EXTRABOLD,
|
|
FW_HEAVY = 900,
|
|
FW_BLACK = FW_HEAVY;
|
|
|
|
// LOGFONT.lfCharSet
|
|
enum : DWORD {
|
|
ANSI_CHARSET = 0,
|
|
DEFAULT_CHARSET = 1,
|
|
SYMBOL_CHARSET = 2,
|
|
MAC_CHARSET = 77,
|
|
SHIFTJIS_CHARSET = 128,
|
|
HANGEUL_CHARSET = 129,
|
|
HANGUL_CHARSET = 129,
|
|
JOHAB_CHARSET = 130,
|
|
GB2312_CHARSET = 134,
|
|
CHINESEBIG5_CHARSET = 136,
|
|
GREEK_CHARSET = 161,
|
|
TURKISH_CHARSET = 162,
|
|
VIETNAMESE_CHARSET = 163,
|
|
HEBREW_CHARSET = 177,
|
|
ARABIC_CHARSET = 178,
|
|
BALTIC_CHARSET = 186,
|
|
RUSSIAN_CHARSET = 204,
|
|
THAI_CHARSET = 222,
|
|
EASTEUROPE_CHARSET = 238,
|
|
OEM_CHARSET = 255
|
|
}
|
|
|
|
// LOGFONT.lfOutPrecision
|
|
enum : BYTE {
|
|
OUT_DEFAULT_PRECIS = 0,
|
|
OUT_STRING_PRECIS,
|
|
OUT_CHARACTER_PRECIS,
|
|
OUT_STROKE_PRECIS,
|
|
OUT_TT_PRECIS,
|
|
OUT_DEVICE_PRECIS,
|
|
OUT_RASTER_PRECIS,
|
|
OUT_TT_ONLY_PRECIS,
|
|
OUT_OUTLINE_PRECIS,
|
|
OUT_SCREEN_OUTLINE_PRECIS,
|
|
OUT_PS_ONLY_PRECIS, // 10
|
|
}
|
|
|
|
// LOGFONT.lfClipPrecision
|
|
enum : BYTE {
|
|
CLIP_DEFAULT_PRECIS = 0,
|
|
CLIP_CHARACTER_PRECIS = 1,
|
|
CLIP_STROKE_PRECIS = 2,
|
|
CLIP_MASK = 15,
|
|
CLIP_LH_ANGLES = 16,
|
|
CLIP_TT_ALWAYS = 32,
|
|
CLIP_DFA_DISABLE = 64,
|
|
CLIP_EMBEDDED = 128
|
|
}
|
|
|
|
// LOGFONT.lfQuality
|
|
enum : BYTE {
|
|
DEFAULT_QUALITY = 0,
|
|
DRAFT_QUALITY,
|
|
PROOF_QUALITY,
|
|
NONANTIALIASED_QUALITY,
|
|
ANTIALIASED_QUALITY
|
|
}
|
|
|
|
// LOGFONT.lfPitchAndFamily
|
|
|
|
const BYTE
|
|
DEFAULT_PITCH = 0,
|
|
FIXED_PITCH = 1,
|
|
VARIABLE_PITCH = 2,
|
|
MONO_FONT = 8,
|
|
FF_DONTCARE = 0,
|
|
FF_ROMAN = 16,
|
|
FF_SWISS = 32,
|
|
FF_SCRIPT = 64,
|
|
FF_MODERN = 48,
|
|
FF_DECORATIVE = 80;
|
|
|
|
// ----
|
|
// Enums for the PANOSE struct
|
|
|
|
const PANOSE_COUNT=10;
|
|
|
|
enum {
|
|
PAN_FAMILYTYPE_INDEX = 0,
|
|
PAN_SERIFSTYLE_INDEX,
|
|
PAN_WEIGHT_INDEX,
|
|
PAN_PROPORTION_INDEX,
|
|
PAN_CONTRAST_INDEX,
|
|
PAN_STROKEVARIATION_INDEX,
|
|
PAN_ARMSTYLE_INDEX,
|
|
PAN_LETTERFORM_INDEX,
|
|
PAN_MIDLINE_INDEX,
|
|
PAN_XHEIGHT_INDEX
|
|
}
|
|
|
|
const PAN_CULTURE_LATIN=0;
|
|
|
|
// NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums!
|
|
enum : BYTE {
|
|
PAN_ANY = 0,
|
|
PAN_NO_FIT = 1,
|
|
}
|
|
|
|
enum : BYTE {
|
|
PAN_FAMILY_TEXT_DISPLAY = 2,
|
|
PAN_FAMILY_SCRIPT,
|
|
PAN_FAMILY_DECORATIVE,
|
|
PAN_FAMILY_PICTORIAL
|
|
}
|
|
enum : BYTE {
|
|
PAN_SERIF_COVE = 2,
|
|
PAN_SERIF_OBTUSE_COVE,
|
|
PAN_SERIF_SQUARE_COVE,
|
|
PAN_SERIF_OBTUSE_SQUARE_COVE,
|
|
PAN_SERIF_SQUARE,
|
|
PAN_SERIF_THIN,
|
|
PAN_SERIF_BONE,
|
|
PAN_SERIF_EXAGGERATED,
|
|
PAN_SERIF_TRIANGLE,
|
|
PAN_SERIF_NORMAL_SANS,
|
|
PAN_SERIF_OBTUSE_SANS,
|
|
PAN_SERIF_PERP_SANS,
|
|
PAN_SERIF_FLARED,
|
|
PAN_SERIF_ROUNDED
|
|
}
|
|
|
|
enum : BYTE {
|
|
PAN_WEIGHT_VERY_LIGHT = 2,
|
|
PAN_WEIGHT_LIGHT,
|
|
PAN_WEIGHT_THIN,
|
|
PAN_WEIGHT_BOOK,
|
|
PAN_WEIGHT_MEDIUM,
|
|
PAN_WEIGHT_DEMI,
|
|
PAN_WEIGHT_BOLD,
|
|
PAN_WEIGHT_HEAVY,
|
|
PAN_WEIGHT_BLACK,
|
|
PAN_WEIGHT_NORD
|
|
}
|
|
|
|
enum : BYTE {
|
|
PAN_PROP_OLD_STYLE = 2,
|
|
PAN_PROP_MODERN,
|
|
PAN_PROP_EVEN_WIDTH,
|
|
PAN_PROP_EXPANDED,
|
|
PAN_PROP_CONDENSED,
|
|
PAN_PROP_VERY_EXPANDED,
|
|
PAN_PROP_VERY_CONDENSED,
|
|
PAN_PROP_MONOSPACED
|
|
}
|
|
|
|
enum : BYTE {
|
|
PAN_CONTRAST_NONE = 2,
|
|
PAN_CONTRAST_VERY_LOW,
|
|
PAN_CONTRAST_LOW,
|
|
PAN_CONTRAST_MEDIUM_LOW,
|
|
PAN_CONTRAST_MEDIUM,
|
|
PAN_CONTRAST_MEDIUM_HIGH,
|
|
PAN_CONTRAST_HIGH,
|
|
PAN_CONTRAST_VERY_HIGH
|
|
}
|
|
|
|
// PANOSE.bStrokeVariation
|
|
enum : BYTE {
|
|
PAN_STROKE_GRADUAL_DIAG = 2,
|
|
PAN_STROKE_GRADUAL_TRAN,
|
|
PAN_STROKE_GRADUAL_VERT,
|
|
PAN_STROKE_GRADUAL_HORZ,
|
|
PAN_STROKE_RAPID_VERT,
|
|
PAN_STROKE_RAPID_HORZ,
|
|
PAN_STROKE_INSTANT_VERT
|
|
}
|
|
|
|
// PANOSE.bArmStyle
|
|
enum : BYTE {
|
|
PAN_STRAIGHT_ARMS_HORZ = 2,
|
|
PAN_STRAIGHT_ARMS_WEDGE,
|
|
PAN_STRAIGHT_ARMS_VERT,
|
|
PAN_STRAIGHT_ARMS_SINGLE_SERIF,
|
|
PAN_STRAIGHT_ARMS_DOUBLE_SERIF,
|
|
PAN_BENT_ARMS_HORZ,
|
|
PAN_BENT_ARMS_WEDGE,
|
|
PAN_BENT_ARMS_VERT,
|
|
PAN_BENT_ARMS_SINGLE_SERIF,
|
|
PAN_BENT_ARMS_DOUBLE_SERIF
|
|
}
|
|
|
|
// PANOSE.bLetterForm
|
|
enum : BYTE {
|
|
PAN_LETT_NORMAL_CONTACT = 2,
|
|
PAN_LETT_NORMAL_WEIGHTED,
|
|
PAN_LETT_NORMAL_BOXED,
|
|
PAN_LETT_NORMAL_FLATTENED,
|
|
PAN_LETT_NORMAL_ROUNDED,
|
|
PAN_LETT_NORMAL_OFF_CENTER,
|
|
PAN_LETT_NORMAL_SQUARE,
|
|
PAN_LETT_OBLIQUE_CONTACT,
|
|
PAN_LETT_OBLIQUE_WEIGHTED,
|
|
PAN_LETT_OBLIQUE_BOXED,
|
|
PAN_LETT_OBLIQUE_FLATTENED,
|
|
PAN_LETT_OBLIQUE_ROUNDED,
|
|
PAN_LETT_OBLIQUE_OFF_CENTER,
|
|
PAN_LETT_OBLIQUE_SQUARE
|
|
}
|
|
|
|
// PANOSE.bMidLine
|
|
enum : BYTE {
|
|
PAN_MIDLINE_STANDARD_TRIMMED = 2,
|
|
PAN_MIDLINE_STANDARD_POINTED,
|
|
PAN_MIDLINE_STANDARD_SERIFED,
|
|
PAN_MIDLINE_HIGH_TRIMMED,
|
|
PAN_MIDLINE_HIGH_POINTED,
|
|
PAN_MIDLINE_HIGH_SERIFED,
|
|
PAN_MIDLINE_CONSTANT_TRIMMED,
|
|
PAN_MIDLINE_CONSTANT_POINTED,
|
|
PAN_MIDLINE_CONSTANT_SERIFED,
|
|
PAN_MIDLINE_LOW_TRIMMED,
|
|
PAN_MIDLINE_LOW_POINTED,
|
|
PAN_MIDLINE_LOW_SERIFED
|
|
}
|
|
|
|
// PANOSE.bXHeight
|
|
enum : BYTE {
|
|
PAN_XHEIGHT_CONSTANT_SMALL = 2,
|
|
PAN_XHEIGHT_CONSTANT_STD,
|
|
PAN_XHEIGHT_CONSTANT_LARGE,
|
|
PAN_XHEIGHT_DUCKING_SMALL,
|
|
PAN_XHEIGHT_DUCKING_STD,
|
|
PAN_XHEIGHT_DUCKING_LARGE
|
|
}
|
|
|
|
// ----
|
|
// ???
|
|
const FS_LATIN1 = 0x00000001;
|
|
const FS_LATIN2 = 0x00000002;
|
|
const FS_CYRILLIC = 0x00000004;
|
|
const FS_GREEK = 0x00000008;
|
|
const FS_TURKISH = 0x00000010;
|
|
const FS_HEBREW = 0x00000020;
|
|
const FS_ARABIC = 0x00000040;
|
|
const FS_BALTIC = 0x00000080;
|
|
const FS_VIETNAMESE = 0x00000100;
|
|
const FS_THAI = 0x00010000;
|
|
const FS_JISJAPAN = 0x00020000;
|
|
const FS_CHINESESIMP = 0x00040000;
|
|
const FS_WANSUNG = 0x00080000;
|
|
const FS_CHINESETRAD = 0x00100000;
|
|
const FS_JOHAB = 0x00200000;
|
|
const FS_SYMBOL = 0x80000000;
|
|
|
|
// ----
|
|
// Poly Fill Mode
|
|
enum : int {
|
|
ALTERNATE = 1,
|
|
WINDING = 2
|
|
}
|
|
const int POLYFILL_LAST = WINDING;
|
|
|
|
//---
|
|
// LOGBRUSH
|
|
enum : LONG {
|
|
HS_HORIZONTAL = 0,
|
|
HS_VERTICAL,
|
|
HS_FDIAGONAL,
|
|
HS_BDIAGONAL,
|
|
HS_CROSS,
|
|
HS_DIAGCROSS
|
|
}
|
|
|
|
//LOGBRUSH.lbStyle
|
|
enum : UINT {
|
|
BS_SOLID = 0,
|
|
BS_NULL = 1,
|
|
BS_HOLLOW = BS_NULL,
|
|
BS_HATCHED,
|
|
BS_PATTERN,
|
|
BS_INDEXED,
|
|
BS_DIBPATTERN,
|
|
BS_DIBPATTERNPT,
|
|
BS_PATTERN8X8,
|
|
BS_DIBPATTERN8X8,
|
|
BS_MONOPATTERN,
|
|
}
|
|
//-----
|
|
// EXTLOGPEN, ExtCreatePen()
|
|
|
|
// EXTLOGPEN.elpPenStyle
|
|
enum : DWORD {
|
|
PS_SOLID = 0,
|
|
PS_DASH = 1,
|
|
PS_DOT = 2,
|
|
PS_DASHDOT = 3,
|
|
PS_DASHDOTDOT = 4,
|
|
PS_NULL = 5,
|
|
PS_INSIDEFRAME = 6,
|
|
PS_USERSTYLE = 7,
|
|
PS_ALTERNATE = 8,
|
|
PS_STYLE_MASK = 15,
|
|
}
|
|
|
|
enum : DWORD {
|
|
PS_COSMETIC = 0x00000000,
|
|
PS_GEOMETRIC = 0x00010000,
|
|
PS_TYPE_MASK = 0x000F0000,
|
|
}
|
|
enum : DWORD {
|
|
PS_ENDCAP_ROUND = 0x00000000,
|
|
PS_ENDCAP_SQUARE = 0x00000100,
|
|
PS_ENDCAP_FLAT = 0x00000200,
|
|
PS_ENDCAP_MASK = 0x00000F00,
|
|
}
|
|
enum : DWORD {
|
|
PS_JOIN_ROUND = 0x00000000,
|
|
PS_JOIN_BEVEL = 0x00001000,
|
|
PS_JOIN_MITER = 0x00002000,
|
|
PS_JOIN_MASK = 0x0000F000,
|
|
}
|
|
|
|
// ---
|
|
// DeviceCapabilities()
|
|
|
|
enum : WORD {
|
|
DC_FIELDS = 1,
|
|
DC_PAPERS,
|
|
DC_PAPERSIZE,
|
|
DC_MINEXTENT,
|
|
DC_MAXEXTENT,
|
|
DC_BINS,
|
|
DC_DUPLEX,
|
|
DC_SIZE,
|
|
DC_EXTRA,
|
|
DC_VERSION,
|
|
DC_DRIVER,
|
|
DC_BINNAMES,
|
|
DC_ENUMRESOLUTIONS,
|
|
DC_FILEDEPENDENCIES,
|
|
DC_TRUETYPE,
|
|
DC_PAPERNAMES,
|
|
DC_ORIENTATION,
|
|
DC_COPIES,
|
|
DC_BINADJUST,
|
|
DC_EMF_COMPLIANT,
|
|
DC_DATATYPE_PRODUCED,
|
|
DC_COLLATE,
|
|
DC_MANUFACTURER,
|
|
DC_MODEL,
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
enum {
|
|
DC_PERSONALITY = 25,
|
|
DC_PRINTRATE = 26,
|
|
DC_PRINTRATEUNIT = 27,
|
|
DC_PRINTERMEM = 28,
|
|
DC_MEDIAREADY = 29,
|
|
DC_STAPLE = 30,
|
|
DC_PRINTRATEPPM = 31,
|
|
DC_COLORDEVICE = 32,
|
|
DC_NUP = 33,
|
|
DC_MEDIATYPENAMES = 34,
|
|
DC_MEDIATYPES = 35,
|
|
}
|
|
enum {
|
|
PRINTRATEUNIT_PPM = 1,
|
|
PRINTRATEUNIT_CPS = 2,
|
|
PRINTRATEUNIT_LPM = 3,
|
|
PRINTRATEUNIT_IPM = 4,
|
|
}
|
|
}
|
|
|
|
|
|
// return from DC_TRUETYPE
|
|
const DWORD
|
|
DCTT_BITMAP = 1,
|
|
DCTT_DOWNLOAD = 2,
|
|
DCTT_SUBDEV = 4,
|
|
DCTT_DOWNLOAD_OUTLINE = 8;
|
|
|
|
// return from DC_BINADJUST
|
|
enum : DWORD {
|
|
DCBA_FACEUPNONE = 0x0000,
|
|
DCBA_FACEUPCENTER = 0x0001,
|
|
DCBA_FACEUPLEFT = 0x0002,
|
|
DCBA_FACEUPRIGHT = 0x0003,
|
|
DCBA_FACEDOWNNONE = 0x0100,
|
|
DCBA_FACEDOWNCENTER = 0x0101,
|
|
DCBA_FACEDOWNLEFT = 0x0102,
|
|
DCBA_FACEDOWNRIGHT = 0x0103,
|
|
}
|
|
//---
|
|
|
|
const FLOODFILLBORDER = 0;
|
|
const FLOODFILLSURFACE = 1;
|
|
|
|
// ExtTextOut()
|
|
const UINT
|
|
ETO_OPAQUE = 0x0002,
|
|
ETO_CLIPPED = 0x0004,
|
|
ETO_GLYPH_INDEX = 0x0010,
|
|
ETO_RTLREADING = 0x0080,
|
|
ETO_NUMERICSLOCAL = 0x0400,
|
|
ETO_NUMERICSLATIN = 0x0800,
|
|
ETO_IGNORELANGUAGE = 0x1000;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const UINT
|
|
ETO_PDY = 0x2000;
|
|
}
|
|
|
|
// GdiComment()
|
|
enum {
|
|
GDICOMMENT_BEGINGROUP = 0x00000002,
|
|
GDICOMMENT_ENDGROUP = 0x00000003,
|
|
GDICOMMENT_UNICODE_STRING = 0x00000040,
|
|
GDICOMMENT_UNICODE_END = 0x00000080,
|
|
GDICOMMENT_MULTIFORMATS = 0x40000004,
|
|
GDICOMMENT_IDENTIFIER = 0x43494447,
|
|
GDICOMMENT_WINDOWS_METAFILE = 0x80000001,
|
|
}
|
|
|
|
// Get/SetArcDirection()
|
|
enum : int {
|
|
AD_COUNTERCLOCKWISE = 1,
|
|
AD_CLOCKWISE = 2
|
|
}
|
|
|
|
const RDH_RECTANGLES = 1;
|
|
|
|
// GCPRESULTS.lpClass
|
|
enum {
|
|
GCPCLASS_LATIN = 1,
|
|
GCPCLASS_HEBREW = 2,
|
|
GCPCLASS_ARABIC = 2,
|
|
GCPCLASS_NEUTRAL,
|
|
GCPCLASS_LOCALNUMBER,
|
|
GCPCLASS_LATINNUMBER,
|
|
GCPCLASS_LATINNUMERICTERMINATOR,
|
|
GCPCLASS_LATINNUMERICSEPARATOR,
|
|
GCPCLASS_NUMERICSEPARATOR, // = 8,
|
|
GCPCLASS_POSTBOUNDRTL = 16,
|
|
GCPCLASS_POSTBOUNDLTR = 32,
|
|
GCPCLASS_PREBOUNDRTL = 64,
|
|
GCPCLASS_PREBOUNDLTR = 128,
|
|
GCPGLYPH_LINKAFTER = 0x4000,
|
|
GCPGLYPH_LINKBEFORE = 0x8000
|
|
}
|
|
|
|
// GetBoundsRect(), SetBoundsRect()
|
|
const UINT
|
|
DCB_RESET = 1,
|
|
DCB_ACCUMULATE = 2,
|
|
DCB_SET = DCB_RESET | DCB_ACCUMULATE,
|
|
DCB_ENABLE = 4,
|
|
DCB_DISABLE = 8,
|
|
DCB_DIRTY = DCB_ACCUMULATE;
|
|
|
|
//---
|
|
// GetObjectType()
|
|
enum : DWORD {
|
|
OBJ_PEN = 1,
|
|
OBJ_BRUSH,
|
|
OBJ_DC,
|
|
OBJ_METADC,
|
|
OBJ_PAL,
|
|
OBJ_FONT,
|
|
OBJ_BITMAP,
|
|
OBJ_REGION,
|
|
OBJ_METAFILE,
|
|
OBJ_MEMDC,
|
|
OBJ_EXTPEN,
|
|
OBJ_ENHMETADC,
|
|
OBJ_ENHMETAFILE,
|
|
OBJ_COLORSPACE,
|
|
}
|
|
|
|
//---------------------
|
|
// Capabilities for GetDeviceCaps(dc, xxx)
|
|
|
|
enum : int {
|
|
DRIVERVERSION = 0,
|
|
TECHNOLOGY = 2,
|
|
HORZSIZE = 4,
|
|
VERTSIZE = 6,
|
|
HORZRES = 8,
|
|
VERTRES = 10,
|
|
BITSPIXEL = 12,
|
|
PLANES = 14,
|
|
NUMBRUSHES = 16,
|
|
NUMPENS = 18,
|
|
NUMMARKERS = 20,
|
|
NUMFONTS = 22,
|
|
NUMCOLORS = 24,
|
|
PDEVICESIZE = 26,
|
|
CURVECAPS = 28,
|
|
LINECAPS = 30,
|
|
POLYGONALCAPS = 32,
|
|
TEXTCAPS = 34,
|
|
CLIPCAPS = 36,
|
|
RASTERCAPS = 38,
|
|
ASPECTX = 40,
|
|
ASPECTY = 42,
|
|
ASPECTXY = 44,
|
|
LOGPIXELSX = 88,
|
|
LOGPIXELSY = 90,
|
|
SIZEPALETTE = 104,
|
|
NUMRESERVED = 106,
|
|
COLORRES = 108,
|
|
PHYSICALWIDTH = 110,
|
|
PHYSICALHEIGHT = 111,
|
|
PHYSICALOFFSETX = 112,
|
|
PHYSICALOFFSETY = 113,
|
|
SCALINGFACTORX = 114,
|
|
SCALINGFACTORY = 115,
|
|
VREFRESH = 116,
|
|
DESKTOPVERTRES = 117,
|
|
DESKTOPHORZRES = 118,
|
|
BLTALIGNMENT = 119
|
|
}
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
enum : int {
|
|
SHADEBLENDCAPS = 120,
|
|
COLORMGMTCAPS = 121,
|
|
}
|
|
}
|
|
|
|
// Return values for GetDeviceCaps(dc, TECHNOLOGY)
|
|
enum : int {
|
|
DT_PLOTTER = 0,
|
|
DT_RASDISPLAY,
|
|
DT_RASPRINTER,
|
|
DT_RASCAMERA,
|
|
DT_CHARSTREAM,
|
|
DT_METAFILE,
|
|
DT_DISPFILE // = 6
|
|
}
|
|
|
|
// Return values for GetDeviceCaps(dc, RASTERCAPS)
|
|
const int
|
|
RC_NONE = 0,
|
|
RC_BITBLT = 1,
|
|
RC_BANDING = 2,
|
|
RC_SCALING = 4,
|
|
RC_BITMAP64 = 8,
|
|
RC_GDI20_OUTPUT = 16,
|
|
RC_GDI20_STATE = 32,
|
|
RC_SAVEBITMAP = 64,
|
|
RC_DI_BITMAP = 128,
|
|
RC_PALETTE = 256,
|
|
RC_DIBTODEV = 512,
|
|
RC_BIGFONT = 1024,
|
|
RC_STRETCHBLT = 2048,
|
|
RC_FLOODFILL = 4096,
|
|
RC_STRETCHDIB = 8192,
|
|
RC_OP_DX_OUTPUT = 0x4000,
|
|
RC_DEVBITS = 0x8000;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
/* Shading and blending caps */
|
|
const SB_NONE = 0x00000000;
|
|
const SB_CONST_ALPHA = 0x00000001;
|
|
const SB_PIXEL_ALPHA = 0x00000002;
|
|
const SB_PREMULT_ALPHA = 0x00000004;
|
|
const SB_GRAD_RECT = 0x00000010;
|
|
const SB_GRAD_TRI = 0x00000020;
|
|
/* Color Management caps */
|
|
const CM_NONE = 0x00000000;
|
|
const CM_DEVICE_ICM = 0x00000001;
|
|
const CM_GAMMA_RAMP = 0x00000002;
|
|
const CM_CMYK_COLOR = 0x00000004;
|
|
}
|
|
|
|
// Return values for GetDeviceCaps(dc, CURVECAPS)
|
|
const int
|
|
CC_NONE = 0,
|
|
CC_CIRCLES = 1,
|
|
CC_PIE = 2,
|
|
CC_CHORD = 4,
|
|
CC_ELLIPSES = 8,
|
|
CC_WIDE = 16,
|
|
CC_STYLED = 32,
|
|
CC_WIDESTYLED = 64,
|
|
CC_INTERIORS = 128,
|
|
CC_ROUNDRECT = 256;
|
|
|
|
// Return values for GetDeviceCaps(dc, LINECAPS)
|
|
|
|
const int
|
|
LC_NONE = 0,
|
|
LC_POLYLINE = 2,
|
|
LC_MARKER = 4,
|
|
LC_POLYMARKER = 8,
|
|
LC_WIDE = 16,
|
|
LC_STYLED = 32,
|
|
LC_WIDESTYLED = 64,
|
|
LC_INTERIORS = 128;
|
|
|
|
// Return values for GetDeviceCaps(dc, POLYGONALCAPS)
|
|
|
|
const int
|
|
PC_NONE = 0,
|
|
PC_POLYGON = 1,
|
|
PC_RECTANGLE = 2,
|
|
PC_WINDPOLYGON = 4,
|
|
PC_TRAPEZOID = 4,
|
|
PC_SCANLINE = 8,
|
|
PC_WIDE = 16,
|
|
PC_STYLED = 32,
|
|
PC_WIDESTYLED = 64,
|
|
PC_INTERIORS = 128,
|
|
PC_POLYPOLYGON = 256,
|
|
PC_PATHS = 512;
|
|
|
|
/* Clipping Capabilities */
|
|
const int CP_NONE = 0,
|
|
CP_RECTANGLE = 1,
|
|
CP_REGION = 2;
|
|
|
|
// Return values for GetDeviceCaps(dc, TEXTCAPS)
|
|
|
|
const int
|
|
TC_OP_CHARACTER = 1,
|
|
TC_OP_STROKE = 2,
|
|
TC_CP_STROKE = 4,
|
|
TC_CR_90 = 8,
|
|
TC_CR_ANY = 16,
|
|
TC_SF_X_YINDEP = 32,
|
|
TC_SA_DOUBLE = 64,
|
|
TC_SA_INTEGER = 128,
|
|
TC_SA_CONTIN = 256,
|
|
TC_EA_DOUBLE = 512,
|
|
TC_IA_ABLE = 1024,
|
|
TC_UA_ABLE = 2048,
|
|
TC_SO_ABLE = 4096,
|
|
TC_RA_ABLE = 8192,
|
|
TC_VA_ABLE = 16384,
|
|
TC_RESERVED = 32768,
|
|
TC_SCROLLBLT = 65536;
|
|
|
|
// End GetDeviceCaps
|
|
//---------------------
|
|
// GetCharacterPlacement(), and GetFontLanguageInfo()
|
|
const DWORD
|
|
GCP_DBCS = 1,
|
|
GCP_REORDER = 2,
|
|
GCP_USEKERNING = 8,
|
|
GCP_GLYPHSHAPE = 16,
|
|
GCP_LIGATE = 32,
|
|
GCP_DIACRITIC = 256,
|
|
GCP_KASHIDA = 1024,
|
|
GCP_ERROR = 0x8000,
|
|
GCP_JUSTIFY = 0x10000,
|
|
GCP_CLASSIN = 0x80000,
|
|
GCP_MAXEXTENT = 0x100000,
|
|
GCP_JUSTIFYIN = 0x200000,
|
|
GCP_DISPLAYZWG = 0x400000,
|
|
GCP_SYMSWAPOFF = 0x800000,
|
|
GCP_NUMERICOVERRIDE = 0x1000000,
|
|
GCP_NEUTRALOVERRIDE = 0x2000000,
|
|
GCP_NUMERICSLATIN = 0x4000000,
|
|
GCP_NUMERICSLOCAL = 0x8000000,
|
|
// Only for GetFontLanguageInfo()
|
|
FLI_GLYPHS = 0x40000,
|
|
FLI_MASK = 0x103b;
|
|
|
|
// GetGlyphOutline()
|
|
enum : UINT {
|
|
GGO_METRICS = 0,
|
|
GGO_BITMAP = 1,
|
|
GGO_NATIVE = 2,
|
|
GGO_BEZIER = 3,
|
|
GGO_GRAY2_BITMAP = 4,
|
|
GGO_GRAY4_BITMAP = 5,
|
|
GGO_GRAY8_BITMAP = 6,
|
|
GGO_GLYPH_INDEX = 128,
|
|
GGO_UNHINTED = 256
|
|
}
|
|
|
|
enum : int {
|
|
GM_COMPATIBLE = 1,
|
|
GM_ADVANCED
|
|
}
|
|
const GM_LAST = GM_ADVANCED;
|
|
|
|
enum : int {
|
|
MM_TEXT = 1,
|
|
MM_LOMETRIC,
|
|
MM_HIMETRIC,
|
|
MM_LOENGLISH,
|
|
MM_HIENGLISH,
|
|
MM_TWIPS,
|
|
MM_ISOTROPIC,
|
|
MM_ANISOTROPIC,
|
|
}
|
|
|
|
const int
|
|
MM_MIN = MM_TEXT,
|
|
MM_MAX = MM_ANISOTROPIC,
|
|
MM_MAX_FIXEDSCALE = MM_TWIPS;
|
|
|
|
const ABSOLUTE = 1;
|
|
const RELATIVE = 2;
|
|
|
|
enum : BYTE {
|
|
PC_RESERVED = 1,
|
|
PC_EXPLICIT = 2,
|
|
PC_NOCOLLAPSE = 4
|
|
}
|
|
|
|
/* FIXME: move to win32.commctrl ? */
|
|
// ImageList
|
|
const COLORREF
|
|
CLR_NONE = 0xffffffff,
|
|
CLR_INVALID = CLR_NONE,
|
|
CLR_DEFAULT = 0xff000000;
|
|
|
|
// RASTERIZER_STATUS.wFlags
|
|
const short
|
|
TT_AVAILABLE = 1,
|
|
TT_ENABLED = 2;
|
|
|
|
// GetStockObject()
|
|
enum : int {
|
|
WHITE_BRUSH = 0,
|
|
LTGRAY_BRUSH,
|
|
GRAY_BRUSH,
|
|
DKGRAY_BRUSH,
|
|
BLACK_BRUSH,
|
|
HOLLOW_BRUSH, // = 5
|
|
NULL_BRUSH = HOLLOW_BRUSH,
|
|
WHITE_PEN = 6,
|
|
BLACK_PEN,
|
|
NULL_PEN, // = 8
|
|
OEM_FIXED_FONT = 10,
|
|
ANSI_FIXED_FONT,
|
|
ANSI_VAR_FONT,
|
|
SYSTEM_FONT,
|
|
DEVICE_DEFAULT_FONT,
|
|
DEFAULT_PALETTE,
|
|
SYSTEM_FIXED_FONT,
|
|
DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1,
|
|
}
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
enum : int {
|
|
DC_BRUSH = DEFAULT_GUI_FONT + 1,
|
|
DC_PEN,
|
|
}
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const STOCK_LAST = DC_PEN;
|
|
} else {
|
|
const STOCK_LAST = DEFAULT_GUI_FONT;
|
|
}
|
|
|
|
// Get/SetSystemPaletteUse()
|
|
enum : UINT {
|
|
SYSPAL_ERROR = 0,
|
|
SYSPAL_STATIC = 1,
|
|
SYSPAL_NOSTATIC = 2,
|
|
SYSPAL_NOSTATIC256 = 3,
|
|
}
|
|
|
|
// SetTextAlign()
|
|
const UINT
|
|
TA_TOP = 0,
|
|
TA_CENTER = 6,
|
|
TA_BOTTOM = 8,
|
|
TA_BASELINE = 24,
|
|
TA_LEFT = 0,
|
|
TA_RIGHT = 2,
|
|
TA_RTLREADING = 256,
|
|
TA_NOUPDATECP = 0,
|
|
TA_UPDATECP = 1,
|
|
TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING,
|
|
VTA_BASELINE = TA_BASELINE,
|
|
VTA_CENTER = TA_CENTER,
|
|
VTA_LEFT = TA_BOTTOM,
|
|
VTA_RIGHT = TA_TOP,
|
|
VTA_BOTTOM = TA_RIGHT,
|
|
VTA_TOP = TA_LEFT;
|
|
|
|
// EMRMODIFYWORLDTRANSFORM.iMode
|
|
enum : DWORD {
|
|
MWT_IDENTITY = 1,
|
|
MWT_LEFTMULTIPLY,
|
|
MWT_RIGHTMULTIPLY
|
|
}
|
|
|
|
const DWORD
|
|
MWT_MIN = MWT_IDENTITY,
|
|
MWT_MAX = MWT_RIGHTMULTIPLY;
|
|
|
|
enum {
|
|
TRANSPARENT = 1,
|
|
OPAQUE = 2
|
|
}
|
|
|
|
// Get/SetStretchMode()
|
|
enum : int {
|
|
BLACKONWHITE = 1,
|
|
WHITEONBLACK = 2,
|
|
COLORONCOLOR = 3,
|
|
HALFTONE = 4,
|
|
|
|
STRETCH_ANDSCANS = 1,
|
|
STRETCH_ORSCANS = 2,
|
|
STRETCH_DELETESCANS = 3,
|
|
STRETCH_HALFTONE = 4,
|
|
|
|
MAXSTRETCHBLTMODE = 4
|
|
}
|
|
|
|
// TranslateCharsetInfo()
|
|
enum : DWORD {
|
|
TCI_SRCCHARSET = 1,
|
|
TCI_SRCCODEPAGE = 2,
|
|
TCI_SRCFONTSIG = 3,
|
|
TCI_SRCLOCALE = 0x1000,
|
|
}
|
|
|
|
// SetICMMode()
|
|
enum : int {
|
|
ICM_OFF = 1,
|
|
ICM_ON = 2,
|
|
ICM_QUERY = 3,
|
|
ICM_DONE_OUTSIDEDC = 4,
|
|
}
|
|
|
|
// ----
|
|
// Escape() Spooler Error Codes
|
|
enum : int {
|
|
SP_NOTREPORTED = 0x4000,
|
|
SP_ERROR = -1,
|
|
SP_APPABORT = -2,
|
|
SP_USERABORT = -3,
|
|
SP_OUTOFDISK = -4,
|
|
SP_OUTOFMEMORY = -5
|
|
}
|
|
|
|
// Escape(), ExtEscape()
|
|
// Most of the following are deprecated (Win16 only)
|
|
enum : int {
|
|
NEWFRAME = 1,
|
|
ABORTDOC = 2,
|
|
NEXTBAND = 3,
|
|
SETCOLORTABLE = 4,
|
|
GETCOLORTABLE = 5,
|
|
FLUSHOUTPUT = 6,
|
|
DRAFTMODE = 7,
|
|
QUERYESCSUPPORT = 8,
|
|
SETABORTPROC = 9,
|
|
STARTDOC = 10,
|
|
ENDDOC = 11,
|
|
GETPHYSPAGESIZE = 12,
|
|
GETPRINTINGOFFSET = 13,
|
|
GETSCALINGFACTOR = 14,
|
|
MFCOMMENT = 15,
|
|
GETPENWIDTH = 16,
|
|
SETCOPYCOUNT = 17,
|
|
SELECTPAPERSOURCE = 18,
|
|
DEVICEDATA = 19,
|
|
PASSTHROUGH = 19,
|
|
GETTECHNOLOGY = 20,
|
|
SETLINECAP = 21,
|
|
SETLINEJOIN = 22,
|
|
SETMITERLIMIT = 23,
|
|
BANDINFO = 24,
|
|
DRAWPATTERNRECT = 25,
|
|
GETVECTORPENSIZE = 26,
|
|
GETVECTORBRUSHSIZE = 27,
|
|
ENABLEDUPLEX = 28,
|
|
GETSETPAPERBINS = 29,
|
|
GETSETPRINTORIENT = 30,
|
|
ENUMPAPERBINS = 31,
|
|
SETDIBSCALING = 32,
|
|
EPSPRINTING = 33,
|
|
ENUMPAPERMETRICS = 34,
|
|
GETSETPAPERMETRICS = 35,
|
|
POSTSCRIPT_DATA = 37,
|
|
POSTSCRIPT_IGNORE = 38,
|
|
MOUSETRAILS = 39,
|
|
GETDEVICEUNITS = 42,
|
|
GETEXTENDEDTEXTMETRICS = 256,
|
|
GETEXTENTTABLE = 257,
|
|
GETPAIRKERNTABLE = 258,
|
|
GETTRACKKERNTABLE = 259,
|
|
EXTTEXTOUT = 512,
|
|
GETFACENAME = 513,
|
|
DOWNLOADFACE = 514,
|
|
ENABLERELATIVEWIDTHS = 768,
|
|
ENABLEPAIRKERNING = 769,
|
|
SETKERNTRACK = 770,
|
|
SETALLJUSTVALUES = 771,
|
|
SETCHARSET = 772,
|
|
STRETCHBLT = 2048,
|
|
METAFILE_DRIVER = 2049,
|
|
GETSETSCREENPARAMS = 3072,
|
|
QUERYDIBSUPPORT = 3073,
|
|
BEGIN_PATH = 4096,
|
|
CLIP_TO_PATH = 4097,
|
|
END_PATH = 4098,
|
|
EXT_DEVICE_CAPS = 4099,
|
|
RESTORE_CTM = 4100,
|
|
SAVE_CTM = 4101,
|
|
SET_ARC_DIRECTION = 4102,
|
|
SET_BACKGROUND_COLOR = 4103,
|
|
SET_POLY_MODE = 4104,
|
|
SET_SCREEN_ANGLE = 4105,
|
|
SET_SPREAD = 4106,
|
|
TRANSFORM_CTM = 4107,
|
|
SET_CLIP_BOX = 4108,
|
|
SET_BOUNDS = 4109,
|
|
SET_MIRROR_MODE = 4110,
|
|
OPENCHANNEL = 4110,
|
|
DOWNLOADHEADER = 4111,
|
|
CLOSECHANNEL = 4112,
|
|
POSTSCRIPT_PASSTHROUGH = 4115,
|
|
ENCAPSULATED_POSTSCRIPT = 4116,
|
|
POSTSCRIPT_IDENTIFY = 4117,
|
|
POSTSCRIPT_INJECTION = 4118,
|
|
CHECKJPEGFORMAT = 4119,
|
|
CHECKPNGFORMAT = 4120,
|
|
GET_PS_FEATURESETTING = 4121,
|
|
SPCLPASSTHROUGH2 = 4568,
|
|
}
|
|
|
|
enum : int {
|
|
PSIDENT_GDICENTRIC = 0,
|
|
PSIDENT_PSCENTRIC = 1,
|
|
}
|
|
|
|
/*
|
|
* Header structure for the input buffer to POSTSCRIPT_INJECTION escape
|
|
*/
|
|
struct PSINJECTDATA {
|
|
DWORD DataBytes;
|
|
WORD InjectionPoint;
|
|
WORD PageNumber;
|
|
}
|
|
alias PSINJECTDATA* PPSINJECTDATA;
|
|
|
|
/* Constants for PSINJECTDATA.InjectionPoint field */
|
|
enum {
|
|
PSINJECT_BEGINSTREAM = 1,
|
|
PSINJECT_PSADOBE = 2,
|
|
PSINJECT_PAGESATEND = 3,
|
|
PSINJECT_PAGES = 4,
|
|
PSINJECT_DOCNEEDEDRES = 5,
|
|
PSINJECT_DOCSUPPLIEDRES = 6,
|
|
PSINJECT_PAGEORDER = 7,
|
|
PSINJECT_ORIENTATION = 8,
|
|
PSINJECT_BOUNDINGBOX = 9,
|
|
PSINJECT_DOCUMENTPROCESSCOLORS = 10,
|
|
PSINJECT_COMMENTS = 11,
|
|
PSINJECT_BEGINDEFAULTS = 12,
|
|
PSINJECT_ENDDEFAULTS = 13,
|
|
PSINJECT_BEGINPROLOG = 14,
|
|
PSINJECT_ENDPROLOG = 15,
|
|
PSINJECT_BEGINSETUP = 16,
|
|
PSINJECT_ENDSETUP = 17,
|
|
PSINJECT_TRAILER = 18,
|
|
PSINJECT_EOF = 19,
|
|
PSINJECT_ENDSTREAM = 20,
|
|
PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21,
|
|
|
|
PSINJECT_PAGENUMBER = 100,
|
|
PSINJECT_BEGINPAGESETUP = 101,
|
|
PSINJECT_ENDPAGESETUP = 102,
|
|
PSINJECT_PAGETRAILER = 103,
|
|
PSINJECT_PLATECOLOR = 104,
|
|
PSINJECT_SHOWPAGE = 105,
|
|
PSINJECT_PAGEBBOX = 106,
|
|
PSINJECT_ENDPAGECOMMENTS = 107,
|
|
|
|
PSINJECT_VMSAVE = 200,
|
|
PSINJECT_VMRESTORE = 201,
|
|
}
|
|
|
|
/* Parameter for GET_PS_FEATURESETTING escape */
|
|
enum {
|
|
FEATURESETTING_NUP = 0,
|
|
FEATURESETTING_OUTPUT = 1,
|
|
FEATURESETTING_PSLEVEL = 2,
|
|
FEATURESETTING_CUSTPAPER = 3,
|
|
FEATURESETTING_MIRROR = 4,
|
|
FEATURESETTING_NEGATIVE = 5,
|
|
FEATURESETTING_PROTOCOL = 6,
|
|
}
|
|
|
|
enum {
|
|
FEATURESETTING_PRIVATE_BEGIN = 0x1000,
|
|
FEATURESETTING_PRIVATE_END = 0x1FFF,
|
|
}
|
|
|
|
/* Value returned for FEATURESETTING_PROTOCOL */
|
|
const PSPROTOCOL_ASCII = 0;
|
|
const PSPROTOCOL_BCP = 1;
|
|
const PSPROTOCOL_TBCP = 2;
|
|
const PSPROTOCOL_BINARY = 3;
|
|
|
|
// ----
|
|
|
|
const WPARAM PR_JOBSTATUS = 0;
|
|
|
|
// ???
|
|
const QDI_SETDIBITS = 1;
|
|
const QDI_GETDIBITS = 2;
|
|
const QDI_DIBTOSCREEN = 4;
|
|
const QDI_STRETCHDIB = 8;
|
|
|
|
const ASPECT_FILTERING = 1;
|
|
|
|
// LOGCOLORSPACE.lcsCSType
|
|
enum : LCSCSTYPE {
|
|
LCS_CALIBRATED_RGB = 0,
|
|
LCS_DEVICE_RGB,
|
|
LCS_DEVICE_CMYK
|
|
} /* What this for? */
|
|
|
|
// LOGCOLORSPACE.lcsIntent
|
|
enum : LCSGAMUTMATCH {
|
|
LCS_GM_BUSINESS = 1,
|
|
LCS_GM_GRAPHICS = 2,
|
|
LCS_GM_IMAGES = 4,
|
|
LCS_GM_ABS_COLORIMETRIC = 8,
|
|
}
|
|
|
|
const DWORD
|
|
RASTER_FONTTYPE = 1,
|
|
DEVICE_FONTTYPE = 2,
|
|
TRUETYPE_FONTTYPE = 4;
|
|
|
|
// ---
|
|
// DEVMODE struct
|
|
|
|
// FIXME: Not needed for D (use .length instead)
|
|
const CCHDEVICENAME = 32;
|
|
const CCHFORMNAME = 32;
|
|
|
|
// DEVMODE.dmSpecVersion
|
|
// current version of specification
|
|
const WORD DM_SPECVERSION = 0x0401;
|
|
|
|
// DEVMODE.dmOrientation
|
|
enum : short {
|
|
DMORIENT_PORTRAIT = 1,
|
|
DMORIENT_LANDSCAPE = 2
|
|
}
|
|
|
|
// DEVMODE.dmPaperSize
|
|
enum : short {
|
|
DMPAPER_LETTER = 1,
|
|
DMPAPER_LETTERSMALL,
|
|
DMPAPER_TABLOID,
|
|
DMPAPER_LEDGER,
|
|
DMPAPER_LEGAL,
|
|
DMPAPER_STATEMENT,
|
|
DMPAPER_EXECUTIVE,
|
|
DMPAPER_A3,
|
|
DMPAPER_A4,
|
|
DMPAPER_A4SMALL,
|
|
DMPAPER_A5,
|
|
DMPAPER_B4,
|
|
DMPAPER_B5,
|
|
DMPAPER_FOLIO,
|
|
DMPAPER_QUARTO,
|
|
DMPAPER_10X14,
|
|
DMPAPER_11X17,
|
|
DMPAPER_NOTE,
|
|
DMPAPER_ENV_9,
|
|
DMPAPER_ENV_10,
|
|
DMPAPER_ENV_11,
|
|
DMPAPER_ENV_12,
|
|
DMPAPER_ENV_14,
|
|
DMPAPER_CSHEET,
|
|
DMPAPER_DSHEET,
|
|
DMPAPER_ESHEET,
|
|
DMPAPER_ENV_DL,
|
|
DMPAPER_ENV_C5,
|
|
DMPAPER_ENV_C3,
|
|
DMPAPER_ENV_C4,
|
|
DMPAPER_ENV_C6,
|
|
DMPAPER_ENV_C65,
|
|
DMPAPER_ENV_B4,
|
|
DMPAPER_ENV_B5,
|
|
DMPAPER_ENV_B6,
|
|
DMPAPER_ENV_ITALY,
|
|
DMPAPER_ENV_MONARCH,
|
|
DMPAPER_ENV_PERSONAL,
|
|
DMPAPER_FANFOLD_US,
|
|
DMPAPER_FANFOLD_STD_GERMAN,
|
|
DMPAPER_FANFOLD_LGL_GERMAN,
|
|
DMPAPER_ISO_B4,
|
|
DMPAPER_JAPANESE_POSTCARD,
|
|
DMPAPER_9X11,
|
|
DMPAPER_10X11,
|
|
DMPAPER_15X11,
|
|
DMPAPER_ENV_INVITE,
|
|
DMPAPER_RESERVED_48,
|
|
DMPAPER_RESERVED_49,
|
|
DMPAPER_LETTER_EXTRA,
|
|
DMPAPER_LEGAL_EXTRA,
|
|
DMPAPER_TABLOID_EXTRA,
|
|
DMPAPER_A4_EXTRA,
|
|
DMPAPER_LETTER_TRANSVERSE,
|
|
DMPAPER_A4_TRANSVERSE,
|
|
DMPAPER_LETTER_EXTRA_TRANSVERSE,
|
|
DMPAPER_A_PLUS,
|
|
DMPAPER_B_PLUS,
|
|
DMPAPER_LETTER_PLUS,
|
|
DMPAPER_A4_PLUS,
|
|
DMPAPER_A5_TRANSVERSE,
|
|
DMPAPER_B5_TRANSVERSE,
|
|
DMPAPER_A3_EXTRA,
|
|
DMPAPER_A5_EXTRA,
|
|
DMPAPER_B5_EXTRA,
|
|
DMPAPER_A2,
|
|
DMPAPER_A3_TRANSVERSE,
|
|
DMPAPER_A3_EXTRA_TRANSVERSE // = 68
|
|
}
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
enum : short {
|
|
DMPAPER_DBL_JAPANESE_POSTCARD = 69,
|
|
DMPAPER_A6,
|
|
DMPAPER_JENV_KAKU2,
|
|
DMPAPER_JENV_KAKU3,
|
|
DMPAPER_JENV_CHOU3,
|
|
DMPAPER_JENV_CHOU4,
|
|
DMPAPER_LETTER_ROTATED,
|
|
DMPAPER_A3_ROTATED,
|
|
DMPAPER_A4_ROTATED,
|
|
DMPAPER_A5_ROTATED,
|
|
DMPAPER_B4_JIS_ROTATED,
|
|
DMPAPER_B5_JIS_ROTATED,
|
|
DMPAPER_JAPANESE_POSTCARD_ROTATED,
|
|
DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED,
|
|
DMPAPER_A6_ROTATED,
|
|
DMPAPER_JENV_KAKU2_ROTATED,
|
|
DMPAPER_JENV_KAKU3_ROTATED,
|
|
DMPAPER_JENV_CHOU3_ROTATED,
|
|
DMPAPER_JENV_CHOU4_ROTATED,
|
|
DMPAPER_B6_JIS,
|
|
DMPAPER_B6_JIS_ROTATED,
|
|
DMPAPER_12X11,
|
|
DMPAPER_JENV_YOU4,
|
|
DMPAPER_JENV_YOU4_ROTATED,
|
|
DMPAPER_P16K,
|
|
DMPAPER_P32K,
|
|
DMPAPER_P32KBIG,
|
|
DMPAPER_PENV_1,
|
|
DMPAPER_PENV_2,
|
|
DMPAPER_PENV_3,
|
|
DMPAPER_PENV_4,
|
|
DMPAPER_PENV_5,
|
|
DMPAPER_PENV_6,
|
|
DMPAPER_PENV_7,
|
|
DMPAPER_PENV_8,
|
|
DMPAPER_PENV_9,
|
|
DMPAPER_PENV_10,
|
|
DMPAPER_P16K_ROTATED,
|
|
DMPAPER_P32K_ROTATED,
|
|
DMPAPER_P32KBIG_ROTATED,
|
|
DMPAPER_PENV_1_ROTATED,
|
|
DMPAPER_PENV_2_ROTATED,
|
|
DMPAPER_PENV_3_ROTATED,
|
|
DMPAPER_PENV_4_ROTATED,
|
|
DMPAPER_PENV_5_ROTATED,
|
|
DMPAPER_PENV_6_ROTATED,
|
|
DMPAPER_PENV_7_ROTATED,
|
|
DMPAPER_PENV_8_ROTATED,
|
|
DMPAPER_PENV_9_ROTATED,
|
|
DMPAPER_PENV_10_ROTATED // 118
|
|
}
|
|
}
|
|
|
|
const short DMPAPER_FIRST = DMPAPER_LETTER;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED;
|
|
} else {
|
|
const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE;
|
|
}
|
|
|
|
const short DMPAPER_USER = 256;
|
|
|
|
|
|
// DEVMODE.dmDefaultSource
|
|
enum : short {
|
|
DMBIN_ONLYONE = 1,
|
|
DMBIN_UPPER = 1,
|
|
DMBIN_LOWER,
|
|
DMBIN_MIDDLE,
|
|
DMBIN_MANUAL,
|
|
DMBIN_ENVELOPE,
|
|
DMBIN_ENVMANUAL,
|
|
DMBIN_AUTO,
|
|
DMBIN_TRACTOR,
|
|
DMBIN_SMALLFMT,
|
|
DMBIN_LARGEFMT,
|
|
DMBIN_LARGECAPACITY, // = 11
|
|
DMBIN_CASSETTE = 14,
|
|
DMBIN_FORMSOURCE,
|
|
}
|
|
enum : short {
|
|
DMBIN_FIRST = DMBIN_UPPER,
|
|
DMBIN_LAST = DMBIN_FORMSOURCE,
|
|
DMBIN_USER = 256,
|
|
}
|
|
|
|
// DEVMODE.dmPrintQuality
|
|
enum : short {
|
|
DMRES_DRAFT = -1,
|
|
DMRES_LOW = -2,
|
|
DMRES_MEDIUM = -3,
|
|
DMRES_HIGH = -4
|
|
}
|
|
|
|
// DEVMODE.dmColor
|
|
enum : short {
|
|
DMCOLOR_MONOCHROME = 1,
|
|
DMCOLOR_COLOR = 2
|
|
}
|
|
|
|
// DEVMODE.dmDuplex
|
|
enum : short {
|
|
DMDUP_SIMPLEX = 1,
|
|
DMDUP_VERTICAL = 2,
|
|
DMDUP_HORIZONTAL = 3
|
|
}
|
|
|
|
// DEVMODE.dmTTOption
|
|
enum : short {
|
|
DMTT_BITMAP = 1,
|
|
DMTT_DOWNLOAD,
|
|
DMTT_SUBDEV,
|
|
DMTT_DOWNLOAD_OUTLINE
|
|
}
|
|
|
|
// DEVMODE.dmCollate
|
|
enum : short {
|
|
DMCOLLATE_FALSE = 0,
|
|
DMCOLLATE_TRUE
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x501) {
|
|
/* DEVMODE dmDisplayOrientation specifiations */
|
|
enum : short {
|
|
DMDO_DEFAULT = 0,
|
|
DMDO_90 = 1,
|
|
DMDO_180 = 2,
|
|
DMDO_270 = 3,
|
|
}
|
|
|
|
/* DEVMODE dmDisplayFixedOutput specifiations */
|
|
enum : short {
|
|
DMDFO_DEFAULT = 0,
|
|
DMDFO_STRETCH = 1,
|
|
DMDFO_CENTER = 2,
|
|
}
|
|
}
|
|
|
|
|
|
/* FIXME: this flags are deprecated ? */
|
|
// DEVMODE.dmDisplayFlags
|
|
const DWORD
|
|
DM_GRAYSCALE = 1,
|
|
DM_INTERLACED = 2;
|
|
|
|
const DWORD
|
|
DMDISPLAYFLAGS_TEXTMODE = 0x00000004;
|
|
|
|
/* dmNup , multiple logical page per physical page options */
|
|
const DWORD
|
|
DMNUP_SYSTEM = 1,
|
|
DMNUP_ONEUP = 2;
|
|
|
|
// DEVMODE.dmFields
|
|
const DWORD
|
|
DM_ORIENTATION = 0x00000001,
|
|
DM_PAPERSIZE = 0x00000002,
|
|
DM_PAPERLENGTH = 0x00000004,
|
|
DM_PAPERWIDTH = 0x00000008,
|
|
DM_SCALE = 0x00000010;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const DWORD
|
|
DM_POSITION = 0x00000020,
|
|
DM_NUP = 0x00000040;
|
|
}
|
|
static if (_WIN32_WINNT >= 0x501) {
|
|
const DWORD
|
|
DM_DISPLAYORIENTATION = 0x00000080;
|
|
}
|
|
const DWORD
|
|
DM_COPIES = 0x00000100,
|
|
DM_DEFAULTSOURCE = 0x00000200,
|
|
DM_PRINTQUALITY = 0x00000400,
|
|
DM_COLOR = 0x00000800,
|
|
DM_DUPLEX = 0x00001000,
|
|
DM_YRESOLUTION = 0x00002000,
|
|
DM_TTOPTION = 0x00004000,
|
|
DM_COLLATE = 0x00008000,
|
|
DM_FORMNAME = 0x00010000,
|
|
DM_LOGPIXELS = 0x00020000,
|
|
DM_BITSPERPEL = 0x00040000,
|
|
DM_PELSWIDTH = 0x00080000,
|
|
DM_PELSHEIGHT = 0x00100000,
|
|
DM_DISPLAYFLAGS = 0x00200000,
|
|
DM_DISPLAYFREQUENCY = 0x00400000,
|
|
DM_ICMMETHOD = 0x00800000,
|
|
DM_ICMINTENT = 0x01000000,
|
|
DM_MEDIATYPE = 0x02000000,
|
|
DM_DITHERTYPE = 0x04000000,
|
|
DM_PANNINGWIDTH = 0x08000000,
|
|
DM_PANNINGHEIGHT = 0x10000000;
|
|
static if (_WIN32_WINNT >= 0x501) {
|
|
const DWORD
|
|
DM_DISPLAYFIXEDOUTPUT = 0x20000000;
|
|
}
|
|
|
|
// DEVMODE.dmICMMethod
|
|
enum : DWORD {
|
|
DMICMMETHOD_NONE = 1,
|
|
DMICMMETHOD_SYSTEM = 2,
|
|
DMICMMETHOD_DRIVER = 3,
|
|
DMICMMETHOD_DEVICE = 4,
|
|
DMICMMETHOD_USER = 256
|
|
}
|
|
|
|
// DEVMODE.dmICMIntent
|
|
enum : DWORD {
|
|
DMICM_SATURATE = 1,
|
|
DMICM_CONTRAST = 2,
|
|
DMICM_COLORIMETRIC = 3,
|
|
DMICM_ABS_COLORIMETRIC = 4,
|
|
DMICM_USER = 256
|
|
}
|
|
|
|
// DEVMODE.dmMediaType
|
|
enum : DWORD {
|
|
DMMEDIA_STANDARD = 1,
|
|
DMMEDIA_TRANSPARENCY = 2,
|
|
DMMEDIA_GLOSSY = 3,
|
|
DMMEDIA_USER = 256
|
|
}
|
|
|
|
// DEVMODE.dmDitherType
|
|
enum : DWORD {
|
|
DMDITHER_NONE = 1,
|
|
DMDITHER_COARSE,
|
|
DMDITHER_FINE,
|
|
DMDITHER_LINEART,
|
|
DMDITHER_ERRORDIFFUSION,
|
|
DMDITHER_RESERVED6,
|
|
DMDITHER_RESERVED7,
|
|
DMDITHER_RESERVED8,
|
|
DMDITHER_RESERVED9,
|
|
DMDITHER_GRAYSCALE,
|
|
DMDITHER_USER = 256
|
|
}
|
|
|
|
// ----
|
|
// DocumentProperties()
|
|
const DWORD
|
|
DM_UPDATE = 1,
|
|
DM_COPY = 2,
|
|
DM_PROMPT = 4,
|
|
DM_MODIFY = 8,
|
|
DM_IN_BUFFER = DM_MODIFY,
|
|
DM_IN_PROMPT = DM_PROMPT,
|
|
DM_OUT_BUFFER = DM_COPY,
|
|
DM_OUT_DEFAULT = DM_UPDATE;
|
|
// ---
|
|
|
|
const GDI_ERROR = 0xFFFFFFFF;
|
|
const HGDI_ERROR= cast(HANDLE)GDI_ERROR;
|
|
|
|
// TEXTMETRIC.tmPitchAndFamily
|
|
const BYTE
|
|
TMPF_FIXED_PITCH = 1,
|
|
TMPF_VECTOR = 2,
|
|
TMPF_TRUETYPE = 4,
|
|
TMPF_DEVICE = 8;
|
|
|
|
// NEWTEXTMETRIC.ntmFlags
|
|
const DWORD
|
|
NTM_ITALIC = 0x00000001,
|
|
NTM_BOLD = 0x00000020,
|
|
NTM_REGULAR = 0x00000040,
|
|
NTM_NONNEGATIVE_AC = 0x00010000,
|
|
NTM_PS_OPENTYPE = 0x00020000,
|
|
NTM_TT_OPENTYPE = 0x00040000,
|
|
NTM_MULTIPLEMASTER = 0x00080000,
|
|
NTM_TYPE1 = 0x00100000,
|
|
NTM_DSIG = 0x00200000;
|
|
|
|
// ---
|
|
const DWORD TT_POLYGON_TYPE = 24;
|
|
|
|
// TTPOLYCURVE
|
|
enum : WORD {
|
|
TT_PRIM_LINE = 1,
|
|
TT_PRIM_QSPLINE = 2,
|
|
TT_PRIM_CSPLINE = 3,
|
|
}
|
|
// ---
|
|
const FONTMAPPER_MAX = 10;
|
|
const ENHMETA_STOCK_OBJECT = 0x80000000;
|
|
const WGL_FONT_LINES = 0;
|
|
const WGL_FONT_POLYGONS = 1;
|
|
|
|
// ---
|
|
// LAYERPLANEDESCRIPTOR.dwFlags
|
|
const DWORD
|
|
LPD_DOUBLEBUFFER = 1,
|
|
LPD_STEREO = 2,
|
|
LPD_SUPPORT_GDI = 16,
|
|
LPD_SUPPORT_OPENGL = 32,
|
|
LPD_SHARE_DEPTH = 64,
|
|
LPD_SHARE_STENCIL = 128,
|
|
LPD_SHARE_ACCUM = 256,
|
|
LPD_SWAP_EXCHANGE = 512,
|
|
LPD_SWAP_COPY = 1024,
|
|
LPD_TRANSPARENT = 4096;
|
|
|
|
// LAYERPLANEDESCRIPTOR.iPixelType
|
|
enum : BYTE {
|
|
LPD_TYPE_RGBA = 0,
|
|
LPD_TYPE_COLORINDEX = 1
|
|
}
|
|
|
|
// ---
|
|
|
|
// wglSwapLayerBuffers()
|
|
const UINT
|
|
WGL_SWAP_MAIN_PLANE = 1,
|
|
WGL_SWAP_OVERLAY1 = 2,
|
|
WGL_SWAP_OVERLAY2 = 4,
|
|
WGL_SWAP_OVERLAY3 = 8,
|
|
WGL_SWAP_OVERLAY4 = 16,
|
|
WGL_SWAP_OVERLAY5 = 32,
|
|
WGL_SWAP_OVERLAY6 = 64,
|
|
WGL_SWAP_OVERLAY7 = 128,
|
|
WGL_SWAP_OVERLAY8 = 256,
|
|
WGL_SWAP_OVERLAY9 = 512,
|
|
WGL_SWAP_OVERLAY10 = 1024,
|
|
WGL_SWAP_OVERLAY11 = 2048,
|
|
WGL_SWAP_OVERLAY12 = 4096,
|
|
WGL_SWAP_OVERLAY13 = 8192,
|
|
WGL_SWAP_OVERLAY14 = 16384,
|
|
WGL_SWAP_OVERLAY15 = 32768,
|
|
WGL_SWAP_UNDERLAY1 = 65536,
|
|
WGL_SWAP_UNDERLAY2 = 0x20000,
|
|
WGL_SWAP_UNDERLAY3 = 0x40000,
|
|
WGL_SWAP_UNDERLAY4 = 0x80000,
|
|
WGL_SWAP_UNDERLAY5 = 0x100000,
|
|
WGL_SWAP_UNDERLAY6 = 0x200000,
|
|
WGL_SWAP_UNDERLAY7 = 0x400000,
|
|
WGL_SWAP_UNDERLAY8 = 0x800000,
|
|
WGL_SWAP_UNDERLAY9 = 0x1000000,
|
|
WGL_SWAP_UNDERLAY10 = 0x2000000,
|
|
WGL_SWAP_UNDERLAY11 = 0x4000000,
|
|
WGL_SWAP_UNDERLAY12 = 0x8000000,
|
|
WGL_SWAP_UNDERLAY13 = 0x10000000,
|
|
WGL_SWAP_UNDERLAY14 = 0x20000000,
|
|
WGL_SWAP_UNDERLAY15 = 0x40000000;
|
|
|
|
const AC_SRC_OVER = 0x00;
|
|
const AC_SRC_ALPHA = 0x01;
|
|
|
|
// ???
|
|
const AC_SRC_NO_PREMULT_ALPHA = 0x01;
|
|
const AC_SRC_NO_ALPHA = 0x02;
|
|
const AC_DST_NO_PREMULT_ALPHA = 0x10;
|
|
const AC_DST_NO_ALPHA = 0x20;
|
|
|
|
const LAYOUT_RTL = 1;
|
|
const LAYOUT_BTT = 2;
|
|
const LAYOUT_VBH = 4;
|
|
const LAYOUT_BITMAPORIENTATIONPRESERVED = 8;
|
|
|
|
const CS_ENABLE = 0x00000001;
|
|
const CS_DISABLE = 0x00000002;
|
|
const CS_DELETE_TRANSFORM = 0x00000003;
|
|
|
|
static if (_WIN32_WINNT > 0x500) {
|
|
const GRADIENT_FILL_RECT_H=0x00;
|
|
const GRADIENT_FILL_RECT_V=0x01;
|
|
const GRADIENT_FILL_TRIANGLE=0x02;
|
|
const GRADIENT_FILL_OP_FLAG=0xff;
|
|
const COLORMATCHTOTARGET_EMBEDED=0x00000001;
|
|
const CREATECOLORSPACE_EMBEDED=0x00000001;
|
|
const SETICMPROFILE_EMBEDED=0x00000001;
|
|
}
|
|
|
|
// DISPLAY_DEVICE.StateFlags
|
|
const DWORD
|
|
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001,
|
|
DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002,
|
|
DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004,
|
|
DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008,
|
|
DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010,
|
|
DISPLAY_DEVICE_REMOVABLE = 0x00000020,
|
|
DISPLAY_DEVICE_DISCONNECT = 0x02000000,
|
|
DISPLAY_DEVICE_REMOTE = 0x04000000,
|
|
DISPLAY_DEVICE_MODESPRUNED = 0x08000000;
|
|
|
|
/* Child device state */
|
|
const DWORD
|
|
DISPLAY_DEVICE_ACTIVE = 0x00000001,
|
|
DISPLAY_DEVICE_ATTACHED = 0x00000002;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
const GGI_MARK_NONEXISTING_GLYPHS = 1;
|
|
}
|
|
|
|
// ----------
|
|
// STRUCTS
|
|
// ----------
|
|
|
|
struct ABC {
|
|
int abcA;
|
|
UINT abcB;
|
|
int abcC;
|
|
}
|
|
alias ABC* PABC, NPABC, LPABC;
|
|
|
|
struct ABCFLOAT {
|
|
FLOAT abcfA;
|
|
FLOAT abcfB;
|
|
FLOAT abcfC;
|
|
}
|
|
alias ABCFLOAT* PABCFLOAT, NPABCFLOAT, LPABCFLOAT;
|
|
|
|
struct BITMAP {
|
|
LONG bmType;
|
|
LONG bmWidth;
|
|
LONG bmHeight;
|
|
LONG bmWidthBytes;
|
|
WORD bmPlanes;
|
|
WORD bmBitsPixel;
|
|
LPVOID bmBits;
|
|
}
|
|
alias BITMAP* PBITMAP, NPBITMAP, LPBITMAP;
|
|
|
|
struct BITMAPCOREHEADER {
|
|
DWORD bcSize;
|
|
WORD bcWidth;
|
|
WORD bcHeight;
|
|
WORD bcPlanes;
|
|
WORD bcBitCount;
|
|
}
|
|
alias BITMAPCOREHEADER* PBITMAPCOREHEADER, LPBITMAPCOREHEADER;
|
|
|
|
align(1):
|
|
struct RGBTRIPLE {
|
|
BYTE rgbtBlue;
|
|
BYTE rgbtGreen;
|
|
BYTE rgbtRed;
|
|
}
|
|
alias RGBTRIPLE* LPRGBTRIPLE;
|
|
|
|
align(2):
|
|
struct BITMAPFILEHEADER {
|
|
WORD bfType;
|
|
DWORD bfSize;
|
|
WORD bfReserved1;
|
|
WORD bfReserved2;
|
|
DWORD bfOffBits;
|
|
}
|
|
alias BITMAPFILEHEADER* LPBITMAPFILEHEADER, PBITMAPFILEHEADER;
|
|
|
|
align:
|
|
|
|
struct BITMAPCOREINFO {
|
|
BITMAPCOREHEADER bmciHeader;
|
|
RGBTRIPLE[1] bmciColors;
|
|
}
|
|
alias BITMAPCOREINFO* LPBITMAPCOREINFO, PBITMAPCOREINFO;
|
|
|
|
struct BITMAPINFOHEADER {
|
|
DWORD biSize;
|
|
LONG biWidth;
|
|
LONG biHeight;
|
|
WORD biPlanes;
|
|
WORD biBitCount;
|
|
DWORD biCompression;
|
|
DWORD biSizeImage;
|
|
LONG biXPelsPerMeter;
|
|
LONG biYPelsPerMeter;
|
|
DWORD biClrUsed;
|
|
DWORD biClrImportant;
|
|
}
|
|
|
|
alias BITMAPINFOHEADER* LPBITMAPINFOHEADER, PBITMAPINFOHEADER;
|
|
|
|
struct RGBQUAD {
|
|
BYTE rgbBlue;
|
|
BYTE rgbGreen;
|
|
BYTE rgbRed;
|
|
BYTE rgbReserved;
|
|
};
|
|
alias RGBQUAD* LPRGBQUAD;
|
|
|
|
struct BITMAPINFO {
|
|
BITMAPINFOHEADER bmiHeader;
|
|
RGBQUAD[1] bmiColors;
|
|
};
|
|
alias BITMAPINFO* PBITMAPINFO, LPBITMAPINFO;
|
|
|
|
alias int FXPT16DOT16;
|
|
alias int* LPFXPT16DOT16;
|
|
alias int FXPT2DOT30;
|
|
alias int* LPFXPT2DOT30;
|
|
|
|
struct CIEXYZ {
|
|
FXPT2DOT30 ciexyzX;
|
|
FXPT2DOT30 ciexyzY;
|
|
FXPT2DOT30 ciexyzZ;
|
|
}
|
|
alias CIEXYZ* LPCIEXYZ;
|
|
|
|
struct CIEXYZTRIPLE {
|
|
CIEXYZ ciexyzRed;
|
|
CIEXYZ ciexyzGreen;
|
|
CIEXYZ ciexyzBlue;
|
|
}
|
|
alias CIEXYZTRIPLE* LPCIEXYZTRIPLE;
|
|
|
|
struct BITMAPV4HEADER {
|
|
DWORD bV4Size;
|
|
LONG bV4Width;
|
|
LONG bV4Height;
|
|
WORD bV4Planes;
|
|
WORD bV4BitCount;
|
|
DWORD bV4V4Compression;
|
|
DWORD bV4SizeImage;
|
|
LONG bV4XPelsPerMeter;
|
|
LONG bV4YPelsPerMeter;
|
|
DWORD bV4ClrUsed;
|
|
DWORD bV4ClrImportant;
|
|
DWORD bV4RedMask;
|
|
DWORD bV4GreenMask;
|
|
DWORD bV4BlueMask;
|
|
DWORD bV4AlphaMask;
|
|
DWORD bV4CSType;
|
|
CIEXYZTRIPLE bV4Endpoints;
|
|
DWORD bV4GammaRed;
|
|
DWORD bV4GammaGreen;
|
|
DWORD bV4GammaBlue;
|
|
}
|
|
alias BITMAPV4HEADER* LPBITMAPV4HEADER, PBITMAPV4HEADER;
|
|
|
|
struct BITMAPV5HEADER {
|
|
DWORD bV5Size;
|
|
LONG bV5Width;
|
|
LONG bV5Height;
|
|
WORD bV5Planes;
|
|
WORD bV5BitCount;
|
|
DWORD bV5Compression;
|
|
DWORD bV5SizeImage;
|
|
LONG bV5XPelsPerMeter;
|
|
LONG bV5YPelsPerMeter;
|
|
DWORD bV5ClrUsed;
|
|
DWORD bV5ClrImportant;
|
|
DWORD bV5RedMask;
|
|
DWORD bV5GreenMask;
|
|
DWORD bV5BlueMask;
|
|
DWORD bV5AlphaMask;
|
|
DWORD bV5CSType;
|
|
CIEXYZTRIPLE bV5Endpoints;
|
|
DWORD bV5GammaRed;
|
|
DWORD bV5GammaGreen;
|
|
DWORD bV5GammaBlue;
|
|
DWORD bV5Intent;
|
|
DWORD bV5ProfileData;
|
|
DWORD bV5ProfileSize;
|
|
DWORD bV5Reserved;
|
|
}
|
|
alias BITMAPV5HEADER* LPBITMAPV5HEADER, PBITMAPV5HEADER;
|
|
|
|
struct FONTSIGNATURE {
|
|
DWORD[4] fsUsb;
|
|
DWORD[2] fsCsb;
|
|
}
|
|
alias FONTSIGNATURE* PFONTSIGNATURE, LPFONTSIGNATURE;
|
|
|
|
struct CHARSETINFO {
|
|
UINT ciCharset;
|
|
UINT ciACP;
|
|
FONTSIGNATURE fs;
|
|
}
|
|
alias CHARSETINFO* PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO;
|
|
|
|
struct COLORADJUSTMENT {
|
|
WORD caSize;
|
|
WORD caFlags;
|
|
WORD caIlluminantIndex;
|
|
WORD caRedGamma;
|
|
WORD caGreenGamma;
|
|
WORD caBlueGamma;
|
|
WORD caReferenceBlack;
|
|
WORD caReferenceWhite;
|
|
SHORT caContrast;
|
|
SHORT caBrightness;
|
|
SHORT caColorfulness;
|
|
SHORT caRedGreenTint;
|
|
}
|
|
alias COLORADJUSTMENT* PCOLORADJUSTMENT, LPCOLORADJUSTMENT;
|
|
|
|
struct DEVMODEA {
|
|
BYTE[CCHDEVICENAME] dmDeviceName;
|
|
WORD dmSpecVersion;
|
|
WORD dmDriverVersion;
|
|
WORD dmSize;
|
|
WORD dmDriverExtra;
|
|
DWORD dmFields;
|
|
union {
|
|
struct {
|
|
short dmOrientation;
|
|
short dmPaperSize;
|
|
short dmPaperLength;
|
|
short dmPaperWidth;
|
|
short dmScale;
|
|
short dmCopies;
|
|
short dmDefaultSource;
|
|
short dmPrintQuality;
|
|
}
|
|
POINTL dmPosition;
|
|
DWORD dmDisplayOrientation;
|
|
DWORD dmDisplayFixedOutput;
|
|
}
|
|
short dmColor;
|
|
short dmDuplex;
|
|
short dmYResolution;
|
|
short dmTTOption;
|
|
short dmCollate;
|
|
BYTE[CCHFORMNAME] dmFormName;
|
|
WORD dmLogPixels;
|
|
DWORD dmBitsPerPel;
|
|
DWORD dmPelsWidth;
|
|
DWORD dmPelsHeight;
|
|
union {
|
|
DWORD dmDisplayFlags;
|
|
DWORD dmNup;
|
|
}
|
|
DWORD dmDisplayFrequency;
|
|
DWORD dmICMMethod;
|
|
DWORD dmICMIntent;
|
|
DWORD dmMediaType;
|
|
DWORD dmDitherType;
|
|
DWORD dmReserved1;
|
|
DWORD dmReserved2;
|
|
DWORD dmPanningWidth;
|
|
DWORD dmPanningHeight;
|
|
}
|
|
alias DEVMODEA* PDEVMODEA, NPDEVMODEA, LPDEVMODEA;
|
|
|
|
struct DEVMODEW {
|
|
WCHAR[CCHDEVICENAME] dmDeviceName;
|
|
WORD dmSpecVersion;
|
|
WORD dmDriverVersion;
|
|
WORD dmSize;
|
|
WORD dmDriverExtra;
|
|
DWORD dmFields;
|
|
union {
|
|
struct {
|
|
short dmOrientation;
|
|
short dmPaperSize;
|
|
short dmPaperLength;
|
|
short dmPaperWidth;
|
|
short dmScale;
|
|
short dmCopies;
|
|
short dmDefaultSource;
|
|
short dmPrintQuality;
|
|
}
|
|
POINTL dmPosition;
|
|
DWORD dmDisplayOrientation;
|
|
DWORD dmDisplayFixedOutput;
|
|
}
|
|
|
|
short dmColor;
|
|
short dmDuplex;
|
|
short dmYResolution;
|
|
short dmTTOption;
|
|
short dmCollate;
|
|
WCHAR[CCHFORMNAME] dmFormName;
|
|
WORD dmLogPixels;
|
|
DWORD dmBitsPerPel;
|
|
DWORD dmPelsWidth;
|
|
DWORD dmPelsHeight;
|
|
union {
|
|
DWORD dmDisplayFlags;
|
|
DWORD dmNup;
|
|
}
|
|
DWORD dmDisplayFrequency;
|
|
DWORD dmICMMethod;
|
|
DWORD dmICMIntent;
|
|
DWORD dmMediaType;
|
|
DWORD dmDitherType;
|
|
DWORD dmReserved1;
|
|
DWORD dmReserved2;
|
|
DWORD dmPanningWidth;
|
|
DWORD dmPanningHeight;
|
|
}
|
|
alias DEVMODEW* PDEVMODEW, NPDEVMODEW, LPDEVMODEW;
|
|
|
|
/*
|
|
* Information about output options
|
|
*/
|
|
struct PSFEATURE_OUTPUT {
|
|
BOOL bPageIndependent;
|
|
BOOL bSetPageDevice;
|
|
}
|
|
alias PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT;
|
|
|
|
/*
|
|
* Information about custom paper size
|
|
*/
|
|
struct PSFEATURE_CUSTPAPER {
|
|
LONG lOrientation;
|
|
LONG lWidth;
|
|
LONG lHeight;
|
|
LONG lWidthOffset;
|
|
LONG lHeightOffset;
|
|
}
|
|
alias PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER;
|
|
|
|
struct DIBSECTION {
|
|
BITMAP dsBm;
|
|
BITMAPINFOHEADER dsBmih;
|
|
DWORD[3] dsBitfields;
|
|
HANDLE dshSection;
|
|
DWORD dsOffset;
|
|
}
|
|
alias DIBSECTION* PDIBSECTION;
|
|
|
|
struct DOCINFOA {
|
|
int cbSize = DOCINFOA.sizeof;
|
|
LPCSTR lpszDocName;
|
|
LPCSTR lpszOutput;
|
|
LPCSTR lpszDatatype;
|
|
DWORD fwType;
|
|
}
|
|
alias DOCINFOA* LPDOCINFOA;
|
|
|
|
struct DOCINFOW {
|
|
int cbSize = DOCINFOW.sizeof;
|
|
LPCWSTR lpszDocName;
|
|
LPCWSTR lpszOutput;
|
|
LPCWSTR lpszDatatype;
|
|
DWORD fwType;
|
|
}
|
|
alias DOCINFOW* LPDOCINFOW;
|
|
|
|
|
|
struct PANOSE {
|
|
BYTE bFamilyType;
|
|
BYTE bSerifStyle;
|
|
BYTE bWeight;
|
|
BYTE bProportion;
|
|
BYTE bContrast;
|
|
BYTE bStrokeVariation;
|
|
BYTE bArmStyle;
|
|
BYTE bLetterform;
|
|
BYTE bMidline;
|
|
BYTE bXHeight;
|
|
}
|
|
alias PANOSE* LPPANOSE;
|
|
|
|
struct LOGFONTA {
|
|
LONG lfHeight;
|
|
LONG lfWidth;
|
|
LONG lfEscapement;
|
|
LONG lfOrientation;
|
|
LONG lfWeight;
|
|
BYTE lfItalic;
|
|
BYTE lfUnderline;
|
|
BYTE lfStrikeOut;
|
|
BYTE lfCharSet;
|
|
BYTE lfOutPrecision;
|
|
BYTE lfClipPrecision;
|
|
BYTE lfQuality;
|
|
BYTE lfPitchAndFamily;
|
|
CHAR[LF_FACESIZE] lfFaceName;
|
|
}
|
|
alias LOGFONTA* PLOGFONTA, NPLOGFONTA, LPLOGFONTA;
|
|
|
|
struct LOGFONTW {
|
|
LONG lfHeight;
|
|
LONG lfWidth;
|
|
LONG lfEscapement;
|
|
LONG lfOrientation;
|
|
LONG lfWeight;
|
|
BYTE lfItalic;
|
|
BYTE lfUnderline;
|
|
BYTE lfStrikeOut;
|
|
BYTE lfCharSet;
|
|
BYTE lfOutPrecision;
|
|
BYTE lfClipPrecision;
|
|
BYTE lfQuality;
|
|
BYTE lfPitchAndFamily;
|
|
WCHAR[LF_FACESIZE] lfFaceName;
|
|
}
|
|
alias LOGFONTW* PLOGFONTW, NPLOGFONTW, LPLOGFONTW;
|
|
|
|
struct EXTLOGFONTA {
|
|
LOGFONTA elfLogFont;
|
|
BYTE[LF_FULLFACESIZE] elfFullName;
|
|
BYTE[LF_FACESIZE] elfStyle;
|
|
DWORD elfVersion;
|
|
DWORD elfStyleSize;
|
|
DWORD elfMatch;
|
|
DWORD elfReserved;
|
|
BYTE[ELF_VENDOR_SIZE] elfVendorId;
|
|
DWORD elfCulture;
|
|
PANOSE elfPanose;
|
|
}
|
|
alias EXTLOGFONTA* PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA;
|
|
|
|
struct EXTLOGFONTW {
|
|
LOGFONTW elfLogFont;
|
|
WCHAR[LF_FULLFACESIZE] elfFullName;
|
|
WCHAR[LF_FACESIZE] elfStyle;
|
|
DWORD elfVersion;
|
|
DWORD elfStyleSize;
|
|
DWORD elfMatch;
|
|
DWORD elfReserved;
|
|
BYTE[ELF_VENDOR_SIZE] elfVendorId;
|
|
DWORD elfCulture;
|
|
PANOSE elfPanose;
|
|
}
|
|
alias EXTLOGFONTW* PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW;
|
|
|
|
struct LOGPEN {
|
|
UINT lopnStyle;
|
|
POINT lopnWidth;
|
|
COLORREF lopnColor;
|
|
}
|
|
alias LOGPEN* PLOGPEN, NPLOGPEN, LPLOGPEN;
|
|
|
|
// ---------------------- EMR ------------
|
|
|
|
struct EMR {
|
|
DWORD iType;
|
|
DWORD nSize;
|
|
}
|
|
alias EMR* PEMR;
|
|
|
|
struct EMRANGLEARC {
|
|
EMR emr;
|
|
POINTL ptlCenter;
|
|
DWORD nRadius;
|
|
FLOAT eStartAngle;
|
|
FLOAT eSweepAngle;
|
|
}
|
|
alias EMRANGLEARC* PEMRANGLEARC;
|
|
|
|
struct EMRARC {
|
|
EMR emr;
|
|
RECTL rclBox;
|
|
POINTL ptlStart;
|
|
POINTL ptlEnd;
|
|
}
|
|
alias EMRARC* PEMRARC;
|
|
alias TypeDef!(EMRARC) EMRARCTO;
|
|
alias EMRARCTO* PEMRARCTO;
|
|
alias TypeDef!(EMRARC) EMRCHORD;
|
|
alias EMRCHORD* PEMRCHORD;
|
|
alias TypeDef!(EMRARC) EMRPIE;
|
|
alias EMRPIE* PEMRPIE;
|
|
|
|
struct XFORM {
|
|
FLOAT eM11;
|
|
FLOAT eM12;
|
|
FLOAT eM21;
|
|
FLOAT eM22;
|
|
FLOAT eDx;
|
|
FLOAT eDy;
|
|
}
|
|
alias XFORM* PXFORM, LPXFORM;
|
|
|
|
struct EMRBITBLT {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
DWORD dwRop;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
}
|
|
alias EMRBITBLT* PEMRBITBLT;
|
|
|
|
struct LOGBRUSH {
|
|
UINT lbStyle;
|
|
COLORREF lbColor;
|
|
LONG lbHatch;
|
|
}
|
|
alias TypeDef!(LOGBRUSH) PATTERN;
|
|
alias LOGBRUSH* PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH;
|
|
alias PATTERN* PPATTERN, NPPATTERN, LPPATTERN;
|
|
|
|
struct LOGBRUSH32 {
|
|
UINT lbStyle;
|
|
COLORREF lbColor;
|
|
ULONG lbHatch;
|
|
}
|
|
alias LOGBRUSH32* PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32;
|
|
|
|
struct EMRCREATEBRUSHINDIRECT {
|
|
EMR emr;
|
|
DWORD ihBrush;
|
|
LOGBRUSH32 lb;
|
|
}
|
|
alias EMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT;
|
|
|
|
alias LONG LCSCSTYPE, LCSGAMUTMATCH;
|
|
|
|
struct LOGCOLORSPACEA {
|
|
DWORD lcsSignature;
|
|
DWORD lcsVersion;
|
|
DWORD lcsSize;
|
|
LCSCSTYPE lcsCSType;
|
|
LCSGAMUTMATCH lcsIntent;
|
|
CIEXYZTRIPLE lcsEndpoints;
|
|
DWORD lcsGammaRed;
|
|
DWORD lcsGammaGreen;
|
|
DWORD lcsGammaBlue;
|
|
CHAR[MAX_PATH] lcsFilename;
|
|
}
|
|
alias LOGCOLORSPACEA* LPLOGCOLORSPACEA;
|
|
|
|
struct LOGCOLORSPACEW {
|
|
DWORD lcsSignature;
|
|
DWORD lcsVersion;
|
|
DWORD lcsSize;
|
|
LCSCSTYPE lcsCSType;
|
|
LCSGAMUTMATCH lcsIntent;
|
|
CIEXYZTRIPLE lcsEndpoints;
|
|
DWORD lcsGammaRed;
|
|
DWORD lcsGammaGreen;
|
|
DWORD lcsGammaBlue;
|
|
WCHAR[MAX_PATH] lcsFilename;
|
|
}
|
|
alias LOGCOLORSPACEW* LPLOGCOLORSPACEW;
|
|
|
|
alias USHORT COLOR16;
|
|
struct TRIVERTEX {
|
|
LONG x;
|
|
LONG y;
|
|
COLOR16 Red;
|
|
COLOR16 Green;
|
|
COLOR16 Blue;
|
|
COLOR16 Alpha;
|
|
}
|
|
alias TRIVERTEX* PTRIVERTEX, LPTRIVERTEX;
|
|
|
|
struct EMRGLSRECORD {
|
|
EMR emr;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRGLSRECORD* PEMRGLSRECORD;
|
|
|
|
struct EMRGLSBOUNDEDRECORD {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD;
|
|
|
|
struct EMRPIXELFORMAT {
|
|
EMR emr;
|
|
PIXELFORMATDESCRIPTOR pfd;
|
|
}
|
|
alias EMRPIXELFORMAT* PEMRPIXELFORMAT;
|
|
|
|
struct EMRCREATECOLORSPACE {
|
|
EMR emr;
|
|
DWORD ihCS;
|
|
LOGCOLORSPACE lcs;
|
|
}
|
|
alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE;
|
|
|
|
struct EMRSETCOLORSPACE {
|
|
EMR emr;
|
|
DWORD ihCS;
|
|
}
|
|
alias EMRSETCOLORSPACE* PEMRSETCOLORSPACE;
|
|
alias TypeDef!(EMRSETCOLORSPACE) EMRSELECTCOLORSPACE;
|
|
alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE;
|
|
alias TypeDef!(EMRSETCOLORSPACE) EMRDELETECOLORSPACE;
|
|
alias EMRDELETECOLORSPACE* PEMRDELETECOLORSPACE;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
|
|
struct EMREXTESCAPE {
|
|
EMR emr;
|
|
INT iEscape;
|
|
INT cbEscData;
|
|
BYTE[1] EscData;
|
|
}
|
|
alias EMREXTESCAPE* PEMREXTESCAPE;
|
|
alias TypeDef!(EMREXTESCAPE) EMRDRAWESCAPE;
|
|
alias EMRDRAWESCAPE* PEMRDRAWESCAPE;
|
|
|
|
struct EMRNAMEDESCAPE {
|
|
EMR emr;
|
|
INT iEscape;
|
|
INT cbDriver;
|
|
INT cbEscData;
|
|
BYTE[1] EscData;
|
|
}
|
|
alias EMRNAMEDESCAPE* PEMRNAMEDESCAPE;
|
|
|
|
struct EMRSETICMPROFILE {
|
|
EMR emr;
|
|
DWORD dwFlags;
|
|
DWORD cbName;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRSETICMPROFILE* PEMRSETICMPROFILE;
|
|
alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEA;
|
|
alias EMRSETICMPROFILEA* PEMRSETICMPROFILEA;
|
|
alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEW;
|
|
alias EMRSETICMPROFILEW* PEMRSETICMPROFILEW;
|
|
|
|
struct EMRCREATECOLORSPACEW {
|
|
EMR emr;
|
|
DWORD ihCS;
|
|
LOGCOLORSPACEW lcs;
|
|
DWORD dwFlags;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW;
|
|
|
|
struct EMRCOLORMATCHTOTARGET {
|
|
EMR emr;
|
|
DWORD dwAction;
|
|
DWORD dwFlags;
|
|
DWORD cbName;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET;
|
|
|
|
struct EMRCOLORCORRECTPALETTE {
|
|
EMR emr;
|
|
DWORD ihPalette;
|
|
DWORD nFirstEntry;
|
|
DWORD nPalEntries;
|
|
DWORD nReserved;
|
|
}
|
|
alias EMRCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE;
|
|
|
|
struct EMRALPHABLEND {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
DWORD dwRop;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
}
|
|
alias EMRALPHABLEND* PEMRALPHABLEND;
|
|
|
|
struct EMRGRADIENTFILL {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD nVer;
|
|
DWORD nTri;
|
|
ULONG ulMode;
|
|
TRIVERTEX[1] Ver;
|
|
}
|
|
alias EMRGRADIENTFILL* PEMRGRADIENTFILL;
|
|
|
|
struct EMRTRANSPARENTBLT {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
DWORD dwRop;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
}
|
|
alias EMRTRANSPARENTBLT* PEMRTRANSPARENTBLT;
|
|
}
|
|
|
|
struct EMRCREATEDIBPATTERNBRUSHPT {
|
|
EMR emr;
|
|
DWORD ihBrush;
|
|
DWORD iUsage;
|
|
DWORD offBmi;
|
|
DWORD cbBmi;
|
|
DWORD offBits;
|
|
DWORD cbBits;
|
|
}
|
|
alias EMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT;
|
|
|
|
struct EMRCREATEMONOBRUSH {
|
|
EMR emr;
|
|
DWORD ihBrush;
|
|
DWORD iUsage;
|
|
DWORD offBmi;
|
|
DWORD cbBmi;
|
|
DWORD offBits;
|
|
DWORD cbBits;
|
|
}
|
|
alias EMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH;
|
|
|
|
struct PALETTEENTRY {
|
|
BYTE peRed;
|
|
BYTE peGreen;
|
|
BYTE peBlue;
|
|
BYTE peFlags;
|
|
}
|
|
alias PALETTEENTRY* PPALETTEENTRY, LPPALETTEENTRY;
|
|
|
|
struct LOGPALETTE {
|
|
WORD palVersion;
|
|
WORD palNumEntries;
|
|
PALETTEENTRY[1] palPalEntry;
|
|
}
|
|
alias LOGPALETTE* PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE;
|
|
|
|
struct EMRCREATEPALETTE {
|
|
EMR emr;
|
|
DWORD ihPal;
|
|
LOGPALETTE lgpl;
|
|
}
|
|
alias EMRCREATEPALETTE* PEMRCREATEPALETTE;
|
|
|
|
struct EMRCREATEPEN {
|
|
EMR emr;
|
|
DWORD ihPen;
|
|
LOGPEN lopn;
|
|
}
|
|
alias EMRCREATEPEN* PEMRCREATEPEN;
|
|
|
|
struct EMRELLIPSE {
|
|
EMR emr;
|
|
RECTL rclBox;
|
|
}
|
|
alias EMRELLIPSE* PEMRELLIPSE;
|
|
|
|
alias TypeDef!(EMRELLIPSE) EMRRECTANGLE;
|
|
alias EMRRECTANGLE* PEMRRECTANGLE;
|
|
|
|
struct EMREOF {
|
|
EMR emr;
|
|
DWORD nPalEntries;
|
|
DWORD offPalEntries;
|
|
DWORD nSizeLast;
|
|
}
|
|
alias EMREOF* PEMREOF;
|
|
|
|
struct EMREXCLUDECLIPRECT {
|
|
EMR emr;
|
|
RECTL rclClip;
|
|
}
|
|
alias EMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT;
|
|
alias TypeDef!(EMREXCLUDECLIPRECT) EMRINTERSECTCLIPRECT;
|
|
alias EMRINTERSECTCLIPRECT* PEMRINTERSECTCLIPRECT;
|
|
|
|
struct EMREXTCREATEFONTINDIRECTW {
|
|
EMR emr;
|
|
DWORD ihFont;
|
|
EXTLOGFONTW elfw;
|
|
}
|
|
alias EMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW;
|
|
|
|
struct EXTLOGPEN {
|
|
UINT elpPenStyle;
|
|
UINT elpWidth;
|
|
UINT elpBrushStyle;
|
|
COLORREF elpColor;
|
|
LONG elpHatch;
|
|
DWORD elpNumEntries;
|
|
DWORD[1] elpStyleEntry;
|
|
}
|
|
alias EXTLOGPEN* PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN;
|
|
|
|
struct EMREXTCREATEPEN {
|
|
EMR emr;
|
|
DWORD ihPen;
|
|
DWORD offBmi;
|
|
DWORD cbBmi;
|
|
DWORD offBits;
|
|
DWORD cbBits;
|
|
EXTLOGPEN elp;
|
|
}
|
|
alias EMREXTCREATEPEN* PEMREXTCREATEPEN;
|
|
|
|
struct EMREXTFLOODFILL {
|
|
EMR emr;
|
|
POINTL ptlStart;
|
|
COLORREF crColor;
|
|
DWORD iMode;
|
|
}
|
|
alias EMREXTFLOODFILL* PEMREXTFLOODFILL;
|
|
|
|
struct EMREXTSELECTCLIPRGN {
|
|
EMR emr;
|
|
DWORD cbRgnData;
|
|
DWORD iMode;
|
|
BYTE [1]RgnData;
|
|
}
|
|
alias EMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN;
|
|
|
|
struct EMRTEXT {
|
|
POINTL ptlReference;
|
|
DWORD nChars;
|
|
DWORD offString;
|
|
DWORD fOptions;
|
|
RECTL rcl;
|
|
DWORD offDx;
|
|
}
|
|
alias EMRTEXT* PEMRTEXT;
|
|
|
|
struct EMREXTTEXTOUTA {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD iGraphicsMode;
|
|
FLOAT exScale;
|
|
FLOAT eyScale;
|
|
EMRTEXT emrtext;
|
|
}
|
|
alias EMREXTTEXTOUTA* PEMREXTTEXTOUTA;
|
|
alias TypeDef!(EMREXTTEXTOUTA) EMREXTTEXTOUTW;
|
|
alias EMREXTTEXTOUTW* PEMREXTTEXTOUTW;
|
|
|
|
struct EMRFILLPATH {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
}
|
|
alias EMRFILLPATH* PEMRFILLPATH;
|
|
|
|
alias TypeDef!(EMRFILLPATH) EMRSTROKEANDFILLPATH;
|
|
alias EMRSTROKEANDFILLPATH* PEMRSTROKEANDFILLPATH;
|
|
|
|
alias TypeDef!(EMRFILLPATH) EMRSTROKEPATH;
|
|
alias EMRSTROKEPATH* PEMRSTROKEPATH;
|
|
|
|
struct EMRFILLRGN {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cbRgnData;
|
|
DWORD ihBrush;
|
|
BYTE[1] RgnData;
|
|
}
|
|
alias EMRFILLRGN* PEMRFILLRGN;
|
|
|
|
struct EMRFORMAT {
|
|
DWORD dSignature;
|
|
DWORD nVersion;
|
|
DWORD cbData;
|
|
DWORD offData;
|
|
}
|
|
alias EMRFORMAT* PEMRFORMAT;
|
|
|
|
struct EMRFRAMERGN {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cbRgnData;
|
|
DWORD ihBrush;
|
|
SIZEL szlStroke;
|
|
BYTE[1] RgnData;
|
|
}
|
|
alias EMRFRAMERGN* PEMRFRAMERGN;
|
|
|
|
struct EMRGDICOMMENT {
|
|
EMR emr;
|
|
DWORD cbData;
|
|
BYTE[1] Data;
|
|
}
|
|
alias EMRGDICOMMENT* PEMRGDICOMMENT;
|
|
|
|
struct EMRINVERTRGN {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cbRgnData;
|
|
BYTE[1] RgnData;
|
|
}
|
|
alias EMRINVERTRGN* PEMRINVERTRGN;
|
|
alias TypeDef!(EMRINVERTRGN) EMRPAINTRGN;
|
|
alias EMRPAINTRGN* PEMRPAINTRGN;
|
|
|
|
struct EMRLINETO {
|
|
EMR emr;
|
|
POINTL ptl;
|
|
}
|
|
alias EMRLINETO* PEMRLINETO;
|
|
alias TypeDef!(EMRLINETO) EMRMOVETOEX;
|
|
alias EMRMOVETOEX* PEMRMOVETOEX;
|
|
|
|
struct EMRMASKBLT {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
DWORD dwRop;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
LONG xMask;
|
|
LONG yMask;
|
|
DWORD iUsageMask;
|
|
DWORD offBmiMask;
|
|
DWORD cbBmiMask;
|
|
DWORD offBitsMask;
|
|
DWORD cbBitsMask;
|
|
}
|
|
alias EMRMASKBLT* PEMRMASKBLT;
|
|
|
|
struct EMRMODIFYWORLDTRANSFORM {
|
|
EMR emr;
|
|
XFORM xform;
|
|
DWORD iMode;
|
|
}
|
|
alias EMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM;
|
|
|
|
struct EMROFFSETCLIPRGN {
|
|
EMR emr;
|
|
POINTL ptlOffset;
|
|
}
|
|
alias EMROFFSETCLIPRGN* PEMROFFSETCLIPRGN;
|
|
|
|
struct EMRPLGBLT {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
POINTL[3] aptlDest;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
LONG xMask;
|
|
LONG yMask;
|
|
DWORD iUsageMask;
|
|
DWORD offBmiMask;
|
|
DWORD cbBmiMask;
|
|
DWORD offBitsMask;
|
|
DWORD cbBitsMask;
|
|
}
|
|
alias EMRPLGBLT* PEMRPLGBLT;
|
|
|
|
struct EMRPOLYDRAW {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cptl;
|
|
POINTL[1] aptl;
|
|
BYTE[1] abTypes;
|
|
}
|
|
alias EMRPOLYDRAW* PEMRPOLYDRAW;
|
|
|
|
struct EMRPOLYDRAW16 {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cpts;
|
|
POINTS[1] apts;
|
|
BYTE[1] abTypes;
|
|
}
|
|
alias EMRPOLYDRAW16* PEMRPOLYDRAW16;
|
|
|
|
struct EMRPOLYLINE {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cptl;
|
|
POINTL[1] aptl;
|
|
}
|
|
alias EMRPOLYLINE* PEMRPOLYLINE;
|
|
alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIER;
|
|
alias EMRPOLYBEZIER* PEMRPOLYBEZIER;
|
|
alias TypeDef!(EMRPOLYLINE) EMRPOLYGON;
|
|
alias EMRPOLYGON* PEMRPOLYGON;
|
|
alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIERTO;
|
|
alias EMRPOLYBEZIERTO* PEMRPOLYBEZIERTO;
|
|
alias TypeDef!(EMRPOLYLINE) EMRPOLYLINETO;
|
|
alias EMRPOLYLINETO* PEMRPOLYLINETO;
|
|
|
|
struct EMRPOLYLINE16 {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD cpts;
|
|
POINTS[1] apts;
|
|
}
|
|
alias EMRPOLYLINE16* PEMRPOLYLINE16;
|
|
alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIER16;
|
|
alias EMRPOLYBEZIER16* PEMRPOLYBEZIER16;
|
|
alias TypeDef!(EMRPOLYLINE16) EMRPOLYGON16;
|
|
alias EMRPOLYGON16* PEMRPOLYGON16;
|
|
alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIERTO16;
|
|
alias EMRPOLYBEZIERTO16* PEMRPOLYBEZIERTO16;
|
|
alias TypeDef!(EMRPOLYLINE16) EMRPOLYLINETO16;
|
|
alias EMRPOLYLINETO16* PEMRPOLYLINETO16;
|
|
|
|
struct EMRPOLYPOLYLINE {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD nPolys;
|
|
DWORD cptl;
|
|
DWORD[1] aPolyCounts;
|
|
POINTL[1] aptl;
|
|
}
|
|
alias EMRPOLYPOLYLINE* PEMRPOLYPOLYLINE;
|
|
alias TypeDef!(EMRPOLYPOLYLINE) EMRPOLYPOLYGON;
|
|
alias EMRPOLYPOLYGON* PEMRPOLYPOLYGON;
|
|
|
|
struct EMRPOLYPOLYLINE16 {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD nPolys;
|
|
DWORD cpts;
|
|
DWORD[1] aPolyCounts;
|
|
POINTS[1] apts;
|
|
}
|
|
alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16;
|
|
alias TypeDef!(EMRPOLYPOLYLINE16) EMRPOLYPOLYGON16;
|
|
alias EMRPOLYPOLYGON16* PEMRPOLYPOLYGON16;
|
|
|
|
struct EMRPOLYTEXTOUTA {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
DWORD iGraphicsMode;
|
|
FLOAT exScale;
|
|
FLOAT eyScale;
|
|
LONG cStrings;
|
|
EMRTEXT[1] aemrtext;
|
|
}
|
|
alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA;
|
|
alias TypeDef!(EMRPOLYTEXTOUTA) EMRPOLYTEXTOUTW;
|
|
alias EMRPOLYTEXTOUTW* PEMRPOLYTEXTOUTW;
|
|
|
|
struct EMRRESIZEPALETTE {
|
|
EMR emr;
|
|
DWORD ihPal;
|
|
DWORD cEntries;
|
|
}
|
|
alias EMRRESIZEPALETTE* PEMRRESIZEPALETTE;
|
|
|
|
struct EMRRESTOREDC {
|
|
EMR emr;
|
|
LONG iRelative;
|
|
}
|
|
alias EMRRESTOREDC* PEMRRESTOREDC;
|
|
|
|
struct EMRROUNDRECT {
|
|
EMR emr;
|
|
RECTL rclBox;
|
|
SIZEL szlCorner;
|
|
}
|
|
alias EMRROUNDRECT* PEMRROUNDRECT;
|
|
|
|
struct EMRSCALEVIEWPORTEXTEX {
|
|
EMR emr;
|
|
LONG xNum;
|
|
LONG xDenom;
|
|
LONG yNum;
|
|
LONG yDenom;
|
|
}
|
|
alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX;
|
|
alias TypeDef!(EMRSCALEVIEWPORTEXTEX) EMRSCALEWINDOWEXTEX;
|
|
alias EMRSCALEWINDOWEXTEX* PEMRSCALEWINDOWEXTEX;
|
|
|
|
struct EMRSELECTOBJECT {
|
|
EMR emr;
|
|
DWORD ihObject;
|
|
}
|
|
alias EMRSELECTOBJECT* PEMRSELECTOBJECT;
|
|
alias TypeDef!(EMRSELECTOBJECT) EMRDELETEOBJECT;
|
|
alias EMRDELETEOBJECT* PEMRDELETEOBJECT;
|
|
|
|
struct EMRSELECTPALETTE {
|
|
EMR emr;
|
|
DWORD ihPal;
|
|
}
|
|
alias EMRSELECTPALETTE* PEMRSELECTPALETTE;
|
|
|
|
struct EMRSETARCDIRECTION {
|
|
EMR emr;
|
|
DWORD iArcDirection;
|
|
}
|
|
alias EMRSETARCDIRECTION* PEMRSETARCDIRECTION;
|
|
|
|
struct EMRSETTEXTCOLOR {
|
|
EMR emr;
|
|
COLORREF crColor;
|
|
}
|
|
alias EMRSETTEXTCOLOR* PEMRSETTEXTCOLOR;
|
|
alias TypeDef!(EMRSETTEXTCOLOR) EMRSETBKCOLOR;
|
|
alias EMRSETBKCOLOR* PEMRSETBKCOLOR;
|
|
|
|
struct EMRSETCOLORADJUSTMENT {
|
|
EMR emr;
|
|
COLORADJUSTMENT ColorAdjustment;
|
|
}
|
|
alias EMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT;
|
|
|
|
struct EMRSETDIBITSTODEVICE {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD iStartScan;
|
|
DWORD cScans;
|
|
}
|
|
alias EMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE;
|
|
|
|
struct EMRSETMAPPERFLAGS {
|
|
EMR emr;
|
|
DWORD dwFlags;
|
|
}
|
|
alias EMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS;
|
|
|
|
struct EMRSETMITERLIMIT {
|
|
EMR emr;
|
|
FLOAT eMiterLimit;
|
|
}
|
|
alias EMRSETMITERLIMIT* PEMRSETMITERLIMIT;
|
|
|
|
struct EMRSETPALETTEENTRIES {
|
|
EMR emr;
|
|
DWORD ihPal;
|
|
DWORD iStart;
|
|
DWORD cEntries;
|
|
PALETTEENTRY[1] aPalEntries;
|
|
}
|
|
alias EMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES;
|
|
|
|
struct EMRSETPIXELV {
|
|
EMR emr;
|
|
POINTL ptlPixel;
|
|
COLORREF crColor;
|
|
}
|
|
alias EMRSETPIXELV* PEMRSETPIXELV;
|
|
|
|
struct EMRSETVIEWPORTEXTEX {
|
|
EMR emr;
|
|
SIZEL szlExtent;
|
|
}
|
|
alias EMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX;
|
|
alias TypeDef!(EMRSETVIEWPORTEXTEX) EMRSETWINDOWEXTEX;
|
|
alias EMRSETWINDOWEXTEX* PEMRSETWINDOWEXTEX;
|
|
|
|
struct EMRSETVIEWPORTORGEX {
|
|
EMR emr;
|
|
POINTL ptlOrigin;
|
|
}
|
|
alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX;
|
|
alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETWINDOWORGEX;
|
|
alias EMRSETWINDOWORGEX* PEMRSETWINDOWORGEX;
|
|
alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETBRUSHORGEX;
|
|
alias EMRSETBRUSHORGEX* PEMRSETBRUSHORGEX;
|
|
|
|
struct EMRSETWORLDTRANSFORM {
|
|
EMR emr;
|
|
XFORM xform;
|
|
}
|
|
alias EMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM;
|
|
|
|
struct EMRSTRETCHBLT {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
DWORD dwRop;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
XFORM xformSrc;
|
|
COLORREF crBkColorSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
}
|
|
alias EMRSTRETCHBLT* PEMRSTRETCHBLT;
|
|
|
|
struct EMRSTRETCHDIBITS {
|
|
EMR emr;
|
|
RECTL rclBounds;
|
|
LONG xDest;
|
|
LONG yDest;
|
|
LONG xSrc;
|
|
LONG ySrc;
|
|
LONG cxSrc;
|
|
LONG cySrc;
|
|
DWORD offBmiSrc;
|
|
DWORD cbBmiSrc;
|
|
DWORD offBitsSrc;
|
|
DWORD cbBitsSrc;
|
|
DWORD iUsageSrc;
|
|
DWORD dwRop;
|
|
LONG cxDest;
|
|
LONG cyDest;
|
|
}
|
|
alias EMRSTRETCHDIBITS* PEMRSTRETCHDIBITS;
|
|
|
|
struct EMRABORTPATH {
|
|
EMR emr;
|
|
}
|
|
alias EMRABORTPATH* PEMRABORTPATH;
|
|
alias TypeDef!(EMRABORTPATH) EMRBEGINPATH;
|
|
alias EMRBEGINPATH* PEMRBEGINPATH;
|
|
alias TypeDef!(EMRABORTPATH) EMRENDPATH;
|
|
alias EMRENDPATH* PEMRENDPATH;
|
|
alias TypeDef!(EMRABORTPATH) EMRCLOSEFIGURE;
|
|
alias EMRCLOSEFIGURE* PEMRCLOSEFIGURE;
|
|
alias TypeDef!(EMRABORTPATH) EMRFLATTENPATH;
|
|
alias EMRFLATTENPATH* PEMRFLATTENPATH;
|
|
alias TypeDef!(EMRABORTPATH) EMRWIDENPATH;
|
|
alias EMRWIDENPATH* PEMRWIDENPATH;
|
|
alias TypeDef!(EMRABORTPATH) EMRSETMETARGN;
|
|
alias EMRSETMETARGN* PEMRSETMETARGN;
|
|
alias TypeDef!(EMRABORTPATH) EMRSAVEDC;
|
|
alias EMRSAVEDC* PEMRSAVEDC;
|
|
alias TypeDef!(EMRABORTPATH) EMRREALIZEPALETTE;
|
|
alias EMRREALIZEPALETTE* PEMRREALIZEPALETTE;
|
|
|
|
struct EMRSELECTCLIPPATH {
|
|
EMR emr;
|
|
DWORD iMode;
|
|
}
|
|
alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETBKMODE;
|
|
alias EMRSETBKMODE* PEMRSETBKMODE;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETMAPMODE;
|
|
alias EMRSETMAPMODE* PEMRSETMAPMODE;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETPOLYFILLMODE;
|
|
alias EMRSETPOLYFILLMODE* PEMRSETPOLYFILLMODE;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETROP2;
|
|
alias EMRSETROP2* PEMRSETROP2;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETSTRETCHBLTMODE;
|
|
alias EMRSETSTRETCHBLTMODE* PEMRSETSTRETCHBLTMODE;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETICMMODE;
|
|
alias EMRSETICMMODE* PEMRSETICMMODE;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETTEXTALIGN;
|
|
alias EMRSETTEXTALIGN* PEMRSETTEXTALIGN;
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRENABLEICM;
|
|
alias EMRENABLEICM* PEMRENABLEICM;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
alias TypeDef!(EMRSELECTCLIPPATH) EMRSETLAYOUT;
|
|
alias EMRSETLAYOUT* PEMRSETLAYOUT;
|
|
}
|
|
|
|
align(2):
|
|
struct METAHEADER {
|
|
WORD mtType;
|
|
WORD mtHeaderSize;
|
|
WORD mtVersion;
|
|
DWORD mtSize;
|
|
WORD mtNoObjects;
|
|
DWORD mtMaxRecord;
|
|
WORD mtNoParameters;
|
|
}
|
|
alias METAHEADER* PMETAHEADER;
|
|
alias METAHEADER* LPMETAHEADER;
|
|
|
|
align:
|
|
|
|
struct ENHMETAHEADER {
|
|
DWORD iType = EMR_HEADER;
|
|
DWORD nSize = ENHMETAHEADER.sizeof;
|
|
RECTL rclBounds;
|
|
RECTL rclFrame;
|
|
DWORD dSignature = ENHMETA_SIGNATURE;
|
|
DWORD nVersion;
|
|
DWORD nBytes;
|
|
DWORD nRecords;
|
|
WORD nHandles;
|
|
WORD sReserved;
|
|
DWORD nDescription;
|
|
DWORD offDescription;
|
|
DWORD nPalEntries;
|
|
SIZEL szlDevice;
|
|
SIZEL szlMillimeters;
|
|
DWORD cbPixelFormat;
|
|
DWORD offPixelFormat;
|
|
DWORD bOpenGL;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
SIZEL szlMicrometers;
|
|
}
|
|
}
|
|
alias ENHMETAHEADER* PENHMETAHEADER, LPENHMETAHEADER;
|
|
|
|
struct METARECORD {
|
|
DWORD rdSize;
|
|
WORD rdFunction;
|
|
WORD[1] rdParm;
|
|
}
|
|
alias METARECORD* PMETARECORD;
|
|
alias METARECORD* LPMETARECORD;
|
|
|
|
struct ENHMETARECORD {
|
|
DWORD iType;
|
|
DWORD nSize;
|
|
DWORD[1] dParm;
|
|
}
|
|
alias ENHMETARECORD* PENHMETARECORD, LPENHMETARECORD;
|
|
|
|
// ---
|
|
|
|
struct HANDLETABLE {
|
|
HGDIOBJ[1] objectHandle;
|
|
}
|
|
alias HANDLETABLE* PHANDLETABLE, LPHANDLETABLE;
|
|
|
|
struct TEXTMETRICA {
|
|
LONG tmHeight;
|
|
LONG tmAscent;
|
|
LONG tmDescent;
|
|
LONG tmInternalLeading;
|
|
LONG tmExternalLeading;
|
|
LONG tmAveCharWidth;
|
|
LONG tmMaxCharWidth;
|
|
LONG tmWeight;
|
|
LONG tmOverhang;
|
|
LONG tmDigitizedAspectX;
|
|
LONG tmDigitizedAspectY;
|
|
BYTE tmFirstChar;
|
|
BYTE tmLastChar;
|
|
BYTE tmDefaultChar;
|
|
BYTE tmBreakChar;
|
|
BYTE tmItalic;
|
|
BYTE tmUnderlined;
|
|
BYTE tmStruckOut;
|
|
BYTE tmPitchAndFamily;
|
|
BYTE tmCharSet;
|
|
}
|
|
alias TEXTMETRICA* PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA;
|
|
|
|
struct TEXTMETRICW {
|
|
LONG tmHeight;
|
|
LONG tmAscent;
|
|
LONG tmDescent;
|
|
LONG tmInternalLeading;
|
|
LONG tmExternalLeading;
|
|
LONG tmAveCharWidth;
|
|
LONG tmMaxCharWidth;
|
|
LONG tmWeight;
|
|
LONG tmOverhang;
|
|
LONG tmDigitizedAspectX;
|
|
LONG tmDigitizedAspectY;
|
|
WCHAR tmFirstChar;
|
|
WCHAR tmLastChar;
|
|
WCHAR tmDefaultChar;
|
|
WCHAR tmBreakChar;
|
|
BYTE tmItalic;
|
|
BYTE tmUnderlined;
|
|
BYTE tmStruckOut;
|
|
BYTE tmPitchAndFamily;
|
|
BYTE tmCharSet;
|
|
}
|
|
alias TEXTMETRICW* PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW;
|
|
|
|
struct RGNDATAHEADER {
|
|
DWORD dwSize;
|
|
DWORD iType;
|
|
DWORD nCount;
|
|
DWORD nRgnSize;
|
|
RECT rcBound;
|
|
}
|
|
alias RGNDATAHEADER* PRGNDATAHEADER;
|
|
|
|
struct RGNDATA {
|
|
RGNDATAHEADER rdh;
|
|
char[1] Buffer;
|
|
}
|
|
alias RGNDATA* PRGNDATA, NPRGNDATA, LPRGNDATA;
|
|
|
|
/* for GetRandomRgn */
|
|
const SYSRGN=4;
|
|
struct GCP_RESULTSA {
|
|
DWORD lStructSize;
|
|
LPSTR lpOutString;
|
|
UINT* lpOrder;
|
|
INT* lpDx;
|
|
INT* lpCaretPos;
|
|
LPSTR lpClass;
|
|
LPWSTR lpGlyphs;
|
|
UINT nGlyphs;
|
|
UINT nMaxFit;
|
|
}
|
|
alias GCP_RESULTSA* LPGCP_RESULTSA;
|
|
|
|
struct GCP_RESULTSW {
|
|
DWORD lStructSize;
|
|
LPWSTR lpOutString;
|
|
UINT* lpOrder;
|
|
INT* lpDx;
|
|
INT* lpCaretPos;
|
|
LPWSTR lpClass;
|
|
LPWSTR lpGlyphs;
|
|
UINT nGlyphs;
|
|
UINT nMaxFit;
|
|
}
|
|
alias GCP_RESULTSW* LPGCP_RESULTSW;
|
|
|
|
struct GLYPHMETRICS {
|
|
UINT gmBlackBoxX;
|
|
UINT gmBlackBoxY;
|
|
POINT gmptGlyphOrigin;
|
|
short gmCellIncX;
|
|
short gmCellIncY;
|
|
}
|
|
alias GLYPHMETRICS* LPGLYPHMETRICS;
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
struct WCRANGE {
|
|
WCHAR wcLow;
|
|
USHORT cGlyphs;
|
|
}
|
|
alias WCRANGE* PWCRANGE, LPWCRANGE;
|
|
|
|
struct GLYPHSET {
|
|
DWORD cbThis;
|
|
DWORD flAccel;
|
|
DWORD cGlyphsSupported;
|
|
DWORD cRanges;
|
|
WCRANGE[1] ranges;
|
|
}
|
|
alias GLYPHSET* PGLYPHSET, LPGLYPHSET;
|
|
|
|
const DWORD GS_8BIT_INDICES = 0x00000001;
|
|
}
|
|
|
|
struct KERNINGPAIR {
|
|
WORD wFirst;
|
|
WORD wSecond;
|
|
int iKernAmount;
|
|
}
|
|
alias KERNINGPAIR* LPKERNINGPAIR;
|
|
|
|
struct FIXED {
|
|
WORD fract;
|
|
short value;
|
|
}
|
|
|
|
struct MAT2 {
|
|
FIXED eM11;
|
|
FIXED eM12;
|
|
FIXED eM21;
|
|
FIXED eM22;
|
|
}
|
|
alias MAT2* LPMAT2;
|
|
|
|
struct OUTLINETEXTMETRICA {
|
|
UINT otmSize;
|
|
TEXTMETRICA otmTextMetrics;
|
|
BYTE otmFiller;
|
|
PANOSE otmPanoseNumber;
|
|
UINT otmfsSelection;
|
|
UINT otmfsType;
|
|
int otmsCharSlopeRise;
|
|
int otmsCharSlopeRun;
|
|
int otmItalicAngle;
|
|
UINT otmEMSquare;
|
|
int otmAscent;
|
|
int otmDescent;
|
|
UINT otmLineGap;
|
|
UINT otmsCapEmHeight;
|
|
UINT otmsXHeight;
|
|
RECT otmrcFontBox;
|
|
int otmMacAscent;
|
|
int otmMacDescent;
|
|
UINT otmMacLineGap;
|
|
UINT otmusMinimumPPEM;
|
|
POINT otmptSubscriptSize;
|
|
POINT otmptSubscriptOffset;
|
|
POINT otmptSuperscriptSize;
|
|
POINT otmptSuperscriptOffset;
|
|
UINT otmsStrikeoutSize;
|
|
int otmsStrikeoutPosition;
|
|
int otmsUnderscoreSize;
|
|
int otmsUnderscorePosition;
|
|
PSTR otmpFamilyName;
|
|
PSTR otmpFaceName;
|
|
PSTR otmpStyleName;
|
|
PSTR otmpFullName;
|
|
}
|
|
alias OUTLINETEXTMETRICA* POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA;
|
|
|
|
struct OUTLINETEXTMETRICW {
|
|
UINT otmSize;
|
|
TEXTMETRICW otmTextMetrics;
|
|
BYTE otmFiller;
|
|
PANOSE otmPanoseNumber;
|
|
UINT otmfsSelection;
|
|
UINT otmfsType;
|
|
int otmsCharSlopeRise;
|
|
int otmsCharSlopeRun;
|
|
int otmItalicAngle;
|
|
UINT otmEMSquare;
|
|
int otmAscent;
|
|
int otmDescent;
|
|
UINT otmLineGap;
|
|
UINT otmsCapEmHeight;
|
|
UINT otmsXHeight;
|
|
RECT otmrcFontBox;
|
|
int otmMacAscent;
|
|
int otmMacDescent;
|
|
UINT otmMacLineGap;
|
|
UINT otmusMinimumPPEM;
|
|
POINT otmptSubscriptSize;
|
|
POINT otmptSubscriptOffset;
|
|
POINT otmptSuperscriptSize;
|
|
POINT otmptSuperscriptOffset;
|
|
UINT otmsStrikeoutSize;
|
|
int otmsStrikeoutPosition;
|
|
int otmsUnderscoreSize;
|
|
int otmsUnderscorePosition;
|
|
PSTR otmpFamilyName;
|
|
PSTR otmpFaceName;
|
|
PSTR otmpStyleName;
|
|
PSTR otmpFullName;
|
|
}
|
|
alias OUTLINETEXTMETRICW* POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW;
|
|
|
|
struct RASTERIZER_STATUS {
|
|
short nSize;
|
|
short wFlags;
|
|
short nLanguageID;
|
|
}
|
|
alias RASTERIZER_STATUS* LPRASTERIZER_STATUS;
|
|
|
|
struct POLYTEXTA {
|
|
int x;
|
|
int y;
|
|
UINT n;
|
|
LPCSTR lpstr;
|
|
UINT uiFlags;
|
|
RECT rcl;
|
|
int* pdx;
|
|
}
|
|
alias POLYTEXTA* PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA;
|
|
|
|
struct POLYTEXTW {
|
|
int x;
|
|
int y;
|
|
UINT n;
|
|
LPCWSTR lpstr;
|
|
UINT uiFlags;
|
|
RECT rcl;
|
|
int* pdx;
|
|
}
|
|
alias POLYTEXTW* PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW;
|
|
|
|
struct PIXELFORMATDESCRIPTOR {
|
|
WORD nSize;
|
|
WORD nVersion;
|
|
DWORD dwFlags;
|
|
BYTE 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;
|
|
DWORD dwLayerMask;
|
|
DWORD dwVisibleMask;
|
|
DWORD dwDamageMask;
|
|
}
|
|
alias PIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR;
|
|
|
|
struct METAFILEPICT {
|
|
LONG mm;
|
|
LONG xExt;
|
|
LONG yExt;
|
|
HMETAFILE hMF;
|
|
}
|
|
alias METAFILEPICT* LPMETAFILEPICT;
|
|
|
|
struct LOCALESIGNATURE {
|
|
DWORD[4] lsUsb;
|
|
DWORD[2] lsCsbDefault;
|
|
DWORD[2] lsCsbSupported;
|
|
}
|
|
alias LOCALESIGNATURE* PLOCALESIGNATURE, LPLOCALESIGNATURE;
|
|
|
|
alias LONG LCSTYPE; /* What this for? */
|
|
|
|
align(4):
|
|
struct NEWTEXTMETRICA {
|
|
LONG tmHeight;
|
|
LONG tmAscent;
|
|
LONG tmDescent;
|
|
LONG tmInternalLeading;
|
|
LONG tmExternalLeading;
|
|
LONG tmAveCharWidth;
|
|
LONG tmMaxCharWidth;
|
|
LONG tmWeight;
|
|
LONG tmOverhang;
|
|
LONG tmDigitizedAspectX;
|
|
LONG tmDigitizedAspectY;
|
|
BYTE tmFirstChar;
|
|
BYTE tmLastChar;
|
|
BYTE tmDefaultChar;
|
|
BYTE tmBreakChar;
|
|
BYTE tmItalic;
|
|
BYTE tmUnderlined;
|
|
BYTE tmStruckOut;
|
|
BYTE tmPitchAndFamily;
|
|
BYTE tmCharSet;
|
|
DWORD ntmFlags;
|
|
UINT ntmSizeEM;
|
|
UINT ntmCellHeight;
|
|
UINT ntmAvgWidth;
|
|
}
|
|
alias NEWTEXTMETRICA* PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA;
|
|
|
|
struct NEWTEXTMETRICW {
|
|
LONG tmHeight;
|
|
LONG tmAscent;
|
|
LONG tmDescent;
|
|
LONG tmInternalLeading;
|
|
LONG tmExternalLeading;
|
|
LONG tmAveCharWidth;
|
|
LONG tmMaxCharWidth;
|
|
LONG tmWeight;
|
|
LONG tmOverhang;
|
|
LONG tmDigitizedAspectX;
|
|
LONG tmDigitizedAspectY;
|
|
WCHAR tmFirstChar;
|
|
WCHAR tmLastChar;
|
|
WCHAR tmDefaultChar;
|
|
WCHAR tmBreakChar;
|
|
BYTE tmItalic;
|
|
BYTE tmUnderlined;
|
|
BYTE tmStruckOut;
|
|
BYTE tmPitchAndFamily;
|
|
BYTE tmCharSet;
|
|
DWORD ntmFlags;
|
|
UINT ntmSizeEM;
|
|
UINT ntmCellHeight;
|
|
UINT ntmAvgWidth;
|
|
}
|
|
alias NEWTEXTMETRICW* PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW;
|
|
|
|
align:
|
|
struct NEWTEXTMETRICEXA {
|
|
NEWTEXTMETRICA ntmTm;
|
|
FONTSIGNATURE ntmFontSig;
|
|
}
|
|
|
|
struct NEWTEXTMETRICEXW {
|
|
NEWTEXTMETRICW ntmTm;
|
|
FONTSIGNATURE ntmFontSig;
|
|
}
|
|
|
|
struct PELARRAY {
|
|
LONG paXCount;
|
|
LONG paYCount;
|
|
LONG paXExt;
|
|
LONG paYExt;
|
|
BYTE paRGBs;
|
|
}
|
|
alias PELARRAY* PPELARRAY, NPPELARRAY, LPPELARRAY;
|
|
|
|
struct ENUMLOGFONTA {
|
|
LOGFONTA elfLogFont;
|
|
BYTE[LF_FULLFACESIZE] elfFullName;
|
|
BYTE[LF_FACESIZE] elfStyle;
|
|
}
|
|
alias ENUMLOGFONTA* LPENUMLOGFONTA;
|
|
|
|
struct ENUMLOGFONTW {
|
|
LOGFONTW elfLogFont;
|
|
WCHAR[LF_FULLFACESIZE] elfFullName;
|
|
WCHAR[LF_FACESIZE] elfStyle;
|
|
}
|
|
alias ENUMLOGFONTW* LPENUMLOGFONTW;
|
|
|
|
struct ENUMLOGFONTEXA {
|
|
LOGFONTA elfLogFont;
|
|
BYTE[LF_FULLFACESIZE] elfFullName;
|
|
BYTE[LF_FACESIZE] elfStyle;
|
|
BYTE[LF_FACESIZE] elfScript;
|
|
}
|
|
alias ENUMLOGFONTEXA* LPENUMLOGFONTEXA;
|
|
|
|
struct ENUMLOGFONTEXW {
|
|
LOGFONTW elfLogFont;
|
|
WCHAR[LF_FULLFACESIZE] elfFullName;
|
|
WCHAR[LF_FACESIZE] elfStyle;
|
|
WCHAR[LF_FACESIZE] elfScript;
|
|
}
|
|
alias ENUMLOGFONTEXW* LPENUMLOGFONTEXW;
|
|
|
|
struct POINTFX {
|
|
FIXED x;
|
|
FIXED y;
|
|
}
|
|
alias POINTFX* LPPOINTFX;
|
|
|
|
struct TTPOLYCURVE {
|
|
WORD wType;
|
|
WORD cpfx;
|
|
POINTFX[1] apfx;
|
|
}
|
|
alias TTPOLYCURVE* LPTTPOLYCURVE;
|
|
|
|
struct TTPOLYGONHEADER {
|
|
DWORD cb;
|
|
DWORD dwType;
|
|
POINTFX pfxStart;
|
|
}
|
|
alias TTPOLYGONHEADER* LPTTPOLYGONHEADER;
|
|
|
|
struct POINTFLOAT {
|
|
FLOAT x;
|
|
FLOAT y;
|
|
}
|
|
alias POINTFLOAT* PPOINTFLOAT;
|
|
|
|
struct GLYPHMETRICSFLOAT {
|
|
FLOAT gmfBlackBoxX;
|
|
FLOAT gmfBlackBoxY;
|
|
POINTFLOAT gmfptGlyphOrigin;
|
|
FLOAT gmfCellIncX;
|
|
FLOAT gmfCellIncY;
|
|
}
|
|
alias GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT;
|
|
|
|
struct LAYERPLANEDESCRIPTOR {
|
|
WORD nSize;
|
|
WORD nVersion;
|
|
DWORD dwFlags;
|
|
BYTE 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;
|
|
COLORREF crTransparent;
|
|
}
|
|
alias LAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR;
|
|
|
|
struct BLENDFUNCTION {
|
|
BYTE BlendOp;
|
|
BYTE BlendFlags;
|
|
BYTE SourceConstantAlpha;
|
|
BYTE AlphaFormat;
|
|
}
|
|
alias BLENDFUNCTION* PBLENDFUNCTION, LPBLENDFUNCTION;
|
|
|
|
const MM_MAX_NUMAXES = 16;
|
|
|
|
struct DESIGNVECTOR {
|
|
DWORD dvReserved;
|
|
DWORD dvNumAxes;
|
|
LONG[MM_MAX_NUMAXES] dvValues;
|
|
}
|
|
alias DESIGNVECTOR* PDESIGNVECTOR, LPDESIGNVECTOR;
|
|
const STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8);
|
|
const STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8);
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
|
|
const MM_MAX_AXES_NAMELEN = 16;
|
|
|
|
struct AXISINFOA {
|
|
LONG axMinValue;
|
|
LONG axMaxValue;
|
|
BYTE[MM_MAX_AXES_NAMELEN] axAxisName;
|
|
}
|
|
alias AXISINFOA* PAXISINFOA, LPAXISINFOA;
|
|
|
|
struct AXISINFOW {
|
|
LONG axMinValue;
|
|
LONG axMaxValue;
|
|
WCHAR[MM_MAX_AXES_NAMELEN] axAxisName;
|
|
}
|
|
alias AXISINFOW* PAXISINFOW, LPAXISINFOW;
|
|
|
|
version (Unicode) {
|
|
alias AXISINFOW AXISINFO;
|
|
alias PAXISINFOW PAXISINFO;
|
|
alias LPAXISINFOW LPAXISINFO;
|
|
}
|
|
else {
|
|
alias AXISINFOA AXISINFO;
|
|
alias PAXISINFOA PAXISINFO;
|
|
alias LPAXISINFOA LPAXISINFO;
|
|
}
|
|
|
|
struct AXESLISTA {
|
|
DWORD axlReserved;
|
|
DWORD axlNumAxes;
|
|
AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo;
|
|
}
|
|
alias AXESLISTA* PAXESLISTA, LPAXESLISTA;
|
|
|
|
struct AXESLISTW {
|
|
DWORD axlReserved;
|
|
DWORD axlNumAxes;
|
|
AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo;
|
|
}
|
|
alias AXESLISTW* PAXESLISTW, LPAXESLISTW;
|
|
|
|
version (Unicode) {
|
|
alias AXESLISTW AXESLIST;
|
|
alias PAXESLISTW PAXESLIST;
|
|
alias LPAXESLISTW LPAXESLIST;
|
|
}
|
|
else {
|
|
alias AXESLISTA AXESLIST;
|
|
alias PAXESLISTA PAXESLIST;
|
|
alias LPAXESLISTA LPAXESLIST;
|
|
}
|
|
|
|
struct ENUMLOGFONTEXDVA {
|
|
ENUMLOGFONTEXA elfEnumLogfontEx;
|
|
DESIGNVECTOR elfDesignVector;
|
|
}
|
|
alias ENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA;
|
|
|
|
struct ENUMLOGFONTEXDVW {
|
|
ENUMLOGFONTEXW elfEnumLogfontEx;
|
|
DESIGNVECTOR elfDesignVector;
|
|
}
|
|
alias ENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW;
|
|
|
|
HFONT CreateFontIndirectExA(const(ENUMLOGFONTEXDVA)*);
|
|
HFONT CreateFontIndirectExW(const(ENUMLOGFONTEXDVW)*);
|
|
version (Unicode)
|
|
alias CreateFontIndirectExW CreateFontIndirectEx;
|
|
else
|
|
alias CreateFontIndirectExA CreateFontIndirectEx;
|
|
|
|
struct ENUMTEXTMETRICA {
|
|
NEWTEXTMETRICEXA etmNewTextMetricEx;
|
|
AXESLISTA etmAxesList;
|
|
}
|
|
alias ENUMTEXTMETRICA* PENUMTEXTMETRICA, LPENUMTEXTMETRICA;
|
|
|
|
struct ENUMTEXTMETRICW {
|
|
NEWTEXTMETRICEXW etmNewTextMetricEx;
|
|
AXESLISTW etmAxesList;
|
|
}
|
|
alias ENUMTEXTMETRICW* PENUMTEXTMETRICW, LPENUMTEXTMETRICW;
|
|
|
|
version (Unicode) {
|
|
alias ENUMTEXTMETRICW ENUMTEXTMETRIC;
|
|
alias PENUMTEXTMETRICW PENUMTEXTMETRIC;
|
|
alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
|
|
}
|
|
else {
|
|
alias ENUMTEXTMETRICA ENUMTEXTMETRIC;
|
|
alias PENUMTEXTMETRICA PENUMTEXTMETRIC;
|
|
alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
|
|
}
|
|
} /* _WIN32_WINNT >= 0x500 */
|
|
|
|
struct GRADIENT_TRIANGLE {
|
|
ULONG Vertex1;
|
|
ULONG Vertex2;
|
|
ULONG Vertex3;
|
|
}
|
|
alias GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE;
|
|
|
|
struct GRADIENT_RECT {
|
|
ULONG UpperLeft;
|
|
ULONG LowerRight;
|
|
}
|
|
alias GRADIENT_RECT* PGRADIENT_RECT, LPGRADIENT_RECT;
|
|
|
|
struct DISPLAY_DEVICEA {
|
|
DWORD cb;
|
|
CHAR[32] DeviceName;
|
|
CHAR[128] DeviceString;
|
|
DWORD StateFlags;
|
|
CHAR[128] DeviceID;
|
|
CHAR[128] DeviceKey;
|
|
}
|
|
alias DISPLAY_DEVICEA* PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA;
|
|
|
|
struct DISPLAY_DEVICEW {
|
|
DWORD cb;
|
|
WCHAR[32] DeviceName;
|
|
WCHAR[128] DeviceString;
|
|
DWORD StateFlags;
|
|
WCHAR[128] DeviceID;
|
|
WCHAR[128] DeviceKey;
|
|
}
|
|
alias DISPLAY_DEVICEW* PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW;
|
|
|
|
struct DRAWPATRECT {
|
|
POINT ptPosition;
|
|
POINT ptSize;
|
|
WORD wStyle;
|
|
WORD wPattern;
|
|
}
|
|
alias DRAWPATRECT* PDRAWPATRECT;
|
|
|
|
// ---------
|
|
// Callbacks
|
|
|
|
alias extern(Windows) BOOL function (HDC, int) ABORTPROC;
|
|
alias extern(Windows) int function (HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC;
|
|
alias extern(Windows) int function (HDC, HANDLETABLE*, const(ENHMETARECORD)*, int, LPARAM) ENHMFENUMPROC;
|
|
alias extern(Windows) int function (const(LOGFONTA)*, const(TEXTMETRICA)*, DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA;
|
|
alias extern(Windows) int function (const(LOGFONTW)*, const(TEXTMETRICW)*, DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW;
|
|
alias extern(Windows) int function (LPSTR, LPARAM) ICMENUMPROCA;
|
|
alias extern(Windows) int function (LPWSTR, LPARAM) ICMENUMPROCW;
|
|
alias extern(Windows) void function (LPVOID, LPARAM) GOBJENUMPROC;
|
|
alias extern(Windows) void function (int, int, LPARAM) LINEDDAPROC;
|
|
alias extern(Windows) UINT function (HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE;
|
|
alias extern(Windows) DWORD function (LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS;
|
|
|
|
|
|
// ---------
|
|
// C Macros.
|
|
// FIXME:
|
|
//POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l)))
|
|
|
|
DWORD MAKEROP4(DWORD fore, DWORD back) {
|
|
return ((back<<8) & 0xFF000000) | (fore);
|
|
}
|
|
|
|
COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k) {
|
|
return cast(COLORREF)(k | (y << 8) | (m << 16) | (c << 24));
|
|
}
|
|
|
|
BYTE GetCValue(COLORREF cmyk) {
|
|
return cast(BYTE)(cmyk >> 24);
|
|
}
|
|
|
|
BYTE GetMValue(COLORREF cmyk) {
|
|
return cast(BYTE)(cmyk >> 16);
|
|
}
|
|
|
|
BYTE GetYValue(COLORREF cmyk) {
|
|
return cast(BYTE)(cmyk >> 8);
|
|
}
|
|
|
|
BYTE GetKValue(COLORREF cmyk) {
|
|
return cast(BYTE)cmyk;
|
|
}
|
|
|
|
COLORREF RGB(BYTE r, BYTE g, BYTE b) {
|
|
return cast(COLORREF)(r | (g << 8) | (b << 16));
|
|
}
|
|
|
|
BYTE GetRValue(COLORREF c) {
|
|
return cast(BYTE)c;
|
|
}
|
|
|
|
BYTE GetGValue(COLORREF c) {
|
|
return cast(BYTE)(c >> 8);
|
|
}
|
|
|
|
BYTE GetBValue(COLORREF c) {
|
|
return cast(BYTE)(c >> 16);
|
|
}
|
|
|
|
COLORREF PALETTEINDEX(WORD i) {
|
|
return 0x01000000 | cast(COLORREF) i;
|
|
}
|
|
|
|
COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b) {
|
|
return 0x02000000|RGB(r, g, b);
|
|
}
|
|
|
|
extern(Windows) {
|
|
int AbortDoc(HDC);
|
|
BOOL AbortPath(HDC);
|
|
int AddFontResourceA(LPCSTR);
|
|
int AddFontResourceW(LPCWSTR);
|
|
BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
|
|
BOOL AnimatePalette(HPALETTE, UINT, UINT, const(PALETTEENTRY)*);
|
|
BOOL Arc(HDC, int, int, int, int, int, int, int, int);
|
|
BOOL ArcTo(HDC, int, int, int, int, int, int, int, int);
|
|
BOOL BeginPath(HDC);
|
|
BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
|
|
BOOL CancelDC(HDC);
|
|
BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD);
|
|
BOOL Chord(HDC, int, int, int, int, int, int, int, int);
|
|
int ChoosePixelFormat(HDC, const(PIXELFORMATDESCRIPTOR)*);
|
|
HENHMETAFILE CloseEnhMetaFile(HDC);
|
|
BOOL CloseFigure(HDC);
|
|
HMETAFILE CloseMetaFile(HDC);
|
|
BOOL ColorMatchToTarget(HDC, HDC, DWORD);
|
|
BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD);
|
|
int CombineRgn(HRGN, HRGN, HRGN, int);
|
|
BOOL CombineTransform(LPXFORM, const(XFORM)*, const(XFORM)*);
|
|
HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
|
|
HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
|
|
HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);
|
|
HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);
|
|
HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID);
|
|
HBITMAP CreateBitmapIndirect(const(BITMAP)*);
|
|
HBRUSH CreateBrushIndirect(const(LOGBRUSH)*);
|
|
HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA);
|
|
HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW);
|
|
HBITMAP CreateCompatibleBitmap(HDC, int, int);
|
|
HDC CreateCompatibleDC(HDC);
|
|
HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*);
|
|
HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*);
|
|
HBITMAP CreateDIBitmap(HDC, const(BITMAPINFOHEADER)*, DWORD, PCVOID, const(BITMAPINFO)*, UINT);
|
|
HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);
|
|
HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT);
|
|
HBITMAP CreateDIBSection(HDC, const(BITMAPINFO)*, UINT, void**, HANDLE, DWORD);
|
|
HBITMAP CreateDiscardableBitmap(HDC, int, int);
|
|
HRGN CreateEllipticRgn(int, int, int, int);
|
|
HRGN CreateEllipticRgnIndirect(LPCRECT);
|
|
HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR);
|
|
HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR);
|
|
HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR);
|
|
HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR);
|
|
HFONT CreateFontIndirectA(const(LOGFONTA)*);
|
|
HFONT CreateFontIndirectW(const(LOGFONTW)*);
|
|
HPALETTE CreateHalftonePalette(HDC);
|
|
HBRUSH CreateHatchBrush(int, COLORREF);
|
|
HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*);
|
|
HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*);
|
|
HDC CreateMetaFileA(LPCSTR);
|
|
HDC CreateMetaFileW(LPCWSTR);
|
|
HPALETTE CreatePalette(const(LOGPALETTE)*);
|
|
HBRUSH CreatePatternBrush(HBITMAP);
|
|
HPEN CreatePen(int, int, COLORREF);
|
|
HPEN CreatePenIndirect(const(LOGPEN)*);
|
|
HRGN CreatePolygonRgn(const(POINT)*, int, int);
|
|
HRGN CreatePolyPolygonRgn(const(POINT)*, const(INT)*, int, int);
|
|
HRGN CreateRectRgn(int, int, int, int);
|
|
HRGN CreateRectRgnIndirect(LPCRECT);
|
|
HRGN CreateRoundRectRgn(int, int, int, int, int, int);
|
|
BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
|
|
BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
|
|
HBRUSH CreateSolidBrush(COLORREF);
|
|
BOOL DeleteColorSpace(HCOLORSPACE);
|
|
BOOL DeleteDC(HDC);
|
|
BOOL DeleteEnhMetaFile(HENHMETAFILE);
|
|
BOOL DeleteMetaFile(HMETAFILE);
|
|
BOOL DeleteObject(HGDIOBJ);
|
|
int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
|
|
DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, const(DEVMODEA)*);
|
|
DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, const(DEVMODEW)*);
|
|
BOOL DPtoLP(HDC, LPPOINT, int);
|
|
int DrawEscape(HDC, int, int, LPCSTR);
|
|
BOOL Ellipse(HDC, int, int, int, int);
|
|
int EndDoc(HDC);
|
|
int EndPage(HDC);
|
|
BOOL EndPath(HDC);
|
|
BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT);
|
|
int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
|
|
int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
|
|
int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD);
|
|
int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD);
|
|
int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
|
|
int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
|
|
int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM);
|
|
int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM);
|
|
BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
|
|
int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
|
|
BOOL EqualRgn(HRGN, HRGN);
|
|
int Escape(HDC, int, int, LPCSTR, PVOID);
|
|
int ExcludeClipRect(HDC, int, int, int, int);
|
|
int ExcludeUpdateRgn(HDC, HWND);
|
|
HPEN ExtCreatePen(DWORD, DWORD, const(LOGBRUSH)*, DWORD, const(DWORD)*);
|
|
HRGN ExtCreateRegion(const(XFORM)*, DWORD, const(RGNDATA)*);
|
|
int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
|
|
BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);
|
|
int ExtSelectClipRgn(HDC, HRGN, int);
|
|
BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, const(INT)*);
|
|
BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, const(INT)*);
|
|
BOOL FillPath(HDC);
|
|
int FillRect(HDC, LPCRECT, HBRUSH);
|
|
int FillRgn(HDC, HRGN, HBRUSH);
|
|
BOOL FixBrushOrgEx(HDC, int, int, LPPOINT);
|
|
BOOL FlattenPath(HDC);
|
|
BOOL FloodFill(HDC, int, int, COLORREF);
|
|
BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
|
|
BOOL GdiComment(HDC, UINT, const(BYTE)*);
|
|
BOOL GdiFlush();
|
|
DWORD GdiGetBatchLimit();
|
|
DWORD GdiSetBatchLimit(DWORD);
|
|
int GetArcDirection(HDC);
|
|
BOOL GetAspectRatioFilterEx(HDC, LPSIZE);
|
|
LONG GetBitmapBits(HBITMAP, LONG, PVOID);
|
|
BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);
|
|
COLORREF GetBkColor(HDC);
|
|
int GetBkMode(HDC);
|
|
UINT GetBoundsRect(HDC, LPRECT, UINT);
|
|
BOOL GetBrushOrgEx(HDC, LPPOINT);
|
|
BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
|
|
BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
|
|
BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
|
|
BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
|
|
DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
|
|
DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
|
|
BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);
|
|
BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);
|
|
BOOL GetCharWidthA(HDC, UINT, UINT, LPINT);
|
|
BOOL GetCharWidthW(HDC, UINT, UINT, LPINT);
|
|
BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
|
|
BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
|
|
int GetClipBox(HDC, LPRECT);
|
|
int GetClipRgn(HDC, HRGN);
|
|
BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
|
|
HANDLE GetColorSpace(HDC);
|
|
HGDIOBJ GetCurrentObject(HDC, UINT);
|
|
BOOL GetCurrentPositionEx(HDC, LPPOINT);
|
|
HCURSOR GetCursor();
|
|
BOOL GetDCOrgEx(HDC, LPPOINT);
|
|
static if (_WIN32_WINNT >= 0x500)
|
|
{
|
|
DWORD GetDCPenColor(HGDIOBJ);
|
|
COLORREF GetDCBrushColor(HGDIOBJ);
|
|
}
|
|
int GetDeviceCaps(HDC, int);
|
|
BOOL GetDeviceGammaRamp(HDC, PVOID);
|
|
UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*);
|
|
int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT);
|
|
HENHMETAFILE GetEnhMetaFileA(LPCSTR);
|
|
HENHMETAFILE GetEnhMetaFileW(LPCWSTR);
|
|
UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
|
|
UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR);
|
|
UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR);
|
|
UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER);
|
|
UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY);
|
|
UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, const(PIXELFORMATDESCRIPTOR)*);
|
|
DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD);
|
|
DWORD GetFontLanguageInfo(HDC);
|
|
DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*);
|
|
DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*);
|
|
int GetGraphicsMode(HDC);
|
|
BOOL GetICMProfileA(HDC, DWORD, LPSTR);
|
|
BOOL GetICMProfileW(HDC, DWORD, LPWSTR);
|
|
DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
|
|
DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
|
|
BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD);
|
|
BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD);
|
|
int GetMapMode(HDC);
|
|
HMETAFILE GetMetaFileA(LPCSTR);
|
|
HMETAFILE GetMetaFileW(LPCWSTR);
|
|
UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID);
|
|
int GetMetaRgn(HDC, HRGN);
|
|
BOOL GetMiterLimit(HDC, PFLOAT);
|
|
COLORREF GetNearestColor(HDC, COLORREF);
|
|
UINT GetNearestPaletteIndex(HPALETTE, COLORREF);
|
|
int GetObjectA(HGDIOBJ, int, PVOID);
|
|
int GetObjectW(HGDIOBJ, int, PVOID);
|
|
DWORD GetObjectType(HGDIOBJ);
|
|
UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
|
|
UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
|
|
UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
|
|
int GetPath(HDC, LPPOINT, PBYTE, int);
|
|
COLORREF GetPixel(HDC, int, int);
|
|
int GetPixelFormat(HDC);
|
|
int GetPolyFillMode(HDC);
|
|
BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
|
|
int GetRandomRgn (HDC, HRGN, INT);
|
|
DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);
|
|
int GetRgnBox(HRGN, LPRECT);
|
|
int GetROP2(HDC);
|
|
HGDIOBJ GetStockObject(int);
|
|
int GetStretchBltMode(HDC);
|
|
UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
|
|
UINT GetSystemPaletteUse(HDC);
|
|
UINT GetTextAlign(HDC);
|
|
int GetTextCharacterExtra(HDC);
|
|
int GetTextCharset(HDC);
|
|
int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD);
|
|
COLORREF GetTextColor(HDC);
|
|
BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE);
|
|
BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE);
|
|
BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE);
|
|
BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE);
|
|
BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE);
|
|
BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE);
|
|
int GetTextFaceA(HDC, int, LPSTR);
|
|
int GetTextFaceW(HDC, int, LPWSTR);
|
|
BOOL GetTextMetricsA(HDC, LPTEXTMETRICA);
|
|
BOOL GetTextMetricsW(HDC, LPTEXTMETRICW);
|
|
BOOL GetViewportExtEx(HDC, LPSIZE);
|
|
BOOL GetViewportOrgEx(HDC, LPPOINT);
|
|
BOOL GetWindowExtEx(HDC, LPSIZE);
|
|
BOOL GetWindowOrgEx(HDC, LPPOINT);
|
|
UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
|
|
BOOL GetWorldTransform(HDC, LPXFORM);
|
|
int IntersectClipRect(HDC, int, int, int, int);
|
|
BOOL InvertRgn(HDC, HRGN);
|
|
BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
|
|
BOOL LineTo(HDC, int, int);
|
|
BOOL LPtoDP(HDC, LPPOINT, int);
|
|
BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD);
|
|
BOOL ModifyWorldTransform(HDC, const(XFORM)*, DWORD);
|
|
BOOL MoveToEx(HDC, int, int, LPPOINT);
|
|
int OffsetClipRgn(HDC, int, int);
|
|
int OffsetRgn(HRGN, int, int);
|
|
BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);
|
|
BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);
|
|
BOOL PaintRgn(HDC, HRGN);
|
|
BOOL PatBlt(HDC, int, int, int, int, DWORD);
|
|
HRGN PathToRegion(HDC);
|
|
BOOL Pie(HDC, int, int, int, int, int, int, int, int);
|
|
BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT);
|
|
BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, const(ENHMETARECORD)*, UINT);
|
|
BOOL PlayMetaFile(HDC, HMETAFILE);
|
|
BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
|
|
BOOL PlgBlt(HDC, const(POINT)*, HDC, int, int, int, int, HBITMAP, int, int);
|
|
BOOL PolyBezier(HDC, const(POINT)*, DWORD);
|
|
BOOL PolyBezierTo(HDC, const(POINT)*, DWORD);
|
|
BOOL PolyDraw(HDC, const(POINT)*, const(BYTE)*, int);
|
|
BOOL Polygon(HDC, const(POINT)*, int);
|
|
BOOL Polyline(HDC, const(POINT)*, int);
|
|
BOOL PolylineTo(HDC, const(POINT)*, DWORD);
|
|
BOOL PolyPolygon(HDC, const(POINT)*, const(INT)*, int);
|
|
BOOL PolyPolyline(HDC, const(POINT)*, const(DWORD)*, DWORD);
|
|
BOOL PolyTextOutA(HDC, const(POLYTEXTA)*, int);
|
|
BOOL PolyTextOutW(HDC, const(POLYTEXTW)*, int);
|
|
BOOL PtInRegion(HRGN, int, int);
|
|
BOOL PtVisible(HDC, int, int);
|
|
UINT RealizePalette(HDC);
|
|
BOOL Rectangle(HDC, int, int, int, int);
|
|
BOOL RectInRegion(HRGN, LPCRECT);
|
|
BOOL RectVisible(HDC, LPCRECT);
|
|
BOOL RemoveFontResourceA(LPCSTR);
|
|
BOOL RemoveFontResourceW(LPCWSTR);
|
|
|
|
HDC ResetDCA(HDC, const(DEVMODEA)*);
|
|
HDC ResetDCW(HDC, const(DEVMODEW)*);
|
|
BOOL ResizePalette(HPALETTE, UINT);
|
|
BOOL RestoreDC(HDC, int);
|
|
BOOL RoundRect(HDC, int, int, int, int, int, int);
|
|
int SaveDC(HDC);
|
|
BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
|
|
BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
|
|
BOOL SelectClipPath(HDC, int);
|
|
int SelectClipRgn(HDC, HRGN);
|
|
HGDIOBJ SelectObject(HDC, HGDIOBJ);
|
|
HPALETTE SelectPalette(HDC, HPALETTE, BOOL);
|
|
int SetAbortProc(HDC, ABORTPROC);
|
|
int SetArcDirection(HDC, int);
|
|
LONG SetBitmapBits(HBITMAP, DWORD, PCVOID);
|
|
BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
|
|
COLORREF SetBkColor(HDC, COLORREF);
|
|
int SetBkMode(HDC, int);
|
|
UINT SetBoundsRect(HDC, LPCRECT, UINT);
|
|
BOOL SetBrushOrgEx(HDC, int, int, LPPOINT);
|
|
BOOL SetColorAdjustment(HDC, const(COLORADJUSTMENT)*);
|
|
BOOL SetColorSpace(HDC, HCOLORSPACE);
|
|
|
|
BOOL SetDeviceGammaRamp(HDC, PVOID);
|
|
UINT SetDIBColorTable(HDC, UINT, UINT, const(RGBQUAD)*);
|
|
int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT);
|
|
int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT);
|
|
HENHMETAFILE SetEnhMetaFileBits(UINT, const(BYTE)*);
|
|
int SetGraphicsMode(HDC, int);
|
|
int SetICMMode(HDC, int);
|
|
BOOL SetICMProfileA(HDC, LPSTR);
|
|
BOOL SetICMProfileW(HDC, LPWSTR);
|
|
int SetMapMode(HDC, int);
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
DWORD SetLayout(HDC hdc, DWORD l);
|
|
DWORD GetLayout(HDC hdc);
|
|
}
|
|
|
|
DWORD SetMapperFlags(HDC, DWORD);
|
|
HMETAFILE SetMetaFileBitsEx(UINT, const(BYTE)*);
|
|
int SetMetaRgn(HDC);
|
|
BOOL SetMiterLimit(HDC, FLOAT, PFLOAT);
|
|
UINT SetPaletteEntries(HPALETTE, UINT, UINT, const(PALETTEENTRY)*);
|
|
COLORREF SetPixel(HDC, int, int, COLORREF);
|
|
BOOL SetPixelFormat(HDC, int, const(PIXELFORMATDESCRIPTOR)*);
|
|
BOOL SetPixelV(HDC, int, int, COLORREF);
|
|
int SetPolyFillMode(HDC, int);
|
|
BOOL SetRectRgn(HRGN, int, int, int, int);
|
|
int SetROP2(HDC, int);
|
|
int SetStretchBltMode(HDC, int);
|
|
UINT SetSystemPaletteUse(HDC, UINT);
|
|
UINT SetTextAlign(HDC, UINT);
|
|
int SetTextCharacterExtra(HDC, int);
|
|
COLORREF SetTextColor(HDC, COLORREF);
|
|
BOOL SetTextJustification(HDC, int, int);
|
|
BOOL SetViewportExtEx(HDC, int, int, LPSIZE);
|
|
BOOL SetViewportOrgEx(HDC, int, int, LPPOINT);
|
|
BOOL SetWindowExtEx(HDC, int, int, LPSIZE);
|
|
BOOL SetWindowOrgEx(HDC, int, int, LPPOINT);
|
|
HENHMETAFILE SetWinMetaFileBits(UINT, const(BYTE)*, HDC, const(METAFILEPICT)*);
|
|
BOOL SetWorldTransform(HDC, const(XFORM)*);
|
|
int StartDocA(HDC, const(DOCINFOA)*);
|
|
int StartDocW(HDC, const(DOCINFOW)*);
|
|
int StartPage(HDC);
|
|
BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
|
|
int StretchDIBits(HDC, int, int, int, int, int, int, int, int, const(VOID)* , const(BITMAPINFO)* , UINT, DWORD);
|
|
BOOL StrokeAndFillPath(HDC);
|
|
BOOL StrokePath(HDC);
|
|
BOOL SwapBuffers(HDC);
|
|
BOOL TextOutA(HDC, int, int, LPCSTR, int);
|
|
BOOL TextOutW(HDC, int, int, LPCWSTR, int);
|
|
BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD);
|
|
BOOL UnrealizeObject(HGDIOBJ);
|
|
BOOL UpdateColors(HDC);
|
|
BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT);
|
|
BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT);
|
|
BOOL WidenPath(HDC);
|
|
BOOL wglCopyContext(HGLRC, HGLRC, UINT);
|
|
HGLRC wglCreateContext(HDC);
|
|
HGLRC wglCreateLayerContext(HDC, int);
|
|
BOOL wglDeleteContext(HGLRC);
|
|
BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
|
|
HGLRC wglGetCurrentContext();
|
|
HDC wglGetCurrentDC();
|
|
int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*);
|
|
PROC wglGetProcAddress(LPCSTR);
|
|
BOOL wglMakeCurrent(HDC, HGLRC);
|
|
BOOL wglRealizeLayerPalette(HDC, int, BOOL);
|
|
int wglSetLayerPaletteEntries(HDC, int, int, int, const(COLORREF)*);
|
|
BOOL wglShareLists(HGLRC, HGLRC);
|
|
BOOL wglSwapLayerBuffers(HDC, UINT);
|
|
BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
|
|
BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
|
|
BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
|
|
BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
alias WGLSWAP* PWGLSWAP;
|
|
struct WGLSWAP {
|
|
HDC hdc;
|
|
UINT uiFlags;
|
|
}
|
|
const WGL_SWAPMULTIPLE_MAX = 16;
|
|
DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*);
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION);
|
|
BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG);
|
|
BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT);
|
|
}
|
|
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
COLORREF SetDCBrushColor(HDC, COLORREF);
|
|
COLORREF SetDCPenColor(HDC, COLORREF);
|
|
HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*);
|
|
int AddFontResourceExA(LPCSTR, DWORD, PVOID);
|
|
int AddFontResourceExW(LPCWSTR, DWORD, PVOID);
|
|
BOOL RemoveFontMemResourceEx(HANDLE);
|
|
BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
|
|
BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
|
|
DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET);
|
|
DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD);
|
|
DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD);
|
|
BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE);
|
|
BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE);
|
|
BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT);
|
|
BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC);
|
|
}
|
|
} // extern (Windows)
|
|
|
|
version(Unicode) {
|
|
alias WCHAR BCHAR;
|
|
alias DOCINFOW DOCINFO;
|
|
alias LOGFONTW LOGFONT;
|
|
|
|
alias TEXTMETRICW TEXTMETRIC;
|
|
alias NPTEXTMETRICW NPTEXTMETRIC;
|
|
alias ICMENUMPROCW ICMENUMPROC;
|
|
alias FONTENUMPROCW FONTENUMPROC;
|
|
alias DEVMODEW DEVMODE;
|
|
|
|
alias EXTLOGFONTW EXTLOGFONT;
|
|
alias GCP_RESULTSW GCP_RESULTS;
|
|
alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
|
|
alias POLYTEXTW POLYTEXT;
|
|
alias LOGCOLORSPACEW LOGCOLORSPACE;
|
|
alias NEWTEXTMETRICW NEWTEXTMETRIC;
|
|
alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
|
|
alias ENUMLOGFONTW ENUMLOGFONT;
|
|
alias ENUMLOGFONTEXW ENUMLOGFONTEX;
|
|
alias DISPLAY_DEVICEW DISPLAY_DEVICE;
|
|
alias AddFontResourceW AddFontResource;
|
|
|
|
alias CopyEnhMetaFileW CopyEnhMetaFile;
|
|
alias CopyMetaFileW CopyMetaFile;
|
|
alias CreateColorSpaceW CreateColorSpace;
|
|
alias CreateDCW CreateDC;
|
|
alias CreateEnhMetaFileW CreateEnhMetaFile;
|
|
alias CreateFontW CreateFont;
|
|
alias CreateFontIndirectW CreateFontIndirect;
|
|
alias CreateICW CreateIC;
|
|
alias CreateMetaFileW CreateMetaFile;
|
|
alias CreateScalableFontResourceW CreateScalableFontResource;
|
|
alias DeviceCapabilitiesW DeviceCapabilities;
|
|
alias EnumFontFamiliesW EnumFontFamilies;
|
|
alias EnumFontFamiliesExW EnumFontFamiliesEx;
|
|
alias EnumFontsW EnumFonts;
|
|
alias EnumICMProfilesW EnumICMProfiles;
|
|
alias ExtTextOutW ExtTextOut;
|
|
alias GetCharABCWidthsFloatW GetCharABCWidthsFloat;
|
|
alias GetCharABCWidthsW GetCharABCWidths;
|
|
alias GetCharacterPlacementW GetCharacterPlacement;
|
|
alias GetCharWidth32W GetCharWidth32;
|
|
alias GetCharWidthFloatW GetCharWidthFloat;
|
|
alias GetCharWidthW GetCharWidth;
|
|
alias GetEnhMetaFileW GetEnhMetaFile;
|
|
alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription;
|
|
alias GetGlyphOutlineW GetGlyphOutline;
|
|
alias GetICMProfileW GetICMProfile;
|
|
alias GetKerningPairsW GetKerningPairs;
|
|
alias GetLogColorSpaceW GetLogColorSpace;
|
|
alias GetMetaFileW GetMetaFile;
|
|
alias GetObjectW GetObject;
|
|
alias GetOutlineTextMetricsW GetOutlineTextMetrics;
|
|
alias GetTextExtentPointW GetTextExtentPoint;
|
|
alias GetTextExtentExPointW GetTextExtentExPoint;
|
|
alias GetTextExtentPoint32W GetTextExtentPoint32;
|
|
alias GetTextFaceW GetTextFace;
|
|
alias GetTextMetricsW GetTextMetrics;
|
|
alias PolyTextOutW PolyTextOut;
|
|
alias RemoveFontResourceW RemoveFontResource;
|
|
|
|
alias ResetDCW ResetDC;
|
|
alias SetICMProfileW SetICMProfile;
|
|
alias StartDocW StartDoc;
|
|
alias TextOutW TextOut;
|
|
alias UpdateICMRegKeyW UpdateICMRegKey;
|
|
alias wglUseFontBitmapsW wglUseFontBitmaps;
|
|
alias wglUseFontOutlinesW wglUseFontOutlines;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
|
|
alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
|
|
alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
|
|
alias AddFontResourceExW AddFontResourceEx;
|
|
alias RemoveFontResourceExW RemoveFontResourceEx;
|
|
alias GetGlyphIndicesW GetGlyphIndices;
|
|
}
|
|
} else { /* non-unicode build */
|
|
alias BYTE BCHAR;
|
|
alias DOCINFOA DOCINFO;
|
|
alias LOGFONTA LOGFONT;
|
|
alias TEXTMETRICA TEXTMETRIC;
|
|
alias NPTEXTMETRICA NPTEXTMETRIC;
|
|
alias ICMENUMPROCA ICMENUMPROC;
|
|
alias FONTENUMPROCA FONTENUMPROC;
|
|
alias DEVMODEA DEVMODE;
|
|
alias EXTLOGFONTA EXTLOGFONT;
|
|
alias GCP_RESULTSA GCP_RESULTS;
|
|
alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
|
|
alias POLYTEXTA POLYTEXT;
|
|
alias LOGCOLORSPACEA LOGCOLORSPACE;
|
|
alias NEWTEXTMETRICA NEWTEXTMETRIC;
|
|
alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
|
|
alias ENUMLOGFONTA ENUMLOGFONT;
|
|
alias ENUMLOGFONTEXA ENUMLOGFONTEX;
|
|
alias DISPLAY_DEVICEA DISPLAY_DEVICE;
|
|
|
|
alias AddFontResourceA AddFontResource;
|
|
alias CopyEnhMetaFileA CopyEnhMetaFile;
|
|
alias CopyMetaFileA CopyMetaFile;
|
|
alias CreateColorSpaceA CreateColorSpace;
|
|
alias CreateDCA CreateDC;
|
|
alias CreateEnhMetaFileA CreateEnhMetaFile;
|
|
alias CreateFontA CreateFont;
|
|
alias CreateFontIndirectA CreateFontIndirect;
|
|
alias CreateICA CreateIC;
|
|
alias CreateMetaFileA CreateMetaFile;
|
|
alias CreateScalableFontResourceA CreateScalableFontResource;
|
|
alias DeviceCapabilitiesA DeviceCapabilities;
|
|
alias EnumFontFamiliesA EnumFontFamilies;
|
|
alias EnumFontFamiliesExA EnumFontFamiliesEx;
|
|
alias EnumFontsA EnumFonts;
|
|
alias EnumICMProfilesA EnumICMProfiles;
|
|
alias ExtTextOutA ExtTextOut;
|
|
alias GetCharWidthFloatA GetCharWidthFloat;
|
|
alias GetCharWidthA GetCharWidth;
|
|
alias GetCharacterPlacementA GetCharacterPlacement;
|
|
alias GetCharABCWidthsA GetCharABCWidths;
|
|
alias GetCharABCWidthsFloatA GetCharABCWidthsFloat;
|
|
alias GetCharWidth32A GetCharWidth32;
|
|
alias GetEnhMetaFileA GetEnhMetaFile;
|
|
alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription;
|
|
alias GetGlyphOutlineA GetGlyphOutline;
|
|
alias GetICMProfileA GetICMProfile;
|
|
alias GetKerningPairsA GetKerningPairs;
|
|
alias GetLogColorSpaceA GetLogColorSpace;
|
|
alias GetMetaFileA GetMetaFile;
|
|
alias GetObjectA GetObject;
|
|
alias GetOutlineTextMetricsA GetOutlineTextMetrics;
|
|
alias GetTextExtentPointA GetTextExtentPoint;
|
|
alias GetTextExtentExPointA GetTextExtentExPoint;
|
|
alias GetTextExtentPoint32A GetTextExtentPoint32;
|
|
alias GetTextFaceA GetTextFace;
|
|
alias GetTextMetricsA GetTextMetrics;
|
|
alias PolyTextOutA PolyTextOut;
|
|
alias RemoveFontResourceA RemoveFontResource;
|
|
alias ResetDCA ResetDC;
|
|
alias SetICMProfileA SetICMProfile;
|
|
alias StartDocA StartDoc;
|
|
alias TextOutA TextOut;
|
|
alias UpdateICMRegKeyA UpdateICMRegKey;
|
|
alias wglUseFontBitmapsA wglUseFontBitmaps;
|
|
alias wglUseFontOutlinesA wglUseFontOutlines;
|
|
static if (_WIN32_WINNT >= 0x500) {
|
|
alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
|
|
alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
|
|
alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
|
|
alias AddFontResourceExA AddFontResourceEx;
|
|
alias RemoveFontResourceExA RemoveFontResourceEx;
|
|
alias GetGlyphIndicesA GetGlyphIndices;
|
|
}
|
|
}
|
|
|
|
// Common to both ASCII & UNICODE
|
|
alias DOCINFO* LPDOCINFO;
|
|
alias LOGFONT* PLOGFONT, NPLOGFONT, LPLOGFONT;
|
|
alias TEXTMETRIC* PTEXTMETRIC, LPTEXTMETRIC;
|
|
alias DEVMODE* PDEVMODE, NPDEVMODE, LPDEVMODE;
|
|
alias EXTLOGFONT* PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT;
|
|
alias GCP_RESULTS* LPGCP_RESULTS;
|
|
alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC;
|
|
alias POLYTEXT* PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT;
|
|
alias LOGCOLORSPACE* LPLOGCOLORSPACE;
|
|
alias NEWTEXTMETRIC* PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC;
|
|
alias ENUMLOGFONT* LPENUMLOGFONT;
|
|
alias ENUMLOGFONTEX* LPENUMLOGFONTEX;
|
|
alias DISPLAY_DEVICE* PDISPLAY_DEVICE, LPDISPLAY_DEVICE;
|