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