|
|
1.1 ! root 1: /*++ BUILD Version: 0004 // Increment this if a change has global effects ! 2: ! 3: Copyright (c) 1985-91, Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: wingdi.h ! 8: ! 9: Abstract: ! 10: ! 11: Procedure declarations, constant definitions and macros for the GDI ! 12: component. ! 13: ! 14: --*/ ! 15: ! 16: #ifndef _WINGDI_ ! 17: #define _WINGDI_ ! 18: ! 19: #ifndef NOGDI ! 20: ! 21: #ifndef NORASTEROPS ! 22: ! 23: /* Binary raster ops */ ! 24: #define R2_BLACK 1 /* 0 */ ! 25: #define R2_NOTMERGEPEN 2 /* DPon */ ! 26: #define R2_MASKNOTPEN 3 /* DPna */ ! 27: #define R2_NOTCOPYPEN 4 /* PN */ ! 28: #define R2_MASKPENNOT 5 /* PDna */ ! 29: #define R2_NOT 6 /* Dn */ ! 30: #define R2_XORPEN 7 /* DPx */ ! 31: #define R2_NOTMASKPEN 8 /* DPan */ ! 32: #define R2_MASKPEN 9 /* DPa */ ! 33: #define R2_NOTXORPEN 10 /* DPxn */ ! 34: #define R2_NOP 11 /* D */ ! 35: #define R2_MERGENOTPEN 12 /* DPno */ ! 36: #define R2_COPYPEN 13 /* P */ ! 37: #define R2_MERGEPENNOT 14 /* PDno */ ! 38: #define R2_MERGEPEN 15 /* DPo */ ! 39: #define R2_WHITE 16 /* 1 */ ! 40: #define R2_LAST 16 ! 41: ! 42: /* Ternary raster operations */ ! 43: #define SRCCOPY (DWORD)0x00CC0020 /* dest = source */ ! 44: #define SRCPAINT (DWORD)0x00EE0086 /* dest = source OR dest */ ! 45: #define SRCAND (DWORD)0x008800C6 /* dest = source AND dest */ ! 46: #define SRCINVERT (DWORD)0x00660046 /* dest = source XOR dest */ ! 47: #define SRCERASE (DWORD)0x00440328 /* dest = source AND (NOT dest ) */ ! 48: #define NOTSRCCOPY (DWORD)0x00330008 /* dest = (NOT source) */ ! 49: #define NOTSRCERASE (DWORD)0x001100A6 /* dest = (NOT src) AND (NOT dest) */ ! 50: #define MERGECOPY (DWORD)0x00C000CA /* dest = (source AND pattern) */ ! 51: #define MERGEPAINT (DWORD)0x00BB0226 /* dest = (NOT source) OR dest */ ! 52: #define PATCOPY (DWORD)0x00F00021 /* dest = pattern */ ! 53: #define PATPAINT (DWORD)0x00FB0A09 /* dest = DPSnoo */ ! 54: #define PATINVERT (DWORD)0x005A0049 /* dest = pattern XOR dest */ ! 55: #define DSTINVERT (DWORD)0x00550009 /* dest = (NOT dest) */ ! 56: #define BLACKNESS (DWORD)0x00000042 /* dest = BLACK */ ! 57: #define WHITENESS (DWORD)0x00FF0062 /* dest = WHITE */ ! 58: #endif /* NORASTEROPS */ ! 59: ! 60: #define GDI_ERROR (0xFFFFFFFFL) ! 61: ! 62: /* Region Flags */ ! 63: #define ERROR 0 ! 64: #define NULLREGION 1 ! 65: #define SIMPLEREGION 2 ! 66: #define COMPLEXREGION 3 ! 67: #define RGN_ERROR ERROR ! 68: ! 69: /* CombineRgn() Styles */ ! 70: #define RGN_AND 1 ! 71: #define RGN_OR 2 ! 72: #define RGN_XOR 3 ! 73: #define RGN_DIFF 4 ! 74: #define RGN_COPY 5 ! 75: #define RGN_MIN RGN_AND ! 76: #define RGN_MAX RGN_COPY ! 77: ! 78: /* StretchBlt() Modes */ ! 79: #define BLACKONWHITE 1 ! 80: #define WHITEONBLACK 2 ! 81: #define COLORONCOLOR 3 ! 82: #define BLEND 4 ! 83: #define HALFTONE 5 ! 84: #define MAXSTRETCHBLTMODE 5 ! 85: ! 86: /* PolyFill() Modes */ ! 87: #define ALTERNATE 1 ! 88: #define WINDING 2 ! 89: #define POLYFILL_LAST 2 ! 90: ! 91: /* Text Alignment Options */ ! 92: #define TA_NOUPDATECP 0 ! 93: #define TA_UPDATECP 1 ! 94: ! 95: #define TA_LEFT 0 ! 96: #define TA_RIGHT 2 ! 97: #define TA_CENTER 6 ! 98: ! 99: #define TA_TOP 0 ! 100: #define TA_BOTTOM 8 ! 101: #define TA_BASELINE 24 ! 102: #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP) ! 103: ! 104: #define ETO_GRAYED 1 ! 105: #define ETO_OPAQUE 2 ! 106: #define ETO_CLIPPED 4 ! 107: ! 108: #define ASPECT_FILTERING 0x0001 ! 109: ! 110: #ifndef NOMETAFILE ! 111: ! 112: /* Metafile Functions */ ! 113: #define META_SETBKCOLOR 0x0201 ! 114: #define META_SETBKMODE 0x0102 ! 115: #define META_SETMAPMODE 0x0103 ! 116: #define META_SETROP2 0x0104 ! 117: #define META_SETRELABS 0x0105 ! 118: #define META_SETPOLYFILLMODE 0x0106 ! 119: #define META_SETSTRETCHBLTMODE 0x0107 ! 120: #define META_SETTEXTCHAREXTRA 0x0108 ! 121: #define META_SETTEXTCOLOR 0x0209 ! 122: #define META_SETTEXTJUSTIFICATION 0x020A ! 123: #define META_SETWINDOWORG 0x020B ! 124: #define META_SETWINDOWEXT 0x020C ! 125: #define META_SETVIEWPORTORG 0x020D ! 126: #define META_SETVIEWPORTEXT 0x020E ! 127: #define META_OFFSETWINDOWORG 0x020F ! 128: #define META_SCALEWINDOWEXT 0x0400 ! 129: #define META_OFFSETVIEWPORTORG 0x0211 ! 130: #define META_SCALEVIEWPORTEXT 0x0412 ! 131: #define META_LINETO 0x0213 ! 132: #define META_MOVETO 0x0214 ! 133: #define META_EXCLUDECLIPRECT 0x0415 ! 134: #define META_INTERSECTCLIPRECT 0x0416 ! 135: #define META_ARC 0x0817 ! 136: #define META_ELLIPSE 0x0418 ! 137: #define META_FLOODFILL 0x0419 ! 138: #define META_PIE 0x081A ! 139: #define META_RECTANGLE 0x041B ! 140: #define META_ROUNDRECT 0x061C ! 141: #define META_PATBLT 0x061D ! 142: #define META_SAVEDC 0x001E ! 143: #define META_SETPIXEL 0x041F ! 144: #define META_OFFSETCLIPRGN 0x0220 ! 145: #define META_TEXTOUT 0x0521 ! 146: #define META_BITBLT 0x0922 ! 147: #define META_STRETCHBLT 0x0B23 ! 148: #define META_POLYGON 0x0324 ! 149: #define META_POLYLINE 0x0325 ! 150: #define META_ESCAPE 0x0626 ! 151: #define META_RESTOREDC 0x0127 ! 152: #define META_FILLREGION 0x0228 ! 153: #define META_FRAMEREGION 0x0429 ! 154: #define META_INVERTREGION 0x012A ! 155: #define META_PAINTREGION 0x012B ! 156: #define META_SELECTCLIPREGION 0x012C ! 157: #define META_SELECTOBJECT 0x012D ! 158: #define META_SETTEXTALIGN 0x012E ! 159: #define META_DRAWTEXT 0x062F ! 160: ! 161: #define META_CHORD 0x0830 ! 162: #define META_SETMAPPERFLAGS 0x0231 ! 163: #define META_EXTTEXTOUT 0x0a32 ! 164: #define META_SETDIBTODEV 0x0d33 ! 165: #define META_SELECTPALETTE 0x0234 ! 166: #define META_REALIZEPALETTE 0x0035 ! 167: #define META_ANIMATEPALETTE 0x0436 ! 168: #define META_SETPALENTRIES 0x0037 ! 169: #define META_POLYPOLYGON 0x0538 ! 170: #define META_RESIZEPALETTE 0x0139 ! 171: ! 172: #define META_DIBBITBLT 0x0940 ! 173: #define META_DIBSTRETCHBLT 0x0b41 ! 174: #define META_DIBCREATEPATTERNBRUSH 0x0142 ! 175: #define META_STRETCHDIB 0x0f43 ! 176: ! 177: #define META_DELETEOBJECT 0x01f0 ! 178: ! 179: #define META_CREATEPALETTE 0x00f7 ! 180: #define META_CREATEBRUSH 0x00F8 ! 181: #define META_CREATEPATTERNBRUSH 0x01F9 ! 182: #define META_CREATEPENINDIRECT 0x02FA ! 183: #define META_CREATEFONTINDIRECT 0x02FB ! 184: #define META_CREATEBRUSHINDIRECT 0x02FC ! 185: #define META_CREATEBITMAPINDIRECT 0x02FD ! 186: #define META_CREATEBITMAP 0x06FE ! 187: #define META_CREATEREGION 0x06FF ! 188: ! 189: #endif /* NOMETAFILE */ ! 190: ! 191: /* GDI Escapes */ ! 192: #define NEWFRAME 1 ! 193: #define ABORTDOC 2 ! 194: #define NEXTBAND 3 ! 195: #define SETCOLORTABLE 4 ! 196: #define GETCOLORTABLE 5 ! 197: #define FLUSHOUTPUT 6 ! 198: #define DRAFTMODE 7 ! 199: #define QUERYESCSUPPORT 8 ! 200: #define SETABORTPROC 9 ! 201: #define STARTDOC 10 ! 202: #define ENDDOC 11 ! 203: #define GETPHYSPAGESIZE 12 ! 204: #define GETPRINTINGOFFSET 13 ! 205: #define GETSCALINGFACTOR 14 ! 206: #define MFCOMMENT 15 ! 207: #define GETPENWIDTH 16 ! 208: #define SETCOPYCOUNT 17 ! 209: #define SELECTPAPERSOURCE 18 ! 210: #define DEVICEDATA 19 ! 211: #define PASSTHROUGH 19 ! 212: #define GETTECHNOLGY 20 ! 213: #define GETTECHNOLOGY 20 ! 214: #define SETENDCAP 21 ! 215: #define SETLINEJOIN 22 ! 216: #define SETMITERLIMIT 23 ! 217: #define BANDINFO 24 ! 218: #define DRAWPATTERNRECT 25 ! 219: #define GETVECTORPENSIZE 26 ! 220: #define GETVECTORBRUSHSIZE 27 ! 221: #define ENABLEDUPLEX 28 ! 222: #define GETSETPAPERBINS 29 ! 223: #define GETSETPRINTORIENT 30 ! 224: #define ENUMPAPERBINS 31 ! 225: #define SETDIBSCALING 32 ! 226: #define EPSPRINTING 33 ! 227: #define ENUMPAPERMETRICS 34 ! 228: #define GETSETPAPERMETRICS 35 ! 229: #define POSTSCRIPT_DATA 37 ! 230: #define POSTSCRIPT_IGNORE 38 ! 231: #define GETEXTENDEDTEXTMETRICS 256 ! 232: #define GETEXTENTTABLE 257 ! 233: #define GETPAIRKERNTABLE 258 ! 234: #define GETTRACKKERNTABLE 259 ! 235: #define EXTTEXTOUT 512 ! 236: #define ENABLERELATIVEWIDTHS 768 ! 237: #define ENABLEPAIRKERNING 769 ! 238: #define SETKERNTRACK 770 ! 239: #define SETALLJUSTVALUES 771 ! 240: #define SETCHARSET 772 ! 241: ! 242: #define STRETCHBLT 2048 ! 243: #define BEGIN_PATH 4096 ! 244: #define CLIP_TO_PATH 4097 ! 245: #define END_PATH 4098 ! 246: #define EXT_DEVICE_CAPS 4099 ! 247: #define RESTORE_CTM 4100 ! 248: #define SAVE_CTM 4101 ! 249: #define SET_ARC_DIRECTION 4102 ! 250: #define SET_BACKGROUND_COLOR 4103 ! 251: #define SET_POLY_MODE 4104 ! 252: #define SET_SCREEN_ANGLE 4105 ! 253: #define SET_SPREAD 4106 ! 254: #define TRANSFORM_CTM 4107 ! 255: #define SET_CLIP_BOX 4108 ! 256: #define SET_BOUNDS 4109 ! 257: #define SET_MIRROR_MODE 4110 ! 258: ! 259: /* Spooler Error Codes */ ! 260: #define SP_NOTREPORTED 0x4000 ! 261: #define SP_ERROR (-1) ! 262: #define SP_APPABORT (-2) ! 263: #define SP_USERABORT (-3) ! 264: #define SP_OUTOFDISK (-4) ! 265: #define SP_OUTOFMEMORY (-5) ! 266: ! 267: #define PR_JOBSTATUS 0x0000 ! 268: ! 269: /* Object Definitions for EnumObjects(), GetObjectType() */ ! 270: #define OBJ_PEN 1 ! 271: #define OBJ_BRUSH 2 ! 272: #define OBJ_DC 3 ! 273: #define OBJ_METADC 4 ! 274: #define OBJ_PAL 5 ! 275: #define OBJ_FONT 6 ! 276: #define OBJ_BITMAP 7 ! 277: #define OBJ_REGION 8 ! 278: #define OBJ_METAFILE 9 ! 279: #define OBJ_MEMDC 10 ! 280: ! 281: /* xform stuff */ ! 282: #define MWT_IDENTITY 1 ! 283: #define MWT_LEFTMULTIPLY 2 ! 284: #define MWT_RIGHTMULTIPLY 3 ! 285: ! 286: #define MWT_MIN MWT_IDENTITY ! 287: #define MWT_MAX MWT_RIGHTMULTIPLY ! 288: ! 289: #define _XFORM_ ! 290: typedef struct tagXFORM ! 291: { ! 292: FLOAT eM11; ! 293: FLOAT eM12; ! 294: FLOAT eM21; ! 295: FLOAT eM22; ! 296: FLOAT eDx; ! 297: FLOAT eDy; ! 298: } XFORM, *PXFORM, FAR *LPXFORM; ! 299: ! 300: /* Bitmap Header Definition */ ! 301: typedef struct tagBITMAP ! 302: { ! 303: LONG bmType; ! 304: LONG bmWidth; ! 305: LONG bmHeight; ! 306: LONG bmWidthBytes; ! 307: WORD bmPlanes; ! 308: WORD bmBitsPixel; ! 309: LPSTR bmBits; ! 310: } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; ! 311: ! 312: typedef struct tagRGBTRIPLE { ! 313: BYTE rgbtBlue; ! 314: BYTE rgbtGreen; ! 315: BYTE rgbtRed; ! 316: } RGBTRIPLE; ! 317: ! 318: typedef struct tagRGBQUAD { ! 319: BYTE rgbBlue; ! 320: BYTE rgbGreen; ! 321: BYTE rgbRed; ! 322: BYTE rgbReserved; ! 323: } RGBQUAD; ! 324: ! 325: /* structures for defining DIBs */ ! 326: typedef struct tagBITMAPCOREHEADER { ! 327: DWORD bcSize; /* used to get to color table */ ! 328: WORD bcWidth; ! 329: WORD bcHeight; ! 330: WORD bcPlanes; ! 331: WORD bcBitCount; ! 332: } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; ! 333: ! 334: ! 335: typedef struct tagBITMAPINFOHEADER{ ! 336: DWORD biSize; ! 337: DWORD biWidth; ! 338: DWORD biHeight; ! 339: WORD biPlanes; ! 340: WORD biBitCount; ! 341: ! 342: DWORD biCompression; ! 343: DWORD biSizeImage; ! 344: DWORD biXPelsPerMeter; ! 345: DWORD biYPelsPerMeter; ! 346: DWORD biClrUsed; ! 347: DWORD biClrImportant; ! 348: } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; ! 349: ! 350: /* constants for the biCompression field */ ! 351: #define BI_RGB 0L ! 352: #define BI_RLE8 1L ! 353: #define BI_RLE4 2L ! 354: ! 355: typedef struct tagBITMAPINFO { ! 356: BITMAPINFOHEADER bmiHeader; ! 357: RGBQUAD bmiColors[1]; ! 358: } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; ! 359: ! 360: typedef struct tagBITMAPCOREINFO { ! 361: BITMAPCOREHEADER bmciHeader; ! 362: RGBTRIPLE bmciColors[1]; ! 363: } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; ! 364: ! 365: #pragma pack(2) ! 366: typedef struct tagBITMAPFILEHEADER { ! 367: WORD bfType; ! 368: DWORD bfSize; ! 369: WORD bfReserved1; ! 370: WORD bfReserved2; ! 371: DWORD bfOffBits; ! 372: } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; ! 373: #pragma pack() ! 374: ! 375: #define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) ! 376: ! 377: #ifndef NOMETAFILE ! 378: ! 379: /* Clipboard Metafile Picture Structure */ ! 380: typedef struct tagHANDLETABLE ! 381: { ! 382: HANDLE objectHandle[1]; ! 383: } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; ! 384: ! 385: typedef struct tagMETARECORD ! 386: { ! 387: DWORD rdSize; ! 388: WORD rdFunction; ! 389: WORD rdParm[1]; ! 390: } METARECORD, *PMETARECORD, FAR *LPMETARECORD; ! 391: ! 392: typedef struct tagMETAFILEPICT ! 393: { ! 394: DWORD mm; ! 395: DWORD xExt; ! 396: DWORD yExt; ! 397: HANDLE hMF; ! 398: } METAFILEPICT, FAR *LPMETAFILEPICT; ! 399: ! 400: typedef struct tagMETAHEADER ! 401: { ! 402: WORD mtType; ! 403: WORD mtHeaderSize; ! 404: WORD mtVersion; ! 405: DWORD mtSize; ! 406: WORD mtNoObjects; ! 407: DWORD mtMaxRecord; ! 408: WORD mtNoParameters; ! 409: } METAHEADER; ! 410: ! 411: #endif /* NOMETAFILE */ ! 412: ! 413: #ifndef NOTEXTMETRIC ! 414: ! 415: typedef struct tagTEXTMETRICA ! 416: { ! 417: LONG tmHeight; ! 418: LONG tmAscent; ! 419: LONG tmDescent; ! 420: LONG tmInternalLeading; ! 421: LONG tmExternalLeading; ! 422: LONG tmAveCharWidth; ! 423: LONG tmMaxCharWidth; ! 424: LONG tmWeight; ! 425: LONG tmOverhang; ! 426: LONG tmDigitizedAspectX; ! 427: LONG tmDigitizedAspectY; ! 428: BYTE tmFirstChar; ! 429: BYTE tmLastChar; ! 430: BYTE tmDefaultChar; ! 431: BYTE tmBreakChar; ! 432: BYTE tmItalic; ! 433: BYTE tmUnderlined; ! 434: BYTE tmStruckOut; ! 435: BYTE tmPitchAndFamily; ! 436: BYTE tmCharSet; ! 437: } TEXTMETRICA, *PTEXTMETRICA, NEAR *NPTEXTMETRICA, FAR *LPTEXTMETRICA; ! 438: typedef struct tagTEXTMETRICW ! 439: { ! 440: LONG tmHeight; ! 441: LONG tmAscent; ! 442: LONG tmDescent; ! 443: LONG tmInternalLeading; ! 444: LONG tmExternalLeading; ! 445: LONG tmAveCharWidth; ! 446: LONG tmMaxCharWidth; ! 447: LONG tmWeight; ! 448: LONG tmOverhang; ! 449: LONG tmDigitizedAspectX; ! 450: LONG tmDigitizedAspectY; ! 451: WCHAR tmFirstChar; ! 452: WCHAR tmLastChar; ! 453: WCHAR tmDefaultChar; ! 454: WCHAR tmBreakChar; ! 455: BYTE tmItalic; ! 456: BYTE tmUnderlined; ! 457: BYTE tmStruckOut; ! 458: BYTE tmPitchAndFamily; ! 459: BYTE tmCharSet; ! 460: } TEXTMETRICW, *PTEXTMETRICW, NEAR *NPTEXTMETRICW, FAR *LPTEXTMETRICW; ! 461: #ifdef UNICODE ! 462: #define TEXTMETRIC TEXTMETRICW ! 463: #define PTEXTMETRIC PTEXTMETRICW ! 464: #define NPTEXTMETRIC NPTEXTMETRICW ! 465: #define LPTEXTMETRIC LPTEXTMETRICW ! 466: #else ! 467: #define TEXTMETRIC TEXTMETRICA ! 468: #define PTEXTMETRIC PTEXTMETRICA ! 469: #define NPTEXTMETRIC NPTEXTMETRICA ! 470: #define LPTEXTMETRIC LPTEXTMETRICA ! 471: #endif // UNICODE ! 472: ! 473: #endif /* NOTEXTMETRIC */ ! 474: ! 475: /* GDI Logical Objects: */ ! 476: ! 477: /* Pel Array */ ! 478: typedef struct tagPELARRAY ! 479: { ! 480: LONG paXCount; ! 481: LONG paYCount; ! 482: LONG paXExt; ! 483: LONG paYExt; ! 484: BYTE paRGBs; ! 485: } PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY; ! 486: ! 487: /* Logical Brush (or Pattern) */ ! 488: typedef struct tagLOGBRUSH ! 489: { ! 490: DWORD lbStyle; ! 491: DWORD lbColor; ! 492: LONG lbHatch; ! 493: } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH; ! 494: ! 495: typedef LOGBRUSH PATTERN; ! 496: typedef PATTERN *PPATTERN; ! 497: typedef PATTERN NEAR *NPPATTERN; ! 498: typedef PATTERN FAR *LPPATTERN; ! 499: ! 500: /* Logical Pen */ ! 501: typedef struct tagLOGPEN ! 502: { ! 503: DWORD lopnStyle; ! 504: POINT lopnWidth; ! 505: DWORD lopnColor; ! 506: } LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN; ! 507: ! 508: typedef struct tagPALETTEENTRY { ! 509: BYTE peRed; ! 510: BYTE peGreen; ! 511: BYTE peBlue; ! 512: BYTE peFlags; ! 513: } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY; ! 514: ! 515: /* Logical Palette */ ! 516: typedef struct tagLOGPALETTE { ! 517: WORD palVersion; ! 518: WORD palNumEntries; ! 519: PALETTEENTRY palPalEntry[1]; ! 520: } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE; ! 521: ! 522: ! 523: /* Logical Font */ ! 524: #define LF_FACESIZE 32 ! 525: ! 526: ! 527: typedef struct tagLOGFONTA ! 528: { ! 529: LONG lfHeight; ! 530: LONG lfWidth; ! 531: LONG lfEscapement; ! 532: LONG lfOrientation; ! 533: LONG lfWeight; ! 534: BYTE lfItalic; ! 535: BYTE lfUnderline; ! 536: BYTE lfStrikeOut; ! 537: BYTE lfCharSet; ! 538: BYTE lfOutPrecision; ! 539: BYTE lfClipPrecision; ! 540: BYTE lfQuality; ! 541: BYTE lfPitchAndFamily; ! 542: BYTE lfFaceName[LF_FACESIZE]; ! 543: } LOGFONTA, *PLOGFONTA, NEAR *NPLOGFONTA, FAR *LPLOGFONTA; ! 544: typedef struct tagLOGFONTW ! 545: { ! 546: LONG lfHeight; ! 547: LONG lfWidth; ! 548: LONG lfEscapement; ! 549: LONG lfOrientation; ! 550: LONG lfWeight; ! 551: BYTE lfItalic; ! 552: BYTE lfUnderline; ! 553: BYTE lfStrikeOut; ! 554: BYTE lfCharSet; ! 555: BYTE lfOutPrecision; ! 556: BYTE lfClipPrecision; ! 557: BYTE lfQuality; ! 558: BYTE lfPitchAndFamily; ! 559: WCHAR lfFaceName[LF_FACESIZE]; ! 560: } LOGFONTW, *PLOGFONTW, NEAR *NPLOGFONTW, FAR *LPLOGFONTW; ! 561: #ifdef UNICODE ! 562: #define LOGFONT LOGFONTW ! 563: #define PLOGFONT PLOGFONTW ! 564: #define NPLOGFONT NPLOGFONTW ! 565: #define LPLOGFONT LPLOGFONTW ! 566: #else ! 567: #define LOGFONT LOGFONTA ! 568: #define PLOGFONT PLOGFONTA ! 569: #define NPLOGFONT NPLOGFONTA ! 570: #define LPLOGFONT LPLOGFONTA ! 571: #endif // UNICODE ! 572: ! 573: ! 574: #define OUT_DEFAULT_PRECIS 0 ! 575: #define OUT_STRING_PRECIS 1 ! 576: #define OUT_CHARACTER_PRECIS 2 ! 577: #define OUT_STROKE_PRECIS 3 ! 578: ! 579: #define CLIP_DEFAULT_PRECIS 0 ! 580: #define CLIP_CHARACTER_PRECIS 1 ! 581: #define CLIP_STROKE_PRECIS 2 ! 582: ! 583: #define DEFAULT_QUALITY 0 ! 584: #define DRAFT_QUALITY 1 ! 585: #define PROOF_QUALITY 2 ! 586: ! 587: #define DEFAULT_PITCH 0 ! 588: #define FIXED_PITCH 1 ! 589: #define VARIABLE_PITCH 2 ! 590: ! 591: #define ANSI_CHARSET 0 ! 592: #define SYMBOL_CHARSET 2 ! 593: #define SHIFTJIS_CHARSET 128 ! 594: #define OEM_CHARSET 255 ! 595: ! 596: /* Font Families */ ! 597: #define FF_DONTCARE (0<<4) /* Don't care or don't know. */ ! 598: #define FF_ROMAN (1<<4) /* Variable stroke width, serifed. */ ! 599: /* Times Roman, Century Schoolbook, etc. */ ! 600: #define FF_SWISS (2<<4) /* Variable stroke width, sans-serifed. */ ! 601: /* Helvetica, Swiss, etc. */ ! 602: #define FF_MODERN (3<<4) /* Constant stroke width, serifed or sans-serifed. */ ! 603: /* Pica, Elite, Courier, etc. */ ! 604: #define FF_SCRIPT (4<<4) /* Cursive, etc. */ ! 605: #define FF_DECORATIVE (5<<4) /* Old English, etc. */ ! 606: ! 607: /* Font Weights */ ! 608: #define FW_DONTCARE 0 ! 609: #define FW_THIN 100 ! 610: #define FW_EXTRALIGHT 200 ! 611: #define FW_LIGHT 300 ! 612: #define FW_NORMAL 400 ! 613: #define FW_MEDIUM 500 ! 614: #define FW_SEMIBOLD 600 ! 615: #define FW_BOLD 700 ! 616: #define FW_EXTRABOLD 800 ! 617: #define FW_HEAVY 900 ! 618: ! 619: #define FW_ULTRALIGHT FW_EXTRALIGHT ! 620: #define FW_REGULAR FW_NORMAL ! 621: #define FW_DEMIBOLD FW_SEMIBOLD ! 622: #define FW_ULTRABOLD FW_EXTRABOLD ! 623: #define FW_BLACK FW_HEAVY ! 624: ! 625: ! 626: typedef struct tagCHARSET { ! 627: DWORD aflBlock[3]; ! 628: DWORD flLang; ! 629: } CHARSET, *LPCHARSET; ! 630: ! 631: typedef struct tagPANOSE { ! 632: ULONG ulCulture; ! 633: BYTE bFamilyType; ! 634: BYTE bSerifStyle; ! 635: BYTE bWeight; ! 636: BYTE bProportion; ! 637: BYTE bContrast; ! 638: BYTE bStrokeVariation; ! 639: BYTE bArmStyle; ! 640: BYTE bLetterform; ! 641: BYTE bMidline; ! 642: BYTE bXHeight; ! 643: } PANOSE, *LPPANOSE; ! 644: ! 645: #define PAN_ANY 0 /* Any */ ! 646: #define PAN_NO_FIT 1 /* No Fit */ ! 647: ! 648: #define PAN_FAMILY_TEXT_DISPLAY 2 /* Text and Display */ ! 649: #define PAN_FAMILY_SCRIPT 3 /* Script */ ! 650: #define PAN_FAMILY_DECORATIVE 4 /* Decorative */ ! 651: #define PAN_FAMILY_PICTORIAL 5 /* Pictorial */ ! 652: ! 653: #define PAN_SERIF_COVE 2 /* Cove */ ! 654: #define PAN_SERIF_OBTUSE_COVE 3 /* Obtuse Cove */ ! 655: #define PAN_SERIF_SQUARE_COVE 4 /* Square Cove */ ! 656: #define PAN_SERIF_OBTUSE_SQUARE_COVE 5 /* Obtuse Square Cove */ ! 657: #define PAN_SERIF_SQUARE 6 /* Square */ ! 658: #define PAN_SERIF_THIN 7 /* Thin */ ! 659: #define PAN_SERIF_BONE 8 /* Bone */ ! 660: #define PAN_SERIF_EXAGGERATED 9 /* Exaggerated */ ! 661: #define PAN_SERIF_TRIANGLE 10 /* Triangle */ ! 662: #define PAN_SERIF_NORMAL_SANS 11 /* Normal Sans */ ! 663: #define PAN_SERIF_OBTUSE_SANS 12 /* Obtuse Sans */ ! 664: #define PAN_SERIF_PERP_SANS 13 /* Prep Sans */ ! 665: #define PAN_SERIF_FLARED 14 /* Flared */ ! 666: #define PAN_SERIF_ROUNDED 15 /* Rounded */ ! 667: ! 668: #define PAN_WEIGHT_VERY_LIGHT 2 /* Very Light */ ! 669: #define PAN_WEIGHT_LIGHT 3 /* Light */ ! 670: #define PAN_WEIGHT_THIN 4 /* Thin */ ! 671: #define PAN_WEIGHT_BOOK 5 /* Book */ ! 672: #define PAN_WEIGHT_MEDIUM 6 /* Medium */ ! 673: #define PAN_WEIGHT_DEMI 7 /* Demi */ ! 674: #define PAN_WEIGHT_BOLD 8 /* Bold */ ! 675: #define PAN_WEIGHT_HEAVY 9 /* Heavy */ ! 676: #define PAN_WEIGHT_BLACK 10 /* Black */ ! 677: #define PAN_WEIGHT_NORD 11 /* Nord */ ! 678: ! 679: #define PAN_PROP_OLD_STYLE 2 /* Old Style */ ! 680: #define PAN_PROP_MODERN 3 /* Modern */ ! 681: #define PAN_PROP_EVEN_WIDTH 4 /* Even Width */ ! 682: #define PAN_PROP_EXPANDED 5 /* Expanded */ ! 683: #define PAN_PROP_CONDENSED 6 /* Condensed */ ! 684: #define PAN_PROP_VERY_EXPANDED 7 /* Very Expanded */ ! 685: #define PAN_PROP_VERY_CONDENSED 8 /* Very Condensed */ ! 686: #define PAN_PROP_MONOSPACED 9 /* Monospaced */ ! 687: ! 688: #define PAN_CONTRAST_NONE 2 /* None */ ! 689: #define PAN_CONTRAST_VERY_LOW 3 /* Very Low */ ! 690: #define PAN_CONTRAST_LOW 4 /* Low */ ! 691: #define PAN_CONTRAST_MEDIUM_LOW 5 /* Medium Low */ ! 692: #define PAN_CONTRAST_MEDIUM 6 /* Medium */ ! 693: #define PAN_CONTRAST_MEDIUM_HIGH 7 /* Mediim High */ ! 694: #define PAN_CONTRAST_HIGH 8 /* High */ ! 695: #define PAN_CONTRAST_VERY_HIGH 9 /* Very High */ ! 696: ! 697: #define PAN_STROKE_GRADUAL_DIAG 2 /* Gradual/Diagonal */ ! 698: #define PAN_STROKE_GRADUAL_TRAN 3 /* Gradual/Transitional */ ! 699: #define PAN_STROKE_GRADUAL_VERT 4 /* Gradual/Vertical */ ! 700: #define PAN_STROKE_GRADUAL_HORZ 5 /* Gradual/Horizontal */ ! 701: #define PAN_STROKE_RAPID_VERT 6 /* Rapid/Vertical */ ! 702: #define PAN_STROKE_RAPID_HORZ 7 /* Rapid/Horizontal */ ! 703: #define PAN_STROKE_INSTANT_VERT 8 /* Instant/Vertical */ ! 704: ! 705: #define PAN_STRAIGHT_ARMS_HORZ 2 /* Straight Arms/Horizontal */ ! 706: #define PAN_STRAIGHT_ARMS_WEDGE 3 /* Straight Arms/Wedge */ ! 707: #define PAN_STRAIGHT_ARMS_VERT 4 /* Straight Arms/Vertical */ ! 708: #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5 /* Straight Arms/Single-Serif */ ! 709: #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6 /* Straight Arms/Double-Serif */ ! 710: #define PAN_BENT_ARMS_HORZ 7 /* Non-Straight Arms/Horizontal */ ! 711: #define PAN_BENT_ARMS_WEDGE 8 /* Non-Straight Arms/Wedge */ ! 712: #define PAN_BENT_ARMS_VERT 9 /* Non-Straight Arms/Vertical */ ! 713: #define PAN_BENT_ARMS_SINGLE_SERIF 10 /* Non-Straight Arms/Single-Serif */ ! 714: #define PAN_BENT_ARMS_DOUBLE_SERIF 11 /* Non-Straight Arms/Double-Serif */ ! 715: ! 716: #define PAN_LETT_NORMAL_CONTACT 2 /* Normal/Contact */ ! 717: #define PAN_LETT_NORMAL_WEIGHTED 3 /* Normal/Weighted */ ! 718: #define PAN_LETT_NORMAL_BOXED 4 /* Normal/Boxed */ ! 719: #define PAN_LETT_NORMAL_FLATTENED 5 /* Normal/Flattened */ ! 720: #define PAN_LETT_NORMAL_ROUNDED 6 /* Normal/Rounded */ ! 721: #define PAN_LETT_NORMAL_OFF_CENTER 7 /* Normal/Off Center */ ! 722: #define PAN_LETT_NORMAL_SQUARE 8 /* Normal/Square */ ! 723: #define PAN_LETT_OBLIQUE_CONTACT 9 /* Oblique/Contact */ ! 724: #define PAN_LETT_OBLIQUE_WEIGHTED 10 /* Oblique/Weighted */ ! 725: #define PAN_LETT_OBLIQUE_BOXED 11 /* Oblique/Boxed */ ! 726: #define PAN_LETT_OBLIQUE_FLATTENED 12 /* Oblique/Flattened */ ! 727: #define PAN_LETT_OBLIQUE_ROUNDED 13 /* Oblique/Rounded */ ! 728: #define PAN_LETT_OBLIQUE_OFF_CENTER 14 /* Oblique/Off Center */ ! 729: #define PAN_LETT_OBLIQUE_SQUARE 15 /* Oblique/Square */ ! 730: ! 731: #define PAN_MIDLINE_STANDARD_TRIMMED 2 /* Standard/Trimmed */ ! 732: #define PAN_MIDLINE_STANDARD_POINTED 3 /* Standard/Pointed */ ! 733: #define PAN_MIDLINE_STANDARD_SERIFED 4 /* Standard/Serifed */ ! 734: #define PAN_MIDLINE_HIGH_TRIMMED 5 /* High/Trimmed */ ! 735: #define PAN_MIDLINE_HIGH_POINTED 6 /* High/Pointed */ ! 736: #define PAN_MIDLINE_HIGH_SERIFED 7 /* High/Serifed */ ! 737: #define PAN_MIDLINE_CONSTANT_TRIMMED 8 /* Constant/Trimmed */ ! 738: #define PAN_MIDLINE_CONSTANT_POINTED 9 /* Constant/Pointed */ ! 739: #define PAN_MIDLINE_CONSTANT_SERIFED 10 /* Constant/Serifed */ ! 740: #define PAN_MIDLINE_LOW_TRIMMED 11 /* Low/Trimmed */ ! 741: #define PAN_MIDLINE_LOW_POINTED 12 /* Low/Pointed */ ! 742: #define PAN_MIDLINE_LOW_SERIFED 13 /* Low/Serifed */ ! 743: ! 744: #define PAN_XHEIGHT_CONSTANT_SMALL 2 /* Constant/Small */ ! 745: #define PAN_XHEIGHT_CONSTANT_STD 3 /* Constant/Standard */ ! 746: #define PAN_XHEIGHT_CONSTANT_LARGE 4 /* Constant/Large */ ! 747: #define PAN_XHEIGHT_DUCKING_SMALL 5 /* Ducking/Small */ ! 748: #define PAN_XHEIGHT_DUCKING_STD 6 /* Ducking/Standard */ ! 749: #define PAN_XHEIGHT_DUCKING_LARGE 7 /* Ducking/Large */ ! 750: ! 751: ! 752: #define ELF_FAMILY_SIZE 32 ! 753: ! 754: /* The extended logical font */ ! 755: ! 756: typedef struct tagEXTLOGFONTA { ! 757: LOGFONTA elfLogFont; ! 758: DWORD elfSize; ! 759: DWORD elfTech; ! 760: DWORD elfXHeight; ! 761: PANOSE elfPanose; ! 762: CHARSET elfCharset; ! 763: BYTE elfFamily[ELF_FAMILY_SIZE]; ! 764: } EXTLOGFONTA, *LPEXTLOGFONTA; ! 765: typedef struct tagEXTLOGFONTW { ! 766: LOGFONTW elfLogFont; ! 767: DWORD elfSize; ! 768: DWORD elfTech; ! 769: DWORD elfXHeight; ! 770: PANOSE elfPanose; ! 771: CHARSET elfCharset; ! 772: WCHAR elfFamily[ELF_FAMILY_SIZE]; ! 773: } EXTLOGFONTW, *LPEXTLOGFONTW; ! 774: #ifdef UNICODE ! 775: #define EXTLOGFONT EXTLOGFONTW ! 776: #define LPEXTLOGFONT LPEXTLOGFONTW ! 777: #else ! 778: #define EXTLOGFONT EXTLOGFONTA ! 779: #define LPEXTLOGFONT LPEXTLOGFONTA ! 780: #endif // UNICODE ! 781: ! 782: /* Allowed values for EXTLOGFONT::elfTech */ ! 783: #define ELF_ANY 0 ! 784: #define ELF_OUTLINE 1 ! 785: #define ELF_BITMAP 2 ! 786: #define ELF_STICK 3 ! 787: ! 788: /* complete set font attribute weights */ ! 789: typedef struct tagFMWEIGHTSET { ! 790: WORD wtFaceName; ! 791: WORD wtFamilyName; ! 792: WORD wtAvgWidth; ! 793: WORD wtXHeight; ! 794: WORD wtSize; ! 795: WORD wtTech; ! 796: WORD wtPanose; ! 797: WORD wtPanFamily; ! 798: WORD wtPanSerif; ! 799: WORD wtPanWeight; ! 800: WORD wtPanProp; ! 801: WORD wtPanContrast; ! 802: WORD wtPanStrokeVar; ! 803: WORD wtPanArmStyle; ! 804: WORD wtPanLetter; ! 805: WORD wtPanMidline; ! 806: WORD wtPanXHeight; ! 807: WORD wtCharSet; ! 808: } FMWEIGHTSET, *LPFMWEIGHTSET; ! 809: ! 810: /* the complete set of font attribute distances */ ! 811: typedef struct tagFMDISTANCESET { ! 812: WORD dFaceName; ! 813: WORD dFamilyName; ! 814: WORD dAvgWidth; ! 815: WORD dXHeight; ! 816: WORD dSize; ! 817: WORD dTech; ! 818: WORD dPanose; ! 819: WORD dPanFamily; ! 820: WORD dPanSerif; ! 821: WORD dPanWeight; ! 822: WORD dPanProp; ! 823: WORD dPanContrast; ! 824: WORD dPanStrokeVar; ! 825: WORD dPanArmStyle; ! 826: WORD dPanLetter; ! 827: WORD dPanMidline; ! 828: WORD dPanXHeight; ! 829: WORD dCharSet; ! 830: } FMDISTANCESET, *LPFMDISTANCESET; ! 831: ! 832: typedef struct tagFMCONTROLS { ! 833: DWORD size; ! 834: DWORD distsetSumMax; ! 835: FMDISTANCESET distsetMax; ! 836: FMWEIGHTSET wtsetNear; ! 837: FMWEIGHTSET wtsetFar; ! 838: } FMCONTROLS, *LPFMCONTROLS; ! 839: ! 840: #define SIZEOFFMCONTROLS sizeof(FMCONTROLS) ! 841: ! 842: typedef struct tagFMATCHA { ! 843: DWORD size; ! 844: DWORD type; ! 845: DWORD distsetSum; ! 846: FMDISTANCESET distset; ! 847: EXTLOGFONTA ExtLogFont; ! 848: } FMATCHA,*LPFMATCHA; ! 849: typedef struct tagFMATCHW { ! 850: DWORD size; ! 851: DWORD type; ! 852: DWORD distsetSum; ! 853: FMDISTANCESET distset; ! 854: EXTLOGFONTW ExtLogFont; ! 855: } FMATCHW,*LPFMATCHW; ! 856: #ifdef UNICODE ! 857: #define FMATCH FMATCHW ! 858: #define LPFMATCH LPFMATCHW ! 859: #else ! 860: #define FMATCH FMATCHA ! 861: #define LPFMATCH LPFMATCHA ! 862: #endif // UNICODE ! 863: ! 864: /* Allowed values for FMATCH::wType */ ! 865: #define FMATCH_EXACT 0 ! 866: #define FMATCH_NEAR 1 ! 867: #define FMATCH_FAR 2 ! 868: ! 869: ! 870: ! 871: /* EnumFonts Masks */ ! 872: #define RASTER_FONTTYPE 0x0001 ! 873: #define DEVICE_FONTTYPE 0X0002 ! 874: ! 875: #define RGB(r,g,b) ((DWORD)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16))) ! 876: #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b)) ! 877: #define PALETTEINDEX(i) ((DWORD)(0x01000000 | (WORD)(i))) ! 878: ! 879: /* palette entry flags */ ! 880: ! 881: #define PC_RESERVED 0x01 /* palette index used for animation */ ! 882: #define PC_EXPLICIT 0x02 /* palette index is explicit to device */ ! 883: #define PC_NOCOLLAPSE 0x04 /* do not match color to system palette */ ! 884: ! 885: #define GetRValue(rgb) ((BYTE)(rgb)) ! 886: #define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8)) ! 887: #define GetBValue(rgb) ((BYTE)((rgb)>>16)) ! 888: ! 889: /* Background Modes */ ! 890: #define TRANSPARENT 1 ! 891: #define OPAQUE 2 ! 892: #define BKMODE_LAST 2 ! 893: ! 894: /* PolyDraw and GetPath point types */ ! 895: #define PT_CLOSEFIGURE 0x01 ! 896: #define PT_LINETO 0x02 ! 897: #define PT_BEZIERTO 0x04 ! 898: #define PT_MOVETO 0x06 ! 899: ! 900: /* Mapping Modes */ ! 901: #define MM_TEXT 1 ! 902: #define MM_LOMETRIC 2 ! 903: #define MM_HIMETRIC 3 ! 904: #define MM_LOENGLISH 4 ! 905: #define MM_HIENGLISH 5 ! 906: #define MM_TWIPS 6 ! 907: ! 908: #define MM_ISOTROPIC 7 ! 909: #define MM_ANISOTROPIC 8 ! 910: ! 911: /* ! 912: Current mapping occurs in 'logical' scale. To ! 913: use 'actual' scale, OR this to modes 2-6 above. ! 914: */ ! 915: #define MM_REAL_UNITS 16 ! 916: ! 917: /* Min and Max Mapping Mode values */ ! 918: #define MM_MIN MM_TEXT ! 919: #define MM_MAX MM_ANISOTROPIC ! 920: #define MM_MAX_FIXEDSCALE MM_TWIPS ! 921: #define MM_REAL_MIN (MM_REAL_UNITS | MM_LOMETRIC) ! 922: #define MM_REAL_MAX (MM_REAL_UNITS | MM_TWIPS) ! 923: ! 924: /* Coordinate Modes */ ! 925: #define ABSOLUTE 1 ! 926: #define RELATIVE 2 ! 927: ! 928: /* Stock Logical Objects */ ! 929: #define WHITE_BRUSH 0 ! 930: #define LTGRAY_BRUSH 1 ! 931: #define GRAY_BRUSH 2 ! 932: #define DKGRAY_BRUSH 3 ! 933: #define BLACK_BRUSH 4 ! 934: #define NULL_BRUSH 5 ! 935: #define HOLLOW_BRUSH NULL_BRUSH ! 936: #define WHITE_PEN 6 ! 937: #define BLACK_PEN 7 ! 938: #define NULL_PEN 8 ! 939: #define OEM_FIXED_FONT 10 ! 940: #define ANSI_FIXED_FONT 11 ! 941: #define ANSI_VAR_FONT 12 ! 942: #define SYSTEM_FONT 13 ! 943: #define DEVICE_DEFAULT_FONT 14 ! 944: #define DEFAULT_PALETTE 15 ! 945: #define SYSTEM_FIXED_FONT 16 ! 946: #define STOCK_LAST 16 ! 947: ! 948: #define CLR_INVALID 0x80000000 ! 949: ! 950: /* Brush Styles */ ! 951: #define BS_SOLID 0 ! 952: #define BS_NULL 1 ! 953: #define BS_HOLLOW BS_NULL ! 954: #define BS_HATCHED 2 ! 955: #define BS_PATTERN 3 ! 956: #define BS_INDEXED 4 ! 957: #define BS_DIBPATTERN 5 ! 958: ! 959: /* Hatch Styles */ ! 960: #define HS_HORIZONTAL 0 /* ----- */ ! 961: #define HS_VERTICAL 1 /* ||||| */ ! 962: #define HS_FDIAGONAL 2 /* \\\\\ */ ! 963: #define HS_BDIAGONAL 3 /* ///// */ ! 964: #define HS_CROSS 4 /* +++++ */ ! 965: #define HS_DIAGCROSS 5 /* xxxxx */ ! 966: #define HS_FDIAGONAL1 6 ! 967: #define HS_BDIAGONAL1 7 ! 968: #define HS_SOLID 8 ! 969: #define HS_DENSE1 9 ! 970: #define HS_DENSE2 10 ! 971: #define HS_DENSE3 11 ! 972: #define HS_DENSE4 12 ! 973: #define HS_DENSE5 13 ! 974: #define HS_DENSE6 14 ! 975: #define HS_DENSE7 15 ! 976: #define HS_DENSE8 16 ! 977: #define HS_NOSHADE 17 ! 978: #define HS_HALFTONE 18 ! 979: #define HS_API_MAX 19 ! 980: ! 981: /* Pen Styles */ ! 982: #define PS_SOLID 0 ! 983: #define PS_DASH 1 /* ------- */ ! 984: #define PS_DOT 2 /* ....... */ ! 985: #define PS_DASHDOT 3 /* _._._._ */ ! 986: #define PS_DASHDOTDOT 4 /* _.._.._ */ ! 987: #define PS_NULL 5 ! 988: #define PS_INSIDEFRAME 6 ! 989: ! 990: /* Device Parameters for GetDeviceCaps() */ ! 991: #define DRIVERVERSION 0 /* Device driver version */ ! 992: #define TECHNOLOGY 2 /* Device classification */ ! 993: #define HORZSIZE 4 /* Horizontal size in millimeters */ ! 994: #define VERTSIZE 6 /* Vertical size in millimeters */ ! 995: #define HORZRES 8 /* Horizontal width in pixels */ ! 996: #define VERTRES 10 /* Vertical width in pixels */ ! 997: #define BITSPIXEL 12 /* Number of bits per pixel */ ! 998: #define PLANES 14 /* Number of planes */ ! 999: #define NUMBRUSHES 16 /* Number of brushes the device has */ ! 1000: #define NUMPENS 18 /* Number of pens the device has */ ! 1001: #define NUMMARKERS 20 /* Number of markers the device has */ ! 1002: #define NUMFONTS 22 /* Number of fonts the device has */ ! 1003: #define NUMCOLORS 24 /* Number of colors the device supports */ ! 1004: #define PDEVICESIZE 26 /* Size required for device descriptor */ ! 1005: #define CURVECAPS 28 /* Curve capabilities */ ! 1006: #define LINECAPS 30 /* Line capabilities */ ! 1007: #define POLYGONALCAPS 32 /* Polygonal capabilities */ ! 1008: #define TEXTCAPS 34 /* Text capabilities */ ! 1009: #define CLIPCAPS 36 /* Clipping capabilities */ ! 1010: #define RASTERCAPS 38 /* Bitblt capabilities */ ! 1011: #define ASPECTX 40 /* Length of the X leg */ ! 1012: #define ASPECTY 42 /* Length of the Y leg */ ! 1013: #define ASPECTXY 44 /* Length of the hypotenuse */ ! 1014: ! 1015: #define LOGPIXELSX 88 /* Logical pixels/inch in X */ ! 1016: #define LOGPIXELSY 90 /* Logical pixels/inch in Y */ ! 1017: ! 1018: #define SIZEPALETTE 104 /* Number of entries in physical palette */ ! 1019: #define NUMRESERVED 106 /* Number of reserved entries in palette */ ! 1020: #define COLORRES 108 /* Actual color resolution */ ! 1021: ! 1022: ! 1023: // Printing related DeviceCaps. These replace the appropriate Escapes ! 1024: ! 1025: #define PHYSICALWIDTH 110 // Physical Width in device units ! 1026: #define PHYSICALHEIGHT 111 // Physical Height in device units ! 1027: #define PHYSICALOFFSETX 112 // Physical Printable Area x margin ! 1028: #define PHYSICALOFFSETY 113 // Physical Printable Area y margin ! 1029: #define SCALINGFACTORX 114 // Scaling factor x ! 1030: #define SCALINGFACTORY 115 // Scaling factor y ! 1031: ! 1032: #ifndef NOGDICAPMASKS ! 1033: ! 1034: /* Device Capability Masks: */ ! 1035: ! 1036: /* Device Technologies */ ! 1037: #define DT_PLOTTER 0 /* Vector plotter */ ! 1038: #define DT_RASDISPLAY 1 /* Raster display */ ! 1039: #define DT_RASPRINTER 2 /* Raster printer */ ! 1040: #define DT_RASCAMERA 3 /* Raster camera */ ! 1041: #define DT_CHARSTREAM 4 /* Character-stream, PLP */ ! 1042: #define DT_METAFILE 5 /* Metafile, VDM */ ! 1043: #define DT_DISPFILE 6 /* Display-file */ ! 1044: ! 1045: /* Curve Capabilities */ ! 1046: #define CC_NONE 0 /* Curves not supported */ ! 1047: #define CC_CIRCLES 1 /* Can do circles */ ! 1048: #define CC_PIE 2 /* Can do pie wedges */ ! 1049: #define CC_CHORD 4 /* Can do chord arcs */ ! 1050: #define CC_ELLIPSES 8 /* Can do ellipese */ ! 1051: #define CC_WIDE 16 /* Can do wide lines */ ! 1052: #define CC_STYLED 32 /* Can do styled lines */ ! 1053: #define CC_WIDESTYLED 64 /* Can do wide styled lines */ ! 1054: #define CC_INTERIORS 128 /* Can do interiors */ ! 1055: ! 1056: /* Line Capabilities */ ! 1057: #define LC_NONE 0 /* Lines not supported */ ! 1058: #define LC_POLYLINE 2 /* Can do polylines */ ! 1059: #define LC_MARKER 4 /* Can do markers */ ! 1060: #define LC_POLYMARKER 8 /* Can do polymarkers */ ! 1061: #define LC_WIDE 16 /* Can do wide lines */ ! 1062: #define LC_STYLED 32 /* Can do styled lines */ ! 1063: #define LC_WIDESTYLED 64 /* Can do wide styled lines */ ! 1064: #define LC_INTERIORS 128 /* Can do interiors */ ! 1065: ! 1066: /* Polygonal Capabilities */ ! 1067: #define PC_NONE 0 /* Polygonals not supported */ ! 1068: #define PC_POLYGON 1 /* Can do polygons */ ! 1069: #define PC_RECTANGLE 2 /* Can do rectangles */ ! 1070: #define PC_WINDPOLYGON 4 /* Can do winding polygons */ ! 1071: #define PC_TRAPEZOID 4 /* Can do trapezoids */ ! 1072: #define PC_SCANLINE 8 /* Can do scanlines */ ! 1073: #define PC_WIDE 16 /* Can do wide borders */ ! 1074: #define PC_STYLED 32 /* Can do styled borders */ ! 1075: #define PC_WIDESTYLED 64 /* Can do wide styled borders */ ! 1076: #define PC_INTERIORS 128 /* Can do interiors */ ! 1077: ! 1078: /* Polygonal Capabilities */ ! 1079: #define CP_NONE 0 /* No clipping of output */ ! 1080: #define CP_RECTANGLE 1 /* Output clipped to rects */ ! 1081: ! 1082: /* Text Capabilities */ ! 1083: #define TC_OP_CHARACTER 0x0001 /* Can do OutputPrecision CHARACTER */ ! 1084: #define TC_OP_STROKE 0x0002 /* Can do OutputPrecision STROKE */ ! 1085: #define TC_CP_STROKE 0x0004 /* Can do ClipPrecision STROKE */ ! 1086: #define TC_CR_90 0x0008 /* Can do CharRotAbility 90 */ ! 1087: #define TC_CR_ANY 0x0010 /* Can do CharRotAbility ANY */ ! 1088: #define TC_SF_X_YINDEP 0x0020 /* Can do ScaleFreedom X_YINDEPENDENT */ ! 1089: #define TC_SA_DOUBLE 0x0040 /* Can do ScaleAbility DOUBLE */ ! 1090: #define TC_SA_INTEGER 0x0080 /* Can do ScaleAbility INTEGER */ ! 1091: #define TC_SA_CONTIN 0x0100 /* Can do ScaleAbility CONTINUOUS */ ! 1092: #define TC_EA_DOUBLE 0x0200 /* Can do EmboldenAbility DOUBLE */ ! 1093: #define TC_IA_ABLE 0x0400 /* Can do ItalisizeAbility ABLE */ ! 1094: #define TC_UA_ABLE 0x0800 /* Can do UnderlineAbility ABLE */ ! 1095: #define TC_SO_ABLE 0x1000 /* Can do StrikeOutAbility ABLE */ ! 1096: #define TC_RA_ABLE 0x2000 /* Can do RasterFontAble ABLE */ ! 1097: #define TC_VA_ABLE 0x4000 /* Can do VectorFontAble ABLE */ ! 1098: #define TC_RESERVED 0x8000 ! 1099: ! 1100: #endif /* NOGDICAPMASKS */ ! 1101: ! 1102: /* Raster Capabilities */ ! 1103: #define RC_BITBLT 1 /* Can do standard BLT. */ ! 1104: #define RC_BANDING 2 /* Device requires banding support */ ! 1105: #define RC_SCALING 4 /* Device requires scaling support */ ! 1106: #define RC_BITMAP64 8 /* Device can support >64K bitmap */ ! 1107: #define RC_GDI20_OUTPUT 0x0010 /* has 2.0 output calls */ ! 1108: #define RC_DI_BITMAP 0x0080 /* supports DIB to memory */ ! 1109: #define RC_PALETTE 0x0100 /* supports a palette */ ! 1110: #define RC_DIBTODEV 0x0200 /* supports DIBitsToDevice */ ! 1111: #define RC_BIGFONT 0x0400 /* supports >64K fonts */ ! 1112: #define RC_STRETCHBLT 0x0800 /* supports StretchBlt */ ! 1113: #define RC_FLOODFILL 0x1000 /* supports FloodFill */ ! 1114: #define RC_STRETCHDIB 0x2000 /* supports StretchDIBits */ ! 1115: ! 1116: /* DIB color table identifiers */ ! 1117: ! 1118: #define DIB_RGB_COLORS 0 /* color table in RGBTriples */ ! 1119: #define DIB_PAL_COLORS 1 /* color table in palette indices */ ! 1120: #define DIB_PAL_INDICES 2 /* no color table, the indices are in */ ! 1121: /* the DC the bitmap will be selected into */ ! 1122: ! 1123: ! 1124: /* constants for Get/SetSystemPaletteUse() */ ! 1125: ! 1126: #define SYSPAL_ERROR 0 ! 1127: #define SYSPAL_STATIC 1 ! 1128: #define SYSPAL_NOSTATIC 2 ! 1129: ! 1130: /* constants for CreateDIBitmap */ ! 1131: #define CBM_INIT 0x04L /* initialize bitmap */ ! 1132: ! 1133: #ifndef NODRAWTEXT ! 1134: ! 1135: /* DrawText() Format Flags */ ! 1136: #define DT_TOP 0x0000 ! 1137: #define DT_LEFT 0x0000 ! 1138: #define DT_CENTER 0x0001 ! 1139: #define DT_RIGHT 0x0002 ! 1140: #define DT_VCENTER 0x0004 ! 1141: #define DT_BOTTOM 0x0008 ! 1142: #define DT_WORDBREAK 0x0010 ! 1143: #define DT_SINGLELINE 0x0020 ! 1144: #define DT_EXPANDTABS 0x0040 ! 1145: #define DT_TABSTOP 0x0080 ! 1146: #define DT_NOCLIP 0x0100 ! 1147: #define DT_EXTERNALLEADING 0x0200 ! 1148: #define DT_CALCRECT 0x0400 ! 1149: #define DT_NOPREFIX 0x0800 ! 1150: #define DT_INTERNAL 0x1000 ! 1151: ! 1152: #endif /* NODRAWTEXT */ ! 1153: ! 1154: /* ExtFloodFill style flags */ ! 1155: #define FLOODFILLBORDER 0 ! 1156: #define FLOODFILLSURFACE 1 ! 1157: ! 1158: typedef struct _devicemode { ! 1159: char dmDeviceName[32]; ! 1160: WORD dmSpecVersion; ! 1161: WORD dmDriverVersion; ! 1162: WORD dmSize; ! 1163: WORD dmDriverExtra; ! 1164: DWORD dmFields; ! 1165: short dmOrientation; ! 1166: short dmPaperSize; ! 1167: short dmPaperLength; ! 1168: short dmPaperWidth; ! 1169: short dmScale; ! 1170: short dmCopies; ! 1171: short dmDefaultSource; ! 1172: short dmPrintQuality; ! 1173: short dmColor; ! 1174: short dmDuplex; ! 1175: } DEVMODE, *PDEVMODE, *NPDEVMODE, *LPDEVMODE; ! 1176: ! 1177: /* GetRegionData/ExtCreateRegion */ ! 1178: ! 1179: #define RDH_RECTANGLES 1 ! 1180: ! 1181: typedef struct _RGNDATAHEADER { ! 1182: DWORD dwSize; ! 1183: DWORD iType; ! 1184: DWORD nCount; ! 1185: } RGNDATAHEADER, *PRGNDATAHEADER; ! 1186: ! 1187: typedef struct _RGNDATA { ! 1188: RGNDATAHEADER rdh; ! 1189: char Buffer[1]; ! 1190: } RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA; ! 1191: ! 1192: int APIENTRY AddFontResourceA(IN LPSTR); ! 1193: int APIENTRY AddFontResourceW(IN LPWSTR); ! 1194: #ifdef UNICODE ! 1195: #define AddFontResource AddFontResourceW ! 1196: #else ! 1197: #define AddFontResource AddFontResourceA ! 1198: #endif // !UNICODE ! 1199: ! 1200: int APIENTRY AddFontModule(IN HMODULE); ! 1201: BOOL APIENTRY AnimatePalette(IN HPALETTE, IN UINT, IN UINT, IN LPPALETTEENTRY); ! 1202: BOOL BATCH APIENTRY Arc(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); ! 1203: BOOL BATCH APIENTRY BitBlt(IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN DWORD); ! 1204: BOOL BATCH APIENTRY Chord(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); ! 1205: HMF APIENTRY CloseMetaFile(IN HDC); ! 1206: int APIENTRY CombineRgn(IN HRGN, IN HRGN, IN HRGN, IN int); ! 1207: HMF APIENTRY CopyMetaFile(IN HMF, IN LPSTR); ! 1208: HBITMAP APIENTRY CreateBitmap(IN int, IN int, IN UINT, IN UINT, IN LPBYTE); ! 1209: HBITMAP APIENTRY CreateBitmapIndirect(IN LPBITMAP); ! 1210: HBRUSH APIENTRY CreateBrushIndirect(IN LPLOGBRUSH); ! 1211: HBITMAP APIENTRY CreateCompatibleBitmap(IN HDC, IN int, IN int); ! 1212: HBITMAP APIENTRY CreateDiscardableBitmap(IN HDC, IN int, IN int); ! 1213: HDC APIENTRY CreateCompatibleDC(IN HDC); ! 1214: HDC APIENTRY CreateDC(IN LPSTR, IN LPSTR OPTIONAL, IN LPSTR OPTIONAL, IN LPDEVMODE OPTIONAL); ! 1215: HBITMAP APIENTRY CreateDIBitmap(IN HDC, IN LPBITMAPINFOHEADER, IN DWORD, IN LPBYTE, IN LPBITMAPINFO, IN DWORD); ! 1216: HBITMAP APIENTRY CreateDIBSection(IN HDC, IN LPBITMAPINFO, IN DWORD, IN DWORD, OUT LPBYTE *); ! 1217: HBRUSH APIENTRY CreateDIBPatternBrush(IN GLOBALHANDLE, IN DWORD); ! 1218: HBRUSH APIENTRY CreateDIBPatternBrushPt(IN LPVOID, IN DWORD); ! 1219: HRGN APIENTRY CreateEllipticRgn(IN int, IN int, IN int, IN int); ! 1220: HRGN APIENTRY CreateEllipticRgnIndirect(IN LPRECT); ! 1221: ! 1222: HFONT APIENTRY CreateFontIndirectA(IN LPLOGFONTA); ! 1223: HFONT APIENTRY CreateFontIndirectW(IN LPLOGFONTW); ! 1224: #ifdef UNICODE ! 1225: #define CreateFontIndirect CreateFontIndirectW ! 1226: #else ! 1227: #define CreateFontIndirect CreateFontIndirectA ! 1228: #endif // !UNICODE ! 1229: HFONT APIENTRY CreateFontA(IN int, IN int, IN int, IN int, IN int, IN DWORD, ! 1230: IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, ! 1231: IN DWORD, IN DWORD, IN LPSTR); ! 1232: HFONT APIENTRY CreateFontW(IN int, IN int, IN int, IN int, IN int, IN DWORD, ! 1233: IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, ! 1234: IN DWORD, IN DWORD, IN LPWSTR); ! 1235: #ifdef UNICODE ! 1236: #define CreateFont CreateFontW ! 1237: #else ! 1238: #define CreateFont CreateFontA ! 1239: #endif // !UNICODE ! 1240: ! 1241: HBRUSH APIENTRY CreateHatchBrush(IN int, IN COLORREF); ! 1242: HDC APIENTRY CreateIC(IN LPSTR, IN LPSTR OPTIONAL, IN LPSTR OPTIONAL, IN LPDEVMODE OPTIONAL); ! 1243: HMF APIENTRY CreateMetaFile(IN LPSTR); ! 1244: HPALETTE APIENTRY CreatePalette(IN LPLOGPALETTE); ! 1245: HPEN APIENTRY CreatePen(IN int, IN int, IN COLORREF); ! 1246: HPEN APIENTRY CreatePenIndirect(IN LPLOGPEN); ! 1247: HRGN APIENTRY CreatePolyPolygonRgn(IN LPPOINT, IN LPINT, IN int, IN int); ! 1248: HBRUSH APIENTRY CreatePatternBrush(IN HBITMAP); ! 1249: HRGN APIENTRY CreateRectRgn(IN int, IN int, IN int, IN int); ! 1250: HRGN APIENTRY CreateRectRgnIndirect(IN LPRECT); ! 1251: HRGN APIENTRY CreateRoundRectRgn(IN int, IN int, IN int, IN int, IN int, IN int); ! 1252: HBRUSH APIENTRY CreateSolidBrush(IN COLORREF); ! 1253: ! 1254: BOOL APIENTRY DeleteDC(IN HDC); ! 1255: BOOL APIENTRY DeleteMetaFile(IN HMF); ! 1256: BOOL APIENTRY DeleteObject(IN HANDLE); ! 1257: int APIENTRY DeviceCapabilitiesEx(IN LPSTR, IN LPSTR, IN LPSTR, IN int, OUT LPSTR, IN LPDEVMODE OPTIONAL); ! 1258: BOOL APIENTRY DeviceModeEx(IN HWND, IN LPSTR, IN LPSTR, IN LPSTR); ! 1259: ! 1260: BOOL BATCH APIENTRY Ellipse(IN HDC, IN int, IN int, IN int, IN int); ! 1261: ! 1262: int APIENTRY EnumFontsA(IN HDC, IN LPSTR, IN PROC, IN LPVOID); ! 1263: int APIENTRY EnumFontsW(IN HDC, IN LPWSTR, IN PROC, IN LPVOID); ! 1264: #ifdef UNICODE ! 1265: #define EnumFonts EnumFontsW ! 1266: #else ! 1267: #define EnumFonts EnumFontsA ! 1268: #endif // !UNICODE ! 1269: ! 1270: int APIENTRY EnumObjects(IN HDC, IN int, IN PROC, IN LPVOID); ! 1271: BOOL APIENTRY EqualRgn(IN HRGN, IN HRGN); ! 1272: int APIENTRY Escape(IN HDC,IN int,IN int,IN LPSTR,OUT LPSTR); ! 1273: int APIENTRY ExcludeClipRect(IN HDC, IN int, IN int, IN int, IN int); ! 1274: HRGN APIENTRY ExtCreateRegion(IN LPXFORM, IN DWORD, IN LPRGNDATA); ! 1275: LONG APIENTRY ExtDeviceModeEx(IN HWND, IN LPSTR, OUT LPDEVMODE, IN LPSTR, IN LPSTR, IN LPDEVMODE, IN LPSTR, IN DWORD); ! 1276: BOOL BATCH APIENTRY ExtFloodFill(IN HDC, IN int, IN int, IN COLORREF, IN UINT); ! 1277: BOOL BATCH APIENTRY FillRgn(IN HDC, IN HRGN, IN HBRUSH); ! 1278: BOOL BATCH APIENTRY FloodFill(IN HDC, IN int, IN int, IN COLORREF); ! 1279: BOOL BATCH APIENTRY FrameRgn(IN HDC, IN HRGN, IN HBRUSH, IN int, IN int); ! 1280: int APIENTRY GetROP2(IN HDC); ! 1281: BOOL APIENTRY GetAspectRatioFilterEx(IN HDC, OUT LPSIZE); ! 1282: COLORREF APIENTRY GetBkColor(IN HDC); ! 1283: int APIENTRY GetBkMode(IN HDC); ! 1284: DWORD APIENTRY GetBitmapBits(IN HBITMAP, IN DWORD, OUT LPBYTE); ! 1285: BOOL APIENTRY GetBitmapDimensionEx(IN HBITMAP, OUT LPSIZE); ! 1286: BOOL APIENTRY GetBrushOrgEx(IN HDC, OUT LPPOINT); ! 1287: ! 1288: BOOL APIENTRY GetCharWidthA(IN HDC, IN UINT, IN UINT, OUT LPINT); ! 1289: BOOL APIENTRY GetCharWidthW(IN HDC, IN UINT, IN UINT, OUT LPINT); ! 1290: #ifdef UNICODE ! 1291: #define GetCharWidth GetCharWidthW ! 1292: #else ! 1293: #define GetCharWidth GetCharWidthA ! 1294: #endif // !UNICODE ! 1295: BOOL APIENTRY GetCharWidthW(IN HDC, IN UINT, IN UINT, OUT LPINT); ! 1296: ! 1297: int APIENTRY GetClipBox(IN HDC, OUT LPRECT); ! 1298: int APIENTRY GetClipRgn(IN HDC, IN HRGN); ! 1299: HANDLE APIENTRY GetCurrentObject(IN HDC, IN UINT); ! 1300: BOOL APIENTRY GetCurrentPositionEx(IN HDC, OUT LPPOINT); ! 1301: int APIENTRY GetDeviceCaps(IN HDC, IN int); ! 1302: BOOL APIENTRY GetDIBits(IN HDC, IN HBITMAP, IN UINT, IN UINT, OUT LPBYTE, IN LPBITMAPINFO, IN UINT); ! 1303: int APIENTRY GetMapMode(IN HDC); ! 1304: DWORD APIENTRY GetMetaFileBits(IN HMF, IN DWORD, OUT LPBYTE); ! 1305: HMF APIENTRY GetMetaFile(IN LPSTR); ! 1306: COLORREF APIENTRY GetNearestColor(IN HDC, IN COLORREF); ! 1307: UINT APIENTRY GetNearestPaletteIndex(IN HPALETTE, IN COLORREF); ! 1308: DWORD APIENTRY GetObjectType(HANDLE h); ! 1309: UINT APIENTRY GetPaletteEntries(IN HPALETTE, IN UINT, IN UINT, OUT LPPALETTEENTRY); ! 1310: DWORD APIENTRY GetPixel(IN HDC, IN int, IN int); ! 1311: int APIENTRY GetPolyFillMode(IN HDC); ! 1312: DWORD APIENTRY GetRegionData(IN HRGN, IN DWORD, OUT LPRGNDATA); ! 1313: int APIENTRY GetRgnBox(IN HRGN, OUT LPRECT); ! 1314: HANDLE APIENTRY GetStockObject(IN int); ! 1315: int APIENTRY GetStretchBltMode(IN HDC); ! 1316: UINT APIENTRY GetSystemPaletteEntries(IN HDC, IN UINT, IN UINT, OUT LPPALETTEENTRY); ! 1317: UINT APIENTRY GetSystemPaletteUse(IN HDC); ! 1318: int APIENTRY GetTextCharacterExtra(IN HDC); ! 1319: UINT APIENTRY GetTextAlign(IN HDC); ! 1320: COLORREF APIENTRY GetTextColor(IN HDC); ! 1321: ! 1322: BOOL APIENTRY GetTextExtentPointA( ! 1323: IN HDC, ! 1324: IN LPSTR, ! 1325: IN int, ! 1326: OUT LPSIZE ! 1327: ); ! 1328: BOOL APIENTRY GetTextExtentPointW( ! 1329: IN HDC, ! 1330: IN LPWSTR, ! 1331: IN int, ! 1332: OUT LPSIZE ! 1333: ); ! 1334: #ifdef UNICODE ! 1335: #define GetTextExtentPoint GetTextExtentPointW ! 1336: #else ! 1337: #define GetTextExtentPoint GetTextExtentPointA ! 1338: #endif // !UNICODE ! 1339: ! 1340: BOOL APIENTRY GetViewportExtEx(IN HDC, OUT LPSIZE); ! 1341: BOOL APIENTRY GetViewportOrgEx(IN HDC, OUT LPPOINT); ! 1342: BOOL APIENTRY GetWindowExtEx(IN HDC, OUT LPSIZE); ! 1343: BOOL APIENTRY GetWindowOrgEx(IN HDC, OUT LPPOINT); ! 1344: ! 1345: int APIENTRY IntersectClipRect(IN HDC, IN int, IN int, IN int, IN int); ! 1346: BOOL BATCH APIENTRY InvertRgn(IN HDC, IN HRGN); ! 1347: BOOL APIENTRY LineDDA(IN int, IN int, IN int, IN int, IN PROC, IN LPVOID); ! 1348: BOOL BATCH APIENTRY LineTo(IN HDC, IN int, IN int); ! 1349: BOOL APIENTRY MaskBlt(IN HDC, IN int, IN int, IN int, IN int, ! 1350: IN HDC, IN int, IN int, IN HBITMAP, IN int, IN int, IN DWORD); ! 1351: BOOL APIENTRY PlgBlt(IN HDC, IN LPPOINT, IN HDC, IN int, IN int, IN int, ! 1352: IN int, IN HBITMAP, IN int, IN int); ! 1353: ! 1354: int APIENTRY OffsetClipRgn(IN HDC, IN int, IN int); ! 1355: int APIENTRY OffsetRgn(IN HRGN, IN int, IN int); ! 1356: BOOL BATCH APIENTRY PatBlt(IN HDC, IN int, IN int, IN int, IN int, IN DWORD); ! 1357: BOOL BATCH APIENTRY Pie(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); ! 1358: BOOL APIENTRY PlayMetaFile(IN HDC, IN HMF); ! 1359: BOOL BATCH APIENTRY PaintRgn(IN HDC, IN HRGN); ! 1360: BOOL BATCH APIENTRY PolyPolygon(IN HDC, IN LPPOINT, IN LPINT, IN int); ! 1361: BOOL APIENTRY PtInRegion(IN HRGN, IN int, IN int); ! 1362: BOOL APIENTRY PtVisible(IN HDC, IN int, IN int); ! 1363: ! 1364: BOOL APIENTRY RectInRegion(IN HRGN, IN LPRECT); ! 1365: BOOL APIENTRY RectVisible(IN HDC, IN LPRECT); ! 1366: BOOL BATCH APIENTRY Rectangle(IN HDC, IN int, IN int, IN int, IN int); ! 1367: BOOL APIENTRY RestoreDC(IN HDC, IN int); ! 1368: int APIENTRY RealizePalette(IN HDC); ! 1369: BOOL APIENTRY RemoveFontModule(IN HMODULE); ! 1370: BOOL APIENTRY RemoveFontResourceA(IN LPSTR); ! 1371: BOOL APIENTRY RemoveFontResourceW(IN LPWSTR); ! 1372: #ifdef UNICODE ! 1373: #define RemoveFontResource RemoveFontResourceW ! 1374: #else ! 1375: #define RemoveFontResource RemoveFontResourceA ! 1376: #endif // !UNICODE ! 1377: BOOL BATCH APIENTRY RoundRect(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int); ! 1378: BOOL APIENTRY ResizePalette(IN HPALETTE, IN UINT); ! 1379: ! 1380: int APIENTRY SaveDC(IN HDC); ! 1381: int APIENTRY SelectClipRgn(IN HDC, IN HRGN); ! 1382: int APIENTRY ExtSelectClipRgn(IN HDC, IN HRGN, IN int); ! 1383: HANDLE APIENTRY SelectObject(IN HDC, IN HANDLE); ! 1384: HPALETTE APIENTRY SelectPalette(IN HDC, IN HPALETTE, IN BOOL); ! 1385: COLORREF APIENTRY SetBkColor(IN HDC, IN COLORREF); ! 1386: int APIENTRY SetBkMode(IN HDC, IN int); ! 1387: int APIENTRY SetBitmapBits(IN HBITMAP, IN DWORD, IN LPBYTE); ! 1388: ! 1389: int APIENTRY SetDIBits(IN HDC, IN HBITMAP, IN UINT, IN UINT, IN LPBYTE, IN LPBITMAPINFO, IN UINT); ! 1390: int APIENTRY SetDIBitsToDevice(IN HDC, IN int, IN int, IN DWORD, IN DWORD, IN int, IN int, IN DWORD, IN DWORD, IN LPBYTE, IN LPBITMAPINFO, IN DWORD); ! 1391: DWORD APIENTRY SetMapperFlags(IN HDC, IN DWORD); ! 1392: int APIENTRY SetMapMode(IN HDC, IN int); ! 1393: HMF APIENTRY SetMetaFileBits(IN DWORD, IN LPBYTE); ! 1394: UINT APIENTRY SetPaletteEntries(IN HPALETTE, IN UINT, IN UINT, IN LPPALETTEENTRY); ! 1395: COLORREF APIENTRY SetPixel(IN HDC, IN int, IN int, IN COLORREF); ! 1396: BOOL BATCH APIENTRY SetPixelV(IN HDC, IN int, IN int, IN COLORREF); ! 1397: int APIENTRY SetPolyFillMode(IN HDC, IN int); ! 1398: BOOL BATCH APIENTRY StretchBlt(IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN int, IN int, IN DWORD); ! 1399: BOOL BATCH APIENTRY SetRectRgn(IN HRGN, IN int, IN int, IN int, IN int); ! 1400: int APIENTRY StretchDIBits(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN LPBYTE, IN LPBITMAPINFO, IN DWORD, IN DWORD); ! 1401: int APIENTRY SetROP2(IN HDC, IN int); ! 1402: int APIENTRY SetStretchBltMode(IN HDC, IN int); ! 1403: UINT APIENTRY SetSystemPaletteUse(IN HDC, IN UINT); ! 1404: int APIENTRY SetTextCharacterExtra(IN HDC, IN int); ! 1405: COLORREF APIENTRY SetTextColor(IN HDC, IN COLORREF); ! 1406: UINT APIENTRY SetTextAlign(IN HDC, IN UINT); ! 1407: BOOL APIENTRY SetTextJustification(IN HDC, IN int, IN int); ! 1408: BOOL APIENTRY UpdateColors(IN HDC); ! 1409: ! 1410: #ifndef NOMETAFILE ! 1411: ! 1412: // TEMPORARY include file containing the new Metafile definitions. ! 1413: // Eventually it will be folded into wingdi.h and the old metafile ! 1414: // definitions will be removed when the metafile stuff settles down. ! 1415: #include <winmeta.h> ! 1416: ! 1417: BOOL APIENTRY PlayMetaFileRecord(IN HDC, IN LPHANDLETABLE, IN LPMETARECORD, IN UINT); ! 1418: BOOL APIENTRY EnumMetaFile(IN HDC, IN HMF, IN PROC, IN LPVOID); ! 1419: #endif ! 1420: ! 1421: #ifndef NOTEXTMETRIC ! 1422: ! 1423: BOOL APIENTRY GetTextMetricsA(IN HDC, OUT LPTEXTMETRICA); ! 1424: BOOL APIENTRY GetTextMetricsW(IN HDC, OUT LPTEXTMETRICW); ! 1425: #ifdef UNICODE ! 1426: #define GetTextMetrics GetTextMetricsW ! 1427: #else ! 1428: #define GetTextMetrics GetTextMetricsA ! 1429: #endif // !UNICODE ! 1430: ! 1431: #endif ! 1432: ! 1433: /* new GDI */ ! 1434: BOOL BATCH APIENTRY AngleArc(IN HDC, IN int, IN int, IN DWORD, IN FLOAT, IN FLOAT); ! 1435: BOOL APIENTRY GetWorldTransform(IN HDC, OUT LPXFORM); ! 1436: BOOL BATCH APIENTRY PolyPolyline(IN HDC, IN LPPOINT, IN LPDWORD, IN DWORD); ! 1437: BOOL APIENTRY SetWorldTransform(IN HDC, IN LPXFORM); ! 1438: BOOL APIENTRY ModifyWorldTransform(IN HDC,IN LPXFORM OPTIONAL, IN DWORD); ! 1439: BOOL APIENTRY StartDoc(IN HDC, IN LPSTR); ! 1440: BOOL APIENTRY EndDoc(IN HDC); ! 1441: BOOL APIENTRY StartPage(IN HDC); ! 1442: BOOL APIENTRY EndPage(IN HDC); ! 1443: BOOL APIENTRY GdiFlush(VOID); ! 1444: BOOL APIENTRY GdiSetBatchLimit(IN DWORD); ! 1445: BOOL APIENTRY ArcTo(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int,IN int, IN int); ! 1446: BOOL APIENTRY BeginPath(IN HDC); ! 1447: BOOL APIENTRY CloseFigure(IN HDC); ! 1448: BOOL APIENTRY EndPath(IN HDC); ! 1449: BOOL APIENTRY FillPath(IN HDC); ! 1450: BOOL APIENTRY FlattenPath(IN HDC); ! 1451: int APIENTRY GetPath(IN HDC, OUT LPPOINT, OUT LPBYTE, IN int); ! 1452: HRGN APIENTRY PathToRegion(IN HDC); ! 1453: BOOL APIENTRY PolyDraw(IN HDC, IN LPPOINT, IN LPBYTE, IN int); ! 1454: BOOL APIENTRY SelectClipPath(IN HDC, IN int); ! 1455: BOOL APIENTRY SetFlatness(IN HDC, IN FLOAT, OUT PFLOAT); ! 1456: BOOL APIENTRY SetMiterLimit(IN HDC, IN FLOAT, OUT PFLOAT); ! 1457: BOOL APIENTRY StrokeAndFillPath(IN HDC); ! 1458: BOOL APIENTRY StrokePath(IN HDC); ! 1459: BOOL APIENTRY WidenPath(IN HDC); ! 1460: ! 1461: /* if the thank compiler is reading this file, don't define these */ ! 1462: #ifndef THANKS ! 1463: ! 1464: int APIENTRY GetObjectA(IN HANDLE, IN int, OUT LPVOID); ! 1465: int APIENTRY GetObjectW(IN HANDLE, IN int, OUT LPVOID); ! 1466: #ifdef UNICODE ! 1467: #define GetObject GetObjectW ! 1468: #else ! 1469: #define GetObject GetObjectA ! 1470: #endif // !UNICODE ! 1471: ! 1472: BOOL APIENTRY MoveToEx(IN HDC, IN int, IN int, OUT LPPOINT); ! 1473: ! 1474: BOOL BATCH APIENTRY TextOutA( ! 1475: IN HDC, ! 1476: IN int, ! 1477: IN int, ! 1478: IN LPSTR, ! 1479: IN int ! 1480: ); ! 1481: BOOL BATCH APIENTRY TextOutW( ! 1482: IN HDC, ! 1483: IN int, ! 1484: IN int, ! 1485: IN LPWSTR, ! 1486: IN int ! 1487: ); ! 1488: #ifdef UNICODE ! 1489: #define TextOut TextOutW ! 1490: #else ! 1491: #define TextOut TextOutA ! 1492: #endif // !UNICODE ! 1493: ! 1494: BOOL BATCH APIENTRY ExtTextOutA( ! 1495: IN HDC, ! 1496: IN int, ! 1497: IN int, ! 1498: IN UINT, ! 1499: IN LPRECT, ! 1500: IN LPSTR, ! 1501: IN int, ! 1502: IN LPINT ! 1503: ); ! 1504: BOOL BATCH APIENTRY ExtTextOutW( ! 1505: IN HDC, ! 1506: IN int, ! 1507: IN int, ! 1508: IN UINT, ! 1509: IN LPRECT, ! 1510: IN LPWSTR, ! 1511: IN int, ! 1512: IN LPINT ! 1513: ); ! 1514: #ifdef UNICODE ! 1515: #define ExtTextOut ExtTextOutW ! 1516: #else ! 1517: #define ExtTextOut ExtTextOutA ! 1518: #endif // !UNICODE ! 1519: ! 1520: HRGN APIENTRY CreatePolygonRgn(IN LPPOINT, IN int, IN int); ! 1521: BOOL APIENTRY DPtoLP(IN HDC, IN OUT LPPOINT, IN int); ! 1522: BOOL APIENTRY LPtoDP(IN HDC, IN OUT LPPOINT, IN int); ! 1523: BOOL APIENTRY Polygon(IN HDC, IN LPPOINT, IN int); ! 1524: BOOL APIENTRY Polyline(IN HDC, IN LPPOINT, IN int); ! 1525: ! 1526: BOOL APIENTRY PolyBezier(IN HDC, IN LPPOINT, IN DWORD); ! 1527: BOOL APIENTRY PolyBezierTo(IN HDC, IN LPPOINT, IN DWORD); ! 1528: BOOL APIENTRY PolylineTo(IN HDC, IN LPPOINT, IN DWORD); ! 1529: ! 1530: BOOL APIENTRY SetViewportExtEx(IN HDC, IN int, IN int, OUT LPSIZE); ! 1531: BOOL APIENTRY SetViewportOrgEx(IN HDC, IN int, IN int, OUT LPPOINT); ! 1532: BOOL APIENTRY SetWindowExtEx(IN HDC, IN int, IN int, OUT LPSIZE); ! 1533: BOOL APIENTRY SetWindowOrgEx(IN HDC, IN int, IN int, OUT LPPOINT); ! 1534: ! 1535: BOOL APIENTRY OffsetViewportOrgEx(IN HDC, IN int, IN int, OUT LPPOINT); ! 1536: BOOL APIENTRY OffsetWindowOrgEx(IN HDC, IN int, IN int, OUT LPPOINT); ! 1537: BOOL APIENTRY ScaleViewportExtEx(IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE); ! 1538: BOOL APIENTRY ScaleWindowExtEx(IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE); ! 1539: BOOL APIENTRY SetBitmapDimensionEx(IN HBITMAP, IN int, IN int, OUT LPSIZE); ! 1540: BOOL APIENTRY SetBrushOrg(IN HDC, IN int, IN int, OUT LPPOINT); ! 1541: ! 1542: int APIENTRY GetTextFaceA(IN HDC, IN int, OUT LPSTR); ! 1543: int APIENTRY GetTextFaceW(IN HDC, IN int, OUT LPWSTR); ! 1544: #ifdef UNICODE ! 1545: #define GetTextFace GetTextFaceW ! 1546: #else ! 1547: #define GetTextFace GetTextFaceA ! 1548: #endif // !UNICODE ! 1549: ! 1550: DWORD APIENTRY EnumNearestFontsA(IN HDC,IN LPEXTLOGFONTA,IN DWORD,OUT LPFMATCHA); ! 1551: DWORD APIENTRY EnumNearestFontsW(IN HDC,IN LPEXTLOGFONTW,IN DWORD,OUT LPFMATCHW); ! 1552: #ifdef UNICODE ! 1553: #define EnumNearestFonts EnumNearestFontsW ! 1554: #else ! 1555: #define EnumNearestFonts EnumNearestFontsA ! 1556: #endif // !UNICODE ! 1557: ! 1558: HFONT APIENTRY ExtCreateFontIndirectA(IN LPEXTLOGFONTA); ! 1559: HFONT APIENTRY ExtCreateFontIndirectW(IN LPEXTLOGFONTW); ! 1560: #ifdef UNICODE ! 1561: #define ExtCreateFontIndirect ExtCreateFontIndirectW ! 1562: #else ! 1563: #define ExtCreateFontIndirect ExtCreateFontIndirectA ! 1564: #endif // !UNICODE ! 1565: ! 1566: BOOL APIENTRY SetFontMapperControls(IN LPFMCONTROLS); ! 1567: BOOL APIENTRY GetFontMapperControls(OUT LPFMCONTROLS,IN DWORD); ! 1568: ! 1569: #endif /* THANKS */ ! 1570: #endif /* NOGDI */ ! 1571: ! 1572: #ifdef LATER ! 1573: /* ! 1574: * JimA - 11/30/90 ! 1575: * gdidelta.doc lists these as obsolete ! 1576: */ ! 1577: DWORD APIENTRY GetDCOrg(HDC); ! 1578: #endif /* LATER */ ! 1579: ! 1580: ! 1581: #endif /* _WINGDI_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.