Annotation of mstools/mfc/include/wingdi.h, revision 1.1

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 HALFTONE                    4
        !            83: #define MAXSTRETCHBLTMODE           4
        !            84: 
        !            85: /* PolyFill() Modes */
        !            86: #define ALTERNATE                    1
        !            87: #define WINDING                      2
        !            88: #define POLYFILL_LAST                2
        !            89: 
        !            90: /* Text Alignment Options */
        !            91: #define TA_NOUPDATECP                0
        !            92: #define TA_UPDATECP                  1
        !            93: 
        !            94: #define TA_LEFT                      0
        !            95: #define TA_RIGHT                     2
        !            96: #define TA_CENTER                    6
        !            97: 
        !            98: #define TA_TOP                       0
        !            99: #define TA_BOTTOM                    8
        !           100: #define TA_BASELINE                  24
        !           101: #define TA_MASK       (TA_BASELINE+TA_CENTER+TA_UPDATECP)
        !           102: 
        !           103: #define ETO_GRAYED                   1
        !           104: #define ETO_OPAQUE                   2
        !           105: #define ETO_CLIPPED                  4
        !           106: 
        !           107: #define ASPECT_FILTERING             0x0001
        !           108: 
        !           109: /* Bounds Accumulation APIs */
        !           110: 
        !           111: #define DCB_RESET       0x0001
        !           112: #define DCB_ACCUMULATE  0x0002
        !           113: #define DCB_DIRTY       DCB_ACCUMULATE
        !           114: #define DCB_SET         (DCB_RESET | DCB_ACCUMULATE)
        !           115: #define DCB_ENABLE      0x0004
        !           116: #define DCB_DISABLE     0x0008
        !           117: 
        !           118: #ifndef NOMETAFILE
        !           119: 
        !           120: /* Metafile Functions */
        !           121: #define META_SETBKCOLOR              0x0201
        !           122: #define META_SETBKMODE               0x0102
        !           123: #define META_SETMAPMODE              0x0103
        !           124: #define META_SETROP2                 0x0104
        !           125: #define META_SETRELABS               0x0105
        !           126: #define META_SETPOLYFILLMODE         0x0106
        !           127: #define META_SETSTRETCHBLTMODE       0x0107
        !           128: #define META_SETTEXTCHAREXTRA        0x0108
        !           129: #define META_SETTEXTCOLOR            0x0209
        !           130: #define META_SETTEXTJUSTIFICATION    0x020A
        !           131: #define META_SETWINDOWORG            0x020B
        !           132: #define META_SETWINDOWEXT            0x020C
        !           133: #define META_SETVIEWPORTORG          0x020D
        !           134: #define META_SETVIEWPORTEXT          0x020E
        !           135: #define META_OFFSETWINDOWORG         0x020F
        !           136: #define META_SCALEWINDOWEXT          0x0410
        !           137: #define META_OFFSETVIEWPORTORG       0x0211
        !           138: #define META_SCALEVIEWPORTEXT        0x0412
        !           139: #define META_LINETO                  0x0213
        !           140: #define META_MOVETO                  0x0214
        !           141: #define META_EXCLUDECLIPRECT         0x0415
        !           142: #define META_INTERSECTCLIPRECT       0x0416
        !           143: #define META_ARC                     0x0817
        !           144: #define META_ELLIPSE                 0x0418
        !           145: #define META_FLOODFILL               0x0419
        !           146: #define META_PIE                     0x081A
        !           147: #define META_RECTANGLE               0x041B
        !           148: #define META_ROUNDRECT               0x061C
        !           149: #define META_PATBLT                  0x061D
        !           150: #define META_SAVEDC                  0x001E
        !           151: #define META_SETPIXEL                0x041F
        !           152: #define META_OFFSETCLIPRGN           0x0220
        !           153: #define META_TEXTOUT                 0x0521
        !           154: #define META_BITBLT                  0x0922
        !           155: #define META_STRETCHBLT              0x0B23
        !           156: #define META_POLYGON                 0x0324
        !           157: #define META_POLYLINE                0x0325
        !           158: #define META_ESCAPE                  0x0626
        !           159: #define META_RESTOREDC               0x0127
        !           160: #define META_FILLREGION              0x0228
        !           161: #define META_FRAMEREGION             0x0429
        !           162: #define META_INVERTREGION            0x012A
        !           163: #define META_PAINTREGION             0x012B
        !           164: #define META_SELECTCLIPREGION        0x012C
        !           165: #define META_SELECTOBJECT            0x012D
        !           166: #define META_SETTEXTALIGN            0x012E
        !           167: #define META_DRAWTEXT                0x062F
        !           168: 
        !           169: #define META_CHORD                   0x0830
        !           170: #define META_SETMAPPERFLAGS          0x0231
        !           171: #define META_EXTTEXTOUT              0x0a32
        !           172: #define META_SETDIBTODEV             0x0d33
        !           173: #define META_SELECTPALETTE           0x0234
        !           174: #define META_REALIZEPALETTE          0x0035
        !           175: #define META_ANIMATEPALETTE          0x0436
        !           176: #define META_SETPALENTRIES           0x0037
        !           177: #define META_POLYPOLYGON             0x0538
        !           178: #define META_RESIZEPALETTE           0x0139
        !           179: 
        !           180: #define META_DIBBITBLT               0x0940
        !           181: #define META_DIBSTRETCHBLT           0x0b41
        !           182: #define META_DIBCREATEPATTERNBRUSH   0x0142
        !           183: #define META_STRETCHDIB              0x0f43
        !           184: 
        !           185: #define META_EXTFLOODFILL                0x0548
        !           186: 
        !           187: // #define META_RESETDC                     0x014C
        !           188: // #define META_STARTDOC                    0x014D
        !           189: // #define META_STARTPAGE                   0x004F
        !           190: // #define META_ENDPAGE                     0x0050
        !           191: // #define META_ABORTDOC                    0x0052
        !           192: // #define META_ENDDOC                      0x004E
        !           193: 
        !           194: #define META_DELETEOBJECT            0x01f0
        !           195: 
        !           196: #define META_CREATEPALETTE           0x00f7
        !           197: // #define META_CREATEBRUSH             0x00F8
        !           198: #define META_CREATEPATTERNBRUSH      0x01F9
        !           199: #define META_CREATEPENINDIRECT       0x02FA
        !           200: #define META_CREATEFONTINDIRECT      0x02FB
        !           201: #define META_CREATEBRUSHINDIRECT     0x02FC
        !           202: // #define META_CREATEBITMAPINDIRECT    0x02FD
        !           203: // #define META_CREATEBITMAP            0x06FE
        !           204: #define META_CREATEREGION            0x06FF
        !           205: 
        !           206: #endif /* NOMETAFILE */
        !           207: 
        !           208: /* GDI Escapes */
        !           209: #define NEWFRAME                     1
        !           210: #define ABORTDOC                     2
        !           211: #define NEXTBAND                     3
        !           212: #define SETCOLORTABLE                4
        !           213: #define GETCOLORTABLE                5
        !           214: #define FLUSHOUTPUT                  6
        !           215: #define DRAFTMODE                    7
        !           216: #define QUERYESCSUPPORT              8
        !           217: #define SETABORTPROC                 9
        !           218: #define STARTDOC                     10
        !           219: #define ENDDOC                       11
        !           220: #define GETPHYSPAGESIZE              12
        !           221: #define GETPRINTINGOFFSET            13
        !           222: #define GETSCALINGFACTOR             14
        !           223: #define MFCOMMENT                    15
        !           224: #define GETPENWIDTH                  16
        !           225: #define SETCOPYCOUNT                 17
        !           226: #define SELECTPAPERSOURCE            18
        !           227: #define DEVICEDATA                   19
        !           228: #define PASSTHROUGH                  19
        !           229: #define GETTECHNOLGY                 20
        !           230: #define GETTECHNOLOGY                20
        !           231: #define SETENDCAP                    21
        !           232: #define SETLINEJOIN                  22
        !           233: #define SETMITERLIMIT                23
        !           234: #define BANDINFO                     24
        !           235: #define DRAWPATTERNRECT              25
        !           236: #define GETVECTORPENSIZE             26
        !           237: #define GETVECTORBRUSHSIZE           27
        !           238: #define ENABLEDUPLEX                 28
        !           239: #define GETSETPAPERBINS              29
        !           240: #define GETSETPRINTORIENT            30
        !           241: #define ENUMPAPERBINS                31
        !           242: #define SETDIBSCALING                32
        !           243: #define EPSPRINTING                  33
        !           244: #define ENUMPAPERMETRICS             34
        !           245: #define GETSETPAPERMETRICS           35
        !           246: #define POSTSCRIPT_DATA              37
        !           247: #define POSTSCRIPT_IGNORE            38
        !           248: #define MOUSETRAILS                  39
        !           249: 
        !           250: #define GETEXTENDEDTEXTMETRICS       256
        !           251: #define GETEXTENTTABLE               257
        !           252: #define GETPAIRKERNTABLE             258
        !           253: #define GETTRACKKERNTABLE            259
        !           254: #define EXTTEXTOUT                   512
        !           255: #define ENABLERELATIVEWIDTHS         768
        !           256: #define ENABLEPAIRKERNING            769
        !           257: #define SETKERNTRACK                 770
        !           258: #define SETALLJUSTVALUES             771
        !           259: #define SETCHARSET                   772
        !           260: 
        !           261: #define STRETCHBLT                   2048
        !           262: #define GETSETSCREENPARAMS           3072
        !           263: #define BEGIN_PATH                   4096
        !           264: #define CLIP_TO_PATH                 4097
        !           265: #define END_PATH                     4098
        !           266: #define EXT_DEVICE_CAPS              4099
        !           267: #define RESTORE_CTM                  4100
        !           268: #define SAVE_CTM                     4101
        !           269: #define SET_ARC_DIRECTION            4102
        !           270: #define SET_BACKGROUND_COLOR         4103
        !           271: #define SET_POLY_MODE                4104
        !           272: #define SET_SCREEN_ANGLE             4105
        !           273: #define SET_SPREAD                   4106
        !           274: #define TRANSFORM_CTM                4107
        !           275: #define SET_CLIP_BOX                 4108
        !           276: #define SET_BOUNDS                   4109
        !           277: #define SET_MIRROR_MODE              4110
        !           278: 
        !           279: /* Spooler Error Codes */
        !           280: #define SP_NOTREPORTED               0x4000
        !           281: #define SP_ERROR                     (-1)
        !           282: #define SP_APPABORT                  (-2)
        !           283: #define SP_USERABORT                 (-3)
        !           284: #define SP_OUTOFDISK                 (-4)
        !           285: #define SP_OUTOFMEMORY               (-5)
        !           286: 
        !           287: #define PR_JOBSTATUS                 0x0000
        !           288: 
        !           289: /* Object Definitions for EnumObjects() */
        !           290: #define OBJ_PEN             1
        !           291: #define OBJ_BRUSH           2
        !           292: #define OBJ_DC              3
        !           293: #define OBJ_METADC          4
        !           294: #define OBJ_PAL             5
        !           295: #define OBJ_FONT            6
        !           296: #define OBJ_BITMAP          7
        !           297: #define OBJ_REGION          8
        !           298: #define OBJ_METAFILE        9
        !           299: #define OBJ_MEMDC           10
        !           300: #define OBJ_EXTPEN          11
        !           301: #define OBJ_ENHMETADC       12
        !           302: #define OBJ_ENHMETAFILE     13
        !           303: 
        !           304: /* xform stuff */
        !           305: #define MWT_IDENTITY        1
        !           306: #define MWT_LEFTMULTIPLY    2
        !           307: #define MWT_RIGHTMULTIPLY   3
        !           308: 
        !           309: #define MWT_MIN             MWT_IDENTITY
        !           310: #define MWT_MAX             MWT_RIGHTMULTIPLY
        !           311: 
        !           312: #define _XFORM_
        !           313: typedef struct  tagXFORM
        !           314:   {
        !           315:     FLOAT   eM11;
        !           316:     FLOAT   eM12;
        !           317:     FLOAT   eM21;
        !           318:     FLOAT   eM22;
        !           319:     FLOAT   eDx;
        !           320:     FLOAT   eDy;
        !           321:   } XFORM, *PXFORM, FAR *LPXFORM;
        !           322: 
        !           323: /* Bitmap Header Definition */
        !           324: typedef struct tagBITMAP
        !           325:   {
        !           326:     LONG        bmType;
        !           327:     LONG        bmWidth;
        !           328:     LONG        bmHeight;
        !           329:     LONG        bmWidthBytes;
        !           330:     WORD        bmPlanes;
        !           331:     WORD        bmBitsPixel;
        !           332:     LPVOID      bmBits;
        !           333:   } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
        !           334: 
        !           335: typedef struct tagRGBTRIPLE {
        !           336:         BYTE    rgbtBlue;
        !           337:         BYTE    rgbtGreen;
        !           338:         BYTE    rgbtRed;
        !           339: } RGBTRIPLE;
        !           340: 
        !           341: typedef struct tagRGBQUAD {
        !           342:         BYTE    rgbBlue;
        !           343:         BYTE    rgbGreen;
        !           344:         BYTE    rgbRed;
        !           345:         BYTE    rgbReserved;
        !           346: } RGBQUAD;
        !           347: 
        !           348: /* structures for defining DIBs */
        !           349: typedef struct tagBITMAPCOREHEADER {
        !           350:         DWORD   bcSize;                 /* used to get to color table */
        !           351:         WORD    bcWidth;
        !           352:         WORD    bcHeight;
        !           353:         WORD    bcPlanes;
        !           354:         WORD    bcBitCount;
        !           355: } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
        !           356: 
        !           357: 
        !           358: typedef struct tagBITMAPINFOHEADER{
        !           359:         DWORD      biSize;
        !           360:         LONG       biWidth;
        !           361:         LONG       biHeight;
        !           362:         WORD       biPlanes;
        !           363:         WORD       biBitCount;
        !           364:         DWORD      biCompression;
        !           365:         DWORD      biSizeImage;
        !           366:         LONG       biXPelsPerMeter;
        !           367:         LONG       biYPelsPerMeter;
        !           368:         DWORD      biClrUsed;
        !           369:         DWORD      biClrImportant;
        !           370: } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
        !           371: 
        !           372: /* constants for the biCompression field */
        !           373: #define BI_RGB        0L
        !           374: #define BI_RLE8       1L
        !           375: #define BI_RLE4       2L
        !           376: #define BI_TOPDOWN    4L
        !           377: 
        !           378: typedef struct tagBITMAPINFO {
        !           379:     BITMAPINFOHEADER    bmiHeader;
        !           380:     RGBQUAD             bmiColors[1];
        !           381: } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO;
        !           382: 
        !           383: typedef struct tagBITMAPCOREINFO {
        !           384:     BITMAPCOREHEADER    bmciHeader;
        !           385:     RGBTRIPLE           bmciColors[1];
        !           386: } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
        !           387: 
        !           388: #pragma pack(2)
        !           389: typedef struct tagBITMAPFILEHEADER {
        !           390:         WORD    bfType;
        !           391:         DWORD   bfSize;
        !           392:         WORD    bfReserved1;
        !           393:         WORD    bfReserved2;
        !           394:         DWORD   bfOffBits;
        !           395: } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
        !           396: #pragma pack()
        !           397: 
        !           398: #define MAKEPOINTS(l)       (*((POINTS FAR *)&(l)))
        !           399: 
        !           400: #ifndef NOMETAFILE
        !           401: 
        !           402: /* Clipboard Metafile Picture Structure */
        !           403: typedef struct tagHANDLETABLE
        !           404:   {
        !           405:     HGDIOBJ     objectHandle[1];
        !           406:   } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
        !           407: 
        !           408: typedef struct tagMETARECORD
        !           409:   {
        !           410:     DWORD       rdSize;
        !           411:     WORD        rdFunction;
        !           412:     WORD        rdParm[1];
        !           413:   } METARECORD;
        !           414: typedef struct tagMETARECORD UNALIGNED *PMETARECORD, FAR *LPMETARECORD;
        !           415: 
        !           416: typedef struct tagMETAFILEPICT
        !           417:   {
        !           418:     LONG        mm;
        !           419:     LONG        xExt;
        !           420:     LONG        yExt;
        !           421:     HMETAFILE   hMF;
        !           422:   } METAFILEPICT, FAR *LPMETAFILEPICT;
        !           423: 
        !           424: #pragma pack(2)
        !           425: typedef struct tagMETAHEADER
        !           426: {
        !           427:     WORD        mtType;
        !           428:     WORD        mtHeaderSize;
        !           429:     WORD        mtVersion;
        !           430:     DWORD       mtSize;
        !           431:     WORD        mtNoObjects;
        !           432:     DWORD       mtMaxRecord;
        !           433:     WORD        mtNoParameters;
        !           434: } METAHEADER;
        !           435: typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER, FAR *LPMETAHEADER;
        !           436: 
        !           437: #pragma pack()
        !           438: 
        !           439: /* Enhanced Metafile structures */
        !           440: typedef struct tagENHMETARECORD
        !           441: {
        !           442:     DWORD   iType;              // Record type MR_XXX
        !           443:     DWORD   nSize;              // Record size in bytes
        !           444:     DWORD   dParm[1];           // Parameters
        !           445: } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
        !           446: 
        !           447: typedef struct tagENHMETAHEADER
        !           448: {
        !           449:     DWORD   iType;              // Record type MR_METAFILE
        !           450:     DWORD   nSize;              // Record size in bytes.  This may be greater
        !           451:                                 // than the sizeof(ENHMETAHEADER).
        !           452:     RECTL   rclBounds;          // Inclusive-inclusive bounds in device units
        !           453:     RECTL   rclFrame;           // Inclusive-inclusive Picture Frame of metafile in .01 mm units
        !           454:     DWORD   dSignature;         // Signature.  Must be ENHMETA_SIGNATURE.
        !           455:     DWORD   nVersion;           // Version number
        !           456:     DWORD   nBytes;             // Size of the metafile in bytes
        !           457:     DWORD   nRecords;           // Number of records in the metafile
        !           458:     WORD    nHandles;           // Number of handles in the handle table
        !           459:                                 // Handle index zero is reserved.
        !           460:     WORD    sReserved;          // Reserved.  Must be zero.
        !           461:     DWORD   nDescription;       // Number of chars in the unicode description string
        !           462:                                 // This is 0 if there is no description string
        !           463:     DWORD   offDescription;     // Offset to the metafile description record.
        !           464:                                 // This is 0 if there is no description string
        !           465:     DWORD   nPalEntries;        // Number of entries in the metafile palette.
        !           466:     SIZEL   szlDevice;          // Size of the reference device in pels
        !           467:     SIZEL   szlMillimeters;     // Size of the reference device in millimeters
        !           468: } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
        !           469: 
        !           470: #endif /* NOMETAFILE */
        !           471: 
        !           472: #ifndef NOTEXTMETRIC
        !           473: 
        !           474: /* tmPitchAntFamily flags */
        !           475: #define TMPF_FIXED_PITCH    0x01
        !           476: #define TMPF_VECTOR             0x02
        !           477: #define TMPF_DEVICE             0x08
        !           478: #define TMPF_TRUETYPE       0x04
        !           479: 
        !           480: typedef struct tagTEXTMETRICA
        !           481: {
        !           482:     LONG        tmHeight;
        !           483:     LONG        tmAscent;
        !           484:     LONG        tmDescent;
        !           485:     LONG        tmInternalLeading;
        !           486:     LONG        tmExternalLeading;
        !           487:     LONG        tmAveCharWidth;
        !           488:     LONG        tmMaxCharWidth;
        !           489:     LONG        tmWeight;
        !           490:     LONG        tmOverhang;
        !           491:     LONG        tmDigitizedAspectX;
        !           492:     LONG        tmDigitizedAspectY;
        !           493:     BYTE        tmFirstChar;
        !           494:     BYTE        tmLastChar;
        !           495:     BYTE        tmDefaultChar;
        !           496:     BYTE        tmBreakChar;
        !           497:     BYTE        tmItalic;
        !           498:     BYTE        tmUnderlined;
        !           499:     BYTE        tmStruckOut;
        !           500:     BYTE        tmPitchAndFamily;
        !           501:     BYTE        tmCharSet;
        !           502: } TEXTMETRICA, *PTEXTMETRICA, NEAR *NPTEXTMETRICA, FAR *LPTEXTMETRICA;
        !           503: typedef struct tagTEXTMETRICW
        !           504: {
        !           505:     LONG        tmHeight;
        !           506:     LONG        tmAscent;
        !           507:     LONG        tmDescent;
        !           508:     LONG        tmInternalLeading;
        !           509:     LONG        tmExternalLeading;
        !           510:     LONG        tmAveCharWidth;
        !           511:     LONG        tmMaxCharWidth;
        !           512:     LONG        tmWeight;
        !           513:     LONG        tmOverhang;
        !           514:     LONG        tmDigitizedAspectX;
        !           515:     LONG        tmDigitizedAspectY;
        !           516:     WCHAR       tmFirstChar;
        !           517:     WCHAR       tmLastChar;
        !           518:     WCHAR       tmDefaultChar;
        !           519:     WCHAR       tmBreakChar;
        !           520:     BYTE        tmItalic;
        !           521:     BYTE        tmUnderlined;
        !           522:     BYTE        tmStruckOut;
        !           523:     BYTE        tmPitchAndFamily;
        !           524:     BYTE        tmCharSet;
        !           525: } TEXTMETRICW, *PTEXTMETRICW, NEAR *NPTEXTMETRICW, FAR *LPTEXTMETRICW;
        !           526: #ifdef UNICODE
        !           527: #define TEXTMETRIC TEXTMETRICW
        !           528: #define PTEXTMETRIC PTEXTMETRICW
        !           529: #define NPTEXTMETRIC NPTEXTMETRICW
        !           530: #define LPTEXTMETRIC LPTEXTMETRICW
        !           531: #else
        !           532: #define TEXTMETRIC TEXTMETRICA
        !           533: #define PTEXTMETRIC PTEXTMETRICA
        !           534: #define NPTEXTMETRIC NPTEXTMETRICA
        !           535: #define LPTEXTMETRIC LPTEXTMETRICA
        !           536: #endif // UNICODE
        !           537: 
        !           538: /* ntmFlags field flags */
        !           539: #define NTM_REGULAR     0x00000040L
        !           540: #define NTM_BOLD        0x00000020L
        !           541: #define NTM_ITALIC      0x00000001L
        !           542: 
        !           543: typedef struct tagNEWTEXTMETRICA
        !           544: {
        !           545:     LONG        tmHeight;
        !           546:     LONG        tmAscent;
        !           547:     LONG        tmDescent;
        !           548:     LONG        tmInternalLeading;
        !           549:     LONG        tmExternalLeading;
        !           550:     LONG        tmAveCharWidth;
        !           551:     LONG        tmMaxCharWidth;
        !           552:     LONG        tmWeight;
        !           553:     LONG        tmOverhang;
        !           554:     LONG        tmDigitizedAspectX;
        !           555:     LONG        tmDigitizedAspectY;
        !           556:     BYTE        tmFirstChar;
        !           557:     BYTE        tmLastChar;
        !           558:     BYTE        tmDefaultChar;
        !           559:     BYTE        tmBreakChar;
        !           560:     BYTE        tmItalic;
        !           561:     BYTE        tmUnderlined;
        !           562:     BYTE        tmStruckOut;
        !           563:     BYTE        tmPitchAndFamily;
        !           564:     BYTE        tmCharSet;
        !           565:     DWORD   ntmFlags;
        !           566:     UINT    ntmSizeEM;
        !           567:     UINT    ntmCellHeight;
        !           568:     UINT    ntmAvgWidth;
        !           569: } NEWTEXTMETRICA, *PNEWTEXTMETRICA, NEAR *NPNEWTEXTMETRICA, FAR *LPNEWTEXTMETRICA;
        !           570: typedef struct tagNEWTEXTMETRICW
        !           571: {
        !           572:     LONG        tmHeight;
        !           573:     LONG        tmAscent;
        !           574:     LONG        tmDescent;
        !           575:     LONG        tmInternalLeading;
        !           576:     LONG        tmExternalLeading;
        !           577:     LONG        tmAveCharWidth;
        !           578:     LONG        tmMaxCharWidth;
        !           579:     LONG        tmWeight;
        !           580:     LONG        tmOverhang;
        !           581:     LONG        tmDigitizedAspectX;
        !           582:     LONG        tmDigitizedAspectY;
        !           583:     WCHAR       tmFirstChar;
        !           584:     WCHAR       tmLastChar;
        !           585:     WCHAR       tmDefaultChar;
        !           586:     WCHAR       tmBreakChar;
        !           587:     BYTE        tmItalic;
        !           588:     BYTE        tmUnderlined;
        !           589:     BYTE        tmStruckOut;
        !           590:     BYTE        tmPitchAndFamily;
        !           591:     BYTE        tmCharSet;
        !           592:     DWORD   ntmFlags;
        !           593:     UINT    ntmSizeEM;
        !           594:     UINT    ntmCellHeight;
        !           595:     UINT    ntmAvgWidth;
        !           596: } NEWTEXTMETRICW, *PNEWTEXTMETRICW, NEAR *NPNEWTEXTMETRICW, FAR *LPNEWTEXTMETRICW;
        !           597: #ifdef UNICODE
        !           598: #define NEWTEXTMETRIC NEWTEXTMETRICW
        !           599: #define PNEWTEXTMETRIC PNEWTEXTMETRICW
        !           600: #define NPNEWTEXTMETRIC NPNEWTEXTMETRICW
        !           601: #define LPNEWTEXTMETRIC LPNEWTEXTMETRICW
        !           602: #else
        !           603: #define NEWTEXTMETRIC NEWTEXTMETRICA
        !           604: #define PNEWTEXTMETRIC PNEWTEXTMETRICA
        !           605: #define NPNEWTEXTMETRIC NPNEWTEXTMETRICA
        !           606: #define LPNEWTEXTMETRIC LPNEWTEXTMETRICA
        !           607: #endif // UNICODE
        !           608: 
        !           609: #endif /* NOTEXTMETRIC */
        !           610: /* GDI Logical Objects: */
        !           611: 
        !           612: /* Pel Array */
        !           613: typedef struct tagPELARRAY
        !           614:   {
        !           615:     LONG        paXCount;
        !           616:     LONG        paYCount;
        !           617:     LONG        paXExt;
        !           618:     LONG        paYExt;
        !           619:     BYTE        paRGBs;
        !           620:   } PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY;
        !           621: 
        !           622: /* Logical Brush (or Pattern) */
        !           623: typedef struct tagLOGBRUSH
        !           624:   {
        !           625:     UINT        lbStyle;
        !           626:     COLORREF    lbColor;
        !           627:     LONG        lbHatch;
        !           628:   } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH;
        !           629: 
        !           630: typedef LOGBRUSH            PATTERN;
        !           631: typedef PATTERN             *PPATTERN;
        !           632: typedef PATTERN NEAR        *NPPATTERN;
        !           633: typedef PATTERN FAR         *LPPATTERN;
        !           634: 
        !           635: /* Logical Pen */
        !           636: typedef struct tagLOGPEN
        !           637:   {
        !           638:     UINT        lopnStyle;
        !           639:     POINT       lopnWidth;
        !           640:     COLORREF    lopnColor;
        !           641:   } LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN;
        !           642: 
        !           643: typedef struct tagEXTLOGPEN {
        !           644:     DWORD       elpPenStyle;
        !           645:     DWORD       elpWidth;
        !           646:     UINT        elpBrushStyle;
        !           647:     COLORREF    elpColor;
        !           648:     LONG        elpHatch;
        !           649:     DWORD       elpNumEntries;
        !           650:     DWORD       elpStyleEntry[1];
        !           651: } EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN;
        !           652: 
        !           653: typedef struct tagPALETTEENTRY {
        !           654:     BYTE        peRed;
        !           655:     BYTE        peGreen;
        !           656:     BYTE        peBlue;
        !           657:     BYTE        peFlags;
        !           658: } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY;
        !           659: 
        !           660: /* Logical Palette */
        !           661: typedef struct tagLOGPALETTE {
        !           662:     WORD        palVersion;
        !           663:     WORD        palNumEntries;
        !           664:     PALETTEENTRY        palPalEntry[1];
        !           665: } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE;
        !           666: 
        !           667: 
        !           668: /* Logical Font */
        !           669: #define LF_FACESIZE         32
        !           670: 
        !           671: typedef struct tagLOGFONTA
        !           672: {
        !           673:     LONG      lfHeight;
        !           674:     LONG      lfWidth;
        !           675:     LONG      lfEscapement;
        !           676:     LONG      lfOrientation;
        !           677:     LONG      lfWeight;
        !           678:     BYTE      lfItalic;
        !           679:     BYTE      lfUnderline;
        !           680:     BYTE      lfStrikeOut;
        !           681:     BYTE      lfCharSet;
        !           682:     BYTE      lfOutPrecision;
        !           683:     BYTE      lfClipPrecision;
        !           684:     BYTE      lfQuality;
        !           685:     BYTE      lfPitchAndFamily;
        !           686:     BYTE      lfFaceName[LF_FACESIZE];
        !           687: } LOGFONTA, *PLOGFONTA, NEAR *NPLOGFONTA, FAR *LPLOGFONTA;
        !           688: typedef struct tagLOGFONTW
        !           689: {
        !           690:     LONG      lfHeight;
        !           691:     LONG      lfWidth;
        !           692:     LONG      lfEscapement;
        !           693:     LONG      lfOrientation;
        !           694:     LONG      lfWeight;
        !           695:     BYTE      lfItalic;
        !           696:     BYTE      lfUnderline;
        !           697:     BYTE      lfStrikeOut;
        !           698:     BYTE      lfCharSet;
        !           699:     BYTE      lfOutPrecision;
        !           700:     BYTE      lfClipPrecision;
        !           701:     BYTE      lfQuality;
        !           702:     BYTE      lfPitchAndFamily;
        !           703:     WCHAR     lfFaceName[LF_FACESIZE];
        !           704: } LOGFONTW, *PLOGFONTW, NEAR *NPLOGFONTW, FAR *LPLOGFONTW;
        !           705: #ifdef UNICODE
        !           706: #define LOGFONT LOGFONTW
        !           707: #define PLOGFONT PLOGFONTW
        !           708: #define NPLOGFONT NPLOGFONTW
        !           709: #define LPLOGFONT LPLOGFONTW
        !           710: #else
        !           711: #define LOGFONT LOGFONTA
        !           712: #define PLOGFONT PLOGFONTA
        !           713: #define NPLOGFONT NPLOGFONTA
        !           714: #define LPLOGFONT LPLOGFONTA
        !           715: #endif // UNICODE
        !           716: 
        !           717: #define LF_FULLFACESIZE     64
        !           718: 
        !           719: /* Structure passed to FONTENUMPROC */
        !           720: typedef struct tagENUMLOGFONTA
        !           721: {
        !           722:     LOGFONTA elfLogFont;
        !           723:     BYTE     elfFullName[LF_FULLFACESIZE];
        !           724:     BYTE     elfStyle[LF_FACESIZE];
        !           725: } ENUMLOGFONTA, FAR* LPENUMLOGFONTA;
        !           726: /* Structure passed to FONTENUMPROC */
        !           727: typedef struct tagENUMLOGFONTW
        !           728: {
        !           729:     LOGFONTW elfLogFont;
        !           730:     WCHAR    elfFullName[LF_FULLFACESIZE];
        !           731:     WCHAR    elfStyle[LF_FACESIZE];
        !           732: } ENUMLOGFONTW, FAR* LPENUMLOGFONTW;
        !           733: #ifdef UNICODE
        !           734: #define ENUMLOGFONT ENUMLOGFONTW
        !           735: #define LPENUMLOGFONT LPENUMLOGFONTW
        !           736: #else
        !           737: #define ENUMLOGFONT ENUMLOGFONTA
        !           738: #define LPENUMLOGFONT LPENUMLOGFONTA
        !           739: #endif // UNICODE
        !           740: 
        !           741: #define OUT_DEFAULT_PRECIS      0
        !           742: #define OUT_STRING_PRECIS       1
        !           743: #define OUT_CHARACTER_PRECIS    2
        !           744: #define OUT_STROKE_PRECIS       3
        !           745: #define OUT_TT_PRECIS           4
        !           746: #define OUT_DEVICE_PRECIS       5
        !           747: #define OUT_RASTER_PRECIS       6
        !           748: #define OUT_TT_ONLY_PRECIS      7
        !           749: #define OUT_OUTLINE_PRECIS      8
        !           750: 
        !           751: #define CLIP_DEFAULT_PRECIS     0
        !           752: #define CLIP_CHARACTER_PRECIS   1
        !           753: #define CLIP_STROKE_PRECIS      2
        !           754: #define CLIP_MASK               0xf
        !           755: #define CLIP_LH_ANGLES          (1<<4)
        !           756: #define CLIP_TT_ALWAYS          (2<<4)
        !           757: #define CLIP_EMBEDDED           (8<<4)
        !           758: 
        !           759: #define DEFAULT_QUALITY         0
        !           760: #define DRAFT_QUALITY           1
        !           761: #define PROOF_QUALITY           2
        !           762: 
        !           763: #define DEFAULT_PITCH           0
        !           764: #define FIXED_PITCH             1
        !           765: #define VARIABLE_PITCH          2
        !           766: 
        !           767: #define ANSI_CHARSET            0
        !           768: #define UNICODE_CHARSET         1
        !           769: #define SYMBOL_CHARSET          2
        !           770: #define SHIFTJIS_CHARSET        128
        !           771: #define HANGEUL_CHARSET         129
        !           772: #define CHINESEBIG5_CHARSET     136
        !           773: #define OEM_CHARSET             255
        !           774: 
        !           775: /* Font Families */
        !           776: #define FF_DONTCARE         (0<<4)  /* Don't care or don't know. */
        !           777: #define FF_ROMAN            (1<<4)  /* Variable stroke width, serifed. */
        !           778:                                     /* Times Roman, Century Schoolbook, etc. */
        !           779: #define FF_SWISS            (2<<4)  /* Variable stroke width, sans-serifed. */
        !           780:                                     /* Helvetica, Swiss, etc. */
        !           781: #define FF_MODERN           (3<<4)  /* Constant stroke width, serifed or sans-serifed. */
        !           782:                                     /* Pica, Elite, Courier, etc. */
        !           783: #define FF_SCRIPT           (4<<4)  /* Cursive, etc. */
        !           784: #define FF_DECORATIVE       (5<<4)  /* Old English, etc. */
        !           785: 
        !           786: /* Font Weights */
        !           787: #define FW_DONTCARE         0
        !           788: #define FW_THIN             100
        !           789: #define FW_EXTRALIGHT       200
        !           790: #define FW_LIGHT            300
        !           791: #define FW_NORMAL           400
        !           792: #define FW_MEDIUM           500
        !           793: #define FW_SEMIBOLD         600
        !           794: #define FW_BOLD             700
        !           795: #define FW_EXTRABOLD        800
        !           796: #define FW_HEAVY            900
        !           797: 
        !           798: #define FW_ULTRALIGHT       FW_EXTRALIGHT
        !           799: #define FW_REGULAR          FW_NORMAL
        !           800: #define FW_DEMIBOLD         FW_SEMIBOLD
        !           801: #define FW_ULTRABOLD        FW_EXTRABOLD
        !           802: #define FW_BLACK            FW_HEAVY
        !           803: 
        !           804: 
        !           805: /* !!![kirko] The CHARSET structure is sheduled to die */
        !           806: typedef struct tagCHARSET {
        !           807:     DWORD   aflBlock[3];
        !           808:     DWORD   flLang;
        !           809: } CHARSET, *LPCHARSET;
        !           810: 
        !           811: #define PANOSE_COUNT               10
        !           812: #define PAN_FAMILYTYPE_INDEX        0
        !           813: #define PAN_SERIFSTYLE_INDEX        1
        !           814: #define PAN_WEIGHT_INDEX            2
        !           815: #define PAN_PROPORTION_INDEX        3
        !           816: #define PAN_CONTRAST_INDEX          4
        !           817: #define PAN_STROKEVARIATION_INDEX   5
        !           818: #define PAN_ARMSTYLE_INDEX          6
        !           819: #define PAN_LETTERFORM_INDEX        7
        !           820: #define PAN_MIDLINE_INDEX           8
        !           821: #define PAN_XHEIGHT_INDEX           9
        !           822: 
        !           823: #define PAN_CULTURE_LATIN           0
        !           824: 
        !           825: typedef struct tagPANOSE {
        !           826:     DWORD ulCulture;            /* !!! [kirko] this field will disappear */
        !           827:     BYTE  bFamilyType;
        !           828:     BYTE  bSerifStyle;
        !           829:     BYTE  bWeight;
        !           830:     BYTE  bProportion;
        !           831:     BYTE  bContrast;
        !           832:     BYTE  bStrokeVariation;
        !           833:     BYTE  bArmStyle;
        !           834:     BYTE  bLetterform;
        !           835:     BYTE  bMidline;
        !           836:     BYTE  bXHeight;
        !           837: } PANOSE, *LPPANOSE;
        !           838: 
        !           839: #define PAN_ANY                         0 /* Any                            */
        !           840: #define PAN_NO_FIT                      1 /* No Fit                         */
        !           841: 
        !           842: #define PAN_FAMILY_TEXT_DISPLAY         2 /* Text and Display               */
        !           843: #define PAN_FAMILY_SCRIPT               3 /* Script                         */
        !           844: #define PAN_FAMILY_DECORATIVE           4 /* Decorative                     */
        !           845: #define PAN_FAMILY_PICTORIAL            5 /* Pictorial                      */
        !           846: 
        !           847: #define PAN_SERIF_COVE                  2 /* Cove                           */
        !           848: #define PAN_SERIF_OBTUSE_COVE           3 /* Obtuse Cove                    */
        !           849: #define PAN_SERIF_SQUARE_COVE           4 /* Square Cove                    */
        !           850: #define PAN_SERIF_OBTUSE_SQUARE_COVE    5 /* Obtuse Square Cove             */
        !           851: #define PAN_SERIF_SQUARE                6 /* Square                         */
        !           852: #define PAN_SERIF_THIN                  7 /* Thin                           */
        !           853: #define PAN_SERIF_BONE                  8 /* Bone                           */
        !           854: #define PAN_SERIF_EXAGGERATED           9 /* Exaggerated                    */
        !           855: #define PAN_SERIF_TRIANGLE             10 /* Triangle                       */
        !           856: #define PAN_SERIF_NORMAL_SANS          11 /* Normal Sans                    */
        !           857: #define PAN_SERIF_OBTUSE_SANS          12 /* Obtuse Sans                    */
        !           858: #define PAN_SERIF_PERP_SANS            13 /* Prep Sans                      */
        !           859: #define PAN_SERIF_FLARED               14 /* Flared                         */
        !           860: #define PAN_SERIF_ROUNDED              15 /* Rounded                        */
        !           861: 
        !           862: #define PAN_WEIGHT_VERY_LIGHT           2 /* Very Light                     */
        !           863: #define PAN_WEIGHT_LIGHT                3 /* Light                          */
        !           864: #define PAN_WEIGHT_THIN                 4 /* Thin                           */
        !           865: #define PAN_WEIGHT_BOOK                 5 /* Book                           */
        !           866: #define PAN_WEIGHT_MEDIUM               6 /* Medium                         */
        !           867: #define PAN_WEIGHT_DEMI                 7 /* Demi                           */
        !           868: #define PAN_WEIGHT_BOLD                 8 /* Bold                           */
        !           869: #define PAN_WEIGHT_HEAVY                9 /* Heavy                          */
        !           870: #define PAN_WEIGHT_BLACK               10 /* Black                          */
        !           871: #define PAN_WEIGHT_NORD                11 /* Nord                           */
        !           872: 
        !           873: #define PAN_PROP_OLD_STYLE              2 /* Old Style                      */
        !           874: #define PAN_PROP_MODERN                 3 /* Modern                         */
        !           875: #define PAN_PROP_EVEN_WIDTH             4 /* Even Width                     */
        !           876: #define PAN_PROP_EXPANDED               5 /* Expanded                       */
        !           877: #define PAN_PROP_CONDENSED              6 /* Condensed                      */
        !           878: #define PAN_PROP_VERY_EXPANDED          7 /* Very Expanded                  */
        !           879: #define PAN_PROP_VERY_CONDENSED         8 /* Very Condensed                 */
        !           880: #define PAN_PROP_MONOSPACED             9 /* Monospaced                     */
        !           881: 
        !           882: #define PAN_CONTRAST_NONE               2 /* None                           */
        !           883: #define PAN_CONTRAST_VERY_LOW           3 /* Very Low                       */
        !           884: #define PAN_CONTRAST_LOW                4 /* Low                            */
        !           885: #define PAN_CONTRAST_MEDIUM_LOW         5 /* Medium Low                     */
        !           886: #define PAN_CONTRAST_MEDIUM             6 /* Medium                         */
        !           887: #define PAN_CONTRAST_MEDIUM_HIGH        7 /* Mediim High                    */
        !           888: #define PAN_CONTRAST_HIGH               8 /* High                           */
        !           889: #define PAN_CONTRAST_VERY_HIGH          9 /* Very High                      */
        !           890: 
        !           891: #define PAN_STROKE_GRADUAL_DIAG         2 /* Gradual/Diagonal               */
        !           892: #define PAN_STROKE_GRADUAL_TRAN         3 /* Gradual/Transitional           */
        !           893: #define PAN_STROKE_GRADUAL_VERT         4 /* Gradual/Vertical               */
        !           894: #define PAN_STROKE_GRADUAL_HORZ         5 /* Gradual/Horizontal             */
        !           895: #define PAN_STROKE_RAPID_VERT           6 /* Rapid/Vertical                 */
        !           896: #define PAN_STROKE_RAPID_HORZ           7 /* Rapid/Horizontal               */
        !           897: #define PAN_STROKE_INSTANT_VERT         8 /* Instant/Vertical               */
        !           898: 
        !           899: #define PAN_STRAIGHT_ARMS_HORZ          2 /* Straight Arms/Horizontal       */
        !           900: #define PAN_STRAIGHT_ARMS_WEDGE         3 /* Straight Arms/Wedge            */
        !           901: #define PAN_STRAIGHT_ARMS_VERT          4 /* Straight Arms/Vertical         */
        !           902: #define PAN_STRAIGHT_ARMS_SINGLE_SERIF  5 /* Straight Arms/Single-Serif     */
        !           903: #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF  6 /* Straight Arms/Double-Serif     */
        !           904: #define PAN_BENT_ARMS_HORZ              7 /* Non-Straight Arms/Horizontal   */
        !           905: #define PAN_BENT_ARMS_WEDGE             8 /* Non-Straight Arms/Wedge        */
        !           906: #define PAN_BENT_ARMS_VERT              9 /* Non-Straight Arms/Vertical     */
        !           907: #define PAN_BENT_ARMS_SINGLE_SERIF     10 /* Non-Straight Arms/Single-Serif */
        !           908: #define PAN_BENT_ARMS_DOUBLE_SERIF     11 /* Non-Straight Arms/Double-Serif */
        !           909: 
        !           910: #define PAN_LETT_NORMAL_CONTACT         2 /* Normal/Contact                 */
        !           911: #define PAN_LETT_NORMAL_WEIGHTED        3 /* Normal/Weighted                */
        !           912: #define PAN_LETT_NORMAL_BOXED           4 /* Normal/Boxed                   */
        !           913: #define PAN_LETT_NORMAL_FLATTENED       5 /* Normal/Flattened               */
        !           914: #define PAN_LETT_NORMAL_ROUNDED         6 /* Normal/Rounded                 */
        !           915: #define PAN_LETT_NORMAL_OFF_CENTER      7 /* Normal/Off Center              */
        !           916: #define PAN_LETT_NORMAL_SQUARE          8 /* Normal/Square                  */
        !           917: #define PAN_LETT_OBLIQUE_CONTACT        9 /* Oblique/Contact                */
        !           918: #define PAN_LETT_OBLIQUE_WEIGHTED      10 /* Oblique/Weighted               */
        !           919: #define PAN_LETT_OBLIQUE_BOXED         11 /* Oblique/Boxed                  */
        !           920: #define PAN_LETT_OBLIQUE_FLATTENED     12 /* Oblique/Flattened              */
        !           921: #define PAN_LETT_OBLIQUE_ROUNDED       13 /* Oblique/Rounded                */
        !           922: #define PAN_LETT_OBLIQUE_OFF_CENTER    14 /* Oblique/Off Center             */
        !           923: #define PAN_LETT_OBLIQUE_SQUARE        15 /* Oblique/Square                 */
        !           924: 
        !           925: #define PAN_MIDLINE_STANDARD_TRIMMED    2 /* Standard/Trimmed               */
        !           926: #define PAN_MIDLINE_STANDARD_POINTED    3 /* Standard/Pointed               */
        !           927: #define PAN_MIDLINE_STANDARD_SERIFED    4 /* Standard/Serifed               */
        !           928: #define PAN_MIDLINE_HIGH_TRIMMED        5 /* High/Trimmed                   */
        !           929: #define PAN_MIDLINE_HIGH_POINTED        6 /* High/Pointed                   */
        !           930: #define PAN_MIDLINE_HIGH_SERIFED        7 /* High/Serifed                   */
        !           931: #define PAN_MIDLINE_CONSTANT_TRIMMED    8 /* Constant/Trimmed               */
        !           932: #define PAN_MIDLINE_CONSTANT_POINTED    9 /* Constant/Pointed               */
        !           933: #define PAN_MIDLINE_CONSTANT_SERIFED   10 /* Constant/Serifed               */
        !           934: #define PAN_MIDLINE_LOW_TRIMMED        11 /* Low/Trimmed                    */
        !           935: #define PAN_MIDLINE_LOW_POINTED        12 /* Low/Pointed                    */
        !           936: #define PAN_MIDLINE_LOW_SERIFED        13 /* Low/Serifed                    */
        !           937: 
        !           938: #define PAN_XHEIGHT_CONSTANT_SMALL      2 /* Constant/Small                 */
        !           939: #define PAN_XHEIGHT_CONSTANT_STD        3 /* Constant/Standard              */
        !           940: #define PAN_XHEIGHT_CONSTANT_LARGE      4 /* Constant/Large                 */
        !           941: #define PAN_XHEIGHT_DUCKING_SMALL       5 /* Ducking/Small                  */
        !           942: #define PAN_XHEIGHT_DUCKING_STD         6 /* Ducking/Standard               */
        !           943: #define PAN_XHEIGHT_DUCKING_LARGE       7 /* Ducking/Large                  */
        !           944: 
        !           945: 
        !           946: #define ELF_VENDOR_SIZE     4
        !           947: 
        !           948: /* The extended logical font       */
        !           949: /* An extension of the ENUMLOGFONT */
        !           950: 
        !           951: typedef struct tagEXTLOGFONTA {
        !           952:     LOGFONTA    elfLogFont;
        !           953:     BYTE        elfFullName[LF_FULLFACESIZE];
        !           954:     BYTE        elfStyle[LF_FACESIZE];
        !           955:     UINT        elfVersion;     /* 0 for the first release of NT */
        !           956:     UINT        elfCulture;     /* 0 for Latin                   */
        !           957:     PANOSE      elfPanose;
        !           958:     BYTE        elfVendorId[ELF_VENDOR_SIZE];
        !           959: } EXTLOGFONTA, *PEXTLOGFONTA, NEAR *NPEXTLOGFONTA, FAR *LPEXTLOGFONTA;
        !           960: typedef struct tagEXTLOGFONTW {
        !           961:     LOGFONTW    elfLogFont;
        !           962:     WCHAR       elfFullName[LF_FULLFACESIZE];
        !           963:     WCHAR       elfStyle[LF_FACESIZE];
        !           964:     UINT        elfVersion;     /* 0 for the first release of NT */
        !           965:     UINT        elfCulture;     /* 0 for Latin                   */
        !           966:     PANOSE      elfPanose;
        !           967:     BYTE        elfVendorId[ELF_VENDOR_SIZE];
        !           968: } EXTLOGFONTW, *PEXTLOGFONTW, NEAR *NPEXTLOGFONTW, FAR *LPEXTLOGFONTW;
        !           969: #ifdef UNICODE
        !           970: #define EXTLOGFONT EXTLOGFONTW
        !           971: #define PEXTLOGFONT PEXTLOGFONTW
        !           972: #define NPEXTLOGFONT NPEXTLOGFONTW
        !           973: #define LPEXTLOGFONT LPEXTLOGFONTW
        !           974: #else
        !           975: #define EXTLOGFONT EXTLOGFONTA
        !           976: #define PEXTLOGFONT PEXTLOGFONTA
        !           977: #define NPEXTLOGFONT NPEXTLOGFONTA
        !           978: #define LPEXTLOGFONT LPEXTLOGFONTA
        !           979: #endif // UNICODE
        !           980: 
        !           981: 
        !           982: #define ELF_VERSION         0
        !           983: #define ELF_CULTURE_LATIN   0
        !           984: 
        !           985: /* the complete set of font attribute distances */
        !           986: 
        !           987: /* Allowed values for FMATCH::wType */
        !           988: #define FMATCH_EXACT    0
        !           989: #define FMATCH_NEAR     1
        !           990: #define FMATCH_FAR      2
        !           991: #define FMATCH_ERROR    3
        !           992: 
        !           993: #define PANOSE_RANGE    16
        !           994: 
        !           995: #define FM_LOCATION_GDI 1       // location of font is in GDI
        !           996: 
        !           997: typedef struct tagFMPENALTYSET {
        !           998:     DWORD psSize;               // size of this structure in BYTE's
        !           999:     DWORD psHeight;
        !          1000:     DWORD psWidth;
        !          1001:     DWORD psEscapement;
        !          1002:     DWORD psOrientation;
        !          1003:     DWORD psWeight;
        !          1004:     DWORD psItalic;
        !          1005:     DWORD psUnderline;
        !          1006:     DWORD psStrikeOut;
        !          1007:     DWORD psOutPrecsion;
        !          1008:     DWORD psClipPrecision;
        !          1009:     DWORD psQuality;
        !          1010:     DWORD psPitchAndFamily;
        !          1011:     DWORD psFaceName;
        !          1012:     DWORD psFullName;
        !          1013:     DWORD psStyle;
        !          1014:     DWORD psPanose[PANOSE_COUNT];
        !          1015:     DWORD psVendorId;
        !          1016:     DWORD psLocation;
        !          1017: } FMPENALTYSET, *LPFMPENALTYSET;
        !          1018: 
        !          1019: typedef struct tagFMWEIGHTSET {
        !          1020:     DWORD wsSize;               // size of this structure in BYTE's
        !          1021:     DWORD wsHeight;
        !          1022:     DWORD wsWidth;
        !          1023:     DWORD wsEscapement;
        !          1024:     DWORD wsOrientation;
        !          1025:     DWORD wsWeight;
        !          1026:     DWORD wsItalic;
        !          1027:     DWORD wsUnderline;
        !          1028:     DWORD wsStrikeOut;
        !          1029:     DWORD wsOutPrecsion;
        !          1030:     DWORD wsClipPrecision;
        !          1031:     DWORD wsQuality;
        !          1032:     DWORD wsPitchAndFamily;
        !          1033:     DWORD wsFaceName;
        !          1034:     DWORD wsFullName;
        !          1035:     DWORD wsStyle;
        !          1036:     DWORD wsPanose[PANOSE_COUNT];
        !          1037:     DWORD wsVendorId;
        !          1038:     DWORD wsLocation;
        !          1039: } FMWEIGHTSET, *LPFMWEIGHTSET;
        !          1040: 
        !          1041: typedef struct tagFMATCHA {
        !          1042:     DWORD           fmSize;         // size of this structure in bytes
        !          1043:     DWORD           fmTotalPenalty; // total penalty of physical font
        !          1044:     FMPENALTYSET    fmPenaltySet;   // penalties of physical font
        !          1045:     EXTLOGFONTA     fmExtLogFont;   // describes physical font
        !          1046: } FMATCHA, *LPFMATCHA;
        !          1047: typedef struct tagFMATCHW {
        !          1048:     DWORD           fmSize;         // size of this structure in bytes
        !          1049:     DWORD           fmTotalPenalty; // total penalty of physical font
        !          1050:     FMPENALTYSET    fmPenaltySet;   // penalties of physical font
        !          1051:     EXTLOGFONTW     fmExtLogFont;   // describes physical font
        !          1052: } FMATCHW, *LPFMATCHW;
        !          1053: #ifdef UNICODE
        !          1054: #define FMATCH FMATCHW
        !          1055: #define LPFMATCH LPFMATCHW
        !          1056: #else
        !          1057: #define FMATCH FMATCHA
        !          1058: #define LPFMATCH LPFMATCHA
        !          1059: #endif // UNICODE
        !          1060: 
        !          1061: /* indices to font mapping functions */
        !          1062: 
        !          1063: #define MAPPER_INDEX_TERMINATE          0
        !          1064: 
        !          1065: #define MAPPER_INDEX_HEIGHT             1
        !          1066: #define MAPPER_INDEX_WIDTH              2
        !          1067: #define MAPPER_INDEX_ESCAPEMENT         3
        !          1068: #define MAPPER_INDEX_ORIENTATION        4
        !          1069: #define MAPPER_INDEX_WEIGHT             5
        !          1070: #define MAPPER_INDEX_ITALIC             6
        !          1071: #define MAPPER_INDEX_UNDERLINE          7
        !          1072: #define MAPPER_INDEX_STRIKEOUT          8
        !          1073: #define MAPPER_INDEX_CHARSET            9
        !          1074: #define MAPPER_INDEX_OUTPRECISION      10
        !          1075: #define MAPPER_INDEX_CLIPPRECISION     11
        !          1076: #define MAPPER_INDEX_QUALITY           12
        !          1077: #define MAPPER_INDEX_PITCHANDFAMILY    13
        !          1078: #define MAPPER_INDEX_FACENAME          14
        !          1079: #define MAPPER_INDEX_FULLNAME          15
        !          1080: #define MAPPER_INDEX_STYLE             16
        !          1081: #define MAPPER_INDEX_PANOSE            17
        !          1082: #define MAPPER_INDEX_VENDORID          18
        !          1083: #define MAPPER_INDEX_ASPECT            19
        !          1084: #define MAPPER_INDEX_LOCATION          20
        !          1085: 
        !          1086: #define MAPPER_INDEX_LAST  MAPPER_INDEX_LOCATION
        !          1087: 
        !          1088: #define SIZEOFMAPORDER     sizeof(UINT)*(MAPPER_INDEX_LAST+1)
        !          1089: 
        !          1090: typedef DWORD FMORDER[MAPPER_INDEX_LAST+1];
        !          1091: 
        !          1092: typedef FMORDER *LPFMORDER;
        !          1093: 
        !          1094: typedef struct tagFMCONTROLS {
        !          1095:     DWORD           size;
        !          1096:     DWORD           penaltySumMax;
        !          1097:     FMPENALTYSET    fmpsMax;
        !          1098:     FMWEIGHTSET     fmws;
        !          1099:     FMORDER         fmorder;
        !          1100: } FMCONTROLS, *LPFMCONTROLS;
        !          1101: 
        !          1102: #define SIZEOFFMCONTROLS sizeof(FMCONTROLS)
        !          1103: 
        !          1104: /* EnumFonts Masks */
        !          1105: #define RASTER_FONTTYPE     0x0001
        !          1106: #define DEVICE_FONTTYPE     0x002
        !          1107: #define TRUETYPE_FONTTYPE   0x004
        !          1108: 
        !          1109: #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
        !          1110: #define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
        !          1111: #define PALETTEINDEX(i)     ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
        !          1112: 
        !          1113: /* palette entry flags */
        !          1114: 
        !          1115: #define PC_RESERVED     0x01    /* palette index used for animation */
        !          1116: #define PC_EXPLICIT     0x02    /* palette index is explicit to device */
        !          1117: #define PC_NOCOLLAPSE   0x04    /* do not match color to system palette */
        !          1118: 
        !          1119: #define GetRValue(rgb)      ((BYTE)(rgb))
        !          1120: #define GetGValue(rgb)      ((BYTE)(((WORD)(rgb)) >> 8))
        !          1121: #define GetBValue(rgb)      ((BYTE)((rgb)>>16))
        !          1122: 
        !          1123: /* Background Modes */
        !          1124: #define TRANSPARENT         1
        !          1125: #define OPAQUE              2
        !          1126: #define BKMODE_LAST         2
        !          1127: 
        !          1128: /* PolyDraw and GetPath point types */
        !          1129: #define PT_CLOSEFIGURE      0x01
        !          1130: #define PT_LINETO           0x02
        !          1131: #define PT_BEZIERTO         0x04
        !          1132: #define PT_MOVETO           0x06
        !          1133: 
        !          1134: /* Mapping Modes */
        !          1135: #define MM_TEXT             1
        !          1136: #define MM_LOMETRIC         2
        !          1137: #define MM_HIMETRIC         3
        !          1138: #define MM_LOENGLISH        4
        !          1139: #define MM_HIENGLISH        5
        !          1140: #define MM_TWIPS            6
        !          1141: #define MM_ISOTROPIC        7
        !          1142: #define MM_ANISOTROPIC      8
        !          1143: 
        !          1144: /* Min and Max Mapping Mode values */
        !          1145: #define MM_MIN              MM_TEXT
        !          1146: #define MM_MAX              MM_ANISOTROPIC
        !          1147: #define MM_MAX_FIXEDSCALE   MM_TWIPS
        !          1148: 
        !          1149: /* Coordinate Modes */
        !          1150: #define ABSOLUTE            1
        !          1151: #define RELATIVE            2
        !          1152: 
        !          1153: /* Stock Logical Objects */
        !          1154: #define WHITE_BRUSH         0
        !          1155: #define LTGRAY_BRUSH        1
        !          1156: #define GRAY_BRUSH          2
        !          1157: #define DKGRAY_BRUSH        3
        !          1158: #define BLACK_BRUSH         4
        !          1159: #define NULL_BRUSH          5
        !          1160: #define HOLLOW_BRUSH        NULL_BRUSH
        !          1161: #define WHITE_PEN           6
        !          1162: #define BLACK_PEN           7
        !          1163: #define NULL_PEN            8
        !          1164: #define OEM_FIXED_FONT      10
        !          1165: #define ANSI_FIXED_FONT     11
        !          1166: #define ANSI_VAR_FONT       12
        !          1167: #define SYSTEM_FONT         13
        !          1168: #define DEVICE_DEFAULT_FONT 14
        !          1169: #define DEFAULT_PALETTE     15
        !          1170: #define SYSTEM_FIXED_FONT   16
        !          1171: #define STOCK_LAST          16
        !          1172: 
        !          1173: #define CLR_INVALID     0xFFFFFFFF
        !          1174: 
        !          1175: /* Brush Styles */
        !          1176: #define BS_SOLID            0
        !          1177: #define BS_NULL             1
        !          1178: #define BS_HOLLOW           BS_NULL
        !          1179: #define BS_HATCHED          2
        !          1180: #define BS_PATTERN          3
        !          1181: #define BS_INDEXED          4
        !          1182: #define BS_DIBPATTERN       5
        !          1183: #define BS_DIBPATTERNPT     6
        !          1184: 
        !          1185: /* Hatch Styles */
        !          1186: #define HS_HORIZONTAL       0       /* ----- */
        !          1187: #define HS_VERTICAL         1       /* ||||| */
        !          1188: #define HS_FDIAGONAL        2       /* \\\\\ */
        !          1189: #define HS_BDIAGONAL        3       /* ///// */
        !          1190: #define HS_CROSS            4       /* +++++ */
        !          1191: #define HS_DIAGCROSS        5       /* xxxxx */
        !          1192: #define HS_FDIAGONAL1       6
        !          1193: #define HS_BDIAGONAL1       7
        !          1194: #define HS_SOLID            8
        !          1195: #define HS_DENSE1           9
        !          1196: #define HS_DENSE2           10
        !          1197: #define HS_DENSE3           11
        !          1198: #define HS_DENSE4           12
        !          1199: #define HS_DENSE5           13
        !          1200: #define HS_DENSE6           14
        !          1201: #define HS_DENSE7           15
        !          1202: #define HS_DENSE8           16
        !          1203: #define HS_NOSHADE          17
        !          1204: #define HS_HALFTONE         18
        !          1205: #define HS_API_MAX          19
        !          1206: 
        !          1207: /* Pen Styles */
        !          1208: #define PS_SOLID            0
        !          1209: #define PS_DASH             1       /* -------  */
        !          1210: #define PS_DOT              2       /* .......  */
        !          1211: #define PS_DASHDOT          3       /* _._._._  */
        !          1212: #define PS_DASHDOTDOT       4       /* _.._.._  */
        !          1213: #define PS_NULL             5
        !          1214: #define PS_INSIDEFRAME      6
        !          1215: #define PS_USERSTYLE        7
        !          1216: #define PS_ALTERNATE        8
        !          1217: #define PS_STYLE_MASK       0x0000000F
        !          1218: 
        !          1219: #define PS_ENDCAP_ROUND     0x00000000
        !          1220: #define PS_ENDCAP_SQUARE    0x00000100
        !          1221: #define PS_ENDCAP_FLAT      0x00000200
        !          1222: #define PS_ENDCAP_MASK      0x00000F00
        !          1223: 
        !          1224: #define PS_JOIN_ROUND       0x00000000
        !          1225: #define PS_JOIN_BEVEL       0x00001000
        !          1226: #define PS_JOIN_MITER       0x00002000
        !          1227: #define PS_JOIN_MASK        0x0000F000
        !          1228: 
        !          1229: #define PS_COSMETIC         0x00000000
        !          1230: #define PS_GEOMETRIC        0x00010000
        !          1231: #define PS_TYPE_MASK        0x000F0000
        !          1232: 
        !          1233: #define AD_COUNTERCLOCKWISE 1
        !          1234: #define AD_CLOCKWISE        2
        !          1235: 
        !          1236: /* Device Parameters for GetDeviceCaps() */
        !          1237: #define DRIVERVERSION 0     /* Device driver version                    */
        !          1238: #define TECHNOLOGY    2     /* Device classification                    */
        !          1239: #define HORZSIZE      4     /* Horizontal size in millimeters           */
        !          1240: #define VERTSIZE      6     /* Vertical size in millimeters             */
        !          1241: #define HORZRES       8     /* Horizontal width in pixels               */
        !          1242: #define VERTRES       10    /* Vertical width in pixels                 */
        !          1243: #define BITSPIXEL     12    /* Number of bits per pixel                 */
        !          1244: #define PLANES        14    /* Number of planes                         */
        !          1245: #define NUMBRUSHES    16    /* Number of brushes the device has         */
        !          1246: #define NUMPENS       18    /* Number of pens the device has            */
        !          1247: #define NUMMARKERS    20    /* Number of markers the device has         */
        !          1248: #define NUMFONTS      22    /* Number of fonts the device has           */
        !          1249: #define NUMCOLORS     24    /* Number of colors the device supports     */
        !          1250: #define PDEVICESIZE   26    /* Size required for device descriptor      */
        !          1251: #define CURVECAPS     28    /* Curve capabilities                       */
        !          1252: #define LINECAPS      30    /* Line capabilities                        */
        !          1253: #define POLYGONALCAPS 32    /* Polygonal capabilities                   */
        !          1254: #define TEXTCAPS      34    /* Text capabilities                        */
        !          1255: #define CLIPCAPS      36    /* Clipping capabilities                    */
        !          1256: #define RASTERCAPS    38    /* Bitblt capabilities                      */
        !          1257: #define ASPECTX       40    /* Length of the X leg                      */
        !          1258: #define ASPECTY       42    /* Length of the Y leg                      */
        !          1259: #define ASPECTXY      44    /* Length of the hypotenuse                 */
        !          1260: 
        !          1261: #define LOGPIXELSX    88    /* Logical pixels/inch in X                 */
        !          1262: #define LOGPIXELSY    90    /* Logical pixels/inch in Y                 */
        !          1263: 
        !          1264: #define SIZEPALETTE  104    /* Number of entries in physical palette    */
        !          1265: #define NUMRESERVED  106    /* Number of reserved entries in palette    */
        !          1266: #define COLORRES     108    /* Actual color resolution                  */
        !          1267: 
        !          1268: 
        !          1269: // Printing related DeviceCaps. These replace the appropriate Escapes
        !          1270: 
        !          1271: #define PHYSICALWIDTH   110 // Physical Width in device units
        !          1272: #define PHYSICALHEIGHT  111 // Physical Height in device units
        !          1273: #define PHYSICALOFFSETX 112 // Physical Printable Area x margin
        !          1274: #define PHYSICALOFFSETY 113 // Physical Printable Area y margin
        !          1275: #define SCALINGFACTORX  114 // Scaling factor x
        !          1276: #define SCALINGFACTORY  115 // Scaling factor y
        !          1277: 
        !          1278: #ifndef NOGDICAPMASKS
        !          1279: 
        !          1280: /* Device Capability Masks: */
        !          1281: 
        !          1282: /* Device Technologies */
        !          1283: #define DT_PLOTTER          0   /* Vector plotter                   */
        !          1284: #define DT_RASDISPLAY       1   /* Raster display                   */
        !          1285: #define DT_RASPRINTER       2   /* Raster printer                   */
        !          1286: #define DT_RASCAMERA        3   /* Raster camera                    */
        !          1287: #define DT_CHARSTREAM       4   /* Character-stream, PLP            */
        !          1288: #define DT_METAFILE         5   /* Metafile, VDM                    */
        !          1289: #define DT_DISPFILE         6   /* Display-file                     */
        !          1290: 
        !          1291: /* Curve Capabilities */
        !          1292: #define CC_NONE             0   /* Curves not supported             */
        !          1293: #define CC_CIRCLES          1   /* Can do circles                   */
        !          1294: #define CC_PIE              2   /* Can do pie wedges                */
        !          1295: #define CC_CHORD            4   /* Can do chord arcs                */
        !          1296: #define CC_ELLIPSES         8   /* Can do ellipese                  */
        !          1297: #define CC_WIDE             16  /* Can do wide lines                */
        !          1298: #define CC_STYLED           32  /* Can do styled lines              */
        !          1299: #define CC_WIDESTYLED       64  /* Can do wide styled lines         */
        !          1300: #define CC_INTERIORS        128 /* Can do interiors                 */
        !          1301: #define CC_ROUNDRECT        256 /*                                  */
        !          1302: 
        !          1303: /* Line Capabilities */
        !          1304: #define LC_NONE             0   /* Lines not supported              */
        !          1305: #define LC_POLYLINE         2   /* Can do polylines                 */
        !          1306: #define LC_MARKER           4   /* Can do markers                   */
        !          1307: #define LC_POLYMARKER       8   /* Can do polymarkers               */
        !          1308: #define LC_WIDE             16  /* Can do wide lines                */
        !          1309: #define LC_STYLED           32  /* Can do styled lines              */
        !          1310: #define LC_WIDESTYLED       64  /* Can do wide styled lines         */
        !          1311: #define LC_INTERIORS        128 /* Can do interiors                 */
        !          1312: 
        !          1313: /* Polygonal Capabilities */
        !          1314: #define PC_NONE             0   /* Polygonals not supported         */
        !          1315: #define PC_POLYGON          1   /* Can do polygons                  */
        !          1316: #define PC_RECTANGLE        2   /* Can do rectangles                */
        !          1317: #define PC_WINDPOLYGON      4   /* Can do winding polygons          */
        !          1318: #define PC_TRAPEZOID        4   /* Can do trapezoids                */
        !          1319: #define PC_SCANLINE         8   /* Can do scanlines                 */
        !          1320: #define PC_WIDE             16  /* Can do wide borders              */
        !          1321: #define PC_STYLED           32  /* Can do styled borders            */
        !          1322: #define PC_WIDESTYLED       64  /* Can do wide styled borders       */
        !          1323: #define PC_INTERIORS        128 /* Can do interiors                 */
        !          1324: 
        !          1325: /* Polygonal Capabilities */
        !          1326: #define CP_NONE             0   /* No clipping of output            */
        !          1327: #define CP_RECTANGLE        1   /* Output clipped to rects          */
        !          1328: #define CP_REGION           2   /*                                  */
        !          1329: 
        !          1330: /* Text Capabilities */
        !          1331: #define TC_OP_CHARACTER     0x0001  /* Can do OutputPrecision   CHARACTER      */
        !          1332: #define TC_OP_STROKE        0x0002  /* Can do OutputPrecision   STROKE         */
        !          1333: #define TC_CP_STROKE        0x0004  /* Can do ClipPrecision     STROKE         */
        !          1334: #define TC_CR_90            0x0008  /* Can do CharRotAbility    90             */
        !          1335: #define TC_CR_ANY           0x0010  /* Can do CharRotAbility    ANY            */
        !          1336: #define TC_SF_X_YINDEP      0x0020  /* Can do ScaleFreedom      X_YINDEPENDENT */
        !          1337: #define TC_SA_DOUBLE        0x0040  /* Can do ScaleAbility      DOUBLE         */
        !          1338: #define TC_SA_INTEGER       0x0080  /* Can do ScaleAbility      INTEGER        */
        !          1339: #define TC_SA_CONTIN        0x0100  /* Can do ScaleAbility      CONTINUOUS     */
        !          1340: #define TC_EA_DOUBLE        0x0200  /* Can do EmboldenAbility   DOUBLE         */
        !          1341: #define TC_IA_ABLE          0x0400  /* Can do ItalisizeAbility  ABLE           */
        !          1342: #define TC_UA_ABLE          0x0800  /* Can do UnderlineAbility  ABLE           */
        !          1343: #define TC_SO_ABLE          0x1000  /* Can do StrikeOutAbility  ABLE           */
        !          1344: #define TC_RA_ABLE          0x2000  /* Can do RasterFontAble    ABLE           */
        !          1345: #define TC_VA_ABLE          0x4000  /* Can do VectorFontAble    ABLE           */
        !          1346: #define TC_RESERVED         0x8000
        !          1347: 
        !          1348: #endif /* NOGDICAPMASKS */
        !          1349: 
        !          1350: /* Raster Capabilities */
        !          1351: #define RC_NONE
        !          1352: #define RC_BITBLT           1       /* Can do standard BLT.             */
        !          1353: #define RC_BANDING          2       /* Device requires banding support  */
        !          1354: #define RC_SCALING          4       /* Device requires scaling support  */
        !          1355: #define RC_BITMAP64         8       /* Device can support >64K bitmap   */
        !          1356: #define RC_GDI20_OUTPUT     0x0010      /* has 2.0 output calls         */
        !          1357: #define RC_GDI20_STATE      0x0020
        !          1358: #define RC_SAVEBITMAP       0x0040
        !          1359: #define RC_DI_BITMAP        0x0080      /* supports DIB to memory       */
        !          1360: #define RC_PALETTE          0x0100      /* supports a palette           */
        !          1361: #define RC_DIBTODEV         0x0200      /* supports DIBitsToDevice      */
        !          1362: #define RC_BIGFONT          0x0400      /* supports >64K fonts          */
        !          1363: #define RC_STRETCHBLT       0x0800      /* supports StretchBlt          */
        !          1364: #define RC_FLOODFILL        0x1000      /* supports FloodFill           */
        !          1365: #define RC_STRETCHDIB       0x2000      /* supports StretchDIBits       */
        !          1366: #define RC_OP_DX_OUTPUT     0x4000
        !          1367: #define RC_DEVBITS          0x8000
        !          1368: 
        !          1369: /* DIB color table identifiers */
        !          1370: 
        !          1371: #define DIB_RGB_COLORS      0 /* color table in RGBs */
        !          1372: #define DIB_PAL_COLORS      1 /* color table in palette indices */
        !          1373: #define DIB_PAL_INDICES     2 /* No color table indices into surf palette */
        !          1374: #define DIB_PAL_PHYSINDICES 2 /* No color table indices into surf palette */
        !          1375: #define DIB_PAL_LOGINDICES  4 /* No color table indices into DC palette */
        !          1376: 
        !          1377: /* constants for Get/SetSystemPaletteUse() */
        !          1378: 
        !          1379: #define SYSPAL_ERROR    0
        !          1380: #define SYSPAL_STATIC   1
        !          1381: #define SYSPAL_NOSTATIC 2
        !          1382: 
        !          1383: /* constants for CreateDIBitmap */
        !          1384: #define CBM_INIT        0x04L   /* initialize bitmap */
        !          1385: 
        !          1386: /* ExtFloodFill style flags */
        !          1387: #define  FLOODFILLBORDER   0
        !          1388: #define  FLOODFILLSURFACE  1
        !          1389: 
        !          1390: /* DEVMODE dmDisplayMode flags */
        !          1391: 
        !          1392: #define DM_GRAYSCALE 1
        !          1393: 
        !          1394: typedef struct _devicemodeA {
        !          1395:     BYTE   dmDeviceName[32];
        !          1396:     WORD dmSpecVersion;
        !          1397:     WORD dmDriverVersion;
        !          1398:     WORD dmSize;
        !          1399:     WORD dmDriverExtra;
        !          1400:     DWORD dmFields;
        !          1401:     short dmOrientation;
        !          1402:     short dmPaperSize;
        !          1403:     short dmPaperLength;
        !          1404:     short dmPaperWidth;
        !          1405:     short dmScale;
        !          1406:     short dmCopies;
        !          1407:     short dmDefaultSource;
        !          1408:     short dmPrintQuality;
        !          1409:     short dmColor;
        !          1410:     short dmDuplex;
        !          1411:     short dmCollate;
        !          1412:     BYTE   dmFormName[32];
        !          1413:     USHORT dmBitsPerPel;
        !          1414:     DWORD  dmPelsWidth;
        !          1415:     DWORD  dmPelsHeight;
        !          1416:     DWORD  dmDisplayMode;
        !          1417: } DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA;
        !          1418: typedef struct _devicemodeW {
        !          1419:     WCHAR  dmDeviceName[32];
        !          1420:     WORD dmSpecVersion;
        !          1421:     WORD dmDriverVersion;
        !          1422:     WORD dmSize;
        !          1423:     WORD dmDriverExtra;
        !          1424:     DWORD dmFields;
        !          1425:     short dmOrientation;
        !          1426:     short dmPaperSize;
        !          1427:     short dmPaperLength;
        !          1428:     short dmPaperWidth;
        !          1429:     short dmScale;
        !          1430:     short dmCopies;
        !          1431:     short dmDefaultSource;
        !          1432:     short dmPrintQuality;
        !          1433:     short dmColor;
        !          1434:     short dmDuplex;
        !          1435:     short dmCollate;
        !          1436:     WCHAR  dmFormName[32];
        !          1437:     USHORT dmBitsPerPel;
        !          1438:     DWORD  dmPelsWidth;
        !          1439:     DWORD  dmPelsHeight;
        !          1440:     DWORD  dmDisplayMode;
        !          1441: } DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW;
        !          1442: #ifdef UNICODE
        !          1443: #define DEVMODE DEVMODEW
        !          1444: #define PDEVMODE PDEVMODEW
        !          1445: #define NPDEVMODE NPDEVMODEW
        !          1446: #define LPDEVMODE LPDEVMODEW
        !          1447: #else
        !          1448: #define DEVMODE DEVMODEA
        !          1449: #define PDEVMODE PDEVMODEA
        !          1450: #define NPDEVMODE NPDEVMODEA
        !          1451: #define LPDEVMODE LPDEVMODEA
        !          1452: #endif // UNICODE
        !          1453: 
        !          1454: /* GetRegionData/ExtCreateRegion */
        !          1455: 
        !          1456: #define RDH_RECTANGLES  1
        !          1457: 
        !          1458: typedef struct _RGNDATAHEADER {
        !          1459:     DWORD   dwSize;
        !          1460:     DWORD   iType;
        !          1461:     DWORD   nCount;
        !          1462:     DWORD   nRgnSize;
        !          1463:     RECT    rcBound;
        !          1464: } RGNDATAHEADER, *PRGNDATAHEADER;
        !          1465: 
        !          1466: typedef struct _RGNDATA {
        !          1467:     RGNDATAHEADER   rdh;
        !          1468:     char            Buffer[1];
        !          1469: } RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA;
        !          1470: 
        !          1471: 
        !          1472: typedef struct _ABC {
        !          1473:     int     abcA;
        !          1474:     UINT    abcB;
        !          1475:     int     abcC;
        !          1476: } ABC, *PABC, NEAR *NPABC, FAR *LPABC;
        !          1477: 
        !          1478: typedef struct _ABCFLOAT {
        !          1479:     FLOAT   abcfA;
        !          1480:     FLOAT   abcfB;
        !          1481:     FLOAT   abcfC;
        !          1482: } ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT;
        !          1483: 
        !          1484: #ifndef NOTEXTMETRIC
        !          1485: 
        !          1486: typedef struct _OUTLINETEXTMETRICA {
        !          1487:     UINT    otmSize;
        !          1488:     TEXTMETRICA otmTextMetrics;
        !          1489:     BYTE    otmFiller;
        !          1490:     PANOSE  otmPanoseNumber;
        !          1491:     UINT    otmfsSelection;
        !          1492:     UINT    otmfsType;
        !          1493:     UINT    otmsCharSlopeRise;
        !          1494:     UINT    otmsCharSlopeRun;
        !          1495:     UINT    otmItalicAngle;
        !          1496:     UINT    otmEMSquare;
        !          1497:     UINT    otmAscent;
        !          1498:      int    otmDescent;
        !          1499:      int    otmLineGap;
        !          1500:     UINT    otmCapEmHeight;
        !          1501:     UINT    otmXHeight;
        !          1502:     RECT    otmrcFontBox;
        !          1503:      int    otmMacAscent;
        !          1504:      int    otmMacDescent;
        !          1505:     UINT    otmMacLineGap;
        !          1506:     UINT    otmusMinimumPPEM;
        !          1507:     POINT   otmptSubscriptSize;
        !          1508:     POINT   otmptSubscriptOffset;
        !          1509:     POINT   otmptSuperscriptSize;
        !          1510:     POINT   otmptSuperscriptOffset;
        !          1511:     UINT    otmsStrikeoutSize;
        !          1512:      int    otmsStrikeoutPosition;
        !          1513:      int    otmsUnderscoreSize;
        !          1514:     UINT    otmsUnderscorePosition;
        !          1515:     PSTR    otmpFamilyName;
        !          1516:     PSTR    otmpFaceName;
        !          1517:     PSTR    otmpStyleName;
        !          1518:     PSTR    otmpFullName;
        !          1519: } OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, NEAR *NPOUTLINETEXTMETRICA, FAR *LPOUTLINETEXTMETRICA;
        !          1520: typedef struct _OUTLINETEXTMETRICW {
        !          1521:     UINT    otmSize;
        !          1522:     TEXTMETRICW otmTextMetrics;
        !          1523:     BYTE    otmFiller;
        !          1524:     PANOSE  otmPanoseNumber;
        !          1525:     UINT    otmfsSelection;
        !          1526:     UINT    otmfsType;
        !          1527:     UINT    otmsCharSlopeRise;
        !          1528:     UINT    otmsCharSlopeRun;
        !          1529:     UINT    otmItalicAngle;
        !          1530:     UINT    otmEMSquare;
        !          1531:     UINT    otmAscent;
        !          1532:      int    otmDescent;
        !          1533:      int    otmLineGap;
        !          1534:     UINT    otmCapEmHeight;
        !          1535:     UINT    otmXHeight;
        !          1536:     RECT    otmrcFontBox;
        !          1537:      int    otmMacAscent;
        !          1538:      int    otmMacDescent;
        !          1539:     UINT    otmMacLineGap;
        !          1540:     UINT    otmusMinimumPPEM;
        !          1541:     POINT   otmptSubscriptSize;
        !          1542:     POINT   otmptSubscriptOffset;
        !          1543:     POINT   otmptSuperscriptSize;
        !          1544:     POINT   otmptSuperscriptOffset;
        !          1545:     UINT    otmsStrikeoutSize;
        !          1546:      int    otmsStrikeoutPosition;
        !          1547:      int    otmsUnderscoreSize;
        !          1548:     UINT    otmsUnderscorePosition;
        !          1549:     PSTR    otmpFamilyName;
        !          1550:     PSTR    otmpFaceName;
        !          1551:     PSTR    otmpStyleName;
        !          1552:     PSTR    otmpFullName;
        !          1553: } OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, NEAR *NPOUTLINETEXTMETRICW, FAR *LPOUTLINETEXTMETRICW;
        !          1554: #ifdef UNICODE
        !          1555: #define OUTLINETEXTMETRIC OUTLINETEXTMETRICW
        !          1556: #define POUTLINETEXTMETRIC POUTLINETEXTMETRICW
        !          1557: #define NPOUTLINETEXTMETRIC NPOUTLINETEXTMETRICW
        !          1558: #define LPOUTLINETEXTMETRIC LPOUTLINETEXTMETRICW
        !          1559: #else
        !          1560: #define OUTLINETEXTMETRIC OUTLINETEXTMETRICA
        !          1561: #define POUTLINETEXTMETRIC POUTLINETEXTMETRICA
        !          1562: #define NPOUTLINETEXTMETRIC NPOUTLINETEXTMETRICA
        !          1563: #define LPOUTLINETEXTMETRIC LPOUTLINETEXTMETRICA
        !          1564: #endif // UNICODE
        !          1565: 
        !          1566: #endif /* NOTEXTMETRIC */
        !          1567: 
        !          1568: 
        !          1569: typedef struct _FIXED {
        !          1570:     WORD    fract;
        !          1571:     short   value;
        !          1572: } FIXED;
        !          1573: 
        !          1574: 
        !          1575: typedef struct _MAT2 {
        !          1576:      FIXED  eM11;
        !          1577:      FIXED  eM12;
        !          1578:      FIXED  eM21;
        !          1579:      FIXED  eM22;
        !          1580: } MAT2, FAR *LPMAT2;
        !          1581: 
        !          1582: 
        !          1583: 
        !          1584: typedef struct _GLYPHMETRICS {
        !          1585:     UINT    gmBlackBoxX;
        !          1586:     UINT    gmBlackBoxY;
        !          1587:     POINT   gmptGlyphOrigin;
        !          1588:     short   gmCellIncX;
        !          1589:     short   gmCellIncY;
        !          1590: } GLYPHMETRICS, FAR *LPGLYPHMETRICS;
        !          1591: 
        !          1592: //  GetGlyphOutline constants
        !          1593: 
        !          1594: #define GGO_NONE           0
        !          1595: #define GGO_BITMAP         1
        !          1596: #define GGO_NATIVE         2
        !          1597: 
        !          1598: #define TT_POLYGON_TYPE   24
        !          1599: 
        !          1600: #define TT_PRIM_LINE       1
        !          1601: #define TT_PRIM_QSPLINE    2
        !          1602: 
        !          1603: typedef struct tagPOINTFX
        !          1604: {
        !          1605:     FIXED x;
        !          1606:     FIXED y;
        !          1607: } POINTFX, FAR* LPPOINTFX;
        !          1608: 
        !          1609: typedef struct tagTTPOLYCURVE
        !          1610: {
        !          1611:     WORD    wType;
        !          1612:     WORD    cpfx;
        !          1613:     POINTFX apfx[1];
        !          1614: } TTPOLYCURVE, FAR* LPTTPOLYCURVE;
        !          1615: 
        !          1616: typedef struct tagTTPOLYGONHEADER
        !          1617: {
        !          1618:     DWORD   cb;
        !          1619:     DWORD   dwType;
        !          1620:     POINTFX pfxStart;
        !          1621: } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
        !          1622: 
        !          1623: 
        !          1624: 
        !          1625: typedef struct _RASTERIZER_STATUS {
        !          1626:     short   nSize;
        !          1627:     short   wFlags;
        !          1628:     short   nLanguageID;
        !          1629: } RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS;
        !          1630: 
        !          1631: /* bits defined in wFlags of RASTERIZER_STATUS */
        !          1632: #define TT_AVAILABLE    0x0001
        !          1633: #define TT_ENABLED      0x0002
        !          1634: 
        !          1635: #ifdef STRICT
        !          1636: typedef int (CALLBACK* FONTENUMPROC)(LPLOGFONT, LPTEXTMETRIC, DWORD, LPARAM);
        !          1637: typedef VOID (CALLBACK* GOBJENUMPROC)(LPVOID, LPARAM);
        !          1638: typedef VOID (CALLBACK* LINEDDAPROC)(int, int, LPARAM);
        !          1639: #else
        !          1640: typedef FARPROC FONTENUMPROC;
        !          1641: typedef FARPROC GOBJENUMPROC;
        !          1642: typedef FARPROC LINEDDAPROC;
        !          1643: #endif
        !          1644: 
        !          1645: int WINAPI AddFontResourceA(LPCSTR);
        !          1646: int WINAPI AddFontResourceW(LPCWSTR);
        !          1647: #ifdef UNICODE
        !          1648: #define AddFontResource AddFontResourceW
        !          1649: #else
        !          1650: #define AddFontResource AddFontResourceA
        !          1651: #endif // !UNICODE
        !          1652: 
        !          1653: int   WINAPI AddFontModule(HMODULE);
        !          1654: BOOL  WINAPI AnimatePalette(HPALETTE, UINT, UINT, CONST PALETTEENTRY *);
        !          1655: BOOL  WINAPI Arc(HDC, int, int, int, int, int, int, int, int);
        !          1656: BOOL  WINAPI BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
        !          1657: BOOL  WINAPI CancelDC(HDC);
        !          1658: BOOL  WINAPI Chord(HDC, int, int, int, int, int, int, int, int);
        !          1659: HMETAFILE  WINAPI CloseMetaFile(HDC);
        !          1660: int     WINAPI CombineRgn(HRGN, HRGN, HRGN, int);
        !          1661: HMETAFILE WINAPI CopyMetaFileA(HMETAFILE, LPSTR);
        !          1662: HMETAFILE WINAPI CopyMetaFileW(HMETAFILE, LPWSTR);
        !          1663: #ifdef UNICODE
        !          1664: #define CopyMetaFile CopyMetaFileW
        !          1665: #else
        !          1666: #define CopyMetaFile CopyMetaFileA
        !          1667: #endif // !UNICODE
        !          1668: HBITMAP WINAPI CreateBitmap(int, int, UINT, UINT, CONST VOID *);
        !          1669: HBITMAP WINAPI CreateBitmapIndirect(LPBITMAP);
        !          1670: HBRUSH  WINAPI CreateBrushIndirect(LPLOGBRUSH);
        !          1671: HBITMAP WINAPI CreateCompatibleBitmap(HDC, int, int);
        !          1672: HBITMAP WINAPI CreateDiscardableBitmap(HDC, int, int);
        !          1673: HDC     WINAPI CreateCompatibleDC(HDC);
        !          1674: HDC     WINAPI CreateDC(LPCSTR, LPCSTR , LPCSTR , CONST DEVMODE *);
        !          1675: HBITMAP WINAPI CreateDIBitmap(HDC, LPBITMAPINFOHEADER, DWORD, CONST BYTE *, LPBITMAPINFO, UINT);
        !          1676: HBITMAP WINAPI CreateDIBSection(HDC, LPBITMAPINFO, DWORD, DWORD, LPBYTE *);
        !          1677: HBRUSH  WINAPI CreateDIBPatternBrush(HGLOBAL, UINT);
        !          1678: HBRUSH  WINAPI CreateDIBPatternBrushPt(LPVOID, DWORD);
        !          1679: HRGN    WINAPI CreateEllipticRgn(int, int, int, int);
        !          1680: HRGN    WINAPI CreateEllipticRgnIndirect(CONST RECT *);
        !          1681: HFONT   WINAPI CreateFontIndirectA(LPLOGFONTA);
        !          1682: HFONT   WINAPI CreateFontIndirectW(LPLOGFONTW);
        !          1683: #ifdef UNICODE
        !          1684: #define CreateFontIndirect CreateFontIndirectW
        !          1685: #else
        !          1686: #define CreateFontIndirect CreateFontIndirectA
        !          1687: #endif // !UNICODE
        !          1688: HFONT   WINAPI CreateFontA(int, int, int, int, int, DWORD,
        !          1689:                              DWORD, DWORD, DWORD, DWORD, DWORD,
        !          1690:                              DWORD, DWORD, LPCSTR);
        !          1691: HFONT   WINAPI CreateFontW(int, int, int, int, int, DWORD,
        !          1692:                              DWORD, DWORD, DWORD, DWORD, DWORD,
        !          1693:                              DWORD, DWORD, LPCWSTR);
        !          1694: #ifdef UNICODE
        !          1695: #define CreateFont CreateFontW
        !          1696: #else
        !          1697: #define CreateFont CreateFontA
        !          1698: #endif // !UNICODE
        !          1699: 
        !          1700: HBRUSH  WINAPI CreateHatchBrush(int, COLORREF);
        !          1701: HDC     WINAPI CreateIC(LPCSTR, LPCSTR , LPCSTR , LPDEVMODE );
        !          1702: HDC     WINAPI CreateMetaFileA(LPCSTR);
        !          1703: HDC     WINAPI CreateMetaFileW(LPCWSTR);
        !          1704: #ifdef UNICODE
        !          1705: #define CreateMetaFile CreateMetaFileW
        !          1706: #else
        !          1707: #define CreateMetaFile CreateMetaFileA
        !          1708: #endif // !UNICODE
        !          1709: HPALETTE WINAPI CreatePalette(LPLOGPALETTE);
        !          1710: HPEN    WINAPI CreatePen(int, int, COLORREF);
        !          1711: HPEN    WINAPI CreatePenIndirect(LPLOGPEN);
        !          1712: HRGN    WINAPI CreatePolyPolygonRgn(CONST POINT *, CONST INT *, int, int);
        !          1713: HBRUSH  WINAPI CreatePatternBrush(HBITMAP);
        !          1714: HRGN    WINAPI CreateRectRgn(int, int, int, int);
        !          1715: HRGN    WINAPI CreateRectRgnIndirect(CONST RECT *);
        !          1716: HRGN    WINAPI CreateRoundRectRgn(int, int, int, int, int, int);
        !          1717: BOOL    WINAPI CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPSTR);
        !          1718: BOOL    WINAPI CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPWSTR);
        !          1719: #ifdef UNICODE
        !          1720: #define CreateScalableFontResource CreateScalableFontResourceW
        !          1721: #else
        !          1722: #define CreateScalableFontResource CreateScalableFontResourceA
        !          1723: #endif // !UNICODE
        !          1724: HBRUSH  WINAPI CreateSolidBrush(COLORREF);
        !          1725: 
        !          1726: BOOL WINAPI DeleteDC(HDC);
        !          1727: BOOL WINAPI DeleteMetaFile(HMETAFILE);
        !          1728: BOOL WINAPI DeleteObject(HGDIOBJ);
        !          1729: int  WINAPI DeviceCapabilitiesEx(LPSTR, LPSTR, LPSTR, int, LPSTR, LPDEVMODE );
        !          1730: BOOL  WINAPI Ellipse(HDC, int, int, int, int);
        !          1731: 
        !          1732: int  WINAPI EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROC, LPARAM);
        !          1733: int  WINAPI EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROC, LPARAM);
        !          1734: #ifdef UNICODE
        !          1735: #define EnumFontFamilies EnumFontFamiliesW
        !          1736: #else
        !          1737: #define EnumFontFamilies EnumFontFamiliesA
        !          1738: #endif // !UNICODE
        !          1739: int  WINAPI EnumFontsA(HDC, LPCSTR,  FONTENUMPROC, LPARAM);
        !          1740: int  WINAPI EnumFontsW(HDC, LPCWSTR,  FONTENUMPROC, LPARAM);
        !          1741: #ifdef UNICODE
        !          1742: #define EnumFonts EnumFontsW
        !          1743: #else
        !          1744: #define EnumFonts EnumFontsA
        !          1745: #endif // !UNICODE
        !          1746: 
        !          1747: #ifdef STRICT
        !          1748: int  WINAPI EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
        !          1749: #else
        !          1750: int  WINAPI EnumObjects(HDC, int, GOBJENUMPROC, LPVOID);
        !          1751: #endif
        !          1752: 
        !          1753: BOOL WINAPI EqualRgn(HRGN, HRGN);
        !          1754: int  WINAPI Escape(HDC, int, int, LPCSTR, LPVOID);
        !          1755: int  WINAPI ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
        !          1756: int  WINAPI DrawEscape(HDC, int, int, LPCSTR);
        !          1757: int  WINAPI ExcludeClipRect(HDC, int, int, int, int);
        !          1758: HRGN WINAPI ExtCreateRegion(LPXFORM, DWORD, LPRGNDATA);
        !          1759: BOOL  WINAPI ExtFloodFill(HDC, int, int, COLORREF, UINT);
        !          1760: BOOL   WINAPI FillRgn(HDC, HRGN, HBRUSH);
        !          1761: BOOL   WINAPI FloodFill(HDC, int, int, COLORREF);
        !          1762: BOOL   WINAPI FrameRgn(HDC, HRGN, HBRUSH, int, int);
        !          1763: int   WINAPI GetROP2(HDC);
        !          1764: BOOL  WINAPI GetAspectRatioFilterEx(HDC, LPSIZE);
        !          1765: COLORREF WINAPI GetBkColor(HDC);
        !          1766: int   WINAPI GetBkMode(HDC);
        !          1767: LONG  WINAPI GetBitmapBits(HBITMAP, LONG, LPVOID);
        !          1768: BOOL  WINAPI GetBitmapDimensionEx(HBITMAP, LPSIZE);
        !          1769: UINT  WINAPI GetBoundsRect(HDC, LPRECT, UINT);
        !          1770: 
        !          1771: BOOL  WINAPI GetBrushOrgEx(HDC, LPPOINT);
        !          1772: 
        !          1773: BOOL  WINAPI GetCharWidthA(HDC, UINT, UINT, LPINT);
        !          1774: BOOL  WINAPI GetCharWidthW(HDC, UINT, UINT, LPINT);
        !          1775: #ifdef UNICODE
        !          1776: #define GetCharWidth GetCharWidthW
        !          1777: #else
        !          1778: #define GetCharWidth GetCharWidthA
        !          1779: #endif // !UNICODE
        !          1780: BOOL  APIENTRY GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
        !          1781: BOOL  APIENTRY GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
        !          1782: #ifdef UNICODE
        !          1783: #define GetCharWidthFloat GetCharWidthFloatW
        !          1784: #else
        !          1785: #define GetCharWidthFloat GetCharWidthFloatA
        !          1786: #endif // !UNICODE
        !          1787: 
        !          1788: BOOL  APIENTRY GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
        !          1789: BOOL  APIENTRY GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
        !          1790: #ifdef UNICODE
        !          1791: #define GetCharABCWidths GetCharABCWidthsW
        !          1792: #else
        !          1793: #define GetCharABCWidths GetCharABCWidthsA
        !          1794: #endif // !UNICODE
        !          1795: BOOL  APIENTRY GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
        !          1796: BOOL  APIENTRY GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
        !          1797: #ifdef UNICODE
        !          1798: #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
        !          1799: #else
        !          1800: #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
        !          1801: #endif // !UNICODE
        !          1802: 
        !          1803: int   WINAPI GetClipBox(HDC, LPRECT);
        !          1804: int   WINAPI GetClipRgn(HDC, HRGN);
        !          1805: int   WINAPI GetMetaRgn(HDC, HRGN);
        !          1806: HGDIOBJ WINAPI GetCurrentObject(HDC, UINT);
        !          1807: BOOL  WINAPI GetCurrentPositionEx(HDC, LPPOINT);
        !          1808: int   WINAPI GetDeviceCaps(HDC, int);
        !          1809: int   WINAPI GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
        !          1810: DWORD WINAPI GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD);
        !          1811: DWORD WINAPI GetGlyphOutline(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, CONST LPMAT2);
        !          1812: int   WINAPI GetMapMode(HDC);
        !          1813: UINT  WINAPI GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID);
        !          1814: HMETAFILE   WINAPI GetMetaFileA(LPCSTR);
        !          1815: HMETAFILE   WINAPI GetMetaFileW(LPCWSTR);
        !          1816: #ifdef UNICODE
        !          1817: #define GetMetaFile GetMetaFileW
        !          1818: #else
        !          1819: #define GetMetaFile GetMetaFileA
        !          1820: #endif // !UNICODE
        !          1821: COLORREF WINAPI GetNearestColor(HDC, COLORREF);
        !          1822: UINT  WINAPI GetNearestPaletteIndex(HPALETTE, COLORREF);
        !          1823: DWORD WINAPI GetObjectType(HGDIOBJ h);
        !          1824: 
        !          1825: #ifndef NOTEXTMETRIC
        !          1826: 
        !          1827: DWORD APIENTRY GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
        !          1828: DWORD APIENTRY GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
        !          1829: #ifdef UNICODE
        !          1830: #define GetOutlineTextMetrics GetOutlineTextMetricsW
        !          1831: #else
        !          1832: #define GetOutlineTextMetrics GetOutlineTextMetricsA
        !          1833: #endif // !UNICODE
        !          1834: 
        !          1835: #endif /* NOTEXTMETRIC */
        !          1836: 
        !          1837: UINT  WINAPI GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
        !          1838: COLORREF WINAPI GetPixel(HDC, int, int);
        !          1839: int   WINAPI GetPolyFillMode(HDC);
        !          1840: BOOL  WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
        !          1841: DWORD WINAPI GetRegionData(HRGN, DWORD, LPRGNDATA);
        !          1842: int   WINAPI GetRgnBox(HRGN, LPRECT);
        !          1843: HGDIOBJ WINAPI GetStockObject(int);
        !          1844: int   WINAPI GetStretchBltMode(HDC);
        !          1845: UINT  WINAPI GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
        !          1846: UINT  WINAPI GetSystemPaletteUse(HDC);
        !          1847: int   WINAPI GetTextCharacterExtra(HDC);
        !          1848: UINT  WINAPI GetTextAlign(HDC);
        !          1849: COLORREF WINAPI GetTextColor(HDC);
        !          1850: 
        !          1851: BOOL  APIENTRY GetTextExtentPointA(
        !          1852:                     HDC,
        !          1853:                     LPCSTR,
        !          1854:                     int,
        !          1855:                     LPSIZE
        !          1856:                     );
        !          1857: BOOL  APIENTRY GetTextExtentPointW(
        !          1858:                     HDC,
        !          1859:                     LPCWSTR,
        !          1860:                     int,
        !          1861:                     LPSIZE
        !          1862:                     );
        !          1863: #ifdef UNICODE
        !          1864: #define GetTextExtentPoint GetTextExtentPointW
        !          1865: #else
        !          1866: #define GetTextExtentPoint GetTextExtentPointA
        !          1867: #endif // !UNICODE
        !          1868: 
        !          1869: BOOL  APIENTRY GetTextExtentExPointA(
        !          1870:                     HDC,
        !          1871:                     LPCSTR,
        !          1872:                     int,
        !          1873:                     int,
        !          1874:                     LPINT,
        !          1875:                     LPINT,
        !          1876:                     LPSIZE
        !          1877:                     );
        !          1878: BOOL  APIENTRY GetTextExtentExPointW(
        !          1879:                     HDC,
        !          1880:                     LPCWSTR,
        !          1881:                     int,
        !          1882:                     int,
        !          1883:                     LPINT,
        !          1884:                     LPINT,
        !          1885:                     LPSIZE
        !          1886:                     );
        !          1887: #ifdef UNICODE
        !          1888: #define GetTextExtentExPoint GetTextExtentExPointW
        !          1889: #else
        !          1890: #define GetTextExtentExPoint GetTextExtentExPointA
        !          1891: #endif // !UNICODE
        !          1892: 
        !          1893: BOOL  WINAPI GetViewportExtEx(HDC, LPSIZE);
        !          1894: BOOL  WINAPI GetViewportOrgEx(HDC, LPPOINT);
        !          1895: BOOL  WINAPI GetWindowExtEx(HDC, LPSIZE);
        !          1896: BOOL  WINAPI GetWindowOrgEx(HDC, LPPOINT);
        !          1897: 
        !          1898: int  WINAPI IntersectClipRect(HDC, int, int, int, int);
        !          1899: BOOL WINAPI InvertRgn(HDC, HRGN);
        !          1900: BOOL WINAPI LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
        !          1901: BOOL WINAPI LineTo(HDC, int, int);
        !          1902: BOOL WINAPI MaskBlt(HDC, int, int, int, int,
        !          1903:               HDC, int, int, HBITMAP, int, int, DWORD);
        !          1904: BOOL WINAPI PlgBlt(HDC, LPPOINT, HDC, int, int, int,
        !          1905:                      int, HBITMAP, int, int);
        !          1906: 
        !          1907: int  WINAPI OffsetClipRgn(HDC, int, int);
        !          1908: int  WINAPI OffsetRgn(HRGN, int, int);
        !          1909: BOOL WINAPI PatBlt(HDC, int, int, int, int, DWORD);
        !          1910: BOOL WINAPI Pie(HDC, int, int, int, int, int, int, int, int);
        !          1911: BOOL WINAPI PlayMetaFile(HDC, HMETAFILE);
        !          1912: BOOL WINAPI PaintRgn(HDC, HRGN);
        !          1913: BOOL WINAPI PolyPolygon(HDC, LPPOINT, LPINT, int);
        !          1914: BOOL WINAPI PtInRegion(HRGN, int, int);
        !          1915: BOOL WINAPI PtVisible(HDC, int, int);
        !          1916: BOOL WINAPI RectInRegion(HRGN, LPRECT);
        !          1917: BOOL WINAPI RectVisible(HDC, CONST RECT *);
        !          1918: BOOL WINAPI Rectangle(HDC, int, int, int, int);
        !          1919: BOOL WINAPI RestoreDC(HDC, int);
        !          1920: UINT WINAPI RealizePalette(HDC);
        !          1921: BOOL WINAPI RemoveFontModule(HMODULE);
        !          1922: BOOL WINAPI RemoveFontResourceA(LPSTR);
        !          1923: BOOL WINAPI RemoveFontResourceW(LPWSTR);
        !          1924: #ifdef UNICODE
        !          1925: #define RemoveFontResource RemoveFontResourceW
        !          1926: #else
        !          1927: #define RemoveFontResource RemoveFontResourceA
        !          1928: #endif // !UNICODE
        !          1929: BOOL  WINAPI RoundRect(HDC, int, int, int, int, int, int);
        !          1930: BOOL WINAPI ResizePalette(HPALETTE, UINT);
        !          1931: 
        !          1932: int  WINAPI SaveDC(HDC);
        !          1933: int  WINAPI SelectClipRgn(HDC, HRGN);
        !          1934: int  WINAPI ExtSelectClipRgn(HDC, HRGN, int);
        !          1935: int  WINAPI SetMetaRgn(HDC);
        !          1936: HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
        !          1937: HPALETTE WINAPI SelectPalette(HDC, HPALETTE, BOOL);
        !          1938: COLORREF WINAPI SetBkColor(HDC, COLORREF);
        !          1939: int   WINAPI SetBkMode(HDC, int);
        !          1940: LONG  WINAPI SetBitmapBits(HBITMAP, DWORD, CONST VOID *);
        !          1941: 
        !          1942: UINT  WINAPI SetBoundsRect(HDC, CONST RECT *, UINT);
        !          1943: int   WINAPI SetDIBits(HDC, HBITMAP, UINT, UINT, CONST VOID *, LPBITMAPINFO, UINT);
        !          1944: int   WINAPI SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
        !          1945: DWORD WINAPI SetMapperFlags(HDC, DWORD);
        !          1946: int   WINAPI SetMapMode(HDC, int);
        !          1947: HMETAFILE   WINAPI SetMetaFileBitsEx(UINT, LPBYTE);
        !          1948: UINT  WINAPI SetPaletteEntries(HPALETTE, UINT, UINT, CONST PALETTEENTRY *);
        !          1949: COLORREF WINAPI SetPixel(HDC, int, int, COLORREF);
        !          1950: BOOL   WINAPI SetPixelV(HDC, int, int, COLORREF);
        !          1951: int   WINAPI SetPolyFillMode(HDC, int);
        !          1952: BOOL   WINAPI StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
        !          1953: BOOL   WINAPI SetRectRgn(HRGN, int, int, int, int);
        !          1954: int   WINAPI StretchDIBits(HDC, int, int, int, int, int, int, int, int, CONST
        !          1955:         VOID *, LPBITMAPINFO, UINT, DWORD);
        !          1956: int   WINAPI SetROP2(HDC, int);
        !          1957: int   WINAPI SetStretchBltMode(HDC, int);
        !          1958: UINT  WINAPI SetSystemPaletteUse(HDC, UINT);
        !          1959: int   WINAPI SetTextCharacterExtra(HDC, int);
        !          1960: COLORREF WINAPI SetTextColor(HDC, COLORREF);
        !          1961: UINT  WINAPI SetTextAlign(HDC, UINT);
        !          1962: BOOL  WINAPI SetTextJustification(HDC, int, int);
        !          1963: BOOL  WINAPI UpdateColors(HDC);
        !          1964: 
        !          1965: #ifndef NOMETAFILE
        !          1966: 
        !          1967: BOOL  WINAPI PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
        !          1968: typedef int (CALLBACK* MFENUMPROC)(HDC, HANDLETABLE FAR*, METARECORD FAR*, int, LPARAM);
        !          1969: BOOL  WINAPI EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
        !          1970: 
        !          1971: // Enhanced Metafile Function Declarations
        !          1972: 
        !          1973: HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
        !          1974: HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE, LPSTR);
        !          1975: HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE, LPWSTR);
        !          1976: #ifdef UNICODE
        !          1977: #define CopyEnhMetaFile CopyEnhMetaFileW
        !          1978: #else
        !          1979: #define CopyEnhMetaFile CopyEnhMetaFileA
        !          1980: #endif // !UNICODE
        !          1981: HDC   WINAPI CreateEnhMetaFileA(HDC, LPSTR, LPRECT, LPSTR);
        !          1982: HDC   WINAPI CreateEnhMetaFileW(HDC, LPWSTR, LPRECT, LPWSTR);
        !          1983: #ifdef UNICODE
        !          1984: #define CreateEnhMetaFile CreateEnhMetaFileW
        !          1985: #else
        !          1986: #define CreateEnhMetaFile CreateEnhMetaFileA
        !          1987: #endif // !UNICODE
        !          1988: BOOL  WINAPI DeleteEnhMetaFile(HENHMETAFILE);
        !          1989: BOOL  WINAPI EnumEnhMetaFile(HDC, HENHMETAFILE, PROC, LPVOID, LPRECT);
        !          1990: HENHMETAFILE  WINAPI GetEnhMetaFileA(LPSTR);
        !          1991: HENHMETAFILE  WINAPI GetEnhMetaFileW(LPWSTR);
        !          1992: #ifdef UNICODE
        !          1993: #define GetEnhMetaFile GetEnhMetaFileW
        !          1994: #else
        !          1995: #define GetEnhMetaFile GetEnhMetaFileA
        !          1996: #endif // !UNICODE
        !          1997: UINT  WINAPI GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
        !          1998: UINT  WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR );
        !          1999: UINT  WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR );
        !          2000: #ifdef UNICODE
        !          2001: #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
        !          2002: #else
        !          2003: #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
        !          2004: #endif // !UNICODE
        !          2005: UINT  WINAPI GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER );
        !          2006: UINT  WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY );
        !          2007: UINT  WINAPI GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
        !          2008: BOOL  WINAPI PlayEnhMetaFile(HDC, HENHMETAFILE, LPRECT);
        !          2009: BOOL  WINAPI PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, LPENHMETARECORD, UINT);
        !          2010: HENHMETAFILE  WINAPI SetEnhMetaFileBits(UINT, LPBYTE);
        !          2011: HENHMETAFILE  WINAPI SetWinMetaFileBits(UINT, LPBYTE, HDC, LPMETAFILEPICT);
        !          2012: BOOL  WINAPI GdiComment(HDC, UINT, LPBYTE);
        !          2013: 
        !          2014: #endif  /* NOMETAFILE */
        !          2015: 
        !          2016: #ifndef NOTEXTMETRIC
        !          2017: 
        !          2018: BOOL WINAPI GetTextMetricsA(HDC, LPTEXTMETRICA);
        !          2019: BOOL WINAPI GetTextMetricsW(HDC, LPTEXTMETRICW);
        !          2020: #ifdef UNICODE
        !          2021: #define GetTextMetrics GetTextMetricsW
        !          2022: #else
        !          2023: #define GetTextMetrics GetTextMetricsA
        !          2024: #endif // !UNICODE
        !          2025: 
        !          2026: #endif
        !          2027: 
        !          2028: /* new GDI */
        !          2029: BOOL WINAPI AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
        !          2030: BOOL WINAPI PolyPolyline(HDC, LPPOINT, LPDWORD, DWORD);
        !          2031: BOOL WINAPI GetWorldTransform(HDC, LPXFORM);
        !          2032: BOOL WINAPI SetWorldTransform(HDC, LPXFORM);
        !          2033: BOOL WINAPI ModifyWorldTransform(HDC, LPXFORM , DWORD);
        !          2034: BOOL WINAPI CombineTransform(LPXFORM, LPXFORM, LPXFORM);
        !          2035: 
        !          2036: #ifdef STRICT
        !          2037: typedef BOOL (CALLBACK* ABORTPROC)(HDC, int);
        !          2038: #else
        !          2039: typedef FARPROC ABORTPROC;
        !          2040: #endif
        !          2041: 
        !          2042: typedef struct
        !          2043: {
        !          2044:     int     cbSize;
        !          2045:     PSTR    lpszDocName;
        !          2046:     PSTR    lpszOutput;
        !          2047: }   DOCINFO;
        !          2048: typedef DOCINFO *LPDOCINFO;
        !          2049: 
        !          2050: int WINAPI StartDoc(HDC, LPDOCINFO);
        !          2051: int WINAPI EndDoc(HDC);
        !          2052: int WINAPI StartPage(HDC);
        !          2053: int WINAPI EndPage(HDC);
        !          2054: int WINAPI AbortDoc(HDC);
        !          2055: int WINAPI SetAbortProc(HDC, ABORTPROC);
        !          2056: 
        !          2057: BOOL WINAPI GdiPlayJournal(HDC,LPCSTR,DWORD,DWORD);
        !          2058: BOOL WINAPI AbortPath(HDC);
        !          2059: BOOL WINAPI ArcTo(HDC, int, int, int, int, int, int,int, int);
        !          2060: BOOL WINAPI BeginPath(HDC);
        !          2061: BOOL WINAPI CloseFigure(HDC);
        !          2062: BOOL WINAPI EndPath(HDC);
        !          2063: BOOL WINAPI FillPath(HDC);
        !          2064: BOOL WINAPI FlattenPath(HDC);
        !          2065: int  WINAPI GetPath(HDC, LPPOINT, LPBYTE, int);
        !          2066: HRGN WINAPI PathToRegion(HDC);
        !          2067: BOOL WINAPI PolyDraw(HDC, LPPOINT, LPBYTE, int);
        !          2068: BOOL WINAPI SelectClipPath(HDC, int);
        !          2069: int  WINAPI SetArcDirection(HDC, int);
        !          2070: BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
        !          2071: BOOL WINAPI StrokeAndFillPath(HDC);
        !          2072: BOOL WINAPI StrokePath(HDC);
        !          2073: BOOL WINAPI WidenPath(HDC);
        !          2074: HPEN WINAPI ExtCreatePen(DWORD, DWORD, LPLOGBRUSH, DWORD, LPDWORD);
        !          2075: BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
        !          2076: int  WINAPI GetArcDirection(HDC);
        !          2077: 
        !          2078: int   WINAPI GetObjectA(HGDIOBJ, int, LPVOID);
        !          2079: int   WINAPI GetObjectW(HGDIOBJ, int, LPVOID);
        !          2080: #ifdef UNICODE
        !          2081: #define GetObject GetObjectW
        !          2082: #else
        !          2083: #define GetObject GetObjectA
        !          2084: #endif // !UNICODE
        !          2085: BOOL  WINAPI MoveToEx(HDC, int, int, LPPOINT);
        !          2086: BOOL  WINAPI TextOutA(HDC, int, int, LPCSTR, int);
        !          2087: BOOL  WINAPI TextOutW(HDC, int, int, LPCWSTR, int);
        !          2088: #ifdef UNICODE
        !          2089: #define TextOut TextOutW
        !          2090: #else
        !          2091: #define TextOut TextOutA
        !          2092: #endif // !UNICODE
        !          2093: BOOL  WINAPI ExtTextOutA(HDC, int, int, UINT, CONST RECT *, LPCSTR, UINT, LPINT);
        !          2094: BOOL  WINAPI ExtTextOutW(HDC, int, int, UINT, CONST RECT *, LPCWSTR, UINT, LPINT);
        !          2095: #ifdef UNICODE
        !          2096: #define ExtTextOut ExtTextOutW
        !          2097: #else
        !          2098: #define ExtTextOut ExtTextOutA
        !          2099: #endif // !UNICODE
        !          2100: 
        !          2101: HRGN  WINAPI CreatePolygonRgn(CONST POINT *, int, int);
        !          2102: BOOL  WINAPI DPtoLP(HDC, LPPOINT, int);
        !          2103: BOOL  WINAPI LPtoDP(HDC, LPPOINT, int);
        !          2104: BOOL  WINAPI Polygon(HDC, LPPOINT, int);
        !          2105: BOOL  WINAPI Polyline(HDC, CONST POINT *, int);
        !          2106: 
        !          2107: BOOL  WINAPI PolyBezier(HDC, LPPOINT, DWORD);
        !          2108: BOOL  WINAPI PolyBezierTo(HDC, LPPOINT, DWORD);
        !          2109: BOOL  WINAPI PolylineTo(HDC, LPPOINT, DWORD);
        !          2110: 
        !          2111: BOOL  WINAPI SetViewportExtEx(HDC, int, int, LPSIZE);
        !          2112: BOOL  WINAPI SetViewportOrgEx(HDC, int, int, LPPOINT);
        !          2113: BOOL  WINAPI SetWindowExtEx(HDC, int, int, LPSIZE);
        !          2114: BOOL  WINAPI SetWindowOrgEx(HDC, int, int, LPPOINT);
        !          2115: 
        !          2116: BOOL  WINAPI OffsetViewportOrgEx(HDC, int, int, LPPOINT);
        !          2117: BOOL  WINAPI OffsetWindowOrgEx(HDC, int, int, LPPOINT);
        !          2118: BOOL  WINAPI ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
        !          2119: BOOL  WINAPI ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
        !          2120: BOOL  WINAPI SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
        !          2121: BOOL  WINAPI SetBrushOrgEx(HDC, int, int, LPPOINT);
        !          2122: 
        !          2123: int   WINAPI GetTextFaceA(HDC, int, LPSTR);
        !          2124: int   WINAPI GetTextFaceW(HDC, int, LPWSTR);
        !          2125: #ifdef UNICODE
        !          2126: #define GetTextFace GetTextFaceW
        !          2127: #else
        !          2128: #define GetTextFace GetTextFaceA
        !          2129: #endif // !UNICODE
        !          2130: 
        !          2131: #define FONTMAPPER_MAX 10
        !          2132: 
        !          2133: DWORD WINAPI EnumNearestFontsA(HDC, LPEXTLOGFONTA, DWORD, LPFMATCHA);
        !          2134: DWORD WINAPI EnumNearestFontsW(HDC, LPEXTLOGFONTW, DWORD, LPFMATCHW);
        !          2135: #ifdef UNICODE
        !          2136: #define EnumNearestFonts EnumNearestFontsW
        !          2137: #else
        !          2138: #define EnumNearestFonts EnumNearestFontsA
        !          2139: #endif // !UNICODE
        !          2140: 
        !          2141: BOOL WINAPI SetFontMapperControls(LPFMCONTROLS);
        !          2142: 
        !          2143: BOOL WINAPI GetFontMapperControls(LPFMCONTROLS, DWORD);
        !          2144: 
        !          2145: HFONT  WINAPI ExtCreateFontIndirectA(LPEXTLOGFONTA);
        !          2146: HFONT  WINAPI ExtCreateFontIndirectW(LPEXTLOGFONTW);
        !          2147: #ifdef UNICODE
        !          2148: #define ExtCreateFontIndirect ExtCreateFontIndirectW
        !          2149: #else
        !          2150: #define ExtCreateFontIndirect ExtCreateFontIndirectA
        !          2151: #endif // !UNICODE
        !          2152: typedef struct tagKERNINGPAIR {
        !          2153:    WORD wFirst;
        !          2154:    WORD wSecond;
        !          2155:    int  iKernAmount;
        !          2156: } KERNINGPAIR, *LPKERNINGPAIR;
        !          2157: 
        !          2158: DWORD WINAPI GetKerningPairs(HDC, DWORD, LPKERNINGPAIR);
        !          2159: 
        !          2160: BOOL  WINAPI GdiFlush();
        !          2161: DWORD WINAPI GdiSetBatchLimit(DWORD);
        !          2162: DWORD WINAPI GdiGetBatchLimit();
        !          2163: 
        !          2164: #endif /* NOGDI */
        !          2165: #endif /* _WINGDI_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.