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 25extern "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 = -1, 2075 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0, 2076 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1, 2077 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2, 2078 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3, 2079 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4, 2080 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5, 2081 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6, 2082 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, 2083 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9, 2084 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10, 2085 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11, 2086 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12, 2087 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13, 2088 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14, 2089 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, 2090 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 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 3113WINGDIAPI BOOL WINAPI GdiRegisterDdraw(PGDIREGISTERDDRAWPACKET pPacket, 3114 GDIMARSHALLOC *ppfnGdiAlloc); 3115WINGDIAPI ULONG WINAPI GdiMarshalSize(VOID); 3116WINGDIAPI VOID WINAPI GdiMarshal(DWORD dwProcessIdTo, HGDIOBJ hGdiObj, 3117 PVOID pData, ULONG ulFlags); 3118WINGDIAPI 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