1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 7 * Source: $(DRUNTIMESRC core/sys/windows/_wingdi.d) 8 */ 9 /// Automatically imported and edited from the druntime module 10 /// core.sys.windows.wingdi for the auto-generated win32 package. 11 module win32.wingdi; 12 //version (Windows): 13 @system: 14 15 version (ANSI) {} else version = Unicode; 16 version (Win32_UseLib) pragma(lib, "gdi32"); 17 18 // FIXME: clean up Windows version support 19 20 import win32.w32api, win32.windef, win32.winver; 21 22 // BITMAPINFOHEADER.biCompression 23 enum : DWORD { 24 BI_RGB = 0, 25 BI_RLE8, 26 BI_RLE4, 27 BI_BITFIELDS, 28 BI_JPEG, 29 BI_PNG 30 } 31 32 // --- 33 // COLORADJUSTMENT -- only for NT 3.1+, Win2000+ 34 enum WORD 35 CA_NEGATIVE = 1, 36 CA_LOG_FILTER = 2; 37 38 // COLORADJUSTMENT 39 enum : WORD { 40 ILLUMINANT_DEVICE_DEFAULT = 0, 41 ILLUMINANT_A, 42 ILLUMINANT_B, 43 ILLUMINANT_C, 44 ILLUMINANT_D50, 45 ILLUMINANT_D55, 46 ILLUMINANT_D65, 47 ILLUMINANT_D75, 48 ILLUMINANT_F2, 49 ILLUMINANT_MAX_INDEX = ILLUMINANT_F2, 50 ILLUMINANT_TUNGSTEN = ILLUMINANT_A, 51 ILLUMINANT_DAYLIGHT = ILLUMINANT_C, 52 ILLUMINANT_FLUORESCENT = ILLUMINANT_F2, 53 ILLUMINANT_NTSC = ILLUMINANT_C 54 } 55 56 enum { 57 RGB_GAMMA_MIN = 2500, 58 RGB_GAMMA_MAX = 65000, 59 REFERENCE_WHITE_MIN = 6000, 60 REFERENCE_WHITE_MAX = 10000, 61 REFERENCE_BLACK_MIN = 0, 62 REFERENCE_BLACK_MAX = 4000, 63 COLOR_ADJ_MIN = -100, 64 COLOR_ADJ_MAX = 100, 65 } 66 //--- 67 68 /* FIXME: move to win32.winuser ? */ 69 // DrawIconEx() 70 enum : UINT { 71 DI_MASK = 1, 72 DI_IMAGE = 2, 73 DI_NORMAL = 3, 74 DI_COMPAT = 4, 75 DI_DEFAULTSIZE = 8 76 } 77 78 // DOCINFO 79 enum : DWORD { 80 DI_APPBANDING = 1, 81 DI_ROPS_READ_DESTINATION = 2, 82 } 83 84 // ENHMETAHEADER 85 enum : DWORD { 86 EMR_HEADER = 1, 87 EMR_POLYBEZIER, 88 EMR_POLYGON, 89 EMR_POLYLINE, 90 EMR_POLYBEZIERTO, 91 EMR_POLYLINETO, 92 EMR_POLYPOLYLINE, 93 EMR_POLYPOLYGON, 94 EMR_SETWINDOWEXTEX, 95 EMR_SETWINDOWORGEX, 96 EMR_SETVIEWPORTEXTEX, 97 EMR_SETVIEWPORTORGEX, 98 EMR_SETBRUSHORGEX, 99 EMR_EOF, 100 EMR_SETPIXELV, 101 EMR_SETMAPPERFLAGS, 102 EMR_SETMAPMODE, 103 EMR_SETBKMODE, 104 EMR_SETPOLYFILLMODE, 105 EMR_SETROP2, 106 EMR_SETSTRETCHBLTMODE, 107 EMR_SETTEXTALIGN, 108 EMR_SETCOLORADJUSTMENT, 109 EMR_SETTEXTCOLOR, 110 EMR_SETBKCOLOR, 111 EMR_OFFSETCLIPRGN, 112 EMR_MOVETOEX, 113 EMR_SETMETARGN, 114 EMR_EXCLUDECLIPRECT, 115 EMR_INTERSECTCLIPRECT, 116 EMR_SCALEVIEWPORTEXTEX, 117 EMR_SCALEWINDOWEXTEX, 118 EMR_SAVEDC, 119 EMR_RESTOREDC, 120 EMR_SETWORLDTRANSFORM, 121 EMR_MODIFYWORLDTRANSFORM, 122 EMR_SELECTOBJECT, 123 EMR_CREATEPEN, 124 EMR_CREATEBRUSHINDIRECT, 125 EMR_DELETEOBJECT, 126 EMR_ANGLEARC, 127 EMR_ELLIPSE, 128 EMR_RECTANGLE, 129 EMR_ROUNDRECT, 130 EMR_ARC, 131 EMR_CHORD, 132 EMR_PIE, 133 EMR_SELECTPALETTE, 134 EMR_CREATEPALETTE, 135 EMR_SETPALETTEENTRIES, 136 EMR_RESIZEPALETTE, 137 EMR_REALIZEPALETTE, 138 EMR_EXTFLOODFILL, 139 EMR_LINETO, 140 EMR_ARCTO, 141 EMR_POLYDRAW, 142 EMR_SETARCDIRECTION, 143 EMR_SETMITERLIMIT, 144 EMR_BEGINPATH, 145 EMR_ENDPATH, 146 EMR_CLOSEFIGURE, 147 EMR_FILLPATH, 148 EMR_STROKEANDFILLPATH, 149 EMR_STROKEPATH, 150 EMR_FLATTENPATH, 151 EMR_WIDENPATH, 152 EMR_SELECTCLIPPATH, 153 EMR_ABORTPATH, // 68 154 // reserved 69 155 EMR_GDICOMMENT = 70, 156 EMR_FILLRGN, 157 EMR_FRAMERGN, 158 EMR_INVERTRGN, 159 EMR_PAINTRGN, 160 EMR_EXTSELECTCLIPRGN, 161 EMR_BITBLT, 162 EMR_STRETCHBLT, 163 EMR_MASKBLT, 164 EMR_PLGBLT, 165 EMR_SETDIBITSTODEVICE, 166 EMR_STRETCHDIBITS, 167 EMR_EXTCREATEFONTINDIRECTW, 168 EMR_EXTTEXTOUTA, 169 EMR_EXTTEXTOUTW, 170 EMR_POLYBEZIER16, 171 EMR_POLYGON16, 172 EMR_POLYLINE16, 173 EMR_POLYBEZIERTO16, 174 EMR_POLYLINETO16, 175 EMR_POLYPOLYLINE16, 176 EMR_POLYPOLYGON16, 177 EMR_POLYDRAW16, 178 EMR_CREATEMONOBRUSH, 179 EMR_CREATEDIBPATTERNBRUSHPT, 180 EMR_EXTCREATEPEN, 181 EMR_POLYTEXTOUTA, 182 EMR_POLYTEXTOUTW, // 97 183 EMR_SETICMMODE, 184 EMR_CREATECOLORSPACE, 185 EMR_SETCOLORSPACE, 186 EMR_DELETECOLORSPACE, 187 EMR_GLSRECORD, 188 EMR_GLSBOUNDEDRECORD, 189 EMR_PIXELFORMAT, // = 104 190 // reserved 105 - 110 191 EMR_COLORCORRECTPALETTE = 111, 192 EMR_SETICMPROFILEA, 193 EMR_SETICMPROFILEW, 194 EMR_ALPHABLEND, 195 EMR_SETLAYOUT, 196 EMR_TRANSPARENTBLT, // 116 197 // reserved 117 198 EMR_GRADIENTFILL = 118, 199 // reserved 119, 120 200 EMR_COLORMATCHTOTARGETW = 121, 201 EMR_CREATECOLORSPACEW // 122 202 } 203 204 enum EMR_MIN = EMR_HEADER; 205 206 static if (_WIN32_WINNT >= 0x500) { 207 enum EMR_MAX = EMR_CREATECOLORSPACEW; 208 } else { 209 enum EMR_MAX = EMR_PIXELFORMAT; 210 } 211 212 // ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature, 213 // EMRFORMAT.dSignature 214 enum : DWORD { 215 ENHMETA_SIGNATURE = 1179469088, 216 EPS_SIGNATURE = 0x46535045 217 } 218 219 static if (_WIN32_WINNT >= 0x500) { 220 // AddFontResourceEx() 221 enum : DWORD { 222 FR_PRIVATE = 0x10, 223 FR_NOT_ENUM = 0x20 224 } 225 } 226 227 enum { 228 META_SAVEDC = 0x1E, 229 META_REALIZEPALETTE = 0x35, 230 META_SETPALENTRIES = 0x37, 231 META_CREATEPALETTE = 0xf7, 232 META_SETBKMODE = 0x102, 233 META_SETMAPMODE = 0x103, 234 META_SETROP2 = 0x104, 235 META_SETRELABS = 0x105, 236 META_SETPOLYFILLMODE = 0x106, 237 META_SETSTRETCHBLTMODE = 0x107, 238 META_SETTEXTCHAREXTRA = 0x108, 239 META_RESTOREDC = 0x127, 240 META_INVERTREGION = 0x12A, 241 META_PAINTREGION = 0x12B, 242 META_SELECTCLIPREGION = 0x12C, 243 META_SELECTOBJECT = 0x12D, 244 META_SETTEXTALIGN = 0x12E, 245 META_RESIZEPALETTE = 0x139, 246 META_DIBCREATEPATTERNBRUSH = 0x142, 247 META_SETLAYOUT = 0x149, 248 META_DELETEOBJECT = 0x1F0, 249 META_CREATEPATTERNBRUSH = 0x1F9, 250 META_SETBKCOLOR = 0x201, 251 META_SETTEXTCOLOR = 0x209, 252 META_SETTEXTJUSTIFICATION = 0x20A, 253 META_SETWINDOWORG = 0x20B, 254 META_SETWINDOWEXT = 0x20C, 255 META_SETVIEWPORTORG = 0x20D, 256 META_SETVIEWPORTEXT = 0x20E, 257 META_OFFSETWINDOWORG = 0x20F, 258 META_OFFSETVIEWPORTORG = 0x211, 259 META_LINETO = 0x213, 260 META_MOVETO = 0x214, 261 META_OFFSETCLIPRGN = 0x220, 262 META_FILLREGION = 0x228, 263 META_SETMAPPERFLAGS = 0x231, 264 META_SELECTPALETTE = 0x234, 265 META_CREATEPENINDIRECT = 0x2FA, 266 META_CREATEFONTINDIRECT = 0x2FB, 267 META_CREATEBRUSHINDIRECT = 0x2FC, 268 META_POLYGON = 0x324, 269 META_POLYLINE = 0x325, 270 META_SCALEWINDOWEXT = 0x410, 271 META_SCALEVIEWPORTEXT = 0x412, 272 META_EXCLUDECLIPRECT = 0x415, 273 META_INTERSECTCLIPRECT = 0x416, 274 META_ELLIPSE = 0x418, 275 META_FLOODFILL = 0x419, 276 META_RECTANGLE = 0x41B, 277 META_SETPIXEL = 0x41F, 278 META_FRAMEREGION = 0x429, 279 META_ANIMATEPALETTE = 0x436, 280 META_TEXTOUT = 0x521, 281 META_POLYPOLYGON = 0x538, 282 META_EXTFLOODFILL = 0x548, 283 META_ROUNDRECT = 0x61C, 284 META_PATBLT = 0x61D, 285 META_ESCAPE = 0x626, 286 META_CREATEREGION = 0x6FF, 287 META_ARC = 0x817, 288 META_PIE = 0x81A, 289 META_CHORD = 0x830, 290 META_BITBLT = 0x922, 291 META_DIBBITBLT = 0x940, 292 META_EXTTEXTOUT = 0xA32, 293 META_STRETCHBLT = 0xB23, 294 META_DIBSTRETCHBLT = 0xB41, 295 META_SETDIBTODEV = 0xD33, 296 META_STRETCHDIB = 0xF43 297 } 298 299 // EMRPOLYDRAW 300 enum : BYTE { 301 PT_CLOSEFIGURE = 1, 302 PT_LINETO = 2, 303 PT_BEZIERTO = 4, 304 PT_MOVETO = 6 305 } 306 307 // ---- 308 // PIXELFORMATDESCRIPTOR.iPixelType 309 enum : BYTE { 310 PFD_TYPE_RGBA = 0, 311 PFD_TYPE_COLORINDEX = 1 312 } 313 314 //deprecated { 315 // PIXELFORMATDESCRIPTOR. 316 enum byte 317 PFD_MAIN_PLANE = 0, 318 PFD_OVERLAY_PLANE = 1, 319 PFD_UNDERLAY_PLANE = -1; 320 //} 321 // PIXELFORMATDESCRIPTOR.dwFlags 322 enum DWORD 323 PFD_DOUBLEBUFFER = 0x00000001, 324 PFD_STEREO = 0x00000002, 325 PFD_DRAW_TO_WINDOW = 0x00000004, 326 PFD_DRAW_TO_BITMAP = 0x00000008, 327 PFD_SUPPORT_GDI = 0x00000010, 328 PFD_SUPPORT_OPENGL = 0x00000020, 329 PFD_GENERIC_FORMAT = 0x00000040, 330 PFD_NEED_PALETTE = 0x00000080, 331 PFD_NEED_SYSTEM_PALETTE = 0x00000100, 332 PFD_SWAP_EXCHANGE = 0x00000200, 333 PFD_SWAP_COPY = 0x00000400, 334 PFD_SWAP_LAYER_BUFFERS = 0x00000800, 335 PFD_GENERIC_ACCELERATED = 0x00001000, 336 PFD_SUPPORT_DIRECTDRAW = 0x00002000, 337 PFD_DIRECT3D_ACCELERATED = 0x00004000, 338 PFD_SUPPORT_COMPOSITION = 0x00008000, 339 /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ 340 PFD_DEPTH_DONTCARE = 0x20000000, 341 PFD_DOUBLEBUFFER_DONTCARE = 0x40000000, 342 PFD_STEREO_DONTCARE = 0x80000000; 343 344 // ---- 345 346 enum DWORD 347 BLACKNESS = 0x000042, 348 NOTSRCERASE = 0x1100A6, 349 NOTSRCCOPY = 0x330008, 350 SRCERASE = 0x440328, 351 DSTINVERT = 0x550009, 352 PATINVERT = 0x5A0049, 353 SRCINVERT = 0x660046, 354 SRCAND = 0x8800C6, 355 MERGEPAINT = 0xBB0226, 356 MERGECOPY = 0xC000CA, 357 SRCCOPY = 0xCC0020, 358 SRCPAINT = 0xEE0086, 359 PATCOPY = 0xF00021, 360 PATPAINT = 0xFB0A09, 361 WHITENESS = 0xFF0062; 362 static if (_WIN32_WINNT >= 0x500) { 363 enum DWORD 364 NOMIRRORBITMAP = 0x80000000, 365 CAPTUREBLT = 0x40000000; 366 } 367 368 // GetROP2(), SetROP2() 369 enum : int { 370 R2_BLACK = 1, 371 R2_NOTMERGEPEN = 2, 372 R2_MASKNOTPEN = 3, 373 R2_NOTCOPYPEN = 4, 374 R2_MASKPENNOT = 5, 375 R2_NOT = 6, 376 R2_XORPEN = 7, 377 R2_NOTMASKPEN = 8, 378 R2_MASKPEN = 9, 379 R2_NOTXORPEN = 10, 380 R2_NOP = 11, 381 R2_MERGENOTPEN = 12, 382 R2_COPYPEN = 13, 383 R2_MERGEPENNOT = 14, 384 R2_MERGEPEN = 15, 385 R2_WHITE = 16 386 } 387 388 enum R2_LAST = R2_WHITE; 389 390 // CheckColorsInGamut() 391 enum ubyte 392 CM_IN_GAMUT = 0, 393 CM_OUT_OF_GAMUT = 255; 394 395 /* UpdateICMRegKey Constants */ 396 enum int 397 ICM_ADDPROFILE = 1, 398 ICM_DELETEPROFILE = 2, 399 ICM_QUERYPROFILE = 3, 400 ICM_SETDEFAULTPROFILE = 4, 401 ICM_REGISTERICMATCHER = 5, 402 ICM_UNREGISTERICMATCHER = 6, 403 ICM_QUERYMATCH = 7; 404 405 enum : int { 406 RGN_AND = 1, 407 RGN_OR = 2, 408 RGN_XOR = 3, 409 RGN_DIFF = 4, 410 RGN_COPY = 5 411 } 412 413 enum RGN_MIN = RGN_AND; 414 enum RGN_MAX = RGN_COPY; 415 416 // Return values for CombineRgn() 417 enum { 418 NULLREGION = 1, 419 SIMPLEREGION = 2, 420 COMPLEXREGION = 3 421 } 422 423 enum ERROR = 0; 424 alias ERROR RGN_ERROR; 425 426 // CreateDIBitmap() 427 enum DWORD CBM_INIT = 4; 428 429 // CreateDIBitmap() 430 enum : UINT { 431 DIB_RGB_COLORS = 0, 432 DIB_PAL_COLORS = 1 433 } 434 435 // --- 436 // Values for LOGFONT and CreateFont() 437 438 // FIXME: For D, replace with lfFaceName.length() 439 enum LF_FACESIZE = 32; 440 enum LF_FULLFACESIZE = 64; 441 442 // FIXME: Not needed for D, only EXTLOGFONT 443 enum ELF_VENDOR_SIZE = 4; 444 445 // ??? 446 enum ELF_VERSION = 0; 447 enum ELF_CULTURE_LATIN = 0; 448 449 // LOGFONT.lfWeight 450 enum LONG 451 FW_DONTCARE = 0, 452 FW_THIN = 100, 453 FW_EXTRALIGHT = 200, 454 FW_ULTRALIGHT = FW_EXTRALIGHT, 455 FW_LIGHT = 300, 456 FW_NORMAL = 400, 457 FW_REGULAR = FW_NORMAL, 458 FW_MEDIUM = 500, 459 FW_SEMIBOLD = 600, 460 FW_DEMIBOLD = FW_SEMIBOLD, 461 FW_BOLD = 700, 462 FW_EXTRABOLD = 800, 463 FW_ULTRABOLD = FW_EXTRABOLD, 464 FW_HEAVY = 900, 465 FW_BLACK = FW_HEAVY; 466 467 // LOGFONT.lfCharSet 468 enum : DWORD { 469 ANSI_CHARSET = 0, 470 DEFAULT_CHARSET = 1, 471 SYMBOL_CHARSET = 2, 472 MAC_CHARSET = 77, 473 SHIFTJIS_CHARSET = 128, 474 HANGEUL_CHARSET = 129, 475 HANGUL_CHARSET = 129, 476 JOHAB_CHARSET = 130, 477 GB2312_CHARSET = 134, 478 CHINESEBIG5_CHARSET = 136, 479 GREEK_CHARSET = 161, 480 TURKISH_CHARSET = 162, 481 VIETNAMESE_CHARSET = 163, 482 HEBREW_CHARSET = 177, 483 ARABIC_CHARSET = 178, 484 BALTIC_CHARSET = 186, 485 RUSSIAN_CHARSET = 204, 486 THAI_CHARSET = 222, 487 EASTEUROPE_CHARSET = 238, 488 OEM_CHARSET = 255 489 } 490 491 // LOGFONT.lfOutPrecision 492 enum : BYTE { 493 OUT_DEFAULT_PRECIS = 0, 494 OUT_STRING_PRECIS, 495 OUT_CHARACTER_PRECIS, 496 OUT_STROKE_PRECIS, 497 OUT_TT_PRECIS, 498 OUT_DEVICE_PRECIS, 499 OUT_RASTER_PRECIS, 500 OUT_TT_ONLY_PRECIS, 501 OUT_OUTLINE_PRECIS, 502 OUT_SCREEN_OUTLINE_PRECIS, 503 OUT_PS_ONLY_PRECIS, // 10 504 } 505 506 // LOGFONT.lfClipPrecision 507 enum : BYTE { 508 CLIP_DEFAULT_PRECIS = 0, 509 CLIP_CHARACTER_PRECIS = 1, 510 CLIP_STROKE_PRECIS = 2, 511 CLIP_MASK = 15, 512 CLIP_LH_ANGLES = 16, 513 CLIP_TT_ALWAYS = 32, 514 CLIP_DFA_DISABLE = 64, 515 CLIP_EMBEDDED = 128 516 } 517 518 // LOGFONT.lfQuality 519 enum : BYTE { 520 DEFAULT_QUALITY = 0, 521 DRAFT_QUALITY, 522 PROOF_QUALITY, 523 NONANTIALIASED_QUALITY, 524 ANTIALIASED_QUALITY 525 } 526 527 // LOGFONT.lfPitchAndFamily 528 529 enum BYTE 530 DEFAULT_PITCH = 0, 531 FIXED_PITCH = 1, 532 VARIABLE_PITCH = 2, 533 MONO_FONT = 8, 534 FF_DONTCARE = 0, 535 FF_ROMAN = 16, 536 FF_SWISS = 32, 537 FF_SCRIPT = 64, 538 FF_MODERN = 48, 539 FF_DECORATIVE = 80; 540 541 // ---- 542 // Enums for the PANOSE struct 543 544 enum PANOSE_COUNT=10; 545 546 enum { 547 PAN_FAMILYTYPE_INDEX = 0, 548 PAN_SERIFSTYLE_INDEX, 549 PAN_WEIGHT_INDEX, 550 PAN_PROPORTION_INDEX, 551 PAN_CONTRAST_INDEX, 552 PAN_STROKEVARIATION_INDEX, 553 PAN_ARMSTYLE_INDEX, 554 PAN_LETTERFORM_INDEX, 555 PAN_MIDLINE_INDEX, 556 PAN_XHEIGHT_INDEX 557 } 558 559 enum PAN_CULTURE_LATIN=0; 560 561 // NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums! 562 enum : BYTE { 563 PAN_ANY = 0, 564 PAN_NO_FIT = 1, 565 } 566 567 enum : BYTE { 568 PAN_FAMILY_TEXT_DISPLAY = 2, 569 PAN_FAMILY_SCRIPT, 570 PAN_FAMILY_DECORATIVE, 571 PAN_FAMILY_PICTORIAL 572 } 573 enum : BYTE { 574 PAN_SERIF_COVE = 2, 575 PAN_SERIF_OBTUSE_COVE, 576 PAN_SERIF_SQUARE_COVE, 577 PAN_SERIF_OBTUSE_SQUARE_COVE, 578 PAN_SERIF_SQUARE, 579 PAN_SERIF_THIN, 580 PAN_SERIF_BONE, 581 PAN_SERIF_EXAGGERATED, 582 PAN_SERIF_TRIANGLE, 583 PAN_SERIF_NORMAL_SANS, 584 PAN_SERIF_OBTUSE_SANS, 585 PAN_SERIF_PERP_SANS, 586 PAN_SERIF_FLARED, 587 PAN_SERIF_ROUNDED 588 } 589 590 enum : BYTE { 591 PAN_WEIGHT_VERY_LIGHT = 2, 592 PAN_WEIGHT_LIGHT, 593 PAN_WEIGHT_THIN, 594 PAN_WEIGHT_BOOK, 595 PAN_WEIGHT_MEDIUM, 596 PAN_WEIGHT_DEMI, 597 PAN_WEIGHT_BOLD, 598 PAN_WEIGHT_HEAVY, 599 PAN_WEIGHT_BLACK, 600 PAN_WEIGHT_NORD 601 } 602 603 enum : BYTE { 604 PAN_PROP_OLD_STYLE = 2, 605 PAN_PROP_MODERN, 606 PAN_PROP_EVEN_WIDTH, 607 PAN_PROP_EXPANDED, 608 PAN_PROP_CONDENSED, 609 PAN_PROP_VERY_EXPANDED, 610 PAN_PROP_VERY_CONDENSED, 611 PAN_PROP_MONOSPACED 612 } 613 614 enum : BYTE { 615 PAN_CONTRAST_NONE = 2, 616 PAN_CONTRAST_VERY_LOW, 617 PAN_CONTRAST_LOW, 618 PAN_CONTRAST_MEDIUM_LOW, 619 PAN_CONTRAST_MEDIUM, 620 PAN_CONTRAST_MEDIUM_HIGH, 621 PAN_CONTRAST_HIGH, 622 PAN_CONTRAST_VERY_HIGH 623 } 624 625 // PANOSE.bStrokeVariation 626 enum : BYTE { 627 PAN_STROKE_GRADUAL_DIAG = 2, 628 PAN_STROKE_GRADUAL_TRAN, 629 PAN_STROKE_GRADUAL_VERT, 630 PAN_STROKE_GRADUAL_HORZ, 631 PAN_STROKE_RAPID_VERT, 632 PAN_STROKE_RAPID_HORZ, 633 PAN_STROKE_INSTANT_VERT 634 } 635 636 // PANOSE.bArmStyle 637 enum : BYTE { 638 PAN_STRAIGHT_ARMS_HORZ = 2, 639 PAN_STRAIGHT_ARMS_WEDGE, 640 PAN_STRAIGHT_ARMS_VERT, 641 PAN_STRAIGHT_ARMS_SINGLE_SERIF, 642 PAN_STRAIGHT_ARMS_DOUBLE_SERIF, 643 PAN_BENT_ARMS_HORZ, 644 PAN_BENT_ARMS_WEDGE, 645 PAN_BENT_ARMS_VERT, 646 PAN_BENT_ARMS_SINGLE_SERIF, 647 PAN_BENT_ARMS_DOUBLE_SERIF 648 } 649 650 // PANOSE.bLetterForm 651 enum : BYTE { 652 PAN_LETT_NORMAL_CONTACT = 2, 653 PAN_LETT_NORMAL_WEIGHTED, 654 PAN_LETT_NORMAL_BOXED, 655 PAN_LETT_NORMAL_FLATTENED, 656 PAN_LETT_NORMAL_ROUNDED, 657 PAN_LETT_NORMAL_OFF_CENTER, 658 PAN_LETT_NORMAL_SQUARE, 659 PAN_LETT_OBLIQUE_CONTACT, 660 PAN_LETT_OBLIQUE_WEIGHTED, 661 PAN_LETT_OBLIQUE_BOXED, 662 PAN_LETT_OBLIQUE_FLATTENED, 663 PAN_LETT_OBLIQUE_ROUNDED, 664 PAN_LETT_OBLIQUE_OFF_CENTER, 665 PAN_LETT_OBLIQUE_SQUARE 666 } 667 668 // PANOSE.bMidLine 669 enum : BYTE { 670 PAN_MIDLINE_STANDARD_TRIMMED = 2, 671 PAN_MIDLINE_STANDARD_POINTED, 672 PAN_MIDLINE_STANDARD_SERIFED, 673 PAN_MIDLINE_HIGH_TRIMMED, 674 PAN_MIDLINE_HIGH_POINTED, 675 PAN_MIDLINE_HIGH_SERIFED, 676 PAN_MIDLINE_CONSTANT_TRIMMED, 677 PAN_MIDLINE_CONSTANT_POINTED, 678 PAN_MIDLINE_CONSTANT_SERIFED, 679 PAN_MIDLINE_LOW_TRIMMED, 680 PAN_MIDLINE_LOW_POINTED, 681 PAN_MIDLINE_LOW_SERIFED 682 } 683 684 // PANOSE.bXHeight 685 enum : BYTE { 686 PAN_XHEIGHT_CONSTANT_SMALL = 2, 687 PAN_XHEIGHT_CONSTANT_STD, 688 PAN_XHEIGHT_CONSTANT_LARGE, 689 PAN_XHEIGHT_DUCKING_SMALL, 690 PAN_XHEIGHT_DUCKING_STD, 691 PAN_XHEIGHT_DUCKING_LARGE 692 } 693 694 // ---- 695 // ??? 696 enum FS_LATIN1 = 0x00000001; 697 enum FS_LATIN2 = 0x00000002; 698 enum FS_CYRILLIC = 0x00000004; 699 enum FS_GREEK = 0x00000008; 700 enum FS_TURKISH = 0x00000010; 701 enum FS_HEBREW = 0x00000020; 702 enum FS_ARABIC = 0x00000040; 703 enum FS_BALTIC = 0x00000080; 704 enum FS_VIETNAMESE = 0x00000100; 705 enum FS_THAI = 0x00010000; 706 enum FS_JISJAPAN = 0x00020000; 707 enum FS_CHINESESIMP = 0x00040000; 708 enum FS_WANSUNG = 0x00080000; 709 enum FS_CHINESETRAD = 0x00100000; 710 enum FS_JOHAB = 0x00200000; 711 enum FS_SYMBOL = 0x80000000; 712 713 // ---- 714 // Poly Fill Mode 715 enum : int { 716 ALTERNATE = 1, 717 WINDING = 2 718 } 719 enum int POLYFILL_LAST = WINDING; 720 721 //--- 722 // LOGBRUSH 723 enum : LONG { 724 HS_HORIZONTAL = 0, 725 HS_VERTICAL, 726 HS_FDIAGONAL, 727 HS_BDIAGONAL, 728 HS_CROSS, 729 HS_DIAGCROSS 730 } 731 732 //LOGBRUSH.lbStyle 733 enum : UINT { 734 BS_SOLID = 0, 735 BS_NULL = 1, 736 BS_HOLLOW = BS_NULL, 737 BS_HATCHED, 738 BS_PATTERN, 739 BS_INDEXED, 740 BS_DIBPATTERN, 741 BS_DIBPATTERNPT, 742 BS_PATTERN8X8, 743 BS_DIBPATTERN8X8, 744 BS_MONOPATTERN, 745 } 746 //----- 747 // EXTLOGPEN, ExtCreatePen() 748 749 // EXTLOGPEN.elpPenStyle 750 enum : DWORD { 751 PS_SOLID = 0, 752 PS_DASH = 1, 753 PS_DOT = 2, 754 PS_DASHDOT = 3, 755 PS_DASHDOTDOT = 4, 756 PS_NULL = 5, 757 PS_INSIDEFRAME = 6, 758 PS_USERSTYLE = 7, 759 PS_ALTERNATE = 8, 760 PS_STYLE_MASK = 15, 761 } 762 763 enum : DWORD { 764 PS_COSMETIC = 0x00000000, 765 PS_GEOMETRIC = 0x00010000, 766 PS_TYPE_MASK = 0x000F0000, 767 } 768 enum : DWORD { 769 PS_ENDCAP_ROUND = 0x00000000, 770 PS_ENDCAP_SQUARE = 0x00000100, 771 PS_ENDCAP_FLAT = 0x00000200, 772 PS_ENDCAP_MASK = 0x00000F00, 773 } 774 enum : DWORD { 775 PS_JOIN_ROUND = 0x00000000, 776 PS_JOIN_BEVEL = 0x00001000, 777 PS_JOIN_MITER = 0x00002000, 778 PS_JOIN_MASK = 0x0000F000, 779 } 780 781 // --- 782 // DeviceCapabilities() 783 784 enum : WORD { 785 DC_FIELDS = 1, 786 DC_PAPERS, 787 DC_PAPERSIZE, 788 DC_MINEXTENT, 789 DC_MAXEXTENT, 790 DC_BINS, 791 DC_DUPLEX, 792 DC_SIZE, 793 DC_EXTRA, 794 DC_VERSION, 795 DC_DRIVER, 796 DC_BINNAMES, 797 DC_ENUMRESOLUTIONS, 798 DC_FILEDEPENDENCIES, 799 DC_TRUETYPE, 800 DC_PAPERNAMES, 801 DC_ORIENTATION, 802 DC_COPIES, 803 DC_BINADJUST, 804 DC_EMF_COMPLIANT, 805 DC_DATATYPE_PRODUCED, 806 DC_COLLATE, 807 DC_MANUFACTURER, 808 DC_MODEL, 809 } 810 811 static if (_WIN32_WINNT >= 0x500) { 812 enum { 813 DC_PERSONALITY = 25, 814 DC_PRINTRATE = 26, 815 DC_PRINTRATEUNIT = 27, 816 DC_PRINTERMEM = 28, 817 DC_MEDIAREADY = 29, 818 DC_STAPLE = 30, 819 DC_PRINTRATEPPM = 31, 820 DC_COLORDEVICE = 32, 821 DC_NUP = 33, 822 DC_MEDIATYPENAMES = 34, 823 DC_MEDIATYPES = 35, 824 } 825 enum { 826 PRINTRATEUNIT_PPM = 1, 827 PRINTRATEUNIT_CPS = 2, 828 PRINTRATEUNIT_LPM = 3, 829 PRINTRATEUNIT_IPM = 4, 830 } 831 } 832 833 834 // return from DC_TRUETYPE 835 enum DWORD 836 DCTT_BITMAP = 1, 837 DCTT_DOWNLOAD = 2, 838 DCTT_SUBDEV = 4, 839 DCTT_DOWNLOAD_OUTLINE = 8; 840 841 // return from DC_BINADJUST 842 enum : DWORD { 843 DCBA_FACEUPNONE = 0x0000, 844 DCBA_FACEUPCENTER = 0x0001, 845 DCBA_FACEUPLEFT = 0x0002, 846 DCBA_FACEUPRIGHT = 0x0003, 847 DCBA_FACEDOWNNONE = 0x0100, 848 DCBA_FACEDOWNCENTER = 0x0101, 849 DCBA_FACEDOWNLEFT = 0x0102, 850 DCBA_FACEDOWNRIGHT = 0x0103, 851 } 852 //--- 853 854 enum FLOODFILLBORDER = 0; 855 enum FLOODFILLSURFACE = 1; 856 857 // ExtTextOut() 858 enum UINT 859 ETO_OPAQUE = 0x0002, 860 ETO_CLIPPED = 0x0004, 861 ETO_GLYPH_INDEX = 0x0010, 862 ETO_RTLREADING = 0x0080, 863 ETO_NUMERICSLOCAL = 0x0400, 864 ETO_NUMERICSLATIN = 0x0800, 865 ETO_IGNORELANGUAGE = 0x1000; 866 static if (_WIN32_WINNT >= 0x500) { 867 enum UINT 868 ETO_PDY = 0x2000; 869 } 870 871 // GdiComment() 872 enum { 873 GDICOMMENT_BEGINGROUP = 0x00000002, 874 GDICOMMENT_ENDGROUP = 0x00000003, 875 GDICOMMENT_UNICODE_STRING = 0x00000040, 876 GDICOMMENT_UNICODE_END = 0x00000080, 877 GDICOMMENT_MULTIFORMATS = 0x40000004, 878 GDICOMMENT_IDENTIFIER = 0x43494447, 879 GDICOMMENT_WINDOWS_METAFILE = 0x80000001, 880 } 881 882 // Get/SetArcDirection() 883 enum : int { 884 AD_COUNTERCLOCKWISE = 1, 885 AD_CLOCKWISE = 2 886 } 887 888 enum RDH_RECTANGLES = 1; 889 890 // GCPRESULTS.lpClass 891 enum { 892 GCPCLASS_LATIN = 1, 893 GCPCLASS_HEBREW = 2, 894 GCPCLASS_ARABIC = 2, 895 GCPCLASS_NEUTRAL, 896 GCPCLASS_LOCALNUMBER, 897 GCPCLASS_LATINNUMBER, 898 GCPCLASS_LATINNUMERICTERMINATOR, 899 GCPCLASS_LATINNUMERICSEPARATOR, 900 GCPCLASS_NUMERICSEPARATOR, // = 8, 901 GCPCLASS_POSTBOUNDRTL = 16, 902 GCPCLASS_POSTBOUNDLTR = 32, 903 GCPCLASS_PREBOUNDRTL = 64, 904 GCPCLASS_PREBOUNDLTR = 128, 905 GCPGLYPH_LINKAFTER = 0x4000, 906 GCPGLYPH_LINKBEFORE = 0x8000 907 } 908 909 // GetBoundsRect(), SetBoundsRect() 910 enum UINT 911 DCB_RESET = 1, 912 DCB_ACCUMULATE = 2, 913 DCB_SET = DCB_RESET | DCB_ACCUMULATE, 914 DCB_ENABLE = 4, 915 DCB_DISABLE = 8, 916 DCB_DIRTY = DCB_ACCUMULATE; 917 918 //--- 919 // GetObjectType() 920 enum : DWORD { 921 OBJ_PEN = 1, 922 OBJ_BRUSH, 923 OBJ_DC, 924 OBJ_METADC, 925 OBJ_PAL, 926 OBJ_FONT, 927 OBJ_BITMAP, 928 OBJ_REGION, 929 OBJ_METAFILE, 930 OBJ_MEMDC, 931 OBJ_EXTPEN, 932 OBJ_ENHMETADC, 933 OBJ_ENHMETAFILE, 934 OBJ_COLORSPACE, 935 } 936 937 //--------------------- 938 // Capabilities for GetDeviceCaps(dc, xxx) 939 940 enum : int { 941 DRIVERVERSION = 0, 942 TECHNOLOGY = 2, 943 HORZSIZE = 4, 944 VERTSIZE = 6, 945 HORZRES = 8, 946 VERTRES = 10, 947 BITSPIXEL = 12, 948 PLANES = 14, 949 NUMBRUSHES = 16, 950 NUMPENS = 18, 951 NUMMARKERS = 20, 952 NUMFONTS = 22, 953 NUMCOLORS = 24, 954 PDEVICESIZE = 26, 955 CURVECAPS = 28, 956 LINECAPS = 30, 957 POLYGONALCAPS = 32, 958 TEXTCAPS = 34, 959 CLIPCAPS = 36, 960 RASTERCAPS = 38, 961 ASPECTX = 40, 962 ASPECTY = 42, 963 ASPECTXY = 44, 964 LOGPIXELSX = 88, 965 LOGPIXELSY = 90, 966 SIZEPALETTE = 104, 967 NUMRESERVED = 106, 968 COLORRES = 108, 969 PHYSICALWIDTH = 110, 970 PHYSICALHEIGHT = 111, 971 PHYSICALOFFSETX = 112, 972 PHYSICALOFFSETY = 113, 973 SCALINGFACTORX = 114, 974 SCALINGFACTORY = 115, 975 VREFRESH = 116, 976 DESKTOPVERTRES = 117, 977 DESKTOPHORZRES = 118, 978 BLTALIGNMENT = 119 979 } 980 static if (_WIN32_WINNT >= 0x500) { 981 enum : int { 982 SHADEBLENDCAPS = 120, 983 COLORMGMTCAPS = 121, 984 } 985 } 986 987 // Return values for GetDeviceCaps(dc, TECHNOLOGY) 988 enum : int { 989 DT_PLOTTER = 0, 990 DT_RASDISPLAY, 991 DT_RASPRINTER, 992 DT_RASCAMERA, 993 DT_CHARSTREAM, 994 DT_METAFILE, 995 DT_DISPFILE // = 6 996 } 997 998 // Return values for GetDeviceCaps(dc, RASTERCAPS) 999 enum int 1000 RC_NONE = 0, 1001 RC_BITBLT = 1, 1002 RC_BANDING = 2, 1003 RC_SCALING = 4, 1004 RC_BITMAP64 = 8, 1005 RC_GDI20_OUTPUT = 16, 1006 RC_GDI20_STATE = 32, 1007 RC_SAVEBITMAP = 64, 1008 RC_DI_BITMAP = 128, 1009 RC_PALETTE = 256, 1010 RC_DIBTODEV = 512, 1011 RC_BIGFONT = 1024, 1012 RC_STRETCHBLT = 2048, 1013 RC_FLOODFILL = 4096, 1014 RC_STRETCHDIB = 8192, 1015 RC_OP_DX_OUTPUT = 0x4000, 1016 RC_DEVBITS = 0x8000; 1017 1018 static if (_WIN32_WINNT >= 0x500) { 1019 /* Shading and blending caps */ 1020 enum SB_NONE = 0x00000000; 1021 enum SB_CONST_ALPHA = 0x00000001; 1022 enum SB_PIXEL_ALPHA = 0x00000002; 1023 enum SB_PREMULT_ALPHA = 0x00000004; 1024 enum SB_GRAD_RECT = 0x00000010; 1025 enum SB_GRAD_TRI = 0x00000020; 1026 /* Color Management caps */ 1027 enum CM_NONE = 0x00000000; 1028 enum CM_DEVICE_ICM = 0x00000001; 1029 enum CM_GAMMA_RAMP = 0x00000002; 1030 enum CM_CMYK_COLOR = 0x00000004; 1031 } 1032 1033 // Return values for GetDeviceCaps(dc, CURVECAPS) 1034 enum int 1035 CC_NONE = 0, 1036 CC_CIRCLES = 1, 1037 CC_PIE = 2, 1038 CC_CHORD = 4, 1039 CC_ELLIPSES = 8, 1040 CC_WIDE = 16, 1041 CC_STYLED = 32, 1042 CC_WIDESTYLED = 64, 1043 CC_INTERIORS = 128, 1044 CC_ROUNDRECT = 256; 1045 1046 // Return values for GetDeviceCaps(dc, LINECAPS) 1047 1048 enum int 1049 LC_NONE = 0, 1050 LC_POLYLINE = 2, 1051 LC_MARKER = 4, 1052 LC_POLYMARKER = 8, 1053 LC_WIDE = 16, 1054 LC_STYLED = 32, 1055 LC_WIDESTYLED = 64, 1056 LC_INTERIORS = 128; 1057 1058 // Return values for GetDeviceCaps(dc, POLYGONALCAPS) 1059 1060 enum int 1061 PC_NONE = 0, 1062 PC_POLYGON = 1, 1063 PC_RECTANGLE = 2, 1064 PC_WINDPOLYGON = 4, 1065 PC_TRAPEZOID = 4, 1066 PC_SCANLINE = 8, 1067 PC_WIDE = 16, 1068 PC_STYLED = 32, 1069 PC_WIDESTYLED = 64, 1070 PC_INTERIORS = 128, 1071 PC_POLYPOLYGON = 256, 1072 PC_PATHS = 512; 1073 1074 /* Clipping Capabilities */ 1075 enum int CP_NONE = 0, 1076 CP_RECTANGLE = 1, 1077 CP_REGION = 2; 1078 1079 // Return values for GetDeviceCaps(dc, TEXTCAPS) 1080 1081 enum int 1082 TC_OP_CHARACTER = 1, 1083 TC_OP_STROKE = 2, 1084 TC_CP_STROKE = 4, 1085 TC_CR_90 = 8, 1086 TC_CR_ANY = 16, 1087 TC_SF_X_YINDEP = 32, 1088 TC_SA_DOUBLE = 64, 1089 TC_SA_INTEGER = 128, 1090 TC_SA_CONTIN = 256, 1091 TC_EA_DOUBLE = 512, 1092 TC_IA_ABLE = 1024, 1093 TC_UA_ABLE = 2048, 1094 TC_SO_ABLE = 4096, 1095 TC_RA_ABLE = 8192, 1096 TC_VA_ABLE = 16384, 1097 TC_RESERVED = 32768, 1098 TC_SCROLLBLT = 65536; 1099 1100 // End GetDeviceCaps 1101 //--------------------- 1102 // GetCharacterPlacement(), and GetFontLanguageInfo() 1103 enum DWORD 1104 GCP_DBCS = 1, 1105 GCP_REORDER = 2, 1106 GCP_USEKERNING = 8, 1107 GCP_GLYPHSHAPE = 16, 1108 GCP_LIGATE = 32, 1109 GCP_DIACRITIC = 256, 1110 GCP_KASHIDA = 1024, 1111 GCP_ERROR = 0x8000, 1112 GCP_JUSTIFY = 0x10000, 1113 GCP_CLASSIN = 0x80000, 1114 GCP_MAXEXTENT = 0x100000, 1115 GCP_JUSTIFYIN = 0x200000, 1116 GCP_DISPLAYZWG = 0x400000, 1117 GCP_SYMSWAPOFF = 0x800000, 1118 GCP_NUMERICOVERRIDE = 0x1000000, 1119 GCP_NEUTRALOVERRIDE = 0x2000000, 1120 GCP_NUMERICSLATIN = 0x4000000, 1121 GCP_NUMERICSLOCAL = 0x8000000, 1122 // Only for GetFontLanguageInfo() 1123 FLI_GLYPHS = 0x40000, 1124 FLI_MASK = 0x103b; 1125 1126 // GetGlyphOutline() 1127 enum : UINT { 1128 GGO_METRICS = 0, 1129 GGO_BITMAP = 1, 1130 GGO_NATIVE = 2, 1131 GGO_BEZIER = 3, 1132 GGO_GRAY2_BITMAP = 4, 1133 GGO_GRAY4_BITMAP = 5, 1134 GGO_GRAY8_BITMAP = 6, 1135 GGO_GLYPH_INDEX = 128, 1136 GGO_UNHINTED = 256 1137 } 1138 1139 enum : int { 1140 GM_COMPATIBLE = 1, 1141 GM_ADVANCED 1142 } 1143 enum GM_LAST = GM_ADVANCED; 1144 1145 enum : int { 1146 MM_TEXT = 1, 1147 MM_LOMETRIC, 1148 MM_HIMETRIC, 1149 MM_LOENGLISH, 1150 MM_HIENGLISH, 1151 MM_TWIPS, 1152 MM_ISOTROPIC, 1153 MM_ANISOTROPIC, 1154 } 1155 1156 enum int 1157 MM_MIN = MM_TEXT, 1158 MM_MAX = MM_ANISOTROPIC, 1159 MM_MAX_FIXEDSCALE = MM_TWIPS; 1160 1161 enum ABSOLUTE = 1; 1162 enum RELATIVE = 2; 1163 1164 enum : BYTE { 1165 PC_RESERVED = 1, 1166 PC_EXPLICIT = 2, 1167 PC_NOCOLLAPSE = 4 1168 } 1169 1170 /* FIXME: move to win32.commctrl ? */ 1171 // ImageList 1172 enum COLORREF 1173 CLR_NONE = 0xffffffff, 1174 CLR_INVALID = CLR_NONE, 1175 CLR_DEFAULT = 0xff000000; 1176 1177 // RASTERIZER_STATUS.wFlags 1178 enum short 1179 TT_AVAILABLE = 1, 1180 TT_ENABLED = 2; 1181 1182 // GetStockObject() 1183 enum : int { 1184 WHITE_BRUSH = 0, 1185 LTGRAY_BRUSH, 1186 GRAY_BRUSH, 1187 DKGRAY_BRUSH, 1188 BLACK_BRUSH, 1189 HOLLOW_BRUSH, // = 5 1190 NULL_BRUSH = HOLLOW_BRUSH, 1191 WHITE_PEN = 6, 1192 BLACK_PEN, 1193 NULL_PEN, // = 8 1194 OEM_FIXED_FONT = 10, 1195 ANSI_FIXED_FONT, 1196 ANSI_VAR_FONT, 1197 SYSTEM_FONT, 1198 DEVICE_DEFAULT_FONT, 1199 DEFAULT_PALETTE, 1200 SYSTEM_FIXED_FONT, 1201 DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1, 1202 } 1203 static if (_WIN32_WINNT >= 0x500) { 1204 enum : int { 1205 DC_BRUSH = DEFAULT_GUI_FONT + 1, 1206 DC_PEN, 1207 } 1208 } 1209 1210 static if (_WIN32_WINNT >= 0x500) { 1211 enum STOCK_LAST = DC_PEN; 1212 } else { 1213 enum STOCK_LAST = DEFAULT_GUI_FONT; 1214 } 1215 1216 // Get/SetSystemPaletteUse() 1217 enum : UINT { 1218 SYSPAL_ERROR = 0, 1219 SYSPAL_STATIC = 1, 1220 SYSPAL_NOSTATIC = 2, 1221 SYSPAL_NOSTATIC256 = 3, 1222 } 1223 1224 // SetTextAlign() 1225 enum UINT 1226 TA_TOP = 0, 1227 TA_CENTER = 6, 1228 TA_BOTTOM = 8, 1229 TA_BASELINE = 24, 1230 TA_LEFT = 0, 1231 TA_RIGHT = 2, 1232 TA_RTLREADING = 256, 1233 TA_NOUPDATECP = 0, 1234 TA_UPDATECP = 1, 1235 TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING, 1236 VTA_BASELINE = TA_BASELINE, 1237 VTA_CENTER = TA_CENTER, 1238 VTA_LEFT = TA_BOTTOM, 1239 VTA_RIGHT = TA_TOP, 1240 VTA_BOTTOM = TA_RIGHT, 1241 VTA_TOP = TA_LEFT; 1242 1243 // EMRMODIFYWORLDTRANSFORM.iMode 1244 enum : DWORD { 1245 MWT_IDENTITY = 1, 1246 MWT_LEFTMULTIPLY, 1247 MWT_RIGHTMULTIPLY 1248 } 1249 1250 enum DWORD 1251 MWT_MIN = MWT_IDENTITY, 1252 MWT_MAX = MWT_RIGHTMULTIPLY; 1253 1254 enum { 1255 TRANSPARENT = 1, 1256 OPAQUE = 2 1257 } 1258 1259 // Get/SetStretchMode() 1260 enum : int { 1261 BLACKONWHITE = 1, 1262 WHITEONBLACK = 2, 1263 COLORONCOLOR = 3, 1264 HALFTONE = 4, 1265 1266 STRETCH_ANDSCANS = 1, 1267 STRETCH_ORSCANS = 2, 1268 STRETCH_DELETESCANS = 3, 1269 STRETCH_HALFTONE = 4, 1270 1271 MAXSTRETCHBLTMODE = 4 1272 } 1273 1274 // TranslateCharsetInfo() 1275 enum : DWORD { 1276 TCI_SRCCHARSET = 1, 1277 TCI_SRCCODEPAGE = 2, 1278 TCI_SRCFONTSIG = 3, 1279 TCI_SRCLOCALE = 0x1000, 1280 } 1281 1282 // SetICMMode() 1283 enum : int { 1284 ICM_OFF = 1, 1285 ICM_ON = 2, 1286 ICM_QUERY = 3, 1287 ICM_DONE_OUTSIDEDC = 4, 1288 } 1289 1290 // ---- 1291 // Escape() Spooler Error Codes 1292 enum : int { 1293 SP_NOTREPORTED = 0x4000, 1294 SP_ERROR = -1, 1295 SP_APPABORT = -2, 1296 SP_USERABORT = -3, 1297 SP_OUTOFDISK = -4, 1298 SP_OUTOFMEMORY = -5 1299 } 1300 1301 // Escape(), ExtEscape() 1302 // Most of the following are deprecated (Win16 only) 1303 enum : int { 1304 NEWFRAME = 1, 1305 ABORTDOC = 2, 1306 NEXTBAND = 3, 1307 SETCOLORTABLE = 4, 1308 GETCOLORTABLE = 5, 1309 FLUSHOUTPUT = 6, 1310 DRAFTMODE = 7, 1311 QUERYESCSUPPORT = 8, 1312 SETABORTPROC = 9, 1313 STARTDOC = 10, 1314 ENDDOC = 11, 1315 GETPHYSPAGESIZE = 12, 1316 GETPRINTINGOFFSET = 13, 1317 GETSCALINGFACTOR = 14, 1318 MFCOMMENT = 15, 1319 GETPENWIDTH = 16, 1320 SETCOPYCOUNT = 17, 1321 SELECTPAPERSOURCE = 18, 1322 DEVICEDATA = 19, 1323 PASSTHROUGH = 19, 1324 GETTECHNOLOGY = 20, 1325 SETLINECAP = 21, 1326 SETLINEJOIN = 22, 1327 SETMITERLIMIT = 23, 1328 BANDINFO = 24, 1329 DRAWPATTERNRECT = 25, 1330 GETVECTORPENSIZE = 26, 1331 GETVECTORBRUSHSIZE = 27, 1332 ENABLEDUPLEX = 28, 1333 GETSETPAPERBINS = 29, 1334 GETSETPRINTORIENT = 30, 1335 ENUMPAPERBINS = 31, 1336 SETDIBSCALING = 32, 1337 EPSPRINTING = 33, 1338 ENUMPAPERMETRICS = 34, 1339 GETSETPAPERMETRICS = 35, 1340 POSTSCRIPT_DATA = 37, 1341 POSTSCRIPT_IGNORE = 38, 1342 MOUSETRAILS = 39, 1343 GETDEVICEUNITS = 42, 1344 GETEXTENDEDTEXTMETRICS = 256, 1345 GETEXTENTTABLE = 257, 1346 GETPAIRKERNTABLE = 258, 1347 GETTRACKKERNTABLE = 259, 1348 EXTTEXTOUT = 512, 1349 GETFACENAME = 513, 1350 DOWNLOADFACE = 514, 1351 ENABLERELATIVEWIDTHS = 768, 1352 ENABLEPAIRKERNING = 769, 1353 SETKERNTRACK = 770, 1354 SETALLJUSTVALUES = 771, 1355 SETCHARSET = 772, 1356 STRETCHBLT = 2048, 1357 METAFILE_DRIVER = 2049, 1358 GETSETSCREENPARAMS = 3072, 1359 QUERYDIBSUPPORT = 3073, 1360 BEGIN_PATH = 4096, 1361 CLIP_TO_PATH = 4097, 1362 END_PATH = 4098, 1363 EXT_DEVICE_CAPS = 4099, 1364 RESTORE_CTM = 4100, 1365 SAVE_CTM = 4101, 1366 SET_ARC_DIRECTION = 4102, 1367 SET_BACKGROUND_COLOR = 4103, 1368 SET_POLY_MODE = 4104, 1369 SET_SCREEN_ANGLE = 4105, 1370 SET_SPREAD = 4106, 1371 TRANSFORM_CTM = 4107, 1372 SET_CLIP_BOX = 4108, 1373 SET_BOUNDS = 4109, 1374 SET_MIRROR_MODE = 4110, 1375 OPENCHANNEL = 4110, 1376 DOWNLOADHEADER = 4111, 1377 CLOSECHANNEL = 4112, 1378 POSTSCRIPT_PASSTHROUGH = 4115, 1379 ENCAPSULATED_POSTSCRIPT = 4116, 1380 POSTSCRIPT_IDENTIFY = 4117, 1381 POSTSCRIPT_INJECTION = 4118, 1382 CHECKJPEGFORMAT = 4119, 1383 CHECKPNGFORMAT = 4120, 1384 GET_PS_FEATURESETTING = 4121, 1385 SPCLPASSTHROUGH2 = 4568, 1386 } 1387 1388 enum : int { 1389 PSIDENT_GDICENTRIC = 0, 1390 PSIDENT_PSCENTRIC = 1, 1391 } 1392 1393 /* 1394 * Header structure for the input buffer to POSTSCRIPT_INJECTION escape 1395 */ 1396 struct PSINJECTDATA { 1397 DWORD DataBytes; 1398 WORD InjectionPoint; 1399 WORD PageNumber; 1400 } 1401 alias PSINJECTDATA* PPSINJECTDATA; 1402 1403 /* Constants for PSINJECTDATA.InjectionPoint field */ 1404 enum { 1405 PSINJECT_BEGINSTREAM = 1, 1406 PSINJECT_PSADOBE = 2, 1407 PSINJECT_PAGESATEND = 3, 1408 PSINJECT_PAGES = 4, 1409 PSINJECT_DOCNEEDEDRES = 5, 1410 PSINJECT_DOCSUPPLIEDRES = 6, 1411 PSINJECT_PAGEORDER = 7, 1412 PSINJECT_ORIENTATION = 8, 1413 PSINJECT_BOUNDINGBOX = 9, 1414 PSINJECT_DOCUMENTPROCESSCOLORS = 10, 1415 PSINJECT_COMMENTS = 11, 1416 PSINJECT_BEGINDEFAULTS = 12, 1417 PSINJECT_ENDDEFAULTS = 13, 1418 PSINJECT_BEGINPROLOG = 14, 1419 PSINJECT_ENDPROLOG = 15, 1420 PSINJECT_BEGINSETUP = 16, 1421 PSINJECT_ENDSETUP = 17, 1422 PSINJECT_TRAILER = 18, 1423 PSINJECT_EOF = 19, 1424 PSINJECT_ENDSTREAM = 20, 1425 PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21, 1426 1427 PSINJECT_PAGENUMBER = 100, 1428 PSINJECT_BEGINPAGESETUP = 101, 1429 PSINJECT_ENDPAGESETUP = 102, 1430 PSINJECT_PAGETRAILER = 103, 1431 PSINJECT_PLATECOLOR = 104, 1432 PSINJECT_SHOWPAGE = 105, 1433 PSINJECT_PAGEBBOX = 106, 1434 PSINJECT_ENDPAGECOMMENTS = 107, 1435 1436 PSINJECT_VMSAVE = 200, 1437 PSINJECT_VMRESTORE = 201, 1438 } 1439 1440 /* Parameter for GET_PS_FEATURESETTING escape */ 1441 enum { 1442 FEATURESETTING_NUP = 0, 1443 FEATURESETTING_OUTPUT = 1, 1444 FEATURESETTING_PSLEVEL = 2, 1445 FEATURESETTING_CUSTPAPER = 3, 1446 FEATURESETTING_MIRROR = 4, 1447 FEATURESETTING_NEGATIVE = 5, 1448 FEATURESETTING_PROTOCOL = 6, 1449 } 1450 1451 enum { 1452 FEATURESETTING_PRIVATE_BEGIN = 0x1000, 1453 FEATURESETTING_PRIVATE_END = 0x1FFF, 1454 } 1455 1456 /* Value returned for FEATURESETTING_PROTOCOL */ 1457 enum PSPROTOCOL_ASCII = 0; 1458 enum PSPROTOCOL_BCP = 1; 1459 enum PSPROTOCOL_TBCP = 2; 1460 enum PSPROTOCOL_BINARY = 3; 1461 1462 // ---- 1463 1464 enum WPARAM PR_JOBSTATUS = 0; 1465 1466 // ??? 1467 enum QDI_SETDIBITS = 1; 1468 enum QDI_GETDIBITS = 2; 1469 enum QDI_DIBTOSCREEN = 4; 1470 enum QDI_STRETCHDIB = 8; 1471 1472 enum ASPECT_FILTERING = 1; 1473 1474 // LOGCOLORSPACE.lcsCSType 1475 enum : LCSCSTYPE { 1476 LCS_CALIBRATED_RGB = 0, 1477 LCS_DEVICE_RGB, 1478 LCS_DEVICE_CMYK 1479 } /* What this for? */ 1480 1481 // LOGCOLORSPACE.lcsIntent 1482 enum : LCSGAMUTMATCH { 1483 LCS_GM_BUSINESS = 1, 1484 LCS_GM_GRAPHICS = 2, 1485 LCS_GM_IMAGES = 4, 1486 LCS_GM_ABS_COLORIMETRIC = 8, 1487 } 1488 1489 enum DWORD 1490 RASTER_FONTTYPE = 1, 1491 DEVICE_FONTTYPE = 2, 1492 TRUETYPE_FONTTYPE = 4; 1493 1494 // --- 1495 // DEVMODE struct 1496 1497 // FIXME: Not needed for D (use .length instead) 1498 enum CCHDEVICENAME = 32; 1499 enum CCHFORMNAME = 32; 1500 1501 // DEVMODE.dmSpecVersion 1502 // current version of specification 1503 enum WORD DM_SPECVERSION = 0x0401; 1504 1505 // DEVMODE.dmOrientation 1506 enum : short { 1507 DMORIENT_PORTRAIT = 1, 1508 DMORIENT_LANDSCAPE = 2 1509 } 1510 1511 // DEVMODE.dmPaperSize 1512 enum : short { 1513 DMPAPER_LETTER = 1, 1514 DMPAPER_LETTERSMALL, 1515 DMPAPER_TABLOID, 1516 DMPAPER_LEDGER, 1517 DMPAPER_LEGAL, 1518 DMPAPER_STATEMENT, 1519 DMPAPER_EXECUTIVE, 1520 DMPAPER_A3, 1521 DMPAPER_A4, 1522 DMPAPER_A4SMALL, 1523 DMPAPER_A5, 1524 DMPAPER_B4, 1525 DMPAPER_B5, 1526 DMPAPER_FOLIO, 1527 DMPAPER_QUARTO, 1528 DMPAPER_10X14, 1529 DMPAPER_11X17, 1530 DMPAPER_NOTE, 1531 DMPAPER_ENV_9, 1532 DMPAPER_ENV_10, 1533 DMPAPER_ENV_11, 1534 DMPAPER_ENV_12, 1535 DMPAPER_ENV_14, 1536 DMPAPER_CSHEET, 1537 DMPAPER_DSHEET, 1538 DMPAPER_ESHEET, 1539 DMPAPER_ENV_DL, 1540 DMPAPER_ENV_C5, 1541 DMPAPER_ENV_C3, 1542 DMPAPER_ENV_C4, 1543 DMPAPER_ENV_C6, 1544 DMPAPER_ENV_C65, 1545 DMPAPER_ENV_B4, 1546 DMPAPER_ENV_B5, 1547 DMPAPER_ENV_B6, 1548 DMPAPER_ENV_ITALY, 1549 DMPAPER_ENV_MONARCH, 1550 DMPAPER_ENV_PERSONAL, 1551 DMPAPER_FANFOLD_US, 1552 DMPAPER_FANFOLD_STD_GERMAN, 1553 DMPAPER_FANFOLD_LGL_GERMAN, 1554 DMPAPER_ISO_B4, 1555 DMPAPER_JAPANESE_POSTCARD, 1556 DMPAPER_9X11, 1557 DMPAPER_10X11, 1558 DMPAPER_15X11, 1559 DMPAPER_ENV_INVITE, 1560 DMPAPER_RESERVED_48, 1561 DMPAPER_RESERVED_49, 1562 DMPAPER_LETTER_EXTRA, 1563 DMPAPER_LEGAL_EXTRA, 1564 DMPAPER_TABLOID_EXTRA, 1565 DMPAPER_A4_EXTRA, 1566 DMPAPER_LETTER_TRANSVERSE, 1567 DMPAPER_A4_TRANSVERSE, 1568 DMPAPER_LETTER_EXTRA_TRANSVERSE, 1569 DMPAPER_A_PLUS, 1570 DMPAPER_B_PLUS, 1571 DMPAPER_LETTER_PLUS, 1572 DMPAPER_A4_PLUS, 1573 DMPAPER_A5_TRANSVERSE, 1574 DMPAPER_B5_TRANSVERSE, 1575 DMPAPER_A3_EXTRA, 1576 DMPAPER_A5_EXTRA, 1577 DMPAPER_B5_EXTRA, 1578 DMPAPER_A2, 1579 DMPAPER_A3_TRANSVERSE, 1580 DMPAPER_A3_EXTRA_TRANSVERSE // = 68 1581 } 1582 static if (_WIN32_WINNT >= 0x500) { 1583 enum : short { 1584 DMPAPER_DBL_JAPANESE_POSTCARD = 69, 1585 DMPAPER_A6, 1586 DMPAPER_JENV_KAKU2, 1587 DMPAPER_JENV_KAKU3, 1588 DMPAPER_JENV_CHOU3, 1589 DMPAPER_JENV_CHOU4, 1590 DMPAPER_LETTER_ROTATED, 1591 DMPAPER_A3_ROTATED, 1592 DMPAPER_A4_ROTATED, 1593 DMPAPER_A5_ROTATED, 1594 DMPAPER_B4_JIS_ROTATED, 1595 DMPAPER_B5_JIS_ROTATED, 1596 DMPAPER_JAPANESE_POSTCARD_ROTATED, 1597 DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, 1598 DMPAPER_A6_ROTATED, 1599 DMPAPER_JENV_KAKU2_ROTATED, 1600 DMPAPER_JENV_KAKU3_ROTATED, 1601 DMPAPER_JENV_CHOU3_ROTATED, 1602 DMPAPER_JENV_CHOU4_ROTATED, 1603 DMPAPER_B6_JIS, 1604 DMPAPER_B6_JIS_ROTATED, 1605 DMPAPER_12X11, 1606 DMPAPER_JENV_YOU4, 1607 DMPAPER_JENV_YOU4_ROTATED, 1608 DMPAPER_P16K, 1609 DMPAPER_P32K, 1610 DMPAPER_P32KBIG, 1611 DMPAPER_PENV_1, 1612 DMPAPER_PENV_2, 1613 DMPAPER_PENV_3, 1614 DMPAPER_PENV_4, 1615 DMPAPER_PENV_5, 1616 DMPAPER_PENV_6, 1617 DMPAPER_PENV_7, 1618 DMPAPER_PENV_8, 1619 DMPAPER_PENV_9, 1620 DMPAPER_PENV_10, 1621 DMPAPER_P16K_ROTATED, 1622 DMPAPER_P32K_ROTATED, 1623 DMPAPER_P32KBIG_ROTATED, 1624 DMPAPER_PENV_1_ROTATED, 1625 DMPAPER_PENV_2_ROTATED, 1626 DMPAPER_PENV_3_ROTATED, 1627 DMPAPER_PENV_4_ROTATED, 1628 DMPAPER_PENV_5_ROTATED, 1629 DMPAPER_PENV_6_ROTATED, 1630 DMPAPER_PENV_7_ROTATED, 1631 DMPAPER_PENV_8_ROTATED, 1632 DMPAPER_PENV_9_ROTATED, 1633 DMPAPER_PENV_10_ROTATED // 118 1634 } 1635 } 1636 1637 enum short DMPAPER_FIRST = DMPAPER_LETTER; 1638 1639 static if (_WIN32_WINNT >= 0x500) { 1640 enum short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED; 1641 } else { 1642 enum short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE; 1643 } 1644 1645 enum short DMPAPER_USER = 256; 1646 1647 1648 // DEVMODE.dmDefaultSource 1649 enum : short { 1650 DMBIN_ONLYONE = 1, 1651 DMBIN_UPPER = 1, 1652 DMBIN_LOWER, 1653 DMBIN_MIDDLE, 1654 DMBIN_MANUAL, 1655 DMBIN_ENVELOPE, 1656 DMBIN_ENVMANUAL, 1657 DMBIN_AUTO, 1658 DMBIN_TRACTOR, 1659 DMBIN_SMALLFMT, 1660 DMBIN_LARGEFMT, 1661 DMBIN_LARGECAPACITY, // = 11 1662 DMBIN_CASSETTE = 14, 1663 DMBIN_FORMSOURCE, 1664 } 1665 enum : short { 1666 DMBIN_FIRST = DMBIN_UPPER, 1667 DMBIN_LAST = DMBIN_FORMSOURCE, 1668 DMBIN_USER = 256, 1669 } 1670 1671 // DEVMODE.dmPrintQuality 1672 enum : short { 1673 DMRES_DRAFT = -1, 1674 DMRES_LOW = -2, 1675 DMRES_MEDIUM = -3, 1676 DMRES_HIGH = -4 1677 } 1678 1679 // DEVMODE.dmColor 1680 enum : short { 1681 DMCOLOR_MONOCHROME = 1, 1682 DMCOLOR_COLOR = 2 1683 } 1684 1685 // DEVMODE.dmDuplex 1686 enum : short { 1687 DMDUP_SIMPLEX = 1, 1688 DMDUP_VERTICAL = 2, 1689 DMDUP_HORIZONTAL = 3 1690 } 1691 1692 // DEVMODE.dmTTOption 1693 enum : short { 1694 DMTT_BITMAP = 1, 1695 DMTT_DOWNLOAD, 1696 DMTT_SUBDEV, 1697 DMTT_DOWNLOAD_OUTLINE 1698 } 1699 1700 // DEVMODE.dmCollate 1701 enum : short { 1702 DMCOLLATE_FALSE = 0, 1703 DMCOLLATE_TRUE 1704 } 1705 1706 static if (_WIN32_WINNT >= 0x501) { 1707 /* DEVMODE dmDisplayOrientation specifiations */ 1708 enum : short { 1709 DMDO_DEFAULT = 0, 1710 DMDO_90 = 1, 1711 DMDO_180 = 2, 1712 DMDO_270 = 3, 1713 } 1714 1715 /* DEVMODE dmDisplayFixedOutput specifiations */ 1716 enum : short { 1717 DMDFO_DEFAULT = 0, 1718 DMDFO_STRETCH = 1, 1719 DMDFO_CENTER = 2, 1720 } 1721 } 1722 1723 1724 /* FIXME: this flags are deprecated ? */ 1725 // DEVMODE.dmDisplayFlags 1726 enum DWORD 1727 DM_GRAYSCALE = 1, 1728 DM_INTERLACED = 2; 1729 1730 enum DWORD 1731 DMDISPLAYFLAGS_TEXTMODE = 0x00000004; 1732 1733 /* dmNup , multiple logical page per physical page options */ 1734 enum DWORD 1735 DMNUP_SYSTEM = 1, 1736 DMNUP_ONEUP = 2; 1737 1738 // DEVMODE.dmFields 1739 enum DWORD 1740 DM_ORIENTATION = 0x00000001, 1741 DM_PAPERSIZE = 0x00000002, 1742 DM_PAPERLENGTH = 0x00000004, 1743 DM_PAPERWIDTH = 0x00000008, 1744 DM_SCALE = 0x00000010; 1745 static if (_WIN32_WINNT >= 0x500) { 1746 enum DWORD 1747 DM_POSITION = 0x00000020, 1748 DM_NUP = 0x00000040; 1749 } 1750 static if (_WIN32_WINNT >= 0x501) { 1751 enum DWORD 1752 DM_DISPLAYORIENTATION = 0x00000080; 1753 } 1754 enum DWORD 1755 DM_COPIES = 0x00000100, 1756 DM_DEFAULTSOURCE = 0x00000200, 1757 DM_PRINTQUALITY = 0x00000400, 1758 DM_COLOR = 0x00000800, 1759 DM_DUPLEX = 0x00001000, 1760 DM_YRESOLUTION = 0x00002000, 1761 DM_TTOPTION = 0x00004000, 1762 DM_COLLATE = 0x00008000, 1763 DM_FORMNAME = 0x00010000, 1764 DM_LOGPIXELS = 0x00020000, 1765 DM_BITSPERPEL = 0x00040000, 1766 DM_PELSWIDTH = 0x00080000, 1767 DM_PELSHEIGHT = 0x00100000, 1768 DM_DISPLAYFLAGS = 0x00200000, 1769 DM_DISPLAYFREQUENCY = 0x00400000, 1770 DM_ICMMETHOD = 0x00800000, 1771 DM_ICMINTENT = 0x01000000, 1772 DM_MEDIATYPE = 0x02000000, 1773 DM_DITHERTYPE = 0x04000000, 1774 DM_PANNINGWIDTH = 0x08000000, 1775 DM_PANNINGHEIGHT = 0x10000000; 1776 static if (_WIN32_WINNT >= 0x501) { 1777 enum DWORD 1778 DM_DISPLAYFIXEDOUTPUT = 0x20000000; 1779 } 1780 1781 // DEVMODE.dmICMMethod 1782 enum : DWORD { 1783 DMICMMETHOD_NONE = 1, 1784 DMICMMETHOD_SYSTEM = 2, 1785 DMICMMETHOD_DRIVER = 3, 1786 DMICMMETHOD_DEVICE = 4, 1787 DMICMMETHOD_USER = 256 1788 } 1789 1790 // DEVMODE.dmICMIntent 1791 enum : DWORD { 1792 DMICM_SATURATE = 1, 1793 DMICM_CONTRAST = 2, 1794 DMICM_COLORIMETRIC = 3, 1795 DMICM_ABS_COLORIMETRIC = 4, 1796 DMICM_USER = 256 1797 } 1798 1799 // DEVMODE.dmMediaType 1800 enum : DWORD { 1801 DMMEDIA_STANDARD = 1, 1802 DMMEDIA_TRANSPARENCY = 2, 1803 DMMEDIA_GLOSSY = 3, 1804 DMMEDIA_USER = 256 1805 } 1806 1807 // DEVMODE.dmDitherType 1808 enum : DWORD { 1809 DMDITHER_NONE = 1, 1810 DMDITHER_COARSE, 1811 DMDITHER_FINE, 1812 DMDITHER_LINEART, 1813 DMDITHER_ERRORDIFFUSION, 1814 DMDITHER_RESERVED6, 1815 DMDITHER_RESERVED7, 1816 DMDITHER_RESERVED8, 1817 DMDITHER_RESERVED9, 1818 DMDITHER_GRAYSCALE, 1819 DMDITHER_USER = 256 1820 } 1821 1822 // ---- 1823 // DocumentProperties() 1824 enum DWORD 1825 DM_UPDATE = 1, 1826 DM_COPY = 2, 1827 DM_PROMPT = 4, 1828 DM_MODIFY = 8, 1829 DM_IN_BUFFER = DM_MODIFY, 1830 DM_IN_PROMPT = DM_PROMPT, 1831 DM_OUT_BUFFER = DM_COPY, 1832 DM_OUT_DEFAULT = DM_UPDATE; 1833 // --- 1834 1835 enum GDI_ERROR = 0xFFFFFFFF; 1836 enum HGDI_ERROR= cast(HANDLE)GDI_ERROR; 1837 1838 // TEXTMETRIC.tmPitchAndFamily 1839 enum BYTE 1840 TMPF_FIXED_PITCH = 1, 1841 TMPF_VECTOR = 2, 1842 TMPF_TRUETYPE = 4, 1843 TMPF_DEVICE = 8; 1844 1845 // NEWTEXTMETRIC.ntmFlags 1846 enum DWORD 1847 NTM_ITALIC = 0x00000001, 1848 NTM_BOLD = 0x00000020, 1849 NTM_REGULAR = 0x00000040, 1850 NTM_NONNEGATIVE_AC = 0x00010000, 1851 NTM_PS_OPENTYPE = 0x00020000, 1852 NTM_TT_OPENTYPE = 0x00040000, 1853 NTM_MULTIPLEMASTER = 0x00080000, 1854 NTM_TYPE1 = 0x00100000, 1855 NTM_DSIG = 0x00200000; 1856 1857 // --- 1858 enum DWORD TT_POLYGON_TYPE = 24; 1859 1860 // TTPOLYCURVE 1861 enum : WORD { 1862 TT_PRIM_LINE = 1, 1863 TT_PRIM_QSPLINE = 2, 1864 TT_PRIM_CSPLINE = 3, 1865 } 1866 // --- 1867 enum FONTMAPPER_MAX = 10; 1868 enum ENHMETA_STOCK_OBJECT = 0x80000000; 1869 enum WGL_FONT_LINES = 0; 1870 enum WGL_FONT_POLYGONS = 1; 1871 1872 // --- 1873 // LAYERPLANEDESCRIPTOR.dwFlags 1874 enum DWORD 1875 LPD_DOUBLEBUFFER = 1, 1876 LPD_STEREO = 2, 1877 LPD_SUPPORT_GDI = 16, 1878 LPD_SUPPORT_OPENGL = 32, 1879 LPD_SHARE_DEPTH = 64, 1880 LPD_SHARE_STENCIL = 128, 1881 LPD_SHARE_ACCUM = 256, 1882 LPD_SWAP_EXCHANGE = 512, 1883 LPD_SWAP_COPY = 1024, 1884 LPD_TRANSPARENT = 4096; 1885 1886 // LAYERPLANEDESCRIPTOR.iPixelType 1887 enum : BYTE { 1888 LPD_TYPE_RGBA = 0, 1889 LPD_TYPE_COLORINDEX = 1 1890 } 1891 1892 // --- 1893 1894 // wglSwapLayerBuffers() 1895 enum UINT 1896 WGL_SWAP_MAIN_PLANE = 1, 1897 WGL_SWAP_OVERLAY1 = 2, 1898 WGL_SWAP_OVERLAY2 = 4, 1899 WGL_SWAP_OVERLAY3 = 8, 1900 WGL_SWAP_OVERLAY4 = 16, 1901 WGL_SWAP_OVERLAY5 = 32, 1902 WGL_SWAP_OVERLAY6 = 64, 1903 WGL_SWAP_OVERLAY7 = 128, 1904 WGL_SWAP_OVERLAY8 = 256, 1905 WGL_SWAP_OVERLAY9 = 512, 1906 WGL_SWAP_OVERLAY10 = 1024, 1907 WGL_SWAP_OVERLAY11 = 2048, 1908 WGL_SWAP_OVERLAY12 = 4096, 1909 WGL_SWAP_OVERLAY13 = 8192, 1910 WGL_SWAP_OVERLAY14 = 16384, 1911 WGL_SWAP_OVERLAY15 = 32768, 1912 WGL_SWAP_UNDERLAY1 = 65536, 1913 WGL_SWAP_UNDERLAY2 = 0x20000, 1914 WGL_SWAP_UNDERLAY3 = 0x40000, 1915 WGL_SWAP_UNDERLAY4 = 0x80000, 1916 WGL_SWAP_UNDERLAY5 = 0x100000, 1917 WGL_SWAP_UNDERLAY6 = 0x200000, 1918 WGL_SWAP_UNDERLAY7 = 0x400000, 1919 WGL_SWAP_UNDERLAY8 = 0x800000, 1920 WGL_SWAP_UNDERLAY9 = 0x1000000, 1921 WGL_SWAP_UNDERLAY10 = 0x2000000, 1922 WGL_SWAP_UNDERLAY11 = 0x4000000, 1923 WGL_SWAP_UNDERLAY12 = 0x8000000, 1924 WGL_SWAP_UNDERLAY13 = 0x10000000, 1925 WGL_SWAP_UNDERLAY14 = 0x20000000, 1926 WGL_SWAP_UNDERLAY15 = 0x40000000; 1927 1928 enum AC_SRC_OVER = 0x00; 1929 enum AC_SRC_ALPHA = 0x01; 1930 1931 // ??? 1932 enum AC_SRC_NO_PREMULT_ALPHA = 0x01; 1933 enum AC_SRC_NO_ALPHA = 0x02; 1934 enum AC_DST_NO_PREMULT_ALPHA = 0x10; 1935 enum AC_DST_NO_ALPHA = 0x20; 1936 1937 enum LAYOUT_RTL = 1; 1938 enum LAYOUT_BTT = 2; 1939 enum LAYOUT_VBH = 4; 1940 enum LAYOUT_BITMAPORIENTATIONPRESERVED = 8; 1941 1942 enum CS_ENABLE = 0x00000001; 1943 enum CS_DISABLE = 0x00000002; 1944 enum CS_DELETE_TRANSFORM = 0x00000003; 1945 1946 static if (_WIN32_WINNT > 0x500) { 1947 enum GRADIENT_FILL_RECT_H=0x00; 1948 enum GRADIENT_FILL_RECT_V=0x01; 1949 enum GRADIENT_FILL_TRIANGLE=0x02; 1950 enum GRADIENT_FILL_OP_FLAG=0xff; 1951 enum COLORMATCHTOTARGET_EMBEDED=0x00000001; 1952 enum CREATECOLORSPACE_EMBEDED=0x00000001; 1953 enum SETICMPROFILE_EMBEDED=0x00000001; 1954 } 1955 1956 // DISPLAY_DEVICE.StateFlags 1957 enum DWORD 1958 DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001, 1959 DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002, 1960 DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004, 1961 DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008, 1962 DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010, 1963 DISPLAY_DEVICE_REMOVABLE = 0x00000020, 1964 DISPLAY_DEVICE_DISCONNECT = 0x02000000, 1965 DISPLAY_DEVICE_REMOTE = 0x04000000, 1966 DISPLAY_DEVICE_MODESPRUNED = 0x08000000; 1967 1968 /* Child device state */ 1969 enum DWORD 1970 DISPLAY_DEVICE_ACTIVE = 0x00000001, 1971 DISPLAY_DEVICE_ATTACHED = 0x00000002; 1972 1973 static if (_WIN32_WINNT >= 0x500) { 1974 enum GGI_MARK_NONEXISTING_GLYPHS = 1; 1975 } 1976 1977 // ---------- 1978 // STRUCTS 1979 // ---------- 1980 1981 struct ABC { 1982 int abcA; 1983 UINT abcB; 1984 int abcC; 1985 } 1986 alias ABC* PABC, NPABC, LPABC; 1987 1988 struct ABCFLOAT { 1989 FLOAT abcfA; 1990 FLOAT abcfB; 1991 FLOAT abcfC; 1992 } 1993 alias ABCFLOAT* PABCFLOAT, NPABCFLOAT, LPABCFLOAT; 1994 1995 struct BITMAP { 1996 LONG bmType; 1997 LONG bmWidth; 1998 LONG bmHeight; 1999 LONG bmWidthBytes; 2000 WORD bmPlanes; 2001 WORD bmBitsPixel; 2002 LPVOID bmBits; 2003 } 2004 alias BITMAP* PBITMAP, NPBITMAP, LPBITMAP; 2005 2006 struct BITMAPCOREHEADER { 2007 DWORD bcSize; 2008 WORD bcWidth; 2009 WORD bcHeight; 2010 WORD bcPlanes; 2011 WORD bcBitCount; 2012 } 2013 alias BITMAPCOREHEADER* PBITMAPCOREHEADER, LPBITMAPCOREHEADER; 2014 2015 align(1): 2016 struct RGBTRIPLE { 2017 BYTE rgbtBlue; 2018 BYTE rgbtGreen; 2019 BYTE rgbtRed; 2020 } 2021 alias RGBTRIPLE* LPRGBTRIPLE; 2022 2023 align(2): 2024 struct BITMAPFILEHEADER { 2025 align(2): 2026 WORD bfType; 2027 DWORD bfSize; 2028 WORD bfReserved1; 2029 WORD bfReserved2; 2030 DWORD bfOffBits; 2031 } 2032 alias BITMAPFILEHEADER* LPBITMAPFILEHEADER, PBITMAPFILEHEADER; 2033 2034 align: 2035 2036 struct BITMAPCOREINFO { 2037 BITMAPCOREHEADER bmciHeader; 2038 RGBTRIPLE[1] bmciColors; 2039 } 2040 alias BITMAPCOREINFO* LPBITMAPCOREINFO, PBITMAPCOREINFO; 2041 2042 struct BITMAPINFOHEADER { 2043 DWORD biSize; 2044 LONG biWidth; 2045 LONG biHeight; 2046 WORD biPlanes; 2047 WORD biBitCount; 2048 DWORD biCompression; 2049 DWORD biSizeImage; 2050 LONG biXPelsPerMeter; 2051 LONG biYPelsPerMeter; 2052 DWORD biClrUsed; 2053 DWORD biClrImportant; 2054 } 2055 2056 alias BITMAPINFOHEADER* LPBITMAPINFOHEADER, PBITMAPINFOHEADER; 2057 2058 struct RGBQUAD { 2059 BYTE rgbBlue; 2060 BYTE rgbGreen; 2061 BYTE rgbRed; 2062 BYTE rgbReserved; 2063 } 2064 alias RGBQUAD* LPRGBQUAD; 2065 2066 struct BITMAPINFO { 2067 BITMAPINFOHEADER bmiHeader; 2068 RGBQUAD[1] bmiColors; 2069 } 2070 alias BITMAPINFO* PBITMAPINFO, LPBITMAPINFO; 2071 2072 alias int FXPT16DOT16; 2073 alias int* LPFXPT16DOT16; 2074 alias int FXPT2DOT30; 2075 alias int* LPFXPT2DOT30; 2076 2077 struct CIEXYZ { 2078 FXPT2DOT30 ciexyzX; 2079 FXPT2DOT30 ciexyzY; 2080 FXPT2DOT30 ciexyzZ; 2081 } 2082 alias CIEXYZ* LPCIEXYZ; 2083 2084 struct CIEXYZTRIPLE { 2085 CIEXYZ ciexyzRed; 2086 CIEXYZ ciexyzGreen; 2087 CIEXYZ ciexyzBlue; 2088 } 2089 alias CIEXYZTRIPLE* LPCIEXYZTRIPLE; 2090 2091 struct BITMAPV4HEADER { 2092 DWORD bV4Size; 2093 LONG bV4Width; 2094 LONG bV4Height; 2095 WORD bV4Planes; 2096 WORD bV4BitCount; 2097 DWORD bV4V4Compression; 2098 DWORD bV4SizeImage; 2099 LONG bV4XPelsPerMeter; 2100 LONG bV4YPelsPerMeter; 2101 DWORD bV4ClrUsed; 2102 DWORD bV4ClrImportant; 2103 DWORD bV4RedMask; 2104 DWORD bV4GreenMask; 2105 DWORD bV4BlueMask; 2106 DWORD bV4AlphaMask; 2107 DWORD bV4CSType; 2108 CIEXYZTRIPLE bV4Endpoints; 2109 DWORD bV4GammaRed; 2110 DWORD bV4GammaGreen; 2111 DWORD bV4GammaBlue; 2112 } 2113 alias BITMAPV4HEADER* LPBITMAPV4HEADER, PBITMAPV4HEADER; 2114 2115 struct BITMAPV5HEADER { 2116 DWORD bV5Size; 2117 LONG bV5Width; 2118 LONG bV5Height; 2119 WORD bV5Planes; 2120 WORD bV5BitCount; 2121 DWORD bV5Compression; 2122 DWORD bV5SizeImage; 2123 LONG bV5XPelsPerMeter; 2124 LONG bV5YPelsPerMeter; 2125 DWORD bV5ClrUsed; 2126 DWORD bV5ClrImportant; 2127 DWORD bV5RedMask; 2128 DWORD bV5GreenMask; 2129 DWORD bV5BlueMask; 2130 DWORD bV5AlphaMask; 2131 DWORD bV5CSType; 2132 CIEXYZTRIPLE bV5Endpoints; 2133 DWORD bV5GammaRed; 2134 DWORD bV5GammaGreen; 2135 DWORD bV5GammaBlue; 2136 DWORD bV5Intent; 2137 DWORD bV5ProfileData; 2138 DWORD bV5ProfileSize; 2139 DWORD bV5Reserved; 2140 } 2141 alias BITMAPV5HEADER* LPBITMAPV5HEADER, PBITMAPV5HEADER; 2142 2143 struct FONTSIGNATURE { 2144 DWORD[4] fsUsb; 2145 DWORD[2] fsCsb; 2146 } 2147 alias FONTSIGNATURE* PFONTSIGNATURE, LPFONTSIGNATURE; 2148 2149 struct CHARSETINFO { 2150 UINT ciCharset; 2151 UINT ciACP; 2152 FONTSIGNATURE fs; 2153 } 2154 alias CHARSETINFO* PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO; 2155 2156 struct COLORADJUSTMENT { 2157 WORD caSize; 2158 WORD caFlags; 2159 WORD caIlluminantIndex; 2160 WORD caRedGamma; 2161 WORD caGreenGamma; 2162 WORD caBlueGamma; 2163 WORD caReferenceBlack; 2164 WORD caReferenceWhite; 2165 SHORT caContrast; 2166 SHORT caBrightness; 2167 SHORT caColorfulness; 2168 SHORT caRedGreenTint; 2169 } 2170 alias COLORADJUSTMENT* PCOLORADJUSTMENT, LPCOLORADJUSTMENT; 2171 2172 struct DEVMODEA { 2173 BYTE[CCHDEVICENAME] dmDeviceName; 2174 WORD dmSpecVersion; 2175 WORD dmDriverVersion; 2176 WORD dmSize; 2177 WORD dmDriverExtra; 2178 DWORD dmFields; 2179 union { 2180 struct { 2181 short dmOrientation; 2182 short dmPaperSize; 2183 short dmPaperLength; 2184 short dmPaperWidth; 2185 short dmScale; 2186 short dmCopies; 2187 short dmDefaultSource; 2188 short dmPrintQuality; 2189 } 2190 struct { 2191 POINTL dmPosition; 2192 DWORD dmDisplayOrientation; 2193 DWORD dmDisplayFixedOutput; 2194 } 2195 } 2196 short dmColor; 2197 short dmDuplex; 2198 short dmYResolution; 2199 short dmTTOption; 2200 short dmCollate; 2201 BYTE[CCHFORMNAME] dmFormName; 2202 WORD dmLogPixels; 2203 DWORD dmBitsPerPel; 2204 DWORD dmPelsWidth; 2205 DWORD dmPelsHeight; 2206 union { 2207 DWORD dmDisplayFlags; 2208 DWORD dmNup; 2209 } 2210 DWORD dmDisplayFrequency; 2211 DWORD dmICMMethod; 2212 DWORD dmICMIntent; 2213 DWORD dmMediaType; 2214 DWORD dmDitherType; 2215 DWORD dmReserved1; 2216 DWORD dmReserved2; 2217 DWORD dmPanningWidth; 2218 DWORD dmPanningHeight; 2219 } 2220 alias DEVMODEA* PDEVMODEA, NPDEVMODEA, LPDEVMODEA; 2221 2222 struct DEVMODEW { 2223 WCHAR[CCHDEVICENAME] dmDeviceName = 0; 2224 WORD dmSpecVersion; 2225 WORD dmDriverVersion; 2226 WORD dmSize; 2227 WORD dmDriverExtra; 2228 DWORD dmFields; 2229 union { 2230 struct { 2231 short dmOrientation; 2232 short dmPaperSize; 2233 short dmPaperLength; 2234 short dmPaperWidth; 2235 short dmScale; 2236 short dmCopies; 2237 short dmDefaultSource; 2238 short dmPrintQuality; 2239 } 2240 struct { 2241 POINTL dmPosition; 2242 DWORD dmDisplayOrientation; 2243 DWORD dmDisplayFixedOutput; 2244 } 2245 } 2246 2247 short dmColor; 2248 short dmDuplex; 2249 short dmYResolution; 2250 short dmTTOption; 2251 short dmCollate; 2252 WCHAR[CCHFORMNAME] dmFormName = 0; 2253 WORD dmLogPixels; 2254 DWORD dmBitsPerPel; 2255 DWORD dmPelsWidth; 2256 DWORD dmPelsHeight; 2257 union { 2258 DWORD dmDisplayFlags; 2259 DWORD dmNup; 2260 } 2261 DWORD dmDisplayFrequency; 2262 DWORD dmICMMethod; 2263 DWORD dmICMIntent; 2264 DWORD dmMediaType; 2265 DWORD dmDitherType; 2266 DWORD dmReserved1; 2267 DWORD dmReserved2; 2268 DWORD dmPanningWidth; 2269 DWORD dmPanningHeight; 2270 } 2271 alias DEVMODEW* PDEVMODEW, NPDEVMODEW, LPDEVMODEW; 2272 2273 /* 2274 * Information about output options 2275 */ 2276 struct PSFEATURE_OUTPUT { 2277 BOOL bPageIndependent; 2278 BOOL bSetPageDevice; 2279 } 2280 alias PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT; 2281 2282 /* 2283 * Information about custom paper size 2284 */ 2285 struct PSFEATURE_CUSTPAPER { 2286 LONG lOrientation; 2287 LONG lWidth; 2288 LONG lHeight; 2289 LONG lWidthOffset; 2290 LONG lHeightOffset; 2291 } 2292 alias PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER; 2293 2294 struct DIBSECTION { 2295 BITMAP dsBm; 2296 BITMAPINFOHEADER dsBmih; 2297 DWORD[3] dsBitfields; 2298 HANDLE dshSection; 2299 DWORD dsOffset; 2300 } 2301 alias DIBSECTION* PDIBSECTION; 2302 2303 struct DOCINFOA { 2304 int cbSize = DOCINFOA.sizeof; 2305 LPCSTR lpszDocName; 2306 LPCSTR lpszOutput; 2307 LPCSTR lpszDatatype; 2308 DWORD fwType; 2309 } 2310 alias DOCINFOA* LPDOCINFOA; 2311 2312 struct DOCINFOW { 2313 int cbSize = DOCINFOW.sizeof; 2314 LPCWSTR lpszDocName; 2315 LPCWSTR lpszOutput; 2316 LPCWSTR lpszDatatype; 2317 DWORD fwType; 2318 } 2319 alias DOCINFOW* LPDOCINFOW; 2320 2321 2322 struct PANOSE { 2323 BYTE bFamilyType; 2324 BYTE bSerifStyle; 2325 BYTE bWeight; 2326 BYTE bProportion; 2327 BYTE bContrast; 2328 BYTE bStrokeVariation; 2329 BYTE bArmStyle; 2330 BYTE bLetterform; 2331 BYTE bMidline; 2332 BYTE bXHeight; 2333 } 2334 alias PANOSE* LPPANOSE; 2335 2336 struct LOGFONTA { 2337 LONG lfHeight; 2338 LONG lfWidth; 2339 LONG lfEscapement; 2340 LONG lfOrientation; 2341 LONG lfWeight; 2342 BYTE lfItalic; 2343 BYTE lfUnderline; 2344 BYTE lfStrikeOut; 2345 BYTE lfCharSet; 2346 BYTE lfOutPrecision; 2347 BYTE lfClipPrecision; 2348 BYTE lfQuality; 2349 BYTE lfPitchAndFamily; 2350 CHAR[LF_FACESIZE] lfFaceName = 0; 2351 } 2352 alias LOGFONTA* PLOGFONTA, NPLOGFONTA, LPLOGFONTA; 2353 2354 struct LOGFONTW { 2355 LONG lfHeight; 2356 LONG lfWidth; 2357 LONG lfEscapement; 2358 LONG lfOrientation; 2359 LONG lfWeight; 2360 BYTE lfItalic; 2361 BYTE lfUnderline; 2362 BYTE lfStrikeOut; 2363 BYTE lfCharSet; 2364 BYTE lfOutPrecision; 2365 BYTE lfClipPrecision; 2366 BYTE lfQuality; 2367 BYTE lfPitchAndFamily; 2368 WCHAR[LF_FACESIZE] lfFaceName = 0; 2369 } 2370 alias LOGFONTW* PLOGFONTW, NPLOGFONTW, LPLOGFONTW; 2371 2372 struct EXTLOGFONTA { 2373 LOGFONTA elfLogFont; 2374 BYTE[LF_FULLFACESIZE] elfFullName; 2375 BYTE[LF_FACESIZE] elfStyle; 2376 DWORD elfVersion; 2377 DWORD elfStyleSize; 2378 DWORD elfMatch; 2379 DWORD elfReserved; 2380 BYTE[ELF_VENDOR_SIZE] elfVendorId; 2381 DWORD elfCulture; 2382 PANOSE elfPanose; 2383 } 2384 alias EXTLOGFONTA* PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA; 2385 2386 struct EXTLOGFONTW { 2387 LOGFONTW elfLogFont; 2388 WCHAR[LF_FULLFACESIZE] elfFullName = 0; 2389 WCHAR[LF_FACESIZE] elfStyle = 0; 2390 DWORD elfVersion; 2391 DWORD elfStyleSize; 2392 DWORD elfMatch; 2393 DWORD elfReserved; 2394 BYTE[ELF_VENDOR_SIZE] elfVendorId; 2395 DWORD elfCulture; 2396 PANOSE elfPanose; 2397 } 2398 alias EXTLOGFONTW* PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW; 2399 2400 struct LOGPEN { 2401 UINT lopnStyle; 2402 POINT lopnWidth; 2403 COLORREF lopnColor; 2404 } 2405 alias LOGPEN* PLOGPEN, NPLOGPEN, LPLOGPEN; 2406 2407 // ---------------------- EMR ------------ 2408 2409 struct EMR { 2410 DWORD iType; 2411 DWORD nSize; 2412 } 2413 alias EMR* PEMR; 2414 2415 struct EMRANGLEARC { 2416 EMR emr; 2417 POINTL ptlCenter; 2418 DWORD nRadius; 2419 FLOAT eStartAngle; 2420 FLOAT eSweepAngle; 2421 } 2422 alias EMRANGLEARC* PEMRANGLEARC; 2423 2424 struct EMRARC { 2425 EMR emr; 2426 RECTL rclBox; 2427 POINTL ptlStart; 2428 POINTL ptlEnd; 2429 } 2430 alias EMRARC* PEMRARC; 2431 alias TypeDef!(EMRARC) EMRARCTO; 2432 alias EMRARCTO* PEMRARCTO; 2433 alias TypeDef!(EMRARC) EMRCHORD; 2434 alias EMRCHORD* PEMRCHORD; 2435 alias TypeDef!(EMRARC) EMRPIE; 2436 alias EMRPIE* PEMRPIE; 2437 2438 struct XFORM { 2439 FLOAT eM11; 2440 FLOAT eM12; 2441 FLOAT eM21; 2442 FLOAT eM22; 2443 FLOAT eDx; 2444 FLOAT eDy; 2445 } 2446 alias XFORM* PXFORM, LPXFORM; 2447 2448 struct EMRBITBLT { 2449 EMR emr; 2450 RECTL rclBounds; 2451 LONG xDest; 2452 LONG yDest; 2453 LONG cxDest; 2454 LONG cyDest; 2455 DWORD dwRop; 2456 LONG xSrc; 2457 LONG ySrc; 2458 XFORM xformSrc; 2459 COLORREF crBkColorSrc; 2460 DWORD iUsageSrc; 2461 DWORD offBmiSrc; 2462 DWORD cbBmiSrc; 2463 DWORD offBitsSrc; 2464 DWORD cbBitsSrc; 2465 } 2466 alias EMRBITBLT* PEMRBITBLT; 2467 2468 struct LOGBRUSH { 2469 UINT lbStyle; 2470 COLORREF lbColor; 2471 ULONG_PTR lbHatch; 2472 } 2473 alias TypeDef!(LOGBRUSH) PATTERN; 2474 alias LOGBRUSH* PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH; 2475 alias PATTERN* PPATTERN, NPPATTERN, LPPATTERN; 2476 2477 struct LOGBRUSH32 { 2478 UINT lbStyle; 2479 COLORREF lbColor; 2480 ULONG lbHatch; 2481 } 2482 alias LOGBRUSH32* PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32; 2483 2484 struct EMRCREATEBRUSHINDIRECT { 2485 EMR emr; 2486 DWORD ihBrush; 2487 LOGBRUSH32 lb; 2488 } 2489 alias EMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT; 2490 2491 alias LONG LCSCSTYPE, LCSGAMUTMATCH; 2492 2493 struct LOGCOLORSPACEA { 2494 DWORD lcsSignature; 2495 DWORD lcsVersion; 2496 DWORD lcsSize; 2497 LCSCSTYPE lcsCSType; 2498 LCSGAMUTMATCH lcsIntent; 2499 CIEXYZTRIPLE lcsEndpoints; 2500 DWORD lcsGammaRed; 2501 DWORD lcsGammaGreen; 2502 DWORD lcsGammaBlue; 2503 CHAR[MAX_PATH] lcsFilename = 0; 2504 } 2505 alias LOGCOLORSPACEA* LPLOGCOLORSPACEA; 2506 2507 struct LOGCOLORSPACEW { 2508 DWORD lcsSignature; 2509 DWORD lcsVersion; 2510 DWORD lcsSize; 2511 LCSCSTYPE lcsCSType; 2512 LCSGAMUTMATCH lcsIntent; 2513 CIEXYZTRIPLE lcsEndpoints; 2514 DWORD lcsGammaRed; 2515 DWORD lcsGammaGreen; 2516 DWORD lcsGammaBlue; 2517 WCHAR[MAX_PATH] lcsFilename = 0; 2518 } 2519 alias LOGCOLORSPACEW* LPLOGCOLORSPACEW; 2520 2521 alias USHORT COLOR16; 2522 struct TRIVERTEX { 2523 LONG x; 2524 LONG y; 2525 COLOR16 Red; 2526 COLOR16 Green; 2527 COLOR16 Blue; 2528 COLOR16 Alpha; 2529 } 2530 alias TRIVERTEX* PTRIVERTEX, LPTRIVERTEX; 2531 2532 struct EMRGLSRECORD { 2533 EMR emr; 2534 DWORD cbData; 2535 BYTE[1] Data; 2536 } 2537 alias EMRGLSRECORD* PEMRGLSRECORD; 2538 2539 struct EMRGLSBOUNDEDRECORD { 2540 EMR emr; 2541 RECTL rclBounds; 2542 DWORD cbData; 2543 BYTE[1] Data; 2544 } 2545 alias EMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD; 2546 2547 struct EMRPIXELFORMAT { 2548 EMR emr; 2549 PIXELFORMATDESCRIPTOR pfd; 2550 } 2551 alias EMRPIXELFORMAT* PEMRPIXELFORMAT; 2552 2553 struct EMRCREATECOLORSPACE { 2554 EMR emr; 2555 DWORD ihCS; 2556 LOGCOLORSPACEA lcs; // ANSI version 2557 } 2558 alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE; 2559 2560 struct EMRSETCOLORSPACE { 2561 EMR emr; 2562 DWORD ihCS; 2563 } 2564 alias EMRSETCOLORSPACE* PEMRSETCOLORSPACE; 2565 alias TypeDef!(EMRSETCOLORSPACE) EMRSELECTCOLORSPACE; 2566 alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE; 2567 alias TypeDef!(EMRSETCOLORSPACE) EMRDELETECOLORSPACE; 2568 alias EMRDELETECOLORSPACE* PEMRDELETECOLORSPACE; 2569 2570 static if (_WIN32_WINNT >= 0x500) { 2571 2572 struct EMREXTESCAPE { 2573 EMR emr; 2574 INT iEscape; 2575 INT cbEscData; 2576 BYTE[1] EscData; 2577 } 2578 alias EMREXTESCAPE* PEMREXTESCAPE; 2579 alias TypeDef!(EMREXTESCAPE) EMRDRAWESCAPE; 2580 alias EMRDRAWESCAPE* PEMRDRAWESCAPE; 2581 2582 struct EMRNAMEDESCAPE { 2583 EMR emr; 2584 INT iEscape; 2585 INT cbDriver; 2586 INT cbEscData; 2587 BYTE[1] EscData; 2588 } 2589 alias EMRNAMEDESCAPE* PEMRNAMEDESCAPE; 2590 2591 struct EMRSETICMPROFILE { 2592 EMR emr; 2593 DWORD dwFlags; 2594 DWORD cbName; 2595 DWORD cbData; 2596 BYTE[1] Data; 2597 } 2598 alias EMRSETICMPROFILE* PEMRSETICMPROFILE; 2599 alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEA; 2600 alias EMRSETICMPROFILEA* PEMRSETICMPROFILEA; 2601 alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEW; 2602 alias EMRSETICMPROFILEW* PEMRSETICMPROFILEW; 2603 2604 struct EMRCREATECOLORSPACEW { 2605 EMR emr; 2606 DWORD ihCS; 2607 LOGCOLORSPACEW lcs; 2608 DWORD dwFlags; 2609 DWORD cbData; 2610 BYTE[1] Data; 2611 } 2612 alias EMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW; 2613 2614 struct EMRCOLORMATCHTOTARGET { 2615 EMR emr; 2616 DWORD dwAction; 2617 DWORD dwFlags; 2618 DWORD cbName; 2619 DWORD cbData; 2620 BYTE[1] Data; 2621 } 2622 alias EMRCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET; 2623 2624 struct EMRCOLORCORRECTPALETTE { 2625 EMR emr; 2626 DWORD ihPalette; 2627 DWORD nFirstEntry; 2628 DWORD nPalEntries; 2629 DWORD nReserved; 2630 } 2631 alias EMRCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE; 2632 2633 struct EMRALPHABLEND { 2634 EMR emr; 2635 RECTL rclBounds; 2636 LONG xDest; 2637 LONG yDest; 2638 LONG cxDest; 2639 LONG cyDest; 2640 DWORD dwRop; 2641 LONG xSrc; 2642 LONG ySrc; 2643 XFORM xformSrc; 2644 COLORREF crBkColorSrc; 2645 DWORD iUsageSrc; 2646 DWORD offBmiSrc; 2647 DWORD cbBmiSrc; 2648 DWORD offBitsSrc; 2649 DWORD cbBitsSrc; 2650 LONG cxSrc; 2651 LONG cySrc; 2652 } 2653 alias EMRALPHABLEND* PEMRALPHABLEND; 2654 2655 struct EMRGRADIENTFILL { 2656 EMR emr; 2657 RECTL rclBounds; 2658 DWORD nVer; 2659 DWORD nTri; 2660 ULONG ulMode; 2661 TRIVERTEX[1] Ver; 2662 } 2663 alias EMRGRADIENTFILL* PEMRGRADIENTFILL; 2664 2665 struct EMRTRANSPARENTBLT { 2666 EMR emr; 2667 RECTL rclBounds; 2668 LONG xDest; 2669 LONG yDest; 2670 LONG cxDest; 2671 LONG cyDest; 2672 DWORD dwRop; 2673 LONG xSrc; 2674 LONG ySrc; 2675 XFORM xformSrc; 2676 COLORREF crBkColorSrc; 2677 DWORD iUsageSrc; 2678 DWORD offBmiSrc; 2679 DWORD cbBmiSrc; 2680 DWORD offBitsSrc; 2681 DWORD cbBitsSrc; 2682 LONG cxSrc; 2683 LONG cySrc; 2684 } 2685 alias EMRTRANSPARENTBLT* PEMRTRANSPARENTBLT; 2686 } 2687 2688 struct EMRCREATEDIBPATTERNBRUSHPT { 2689 EMR emr; 2690 DWORD ihBrush; 2691 DWORD iUsage; 2692 DWORD offBmi; 2693 DWORD cbBmi; 2694 DWORD offBits; 2695 DWORD cbBits; 2696 } 2697 alias EMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT; 2698 2699 struct EMRCREATEMONOBRUSH { 2700 EMR emr; 2701 DWORD ihBrush; 2702 DWORD iUsage; 2703 DWORD offBmi; 2704 DWORD cbBmi; 2705 DWORD offBits; 2706 DWORD cbBits; 2707 } 2708 alias EMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH; 2709 2710 struct PALETTEENTRY { 2711 BYTE peRed; 2712 BYTE peGreen; 2713 BYTE peBlue; 2714 BYTE peFlags; 2715 } 2716 alias PALETTEENTRY* PPALETTEENTRY, LPPALETTEENTRY; 2717 2718 struct LOGPALETTE { 2719 WORD palVersion; 2720 WORD palNumEntries; 2721 PALETTEENTRY[1] palPalEntry; 2722 } 2723 alias LOGPALETTE* PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE; 2724 2725 struct EMRCREATEPALETTE { 2726 EMR emr; 2727 DWORD ihPal; 2728 LOGPALETTE lgpl; 2729 } 2730 alias EMRCREATEPALETTE* PEMRCREATEPALETTE; 2731 2732 struct EMRCREATEPEN { 2733 EMR emr; 2734 DWORD ihPen; 2735 LOGPEN lopn; 2736 } 2737 alias EMRCREATEPEN* PEMRCREATEPEN; 2738 2739 struct EMRELLIPSE { 2740 EMR emr; 2741 RECTL rclBox; 2742 } 2743 alias EMRELLIPSE* PEMRELLIPSE; 2744 2745 alias TypeDef!(EMRELLIPSE) EMRRECTANGLE; 2746 alias EMRRECTANGLE* PEMRRECTANGLE; 2747 2748 struct EMREOF { 2749 EMR emr; 2750 DWORD nPalEntries; 2751 DWORD offPalEntries; 2752 DWORD nSizeLast; 2753 } 2754 alias EMREOF* PEMREOF; 2755 2756 struct EMREXCLUDECLIPRECT { 2757 EMR emr; 2758 RECTL rclClip; 2759 } 2760 alias EMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT; 2761 alias TypeDef!(EMREXCLUDECLIPRECT) EMRINTERSECTCLIPRECT; 2762 alias EMRINTERSECTCLIPRECT* PEMRINTERSECTCLIPRECT; 2763 2764 struct EMREXTCREATEFONTINDIRECTW { 2765 EMR emr; 2766 DWORD ihFont; 2767 EXTLOGFONTW elfw; 2768 } 2769 alias EMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW; 2770 2771 struct EXTLOGPEN { 2772 UINT elpPenStyle; 2773 UINT elpWidth; 2774 UINT elpBrushStyle; 2775 COLORREF elpColor; 2776 ULONG_PTR elpHatch; 2777 DWORD elpNumEntries; 2778 DWORD[1] elpStyleEntry; 2779 } 2780 alias EXTLOGPEN* PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN; 2781 2782 struct EXTLOGPEN32 { 2783 UINT elpPenStyle; 2784 UINT elpWidth; 2785 UINT elpBrushStyle; 2786 COLORREF elpColor; 2787 ULONG elpHatch; 2788 DWORD elpNumEntries; 2789 DWORD[1] elpStyleEntry; 2790 } 2791 alias EXTLOGPEN32* PEXTLOGPEN32, NPEXTLOGPEN32, LPEXTLOGPEN32; 2792 2793 struct EMREXTCREATEPEN { 2794 EMR emr; 2795 DWORD ihPen; 2796 DWORD offBmi; 2797 DWORD cbBmi; 2798 DWORD offBits; 2799 DWORD cbBits; 2800 EXTLOGPEN32 elp; 2801 } 2802 alias EMREXTCREATEPEN* PEMREXTCREATEPEN; 2803 2804 struct EMREXTFLOODFILL { 2805 EMR emr; 2806 POINTL ptlStart; 2807 COLORREF crColor; 2808 DWORD iMode; 2809 } 2810 alias EMREXTFLOODFILL* PEMREXTFLOODFILL; 2811 2812 struct EMREXTSELECTCLIPRGN { 2813 EMR emr; 2814 DWORD cbRgnData; 2815 DWORD iMode; 2816 BYTE [1]RgnData; 2817 } 2818 alias EMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN; 2819 2820 struct EMRTEXT { 2821 POINTL ptlReference; 2822 DWORD nChars; 2823 DWORD offString; 2824 DWORD fOptions; 2825 RECTL rcl; 2826 DWORD offDx; 2827 } 2828 alias EMRTEXT* PEMRTEXT; 2829 2830 struct EMREXTTEXTOUTA { 2831 EMR emr; 2832 RECTL rclBounds; 2833 DWORD iGraphicsMode; 2834 FLOAT exScale; 2835 FLOAT eyScale; 2836 EMRTEXT emrtext; 2837 } 2838 alias EMREXTTEXTOUTA* PEMREXTTEXTOUTA; 2839 alias TypeDef!(EMREXTTEXTOUTA) EMREXTTEXTOUTW; 2840 alias EMREXTTEXTOUTW* PEMREXTTEXTOUTW; 2841 2842 struct EMRFILLPATH { 2843 EMR emr; 2844 RECTL rclBounds; 2845 } 2846 alias EMRFILLPATH* PEMRFILLPATH; 2847 2848 alias TypeDef!(EMRFILLPATH) EMRSTROKEANDFILLPATH; 2849 alias EMRSTROKEANDFILLPATH* PEMRSTROKEANDFILLPATH; 2850 2851 alias TypeDef!(EMRFILLPATH) EMRSTROKEPATH; 2852 alias EMRSTROKEPATH* PEMRSTROKEPATH; 2853 2854 struct EMRFILLRGN { 2855 EMR emr; 2856 RECTL rclBounds; 2857 DWORD cbRgnData; 2858 DWORD ihBrush; 2859 BYTE[1] RgnData; 2860 } 2861 alias EMRFILLRGN* PEMRFILLRGN; 2862 2863 struct EMRFORMAT { 2864 DWORD dSignature; 2865 DWORD nVersion; 2866 DWORD cbData; 2867 DWORD offData; 2868 } 2869 alias EMRFORMAT* PEMRFORMAT; 2870 2871 struct EMRFRAMERGN { 2872 EMR emr; 2873 RECTL rclBounds; 2874 DWORD cbRgnData; 2875 DWORD ihBrush; 2876 SIZEL szlStroke; 2877 BYTE[1] RgnData; 2878 } 2879 alias EMRFRAMERGN* PEMRFRAMERGN; 2880 2881 struct EMRGDICOMMENT { 2882 EMR emr; 2883 DWORD cbData; 2884 BYTE[1] Data; 2885 } 2886 alias EMRGDICOMMENT* PEMRGDICOMMENT; 2887 2888 struct EMRINVERTRGN { 2889 EMR emr; 2890 RECTL rclBounds; 2891 DWORD cbRgnData; 2892 BYTE[1] RgnData; 2893 } 2894 alias EMRINVERTRGN* PEMRINVERTRGN; 2895 alias TypeDef!(EMRINVERTRGN) EMRPAINTRGN; 2896 alias EMRPAINTRGN* PEMRPAINTRGN; 2897 2898 struct EMRLINETO { 2899 EMR emr; 2900 POINTL ptl; 2901 } 2902 alias EMRLINETO* PEMRLINETO; 2903 alias TypeDef!(EMRLINETO) EMRMOVETOEX; 2904 alias EMRMOVETOEX* PEMRMOVETOEX; 2905 2906 struct EMRMASKBLT { 2907 EMR emr; 2908 RECTL rclBounds; 2909 LONG xDest; 2910 LONG yDest; 2911 LONG cxDest; 2912 LONG cyDest; 2913 DWORD dwRop; 2914 LONG xSrc; 2915 LONG ySrc; 2916 XFORM xformSrc; 2917 COLORREF crBkColorSrc; 2918 DWORD iUsageSrc; 2919 DWORD offBmiSrc; 2920 DWORD cbBmiSrc; 2921 DWORD offBitsSrc; 2922 DWORD cbBitsSrc; 2923 LONG xMask; 2924 LONG yMask; 2925 DWORD iUsageMask; 2926 DWORD offBmiMask; 2927 DWORD cbBmiMask; 2928 DWORD offBitsMask; 2929 DWORD cbBitsMask; 2930 } 2931 alias EMRMASKBLT* PEMRMASKBLT; 2932 2933 struct EMRMODIFYWORLDTRANSFORM { 2934 EMR emr; 2935 XFORM xform; 2936 DWORD iMode; 2937 } 2938 alias EMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM; 2939 2940 struct EMROFFSETCLIPRGN { 2941 EMR emr; 2942 POINTL ptlOffset; 2943 } 2944 alias EMROFFSETCLIPRGN* PEMROFFSETCLIPRGN; 2945 2946 struct EMRPLGBLT { 2947 EMR emr; 2948 RECTL rclBounds; 2949 POINTL[3] aptlDest; 2950 LONG xSrc; 2951 LONG ySrc; 2952 LONG cxSrc; 2953 LONG cySrc; 2954 XFORM xformSrc; 2955 COLORREF crBkColorSrc; 2956 DWORD iUsageSrc; 2957 DWORD offBmiSrc; 2958 DWORD cbBmiSrc; 2959 DWORD offBitsSrc; 2960 DWORD cbBitsSrc; 2961 LONG xMask; 2962 LONG yMask; 2963 DWORD iUsageMask; 2964 DWORD offBmiMask; 2965 DWORD cbBmiMask; 2966 DWORD offBitsMask; 2967 DWORD cbBitsMask; 2968 } 2969 alias EMRPLGBLT* PEMRPLGBLT; 2970 2971 struct EMRPOLYDRAW { 2972 EMR emr; 2973 RECTL rclBounds; 2974 DWORD cptl; 2975 POINTL[1] aptl; 2976 BYTE[1] abTypes; 2977 } 2978 alias EMRPOLYDRAW* PEMRPOLYDRAW; 2979 2980 struct EMRPOLYDRAW16 { 2981 EMR emr; 2982 RECTL rclBounds; 2983 DWORD cpts; 2984 POINTS[1] apts; 2985 BYTE[1] abTypes; 2986 } 2987 alias EMRPOLYDRAW16* PEMRPOLYDRAW16; 2988 2989 struct EMRPOLYLINE { 2990 EMR emr; 2991 RECTL rclBounds; 2992 DWORD cptl; 2993 POINTL[1] aptl; 2994 } 2995 alias EMRPOLYLINE* PEMRPOLYLINE; 2996 alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIER; 2997 alias EMRPOLYBEZIER* PEMRPOLYBEZIER; 2998 alias TypeDef!(EMRPOLYLINE) EMRPOLYGON; 2999 alias EMRPOLYGON* PEMRPOLYGON; 3000 alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIERTO; 3001 alias EMRPOLYBEZIERTO* PEMRPOLYBEZIERTO; 3002 alias TypeDef!(EMRPOLYLINE) EMRPOLYLINETO; 3003 alias EMRPOLYLINETO* PEMRPOLYLINETO; 3004 3005 struct EMRPOLYLINE16 { 3006 EMR emr; 3007 RECTL rclBounds; 3008 DWORD cpts; 3009 POINTS[1] apts; 3010 } 3011 alias EMRPOLYLINE16* PEMRPOLYLINE16; 3012 alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIER16; 3013 alias EMRPOLYBEZIER16* PEMRPOLYBEZIER16; 3014 alias TypeDef!(EMRPOLYLINE16) EMRPOLYGON16; 3015 alias EMRPOLYGON16* PEMRPOLYGON16; 3016 alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIERTO16; 3017 alias EMRPOLYBEZIERTO16* PEMRPOLYBEZIERTO16; 3018 alias TypeDef!(EMRPOLYLINE16) EMRPOLYLINETO16; 3019 alias EMRPOLYLINETO16* PEMRPOLYLINETO16; 3020 3021 struct EMRPOLYPOLYLINE { 3022 EMR emr; 3023 RECTL rclBounds; 3024 DWORD nPolys; 3025 DWORD cptl; 3026 DWORD[1] aPolyCounts; 3027 POINTL[1] aptl; 3028 } 3029 alias EMRPOLYPOLYLINE* PEMRPOLYPOLYLINE; 3030 alias TypeDef!(EMRPOLYPOLYLINE) EMRPOLYPOLYGON; 3031 alias EMRPOLYPOLYGON* PEMRPOLYPOLYGON; 3032 3033 struct EMRPOLYPOLYLINE16 { 3034 EMR emr; 3035 RECTL rclBounds; 3036 DWORD nPolys; 3037 DWORD cpts; 3038 DWORD[1] aPolyCounts; 3039 POINTS[1] apts; 3040 } 3041 alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16; 3042 alias TypeDef!(EMRPOLYPOLYLINE16) EMRPOLYPOLYGON16; 3043 alias EMRPOLYPOLYGON16* PEMRPOLYPOLYGON16; 3044 3045 struct EMRPOLYTEXTOUTA { 3046 EMR emr; 3047 RECTL rclBounds; 3048 DWORD iGraphicsMode; 3049 FLOAT exScale; 3050 FLOAT eyScale; 3051 LONG cStrings; 3052 EMRTEXT[1] aemrtext; 3053 } 3054 alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA; 3055 alias TypeDef!(EMRPOLYTEXTOUTA) EMRPOLYTEXTOUTW; 3056 alias EMRPOLYTEXTOUTW* PEMRPOLYTEXTOUTW; 3057 3058 struct EMRRESIZEPALETTE { 3059 EMR emr; 3060 DWORD ihPal; 3061 DWORD cEntries; 3062 } 3063 alias EMRRESIZEPALETTE* PEMRRESIZEPALETTE; 3064 3065 struct EMRRESTOREDC { 3066 EMR emr; 3067 LONG iRelative; 3068 } 3069 alias EMRRESTOREDC* PEMRRESTOREDC; 3070 3071 struct EMRROUNDRECT { 3072 EMR emr; 3073 RECTL rclBox; 3074 SIZEL szlCorner; 3075 } 3076 alias EMRROUNDRECT* PEMRROUNDRECT; 3077 3078 struct EMRSCALEVIEWPORTEXTEX { 3079 EMR emr; 3080 LONG xNum; 3081 LONG xDenom; 3082 LONG yNum; 3083 LONG yDenom; 3084 } 3085 alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX; 3086 alias TypeDef!(EMRSCALEVIEWPORTEXTEX) EMRSCALEWINDOWEXTEX; 3087 alias EMRSCALEWINDOWEXTEX* PEMRSCALEWINDOWEXTEX; 3088 3089 struct EMRSELECTOBJECT { 3090 EMR emr; 3091 DWORD ihObject; 3092 } 3093 alias EMRSELECTOBJECT* PEMRSELECTOBJECT; 3094 alias TypeDef!(EMRSELECTOBJECT) EMRDELETEOBJECT; 3095 alias EMRDELETEOBJECT* PEMRDELETEOBJECT; 3096 3097 struct EMRSELECTPALETTE { 3098 EMR emr; 3099 DWORD ihPal; 3100 } 3101 alias EMRSELECTPALETTE* PEMRSELECTPALETTE; 3102 3103 struct EMRSETARCDIRECTION { 3104 EMR emr; 3105 DWORD iArcDirection; 3106 } 3107 alias EMRSETARCDIRECTION* PEMRSETARCDIRECTION; 3108 3109 struct EMRSETTEXTCOLOR { 3110 EMR emr; 3111 COLORREF crColor; 3112 } 3113 alias EMRSETTEXTCOLOR* PEMRSETTEXTCOLOR; 3114 alias TypeDef!(EMRSETTEXTCOLOR) EMRSETBKCOLOR; 3115 alias EMRSETBKCOLOR* PEMRSETBKCOLOR; 3116 3117 struct EMRSETCOLORADJUSTMENT { 3118 EMR emr; 3119 COLORADJUSTMENT ColorAdjustment; 3120 } 3121 alias EMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT; 3122 3123 struct EMRSETDIBITSTODEVICE { 3124 EMR emr; 3125 RECTL rclBounds; 3126 LONG xDest; 3127 LONG yDest; 3128 LONG xSrc; 3129 LONG ySrc; 3130 LONG cxSrc; 3131 LONG cySrc; 3132 DWORD offBmiSrc; 3133 DWORD cbBmiSrc; 3134 DWORD offBitsSrc; 3135 DWORD cbBitsSrc; 3136 DWORD iUsageSrc; 3137 DWORD iStartScan; 3138 DWORD cScans; 3139 } 3140 alias EMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE; 3141 3142 struct EMRSETMAPPERFLAGS { 3143 EMR emr; 3144 DWORD dwFlags; 3145 } 3146 alias EMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS; 3147 3148 struct EMRSETMITERLIMIT { 3149 EMR emr; 3150 FLOAT eMiterLimit; 3151 } 3152 alias EMRSETMITERLIMIT* PEMRSETMITERLIMIT; 3153 3154 struct EMRSETPALETTEENTRIES { 3155 EMR emr; 3156 DWORD ihPal; 3157 DWORD iStart; 3158 DWORD cEntries; 3159 PALETTEENTRY[1] aPalEntries; 3160 } 3161 alias EMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES; 3162 3163 struct EMRSETPIXELV { 3164 EMR emr; 3165 POINTL ptlPixel; 3166 COLORREF crColor; 3167 } 3168 alias EMRSETPIXELV* PEMRSETPIXELV; 3169 3170 struct EMRSETVIEWPORTEXTEX { 3171 EMR emr; 3172 SIZEL szlExtent; 3173 } 3174 alias EMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX; 3175 alias TypeDef!(EMRSETVIEWPORTEXTEX) EMRSETWINDOWEXTEX; 3176 alias EMRSETWINDOWEXTEX* PEMRSETWINDOWEXTEX; 3177 3178 struct EMRSETVIEWPORTORGEX { 3179 EMR emr; 3180 POINTL ptlOrigin; 3181 } 3182 alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX; 3183 alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETWINDOWORGEX; 3184 alias EMRSETWINDOWORGEX* PEMRSETWINDOWORGEX; 3185 alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETBRUSHORGEX; 3186 alias EMRSETBRUSHORGEX* PEMRSETBRUSHORGEX; 3187 3188 struct EMRSETWORLDTRANSFORM { 3189 EMR emr; 3190 XFORM xform; 3191 } 3192 alias EMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM; 3193 3194 struct EMRSTRETCHBLT { 3195 EMR emr; 3196 RECTL rclBounds; 3197 LONG xDest; 3198 LONG yDest; 3199 LONG cxDest; 3200 LONG cyDest; 3201 DWORD dwRop; 3202 LONG xSrc; 3203 LONG ySrc; 3204 XFORM xformSrc; 3205 COLORREF crBkColorSrc; 3206 DWORD iUsageSrc; 3207 DWORD offBmiSrc; 3208 DWORD cbBmiSrc; 3209 DWORD offBitsSrc; 3210 DWORD cbBitsSrc; 3211 LONG cxSrc; 3212 LONG cySrc; 3213 } 3214 alias EMRSTRETCHBLT* PEMRSTRETCHBLT; 3215 3216 struct EMRSTRETCHDIBITS { 3217 EMR emr; 3218 RECTL rclBounds; 3219 LONG xDest; 3220 LONG yDest; 3221 LONG xSrc; 3222 LONG ySrc; 3223 LONG cxSrc; 3224 LONG cySrc; 3225 DWORD offBmiSrc; 3226 DWORD cbBmiSrc; 3227 DWORD offBitsSrc; 3228 DWORD cbBitsSrc; 3229 DWORD iUsageSrc; 3230 DWORD dwRop; 3231 LONG cxDest; 3232 LONG cyDest; 3233 } 3234 alias EMRSTRETCHDIBITS* PEMRSTRETCHDIBITS; 3235 3236 struct EMRABORTPATH { 3237 EMR emr; 3238 } 3239 alias EMRABORTPATH* PEMRABORTPATH; 3240 alias TypeDef!(EMRABORTPATH) EMRBEGINPATH; 3241 alias EMRBEGINPATH* PEMRBEGINPATH; 3242 alias TypeDef!(EMRABORTPATH) EMRENDPATH; 3243 alias EMRENDPATH* PEMRENDPATH; 3244 alias TypeDef!(EMRABORTPATH) EMRCLOSEFIGURE; 3245 alias EMRCLOSEFIGURE* PEMRCLOSEFIGURE; 3246 alias TypeDef!(EMRABORTPATH) EMRFLATTENPATH; 3247 alias EMRFLATTENPATH* PEMRFLATTENPATH; 3248 alias TypeDef!(EMRABORTPATH) EMRWIDENPATH; 3249 alias EMRWIDENPATH* PEMRWIDENPATH; 3250 alias TypeDef!(EMRABORTPATH) EMRSETMETARGN; 3251 alias EMRSETMETARGN* PEMRSETMETARGN; 3252 alias TypeDef!(EMRABORTPATH) EMRSAVEDC; 3253 alias EMRSAVEDC* PEMRSAVEDC; 3254 alias TypeDef!(EMRABORTPATH) EMRREALIZEPALETTE; 3255 alias EMRREALIZEPALETTE* PEMRREALIZEPALETTE; 3256 3257 struct EMRSELECTCLIPPATH { 3258 EMR emr; 3259 DWORD iMode; 3260 } 3261 alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH; 3262 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETBKMODE; 3263 alias EMRSETBKMODE* PEMRSETBKMODE; 3264 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETMAPMODE; 3265 alias EMRSETMAPMODE* PEMRSETMAPMODE; 3266 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETPOLYFILLMODE; 3267 alias EMRSETPOLYFILLMODE* PEMRSETPOLYFILLMODE; 3268 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETROP2; 3269 alias EMRSETROP2* PEMRSETROP2; 3270 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETSTRETCHBLTMODE; 3271 alias EMRSETSTRETCHBLTMODE* PEMRSETSTRETCHBLTMODE; 3272 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETICMMODE; 3273 alias EMRSETICMMODE* PEMRSETICMMODE; 3274 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETTEXTALIGN; 3275 alias EMRSETTEXTALIGN* PEMRSETTEXTALIGN; 3276 alias TypeDef!(EMRSELECTCLIPPATH) EMRENABLEICM; 3277 alias EMRENABLEICM* PEMRENABLEICM; 3278 static if (_WIN32_WINNT >= 0x500) { 3279 alias TypeDef!(EMRSELECTCLIPPATH) EMRSETLAYOUT; 3280 alias EMRSETLAYOUT* PEMRSETLAYOUT; 3281 } 3282 3283 align(2): 3284 struct METAHEADER { 3285 align(2): 3286 WORD mtType; 3287 WORD mtHeaderSize; 3288 WORD mtVersion; 3289 DWORD mtSize; 3290 WORD mtNoObjects; 3291 DWORD mtMaxRecord; 3292 WORD mtNoParameters; 3293 } 3294 alias METAHEADER* PMETAHEADER; 3295 alias METAHEADER* LPMETAHEADER; 3296 3297 align: 3298 3299 struct ENHMETAHEADER { 3300 DWORD iType = EMR_HEADER; 3301 DWORD nSize = ENHMETAHEADER.sizeof; 3302 RECTL rclBounds; 3303 RECTL rclFrame; 3304 DWORD dSignature = ENHMETA_SIGNATURE; 3305 DWORD nVersion; 3306 DWORD nBytes; 3307 DWORD nRecords; 3308 WORD nHandles; 3309 WORD sReserved; 3310 DWORD nDescription; 3311 DWORD offDescription; 3312 DWORD nPalEntries; 3313 SIZEL szlDevice; 3314 SIZEL szlMillimeters; 3315 DWORD cbPixelFormat; 3316 DWORD offPixelFormat; 3317 DWORD bOpenGL; 3318 static if (_WIN32_WINNT >= 0x500) { 3319 SIZEL szlMicrometers; 3320 } 3321 } 3322 alias ENHMETAHEADER* PENHMETAHEADER, LPENHMETAHEADER; 3323 3324 struct METARECORD { 3325 DWORD rdSize; 3326 WORD rdFunction; 3327 WORD[1] rdParm; 3328 } 3329 alias METARECORD* PMETARECORD; 3330 alias METARECORD* LPMETARECORD; 3331 3332 struct ENHMETARECORD { 3333 DWORD iType; 3334 DWORD nSize; 3335 DWORD[1] dParm; 3336 } 3337 alias ENHMETARECORD* PENHMETARECORD, LPENHMETARECORD; 3338 3339 // --- 3340 3341 struct HANDLETABLE { 3342 HGDIOBJ[1] objectHandle; 3343 } 3344 alias HANDLETABLE* PHANDLETABLE, LPHANDLETABLE; 3345 3346 struct TEXTMETRICA { 3347 LONG tmHeight; 3348 LONG tmAscent; 3349 LONG tmDescent; 3350 LONG tmInternalLeading; 3351 LONG tmExternalLeading; 3352 LONG tmAveCharWidth; 3353 LONG tmMaxCharWidth; 3354 LONG tmWeight; 3355 LONG tmOverhang; 3356 LONG tmDigitizedAspectX; 3357 LONG tmDigitizedAspectY; 3358 BYTE tmFirstChar; 3359 BYTE tmLastChar; 3360 BYTE tmDefaultChar; 3361 BYTE tmBreakChar; 3362 BYTE tmItalic; 3363 BYTE tmUnderlined; 3364 BYTE tmStruckOut; 3365 BYTE tmPitchAndFamily; 3366 BYTE tmCharSet; 3367 } 3368 alias TEXTMETRICA* PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA; 3369 3370 struct TEXTMETRICW { 3371 LONG tmHeight; 3372 LONG tmAscent; 3373 LONG tmDescent; 3374 LONG tmInternalLeading; 3375 LONG tmExternalLeading; 3376 LONG tmAveCharWidth; 3377 LONG tmMaxCharWidth; 3378 LONG tmWeight; 3379 LONG tmOverhang; 3380 LONG tmDigitizedAspectX; 3381 LONG tmDigitizedAspectY; 3382 WCHAR tmFirstChar = 0; 3383 WCHAR tmLastChar = 0; 3384 WCHAR tmDefaultChar = 0; 3385 WCHAR tmBreakChar = 0; 3386 BYTE tmItalic; 3387 BYTE tmUnderlined; 3388 BYTE tmStruckOut; 3389 BYTE tmPitchAndFamily; 3390 BYTE tmCharSet; 3391 } 3392 alias TEXTMETRICW* PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW; 3393 3394 struct RGNDATAHEADER { 3395 DWORD dwSize; 3396 DWORD iType; 3397 DWORD nCount; 3398 DWORD nRgnSize; 3399 RECT rcBound; 3400 } 3401 alias RGNDATAHEADER* PRGNDATAHEADER; 3402 3403 struct RGNDATA { 3404 RGNDATAHEADER rdh; 3405 char[1] Buffer = 0; 3406 } 3407 alias RGNDATA* PRGNDATA, NPRGNDATA, LPRGNDATA; 3408 3409 /* for GetRandomRgn */ 3410 enum SYSRGN=4; 3411 struct GCP_RESULTSA { 3412 DWORD lStructSize; 3413 LPSTR lpOutString; 3414 UINT* lpOrder; 3415 INT* lpDx; 3416 INT* lpCaretPos; 3417 LPSTR lpClass; 3418 LPWSTR lpGlyphs; 3419 UINT nGlyphs; 3420 UINT nMaxFit; 3421 } 3422 alias GCP_RESULTSA* LPGCP_RESULTSA; 3423 3424 struct GCP_RESULTSW { 3425 DWORD lStructSize; 3426 LPWSTR lpOutString; 3427 UINT* lpOrder; 3428 INT* lpDx; 3429 INT* lpCaretPos; 3430 LPWSTR lpClass; 3431 LPWSTR lpGlyphs; 3432 UINT nGlyphs; 3433 UINT nMaxFit; 3434 } 3435 alias GCP_RESULTSW* LPGCP_RESULTSW; 3436 3437 struct GLYPHMETRICS { 3438 UINT gmBlackBoxX; 3439 UINT gmBlackBoxY; 3440 POINT gmptGlyphOrigin; 3441 short gmCellIncX; 3442 short gmCellIncY; 3443 } 3444 alias GLYPHMETRICS* LPGLYPHMETRICS; 3445 3446 static if (_WIN32_WINNT >= 0x500) { 3447 struct WCRANGE { 3448 WCHAR wcLow = 0; 3449 USHORT cGlyphs; 3450 } 3451 alias WCRANGE* PWCRANGE, LPWCRANGE; 3452 3453 struct GLYPHSET { 3454 DWORD cbThis; 3455 DWORD flAccel; 3456 DWORD cGlyphsSupported; 3457 DWORD cRanges; 3458 WCRANGE[1] ranges; 3459 } 3460 alias GLYPHSET* PGLYPHSET, LPGLYPHSET; 3461 3462 enum DWORD GS_8BIT_INDICES = 0x00000001; 3463 } 3464 3465 struct KERNINGPAIR { 3466 WORD wFirst; 3467 WORD wSecond; 3468 int iKernAmount; 3469 } 3470 alias KERNINGPAIR* LPKERNINGPAIR; 3471 3472 struct FIXED { 3473 WORD fract; 3474 short value; 3475 } 3476 3477 struct MAT2 { 3478 FIXED eM11; 3479 FIXED eM12; 3480 FIXED eM21; 3481 FIXED eM22; 3482 } 3483 alias MAT2* LPMAT2; 3484 3485 struct OUTLINETEXTMETRICA { 3486 UINT otmSize; 3487 TEXTMETRICA otmTextMetrics; 3488 BYTE otmFiller; 3489 PANOSE otmPanoseNumber; 3490 UINT otmfsSelection; 3491 UINT otmfsType; 3492 int otmsCharSlopeRise; 3493 int otmsCharSlopeRun; 3494 int otmItalicAngle; 3495 UINT otmEMSquare; 3496 int otmAscent; 3497 int otmDescent; 3498 UINT otmLineGap; 3499 UINT otmsCapEmHeight; 3500 UINT otmsXHeight; 3501 RECT otmrcFontBox; 3502 int otmMacAscent; 3503 int otmMacDescent; 3504 UINT otmMacLineGap; 3505 UINT otmusMinimumPPEM; 3506 POINT otmptSubscriptSize; 3507 POINT otmptSubscriptOffset; 3508 POINT otmptSuperscriptSize; 3509 POINT otmptSuperscriptOffset; 3510 UINT otmsStrikeoutSize; 3511 int otmsStrikeoutPosition; 3512 int otmsUnderscoreSize; 3513 int otmsUnderscorePosition; 3514 PSTR otmpFamilyName; 3515 PSTR otmpFaceName; 3516 PSTR otmpStyleName; 3517 PSTR otmpFullName; 3518 } 3519 alias OUTLINETEXTMETRICA* POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA; 3520 3521 struct OUTLINETEXTMETRICW { 3522 UINT otmSize; 3523 TEXTMETRICW otmTextMetrics; 3524 BYTE otmFiller; 3525 PANOSE otmPanoseNumber; 3526 UINT otmfsSelection; 3527 UINT otmfsType; 3528 int otmsCharSlopeRise; 3529 int otmsCharSlopeRun; 3530 int otmItalicAngle; 3531 UINT otmEMSquare; 3532 int otmAscent; 3533 int otmDescent; 3534 UINT otmLineGap; 3535 UINT otmsCapEmHeight; 3536 UINT otmsXHeight; 3537 RECT otmrcFontBox; 3538 int otmMacAscent; 3539 int otmMacDescent; 3540 UINT otmMacLineGap; 3541 UINT otmusMinimumPPEM; 3542 POINT otmptSubscriptSize; 3543 POINT otmptSubscriptOffset; 3544 POINT otmptSuperscriptSize; 3545 POINT otmptSuperscriptOffset; 3546 UINT otmsStrikeoutSize; 3547 int otmsStrikeoutPosition; 3548 int otmsUnderscoreSize; 3549 int otmsUnderscorePosition; 3550 PSTR otmpFamilyName; 3551 PSTR otmpFaceName; 3552 PSTR otmpStyleName; 3553 PSTR otmpFullName; 3554 } 3555 alias OUTLINETEXTMETRICW* POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW; 3556 3557 struct RASTERIZER_STATUS { 3558 short nSize; 3559 short wFlags; 3560 short nLanguageID; 3561 } 3562 alias RASTERIZER_STATUS* LPRASTERIZER_STATUS; 3563 3564 struct POLYTEXTA { 3565 int x; 3566 int y; 3567 UINT n; 3568 LPCSTR lpstr; 3569 UINT uiFlags; 3570 RECT rcl; 3571 int* pdx; 3572 } 3573 alias POLYTEXTA* PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA; 3574 3575 struct POLYTEXTW { 3576 int x; 3577 int y; 3578 UINT n; 3579 LPCWSTR lpstr; 3580 UINT uiFlags; 3581 RECT rcl; 3582 int* pdx; 3583 } 3584 alias POLYTEXTW* PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW; 3585 3586 struct PIXELFORMATDESCRIPTOR { 3587 WORD nSize; 3588 WORD nVersion; 3589 DWORD dwFlags; 3590 BYTE iPixelType; 3591 BYTE cColorBits; 3592 BYTE cRedBits; 3593 BYTE cRedShift; 3594 BYTE cGreenBits; 3595 BYTE cGreenShift; 3596 BYTE cBlueBits; 3597 BYTE cBlueShift; 3598 BYTE cAlphaBits; 3599 BYTE cAlphaShift; 3600 BYTE cAccumBits; 3601 BYTE cAccumRedBits; 3602 BYTE cAccumGreenBits; 3603 BYTE cAccumBlueBits; 3604 BYTE cAccumAlphaBits; 3605 BYTE cDepthBits; 3606 BYTE cStencilBits; 3607 BYTE cAuxBuffers; 3608 BYTE iLayerType; 3609 BYTE bReserved; 3610 DWORD dwLayerMask; 3611 DWORD dwVisibleMask; 3612 DWORD dwDamageMask; 3613 } 3614 alias PIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR; 3615 3616 struct METAFILEPICT { 3617 LONG mm; 3618 LONG xExt; 3619 LONG yExt; 3620 HMETAFILE hMF; 3621 } 3622 alias METAFILEPICT* LPMETAFILEPICT; 3623 3624 struct LOCALESIGNATURE { 3625 DWORD[4] lsUsb; 3626 DWORD[2] lsCsbDefault; 3627 DWORD[2] lsCsbSupported; 3628 } 3629 alias LOCALESIGNATURE* PLOCALESIGNATURE, LPLOCALESIGNATURE; 3630 3631 alias LONG LCSTYPE; /* What this for? */ 3632 3633 align(4): 3634 struct NEWTEXTMETRICA { 3635 LONG tmHeight; 3636 LONG tmAscent; 3637 LONG tmDescent; 3638 LONG tmInternalLeading; 3639 LONG tmExternalLeading; 3640 LONG tmAveCharWidth; 3641 LONG tmMaxCharWidth; 3642 LONG tmWeight; 3643 LONG tmOverhang; 3644 LONG tmDigitizedAspectX; 3645 LONG tmDigitizedAspectY; 3646 BYTE tmFirstChar; 3647 BYTE tmLastChar; 3648 BYTE tmDefaultChar; 3649 BYTE tmBreakChar; 3650 BYTE tmItalic; 3651 BYTE tmUnderlined; 3652 BYTE tmStruckOut; 3653 BYTE tmPitchAndFamily; 3654 BYTE tmCharSet; 3655 DWORD ntmFlags; 3656 UINT ntmSizeEM; 3657 UINT ntmCellHeight; 3658 UINT ntmAvgWidth; 3659 } 3660 alias NEWTEXTMETRICA* PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA; 3661 3662 struct NEWTEXTMETRICW { 3663 LONG tmHeight; 3664 LONG tmAscent; 3665 LONG tmDescent; 3666 LONG tmInternalLeading; 3667 LONG tmExternalLeading; 3668 LONG tmAveCharWidth; 3669 LONG tmMaxCharWidth; 3670 LONG tmWeight; 3671 LONG tmOverhang; 3672 LONG tmDigitizedAspectX; 3673 LONG tmDigitizedAspectY; 3674 WCHAR tmFirstChar = 0; 3675 WCHAR tmLastChar = 0; 3676 WCHAR tmDefaultChar = 0; 3677 WCHAR tmBreakChar = 0; 3678 BYTE tmItalic; 3679 BYTE tmUnderlined; 3680 BYTE tmStruckOut; 3681 BYTE tmPitchAndFamily; 3682 BYTE tmCharSet; 3683 DWORD ntmFlags; 3684 UINT ntmSizeEM; 3685 UINT ntmCellHeight; 3686 UINT ntmAvgWidth; 3687 } 3688 alias NEWTEXTMETRICW* PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW; 3689 3690 align: 3691 struct NEWTEXTMETRICEXA { 3692 NEWTEXTMETRICA ntmTm; 3693 FONTSIGNATURE ntmFontSig; 3694 } 3695 3696 struct NEWTEXTMETRICEXW { 3697 NEWTEXTMETRICW ntmTm; 3698 FONTSIGNATURE ntmFontSig; 3699 } 3700 3701 struct PELARRAY { 3702 LONG paXCount; 3703 LONG paYCount; 3704 LONG paXExt; 3705 LONG paYExt; 3706 BYTE paRGBs; 3707 } 3708 alias PELARRAY* PPELARRAY, NPPELARRAY, LPPELARRAY; 3709 3710 struct ENUMLOGFONTA { 3711 LOGFONTA elfLogFont; 3712 BYTE[LF_FULLFACESIZE] elfFullName; 3713 BYTE[LF_FACESIZE] elfStyle; 3714 } 3715 alias ENUMLOGFONTA* LPENUMLOGFONTA; 3716 3717 struct ENUMLOGFONTW { 3718 LOGFONTW elfLogFont; 3719 WCHAR[LF_FULLFACESIZE] elfFullName = 0; 3720 WCHAR[LF_FACESIZE] elfStyle = 0; 3721 } 3722 alias ENUMLOGFONTW* LPENUMLOGFONTW; 3723 3724 struct ENUMLOGFONTEXA { 3725 LOGFONTA elfLogFont; 3726 BYTE[LF_FULLFACESIZE] elfFullName; 3727 BYTE[LF_FACESIZE] elfStyle; 3728 BYTE[LF_FACESIZE] elfScript; 3729 } 3730 alias ENUMLOGFONTEXA* LPENUMLOGFONTEXA; 3731 3732 struct ENUMLOGFONTEXW { 3733 LOGFONTW elfLogFont; 3734 WCHAR[LF_FULLFACESIZE] elfFullName = 0; 3735 WCHAR[LF_FACESIZE] elfStyle = 0; 3736 WCHAR[LF_FACESIZE] elfScript = 0; 3737 } 3738 alias ENUMLOGFONTEXW* LPENUMLOGFONTEXW; 3739 3740 struct POINTFX { 3741 FIXED x; 3742 FIXED y; 3743 } 3744 alias POINTFX* LPPOINTFX; 3745 3746 struct TTPOLYCURVE { 3747 WORD wType; 3748 WORD cpfx; 3749 POINTFX[1] apfx; 3750 } 3751 alias TTPOLYCURVE* LPTTPOLYCURVE; 3752 3753 struct TTPOLYGONHEADER { 3754 DWORD cb; 3755 DWORD dwType; 3756 POINTFX pfxStart; 3757 } 3758 alias TTPOLYGONHEADER* LPTTPOLYGONHEADER; 3759 3760 struct POINTFLOAT { 3761 FLOAT x; 3762 FLOAT y; 3763 } 3764 alias POINTFLOAT* PPOINTFLOAT; 3765 3766 struct GLYPHMETRICSFLOAT { 3767 FLOAT gmfBlackBoxX; 3768 FLOAT gmfBlackBoxY; 3769 POINTFLOAT gmfptGlyphOrigin; 3770 FLOAT gmfCellIncX; 3771 FLOAT gmfCellIncY; 3772 } 3773 alias GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT; 3774 3775 struct LAYERPLANEDESCRIPTOR { 3776 WORD nSize; 3777 WORD nVersion; 3778 DWORD dwFlags; 3779 BYTE iPixelType; 3780 BYTE cColorBits; 3781 BYTE cRedBits; 3782 BYTE cRedShift; 3783 BYTE cGreenBits; 3784 BYTE cGreenShift; 3785 BYTE cBlueBits; 3786 BYTE cBlueShift; 3787 BYTE cAlphaBits; 3788 BYTE cAlphaShift; 3789 BYTE cAccumBits; 3790 BYTE cAccumRedBits; 3791 BYTE cAccumGreenBits; 3792 BYTE cAccumBlueBits; 3793 BYTE cAccumAlphaBits; 3794 BYTE cDepthBits; 3795 BYTE cStencilBits; 3796 BYTE cAuxBuffers; 3797 BYTE iLayerPlane; 3798 BYTE bReserved; 3799 COLORREF crTransparent; 3800 } 3801 alias LAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR; 3802 3803 struct BLENDFUNCTION { 3804 BYTE BlendOp; 3805 BYTE BlendFlags; 3806 BYTE SourceConstantAlpha; 3807 BYTE AlphaFormat; 3808 } 3809 alias BLENDFUNCTION* PBLENDFUNCTION, LPBLENDFUNCTION; 3810 3811 enum MM_MAX_NUMAXES = 16; 3812 3813 struct DESIGNVECTOR { 3814 DWORD dvReserved; 3815 DWORD dvNumAxes; 3816 LONG[MM_MAX_NUMAXES] dvValues; 3817 } 3818 alias DESIGNVECTOR* PDESIGNVECTOR, LPDESIGNVECTOR; 3819 enum STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8); 3820 enum STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8); 3821 3822 static if (_WIN32_WINNT >= 0x500) { 3823 3824 enum MM_MAX_AXES_NAMELEN = 16; 3825 3826 struct AXISINFOA { 3827 LONG axMinValue; 3828 LONG axMaxValue; 3829 BYTE[MM_MAX_AXES_NAMELEN] axAxisName; 3830 } 3831 alias AXISINFOA* PAXISINFOA, LPAXISINFOA; 3832 3833 struct AXISINFOW { 3834 LONG axMinValue; 3835 LONG axMaxValue; 3836 WCHAR[MM_MAX_AXES_NAMELEN] axAxisName = 0; 3837 } 3838 alias AXISINFOW* PAXISINFOW, LPAXISINFOW; 3839 3840 version (Unicode) { 3841 alias AXISINFOW AXISINFO; 3842 alias PAXISINFOW PAXISINFO; 3843 alias LPAXISINFOW LPAXISINFO; 3844 } 3845 else { 3846 alias AXISINFOA AXISINFO; 3847 alias PAXISINFOA PAXISINFO; 3848 alias LPAXISINFOA LPAXISINFO; 3849 } 3850 3851 struct AXESLISTA { 3852 DWORD axlReserved; 3853 DWORD axlNumAxes; 3854 AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo; 3855 } 3856 alias AXESLISTA* PAXESLISTA, LPAXESLISTA; 3857 3858 struct AXESLISTW { 3859 DWORD axlReserved; 3860 DWORD axlNumAxes; 3861 AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo; 3862 } 3863 alias AXESLISTW* PAXESLISTW, LPAXESLISTW; 3864 3865 version (Unicode) { 3866 alias AXESLISTW AXESLIST; 3867 alias PAXESLISTW PAXESLIST; 3868 alias LPAXESLISTW LPAXESLIST; 3869 } 3870 else { 3871 alias AXESLISTA AXESLIST; 3872 alias PAXESLISTA PAXESLIST; 3873 alias LPAXESLISTA LPAXESLIST; 3874 } 3875 3876 struct ENUMLOGFONTEXDVA { 3877 ENUMLOGFONTEXA elfEnumLogfontEx; 3878 DESIGNVECTOR elfDesignVector; 3879 } 3880 alias ENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA; 3881 3882 struct ENUMLOGFONTEXDVW { 3883 ENUMLOGFONTEXW elfEnumLogfontEx; 3884 DESIGNVECTOR elfDesignVector; 3885 } 3886 alias ENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW; 3887 3888 extern(Windows) nothrow @nogc { 3889 HFONT CreateFontIndirectExA(const(ENUMLOGFONTEXDVA)*); 3890 HFONT CreateFontIndirectExW(const(ENUMLOGFONTEXDVW)*); 3891 } 3892 version (Unicode) 3893 alias CreateFontIndirectExW CreateFontIndirectEx; 3894 else 3895 alias CreateFontIndirectExA CreateFontIndirectEx; 3896 3897 struct ENUMTEXTMETRICA { 3898 NEWTEXTMETRICEXA etmNewTextMetricEx; 3899 AXESLISTA etmAxesList; 3900 } 3901 alias ENUMTEXTMETRICA* PENUMTEXTMETRICA, LPENUMTEXTMETRICA; 3902 3903 struct ENUMTEXTMETRICW { 3904 NEWTEXTMETRICEXW etmNewTextMetricEx; 3905 AXESLISTW etmAxesList; 3906 } 3907 alias ENUMTEXTMETRICW* PENUMTEXTMETRICW, LPENUMTEXTMETRICW; 3908 3909 version (Unicode) { 3910 alias ENUMTEXTMETRICW ENUMTEXTMETRIC; 3911 alias PENUMTEXTMETRICW PENUMTEXTMETRIC; 3912 alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC; 3913 } 3914 else { 3915 alias ENUMTEXTMETRICA ENUMTEXTMETRIC; 3916 alias PENUMTEXTMETRICA PENUMTEXTMETRIC; 3917 alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC; 3918 } 3919 } /* _WIN32_WINNT >= 0x500 */ 3920 3921 struct GRADIENT_TRIANGLE { 3922 ULONG Vertex1; 3923 ULONG Vertex2; 3924 ULONG Vertex3; 3925 } 3926 alias GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE; 3927 3928 struct GRADIENT_RECT { 3929 ULONG UpperLeft; 3930 ULONG LowerRight; 3931 } 3932 alias GRADIENT_RECT* PGRADIENT_RECT, LPGRADIENT_RECT; 3933 3934 struct DISPLAY_DEVICEA { 3935 DWORD cb; 3936 CHAR[32] DeviceName = 0; 3937 CHAR[128] DeviceString = 0; 3938 DWORD StateFlags; 3939 CHAR[128] DeviceID = 0; 3940 CHAR[128] DeviceKey = 0; 3941 } 3942 alias DISPLAY_DEVICEA* PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA; 3943 3944 struct DISPLAY_DEVICEW { 3945 DWORD cb; 3946 WCHAR[32] DeviceName = 0; 3947 WCHAR[128] DeviceString = 0; 3948 DWORD StateFlags; 3949 WCHAR[128] DeviceID = 0; 3950 WCHAR[128] DeviceKey = 0; 3951 } 3952 alias DISPLAY_DEVICEW* PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW; 3953 3954 struct DRAWPATRECT { 3955 POINT ptPosition; 3956 POINT ptSize; 3957 WORD wStyle; 3958 WORD wPattern; 3959 } 3960 alias DRAWPATRECT* PDRAWPATRECT; 3961 3962 // --------- 3963 // Callbacks 3964 extern (Windows) { 3965 alias BOOL function (HDC, int) ABORTPROC; 3966 alias int function (HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC; 3967 alias int function (HDC, HANDLETABLE*, const(ENHMETARECORD)*, int, LPARAM) ENHMFENUMPROC; 3968 alias int function (const(LOGFONTA)*, const(TEXTMETRICA)*, DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA; 3969 alias int function (const(LOGFONTW)*, const(TEXTMETRICW)*, DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW; 3970 alias int function (LPSTR, LPARAM) ICMENUMPROCA; 3971 alias int function (LPWSTR, LPARAM) ICMENUMPROCW; 3972 alias void function (LPVOID, LPARAM) GOBJENUMPROC; 3973 alias void function (int, int, LPARAM) LINEDDAPROC; 3974 alias UINT function (HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE; 3975 alias DWORD function (LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS; 3976 } 3977 3978 // --------- 3979 // C Macros. 3980 // FIXME: 3981 //POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l))) 3982 3983 nothrow @nogc { 3984 DWORD MAKEROP4()(DWORD fore, DWORD back) { 3985 return ((back<<8) & 0xFF000000) | (fore); 3986 } 3987 3988 COLORREF CMYK()(BYTE c, BYTE m, BYTE y, BYTE k) { 3989 return cast(COLORREF)(k | (y << 8) | (m << 16) | (c << 24)); 3990 } 3991 3992 BYTE GetCValue()(COLORREF cmyk) { 3993 return cast(BYTE)(cmyk >> 24); 3994 } 3995 3996 BYTE GetMValue()(COLORREF cmyk) { 3997 return cast(BYTE)(cmyk >> 16); 3998 } 3999 4000 BYTE GetYValue()(COLORREF cmyk) { 4001 return cast(BYTE)(cmyk >> 8); 4002 } 4003 4004 BYTE GetKValue()(COLORREF cmyk) { 4005 return cast(BYTE)cmyk; 4006 } 4007 4008 COLORREF RGB()(/*BYTE*/uint r, /*BYTE*/uint g, /*BYTE*/uint b) { 4009 return cast(COLORREF)(r | (g << 8) | (b << 16)); 4010 } 4011 4012 BYTE GetRValue()(COLORREF c) { 4013 return cast(BYTE)c; 4014 } 4015 4016 BYTE GetGValue()(COLORREF c) { 4017 return cast(BYTE)(c >> 8); 4018 } 4019 4020 BYTE GetBValue()(COLORREF c) { 4021 return cast(BYTE)(c >> 16); 4022 } 4023 4024 COLORREF PALETTEINDEX()(WORD i) { 4025 return 0x01000000 | cast(COLORREF) i; 4026 } 4027 4028 COLORREF PALETTERGB()(BYTE r, BYTE g, BYTE b) { 4029 return 0x02000000|RGB(r, g, b); 4030 } 4031 } 4032 4033 extern(Windows) nothrow @nogc { 4034 int AbortDoc(HDC); 4035 BOOL AbortPath(HDC); 4036 int AddFontResourceA(LPCSTR); 4037 int AddFontResourceW(LPCWSTR); 4038 BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); 4039 BOOL AnimatePalette(HPALETTE, UINT, UINT, const(PALETTEENTRY)*); 4040 BOOL Arc(HDC, int, int, int, int, int, int, int, int); 4041 BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); 4042 BOOL BeginPath(HDC); 4043 BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); 4044 BOOL CancelDC(HDC); 4045 BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD); 4046 BOOL Chord(HDC, int, int, int, int, int, int, int, int); 4047 int ChoosePixelFormat(HDC, const(PIXELFORMATDESCRIPTOR)*); 4048 HENHMETAFILE CloseEnhMetaFile(HDC); 4049 BOOL CloseFigure(HDC); 4050 HMETAFILE CloseMetaFile(HDC); 4051 BOOL ColorMatchToTarget(HDC, HDC, DWORD); 4052 BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); 4053 int CombineRgn(HRGN, HRGN, HRGN, int); 4054 BOOL CombineTransform(LPXFORM, const(XFORM)*, const(XFORM)*); 4055 HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); 4056 HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); 4057 HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); 4058 HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); 4059 HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID); 4060 HBITMAP CreateBitmapIndirect(const(BITMAP)*); 4061 HBRUSH CreateBrushIndirect(const(LOGBRUSH)*); 4062 HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); 4063 HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); 4064 HBITMAP CreateCompatibleBitmap(HDC, int, int); 4065 HDC CreateCompatibleDC(HDC); 4066 HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*); 4067 HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*); 4068 HBITMAP CreateDIBitmap(HDC, const(BITMAPINFOHEADER)*, DWORD, PCVOID, const(BITMAPINFO)*, UINT); 4069 HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); 4070 HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT); 4071 HBITMAP CreateDIBSection(HDC, const(BITMAPINFO)*, UINT, void**, HANDLE, DWORD); 4072 HBITMAP CreateDiscardableBitmap(HDC, int, int); 4073 HRGN CreateEllipticRgn(int, int, int, int); 4074 HRGN CreateEllipticRgnIndirect(LPCRECT); 4075 HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR); 4076 HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR); 4077 HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR); 4078 HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR); 4079 HFONT CreateFontIndirectA(const(LOGFONTA)*); 4080 HFONT CreateFontIndirectW(const(LOGFONTW)*); 4081 HPALETTE CreateHalftonePalette(HDC); 4082 HBRUSH CreateHatchBrush(int, COLORREF); 4083 HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*); 4084 HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*); 4085 HDC CreateMetaFileA(LPCSTR); 4086 HDC CreateMetaFileW(LPCWSTR); 4087 HPALETTE CreatePalette(const(LOGPALETTE)*); 4088 HBRUSH CreatePatternBrush(HBITMAP); 4089 HPEN CreatePen(int, int, COLORREF); 4090 HPEN CreatePenIndirect(const(LOGPEN)*); 4091 HRGN CreatePolygonRgn(const(POINT)*, int, int); 4092 HRGN CreatePolyPolygonRgn(const(POINT)*, const(INT)*, int, int); 4093 HRGN CreateRectRgn(int, int, int, int); 4094 HRGN CreateRectRgnIndirect(LPCRECT); 4095 HRGN CreateRoundRectRgn(int, int, int, int, int, int); 4096 BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); 4097 BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); 4098 HBRUSH CreateSolidBrush(COLORREF); 4099 BOOL DeleteColorSpace(HCOLORSPACE); 4100 BOOL DeleteDC(HDC); 4101 BOOL DeleteEnhMetaFile(HENHMETAFILE); 4102 BOOL DeleteMetaFile(HMETAFILE); 4103 BOOL DeleteObject(HGDIOBJ); 4104 int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); 4105 DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, const(DEVMODEA)*); 4106 DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, const(DEVMODEW)*); 4107 BOOL DPtoLP(HDC, LPPOINT, int); 4108 int DrawEscape(HDC, int, int, LPCSTR); 4109 BOOL Ellipse(HDC, int, int, int, int); 4110 int EndDoc(HDC); 4111 int EndPage(HDC); 4112 BOOL EndPath(HDC); 4113 BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT); 4114 int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4115 int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4116 int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); 4117 int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); 4118 int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4119 int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4120 int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); 4121 int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); 4122 BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); 4123 int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); 4124 BOOL EqualRgn(HRGN, HRGN); 4125 int Escape(HDC, int, int, LPCSTR, PVOID); 4126 int ExcludeClipRect(HDC, int, int, int, int); 4127 int ExcludeUpdateRgn(HDC, HWND); 4128 HPEN ExtCreatePen(DWORD, DWORD, const(LOGBRUSH)*, DWORD, const(DWORD)*); 4129 HRGN ExtCreateRegion(const(XFORM)*, DWORD, const(RGNDATA)*); 4130 int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); 4131 BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); 4132 int ExtSelectClipRgn(HDC, HRGN, int); 4133 BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, const(INT)*); 4134 BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, const(INT)*); 4135 BOOL FillPath(HDC); 4136 int FillRect(HDC, LPCRECT, HBRUSH); 4137 int FillRgn(HDC, HRGN, HBRUSH); 4138 BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); 4139 BOOL FlattenPath(HDC); 4140 BOOL FloodFill(HDC, int, int, COLORREF); 4141 BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); 4142 BOOL GdiComment(HDC, UINT, const(BYTE)*); 4143 BOOL GdiFlush(); 4144 DWORD GdiGetBatchLimit(); 4145 DWORD GdiSetBatchLimit(DWORD); 4146 int GetArcDirection(HDC); 4147 BOOL GetAspectRatioFilterEx(HDC, LPSIZE); 4148 LONG GetBitmapBits(HBITMAP, LONG, PVOID); 4149 BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); 4150 COLORREF GetBkColor(HDC); 4151 int GetBkMode(HDC); 4152 UINT GetBoundsRect(HDC, LPRECT, UINT); 4153 BOOL GetBrushOrgEx(HDC, LPPOINT); 4154 BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); 4155 BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); 4156 BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); 4157 BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); 4158 DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); 4159 DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); 4160 BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); 4161 BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); 4162 BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); 4163 BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); 4164 BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); 4165 BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); 4166 int GetClipBox(HDC, LPRECT); 4167 int GetClipRgn(HDC, HRGN); 4168 BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); 4169 HANDLE GetColorSpace(HDC); 4170 HGDIOBJ GetCurrentObject(HDC, UINT); 4171 BOOL GetCurrentPositionEx(HDC, LPPOINT); 4172 HCURSOR GetCursor(); 4173 BOOL GetDCOrgEx(HDC, LPPOINT); 4174 static if (_WIN32_WINNT >= 0x500) 4175 { 4176 DWORD GetDCPenColor(HGDIOBJ); 4177 COLORREF GetDCBrushColor(HGDIOBJ); 4178 } 4179 int GetDeviceCaps(HDC, int); 4180 BOOL GetDeviceGammaRamp(HDC, PVOID); 4181 UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*); 4182 int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT); 4183 HENHMETAFILE GetEnhMetaFileA(LPCSTR); 4184 HENHMETAFILE GetEnhMetaFileW(LPCWSTR); 4185 UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); 4186 UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR); 4187 UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR); 4188 UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER); 4189 UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY); 4190 UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, const(PIXELFORMATDESCRIPTOR)*); 4191 DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD); 4192 DWORD GetFontLanguageInfo(HDC); 4193 DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*); 4194 DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*); 4195 int GetGraphicsMode(HDC); 4196 BOOL GetICMProfileA(HDC, LPDWORD, LPSTR); 4197 BOOL GetICMProfileW(HDC, LPDWORD, LPWSTR); 4198 DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); 4199 DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); 4200 BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); 4201 BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); 4202 int GetMapMode(HDC); 4203 HMETAFILE GetMetaFileA(LPCSTR); 4204 HMETAFILE GetMetaFileW(LPCWSTR); 4205 UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID); 4206 int GetMetaRgn(HDC, HRGN); 4207 BOOL GetMiterLimit(HDC, PFLOAT); 4208 COLORREF GetNearestColor(HDC, COLORREF); 4209 UINT GetNearestPaletteIndex(HPALETTE, COLORREF); 4210 int GetObjectA(HGDIOBJ, int, PVOID); 4211 int GetObjectW(HGDIOBJ, int, PVOID); 4212 DWORD GetObjectType(HGDIOBJ); 4213 UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); 4214 UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); 4215 UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); 4216 int GetPath(HDC, LPPOINT, PBYTE, int); 4217 COLORREF GetPixel(HDC, int, int); 4218 int GetPixelFormat(HDC); 4219 int GetPolyFillMode(HDC); 4220 BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); 4221 int GetRandomRgn (HDC, HRGN, INT); 4222 DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); 4223 int GetRgnBox(HRGN, LPRECT); 4224 int GetROP2(HDC); 4225 HGDIOBJ GetStockObject(int); 4226 int GetStretchBltMode(HDC); 4227 UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); 4228 UINT GetSystemPaletteUse(HDC); 4229 UINT GetTextAlign(HDC); 4230 int GetTextCharacterExtra(HDC); 4231 int GetTextCharset(HDC); 4232 int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD); 4233 COLORREF GetTextColor(HDC); 4234 BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE); 4235 BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE); 4236 BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE); 4237 BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE); 4238 BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE); 4239 BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE); 4240 int GetTextFaceA(HDC, int, LPSTR); 4241 int GetTextFaceW(HDC, int, LPWSTR); 4242 BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); 4243 BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); 4244 BOOL GetViewportExtEx(HDC, LPSIZE); 4245 BOOL GetViewportOrgEx(HDC, LPPOINT); 4246 BOOL GetWindowExtEx(HDC, LPSIZE); 4247 BOOL GetWindowOrgEx(HDC, LPPOINT); 4248 UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); 4249 BOOL GetWorldTransform(HDC, LPXFORM); 4250 int IntersectClipRect(HDC, int, int, int, int); 4251 BOOL InvertRgn(HDC, HRGN); 4252 BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); 4253 BOOL LineTo(HDC, int, int); 4254 BOOL LPtoDP(HDC, LPPOINT, int); 4255 BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD); 4256 BOOL ModifyWorldTransform(HDC, const(XFORM)*, DWORD); 4257 BOOL MoveToEx(HDC, int, int, LPPOINT); 4258 int OffsetClipRgn(HDC, int, int); 4259 int OffsetRgn(HRGN, int, int); 4260 BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); 4261 BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); 4262 BOOL PaintRgn(HDC, HRGN); 4263 BOOL PatBlt(HDC, int, int, int, int, DWORD); 4264 HRGN PathToRegion(HDC); 4265 BOOL Pie(HDC, int, int, int, int, int, int, int, int); 4266 BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT); 4267 BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, const(ENHMETARECORD)*, UINT); 4268 BOOL PlayMetaFile(HDC, HMETAFILE); 4269 BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); 4270 BOOL PlgBlt(HDC, const(POINT)*, HDC, int, int, int, int, HBITMAP, int, int); 4271 BOOL PolyBezier(HDC, const(POINT)*, DWORD); 4272 BOOL PolyBezierTo(HDC, const(POINT)*, DWORD); 4273 BOOL PolyDraw(HDC, const(POINT)*, const(BYTE)*, int); 4274 BOOL Polygon(HDC, const(POINT)*, int); 4275 BOOL Polyline(HDC, const(POINT)*, int); 4276 BOOL PolylineTo(HDC, const(POINT)*, DWORD); 4277 BOOL PolyPolygon(HDC, const(POINT)*, const(INT)*, int); 4278 BOOL PolyPolyline(HDC, const(POINT)*, const(DWORD)*, DWORD); 4279 BOOL PolyTextOutA(HDC, const(POLYTEXTA)*, int); 4280 BOOL PolyTextOutW(HDC, const(POLYTEXTW)*, int); 4281 BOOL PtInRegion(HRGN, int, int); 4282 BOOL PtVisible(HDC, int, int); 4283 UINT RealizePalette(HDC); 4284 BOOL Rectangle(HDC, int, int, int, int); 4285 BOOL RectInRegion(HRGN, LPCRECT); 4286 BOOL RectVisible(HDC, LPCRECT); 4287 BOOL RemoveFontResourceA(LPCSTR); 4288 BOOL RemoveFontResourceW(LPCWSTR); 4289 4290 HDC ResetDCA(HDC, const(DEVMODEA)*); 4291 HDC ResetDCW(HDC, const(DEVMODEW)*); 4292 BOOL ResizePalette(HPALETTE, UINT); 4293 BOOL RestoreDC(HDC, int); 4294 BOOL RoundRect(HDC, int, int, int, int, int, int); 4295 int SaveDC(HDC); 4296 BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); 4297 BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); 4298 BOOL SelectClipPath(HDC, int); 4299 int SelectClipRgn(HDC, HRGN); 4300 HGDIOBJ SelectObject(HDC, HGDIOBJ); 4301 HPALETTE SelectPalette(HDC, HPALETTE, BOOL); 4302 int SetAbortProc(HDC, ABORTPROC); 4303 int SetArcDirection(HDC, int); 4304 LONG SetBitmapBits(HBITMAP, DWORD, PCVOID); 4305 BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); 4306 COLORREF SetBkColor(HDC, COLORREF); 4307 int SetBkMode(HDC, int); 4308 UINT SetBoundsRect(HDC, LPCRECT, UINT); 4309 BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); 4310 BOOL SetColorAdjustment(HDC, const(COLORADJUSTMENT)*); 4311 BOOL SetColorSpace(HDC, HCOLORSPACE); 4312 4313 BOOL SetDeviceGammaRamp(HDC, PVOID); 4314 UINT SetDIBColorTable(HDC, UINT, UINT, const(RGBQUAD)*); 4315 int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT); 4316 int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT); 4317 HENHMETAFILE SetEnhMetaFileBits(UINT, const(BYTE)*); 4318 int SetGraphicsMode(HDC, int); 4319 int SetICMMode(HDC, int); 4320 BOOL SetICMProfileA(HDC, LPSTR); 4321 BOOL SetICMProfileW(HDC, LPWSTR); 4322 int SetMapMode(HDC, int); 4323 4324 static if (_WIN32_WINNT >= 0x500) { 4325 DWORD SetLayout(HDC hdc, DWORD l); 4326 DWORD GetLayout(HDC hdc); 4327 } 4328 4329 DWORD SetMapperFlags(HDC, DWORD); 4330 HMETAFILE SetMetaFileBitsEx(UINT, const(BYTE)*); 4331 int SetMetaRgn(HDC); 4332 BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); 4333 UINT SetPaletteEntries(HPALETTE, UINT, UINT, const(PALETTEENTRY)*); 4334 COLORREF SetPixel(HDC, int, int, COLORREF); 4335 BOOL SetPixelFormat(HDC, int, const(PIXELFORMATDESCRIPTOR)*); 4336 BOOL SetPixelV(HDC, int, int, COLORREF); 4337 int SetPolyFillMode(HDC, int); 4338 BOOL SetRectRgn(HRGN, int, int, int, int); 4339 int SetROP2(HDC, int); 4340 int SetStretchBltMode(HDC, int); 4341 UINT SetSystemPaletteUse(HDC, UINT); 4342 UINT SetTextAlign(HDC, UINT); 4343 int SetTextCharacterExtra(HDC, int); 4344 COLORREF SetTextColor(HDC, COLORREF); 4345 BOOL SetTextJustification(HDC, int, int); 4346 BOOL SetViewportExtEx(HDC, int, int, LPSIZE); 4347 BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); 4348 BOOL SetWindowExtEx(HDC, int, int, LPSIZE); 4349 BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); 4350 HENHMETAFILE SetWinMetaFileBits(UINT, const(BYTE)*, HDC, const(METAFILEPICT)*); 4351 BOOL SetWorldTransform(HDC, const(XFORM)*); 4352 int StartDocA(HDC, const(DOCINFOA)*); 4353 int StartDocW(HDC, const(DOCINFOW)*); 4354 int StartPage(HDC); 4355 BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); 4356 int StretchDIBits(HDC, int, int, int, int, int, int, int, int, const(VOID)* , const(BITMAPINFO)* , UINT, DWORD); 4357 BOOL StrokeAndFillPath(HDC); 4358 BOOL StrokePath(HDC); 4359 BOOL SwapBuffers(HDC); 4360 BOOL TextOutA(HDC, int, int, LPCSTR, int); 4361 BOOL TextOutW(HDC, int, int, LPCWSTR, int); 4362 BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD); 4363 BOOL UnrealizeObject(HGDIOBJ); 4364 BOOL UpdateColors(HDC); 4365 BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT); 4366 BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT); 4367 BOOL WidenPath(HDC); 4368 BOOL wglCopyContext(HGLRC, HGLRC, UINT); 4369 HGLRC wglCreateContext(HDC); 4370 HGLRC wglCreateLayerContext(HDC, int); 4371 BOOL wglDeleteContext(HGLRC); 4372 BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); 4373 HGLRC wglGetCurrentContext(); 4374 HDC wglGetCurrentDC(); 4375 int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*); 4376 PROC wglGetProcAddress(LPCSTR); 4377 BOOL wglMakeCurrent(HDC, HGLRC); 4378 BOOL wglRealizeLayerPalette(HDC, int, BOOL); 4379 int wglSetLayerPaletteEntries(HDC, int, int, int, const(COLORREF)*); 4380 BOOL wglShareLists(HGLRC, HGLRC); 4381 BOOL wglSwapLayerBuffers(HDC, UINT); 4382 BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); 4383 BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); 4384 BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 4385 BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 4386 4387 static if (_WIN32_WINNT >= 0x500) { 4388 alias WGLSWAP* PWGLSWAP; 4389 struct WGLSWAP { 4390 HDC hdc; 4391 UINT uiFlags; 4392 } 4393 enum WGL_SWAPMULTIPLE_MAX = 16; 4394 DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*); 4395 } 4396 4397 static if (_WIN32_WINNT >= 0x500) { 4398 BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); 4399 BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); 4400 BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); 4401 } 4402 4403 static if (_WIN32_WINNT >= 0x500) { 4404 COLORREF SetDCBrushColor(HDC, COLORREF); 4405 COLORREF SetDCPenColor(HDC, COLORREF); 4406 HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*); 4407 int AddFontResourceExA(LPCSTR, DWORD, PVOID); 4408 int AddFontResourceExW(LPCWSTR, DWORD, PVOID); 4409 BOOL RemoveFontMemResourceEx(HANDLE); 4410 BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); 4411 BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); 4412 DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); 4413 DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); 4414 DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); 4415 BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); 4416 BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); 4417 BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); 4418 BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); 4419 } 4420 } // extern (Windows) 4421 4422 version (Unicode) { 4423 alias WCHAR BCHAR; 4424 alias DOCINFOW DOCINFO; 4425 alias LOGFONTW LOGFONT; 4426 4427 alias TEXTMETRICW TEXTMETRIC; 4428 alias NPTEXTMETRICW NPTEXTMETRIC; 4429 alias ICMENUMPROCW ICMENUMPROC; 4430 alias FONTENUMPROCW FONTENUMPROC; 4431 alias DEVMODEW DEVMODE; 4432 4433 alias EXTLOGFONTW EXTLOGFONT; 4434 alias GCP_RESULTSW GCP_RESULTS; 4435 alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; 4436 alias POLYTEXTW POLYTEXT; 4437 alias LOGCOLORSPACEW LOGCOLORSPACE; 4438 alias NEWTEXTMETRICW NEWTEXTMETRIC; 4439 alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; 4440 alias ENUMLOGFONTW ENUMLOGFONT; 4441 alias ENUMLOGFONTEXW ENUMLOGFONTEX; 4442 alias DISPLAY_DEVICEW DISPLAY_DEVICE; 4443 alias AddFontResourceW AddFontResource; 4444 4445 alias CopyEnhMetaFileW CopyEnhMetaFile; 4446 alias CopyMetaFileW CopyMetaFile; 4447 alias CreateColorSpaceW CreateColorSpace; 4448 alias CreateDCW CreateDC; 4449 alias CreateEnhMetaFileW CreateEnhMetaFile; 4450 alias CreateFontW CreateFont; 4451 alias CreateFontIndirectW CreateFontIndirect; 4452 alias CreateICW CreateIC; 4453 alias CreateMetaFileW CreateMetaFile; 4454 alias CreateScalableFontResourceW CreateScalableFontResource; 4455 alias DeviceCapabilitiesW DeviceCapabilities; 4456 alias EnumFontFamiliesW EnumFontFamilies; 4457 alias EnumFontFamiliesExW EnumFontFamiliesEx; 4458 alias EnumFontsW EnumFonts; 4459 alias EnumICMProfilesW EnumICMProfiles; 4460 alias ExtTextOutW ExtTextOut; 4461 alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; 4462 alias GetCharABCWidthsW GetCharABCWidths; 4463 alias GetCharacterPlacementW GetCharacterPlacement; 4464 alias GetCharWidth32W GetCharWidth32; 4465 alias GetCharWidthFloatW GetCharWidthFloat; 4466 alias GetCharWidthW GetCharWidth; 4467 alias GetEnhMetaFileW GetEnhMetaFile; 4468 alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; 4469 alias GetGlyphOutlineW GetGlyphOutline; 4470 alias GetICMProfileW GetICMProfile; 4471 alias GetKerningPairsW GetKerningPairs; 4472 alias GetLogColorSpaceW GetLogColorSpace; 4473 alias GetMetaFileW GetMetaFile; 4474 alias GetObjectW GetObject; 4475 alias GetOutlineTextMetricsW GetOutlineTextMetrics; 4476 alias GetTextExtentPointW GetTextExtentPoint; 4477 alias GetTextExtentExPointW GetTextExtentExPoint; 4478 alias GetTextExtentPoint32W GetTextExtentPoint32; 4479 alias GetTextFaceW GetTextFace; 4480 alias GetTextMetricsW GetTextMetrics; 4481 alias PolyTextOutW PolyTextOut; 4482 alias RemoveFontResourceW RemoveFontResource; 4483 4484 alias ResetDCW ResetDC; 4485 alias SetICMProfileW SetICMProfile; 4486 alias StartDocW StartDoc; 4487 alias TextOutW TextOut; 4488 alias UpdateICMRegKeyW UpdateICMRegKey; 4489 alias wglUseFontBitmapsW wglUseFontBitmaps; 4490 alias wglUseFontOutlinesW wglUseFontOutlines; 4491 static if (_WIN32_WINNT >= 0x500) { 4492 alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; 4493 alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; 4494 alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; 4495 alias AddFontResourceExW AddFontResourceEx; 4496 alias RemoveFontResourceExW RemoveFontResourceEx; 4497 alias GetGlyphIndicesW GetGlyphIndices; 4498 } 4499 } else { /* non-unicode build */ 4500 alias BYTE BCHAR; 4501 alias DOCINFOA DOCINFO; 4502 alias LOGFONTA LOGFONT; 4503 alias TEXTMETRICA TEXTMETRIC; 4504 alias NPTEXTMETRICA NPTEXTMETRIC; 4505 alias ICMENUMPROCA ICMENUMPROC; 4506 alias FONTENUMPROCA FONTENUMPROC; 4507 alias DEVMODEA DEVMODE; 4508 alias EXTLOGFONTA EXTLOGFONT; 4509 alias GCP_RESULTSA GCP_RESULTS; 4510 alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; 4511 alias POLYTEXTA POLYTEXT; 4512 alias LOGCOLORSPACEA LOGCOLORSPACE; 4513 alias NEWTEXTMETRICA NEWTEXTMETRIC; 4514 alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; 4515 alias ENUMLOGFONTA ENUMLOGFONT; 4516 alias ENUMLOGFONTEXA ENUMLOGFONTEX; 4517 alias DISPLAY_DEVICEA DISPLAY_DEVICE; 4518 4519 alias AddFontResourceA AddFontResource; 4520 alias CopyEnhMetaFileA CopyEnhMetaFile; 4521 alias CopyMetaFileA CopyMetaFile; 4522 alias CreateColorSpaceA CreateColorSpace; 4523 alias CreateDCA CreateDC; 4524 alias CreateEnhMetaFileA CreateEnhMetaFile; 4525 alias CreateFontA CreateFont; 4526 alias CreateFontIndirectA CreateFontIndirect; 4527 alias CreateICA CreateIC; 4528 alias CreateMetaFileA CreateMetaFile; 4529 alias CreateScalableFontResourceA CreateScalableFontResource; 4530 alias DeviceCapabilitiesA DeviceCapabilities; 4531 alias EnumFontFamiliesA EnumFontFamilies; 4532 alias EnumFontFamiliesExA EnumFontFamiliesEx; 4533 alias EnumFontsA EnumFonts; 4534 alias EnumICMProfilesA EnumICMProfiles; 4535 alias ExtTextOutA ExtTextOut; 4536 alias GetCharWidthFloatA GetCharWidthFloat; 4537 alias GetCharWidthA GetCharWidth; 4538 alias GetCharacterPlacementA GetCharacterPlacement; 4539 alias GetCharABCWidthsA GetCharABCWidths; 4540 alias GetCharABCWidthsFloatA GetCharABCWidthsFloat; 4541 alias GetCharWidth32A GetCharWidth32; 4542 alias GetEnhMetaFileA GetEnhMetaFile; 4543 alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription; 4544 alias GetGlyphOutlineA GetGlyphOutline; 4545 alias GetICMProfileA GetICMProfile; 4546 alias GetKerningPairsA GetKerningPairs; 4547 alias GetLogColorSpaceA GetLogColorSpace; 4548 alias GetMetaFileA GetMetaFile; 4549 alias GetObjectA GetObject; 4550 alias GetOutlineTextMetricsA GetOutlineTextMetrics; 4551 alias GetTextExtentPointA GetTextExtentPoint; 4552 alias GetTextExtentExPointA GetTextExtentExPoint; 4553 alias GetTextExtentPoint32A GetTextExtentPoint32; 4554 alias GetTextFaceA GetTextFace; 4555 alias GetTextMetricsA GetTextMetrics; 4556 alias PolyTextOutA PolyTextOut; 4557 alias RemoveFontResourceA RemoveFontResource; 4558 alias ResetDCA ResetDC; 4559 alias SetICMProfileA SetICMProfile; 4560 alias StartDocA StartDoc; 4561 alias TextOutA TextOut; 4562 alias UpdateICMRegKeyA UpdateICMRegKey; 4563 alias wglUseFontBitmapsA wglUseFontBitmaps; 4564 alias wglUseFontOutlinesA wglUseFontOutlines; 4565 static if (_WIN32_WINNT >= 0x500) { 4566 alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; 4567 alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; 4568 alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; 4569 alias AddFontResourceExA AddFontResourceEx; 4570 alias RemoveFontResourceExA RemoveFontResourceEx; 4571 alias GetGlyphIndicesA GetGlyphIndices; 4572 } 4573 } 4574 4575 // Common to both ASCII & UNICODE 4576 alias DOCINFO* LPDOCINFO; 4577 alias LOGFONT* PLOGFONT, NPLOGFONT, LPLOGFONT; 4578 alias TEXTMETRIC* PTEXTMETRIC, LPTEXTMETRIC; 4579 alias DEVMODE* PDEVMODE, NPDEVMODE, LPDEVMODE; 4580 alias EXTLOGFONT* PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT; 4581 alias GCP_RESULTS* LPGCP_RESULTS; 4582 alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC; 4583 alias POLYTEXT* PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT; 4584 alias LOGCOLORSPACE* LPLOGCOLORSPACE; 4585 alias NEWTEXTMETRIC* PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC; 4586 alias ENUMLOGFONT* LPENUMLOGFONT; 4587 alias ENUMLOGFONTEX* LPENUMLOGFONTEX; 4588 alias DISPLAY_DEVICE* PDISPLAY_DEVICE, LPDISPLAY_DEVICE;