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