|
|
1.1 root 1: /***************************************************************************\
2: *
3: * Copyright (c) IBM Corporation 1987, 1989
4: * Copyright (c) MicroSoft Corporation 1987,1989
5: *
6: * Module Name: PMGPI.H
7: *
8: * OS/2 Presentation Manager GPI constants, types and function declarations
9: *
10: *
11: * =============================================================================
12: *
13: * The following symbols are used in this file for conditional sections.
14: *
15: * INCL_GPI Include all of the GPI
16: * INCL_GPICONTROL Basic PS control
17: * INCL_GPICORRELATION Picking, Boundary and Correlation
18: * INCL_GPISEGMENTS Segment Control and Drawing
19: * INCL_GPISEGEDITING Segment Editing via Elements
20: * INCL_GPITRANSFORMS Transform and Transform Conversion
21: * INCL_GPIPATHS Paths and Clipping with Paths
22: * INCL_GPILOGCOLORTABLE Logical Color Tables
23: * INCL_GPIPRIMITIVES Drawing Primitives and Primitive Attributes
24: * INCL_GPILCIDS Phyical and Logical Fonts with Lcids
25: * INCL_GPIBITMAPS Bitmaps and Pel Operations
26: * INCL_GPIREGIONS Regions and Clipping with Regions
27: * INCL_GPIMETAFILES MetaFiles
28: * INCL_GPIDEFAULTS Default Primitive Attributes
29: * INCL_GPIERRORS defined if INCL_ERRORS defined
30: *
31: * There is a symbol used in this file called INCL_DDIDEFS. This is used to
32: * include only the definitions for the DDI. The programmer using the GPI
33: * can ignore this symbol
34: *
35: * There is a symbol used in this file called INCL_SAADEFS. This is used to
36: * include only the definitions for the SAA. The programmer using the GPI
37: * can ignore this symbol
38: *
39: \***************************************************************************/
40:
41: #if !(defined(INCL_32) || defined(INCL_16))
42: #ifdef M_I386
43: #define INCL_32
44: #else /* not M_I386 */
45: #define INCL_16
46: #endif /* M_I386 */
47: #endif /* INCL_32 || INCL_16 */
48:
49: #ifdef INCL_GPI /* include whole of the GPI */
50: #define INCL_GPICONTROL
51: #define INCL_GPICORRELATION
52: #define INCL_GPISEGMENTS
53: #define INCL_GPISEGEDITING
54: #define INCL_GPITRANSFORMS
55: #define INCL_GPIPATHS
56: #define INCL_GPILOGCOLORTABLE
57: #define INCL_GPIPRIMITIVES
58: #define INCL_GPILCIDS
59: #define INCL_GPIBITMAPS
60: #define INCL_GPIREGIONS
61: #define INCL_GPIMETAFILES
62: #define INCL_GPIDEFAULTS
63: #endif /* INCL_GPI */
64:
65: #ifdef INCL_ERRORS /* if errors are required then allow GPI errors */
66: #define INCL_GPIERRORS
67: #endif /* INCL_ERRORS */
68:
69: #ifdef INCL_DDIDEFS /* if only DDI required then enable DDI part of GPI */
70: #define INCL_GPITRANSFORMS
71: #define INCL_GPIPATHS
72: #define INCL_GPILOGCOLORTABLE
73: #define INCL_GPIPRIMITIVES
74: #define INCL_GPILCIDS
75: #define INCL_GPIBITMAPS
76: #define INCL_GPIREGIONS
77: #define INCL_GPIERRORS
78: #endif /* INCL_DDIDEFS */
79:
80: #ifdef INCL_SAADEFS /* if only SAA required then enable SAA part of GPI */
81: #define INCL_GPICONTROL
82: #define INCL_GPICORRELATION
83: #define INCL_GPISEGMENTS
84: #define INCL_GPISEGEDITING
85: #define INCL_GPITRANSFORMS
86: #define INCL_GPIPATHS
87: #define INCL_GPILOGCOLORTABLE
88: #define INCL_GPIPRIMITIVES
89: #define INCL_GPILCIDS
90: #define INCL_GPIBITMAPS
91: #define INCL_GPIREGIONS
92: #define INCL_GPIMETAFILES
93: #define INCL_GPIERRORS
94: #endif /* INCL_SAADEFS */
95:
96: /* XLATOFF */
97: #pragma pack(2) /* pack on wordboundary */
98: /* XLATON */
99:
100: /* General GPI return values */
101: #define GPI_ERROR 0L
102: #define GPI_OK 1L
103: #define GPI_ALTERROR (-1L)
104:
105: /* fixed point number - implicit binary point between 2 and 3 hex digits */
106: typedef LONG FIXED; /* fx */
107: typedef FIXED FAR *PFIXED;
108:
109: /* fixed point number - implicit binary point between 1st and 2nd hex digits */
110: typedef USHORT FIXED88; /* fx88 */
111:
112: /* fixed point signed number - implicit binary point between bits 14 and 13. */
113: /* Bit 15 is the sign bit. */
114: /* Thus 1.0 is represented by 16384 (0x4000) */
115: /* and -1.0 is represented by -16384 (0xc000) */
116: typedef USHORT FIXED114; /* fx114 */
117:
118: /* make FIXED number from SHORT integer part and USHORT fractional part */
119: #define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
120: /* extract fractional part from a fixed quantity */
121: #define FIXEDFRAC(fx) (LOUSHORT(fx))
122: /* extract integer part from a fixed quantity */
123: #define FIXEDINT(fx) ((SHORT)HIUSHORT(fx))
124:
125: /* structure for size parameters e.g. for GpiCreatePS */
126: typedef struct _SIZEL { /* sizl */
127: LONG cx;
128: LONG cy;
129: } SIZEL;
130: typedef SIZEL FAR *PSIZEL;
131:
132: /* return code on GpiQueryLogColorTable,GpiQueryRealColors and GpiQueryPel */
133: #define CLR_NOINDEX (-254L)
134:
135: #if (defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON))
136:
137: /* units for GpiCreatePS and others */
138: #define PU_ARBITRARY 0x0004L
139: #define PU_PELS 0x0008L
140: #define PU_LOMETRIC 0x000CL
141: #define PU_HIMETRIC 0x0010L
142: #define PU_LOENGLISH 0x0014L
143: #define PU_HIENGLISH 0x0018L
144: #define PU_TWIPS 0x001CL
145:
146: /* format for GpiCreatePS */
147: #define GPIF_DEFAULT 0L
148: #define GPIF_SHORT 0x0100L
149: #define GPIF_LONG 0x0200L
150:
151:
152: /* PS type for GpiCreatePS */
153: #define GPIT_NORMAL 0L
154: #define GPIT_MICRO 0x1000L
155:
156:
157: /* implicit associate flag for GpiCreatePS */
158: #define GPIA_NOASSOC 0L
159: #define GPIA_ASSOC 0x4000L
160:
161: #ifndef INCL_SAADEFS
162: /* return error for GpiQueryDevice */
163: #define HDC_ERROR ((HDC)-1L)
164: #endif /* no INCL_SAADEFS */
165:
166: /* common GPICONTROL functions */
167: /* XLATOFF */
168: #ifdef INCL_16
169: #define GpiCreatePS Gpi16CreatePS
170: #define GpiDestroyPS Gpi16DestroyPS
171: #define GpiAssociate Gpi16Associate
172: #define GpiRestorePS Gpi16RestorePS
173: #define GpiSavePS Gpi16SavePS
174: #define GpiErase Gpi16Erase
175: #endif /* INCL_16 */
176: /* XLATON */
177: HPS APIENTRY GpiCreatePS( HAB hab, HDC hdc, PSIZEL psizlSize, ULONG flOptions );
178: BOOL APIENTRY GpiDestroyPS( HPS hps );
179: BOOL APIENTRY GpiAssociate( HPS hps, HDC hdc );
180: BOOL APIENTRY GpiRestorePS( HPS hps, LONG lPSid );
181: LONG APIENTRY GpiSavePS( HPS hps );
182: BOOL APIENTRY GpiErase( HPS hps );
183:
184: #ifndef INCL_SAADEFS
185: /* XLATOFF */
186: #ifdef INCL_16
187: #define GpiQueryDevice Gpi16QueryDevice
188: #endif /* INCL_16 */
189: /* XLATON */
190: HDC APIENTRY GpiQueryDevice( HPS );
191: #endif /* no INCL_SAADEFS */
192:
193: #endif /* common GPICONTROL */
194: #ifdef INCL_GPICONTROL
195:
196: /* options for GpiResetPS */
197: #define GRES_ATTRS 0x0001L
198: #define GRES_SEGMENTS 0x0002L
199: #define GRES_ALL 0x0004L
200:
201: /* option masks for PS options used by GpiQueryPs */
202: #define PS_UNITS 0x00FCL
203: #define PS_FORMAT 0x0F00L
204: #define PS_TYPE 0x1000L
205: #define PS_MODE 0x2000L
206: #define PS_ASSOCIATE 0x4000L
207: #define PS_NORESET 0x8000L
208:
209:
210: /* error context returned by GpiErrorSegmentData */
211: #define GPIE_SEGMENT 0L
212: #define GPIE_ELEMENT 1L
213: #define GPIE_DATA 2L
214:
215: #ifndef INCL_SAADEFS
216:
217: /* control parameter for GpiSetDrawControl */
218: #define DCTL_ERASE 1L
219: #define DCTL_DISPLAY 2L
220: #define DCTL_BOUNDARY 3L
221: #define DCTL_DYNAMIC 4L
222: #define DCTL_CORRELATE 5L
223:
224: /* constants for GpiSet/QueryDrawControl */
225: #define DCTL_ERROR -1L
226: #define DCTL_OFF 0L
227: #define DCTL_ON 1L
228:
229: /* constants for GpiSet/QueryStopDraw */
230: #define SDW_ERROR -1L
231: #define SDW_OFF 0L
232: #define SDW_ON 1L
233:
234: #endif /* no INCL_SAADEFS */
235:
236: /* drawing for GpiSet/QueryDrawingMode */
237: #define DM_ERROR 0L
238: #define DM_DRAW 1L
239: #define DM_RETAIN 2L
240: #define DM_DRAWANDRETAIN 3L
241:
242: /*** other GPICONTROL functions */
243: /* XLATOFF */
244: #ifdef INCL_16
245: #define GpiResetPS Gpi16ResetPS
246: #endif /* INCL_16 */
247: /* XLATON */
248: BOOL APIENTRY GpiResetPS( HPS hps, ULONG flOptions );
249:
250: #ifndef INCL_SAADEFS
251:
252: /* XLATOFF */
253: #ifdef INCL_16
254: #define GpiSetPS Gpi16SetPS
255: #endif /* INCL_16 */
256: /* XLATON */
257: BOOL APIENTRY GpiSetPS( HPS hps, PSIZEL psizlsize, ULONG flOptions );
258:
259: #endif /* no INCL_SAADEFS */
260:
261: /* XLATOFF */
262: #ifdef INCL_16
263: #define GpiQueryPS Gpi16QueryPS
264: #define GpiErrorSegmentData Gpi16ErrorSegmentData
265: #endif /* INCL_16 */
266: /* XLATON */
267: ULONG APIENTRY GpiQueryPS( HPS hps, PSIZEL psizlSize );
268: LONG APIENTRY GpiErrorSegmentData( HPS hps, PLONG plSegment, PLONG plContext );
269:
270: #ifndef INCL_SAADEFS
271:
272: /* XLATOFF */
273: #ifdef INCL_16
274: #define GpiQueryDrawControl Gpi16QueryDrawControl
275: #define GpiSetDrawControl Gpi16SetDrawControl
276: #endif /* INCL_16 */
277: /* XLATON */
278: LONG APIENTRY GpiQueryDrawControl( HPS hps, LONG lControl );
279: BOOL APIENTRY GpiSetDrawControl( HPS hps, LONG lControl, LONG lValue );
280:
281: #endif /* no INCL_SAADEFS */
282:
283: /* XLATOFF */
284: #ifdef INCL_16
285: #define GpiQueryDrawingMode Gpi16QueryDrawingMode
286: #define GpiSetDrawingMode Gpi16SetDrawingMode
287: #endif /* INCL_16 */
288: /* XLATON */
289: LONG APIENTRY GpiQueryDrawingMode( HPS hps );
290: BOOL APIENTRY GpiSetDrawingMode( HPS hps, LONG lMode );
291:
292: #ifndef INCL_SAADEFS
293:
294: /* XLATOFF */
295: #ifdef INCL_16
296: #define GpiQueryStopDraw Gpi16QueryStopDraw
297: #define GpiSetStopDraw Gpi16SetStopDraw
298: #endif /* INCL_16 */
299: /* XLATON */
300: LONG APIENTRY GpiQueryStopDraw( HPS hps );
301: BOOL APIENTRY GpiSetStopDraw( HPS hps, LONG lValue );
302:
303: #endif /* no INCL_SAADEFS */
304:
305: #endif /* non-common GPICONTROL */
306: #ifdef INCL_GPICORRELATION
307:
308: /* options for GpiSetPickApertureSize */
309: #define PICKAP_DEFAULT 0L
310: #define PICKAP_REC 2L
311:
312: /* type of correlation for GpiCorrelateChain */
313: #define PICKSEL_VISIBLE 0L
314: #define PICKSEL_ALL 1L
315:
316: /* return code to indicate correlate hit(s) */
317: #define GPI_HITS 2L
318:
319: /*** picking, correlation and boundary functions */
320: /* XLATOFF */
321: #ifdef INCL_16
322: #define GpiCorrelateChain Gpi16CorrelateChain
323: #define GpiQueryTag Gpi16QueryTag
324: #define GpiSetTag Gpi16SetTag
325: #define GpiQueryPickApertureSize Gpi16QueryPickApertureSize
326: #define GpiSetPickApertureSize Gpi16SetPickApertureSize
327: #endif /* INCL_16 */
328: /* XLATON */
329: LONG APIENTRY GpiCorrelateChain( HPS hps, LONG lType, PPOINTL pptlPick
330: , LONG lMaxHits, LONG lMaxDepth, PLONG pl2 );
331: BOOL APIENTRY GpiQueryTag( HPS hps, PLONG plTag );
332: BOOL APIENTRY GpiSetTag( HPS hps, LONG lTag );
333: BOOL APIENTRY GpiQueryPickApertureSize( HPS hps, PSIZEL psizlSize );
334: BOOL APIENTRY GpiSetPickApertureSize( HPS hps, LONG lOptions, PSIZEL psizlSize );
335:
336: #ifndef INCL_SAADEFS
337: /* XLATOFF */
338: #ifdef INCL_16
339: #define GpiQueryPickAperturePosition Gpi16QueryPickAperturePosition
340: #define GpiSetPickAperturePosition Gpi16SetPickAperturePosition
341: #define GpiQueryBoundaryData Gpi16QueryBoundaryData
342: #define GpiResetBoundaryData Gpi16ResetBoundaryData
343: #endif /* INCL_16 */
344: /* XLATON */
345:
346: BOOL APIENTRY GpiQueryPickAperturePosition( HPS hps, PPOINTL pptlPoint );
347: BOOL APIENTRY GpiSetPickAperturePosition( HPS hps, PPOINTL pptlPick );
348: BOOL APIENTRY GpiQueryBoundaryData( HPS hps, PRECTL prclBoundary );
349: BOOL APIENTRY GpiResetBoundaryData( HPS hps );
350:
351: #endif /* no INCL_SAADEFS */
352:
353: /* XLATOFF */
354: #ifdef INCL_16
355: #define GpiCorrelateFrom Gpi16CorrelateFrom
356: #define GpiCorrelateSegment Gpi16CorrelateSegment
357: #endif /* INCL_16 */
358: /* XLATON */
359: LONG APIENTRY GpiCorrelateFrom( HPS hps, LONG lFirstSegment, LONG lLastSegment
360: , LONG lType, PPOINTL pptlPick, LONG lMaxHits
361: , LONG lMaxDepth, PLONG plSegTag );
362: LONG APIENTRY GpiCorrelateSegment( HPS hps, LONG lSegment, LONG lType
363: , PPOINTL pptlPick, LONG lMaxHits
364: , LONG lMaxDepth, PLONG alSegTag );
365:
366: #endif /* non-common_GPICORRELATION */
367: #ifdef INCL_GPISEGMENTS
368:
369: /* data formats for GpiPutData and GpiGetData */
370: #define DFORM_NOCONV 0L
371:
372: #ifndef INCL_SAADEFS
373:
374: #define DFORM_S370SHORT 1L
375: #define DFORM_PCSHORT 2L
376: #define DFORM_PCLONG 4L
377:
378: #endif /* no INCL_SAADEFS */
379:
380: /* segment attributes used by GpiSet/QuerySegmentAttrs and others */
381: #define ATTR_ERROR (-1L)
382: #define ATTR_DETECTABLE 1L
383: #define ATTR_VISIBLE 2L
384: #define ATTR_CHAINED 6L
385:
386: #ifndef INCL_SAADEFS
387:
388: #define ATTR_DYNAMIC 8L
389:
390: #endif /* no INCL_SAADEFS */
391:
392: #define ATTR_FASTCHAIN 9L
393: #define ATTR_PROP_DETECTABLE 10L
394: #define ATTR_PROP_VISIBLE 11L
395:
396: /* attribute on/off values */
397: #define ATTR_OFF 0L
398: #define ATTR_ON 1L
399:
400: /* segment priority used by GpiSetSegmentPriority and others */
401: #define LOWER_PRI (-1L)
402: #define HIGHER_PRI 1L
403:
404: /* XLATOFF */
405: #ifdef INCL_16
406: #define GpiOpenSegment Gpi16OpenSegment
407: #define GpiCloseSegment Gpi16CloseSegment
408: #define GpiDeleteSegment Gpi16DeleteSegment
409: #define GpiQueryInitialSegmentAttrs Gpi16QueryInitialSegmentAttrs
410: #define GpiSetInitialSegmentAttrs Gpi16SetInitialSegmentAttrs
411: #define GpiQuerySegmentAttrs Gpi16QuerySegmentAttrs
412: #define GpiSetSegmentAttrs Gpi16SetSegmentAttrs
413: #define GpiQuerySegmentPriority Gpi16QuerySegmentPriority
414: #define GpiSetSegmentPriority Gpi16SetSegmentPriority
415: #define GpiDeleteSegments Gpi16DeleteSegments
416: #define GpiQuerySegmentNames Gpi16QuerySegmentNames
417: #define GpiGetData Gpi16GetData
418: #define GpiPutData Gpi16PutData
419: #define GpiDrawChain Gpi16DrawChain
420: #define GpiDrawFrom Gpi16DrawFrom
421: #define GpiDrawSegment Gpi16DrawSegment
422: #endif /* INCL_16 */
423: /* XLATON */
424: /*** segment control functions */
425: BOOL APIENTRY GpiOpenSegment( HPS hps, LONG lSegment );
426: BOOL APIENTRY GpiCloseSegment( HPS hps );
427: BOOL APIENTRY GpiDeleteSegment( HPS hps, LONG lSegid );
428: LONG APIENTRY GpiQueryInitialSegmentAttrs( HPS hps, LONG lAttribute );
429: BOOL APIENTRY GpiSetInitialSegmentAttrs( HPS hps, LONG lAttribute, LONG lValue );
430: LONG APIENTRY GpiQuerySegmentAttrs( HPS hps, LONG lSegid, LONG lAttribute );
431: BOOL APIENTRY GpiSetSegmentAttrs( HPS hps, LONG lSegid, LONG lAttribute
432: , LONG lValue );
433: LONG APIENTRY GpiQuerySegmentPriority( HPS hps, LONG lRefSegid, LONG lOrder );
434: BOOL APIENTRY GpiSetSegmentPriority( HPS hps, LONG lSegid, LONG lRefSegid
435: , LONG lOrder );
436: BOOL APIENTRY GpiDeleteSegments( HPS hps, LONG lFirstSegment, LONG lLastSegment );
437: LONG APIENTRY GpiQuerySegmentNames( HPS hps, LONG lFirstSegid, LONG lLastSegid
438: , LONG lMax, PLONG alSegids );
439:
440: /*** draw functions for segments */
441: LONG APIENTRY GpiGetData( HPS hps, LONG lSegid, PLONG plOffset
442: , LONG lFormat, LONG lLength, PBYTE pbData );
443: LONG APIENTRY GpiPutData( HPS hps, LONG lFormat, PLONG plCount, PBYTE pbData );
444: BOOL APIENTRY GpiDrawChain( HPS hps );
445: BOOL APIENTRY GpiDrawFrom( HPS hps, LONG lFirstSegment, LONG lLastSegment );
446: BOOL APIENTRY GpiDrawSegment( HPS hps, LONG lSegment );
447:
448: #ifndef INCL_SAADEFS
449:
450: /* XLATOFF */
451: #ifdef INCL_16
452: #define GpiDrawDynamics Gpi16DrawDynamics
453: #define GpiRemoveDynamics Gpi16RemoveDynamics
454: #endif /* INCL_16 */
455: /* XLATON */
456: BOOL APIENTRY GpiDrawDynamics( HPS hps );
457: BOOL APIENTRY GpiRemoveDynamics( HPS hps, LONG lFirstSegid, LONG lLastSegid );
458:
459: #endif /* no INCL_SAADEFS */
460:
461: #endif /* non-common GPISEGMENTS */
462: #ifdef INCL_GPISEGEDITING
463:
464: /* edit modes used by GpiSet/QueryEditMode */
465: #define SEGEM_ERROR 0L
466: #define SEGEM_INSERT 1L
467: #define SEGEM_REPLACE 2L
468:
469: /*** segment editing by element functions */
470: /* XLATOFF */
471: #ifdef INCL_16
472: #define GpiBeginElement Gpi16BeginElement
473: #define GpiEndElement Gpi16EndElement
474: #define GpiLabel Gpi16Label
475: #define GpiElement Gpi16Element
476: #define GpiQueryElement Gpi16QueryElement
477: #define GpiDeleteElement Gpi16DeleteElement
478: #define GpiDeleteElementRange Gpi16DeleteElementRange
479: #define GpiDeleteElementsBetweenLabels Gpi16DeleteElementsBetweenLabe
480: #define GpiQueryEditMode Gpi16QueryEditMode
481: #define GpiSetEditMode Gpi16SetEditMode
482: #define GpiQueryElementPointer Gpi16QueryElementPointer
483: #define GpiSetElementPointer Gpi16SetElementPointer
484: #define GpiOffsetElementPointer Gpi16OffsetElementPointer
485: #define GpiQueryElementType Gpi16QueryElementType
486: #define GpiSetElementPointerAtLabel Gpi16SetElementPointerAtLabel
487: #endif /* INCL_16 */
488: /* XLATON */
489: BOOL APIENTRY GpiBeginElement( HPS hps, LONG lType, PSZ pszDesc );
490: BOOL APIENTRY GpiEndElement( HPS hps );
491: BOOL APIENTRY GpiLabel( HPS hps, LONG lLabel );
492: LONG APIENTRY GpiElement( HPS hps, LONG lType, PSZ pszDesc
493: , LONG lLength, PBYTE pbData );
494: LONG APIENTRY GpiQueryElement( HPS hps, LONG lOff, LONG lMaxLength
495: , PBYTE pbData );
496: BOOL APIENTRY GpiDeleteElement( HPS hps );
497: BOOL APIENTRY GpiDeleteElementRange( HPS hps, LONG lFirstElement
498: , LONG lLastElement );
499: BOOL APIENTRY GpiDeleteElementsBetweenLabels( HPS hps, LONG lFirstLabel
500: , LONG lLastLabel );
501: LONG APIENTRY GpiQueryEditMode( HPS hps );
502: BOOL APIENTRY GpiSetEditMode( HPS hps, LONG lMode );
503: LONG APIENTRY GpiQueryElementPointer( HPS hps );
504: BOOL APIENTRY GpiSetElementPointer( HPS hps, LONG lElement );
505: BOOL APIENTRY GpiOffsetElementPointer( HPS hps, LONG loffset );
506: LONG APIENTRY GpiQueryElementType( HPS hps, PLONG plType, LONG lLength
507: , PSZ pszData );
508: BOOL APIENTRY GpiSetElementPointerAtLabel( HPS hps, LONG lLabel );
509:
510: #endif /* non-common GPISEGEDITING */
511: #ifdef INCL_GPITRANSFORMS
512:
513: /* co-ordinates space for GpiConvert */
514: #define CVTC_WORLD 1L
515: #define CVTC_MODEL 2L
516: #define CVTC_DEFAULTPAGE 3L
517: #define CVTC_PAGE 4L
518: #define CVTC_DEVICE 5L
519:
520: /* type of transformation for GpiSetSegmentTransformMatrix */
521: #define TRANSFORM_REPLACE 0L
522: #define TRANSFORM_ADD 1L
523: #define TRANSFORM_PREEMPT 2L
524:
525: /* transform matrix */
526: typedef struct _MATRIXLF { /* matlf */
527: FIXED fxM11;
528: FIXED fxM12;
529: LONG lM13;
530: FIXED fxM21;
531: FIXED fxM22;
532: LONG lM23;
533: LONG lM31;
534: LONG lM32;
535: LONG lM33;
536: } MATRIXLF;
537: typedef MATRIXLF FAR *PMATRIXLF;
538:
539: #ifndef INCL_DDIDEFS
540:
541: /* XLATOFF */
542: #ifdef INCL_16
543: #define GpiQuerySegmentTransformMatrix Gpi16QuerySegmentTransformMatr
544: #define GpiSetSegmentTransformMatrix Gpi16SetSegmentTransformMatrix
545: #define GpiConvert Gpi16Convert
546: #define GpiConvertWithMatrix Gpi16ConvertWithMatrix
547: #define GpiQueryModelTransformMatrix Gpi16QueryModelTransformMatrix
548: #define GpiSetModelTransformMatrix Gpi16SetModelTransformMatrix
549: #define GpiCallSegmentMatrix Gpi16CallSegmentMatrix
550: #define GpiQueryDefaultViewMatrix Gpi16QueryDefaultViewMatrix
551: #define GpiSetDefaultViewMatrix Gpi16SetDefaultViewMatrix
552: #define GpiQueryPageViewport Gpi16QueryPageViewport
553: #define GpiSetPageViewport Gpi16SetPageViewport
554: #define GpiQueryViewingTransformMatrix Gpi16QueryViewingTransformMatr
555: #define GpiSetViewingTransformMatrix Gpi16SetViewingTransformMatrix
556: #define GpiTranslate Gpi16Translate
557: #define GpiScale Gpi16Scale
558: #define GpiRotate Gpi16Rotate
559: #define GpiSetGraphicsField Gpi16SetGraphicsField
560: #define GpiQueryGraphicsField Gpi16QueryGraphicsField
561: #define GpiSetViewingLimits Gpi16SetViewingLimits
562: #define GpiQueryViewingLimits Gpi16QueryViewingLimits
563: #endif /* INCL_16 */
564: /* XLATON */
565:
566: /*** transform and transform conversion functions */
567: BOOL APIENTRY GpiQuerySegmentTransformMatrix( HPS hps, LONG lSegid, LONG lCount
568: , PMATRIXLF pmatlfArray );
569: BOOL APIENTRY GpiSetSegmentTransformMatrix( HPS hps, LONG lSegid, LONG lCount
570: , PMATRIXLF pmatlfarray
571: , LONG lOptions );
572: BOOL APIENTRY GpiConvert( HPS hps, LONG lSrc, LONG lTarg, LONG lCount
573: , PPOINTL aptlPoints );
574: BOOL APIENTRY GpiConvertWithMatrix( HPS hps, LONG lCountp
575: , PPOINTL aptlPoints, LONG lCount
576: , PMATRIXLF pmatlfArray );
577: BOOL APIENTRY GpiQueryModelTransformMatrix( HPS hps, LONG lCount
578: , PMATRIXLF pmatlfArray );
579: BOOL APIENTRY GpiSetModelTransformMatrix( HPS hps, LONG lCount
580: , PMATRIXLF pmatlfArray, LONG lOptions );
581: LONG APIENTRY GpiCallSegmentMatrix( HPS hps, LONG lSegment, LONG lCount
582: , PMATRIXLF pmatlfArray, LONG lOptions );
583: BOOL APIENTRY GpiQueryDefaultViewMatrix( HPS hps, LONG lCount
584: , PMATRIXLF pmatlfArray );
585: BOOL APIENTRY GpiSetDefaultViewMatrix( HPS hps, LONG lCount
586: , PMATRIXLF pmatlfarray, LONG lOptions );
587: BOOL APIENTRY GpiQueryPageViewport( HPS hps, PRECTL prclViewport );
588: BOOL APIENTRY GpiSetPageViewport( HPS hps, PRECTL prclViewport );
589: BOOL APIENTRY GpiQueryViewingTransformMatrix( HPS hps, LONG lCount
590: , PMATRIXLF pmatlfArray );
591: BOOL APIENTRY GpiSetViewingTransformMatrix( HPS hps, LONG lCount
592: , PMATRIXLF pmatlfArray
593: , LONG lOptions );
594:
595: /*** transform helper routines */
596: BOOL APIENTRY GpiTranslate( HPS, PMATRIXLF, LONG, PPOINTL );
597: BOOL APIENTRY GpiScale( HPS, PMATRIXLF, LONG, PFIXED, PPOINTL );
598: BOOL APIENTRY GpiRotate( HPS, PMATRIXLF, LONG, FIXED, PPOINTL );
599:
600: /*** general clipping functions */
601: BOOL APIENTRY GpiSetGraphicsField( HPS hps, PRECTL prclField );
602: BOOL APIENTRY GpiQueryGraphicsField( HPS hps, PRECTL prclField );
603: BOOL APIENTRY GpiSetViewingLimits( HPS hps, PRECTL prclLimits );
604: BOOL APIENTRY GpiQueryViewingLimits( HPS hps, PRECTL prclLimits );
605:
606: #endif /* no INCL_DDIDEFS */
607:
608: #endif /* non-common GPITRANSFORMS */
609: #ifdef INCL_GPIPATHS
610:
611: /* modes for GpiModifyPath */
612: #define MPATH_STROKE 6L
613:
614: /* modes for GpiFillPath */
615: #define FPATH_ALTERNATE 0L
616: #define FPATH_WINDING 2L
617:
618: /* modes for GpiSetClipPath */
619: #define SCP_ALTERNATE 0L
620: #define SCP_WINDING 2L
621: #define SCP_AND 4L
622: #define SCP_RESET 0L
623:
624: #ifndef INCL_DDIDEFS
625:
626: /*** Path and Clip Path functions */
627: /* XLATOFF */
628: #ifdef INCL_16
629: #define GpiBeginPath Gpi16BeginPath
630: #define GpiEndPath Gpi16EndPath
631: #define GpiCloseFigure Gpi16CloseFigure
632: #define GpiModifyPath Gpi16ModifyPath
633: #define GpiFillPath Gpi16FillPath
634: #define GpiSetClipPath Gpi16SetClipPath
635: #define GpiOutlinePath Gpi16OutlinePath
636: #define GpiPathToRegion Gpi16PathToRegion
637: #endif /* INCL_16 */
638: /* XLATON */
639: BOOL APIENTRY GpiBeginPath( HPS hps, LONG lPath );
640: BOOL APIENTRY GpiEndPath( HPS hps );
641: BOOL APIENTRY GpiCloseFigure( HPS hps );
642: BOOL APIENTRY GpiModifyPath( HPS hps, LONG lPath, LONG lMode );
643: LONG APIENTRY GpiFillPath( HPS hps, LONG lPath, LONG lOptions );
644: BOOL APIENTRY GpiSetClipPath( HPS hps, LONG lPath, LONG lOptions );
645: LONG APIENTRY GpiOutlinePath( HPS hps, LONG lPath, LONG lOptions );
646: HRGN APIENTRY GpiPathToRegion( HPS GpiH, LONG lPath, LONG lOptions );
647:
648: #ifndef INCL_SAADEFS
649:
650: /* XLATOFF */
651: #ifdef INCL_16
652: #define GpiStrokePath Gpi16StrokePath
653: #endif /* INCL_16 */
654: /* XLATON */
655: LONG APIENTRY GpiStrokePath( HPS hps, LONG lPath, ULONG flOptions );
656:
657: #endif /* no INCL_SAADEFS */
658:
659: #endif /* no INCL_DDIDEFS */
660:
661: #endif /* non-common GPIPATHS */
662: #ifdef INCL_GPILOGCOLORTABLE
663:
664: #ifndef INCL_GPIBITMAPS
665: #define INCL_GPIBITMAPS
666: #endif /* INCL_GPIBITMAPS */
667:
668: /* options for GpiCreateLogColorTable and others */
669: #define LCOL_RESET 0x0001L
670: #define LCOL_REALIZABLE 0x0002L
671: #define LCOL_PURECOLOR 0x0004L
672: #define LCOL_OVERRIDE_DEFAULT_COLORS 0x0008L
673:
674: /* format of logical lColor table for GpiCreateLogColorTable and others */
675: #define LCOLF_DEFAULT 0L
676: #define LCOLF_INDRGB 1L
677: #define LCOLF_CONSECRGB 2L
678: #define LCOLF_RGB 3L
679:
680: /* options for GpiQueryRealColors and others */
681: #define LCOLOPT_REALIZED 0x0001L
682: #define LCOLOPT_INDEX 0x0002L
683:
684: #ifndef INCL_SAADEFS
685:
686: /* return codes from GpiQueryLogColorTable to indicate it is in RGB mode */
687: #define QLCT_ERROR (-1L)
688: #define QLCT_RGB (-2L)
689:
690: /* GpiQueryLogColorTable index returned for colors not explicitly loaded */
691: #define QLCT_NOTLOADED (-1L)
692:
693: #endif /* no INCL_SAADEFS */
694:
695: /* return codes for GpiQueryColorData */
696: #define QCD_LCT_FORMAT 0L
697: #define QCD_LCT_LOINDEX 1L
698: #define QCD_LCT_HIINDEX 2L
699:
700: /* Palette manager return values */
701: #define PAL_ERROR (-1L)
702:
703: /* color flags for GpiCreatePalette and others */
704: #define PC_RESERVED 0x01
705: #define PC_EXPLICIT 0x02
706:
707: #ifndef INCL_DDIDEFS
708:
709: /*** logical lColor table functions */
710: /* XLATOFF */
711: #ifdef INCL_16
712: #define GpiCreateLogColorTable Gpi16CreateLogColorTable
713: #define GpiRealizeColorTable Gpi16RealizeColorTable
714: #define GpiUnrealizeColorTable Gpi16UnrealizeColorTable
715: #define GpiQueryColorData Gpi16QueryColorData
716: #endif /* INCL_16 */
717: /* XLATON */
718: BOOL APIENTRY GpiCreateLogColorTable( HPS hps, ULONG flOptions, LONG lFormat
719: , LONG lStart, LONG lCount, PLONG alTable );
720: #ifdef INCL_16
721: BOOL APIENTRY GpiRealizeColorTable( HPS hps );
722: BOOL APIENTRY GpiUnrealizeColorTable( HPS hps );
723: #endif /* INCL_16 */
724: BOOL APIENTRY GpiQueryColorData( HPS hps, LONG lCount, PLONG alArray );
725:
726: #ifndef INCL_SAADEFS
727:
728: /* XLATOFF */
729: #ifdef INCL_16
730: #define GpiQueryLogColorTable Gpi16QueryLogColorTable
731: #endif /* INCL_16 */
732: /* XLATON */
733: LONG APIENTRY GpiQueryLogColorTable( HPS hps, ULONG flOptions, LONG lStart
734: , LONG lCount, PLONG alArray );
735:
736: #endif /* no INCL_SAADEFS */
737:
738: /* XLATOFF */
739: #ifdef INCL_16
740: #define GpiQueryRealColors Gpi16QueryRealColors
741: #define GpiQueryNearestColor Gpi16QueryNearestColor
742: #define GpiQueryColorIndex Gpi16QueryColorIndex
743: #define GpiQueryRGBColor Gpi16QueryRGBColor
744: #endif /* INCL_16 */
745: /* XLATON */
746: LONG APIENTRY GpiQueryRealColors( HPS hps, ULONG flOptions, LONG lStart
747: , LONG lCount, PLONG alColors );
748: LONG APIENTRY GpiQueryNearestColor( HPS hps, ULONG flOptions, LONG lRgbIn );
749: LONG APIENTRY GpiQueryColorIndex( HPS hps, ULONG flOptions, LONG lRgbColor );
750: LONG APIENTRY GpiQueryRGBColor( HPS hps, ULONG flOptions, LONG lColorIndex );
751:
752: #ifndef INCL_SAADEFS
753:
754: /*Palette manager functions */
755: /* XLATOFF */
756: #ifdef INCL_16
757: #define GpiCreatePalette Gpi16CreatePalette
758: #define GpiDeletePalette Gpi16DeletePalette
759: #define GpiSelectPalette Gpi16SelectPalette
760: #define GpiAnimatePalette Gpi16AnimatePalette
761: #define GpiSetPaletteEntries Gpi16SetPaletteEntries
762: #define GpiQueryPalette Gpi16QueryPalette
763: #define GpiQueryPaletteInfo Gpi16QueryPaletteInfo
764: #endif /* INCL_16 */
765: /* XLATON */
766: HPAL APIENTRY GpiCreatePalette( HAB hab, ULONG flOptions, LONG lFormat,
767: LONG lStart, LONG lCount, PLONG alTable );
768:
769: BOOL APIENTRY GpiDeletePalette( HPAL hpal );
770: HPAL APIENTRY GpiSelectPalette( HPS hps, HPAL hpal );
771: LONG APIENTRY GpiAnimatePalette( HPAL hpal, LONG lFormat, LONG lStart,
772: LONG lCount, PLONG alTable );
773: BOOL APIENTRY GpiSetPaletteEntries( HPAL hpal, LONG lFormat, LONG lStart,
774: LONG lCount, PLONG alTable );
775: HPAL APIENTRY GpiQueryPalette( HPS hps );
776: LONG APIENTRY GpiQueryPaletteInfo( HPAL hpal, HPS hps, ULONG flOptions,
777: LONG lStart, LONG lCount, PLONG alArray );
778:
779:
780: #endif /* no INCL_SAADEFS */
781:
782: #endif /* no INCL_DDIDEFS */
783:
784: #endif /* non-common GPILOGCOLORTABLE */
785: #if (defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON))
786:
787: /* default color table indices */
788:
789: #define CLR_FALSE (-5L)
790: #define CLR_TRUE (-4L)
791:
792: #define CLR_ERROR (-255L)
793: #define CLR_DEFAULT (-3L)
794: #define CLR_WHITE (-2L)
795: #define CLR_BLACK (-1L)
796: #define CLR_BACKGROUND 0L
797: #define CLR_BLUE 1L
798: #define CLR_RED 2L
799: #define CLR_PINK 3L
800: #define CLR_GREEN 4L
801: #define CLR_CYAN 5L
802: #define CLR_YELLOW 6L
803: #define CLR_NEUTRAL 7L
804:
805: #define CLR_DARKGRAY 8L
806: #define CLR_DARKBLUE 9L
807: #define CLR_DARKRED 10L
808: #define CLR_DARKPINK 11L
809: #define CLR_DARKGREEN 12L
810: #define CLR_DARKCYAN 13L
811: #define CLR_BROWN 14L
812: #define CLR_PALEGRAY 15L
813:
814: /* rgb colors */
815: #define RGB_ERROR (-255L)
816: #define RGB_BLACK 0x00000000L
817: #define RGB_BLUE 0x000000FFL
818: #define RGB_GREEN 0x0000FF00L
819: #define RGB_CYAN 0x0000FFFFL
820: #define RGB_RED 0x00FF0000L
821: #define RGB_PINK 0x00FF00FFL
822: #define RGB_YELLOW 0x00FFFF00L
823: #define RGB_WHITE 0x00FFFFFFL
824:
825: /* control flags used by GpiBeginArea */
826: #define BA_NOBOUNDARY 0L
827: #define BA_BOUNDARY 0x0001L
828:
829:
830: #define BA_ALTERNATE 0L
831: #define BA_WINDING 0x0002L
832:
833:
834: /* fill options for GpiBox/GpiFullArc */
835: #define DRO_FILL 1L
836: #define DRO_OUTLINE 2L
837: #define DRO_OUTLINEFILL 3L
838:
839: /* basic pattern symbols */
840: #define PATSYM_ERROR (-1L)
841: #define PATSYM_DEFAULT 0L
842: #define PATSYM_DENSE1 1L
843: #define PATSYM_DENSE2 2L
844: #define PATSYM_DENSE3 3L
845: #define PATSYM_DENSE4 4L
846: #define PATSYM_DENSE5 5L
847: #define PATSYM_DENSE6 6L
848: #define PATSYM_DENSE7 7L
849: #define PATSYM_DENSE8 8L
850: #define PATSYM_VERT 9L
851: #define PATSYM_HORIZ 10L
852: #define PATSYM_DIAG1 11L
853: #define PATSYM_DIAG2 12L
854: #define PATSYM_DIAG3 13L
855: #define PATSYM_DIAG4 14L
856: #define PATSYM_NOSHADE 15L
857: #define PATSYM_SOLID 16L
858: #ifndef INCL_SAADEFS
859: #define PATSYM_HALFTONE 17L
860: #endif /* no INCL_SAADEFS */
861: #define PATSYM_HATCH 18L
862: #define PATSYM_DIAGHATCH 19L
863: #define PATSYM_BLANK 64L
864:
865: /* lcid values for GpiSet/QueryPattern and others */
866: #define LCID_ERROR (-1L)
867: #define LCID_DEFAULT 0L
868:
869: #ifndef INCL_DDIDEFS
870:
871: /* XLATOFF */
872: #ifdef INCL_16
873: #define GpiSetColor Gpi16SetColor
874: #define GpiQueryColor Gpi16QueryColor
875: #define GpiBox Gpi16Box
876: #define GpiMove Gpi16Move
877: #define GpiLine Gpi16Line
878: #define GpiPolyLine Gpi16PolyLine
879: #define GpiSetPattern Gpi16SetPattern
880: #define GpiQueryPattern Gpi16QueryPattern
881: #define GpiBeginArea Gpi16BeginArea
882: #define GpiEndArea Gpi16EndArea
883: #define GpiCharString Gpi16CharString
884: #define GpiCharStringAt Gpi16CharStringAt
885: #endif /* INCL_16 */
886: /* XLATON */
887:
888: /*** global primitive functions */
889: BOOL APIENTRY GpiSetColor( HPS hps, LONG lColor );
890: LONG APIENTRY GpiQueryColor( HPS hps );
891:
892: /*** line primitive functions */
893: LONG APIENTRY GpiBox( HPS hps, LONG lControl, PPOINTL pptlPoint
894: , LONG lHRound, LONG lVRound );
895:
896: BOOL APIENTRY GpiMove( HPS hps, PPOINTL pptlPoint );
897: LONG APIENTRY GpiLine( HPS hps, PPOINTL pptlEndPoint );
898: LONG APIENTRY GpiPolyLine( HPS hps, LONG lCount, PPOINTL aptlPoints );
899:
900: /*** area primitive functions */
901: BOOL APIENTRY GpiSetPattern( HPS hps, LONG lPatternSymbol );
902: LONG APIENTRY GpiQueryPattern( HPS hps );
903: BOOL APIENTRY GpiBeginArea( HPS hps, ULONG flOptions );
904: LONG APIENTRY GpiEndArea( HPS hps );
905:
906: /*** character primitive functions */
907: LONG APIENTRY GpiCharString( HPS hps, LONG lCount, PCH pchString );
908: LONG APIENTRY GpiCharStringAt( HPS hps, PPOINTL pptlPoint
909: , LONG lCount, PCH pchString );
910:
911: #endif /* no INCL_DDIDEFS */
912:
913: #endif /* common GPIPRIMTIVES */
914: #ifdef INCL_GPIPRIMITIVES
915:
916: /* mode for GpiSetAttrMode */
917: #define AM_ERROR (-1L)
918: #define AM_PRESERVE 0L
919: #define AM_NOPRESERVE 1L
920:
921: /* foreground mixes */
922: #define FM_ERROR (-1L)
923: #define FM_DEFAULT 0L
924: #define FM_OR 1L
925: #define FM_OVERPAINT 2L
926: #define FM_LEAVEALONE 5L
927:
928:
929: #define FM_XOR 4L
930: #define FM_AND 6L
931: #define FM_SUBTRACT 7L
932: #define FM_MASKSRCNOT 8L
933: #define FM_ZERO 9L
934: #define FM_NOTMERGESRC 10L
935: #define FM_NOTXORSRC 11L
936: #define FM_INVERT 12L
937: #define FM_MERGESRCNOT 13L
938: #define FM_NOTCOPYSRC 14L
939: #define FM_MERGENOTSRC 15L
940: #define FM_NOTMASKSRC 16L
941: #define FM_ONE 17L
942:
943:
944: /* background mixes */
945: #define BM_ERROR (-1L)
946: #define BM_DEFAULT 0L
947: #define BM_OVERPAINT 2L
948: #define BM_LEAVEALONE 5L
949:
950:
951: #define BM_OR 1L
952: #define BM_XOR 4L
953:
954:
955: /* basic line type styles */
956: #define LINETYPE_ERROR (-1L)
957: #define LINETYPE_DEFAULT 0L
958: #define LINETYPE_DOT 1L
959: #define LINETYPE_SHORTDASH 2L
960: #define LINETYPE_DASHDOT 3L
961: #define LINETYPE_DOUBLEDOT 4L
962: #define LINETYPE_LONGDASH 5L
963: #define LINETYPE_DASHDOUBLEDOT 6L
964: #define LINETYPE_SOLID 7L
965: #define LINETYPE_INVISIBLE 8L
966: #ifndef INCL_SAADEFS
967: #define LINETYPE_ALTERNATE 9L
968: #endif /* no INCL_SAADEFS */
969:
970: /* cosmetic line widths */
971: #define LINEWIDTH_ERROR (-1L)
972: #define LINEWIDTH_DEFAULT 0L
973: #define LINEWIDTH_NORMAL 0x00010000L /* MAKEFIXED(1,0) */
974: #define LINEWIDTH_THICK 0x00020000L /* MAKEFIXED(2,0) */
975:
976: /* actual line widths */
977: #define LINEWIDTHGEOM_ERROR (-1L)
978:
979: /* line end styles */
980: #define LINEEND_ERROR (-1L)
981: #define LINEEND_DEFAULT 0L
982: #define LINEEND_FLAT 1L
983: #define LINEEND_SQUARE 2L
984: #define LINEEND_ROUND 3L
985:
986: /* line join styles */
987: #define LINEJOIN_ERROR (-1L)
988: #define LINEJOIN_DEFAULT 0L
989: #define LINEJOIN_BEVEL 1L
990: #define LINEJOIN_ROUND 2L
991: #define LINEJOIN_MITRE 3L
992:
993: /* character directions */
994: #define CHDIRN_ERROR (-1L)
995: #define CHDIRN_DEFAULT 0L
996: #define CHDIRN_LEFTRIGHT 1L
997: #define CHDIRN_TOPBOTTOM 2L
998: #define CHDIRN_RIGHTLEFT 3L
999: #define CHDIRN_BOTTOMTOP 4L
1000:
1001: /* character modes */
1002: #define CM_ERROR (-1L)
1003: #define CM_DEFAULT 0L
1004: #define CM_MODE1 1L
1005: #define CM_MODE2 2L
1006: #define CM_MODE3 3L
1007:
1008: /* basic marker symbols */
1009: #define MARKSYM_ERROR (-1L)
1010: #define MARKSYM_DEFAULT 0L
1011: #define MARKSYM_CROSS 1L
1012: #define MARKSYM_PLUS 2L
1013: #define MARKSYM_DIAMOND 3L
1014: #define MARKSYM_SQUARE 4L
1015: #define MARKSYM_SIXPOINTSTAR 5L
1016: #define MARKSYM_EIGHTPOINTSTAR 6L
1017: #define MARKSYM_SOLIDDIAMOND 7L
1018: #define MARKSYM_SOLIDSQUARE 8L
1019: #define MARKSYM_DOT 9L
1020: #define MARKSYM_SMALLCIRCLE 10L
1021: #define MARKSYM_BLANK 64L
1022:
1023: /* formatting options for GpiCharStringPosAt */
1024: #define CHS_OPAQUE 0x0001L
1025: #define CHS_VECTOR 0x0002L
1026: #define CHS_LEAVEPOS 0x0008L
1027: #define CHS_CLIP 0x0010L
1028: #define CHS_UNDERSCORE 0x0200L
1029: #define CHS_STRIKEOUT 0x0400L
1030:
1031: /* bundle codes for GpiSetAttributes and GpiQueryAttributes */
1032: #define PRIM_LINE 1L
1033: #define PRIM_CHAR 2L
1034: #define PRIM_MARKER 3L
1035: #define PRIM_AREA 4L
1036: #define PRIM_IMAGE 5L
1037:
1038: /* line bundle mask bits */
1039: #define LBB_COLOR 0x0001L
1040: #define LBB_MIX_MODE 0x0004L
1041: #define LBB_WIDTH 0x0010L
1042: #define LBB_GEOM_WIDTH 0x0020L
1043: #define LBB_TYPE 0x0040L
1044: #define LBB_END 0x0080L
1045: #define LBB_JOIN 0x0100L
1046:
1047: /* character bundle mask bits */
1048: #define CBB_COLOR 0x0001L
1049: #define CBB_BACK_COLOR 0x0002L
1050: #define CBB_MIX_MODE 0x0004L
1051: #define CBB_BACK_MIX_MODE 0x0008L
1052: #define CBB_SET 0x0010L
1053: #define CBB_MODE 0x0020L
1054: #define CBB_BOX 0x0040L
1055: #define CBB_ANGLE 0x0080L
1056: #define CBB_SHEAR 0x0100L
1057: #define CBB_DIRECTION 0x0200L
1058: #define CBB_RESERVED 0x0400L
1059: #define CBB_EXTRA 0x0800L
1060: #define CBB_BREAK_EXTRA 0x1000L
1061:
1062: /* marker bundle mask bits */
1063: #define MBB_COLOR 0x0001L
1064: #define MBB_BACK_COLOR 0x0002L
1065: #define MBB_MIX_MODE 0x0004L
1066: #define MBB_BACK_MIX_MODE 0x0008L
1067: #define MBB_SET 0x0010L
1068: #define MBB_SYMBOL 0x0020L
1069: #define MBB_BOX 0x0040L
1070:
1071: /* pattern bundle mask bits */
1072: #define ABB_COLOR 0x0001L
1073: #define ABB_BACK_COLOR 0x0002L
1074: #define ABB_MIX_MODE 0x0004L
1075: #define ABB_BACK_MIX_MODE 0x0008L
1076: #define ABB_SET 0x0010L
1077: #define ABB_SYMBOL 0x0020L
1078: #define ABB_REF_POINT 0x0040L
1079:
1080: /* image bundle mask bits */
1081: #define IBB_COLOR 0x0001L
1082: #define IBB_BACK_COLOR 0x0002L
1083: #define IBB_MIX_MODE 0x0004L
1084: #define IBB_BACK_MIX_MODE 0x0008L
1085:
1086: /* structure for GpiSetArcParams and GpiQueryArcParams */
1087: typedef struct _ARCPARAMS { /* arcp */
1088: LONG lP;
1089: LONG lQ;
1090: LONG lR;
1091: LONG lS;
1092: } ARCPARAMS;
1093: typedef ARCPARAMS FAR *PARCPARAMS;
1094:
1095: /* variation of SIZE used for FIXEDs */
1096: typedef struct _SIZEF { /* sizfx */
1097: FIXED cx;
1098: FIXED cy;
1099: } SIZEF;
1100: typedef SIZEF FAR *PSIZEF;
1101:
1102: /* structure for gradient parameters e.g. for GpiSetCharAngle */
1103: typedef struct _GRADIENTL { /* gradl */
1104: LONG x;
1105: LONG y;
1106: } GRADIENTL;
1107: typedef GRADIENTL FAR *PGRADIENTL;
1108:
1109: #ifdef R201
1110:
1111: /* line bundle for GpiSetAttributes and GpiQueryAttributes */
1112: typedef struct _LINEBUNDLE { /* lbnd */
1113: LONG lColor;
1114: LONG lBackColor;
1115: USHORT usMixMode;
1116: USHORT usBackMixMode;
1117: FIXED fxWidth;
1118: LONG lGeomWidth;
1119: USHORT usType;
1120: USHORT usEnd;
1121: USHORT usJoin;
1122: } LINEBUNDLE;
1123: typedef LINEBUNDLE FAR *PLINEBUNDLE;
1124:
1125: #else
1126:
1127: /* line bundle for GpiSetAttributes and GpiQueryAttributes */
1128: typedef struct _LINEBUNDLE { /* lbnd */
1129: LONG lColor;
1130: LONG lReserved;
1131: USHORT usMixMode;
1132: USHORT usReserved;
1133: FIXED fxWidth;
1134: LONG lGeomWidth;
1135: USHORT usType;
1136: USHORT usEnd;
1137: USHORT usJoin;
1138: } LINEBUNDLE;
1139: typedef LINEBUNDLE FAR *PLINEBUNDLE;
1140:
1141: #endif /* R201 */
1142:
1143: /* character bundle for GpiSetAttributes and GpiQueryAttributes */
1144: typedef struct _CHARBUNDLE { /* cbnd */
1145: LONG lColor;
1146: LONG lBackColor;
1147: USHORT usMixMode;
1148: USHORT usBackMixMode;
1149: USHORT usSet;
1150: USHORT usPrecision;
1151: SIZEF sizfxCell;
1152: POINTL ptlAngle;
1153: POINTL ptlShear;
1154: USHORT usDirection;
1155: USHORT usReserved;
1156: FIXED fxExtra;
1157: FIXED fxBreakExtra;
1158: } CHARBUNDLE;
1159: typedef CHARBUNDLE FAR *PCHARBUNDLE;
1160:
1161: /* marker bundle for GpiSetAttributes and GpiQueryAttributes */
1162: typedef struct _MARKERBUNDLE { /* mbnd */
1163: LONG lColor;
1164: LONG lBackColor;
1165: USHORT usMixMode;
1166: USHORT usBackMixMode;
1167: USHORT usSet;
1168: USHORT usSymbol;
1169: SIZEF sizfxCell;
1170: } MARKERBUNDLE;
1171: typedef MARKERBUNDLE FAR *PMARKERBUNDLE;
1172:
1173: /* pattern bundle for GpiSetAttributes and GpiQueryAttributes */
1174: typedef struct _AREABUNDLE { /* pbnd */
1175: LONG lColor;
1176: LONG lBackColor;
1177: USHORT usMixMode;
1178: USHORT usBackMixMode;
1179: USHORT usSet;
1180: USHORT usSymbol;
1181: POINTL ptlRefPoint ;
1182: } AREABUNDLE;
1183: typedef AREABUNDLE FAR *PAREABUNDLE;
1184:
1185: /* image bundle for GpiSetAttributes and GpiQueryAttributes */
1186: typedef struct _IMAGEBUNDLE { /* ibmd */
1187: LONG lColor;
1188: LONG lBackColor;
1189: USHORT usMixMode;
1190: USHORT usBackMixMode;
1191: } IMAGEBUNDLE;
1192: typedef IMAGEBUNDLE FAR *PIMAGEBUNDLE;
1193:
1194: /* pointer to any bundle used by GpiSet/QueryAttrs */
1195: typedef PVOID PBUNDLE;
1196:
1197: /* array indices for GpiQueryTextBox */
1198: #define TXTBOX_TOPLEFT 0L
1199: #define TXTBOX_BOTTOMLEFT 1L
1200: #define TXTBOX_TOPRIGHT 2L
1201: #define TXTBOX_BOTTOMRIGHT 3L
1202: #define TXTBOX_CONCAT 4L
1203: /* array count for GpiQueryTextBox */
1204: #define TXTBOX_COUNT 5L
1205:
1206: /* return codes for GpiPtVisible */
1207: #define PVIS_ERROR 0L
1208: #define PVIS_INVISIBLE 1L
1209: #define PVIS_VISIBLE 2L
1210:
1211: /* return codes for GpiRectVisible */
1212: #define RVIS_ERROR 0L
1213: #define RVIS_INVISIBLE 1L
1214: #define RVIS_PARTIAL 2L
1215: #define RVIS_VISIBLE 3L
1216:
1217: #ifndef INCL_DDIDEFS
1218:
1219: /* XLATOFF */
1220: #ifdef INCL_16
1221: #define GpiSetAttrMode Gpi16SetAttrMode
1222: #define GpiQueryAttrMode Gpi16QueryAttrMode
1223: #define GpiSetAttrs Gpi16SetAttrs
1224: #endif /* INCL_16 */
1225: /* XLATON */
1226:
1227: /*** attribute mode functions */
1228: BOOL APIENTRY GpiSetAttrMode( HPS hps, LONG lMode );
1229: LONG APIENTRY GpiQueryAttrMode( HPS hps );
1230: /*** bundle primitive functions */
1231: BOOL APIENTRY GpiSetAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
1232: , ULONG flDefMask, PBUNDLE ppbunAttrs );
1233: #ifndef INCL_SAADEFS
1234:
1235: /* XLATOFF */
1236: #ifdef INCL_16
1237: #define GpiQueryAttrs Gpi16QueryAttrs
1238: #endif /* INCL_16 */
1239: /* XLATON */
1240: LONG APIENTRY GpiQueryAttrs( HPS hps, LONG lPrimType
1241: , ULONG flAttrMask, PBUNDLE ppbunAttrs );
1242:
1243: #endif /* no INCL_SAADEFS */
1244:
1245: /* XLATOFF */
1246: #ifdef INCL_16
1247: #define GpiSetBackColor Gpi16SetBackColor
1248: #define GpiQueryBackColor Gpi16QueryBackColor
1249: #define GpiSetMix Gpi16SetMix
1250: #define GpiQueryMix Gpi16QueryMix
1251: #define GpiSetBackMix Gpi16SetBackMix
1252: #define GpiQueryBackMix Gpi16QueryBackMix
1253: #define GpiSetLineType Gpi16SetLineType
1254: #define GpiQueryLineType Gpi16QueryLineType
1255: #define GpiSetLineWidth Gpi16SetLineWidth
1256: #define GpiQueryLineWidth Gpi16QueryLineWidth
1257: #define GpiSetLineWidthGeom Gpi16SetLineWidthGeom
1258: #define GpiQueryLineWidthGeom Gpi16QueryLineWidthGeom
1259: #define GpiSetLineEnd Gpi16SetLineEnd
1260: #define GpiQueryLineEnd Gpi16QueryLineEnd
1261: #define GpiSetLineJoin Gpi16SetLineJoin
1262: #define GpiQueryLineJoin Gpi16QueryLineJoin
1263: #define GpiSetCurrentPosition Gpi16SetCurrentPosition
1264: #define GpiQueryCurrentPosition Gpi16QueryCurrentPosition
1265: #define GpiSetArcParams Gpi16SetArcParams
1266: #define GpiQueryArcParams Gpi16QueryArcParams
1267: #define GpiPointArc Gpi16PointArc
1268: #define GpiFullArc Gpi16FullArc
1269: #define GpiPartialArc Gpi16PartialArc
1270: #define GpiPolyFillet Gpi16PolyFillet
1271: #define GpiPolySpline Gpi16PolySpline
1272: #define GpiPolyFilletSharp Gpi16PolyFilletSharp
1273: #define GpiSetPatternSet Gpi16SetPatternSet
1274: #define GpiQueryPatternSet Gpi16QueryPatternSet
1275: #define GpiSetPatternRefPoint Gpi16SetPatternRefPoint
1276: #define GpiQueryPatternRefPoint Gpi16QueryPatternRefPoint
1277: #define GpiQueryCharStringPos Gpi16QueryCharStringPos
1278: #define GpiQueryCharStringPosAt Gpi16QueryCharStringPosAt
1279: #define GpiQueryTextBox Gpi16QueryTextBox
1280: #define GpiQueryDefCharBox Gpi16QueryDefCharBox
1281: #define GpiSetCharSet Gpi16SetCharSet
1282: #define GpiQueryCharSet Gpi16QueryCharSet
1283: #define GpiSetCharBox Gpi16SetCharBox
1284: #define GpiQueryCharBox Gpi16QueryCharBox
1285: #define GpiSetCharAngle Gpi16SetCharAngle
1286: #define GpiQueryCharAngle Gpi16QueryCharAngle
1287: #define GpiSetCharShear Gpi16SetCharShear
1288: #define GpiQueryCharShear Gpi16QueryCharShear
1289: #define GpiSetCharDirection Gpi16SetCharDirection
1290: #define GpiQueryCharDirection Gpi16QueryCharDirection
1291: #define GpiSetCharMode Gpi16SetCharMode
1292: #define GpiQueryCharMode Gpi16QueryCharMode
1293: #define GpiCharStringPos Gpi16CharStringPos
1294: #define GpiCharStringPosAt Gpi16CharStringPosAt
1295: #define GpiSetCharExtra Gpi16SetCharExtra
1296: #define GpiSetCharBreakExtra Gpi16SetCharBreakExtra
1297: #define GpiQueryCharExtra Gpi16QueryCharExtra
1298: #define GpiQueryCharBreakExtra Gpi16QueryCharBreakExtra
1299: #define GpiMarker Gpi16Marker
1300: #define GpiPolyMarker Gpi16PolyMarker
1301: #define GpiSetMarker Gpi16SetMarker
1302: #define GpiSetMarkerBox Gpi16SetMarkerBox
1303: #define GpiSetMarkerSet Gpi16SetMarkerSet
1304: #define GpiQueryMarker Gpi16QueryMarker
1305: #define GpiQueryMarkerBox Gpi16QueryMarkerBox
1306: #define GpiQueryMarkerSet Gpi16QueryMarkerSet
1307: #define GpiImage Gpi16Image
1308: #define GpiPop Gpi16Pop
1309: #define GpiPtVisible Gpi16PtVisible
1310: #define GpiRectVisible Gpi16RectVisible
1311: #define GpiComment Gpi16Comment
1312: #endif /* INCL_16 */
1313: /* XLATON */
1314:
1315: /*** global primitive functions */
1316: BOOL APIENTRY GpiSetBackColor( HPS hps, LONG lColor );
1317: LONG APIENTRY GpiQueryBackColor( HPS hps );
1318: BOOL APIENTRY GpiSetMix( HPS hps, LONG lMixMode );
1319: LONG APIENTRY GpiQueryMix( HPS hps );
1320: BOOL APIENTRY GpiSetBackMix( HPS hps, LONG lMixMode );
1321: LONG APIENTRY GpiQueryBackMix( HPS hps );
1322:
1323: /*** line primitive functions */
1324: BOOL APIENTRY GpiSetLineType( HPS hps, LONG lLineType );
1325: LONG APIENTRY GpiQueryLineType( HPS hps );
1326: BOOL APIENTRY GpiSetLineWidth( HPS hps, FIXED fxLineWidth );
1327: FIXED APIENTRY GpiQueryLineWidth( HPS hps );
1328:
1329: BOOL APIENTRY GpiSetLineWidthGeom( HPS hps, LONG lLineWidth );
1330: LONG APIENTRY GpiQueryLineWidthGeom( HPS hps );
1331: BOOL APIENTRY GpiSetLineEnd( HPS hps, LONG lLineEnd );
1332: LONG APIENTRY GpiQueryLineEnd( HPS hps );
1333: BOOL APIENTRY GpiSetLineJoin( HPS hps, LONG lLineJoin );
1334: LONG APIENTRY GpiQueryLineJoin( HPS hps );
1335:
1336: BOOL APIENTRY GpiSetCurrentPosition( HPS hps, PPOINTL pptlPoint );
1337: BOOL APIENTRY GpiQueryCurrentPosition( HPS hps, PPOINTL pptlPoint );
1338:
1339: /*** arc primitive functions */
1340: BOOL APIENTRY GpiSetArcParams( HPS hps, PARCPARAMS parcpArcParams );
1341: BOOL APIENTRY GpiQueryArcParams( HPS hps, PARCPARAMS parcpArcParams );
1342:
1343: LONG APIENTRY GpiPointArc( HPS hps, PPOINTL pptl2 );
1344:
1345: LONG APIENTRY GpiFullArc( HPS hps, LONG lControl, FIXED fxMultiplier );
1346: LONG APIENTRY GpiPartialArc( HPS hps, PPOINTL pptlCenter, FIXED fxMultiplier
1347: , FIXED fxStartAngle, FIXED fxSweepAngle );
1348: LONG APIENTRY GpiPolyFillet( HPS hps, LONG lCount, PPOINTL aptlPoints );
1349: LONG APIENTRY GpiPolySpline( HPS hps, LONG lCount, PPOINTL aptlPoints );
1350: LONG APIENTRY GpiPolyFilletSharp( HPS hps, LONG lCount, PPOINTL aptlPoints
1351: , PFIXED afxPoints );
1352:
1353: /*** area primitive functions */
1354: BOOL APIENTRY GpiSetPatternSet( HPS hps, LONG lSet );
1355: LONG APIENTRY GpiQueryPatternSet( HPS hps );
1356: BOOL APIENTRY GpiSetPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
1357: BOOL APIENTRY GpiQueryPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
1358:
1359: /*** character primitive functions */
1360:
1361: BOOL APIENTRY GpiQueryCharStringPos( HPS hps, ULONG flOptions, LONG lCount
1362: , PCH pchString, PLONG alXincrements
1363: , PPOINTL aptlPositions );
1364: BOOL APIENTRY GpiQueryCharStringPosAt( HPS hps, PPOINTL pptlStart
1365: , ULONG flOptions, LONG lCount
1366: , PCH pchString, PLONG alXincrements
1367: , PPOINTL aptlPositions );
1368: BOOL APIENTRY GpiQueryTextBox( HPS hps, LONG lCount1, PCH pchString
1369: , LONG lCount2, PPOINTL aptlPoints );
1370: BOOL APIENTRY GpiQueryDefCharBox( HPS hps, PSIZEL psizlSize );
1371: BOOL APIENTRY GpiSetCharSet( HPS hps, LONG llcid );
1372: LONG APIENTRY GpiQueryCharSet( HPS hps );
1373: BOOL APIENTRY GpiSetCharBox( HPS hps, PSIZEF psizfxBox );
1374: BOOL APIENTRY GpiQueryCharBox( HPS hps, PSIZEF psizfxSize );
1375: BOOL APIENTRY GpiSetCharAngle( HPS hps, PGRADIENTL pgradlAngle );
1376: BOOL APIENTRY GpiQueryCharAngle( HPS hps, PGRADIENTL pgradlAngle );
1377: BOOL APIENTRY GpiSetCharShear( HPS hps, PPOINTL pptlAngle );
1378: BOOL APIENTRY GpiQueryCharShear( HPS hps, PPOINTL pptlShear );
1379: BOOL APIENTRY GpiSetCharDirection( HPS hps, LONG lDirection );
1380: LONG APIENTRY GpiQueryCharDirection( HPS hps );
1381: BOOL APIENTRY GpiSetCharMode( HPS hps, LONG lMode );
1382: LONG APIENTRY GpiQueryCharMode( HPS hps );
1383:
1384: LONG APIENTRY GpiCharStringPos( HPS hps, PRECTL prclRect, ULONG flOptions
1385: , LONG lCount, PCH pchString, PLONG alAdx );
1386: LONG APIENTRY GpiCharStringPosAt( HPS hps, PPOINTL pptlStart, PRECTL prclRect
1387: , ULONG flOptions, LONG lCount, PCH pchString
1388: , PLONG alAdx );
1389: BOOL APIENTRY GpiSetCharExtra (HPS hps, FIXED Extra);
1390: BOOL APIENTRY GpiSetCharBreakExtra (HPS hps, FIXED BreakExtra);
1391: BOOL APIENTRY GpiQueryCharExtra (HPS hps, PFIXED Extra);
1392: BOOL APIENTRY GpiQueryCharBreakExtra(HPS hps, PFIXED BreakExtra);
1393:
1394: /*** marker primitive functions */
1395: LONG APIENTRY GpiMarker( HPS hps, PPOINTL pptlPoint );
1396: LONG APIENTRY GpiPolyMarker( HPS hps, LONG lCount, PPOINTL aptlPoints );
1397: BOOL APIENTRY GpiSetMarker( HPS hps, LONG lSymbol );
1398: BOOL APIENTRY GpiSetMarkerBox( HPS hps, PSIZEF psizfxSize );
1399: BOOL APIENTRY GpiSetMarkerSet( HPS hps, LONG lSet );
1400: LONG APIENTRY GpiQueryMarker( HPS hps );
1401: BOOL APIENTRY GpiQueryMarkerBox( HPS hps, PSIZEF psizfxSize );
1402: LONG APIENTRY GpiQueryMarkerSet( HPS hps );
1403:
1404: /*** image primitive functions */
1405: LONG APIENTRY GpiImage( HPS hps, LONG lFormat, PSIZEL psizlImageSize
1406: , LONG lLength, PBYTE pbData );
1407:
1408: /*** miscellaneous primitive functions */
1409: BOOL APIENTRY GpiPop( HPS hps, LONG lCount );
1410: LONG APIENTRY GpiPtVisible( HPS hps, PPOINTL pptlPoint );
1411: LONG APIENTRY GpiRectVisible( HPS hps, PRECTL prclRectangle );
1412: BOOL APIENTRY GpiComment( HPS hps, LONG lLength, PBYTE pbData );
1413:
1414: #endif /* no INCL_DDIDEFS */
1415:
1416: #endif /* non-common GPIPRIMITIVES */
1417: #ifdef INCL_GPILCIDS
1418:
1419: /* return codes from GpiCreateLogFont */
1420: #define FONT_DEFAULT 1L
1421: #define FONT_MATCH 2L
1422:
1423: /* lcid type for GpiQuerySetIds */
1424: #define LCIDT_FONT 6L
1425:
1426: #define LCIDT_BITMAP 7L
1427:
1428: /* constant used to delete all lcids by GpiDeleteSetId */
1429: #define LCID_ALL (-1L)
1430:
1431: /* kerning data returned by GpiQueryKerningPairs */
1432: #ifdef INCL_32
1433: typedef struct _KERNINGPAIRS { /* krnpr */
1434: SHORT sFirstChar;
1435: SHORT sSecondChar;
1436: LONG lKerningAmount;
1437: } KERNINGPAIRS;
1438: #else
1439: typedef struct _KERNINGPAIRS { /* krnpr */
1440: SHORT sFirstChar;
1441: SHORT sSecondChar;
1442: SHORT sKerningAmount;
1443: } KERNINGPAIRS;
1444: #endif
1445: typedef KERNINGPAIRS FAR *PKERNINGPAIRS;
1446:
1447: /* data required by GpiQueryFaceString */
1448: typedef struct _FACENAMEDESC { /* fnd */
1449: USHORT usSize;
1450: USHORT usWeightClass;
1451: USHORT usWidthClass;
1452: USHORT usReserved;
1453: ULONG flOptions;
1454: } FACENAMEDESC;
1455: typedef FACENAMEDESC FAR *PFACENAMEDESC;
1456:
1457: /* FACENAMEDESC 'WeightClass' options for GpiQueryFaceString */
1458: #define FWEIGHT_DONT_CARE 0L
1459: #define FWEIGHT_ULTRA_LIGHT 1L
1460: #define FWEIGHT_EXTRA_LIGHT 2L
1461: #define FWEIGHT_LIGHT 3L
1462: #define FWEIGHT_SEMI_LIGHT 4L
1463: #define FWEIGHT_NORMAL 5L
1464: #define FWEIGHT_SEMI_BOLD 6L
1465: #define FWEIGHT_BOLD 7L
1466: #define FWEIGHT_EXTRA_BOLD 8L
1467: #define FWEIGHT_ULTRA_BOLD 9L
1468:
1469: /* FACENAMEDESC 'WidthClass' options for GpiQueryFaceString */
1470: #define FWIDTH_DONT_CARE 0L
1471: #define FWIDTH_ULTRA_CONDENSED 1L
1472: #define FWIDTH_EXTRA_CONDENSED 2L
1473: #define FWIDTH_CONDENSED 3L
1474: #define FWIDTH_SEMI_CONDENSED 4L
1475: #define FWIDTH_NORMAL 5L
1476: #define FWIDTH_SEMI_EXPANDED 6L
1477: #define FWIDTH_EXPANDED 7L
1478: #define FWIDTH_EXTRA_EXPANDED 8L
1479: #define FWIDTH_ULTRA_EXPANDED 9L
1480:
1481: /* FACENAMEDESC 'options' for GpiQueryFaceString */
1482: #define FTYPE_ITALIC 0x0001
1483: #define FTYPE_ITALIC_DONT_CARE 0x0002
1484: #define FTYPE_OBLIQUE 0x0004
1485: #define FTYPE_OBLIQUE_DONT_CARE 0x0008
1486: #define FTYPE_ROUNDED 0x0010
1487: #define FTYPE_ROUNDED_DONT_CARE 0x0020
1488:
1489: /* actions for GpiQueryFontAction */
1490: #define QFA_PUBLIC 1L
1491: #define QFA_PRIVATE 2L
1492: #define QFA_ERROR GPI_ALTERROR
1493:
1494: /* options for GpiQueryFonts */
1495: #define QF_PUBLIC 0x0001L
1496: #define QF_PRIVATE 0x0002L
1497: #define QF_NO_GENERIC 0x0004L
1498: #define QF_NO_DEVICE 0x0008L
1499:
1500: #ifndef INCL_SAADEFS
1501:
1502: /* font file descriptions for GpiQueryFontFileDescriptions */
1503: typedef CHAR FFDESCS[2][FACESIZE]; /* ffdescs */
1504: typedef FFDESCS FAR *PFFDESCS;
1505:
1506: #endif /* no INCL_SAADEFS */
1507:
1508: #ifndef INCL_DDIDEFS
1509:
1510: /*** physical and logical font functions */
1511: /* XLATOFF */
1512: #ifdef INCL_16
1513: #define GpiCreateLogFont Gpi16CreateLogFont
1514: #define GpiDeleteSetId Gpi16DeleteSetId
1515: #define GpiLoadFonts Gpi16LoadFonts
1516: #define GpiUnloadFonts Gpi16UnloadFonts
1517: #define GpiQueryFonts Gpi16QueryFonts
1518: #define GpiQueryFontMetrics Gpi16QueryFontMetrics
1519: #define GpiQueryKerningPairs Gpi16QueryKerningPairs
1520: #define GpiQueryWidthTable Gpi16QueryWidthTable
1521: #define GpiQueryNumberSetIds Gpi16QueryNumberSetIds
1522: #define GpiQuerySetIds Gpi16QuerySetIds
1523: #define GpiQueryFaceString Gpi16QueryFaceString
1524: #define GpiQueryLogicalFont Gpi16QueryLogicalFont
1525: #define GpiQueryFontAction Gpi16QueryFontAction
1526: #define GpiLoadPublicFonts Gpi16LoadPublicFonts
1527: #define GpiUnloadPublicFonts Gpi16UnloadPublicFonts
1528: #endif /* INCL_16 */
1529: /* XLATON */
1530: LONG APIENTRY GpiCreateLogFont( HPS hps, PSTR8 pName, LONG lLcid
1531: , PFATTRS pfatAttrs );
1532: BOOL APIENTRY GpiDeleteSetId( HPS hps, LONG lLcid );
1533: BOOL APIENTRY GpiLoadFonts( HAB hab, PSZ pszFilename );
1534: BOOL APIENTRY GpiUnloadFonts( HAB hab, PSZ pszFilename );
1535: LONG APIENTRY GpiQueryFonts( HPS hps, ULONG flOptions, PSZ pszFacename
1536: , PLONG plReqFonts, LONG lMetricsLength
1537: , PFONTMETRICS afmMetrics );
1538: BOOL APIENTRY GpiQueryFontMetrics( HPS hps, LONG lMetricsLength
1539: , PFONTMETRICS pfmMetrics );
1540: LONG APIENTRY GpiQueryKerningPairs( HPS hps, LONG lCount
1541: , PKERNINGPAIRS akrnprData );
1542: BOOL APIENTRY GpiQueryWidthTable( HPS hps, LONG lFirstChar, LONG lCount
1543: , PLONG alData );
1544: LONG APIENTRY GpiQueryNumberSetIds( HPS hps );
1545: BOOL APIENTRY GpiQuerySetIds( HPS hps, LONG lCount, PLONG alTypes
1546: , PSTR8 aNames, PLONG allcids );
1547:
1548: ULONG APIENTRY GpiQueryFaceString(HPS PS, PSZ FamilyName,
1549: PFACENAMEDESC attrs, LONG length,
1550: PSZ CompoundFaceName);
1551:
1552: BOOL APIENTRY GpiQueryLogicalFont(HPS PS, LONG lcid, PSTR8 name,
1553: PFATTRS attrs, LONG length);
1554:
1555: ULONG APIENTRY GpiQueryFontAction(HAB anchor, ULONG options);
1556:
1557: BOOL APIENTRY GpiLoadPublicFonts( HAB, PSZ );
1558: BOOL APIENTRY GpiUnloadPublicFonts( HAB, PSZ );
1559:
1560: #ifndef INCL_SAADEFS
1561: /* XLATOFF */
1562: #ifdef INCL_16
1563: #define GpiSetCp Gpi16SetCp
1564: #define GpiQueryCp Gpi16QueryCp
1565: #define GpiQueryFontFileDescriptions Gpi16QueryFontFileDescriptions
1566: #endif /* INCL_16 */
1567: /* XLATON */
1568: BOOL APIENTRY GpiSetCp( HPS hps, USHORT usCodePage );
1569: USHORT APIENTRY GpiQueryCp( HPS hps );
1570: LONG APIENTRY GpiQueryFontFileDescriptions( HAB hab, PSZ pszFilename
1571: , PLONG plCount
1572: , PFFDESCS affdescsNames );
1573: #endif /* no INCL_SAADEFS */
1574:
1575: #endif /* no INCL_DDIDEFS */
1576:
1577: #endif /* non-common GPILCIDS */
1578:
1579: #if (defined(INCL_GPIBITMAPS) || !defined(INCL_NOCOMMON))
1580:
1581: #include <pmbitmap.h>
1582: #endif
1583:
1584: #ifdef INCL_GPIREGIONS
1585:
1586: /* options for GpiCombineRegion */
1587: #define CRGN_OR 1L
1588: #define CRGN_COPY 2L
1589: #define CRGN_XOR 4L
1590: #define CRGN_AND 6L
1591: #define CRGN_DIFF 7L
1592:
1593: /* usDirection of returned region data for GpiQueryRegionRects */
1594: #define RECTDIR_LFRT_TOPBOT 1L
1595: #define RECTDIR_RTLF_TOPBOT 2L
1596: #define RECTDIR_LFRT_BOTTOP 3L
1597: #define RECTDIR_RTLF_BOTTOP 4L
1598:
1599: /* control data for GpiQueryRegionRects */
1600: #ifdef INCL_32
1601: typedef struct _RGNRECT { /* rgnrc */
1602: ULONG ircStart;
1603: ULONG crc;
1604: ULONG crcReturned;
1605: USHORT usDirection;
1606: } RGNRECT;
1607: #else
1608: typedef struct _RGNRECT { /* rgnrc */
1609: USHORT ircStart;
1610: USHORT crc;
1611: USHORT crcReturned;
1612: USHORT usDirection;
1613: } RGNRECT;
1614: #endif
1615: typedef RGNRECT FAR *PRGNRECT;
1616:
1617: /* return code to indicate type of region for GpiCombineRegion and others */
1618: #define RGN_ERROR 0L
1619: #define RGN_NULL 1L
1620: #define RGN_RECT 2L
1621: #define RGN_COMPLEX 3L
1622:
1623: /* return codes for GpiPtInRegion */
1624: #define PRGN_ERROR 0L
1625: #define PRGN_OUTSIDE 1L
1626: #define PRGN_INSIDE 2L
1627:
1628: /* return codes for GpiRectInRegion */
1629: #define RRGN_ERROR 0L
1630: #define RRGN_OUTSIDE 1L
1631: #define RRGN_PARTIAL 2L
1632: #define RRGN_INSIDE 3L
1633:
1634: /* return codes for GpiEqualRegion */
1635: #define EQRGN_ERROR 0L
1636: #define EQRGN_NOTEQUAL 1L
1637: #define EQRGN_EQUAL 2L
1638:
1639: /* error return code for GpiSetRegion */
1640: #define HRGN_ERROR ((HRGN)-1L)
1641:
1642: #ifndef INCL_DDIDEFS
1643:
1644: /* XLATOFF */
1645: #ifdef INCL_16
1646: #define GpiCombineRegion Gpi16CombineRegion
1647: #define GpiCreateRegion Gpi16CreateRegion
1648: #define GpiDestroyRegion Gpi16DestroyRegion
1649: #define GpiEqualRegion Gpi16EqualRegion
1650: #define GpiOffsetRegion Gpi16OffsetRegion
1651: #define GpiPaintRegion Gpi16PaintRegion
1652: #define GpiFrameRegion Gpi16FrameRegion
1653: #define GpiPtInRegion Gpi16PtInRegion
1654: #define GpiQueryRegionBox Gpi16QueryRegionBox
1655: #define GpiQueryRegionRects Gpi16QueryRegionRects
1656: #define GpiRectInRegion Gpi16RectInRegion
1657: #define GpiSetRegion Gpi16SetRegion
1658: #define GpiSetClipRegion Gpi16SetClipRegion
1659: #endif /* INCL_16 */
1660: /* XLATON */
1661:
1662: /*** main region functions */
1663: LONG APIENTRY GpiCombineRegion( HPS hps, HRGN hrgnDest, HRGN hrgnSrc1
1664: , HRGN hrgnSrc2, LONG lMode );
1665: HRGN APIENTRY GpiCreateRegion( HPS hps, LONG lCount, PRECTL arclRectangles );
1666: BOOL APIENTRY GpiDestroyRegion( HPS hps, HRGN hrgn );
1667: LONG APIENTRY GpiEqualRegion( HPS hps, HRGN hrgnSrc1, HRGN hrgnSrc2 );
1668: BOOL APIENTRY GpiOffsetRegion( HPS hps, HRGN Hrgn, PPOINTL pptlOffset );
1669: LONG APIENTRY GpiPaintRegion( HPS hps, HRGN hrgn );
1670: LONG APIENTRY GpiFrameRegion( HPS hps, HRGN hrgn, PSIZEL thickness );
1671: LONG APIENTRY GpiPtInRegion( HPS hps, HRGN hrgn, PPOINTL pptlPoint );
1672: LONG APIENTRY GpiQueryRegionBox( HPS hps, HRGN hrgn, PRECTL prclBound );
1673: BOOL APIENTRY GpiQueryRegionRects( HPS hps, HRGN hrgn, PRECTL prclBound
1674: , PRGNRECT prgnrcControl, PRECTL prclRect );
1675: LONG APIENTRY GpiRectInRegion( HPS hps, HRGN hrgn, PRECTL prclRect );
1676: BOOL APIENTRY GpiSetRegion( HPS hps, HRGN hrgn, LONG lcount
1677: , PRECTL arclRectangles );
1678:
1679: /*** clip region functions */
1680: LONG APIENTRY GpiSetClipRegion( HPS hps, HRGN hrgn, PHRGN phrgnOld );
1681:
1682: #ifndef INCL_SAADEFS
1683:
1684: /* XLATOFF */
1685: #ifdef INCL_16
1686: #define GpiQueryClipRegion Gpi16QueryClipRegion
1687: #define GpiQueryClipBox Gpi16QueryClipBox
1688: #endif /* INCL_16 */
1689: /* XLATON */
1690: HRGN APIENTRY GpiQueryClipRegion( HPS hps );
1691: LONG APIENTRY GpiQueryClipBox( HPS hps, PRECTL prclBound );
1692:
1693: #endif /* no INCL_SAADEFS */
1694:
1695: /* XLATOFF */
1696: #ifdef INCL_16
1697: #define GpiExcludeClipRectangle Gpi16ExcludeClipRectangle
1698: #define GpiIntersectClipRectangle Gpi16IntersectClipRectangle
1699: #endif /* INCL_16 */
1700: /* XLATON */
1701: LONG APIENTRY GpiExcludeClipRectangle( HPS hps, PRECTL prclRectangle );
1702: LONG APIENTRY GpiIntersectClipRectangle( HPS hps, PRECTL prclRectangle );
1703:
1704: #ifndef INCL_SAADEFS
1705:
1706: /* XLATOFF */
1707: #ifdef INCL_16
1708: #define GpiOffsetClipRegion Gpi16OffsetClipRegion
1709: #endif /* INCL_16 */
1710: /* XLATON */
1711: LONG APIENTRY GpiOffsetClipRegion( HPS hps, PPOINTL pptlPoint );
1712:
1713: #endif /* no INCL_SAADEFS */
1714:
1715: #endif /* no INCL_DDIDEFS */
1716:
1717: #endif /* non-common GPIREGIONS */
1718: #ifdef INCL_GPIMETAFILES
1719:
1720: #ifndef INCL_DDIDEFS
1721:
1722: /* constants for index values of options array for GpiPlayMetaFile */
1723: #define PMF_SEGBASE 0
1724: #define PMF_LOADTYPE 1
1725: #define PMF_RESOLVE 2
1726: #define PMF_LCIDS 3
1727: #define PMF_RESET 4
1728: #define PMF_SUPPRESS 5
1729: #define PMF_COLORTABLES 6
1730: #define PMF_COLORREALIZABLE 7
1731: #define PMF_DEFAULTS 8
1732:
1733: /* options for GpiPlayMetaFile */
1734: #define RS_DEFAULT 0L
1735: #define RS_NODISCARD 1L
1736: #define LC_DEFAULT 0L
1737: #define LC_NOLOAD 1L
1738: #define LC_LOADDISC 3L
1739: #define LT_DEFAULT 0L
1740: #define LT_NOMODIFY 1L
1741: #define LT_ORIGINALVIEW 4L
1742: #define RES_DEFAULT 0L
1743: #define RES_NORESET 1L
1744: #define RES_RESET 2L
1745: #define SUP_DEFAULT 0L
1746: #define SUP_NOSUPPRESS 1L
1747: #define SUP_SUPPRESS 2L
1748: #define CTAB_DEFAULT 0L
1749: #define CTAB_NOMODIFY 1L
1750: #define CTAB_REPLACE 3L
1751: #define CTAB_REPLACEPALETTE 4L
1752: #define CREA_DEFAULT 0L
1753: #define CREA_REALIZE 1L
1754: #define CREA_NOREALIZE 2L
1755: #define CREA_DOREALIZE 3L
1756:
1757: #ifndef INCL_SAADEFS
1758:
1759: #define DDEF_DEFAULT 0L
1760: #define DDEF_IGNORE 1L
1761: #define DDEF_LOADDISC 3L
1762: #define RSP_DEFAULT 0L
1763: #define RSP_NODISCARD 1L
1764:
1765: #endif /* no INCL_SAADEFS */
1766:
1767: /*** MetaFile functions */
1768: /* XLATOFF */
1769: #ifdef INCL_16
1770: #define GpiCopyMetaFile Gpi16CopyMetaFile
1771: #define GpiDeleteMetaFile Gpi16DeleteMetaFile
1772: #define GpiLoadMetaFile Gpi16LoadMetaFile
1773: #define GpiPlayMetaFile Gpi16PlayMetaFile
1774: #define GpiQueryMetaFileBits Gpi16QueryMetaFileBits
1775: #define GpiQueryMetaFileLength Gpi16QueryMetaFileLength
1776: #define GpiSaveMetaFile Gpi16SaveMetaFile
1777: #endif /* INCL_16 */
1778: /* XLATON */
1779: HMF APIENTRY GpiCopyMetaFile( HMF hmf );
1780: BOOL APIENTRY GpiDeleteMetaFile( HMF hmf );
1781: HMF APIENTRY GpiLoadMetaFile( HAB hab, PSZ pszFilename );
1782: LONG APIENTRY GpiPlayMetaFile( HPS hps, HMF hmf, LONG lCount1
1783: , PLONG alOptarray, PLONG plSegCount
1784: , LONG lCount2, PSZ pszDesc );
1785: BOOL APIENTRY GpiQueryMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
1786: , PBYTE pbData );
1787: LONG APIENTRY GpiQueryMetaFileLength( HMF hmf );
1788: BOOL APIENTRY GpiSaveMetaFile( HMF hmf, PSZ pszFilename );
1789:
1790:
1791: #ifndef INCL_SAADEFS
1792:
1793: /* XLATOFF */
1794: #ifdef INCL_16
1795: #define GpiSetMetaFileBits Gpi16SetMetaFileBits
1796: #endif /* INCL_16 */
1797: /* XLATON */
1798: BOOL APIENTRY GpiSetMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
1799: , PBYTE pbBuffer );
1800:
1801: #endif /* no INCL_SAADEFS */
1802:
1803: #endif /* no INCL_DDIDEFS */
1804:
1805: #endif /* non-common GPIMETAFILES */
1806:
1807: #ifdef INCL_GPIDEFAULTS
1808:
1809: /*** default functions */
1810: /* XLATOFF */
1811: #ifdef INCL_16
1812: #define GpiQueryDefArcParams Gpi16QueryDefArcParams
1813: #define GpiQueryDefAttrs Gpi16QueryDefAttrs
1814: #define GpiQueryDefTag Gpi16QueryDefTag
1815: #define GpiQueryDefViewingLimits Gpi16QueryDefViewingLimits
1816: #define GpiSetDefArcParams Gpi16SetDefArcParams
1817: #define GpiSetDefAttrs Gpi16SetDefAttrs
1818: #define GpiSetDefTag Gpi16SetDefTag
1819: #define GpiSetDefViewingLimits Gpi16SetDefViewingLimits
1820: #endif /* INCL_16 */
1821: /* XLATON */
1822: BOOL APIENTRY GpiQueryDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
1823: BOOL APIENTRY GpiQueryDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
1824: , PBUNDLE ppbunAttrs );
1825: BOOL APIENTRY GpiQueryDefTag( HPS hps, PLONG plTag );
1826: BOOL APIENTRY GpiQueryDefViewingLimits( HPS hps, PRECTL prclLimits );
1827:
1828: BOOL APIENTRY GpiSetDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
1829: BOOL APIENTRY GpiSetDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
1830: , PBUNDLE ppbunAttrs );
1831: BOOL APIENTRY GpiSetDefTag( HPS hps, LONG lTag );
1832: BOOL APIENTRY GpiSetDefViewingLimits( HPS hps, PRECTL prclLimits );
1833:
1834:
1835: #endif /* GPIDEFAULTS */
1836:
1837: /* XLATOFF */
1838: #pragma pack() /* reset to default packing */
1839: /* XLATON */
1840:
1841: #ifdef INCL_GPIERRORS
1842:
1843: #include <pmerr.h>
1844:
1845: #endif /* non-common GPIERRORS */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.