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