|
|
1.1 root 1: /*static char *SCCSID = "@(#)pmddi.h 13.13 90/04/02";*/
2: /*******************************Module*Header*******************************\
3: * Module Name: PMDDI.H *
4: * *
5: * Include file that declares entry points, macros, and types for the *
6: * Graphics Engine. *
7: * *
8: * Version 1.10 Copyright International Business Machines Corp. 1981, 1988 *
9: * Version 1.10 Copyright Microsoft Corp. 1981, 1988 *
10: * *
11: *===========================================================================*
12: * *
13: * The following symbols are used in this file for conditional sections: *
14: * *
15: * INCL_DDIGRE - if you don't want OS2DEF, PMGPI, and PMDEV included *
16: * INCL_DDIDEFS - if you don't want the above, but do want GRE structs *
17: * *
18: * It is expected that callers of the Engine will want to define INCL_DDIGRE *
19: * and possibly INCL_DDIDEFS. The Engine itself and device drivers define *
20: * neither of these. *
21: * *
22: * Further defines must be made to specify which of the GRE function macros *
23: * should be defined. INCL_GREALL causes all of them to be defined. *
24: * *
25: * INCL_GRE_ARCS - Arcs functions *
26: * INCL_GRE_LINES - Line functions *
27: * INCL_GRE_MARKERS - etc. *
28: * INCL_GRE_SCANS *
29: * INCL_GRE_BITMAPS *
30: * INCL_GRE_STRINGS *
31: * INCL_GRE_PATHS *
32: * INCL_GRE_PICK *
33: * INCL_GRE_CLIP *
34: * INCL_GRE_REGIONS *
35: * INCL_GRE_XFORMS *
36: * INCL_GRE_DEVMISC *
37: * INCL_GRE_COLORTABLE *
38: * INCL_GRE_DEVICE *
39: * INCL_GRE_DCS *
40: * INCL_GRE_SETID *
41: * INCL_GRE_FONTS *
42: * INCL_GRE_JOURNALING *
43: * INCL_GRE_LCID *
44: * INCL_GRE_DEVSUPPORT *
45: * INCL_GRE_PALETTE *
46: \***************************************************************************/
47:
48: /* exported Engine DDI functions */
49:
50: ULONG PASCAL FAR SetDriverInfo( ULONG, LHANDLE, ULONG, HDC );
51: ULONG PASCAL FAR GetDriverInfo( LHANDLE, ULONG, HDC );
52: ULONG PASCAL FAR PostDeviceModes( PDRIVDATA, PSZ, PSZ, PSZ, ULONG );
53: BOOL PASCAL FAR GreInitialize(VOID);
54:
55: /* define common types in the Engine and DDI */
56:
57: typedef struct _RECTS { /* rcs */
58: POINTS pts1;
59: POINTS pts2;
60: } RECTS;
61: typedef RECTS FAR *PRECTS;
62:
63: typedef struct _POINTFX { /* ptfx */
64: FIXED x;
65: FIXED y;
66: } POINTFX;
67: typedef POINTFX FAR *PPOINTFX;
68:
69: typedef struct _RECTFX { /* rcfx */
70: POINTFX ptfx1;
71: POINTFX ptfx2;
72: } RECTFX;
73: typedef RECTFX FAR *PRECTFX;
74:
75: typedef struct _XFORM { /* xform */
76: FIXED fxM11;
77: FIXED fxM12;
78: FIXED fxM21;
79: FIXED fxM22;
80: LONG lM41;
81: LONG lM42;
82: } XFORM;
83: typedef XFORM FAR *PXFORM;
84:
85: typedef LONG LCID; /* locally-coded id */
86: typedef LCID FAR *PLCID;
87: typedef LONG PHID; /* path id */
88: typedef ULONG HDEVPAL;
89:
90: /* get GRE function macros */
91: /* have INCL_GREALL defined to get all of these */
92:
93: #ifdef INCL_GREALL
94: #define INCL_GRE_ARCS
95: #define INCL_GRE_LINES
96: #define INCL_GRE_MARKERS
97: #define INCL_GRE_SCANS
98: #define INCL_GRE_BITMAPS
99: #define INCL_GRE_STRINGS
100: #define INCL_GRE_PATHS
101: #define INCL_GRE_PICK
102: #define INCL_GRE_CLIP
103: #define INCL_GRE_REGIONS
104: #define INCL_GRE_XFORMS
105: #define INCL_GRE_DEVMISC
106: #define INCL_GRE_COLORTABLE
107: #define INCL_GRE_DEVICE
108: #define INCL_GRE_DCS
109: #define INCL_GRE_SETID
110: #define INCL_GRE_FONTS
111: #define INCL_GRE_JOURNALING
112: #define INCL_GRE_LCID
113: #define INCL_GRE_DEVSUPPORT
114: #define INCL_GRE_PALETTE
115: #endif /* INCL_GREALL */
116:
117: #ifdef INCL_GRE_DEVMISC
118: #define INCL_GRE_DEVMISC1
119: #define INCL_GRE_DEVMISC2
120: #define INCL_GRE_DEVMISC3
121: #endif /* INCL_GRE_DEVMISC */
122:
123: /* Command Flags for high word of FunN */
124:
125: #ifdef INCL_DDICOMFLAGS
126: #define COM_DRAW 0x0001
127: #define COM_BOUND 0x0002
128: #define COM_CORRELATE 0x0004
129: #define COM_ALT_BOUND 0x0008
130: #define COM_AREA 0x0010
131: #define COM_PATH 0x0020
132: #define COM_TRANSFORM 0x0040
133: #define COM_RECORDING 0x0080
134: #define COM_DEVICE 0x0100
135: #endif /* INCL_DDICOMFLAGS */
136:
137: #ifdef INCL_GRE_ARCS
138:
139: /* BoxBoundary */
140: /* BoxInterior */
141: /* BoxBoth */
142:
143: typedef struct _BOXPARAMS { /* boxp */
144: POINTL ptl;
145: SIZEL sizl;
146: } BOXPARAMS;
147: typedef BOXPARAMS FAR *PBOXPARAMS;
148: #endif /* INCL_GRE_ARCS */
149:
150: #ifdef INCL_GRE_CLIP
151:
152: /* CopyClipRegion */
153:
154: #define COPYCRGN_ALLINTERSECT 0L
155: #define COPYCRGN_VISRGN 1L
156: #define COPYCRGN_CLIPRGN 2L
157:
158: /* SetupDC */
159:
160: #define SETUPDC_VISRGN 0x00000001L
161: #define SETUPDC_ORIGIN 0x00000002L
162: #define SETUPDC_ACCUMBOUNDSON 0x00000004L
163: #define SETUPDC_ACCUMBOUNDSOFF 0x00000008L
164: #define SETUPDC_RECALCCLIP 0x00000010L
165: #define SETUPDC_SETOWNER 0x00000020L
166: #define SETUPDC_CLEANDC 0x00000040L
167:
168: #endif /* INCL_GRE_CLIP */
169:
170: #ifdef INCL_GRE_XFORMS
171: /* QueryViewportSize */
172:
173: typedef struct _VIEWPORTSIZE { /* vs */
174: ULONG cx;
175: ULONG cy;
176: } VIEWPORTSIZE;
177: typedef VIEWPORTSIZE FAR *PVIEWPORTSIZE;
178:
179: #endif /* INCL_GRE_XFORMS */
180:
181: #ifdef INCL_GRE_DEVSUPPORT
182:
183: /* Constants for GreInitializeAttributes */
184:
185: #define INAT_DEFAULTATTRIBUTES 1L
186: #define INAT_CURRENTATTRIBUTES 2L
187:
188: /* InvalidateVisRegion */
189:
190: typedef struct _DC_BLOCK { /* ivr */
191: ULONG hdc;
192: ULONG hddc;
193: } DC_BLOCK;
194: typedef DC_BLOCK FAR *PDC_BLOCK;
195:
196: #endif /* INCL_GRE_DEVSUPPORT */
197:
198: #ifdef INCL_DDIMISC
199:
200: /* Display information resource structure (RT_DISPLAYINFO) */
201:
202: typedef struct _DISPLAYINFO { /* dspinfo */
203: USHORT cb;
204: SHORT cxIcon;
205: SHORT cyIcon;
206: SHORT cxPointer;
207: SHORT cyPointer;
208: SHORT cxBorder;
209: SHORT cyBorder;
210: SHORT cxHSlider;
211: SHORT cyVSlider;
212: SHORT cxSizeBorder;
213: SHORT cySizeBorder;
214: SHORT cxDeviceAlign;
215: SHORT cyDeviceAlign;
216: } DISPLAYINFO;
217: typedef DISPLAYINFO FAR *PDISPLAYINFO;
218:
219: /* Parameters for the DC Enable function */
220:
221: typedef struct _DENPARAMS { /* den */
222: ULONG ulStateInfo;
223: ULONG ulType;
224: ULONG ulHDC;
225: } DENPARAMS;
226: typedef DENPARAMS FAR *PDENPARAMS;
227:
228:
229: typedef struct _STYLERATIO { /* sr */
230: BYTE dx;
231: BYTE dy;
232: } STYLERATIO;
233: typedef STYLERATIO FAR *PSTYLERATIO;
234:
235: /* Options flags for SetGlobalAttribute */
236:
237: #define GATTR_DEFAULT 1L
238:
239: /* Attribute Types for SetGlobalAttribute */
240:
241: #define ATYPE_COLOR 1L
242: #define ATYPE_BACK_COLOR 2L
243: #define ATYPE_MIX_MODE 3L
244: #define ATYPE_BACK_MIX_MODE 4L
245:
246: /* Options for CharStringPos */
247:
248: #define CHS_START_XY 0x00000020L
249: #define CHS_ATTR_INFO 0x00000040L
250:
251: typedef struct _CSP_INFO { /* csp */
252: LONG cSize;
253: LONG lColor;
254: LONG lBackColor;
255: } CSP_INFO;
256: typedef CSP_INFO FAR *PCSP_INFO;
257:
258: /* Set/GetProcessControl */
259:
260: #define PCTL_DRAW 0x00000001L
261: #define PCTL_BOUND 0x00000002L
262: #define PCTL_CORRELATE 0x00000004L
263: #define PCTL_USERBOUNDS 0x00000008L
264: #define PCTL_AREA 0x00000010L
265:
266: /* ResetBounds */
267:
268: #define RB_GPI 0x00000001L
269: #define RB_USER 0x00000002L
270:
271: /* GetBoundsData */
272:
273: #define GBD_GPI 0L
274: #define GBD_USER 1L
275:
276: /* EndArea Cancel Option */
277:
278: #define EA_DRAW 0x00000000L
279: #define EA_CANCEL 0x00000001L
280:
281: /* Bitblt Style */
282:
283: #define BLTMODE_SRC_BITMAP 0x00010000L
284: #define BLTMODE_ATTRS_PRES 0x00020000L
285: #define BLTMODE_NO_PAL_MAP 0x00080000L
286: #define BBO_TARGWORLD 0x00000100L
287:
288: typedef struct _BITBLTPARAMETERS { /* bbp */
289: RECTL rclTarg;
290: RECTL rclSrc;
291: } BITBLTPARAMETERS;
292: typedef BITBLTPARAMETERS FAR *PBITBLTPARAMETERS;
293:
294: typedef struct _BITBLTATTRS { /* bba */
295: LONG cSize;
296: LONG lColor;
297: LONG lBackColor;
298: } BITBLTATTRS;
299: typedef BITBLTATTRS FAR *PBITBLTATTRS;
300:
301: /* LCIDs */
302:
303: #define LCID_AVIO_1 (-2L)
304: #define LCID_AVIO_2 (-3L)
305: #define LCID_AVIO_3 (-4L)
306:
307: #define LCID_RANGE_GPI 1L
308: #define LCID_RANGE_AVIO 2L
309: #define LCID_RANGE_BOTH 3L
310: #define LCID_GRAPHICS_MIN 1
311: #define LCID_GRAPHICS_MAX 254
312:
313: #define LCIDT_NONE 0L
314:
315: /* ResetDC */
316:
317: #define RDC_RGBMODE 0x1L
318: #define RDC_SETOWNERTOSHELL 0x2L
319:
320: /* SetRandomXform */
321:
322: #define SX_UNITY 0L
323: #define SX_CAT_AFTER 1L
324: #define SX_CAT_BEFORE 2L
325: #define SX_OVERWRITE 3L
326:
327: /* transform accelerators */
328: /* These bits are only valid if the MATRIX_SIMPLE bit is set. */
329: /* The X and Y negate flags are only meaningful if MATRIX_UNITS is set.*/
330:
331: #define MATRIX_SIMPLE 0x0001L /* two entries are zero */
332: #define MATRIX_UNITS 0x0002L /* all entries are +1 or -1 */
333: #define MATRIX_XY_EXCHANGE 0x0004L /* zeros are on the diagonal*/
334: #define MATRIX_X_NEGATE 0x0008L /* X is hit by negative */
335: #define MATRIX_Y_NEGATE 0x0010L /* Y is hit by negative */
336: #define MATRIX_TRANSLATION 0x0020L /* non-zero translation */
337:
338: /* NotifyClipChange */
339:
340: #define NCC_CLEANDC 0x0002L /* clear DC dirty bit */
341:
342: /* NotifyTransformChange */
343:
344: typedef struct _NOTIFYTRANSFORMDATA { /* ntd */
345: USHORT usType;
346: XFORM xform;
347: } NOTIFYTRANSFORMDATA;
348: typedef NOTIFYTRANSFORMDATA FAR *PNOTIFYTRANSFORMDATA;
349:
350:
351: /* ColorTable */
352:
353: #define LCOL_SYSCOLORS 0x0010L
354:
355:
356: /* query device caps */
357:
358: typedef struct _QCDARRAY { /* qcd */
359: LONG iFormat;
360: LONG iSmallest;
361: LONG iLargest;
362: LONG cAvailable;
363: LONG cSpecifiable;
364: LONG iMax;
365: } QCDARRAY;
366: typedef QCDARRAY FAR *PQCDARRAY;
367:
368: #define CAPS_MIX_OR 0x00000001L
369: #define CAPS_MIX_COPY 0x00000002L
370: #define CAPS_MIX_UNDERPAINT 0x00000004L
371: #define CAPS_MIX_XOR 0x00000008L
372: #define CAPS_MIX_INVISIBLE 0x00000010L
373: #define CAPS_MIX_AND 0x00000020L
374: #define CAPS_MIX_OTHER 0x00000040L
375:
376: #define CAPS_DEV_FONT_SIM_BOLD 1L // for CAPS_DEVICE_FONT_SIM
377: #define CAPS_DEV_FONT_SIM_ITALIC 2L
378: #define CAPS_DEV_FONT_SIM_UNDERSCORE 4L
379: #define CAPS_DEV_FONT_SIM_STRIKEOUT 8L
380:
381: #define CAPS_BACKMIX_OR 0x00000001L
382: #define CAPS_BACKMIX_COPY 0x00000002L
383: #define CAPS_BACKMIX_UNDERPAINT 0x00000004L
384: #define CAPS_BACKMIX_XOR 0x00000008L
385: #define CAPS_BACKMIX_INVISIBLE 0x00000010L
386:
387:
388: /*#define CAPS_RASTER_BITBLT 0x00000001L defined in pmdev.h */
389: /*#define CAPS_RASTER_BANDING 0x00000002L */
390: /*#define CAPS_RASTER_STRETCHBLT 0x00000004L */
391: /*#define CAPS_RASTER_SETPEL 0x00000010L */
392: #define CAPS_FONT_OUTLINE_MANAGE 16L
393: #define CAPS_FONT_IMAGE_MANAGE 32L
394: #define SFONT_RASTER 100
395: #define SFONT_OUTLINE 101
396: #define FONT 1000 /* must not conflict with RT_XXX */
397: /* constants in BSEDOS.H */
398:
399: /* DCCaps */
400:
401: #define DCCAPS_LINE 0x0100
402: #define DCCAPS_CURVE 0x0200
403: #define DCCAPS_AREA 0x0400
404: #define DCCAPS_MARKER 0x0800
405: #define DCCAPS_TEXT 0x1000
406:
407: /* DeviceDeleteBitmap */
408: #define BITMAP_USAGE_TRANSLATE 0x0004
409:
410: /* DeleteBitmap return structure */
411: typedef struct _DELETERETURN { /* dr */
412: ULONG pInfo;
413: ULONG pBits;
414: } DELETERETURN;
415: typedef DELETERETURN FAR *PDELETERETURN;
416:
417: /* Short Line Header */
418:
419: #define SLH_FORMAT_IS_16_DOT_16 1
420: #define PSL_YMAJOR 0x8000 /* bit mask for usStyle */
421:
422: typedef struct _SHORTLINEHEADER { /* slh */
423: USHORT usStyle;
424: USHORT usFormat;
425: POINTS ptsStart;
426: POINTS ptsStop;
427: SHORT sxLeft;
428: SHORT sxRight;
429: struct _SHORTLINEHEADER FAR * pslhNext;
430: struct _SHORTLINEHEADER FAR * pslhPrev;
431: } SHORTLINEHEADER;
432: typedef SHORTLINEHEADER FAR *PSHORTLINEHEADER;
433:
434: /* Short Line */
435:
436: typedef struct _SHORTLINE { /* sl */
437: SHORTLINEHEADER slh;
438: SHORT ax[1];
439: } SHORTLINE;
440: typedef SHORTLINE FAR *PSHORTLINE;
441:
442: typedef struct _SCANDATA { /* sd */
443: PSHORTLINE pslFirstLeft;
444: PSHORTLINE pslLastLeft;
445: PSHORTLINE pslFirstRight;
446: PSHORTLINE pslLastRight;
447: ULONG c;
448: RECTL rclBound;
449: } SCANDATA;
450: typedef SCANDATA FAR *PSCANDATA;
451:
452: /* Index for Set/GetDriverInfo */
453:
454: #define DI_HDC 0x00000000L
455: #define DI_HBITMAP 0x00000001L
456:
457: #endif /* INCL_DDIMISC */
458:
459: #ifdef INCL_DDIMISC2
460:
461: /* RealizeFont */
462:
463: #define REALIZE_FONT 1 /* To be removed */
464: #define REALIZE_ENGINE_FONT 2
465: #define DELETE_FONT 3
466:
467: #define RF_DEVICE_FONT 1
468: #define RF_LOAD_ENGINE_FONT 2
469: #define RF_DELETE_FONT 3
470: #define RF_DELETE_ENGINE_FONT 4
471:
472: #endif /* INCL_DDIMISC2 */
473:
474: #ifdef INCL_DDIBUNDLES
475:
476: /* Device Line Bundle */
477:
478: typedef struct _LINEDEFS { /* ldef */
479: ULONG defType;
480: } LINEDEFS;
481: typedef LINEDEFS FAR *PLINDEFS;
482:
483: typedef struct _DLINEBUNDLE { /* dlbnd */
484: SHORT cAttr;
485: SHORT cDefs;
486: LINEBUNDLE lbnd;
487: LINEDEFS ldef;
488: } DLINEBUNDLE;
489: typedef DLINEBUNDLE FAR *PDLINEBUNDLE;
490:
491: /* Device Area Bundle */
492:
493: typedef struct _AREADEFS { /* adef */
494: ULONG defSet;
495: UINT fFlags;
496: UINT CodePage;
497: } AREADEFS;
498: typedef AREADEFS FAR *PAREADEFS;
499:
500: typedef struct _DAREABUNDLE { /* dabnd */
501: SHORT cAttr;
502: SHORT cDefs;
503: AREABUNDLE abnd;
504: AREADEFS adef;
505: } DAREABUNDLE;
506: typedef DAREABUNDLE FAR *PDAREABUNDLE;
507:
508: /* Device Character Bundle */
509:
510: typedef struct _CHARDEFS { /* cdef */
511: ULONG defSet;
512: UINT fFlags;
513: UINT CodePage;
514: UINT charSpacing;
515: } CHARDEFS;
516: typedef CHARDEFS FAR *PCHARDEFS;
517:
518: typedef struct _DCHARBUNDLE { /* dcbnd */
519: SHORT cAttr;
520: SHORT cDefs;
521: CHARBUNDLE cbnd;
522: CHARDEFS cdef;
523: } DCHARBUNDLE;
524: typedef DCHARBUNDLE FAR *PDCHARBUNDLE;
525:
526: /* Device Image Bundle */
527:
528: #ifdef BOGUS
529: typedef struct _IMAGEDEFS { /* idef */
530: } IMAGEDEFS;
531: #endif /* BOGUS */
532:
533: typedef struct _DIMAGEBUNDLE { /* dibnd */
534: SHORT cAttr;
535: SHORT cDefs;
536: IMAGEBUNDLE ibnd;
537: /* IMAGEDEFS idef; */
538: } DIMAGEBUNDLE;
539: typedef DIMAGEBUNDLE FAR *PDIMAGEBUNDLE;
540:
541: /* Device Marker Bundle */
542:
543: typedef struct _MARKERDEFS { /* mdef */
544: ULONG defSet;
545: UINT fFlags;
546: UINT CodePage;
547: } MARKERDEFS;
548: typedef MARKERDEFS FAR *PMARKERDEFS;
549:
550: typedef struct _DMARKERBUNDLE { /* dmbnd */
551: SHORT cAttr;
552: SHORT cDefs;
553: MARKERBUNDLE mbnd;
554: MARKERDEFS mdef;
555: } DMARKERBUNDLE;
556: typedef DMARKERBUNDLE FAR *PDMARKERBUNDLE;
557:
558:
559: #endif /* INCL_DDIBUNDLES */
560:
561: /* This stuff should go away soon. use INCL_FONTFILEFORMAT and include os2.h */
562: #ifdef INCL_DDIFONTSTRUCS
563: #include <pmfont.h>
564: #endif /* INCL_DDIFONTSTRUCS */
565:
566: /* This stuff should go away soon. use INCL_BITMAPFILEFORMAT and include os2.h */
567: #ifdef INCL_DDIBITMAPFILE
568: #include <pmbitmap.h>
569: #endif /* INCL_DDIBITMAPFILE */
570:
571: #ifdef INCL_DDIPATHS
572:
573: /* Signatures of Path data structures */
574:
575: #define CURVE_IDENTIFIER 0x43
576: #define SUBPATH_IDENTIFIER 0x53
577: #define PATH_IDENTIFIER 0x50
578: #define PATHSEGMENT_IDENTIFIER 0x5350
579:
580: /* Curve types */
581:
582: #define LINE_IDENTIFIER 0x4C
583: #define FILLET_SHARP_IDENTIFIER 0x46
584: #define FILLET_EQN_IDENTIFIER 0x45
585: #define CURVEATTR_IDENTIFIER 0x41
586:
587: /* Subpath types */
588:
589: #define SUBPATH_CLOSED 0x43
590: #define SUBPATH_OPEN 0x4F
591:
592: /* Path types */
593:
594: #define BEGINAREA_IDENTIFIER 0x41
595: #define BEGINPATH_IDENTIFIER 0x50
596: #define PATHSEGMENT_FORMAT_16_16 1
597:
598: /* Flags for curve data structures */
599:
600: #define CURVE_FIRST_IN_SUBPATH 0x0001
601: #define CURVE_DO_FIRST_PEL 0x0002
602: #define CURVE_GOES_UP 0x0004
603: #define CURVE_IS_HORIZONTAL 0x0008
604: #define CURVE_IS_X_MAJOR 0x0010
605: #define CURVE_GOES_LEFT 0x0020
606: #define CURVE_FIRST_CARVED 0x0040
607: #define CURVE_HALF_COOKED 0x0400
608: #define CURVE_IS_ABOVE_OR_RIGHT 0x0800
609: /* Flags for SubPath data structures */
610:
611: #define SUBPATH_DO_FIRST_PEL 0x0002
612:
613: /* Flags for Path data structures */
614:
615: #define PATH_HAS_LINES_PRESENT 0x4000
616: #define PATH_HAS_CONICS_PRESENT 0x8000
617:
618: /* Data structures to support the Path API */
619:
620: typedef struct _CURVE { /* cv */
621: BYTE bIdent;
622: BYTE bType;
623: USHORT usStyle;
624: USHORT fs;
625: struct _CURVE NEAR *npcvNext;
626: struct _CURVE NEAR *npcvPrev;
627: struct _CURVE NEAR *npcvAttrs;
628: POINTFX ptfxA;
629: POINTFX ptfxC;
630: BYTE Reserved2[16];
631: } CURVE;
632: typedef CURVE FAR *PCURVE;
633: typedef CURVE NEAR *NPCURVE;
634:
635: typedef struct _LINE { /* ln */
636: BYTE bIdent;
637: BYTE bType;
638: USHORT usStyle;
639: USHORT fs;
640: CURVE NEAR *npcvNext;
641: CURVE NEAR *npcvPrev;
642: CURVE NEAR *npcvAttrs;
643: POINTFX ptfxA;
644: POINTFX ptfxC;
645: POINTS ptsA;
646: POINTS ptsC;
647: FIXED lRslope;
648: BYTE Reserved2[4];
649: } LINE;
650: typedef LINE FAR *PLINE;
651: typedef LINE NEAR *NPLINE;
652:
653: typedef struct _FILLETEQN { /* fse */
654: BYTE bIdent;
655: BYTE bType;
656: USHORT usReferences;
657: POINTS ptsA;
658: POINTS ptsC;
659: POINTS ptsB;
660: USHORT usNumerator;
661: USHORT usDenominator;
662: LONG lAlpha;
663: LONG lBeta;
664: LONG lGamma;
665: LONG lDelta;
666: LONG lEpsilon;
667: LONG lZeta;
668: } FILLETEQN;
669: typedef FILLETEQN FAR *PFILLETEQN;
670: typedef FILLETEQN NEAR *NPFILLETEQN;
671:
672: typedef struct _FILLETSHARP { /* fs */
673: BYTE bIdent;
674: BYTE bType;
675: USHORT usStyle;
676: USHORT fs;
677: CURVE NEAR *npcvNext;
678: CURVE NEAR *npcvPrev;
679: CURVE NEAR *npcvAttrs;
680: POINTFX ptfxA;
681: POINTFX ptfxC;
682: POINTFX ptfxB;
683: FIXED lSharpness;
684: FILLETEQN NEAR *npEquation;
685: BYTE Reserved2[2];
686: } FILLETSHARP;
687: typedef FILLETSHARP FAR *PFILLETSHARP;
688: typedef FILLETSHARP NEAR *NPFILLETSHARP;
689:
690: #ifdef INCL_GPIPRIMITIVES
691: typedef struct _CURVEATTR { /* cva */
692: BYTE bIdent;
693: BYTE bType;
694: ULONG flAttrs; /* which fields have new info */
695: BYTE Reserved1[4];
696: CURVE NEAR *npcvAttrs;
697: ULONG flDefs; /* which fields have default info */
698: LINEBUNDLE lbnd; /* the info */
699: BYTE Reserved2[2];
700: } CURVEATTR;
701: typedef CURVEATTR FAR *PCURVEATTR;
702: typedef CURVEATTR NEAR *NPCURVEATTR;
703: #endif /* INCL_GPIPRIMITIVES */
704:
705: typedef struct _SUBPATH { /* sp */
706: BYTE bIdent;
707: BYTE bType;
708: USHORT usStyle;
709: USHORT fs;
710: struct _SUBPATH NEAR *npspNext;
711: struct _SUBPATH NEAR *npspPrev;
712: USHORT ccv;
713: ULONG flFlags;
714: CURVE NEAR *npcvFirst;
715: CURVE NEAR *npcvLast;
716: RECTS rcsBounding;
717: CURVE NEAR *npcvAttrs;
718: BYTE Reserved1[14];
719: } SUBPATH;
720: typedef SUBPATH FAR *PSUBPATH;
721: typedef SUBPATH NEAR *NPSUBPATH;
722:
723: #define PH_FORMAT_IS_16_DOT_16 1
724:
725: typedef struct _PATH { /* ph */
726: BYTE bIdent;
727: BYTE bType;
728: USHORT usFormat;
729: USHORT usStyle;
730: USHORT fs;
731: SUBPATH NEAR *npspFirst;
732: SUBPATH NEAR *npspLast;
733: USHORT csp;
734: ULONG flFlags;
735: USHORT usDimension;
736: BYTE bSubpathType;
737: LONG alColor;
738: USHORT ausMixMode;
739: USHORT ausDefault;
740: POINTL aptlRefPoint ;
741: CURVE NEAR *npcvAttrs;
742: BYTE Reserved1[7];
743: } PATH;
744: typedef PATH FAR *PPATH;
745: typedef PATH NEAR *NPPATH;
746:
747: typedef struct _PATHSEGMENT { /* phs */
748: USHORT usIdent;
749: SHORT Reserved0;
750: CURVE NEAR *npcvFree;
751: USHORT ccvFree;
752: USHORT cReferences;
753: USHORT usSize;
754: PATH NEAR *npph;
755: BYTE Reserved1[2];
756: FSRSEM fsrs;
757: } PATHSEGMENT;
758: typedef PATHSEGMENT FAR *PPATHSEGMENT;
759: typedef PATHSEGMENT NEAR *NPPATHSEGMENT;
760:
761: /* Argument to DrawCookedPath, etc. */
762:
763: typedef struct _PIPELINEINFO { /* pi */
764: CURVE FAR *pcv;
765: ULONG ccv;
766: } PIPELINEINFO;
767: typedef PIPELINEINFO FAR *PPIPELINEINFO;
768: typedef PIPELINEINFO NEAR *NPPIPELINEINFO;
769: #endif /* INCL_DDIPATHS */
770:
771: #ifdef INCL_GRE_JOURNALING
772: #define JNL_TEMP_FILE 0x00000001L
773: #define JNL_PERM_FILE 0x00000002L
774: #define JNL_ENGINERAM_FILE 0x00000004L
775: #define JNL_USERRAM_FILE 0x00000008L
776: #define JNL_DRAW_OPTIMIZATION 0x00000010L
777: #define JNL_BOUNDS_OPTIMIZATION 0x00000020L
778: #endif /* INCL_GRE_JOURNALING */
779:
780:
781: #ifdef INCL_GRE_DEVICE
782:
783: /* QueryDeviceBitmaps */
784:
785: typedef struct _BITMAPFORMAT { /* bmf */
786: ULONG cPlanes;
787: ULONG cBitCount;
788: } BITMAPFORMAT;
789: typedef BITMAPFORMAT FAR *PBITMAPFORMAT;
790:
791: #endif /* INCL_GRE_DEVICE */
792:
793: #ifdef INCL_GRE_PALETTE
794:
795: typedef struct _PALETTEINFOHEADER { /* palinfohdr */
796: ULONG flCmd; // options from creation
797: ULONG ulFormat; // specifies format of entries at creation
798: LONG lStart; // starting index from creation
799: LONG clColorData; // number of elements supplied at creation
800: } PALETTEINFOHEADER;
801: typedef PALETTEINFOHEADER NEAR *NPPALETTEINFOHEADER;
802: typedef PALETTEINFOHEADER FAR *PPALETTEINFOHEADER;
803:
804: typedef struct _PALETTEINFO { /* palinfo */
805: ULONG flCmd; // options from creation
806: ULONG ulFormat; // specifies format of entries at creation
807: LONG lStart; // starting index from creation
808: LONG clColorData; // number of elements supplied at creation
809: RGB2 argb[1]; // the palette entries
810: } PALETTEINFO;
811: typedef PALETTEINFO NEAR *NPPALETTEINFO;
812: typedef PALETTEINFO FAR *PPALETTEINFO;
813:
814: /* flType values for RealizePalette */
815: #define RP_FOREGROUND 1
816: #define RP_FULL_DEFAULT_MODE 2
817: #define RP_RESTRICTED_DEFAULT_MODE 4
818:
819: #endif
820:
821: #ifdef INCL_GRE_BITMAPS
822:
823: #define LR_CLIPPED 2
824: #define LR_NOTBORDER 0
825: #define LR_BORDER 1
826: #define LR_LEFT 2
827: #define LR_RIGHT 4
828:
829: #endif
830:
831: #include <pmddim.h>
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.