| /** |
| * Windows API header module |
| * |
| * Translated from MinGW Windows headers |
| * |
| * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) |
| * Source: $(DRUNTIMESRC core/sys/windows/_wingdi.d) |
| */ |
| module core.sys.windows.wingdi; |
| version (Windows): |
| |
| version (ANSI) {} else version = Unicode; |
| pragma(lib, "gdi32"); |
| |
| // FIXME: clean up Windows version support |
| |
| import core.sys.windows.w32api, core.sys.windows.windef, core.sys.windows.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+ |
| enum 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 core.sys.windows.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 |
| } |
| |
| enum EMR_MIN = EMR_HEADER; |
| |
| static if (_WIN32_WINNT >= 0x500) { |
| enum EMR_MAX = EMR_CREATECOLORSPACEW; |
| } else { |
| enum 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. |
| enum byte |
| PFD_MAIN_PLANE = 0, |
| PFD_OVERLAY_PLANE = 1, |
| PFD_UNDERLAY_PLANE = -1; |
| //} |
| // PIXELFORMATDESCRIPTOR.dwFlags |
| enum 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, |
| PFD_DIRECT3D_ACCELERATED = 0x00004000, |
| PFD_SUPPORT_COMPOSITION = 0x00008000, |
| /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ |
| PFD_DEPTH_DONTCARE = 0x20000000, |
| PFD_DOUBLEBUFFER_DONTCARE = 0x40000000, |
| PFD_STEREO_DONTCARE = 0x80000000; |
| |
| // ---- |
| |
| enum 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) { |
| enum 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 |
| } |
| |
| enum R2_LAST = R2_WHITE; |
| |
| // CheckColorsInGamut() |
| enum ubyte |
| CM_IN_GAMUT = 0, |
| CM_OUT_OF_GAMUT = 255; |
| |
| /* UpdateICMRegKey Constants */ |
| enum 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 |
| } |
| |
| enum RGN_MIN = RGN_AND; |
| enum RGN_MAX = RGN_COPY; |
| |
| // Return values for CombineRgn() |
| enum { |
| NULLREGION = 1, |
| SIMPLEREGION = 2, |
| COMPLEXREGION = 3 |
| } |
| |
| enum ERROR = 0; |
| alias ERROR RGN_ERROR; |
| |
| // CreateDIBitmap() |
| enum 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() |
| enum LF_FACESIZE = 32; |
| enum LF_FULLFACESIZE = 64; |
| |
| // FIXME: Not needed for D, only EXTLOGFONT |
| enum ELF_VENDOR_SIZE = 4; |
| |
| // ??? |
| enum ELF_VERSION = 0; |
| enum ELF_CULTURE_LATIN = 0; |
| |
| // LOGFONT.lfWeight |
| enum 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 |
| |
| enum 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 |
| |
| enum 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 |
| } |
| |
| enum 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 |
| } |
| |
| // ---- |
| // ??? |
| enum FS_LATIN1 = 0x00000001; |
| enum FS_LATIN2 = 0x00000002; |
| enum FS_CYRILLIC = 0x00000004; |
| enum FS_GREEK = 0x00000008; |
| enum FS_TURKISH = 0x00000010; |
| enum FS_HEBREW = 0x00000020; |
| enum FS_ARABIC = 0x00000040; |
| enum FS_BALTIC = 0x00000080; |
| enum FS_VIETNAMESE = 0x00000100; |
| enum FS_THAI = 0x00010000; |
| enum FS_JISJAPAN = 0x00020000; |
| enum FS_CHINESESIMP = 0x00040000; |
| enum FS_WANSUNG = 0x00080000; |
| enum FS_CHINESETRAD = 0x00100000; |
| enum FS_JOHAB = 0x00200000; |
| enum FS_SYMBOL = 0x80000000; |
| |
| // ---- |
| // Poly Fill Mode |
| enum : int { |
| ALTERNATE = 1, |
| WINDING = 2 |
| } |
| enum 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 |
| enum 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, |
| } |
| //--- |
| |
| enum FLOODFILLBORDER = 0; |
| enum FLOODFILLSURFACE = 1; |
| |
| // ExtTextOut() |
| enum 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) { |
| enum 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 |
| } |
| |
| enum 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() |
| enum 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) |
| enum 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 */ |
| enum SB_NONE = 0x00000000; |
| enum SB_CONST_ALPHA = 0x00000001; |
| enum SB_PIXEL_ALPHA = 0x00000002; |
| enum SB_PREMULT_ALPHA = 0x00000004; |
| enum SB_GRAD_RECT = 0x00000010; |
| enum SB_GRAD_TRI = 0x00000020; |
| /* Color Management caps */ |
| enum CM_NONE = 0x00000000; |
| enum CM_DEVICE_ICM = 0x00000001; |
| enum CM_GAMMA_RAMP = 0x00000002; |
| enum CM_CMYK_COLOR = 0x00000004; |
| } |
| |
| // Return values for GetDeviceCaps(dc, CURVECAPS) |
| enum 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) |
| |
| enum 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) |
| |
| enum 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 */ |
| enum int CP_NONE = 0, |
| CP_RECTANGLE = 1, |
| CP_REGION = 2; |
| |
| // Return values for GetDeviceCaps(dc, TEXTCAPS) |
| |
| enum 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() |
| enum 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 |
| } |
| enum GM_LAST = GM_ADVANCED; |
| |
| enum : int { |
| MM_TEXT = 1, |
| MM_LOMETRIC, |
| MM_HIMETRIC, |
| MM_LOENGLISH, |
| MM_HIENGLISH, |
| MM_TWIPS, |
| MM_ISOTROPIC, |
| MM_ANISOTROPIC, |
| } |
| |
| enum int |
| MM_MIN = MM_TEXT, |
| MM_MAX = MM_ANISOTROPIC, |
| MM_MAX_FIXEDSCALE = MM_TWIPS; |
| |
| enum ABSOLUTE = 1; |
| enum RELATIVE = 2; |
| |
| enum : BYTE { |
| PC_RESERVED = 1, |
| PC_EXPLICIT = 2, |
| PC_NOCOLLAPSE = 4 |
| } |
| |
| /* FIXME: move to core.sys.windows.commctrl ? */ |
| // ImageList |
| enum COLORREF |
| CLR_NONE = 0xffffffff, |
| CLR_INVALID = CLR_NONE, |
| CLR_DEFAULT = 0xff000000; |
| |
| // RASTERIZER_STATUS.wFlags |
| enum 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) { |
| enum STOCK_LAST = DC_PEN; |
| } else { |
| enum STOCK_LAST = DEFAULT_GUI_FONT; |
| } |
| |
| // Get/SetSystemPaletteUse() |
| enum : UINT { |
| SYSPAL_ERROR = 0, |
| SYSPAL_STATIC = 1, |
| SYSPAL_NOSTATIC = 2, |
| SYSPAL_NOSTATIC256 = 3, |
| } |
| |
| // SetTextAlign() |
| enum 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 |
| } |
| |
| enum 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 */ |
| enum PSPROTOCOL_ASCII = 0; |
| enum PSPROTOCOL_BCP = 1; |
| enum PSPROTOCOL_TBCP = 2; |
| enum PSPROTOCOL_BINARY = 3; |
| |
| // ---- |
| |
| enum WPARAM PR_JOBSTATUS = 0; |
| |
| // ??? |
| enum QDI_SETDIBITS = 1; |
| enum QDI_GETDIBITS = 2; |
| enum QDI_DIBTOSCREEN = 4; |
| enum QDI_STRETCHDIB = 8; |
| |
| enum 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, |
| } |
| |
| enum DWORD |
| RASTER_FONTTYPE = 1, |
| DEVICE_FONTTYPE = 2, |
| TRUETYPE_FONTTYPE = 4; |
| |
| // --- |
| // DEVMODE struct |
| |
| // FIXME: Not needed for D (use .length instead) |
| enum CCHDEVICENAME = 32; |
| enum CCHFORMNAME = 32; |
| |
| // DEVMODE.dmSpecVersion |
| // current version of specification |
| enum 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 |
| } |
| } |
| |
| enum short DMPAPER_FIRST = DMPAPER_LETTER; |
| |
| static if (_WIN32_WINNT >= 0x500) { |
| enum short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED; |
| } else { |
| enum short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE; |
| } |
| |
| enum 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 |
| enum DWORD |
| DM_GRAYSCALE = 1, |
| DM_INTERLACED = 2; |
| |
| enum DWORD |
| DMDISPLAYFLAGS_TEXTMODE = 0x00000004; |
| |
| /* dmNup , multiple logical page per physical page options */ |
| enum DWORD |
| DMNUP_SYSTEM = 1, |
| DMNUP_ONEUP = 2; |
| |
| // DEVMODE.dmFields |
| enum DWORD |
| DM_ORIENTATION = 0x00000001, |
| DM_PAPERSIZE = 0x00000002, |
| DM_PAPERLENGTH = 0x00000004, |
| DM_PAPERWIDTH = 0x00000008, |
| DM_SCALE = 0x00000010; |
| static if (_WIN32_WINNT >= 0x500) { |
| enum DWORD |
| DM_POSITION = 0x00000020, |
| DM_NUP = 0x00000040; |
| } |
| static if (_WIN32_WINNT >= 0x501) { |
| enum DWORD |
| DM_DISPLAYORIENTATION = 0x00000080; |
| } |
| enum 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) { |
| enum 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() |
| enum 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; |
| // --- |
| |
| enum GDI_ERROR = 0xFFFFFFFF; |
| enum HGDI_ERROR= cast(HANDLE)GDI_ERROR; |
| |
| // TEXTMETRIC.tmPitchAndFamily |
| enum BYTE |
| TMPF_FIXED_PITCH = 1, |
| TMPF_VECTOR = 2, |
| TMPF_TRUETYPE = 4, |
| TMPF_DEVICE = 8; |
| |
| // NEWTEXTMETRIC.ntmFlags |
| enum 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; |
| |
| // --- |
| enum DWORD TT_POLYGON_TYPE = 24; |
| |
| // TTPOLYCURVE |
| enum : WORD { |
| TT_PRIM_LINE = 1, |
| TT_PRIM_QSPLINE = 2, |
| TT_PRIM_CSPLINE = 3, |
| } |
| // --- |
| enum FONTMAPPER_MAX = 10; |
| enum ENHMETA_STOCK_OBJECT = 0x80000000; |
| enum WGL_FONT_LINES = 0; |
| enum WGL_FONT_POLYGONS = 1; |
| |
| // --- |
| // LAYERPLANEDESCRIPTOR.dwFlags |
| enum 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() |
| enum 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; |
| |
| enum AC_SRC_OVER = 0x00; |
| enum AC_SRC_ALPHA = 0x01; |
| |
| // ??? |
| enum AC_SRC_NO_PREMULT_ALPHA = 0x01; |
| enum AC_SRC_NO_ALPHA = 0x02; |
| enum AC_DST_NO_PREMULT_ALPHA = 0x10; |
| enum AC_DST_NO_ALPHA = 0x20; |
| |
| enum LAYOUT_RTL = 1; |
| enum LAYOUT_BTT = 2; |
| enum LAYOUT_VBH = 4; |
| enum LAYOUT_BITMAPORIENTATIONPRESERVED = 8; |
| |
| enum CS_ENABLE = 0x00000001; |
| enum CS_DISABLE = 0x00000002; |
| enum CS_DELETE_TRANSFORM = 0x00000003; |
| |
| static if (_WIN32_WINNT > 0x500) { |
| enum GRADIENT_FILL_RECT_H=0x00; |
| enum GRADIENT_FILL_RECT_V=0x01; |
| enum GRADIENT_FILL_TRIANGLE=0x02; |
| enum GRADIENT_FILL_OP_FLAG=0xff; |
| enum COLORMATCHTOTARGET_EMBEDED=0x00000001; |
| enum CREATECOLORSPACE_EMBEDED=0x00000001; |
| enum SETICMPROFILE_EMBEDED=0x00000001; |
| } |
| |
| // DISPLAY_DEVICE.StateFlags |
| enum 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 */ |
| enum DWORD |
| DISPLAY_DEVICE_ACTIVE = 0x00000001, |
| DISPLAY_DEVICE_ATTACHED = 0x00000002; |
| |
| static if (_WIN32_WINNT >= 0x500) { |
| enum 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 { |
| align(2): |
| 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; |
| } |
| struct { |
| 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 = 0; |
| 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; |
| } |
| struct { |
| POINTL dmPosition; |
| DWORD dmDisplayOrientation; |
| DWORD dmDisplayFixedOutput; |
| } |
| } |
| |
| short dmColor; |
| short dmDuplex; |
| short dmYResolution; |
| short dmTTOption; |
| short dmCollate; |
| WCHAR[CCHFORMNAME] dmFormName = 0; |
| 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 = 0; |
| } |
| 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 = 0; |
| } |
| 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 = 0; |
| WCHAR[LF_FACESIZE] elfStyle = 0; |
| 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 EMRARC EMRARCTO; |
| alias EMRARCTO* PEMRARCTO; |
| alias EMRARC EMRCHORD; |
| alias EMRCHORD* PEMRCHORD; |
| alias 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; |
| ULONG_PTR lbHatch; |
| } |
| alias 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 = 0; |
| } |
| 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 = 0; |
| } |
| 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; |
| LOGCOLORSPACEA lcs; // ANSI version |
| } |
| alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE; |
| |
| struct EMRSETCOLORSPACE { |
| EMR emr; |
| DWORD ihCS; |
| } |
| alias EMRSETCOLORSPACE* PEMRSETCOLORSPACE; |
| alias EMRSETCOLORSPACE EMRSELECTCOLORSPACE; |
| alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE; |
| alias 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 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 EMRSETICMPROFILE EMRSETICMPROFILEA; |
| alias EMRSETICMPROFILEA* PEMRSETICMPROFILEA; |
| alias 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 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 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; |
| ULONG_PTR elpHatch; |
| DWORD elpNumEntries; |
| DWORD[1] elpStyleEntry; |
| } |
| alias EXTLOGPEN* PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN; |
| |
| struct EXTLOGPEN32 { |
| UINT elpPenStyle; |
| UINT elpWidth; |
| UINT elpBrushStyle; |
| COLORREF elpColor; |
| ULONG elpHatch; |
| DWORD elpNumEntries; |
| DWORD[1] elpStyleEntry; |
| } |
| alias EXTLOGPEN32* PEXTLOGPEN32, NPEXTLOGPEN32, LPEXTLOGPEN32; |
| |
| struct EMREXTCREATEPEN { |
| EMR emr; |
| DWORD ihPen; |
| DWORD offBmi; |
| DWORD cbBmi; |
| DWORD offBits; |
| DWORD cbBits; |
| EXTLOGPEN32 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 EMREXTTEXTOUTA EMREXTTEXTOUTW; |
| alias EMREXTTEXTOUTW* PEMREXTTEXTOUTW; |
| |
| struct EMRFILLPATH { |
| EMR emr; |
| RECTL rclBounds; |
| } |
| alias EMRFILLPATH* PEMRFILLPATH; |
| |
| alias EMRFILLPATH EMRSTROKEANDFILLPATH; |
| alias EMRSTROKEANDFILLPATH* PEMRSTROKEANDFILLPATH; |
| |
| alias 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 EMRINVERTRGN EMRPAINTRGN; |
| alias EMRPAINTRGN* PEMRPAINTRGN; |
| |
| struct EMRLINETO { |
| EMR emr; |
| POINTL ptl; |
| } |
| alias EMRLINETO* PEMRLINETO; |
| alias 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 EMRPOLYLINE EMRPOLYBEZIER; |
| alias EMRPOLYBEZIER* PEMRPOLYBEZIER; |
| alias EMRPOLYLINE EMRPOLYGON; |
| alias EMRPOLYGON* PEMRPOLYGON; |
| alias EMRPOLYLINE EMRPOLYBEZIERTO; |
| alias EMRPOLYBEZIERTO* PEMRPOLYBEZIERTO; |
| alias EMRPOLYLINE EMRPOLYLINETO; |
| alias EMRPOLYLINETO* PEMRPOLYLINETO; |
| |
| struct EMRPOLYLINE16 { |
| EMR emr; |
| RECTL rclBounds; |
| DWORD cpts; |
| POINTS[1] apts; |
| } |
| alias EMRPOLYLINE16* PEMRPOLYLINE16; |
| alias EMRPOLYLINE16 EMRPOLYBEZIER16; |
| alias EMRPOLYBEZIER16* PEMRPOLYBEZIER16; |
| alias EMRPOLYLINE16 EMRPOLYGON16; |
| alias EMRPOLYGON16* PEMRPOLYGON16; |
| alias EMRPOLYLINE16 EMRPOLYBEZIERTO16; |
| alias EMRPOLYBEZIERTO16* PEMRPOLYBEZIERTO16; |
| alias 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 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 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 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 EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX; |
| alias EMRSCALEWINDOWEXTEX* PEMRSCALEWINDOWEXTEX; |
| |
| struct EMRSELECTOBJECT { |
| EMR emr; |
| DWORD ihObject; |
| } |
| alias EMRSELECTOBJECT* PEMRSELECTOBJECT; |
| alias 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 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 EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX; |
| alias EMRSETWINDOWEXTEX* PEMRSETWINDOWEXTEX; |
| |
| struct EMRSETVIEWPORTORGEX { |
| EMR emr; |
| POINTL ptlOrigin; |
| } |
| alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX; |
| alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX; |
| alias EMRSETWINDOWORGEX* PEMRSETWINDOWORGEX; |
| alias 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 EMRABORTPATH EMRBEGINPATH; |
| alias EMRBEGINPATH* PEMRBEGINPATH; |
| alias EMRABORTPATH EMRENDPATH; |
| alias EMRENDPATH* PEMRENDPATH; |
| alias EMRABORTPATH EMRCLOSEFIGURE; |
| alias EMRCLOSEFIGURE* PEMRCLOSEFIGURE; |
| alias EMRABORTPATH EMRFLATTENPATH; |
| alias EMRFLATTENPATH* PEMRFLATTENPATH; |
| alias EMRABORTPATH EMRWIDENPATH; |
| alias EMRWIDENPATH* PEMRWIDENPATH; |
| alias EMRABORTPATH EMRSETMETARGN; |
| alias EMRSETMETARGN* PEMRSETMETARGN; |
| alias EMRABORTPATH EMRSAVEDC; |
| alias EMRSAVEDC* PEMRSAVEDC; |
| alias EMRABORTPATH EMRREALIZEPALETTE; |
| alias EMRREALIZEPALETTE* PEMRREALIZEPALETTE; |
| |
| struct EMRSELECTCLIPPATH { |
| EMR emr; |
| DWORD iMode; |
| } |
| alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH; |
| alias EMRSELECTCLIPPATH EMRSETBKMODE; |
| alias EMRSETBKMODE* PEMRSETBKMODE; |
| alias EMRSELECTCLIPPATH EMRSETMAPMODE; |
| alias EMRSETMAPMODE* PEMRSETMAPMODE; |
| alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE; |
| alias EMRSETPOLYFILLMODE* PEMRSETPOLYFILLMODE; |
| alias EMRSELECTCLIPPATH EMRSETROP2; |
| alias EMRSETROP2* PEMRSETROP2; |
| alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE; |
| alias EMRSETSTRETCHBLTMODE* PEMRSETSTRETCHBLTMODE; |
| alias EMRSELECTCLIPPATH EMRSETICMMODE; |
| alias EMRSETICMMODE* PEMRSETICMMODE; |
| alias EMRSELECTCLIPPATH EMRSETTEXTALIGN; |
| alias EMRSETTEXTALIGN* PEMRSETTEXTALIGN; |
| alias EMRSELECTCLIPPATH EMRENABLEICM; |
| alias EMRENABLEICM* PEMRENABLEICM; |
| static if (_WIN32_WINNT >= 0x500) { |
| alias EMRSELECTCLIPPATH EMRSETLAYOUT; |
| alias EMRSETLAYOUT* PEMRSETLAYOUT; |
| } |
| |
| align(2): |
| struct METAHEADER { |
| align(2): |
| 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 = 0; |
| WCHAR tmLastChar = 0; |
| WCHAR tmDefaultChar = 0; |
| WCHAR tmBreakChar = 0; |
| 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 = 0; |
| } |
| alias RGNDATA* PRGNDATA, NPRGNDATA, LPRGNDATA; |
| |
| /* for GetRandomRgn */ |
| enum 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 = 0; |
| USHORT cGlyphs; |
| } |
| alias WCRANGE* PWCRANGE, LPWCRANGE; |
| |
| struct GLYPHSET { |
| DWORD cbThis; |
| DWORD flAccel; |
| DWORD cGlyphsSupported; |
| DWORD cRanges; |
| WCRANGE[1] ranges; |
| } |
| alias GLYPHSET* PGLYPHSET, LPGLYPHSET; |
| |
| enum 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 = 0; |
| WCHAR tmLastChar = 0; |
| WCHAR tmDefaultChar = 0; |
| WCHAR tmBreakChar = 0; |
| 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 = 0; |
| WCHAR[LF_FACESIZE] elfStyle = 0; |
| } |
| 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 = 0; |
| WCHAR[LF_FACESIZE] elfStyle = 0; |
| WCHAR[LF_FACESIZE] elfScript = 0; |
| } |
| 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; |
| |
| enum MM_MAX_NUMAXES = 16; |
| |
| struct DESIGNVECTOR { |
| DWORD dvReserved; |
| DWORD dvNumAxes; |
| LONG[MM_MAX_NUMAXES] dvValues; |
| } |
| alias DESIGNVECTOR* PDESIGNVECTOR, LPDESIGNVECTOR; |
| enum STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8); |
| enum STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8); |
| |
| static if (_WIN32_WINNT >= 0x500) { |
| |
| enum 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 = 0; |
| } |
| 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; |
| |
| extern(Windows) nothrow @nogc { |
| 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 = 0; |
| CHAR[128] DeviceString = 0; |
| DWORD StateFlags; |
| CHAR[128] DeviceID = 0; |
| CHAR[128] DeviceKey = 0; |
| } |
| alias DISPLAY_DEVICEA* PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA; |
| |
| struct DISPLAY_DEVICEW { |
| DWORD cb; |
| WCHAR[32] DeviceName = 0; |
| WCHAR[128] DeviceString = 0; |
| DWORD StateFlags; |
| WCHAR[128] DeviceID = 0; |
| WCHAR[128] DeviceKey = 0; |
| } |
| alias DISPLAY_DEVICEW* PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW; |
| |
| struct DRAWPATRECT { |
| POINT ptPosition; |
| POINT ptSize; |
| WORD wStyle; |
| WORD wPattern; |
| } |
| alias DRAWPATRECT* PDRAWPATRECT; |
| |
| // --------- |
| // Callbacks |
| extern (Windows) { |
| alias BOOL function (HDC, int) ABORTPROC; |
| alias int function (HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC; |
| alias int function (HDC, HANDLETABLE*, const(ENHMETARECORD)*, int, LPARAM) ENHMFENUMPROC; |
| alias int function (const(LOGFONTA)*, const(TEXTMETRICA)*, DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA; |
| alias int function (const(LOGFONTW)*, const(TEXTMETRICW)*, DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW; |
| alias int function (LPSTR, LPARAM) ICMENUMPROCA; |
| alias int function (LPWSTR, LPARAM) ICMENUMPROCW; |
| alias void function (LPVOID, LPARAM) GOBJENUMPROC; |
| alias void function (int, int, LPARAM) LINEDDAPROC; |
| alias UINT function (HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE; |
| alias DWORD function (LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS; |
| } |
| |
| // --------- |
| // C Macros. |
| // FIXME: |
| //POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l))) |
| |
| nothrow @nogc { |
| 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*/uint r, /*BYTE*/uint g, /*BYTE*/uint 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) nothrow @nogc { |
| 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, LPDWORD, LPSTR); |
| BOOL GetICMProfileW(HDC, LPDWORD, 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; |
| } |
| enum 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; |