1 {****************************************************************************
2
3
4 PMGPI interface unit
5 FPC Pascal Runtime Library for OS/2
6 Copyright (c) 1999-2000 by Florian Klaempfl
7 Copyright (c) 1999-2000 by Ramon Bosque
8
9 The Free Pascal runtime library is distributed under the Library GNU Public
10 License v2. So is this unit. The Library GNU Public License requires you to
11 distribute the source code of this unit with any product that uses it.
12 Because the EMX library isn't under the LGPL, we grant you an exception to
13 this, and that is, when you compile a program with the Free Pascal Compiler,
14 you do not need to ship source code with that program, AS LONG AS YOU ARE
15 USING UNMODIFIED CODE! If you modify this code, you MUST change the next
16 line:
17
18 <This an official, unmodified Free Pascal source code file.>
19
20 Send us your modified files, we can work together if you want!
21
22 Free Pascal is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 Library GNU General Public License for more details.
26
27 You should have received a copy of the Library GNU General Public License
28 along with Free Pascal; see the file COPYING.LIB. If not, write to
29 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
30 Boston, MA 02110-1301, USA.
31
32 ****************************************************************************}
33
34 {Warning: This code is alfa. Future versions of this unit will propably
35 not be compatible.}
36
37 unit pmgpi;
38
39 interface
40
41 {$MACRO ON}
42
43 uses os2def,pmbitmap;
44
45 const GPI_ERROR = 0;
46 GPI_OK = 1;
47 GPI_ALTERROR = (-1);
48
49 CLR_NOINDEX = (-254);
50
51 PU_ARBITRARY = $0004;
52 PU_PELS = $0008;
53 PU_LOMETRIC = $000C;
54 PU_HIMETRIC = $0010;
55 PU_LOENGLISH = $0014;
56 PU_HIENGLISH = $0018;
57 PU_TWIPS = $001C;
58 GPIF_DEFAULT = 0;
59 GPIF_SHORT = $0100;
60 GPIF_LONG = $0200;
61 GPIT_NORMAL = 0;
62 GPIT_MICRO = $1000;
63 GPIA_NOASSOC = 0;
64 GPIA_ASSOC = $4000;
65 HDC_ERROR = -1;
66
67 GRES_ATTRS = $0001;
68 GRES_SEGMENTS = $0002;
69 GRES_ALL = $0004;
70 PS_UNITS = $00FC;
71 PS_FORMAT = $0F00;
72 PS_TYPE = $1000;
73 PS_MODE = $2000;
74 PS_ASSOCIATE = $4000;
75 PS_NORESET = $8000;
76 GPIE_SEGMENT = 0;
77 GPIE_ELEMENT = 1;
78 GPIE_DATA = 2;
79 DCTL_ERASE = 1;
80 DCTL_DISPLAY = 2;
81 DCTL_BOUNDARY = 3;
82 DCTL_DYNAMIC = 4;
83 DCTL_CORRELATE = 5;
84 DCTL_ERROR = -1;
85 DCTL_OFF = 0;
86 DCTL_ON = 1;
87 SDW_ERROR = -1;
88 SDW_OFF = 0;
89 SDW_ON = 1;
90 DM_ERROR = 0;
91 DM_DRAW = 1;
92 DM_RETAIN = 2;
93 DM_DRAWANDRETAIN = 3;
94
95 PICKAP_DEFAULT = 0;
96 PICKAP_REC = 2;
97 PICKSEL_VISIBLE = 0;
98 PICKSEL_ALL = 1;
99 GPI_HITS = 2;
100
101 DFORM_NOCONV = 0;
102 DFORM_S370SHORT = 1;
103 DFORM_PCSHORT = 2;
104 DFORM_PCLONG = 4;
105 ATTR_ERROR = (-1);
106 ATTR_DETECTABLE = 1;
107 ATTR_VISIBLE = 2;
108 ATTR_CHAINED = 6;
109 ATTR_DYNAMIC = 8;
110 ATTR_FASTCHAIN = 9;
111 ATTR_PROP_DETECTABLE = 10;
112 ATTR_PROP_VISIBLE = 11;
113 ATTR_OFF = 0;
114 ATTR_ON = 1;
115 LOWER_PRI = (-1);
116 HIGHER_PRI = 1;
117
118 SEGEM_ERROR = 0;
119 SEGEM_INSERT = 1;
120 SEGEM_REPLACE = 2;
121
122 CVTC_WORLD = 1;
123 CVTC_MODEL = 2;
124 CVTC_DEFAULTPAGE = 3;
125 CVTC_PAGE = 4;
126 CVTC_DEVICE = 5;
127 TRANSFORM_REPLACE = 0;
128 TRANSFORM_ADD = 1;
129 TRANSFORM_PREEMPT = 2;
130
131 MPATH_STROKE = 6;
132 FPATH_ALTERNATE = 0;
133 FPATH_WINDING = 2;
134 FPATH_EXCL = 0;
135 FPATH_INCL = 8;
136 SCP_ALTERNATE = 0;
137 SCP_WINDING = 2;
138 SCP_AND = 4;
139 SCP_RESET = 0;
140 SCP_EXCL = 0;
141 SCP_INCL = 8;
142
143 LCOL_RESET = $0001;
144 LCOL_REALIZABLE = $0002;
145 LCOL_PURECOLOR = $0004;
146 LCOL_OVERRIDE_DEFAULT_COLORS = $0008;
147 LCOL_REALIZED = $0010;
148 LCOLF_DEFAULT = 0;
149 LCOLF_INDRGB = 1;
150 LCOLF_CONSECRGB = 2;
151 LCOLF_RGB = 3;
152 LCOLF_PALETTE = 4;
153 LCOLOPT_REALIZED = $0001;
154 LCOLOPT_INDEX = $0002;
155 QLCT_ERROR = (-1);
156 QLCT_RGB = (-2);
157 QLCT_NOTLOADED = (-1);
158 QCD_LCT_FORMAT = 0;
159 QCD_LCT_LOINDEX = 1;
160 QCD_LCT_HIINDEX = 2;
161 QCD_LCT_OPTIONS = 3;
162 PAL_ERROR = (-1);
163 PC_RESERVED = $01;
164 PC_EXPLICIT = $02;
165 PC_NOCOLLAPSE = $04;
166
167 CLR_false = (-5);
168 CLR_true = (-4);
169 CLR_error = (-255);
170 CLR_default = (-3);
171 CLR_white = (-2);
172 CLR_black = (-1);
173 CLR_background = 0;
174 CLR_blue = 1;
175 CLR_red = 2;
176 CLR_pink = 3;
177 CLR_green = 4;
178 CLR_cyan = 5;
179 CLR_yellow = 6;
180 CLR_neutral = 7;
181 CLR_darkgray = 8;
182 CLR_darkblue = 9;
183 CLR_darkred = 10;
184 CLR_darkpink = 11;
185 CLR_darkgreen = 12;
186 CLR_darkcyan = 13;
187 CLR_brown = 14;
188 CLR_palegray = 15;
189
190 RGB_error = (-255);
191 RGB_black = $00000000;
192 RGB_blue = $000000FF;
193 RGB_green = $0000FF00;
194 RGB_cyan = $0000FFFF;
195 RGB_red = $00FF0000;
196 RGB_pink = $00FF00FF;
197 RGB_yellow = $00FFFF00;
198 RGB_white = $00FFFFFF;
199
200 BA_NOBOUNDARY = 0;
201 BA_BOUNDARY = $0001;
202 BA_ALTERNATE = 0;
203 BA_WINDING = $0002;
204 BA_EXCL = 0;
205 BA_INCL = 8;
206 DRO_FILL = 1;
207 DRO_OUTLINE = 2;
208 DRO_OUTLINEFILL = 3;
209 PATSYM_ERROR = (-1);
210 PATSYM_DEFAULT = 0;
211 PATSYM_DENSE1 = 1;
212 PATSYM_DENSE2 = 2;
213 PATSYM_DENSE3 = 3;
214 PATSYM_DENSE4 = 4;
215 PATSYM_DENSE5 = 5;
216 PATSYM_DENSE6 = 6;
217 PATSYM_DENSE7 = 7;
218 PATSYM_DENSE8 = 8;
219 PATSYM_VERT = 9;
220 PATSYM_HORIZ = 10;
221 PATSYM_DIAG1 = 11;
222 PATSYM_DIAG2 = 12;
223 PATSYM_DIAG3 = 13;
224 PATSYM_DIAG4 = 14;
225 PATSYM_NOSHADE = 15;
226 PATSYM_SOLID = 16;
227 PATSYM_HALFTONE = 17;
228 PATSYM_HATCH = 18;
229 PATSYM_DIAGHATCH = 19;
230 PATSYM_BLANK = 64;
231 LCID_ERROR = (-1);
232 LCID_DEFAULT = 0;
233
234 AM_ERROR = (-1);
235 AM_PRESERVE = 0;
236 AM_NOPRESERVE = 1;
237 FM_ERROR = (-1);
238 FM_DEFAULT = 0;
239 FM_OR = 1;
240 FM_OVERPAINT = 2;
241 FM_LEAVEALONE = 5;
242 FM_XOR = 4;
243 FM_AND = 6;
244 FM_SUBTRACT = 7;
245 FM_MASKSRCNOT = 8;
246 FM_ZERO = 9;
247 FM_NOTMERGESRC = 10;
248 FM_NOTXORSRC = 11;
249 FM_INVERT = 12;
250 FM_MERGESRCNOT = 13;
251 FM_NOTCOPYSRC = 14;
252 FM_MERGENOTSRC = 15;
253 FM_NOTMASKSRC = 16;
254 FM_ONE = 17;
255 BM_ERROR = (-1);
256 BM_DEFAULT = 0;
257 BM_OR = 1;
258 BM_OVERPAINT = 2;
259 BM_LEAVEALONE = 5;
260 BM_XOR = 4;
261 BM_AND = 6;
262 BM_SUBTRACT = 7;
263 BM_MASKSRCNOT = 8;
264 BM_ZERO = 9;
265 BM_NOTMERGESRC = 10;
266 BM_NOTXORSRC = 11;
267 BM_INVERT = 12;
268 BM_MERGESRCNOT = 13;
269 BM_NOTCOPYSRC = 14;
270 BM_MERGENOTSRC = 15;
271 BM_NOTMASKSRC = 16;
272 BM_ONE = 17;
273 BM_SRCTRANSPARENT = 18;
274 BM_DESTTRANSPARENT = 19;
275 LINETYPE_ERROR = (-1);
276 LINETYPE_DEFAULT = 0;
277 LINETYPE_DOT = 1;
278 LINETYPE_SHORTDASH = 2;
279 LINETYPE_DASHDOT = 3;
280 LINETYPE_DOUBLEDOT = 4;
281 LINETYPE_LONGDASH = 5;
282 LINETYPE_DASHDOUBLEDOT = 6;
283 LINETYPE_SOLID = 7;
284 LINETYPE_INVISIBLE = 8;
285 LINETYPE_ALTERNATE = 9;
286 LINEWIDTH_ERROR = (-1);
287 LINEWIDTH_DEFAULT = 0;
288 LINEWIDTH_NORMAL = $00010000;
289 LINEWIDTH_THICK = $00020000;
290 LINEWIDTHGEOM_ERROR = (-1);
291 LINEEND_ERROR = (-1);
292 LINEEND_DEFAULT = 0;
293 LINEEND_FLAT = 1;
294 LINEEND_SQUARE = 2;
295 LINEEND_ROUND = 3;
296 LINEJOIN_ERROR = (-1);
297 LINEJOIN_DEFAULT = 0;
298 LINEJOIN_BEVEL = 1;
299 LINEJOIN_ROUND = 2;
300 LINEJOIN_MITRE = 3;
301 CHDIRN_ERROR = (-1);
302 CHDIRN_DEFAULT = 0;
303 CHDIRN_LEFTRIGHT = 1;
304 CHDIRN_TOPBOTTOM = 2;
305 CHDIRN_RIGHTLEFT = 3;
306 CHDIRN_BOTTOMTOP = 4;
307 TA_NORMAL_HORIZ = $0001;
308 TA_LEFT = $0002;
309 TA_CENTER = $0003;
310 TA_RIGHT = $0004;
311 TA_STANDARD_HORIZ = $0005;
312 TA_NORMAL_VERT = $0100;
313 TA_TOP = $0200;
314 TA_HALF = $0300;
315 TA_BASE = $0400;
316 TA_BOTTOM = $0500;
317 TA_STANDARD_VERT = $0600;
318 CM_ERROR = (-1);
319 CM_DEFAULT = 0;
320 CM_MODE1 = 1;
321 CM_MODE2 = 2;
322 CM_MODE3 = 3;
323 MARKSYM_ERROR = (-1);
324 MARKSYM_DEFAULT = 0;
325 MARKSYM_CROSS = 1;
326 MARKSYM_PLUS = 2;
327 MARKSYM_DIAMOND = 3;
328 MARKSYM_SQUARE = 4;
329 MARKSYM_SIXPOINTSTAR = 5;
330 MARKSYM_EIGHTPOINTSTAR = 6;
331 MARKSYM_SOLIDDIAMOND = 7;
332 MARKSYM_SOLIDSQUARE = 8;
333 MARKSYM_DOT = 9;
334 MARKSYM_SMALLCIRCLE = 10;
335 MARKSYM_BLANK = 64;
336 CHS_OPAQUE = $0001;
337 CHS_VECTOR = $0002;
338 CHS_LEAVEPOS = $0008;
339 CHS_CLIP = $0010;
340 CHS_UNDERSCORE = $0200;
341 CHS_STRIKEOUT = $0400;
342 PRIM_LINE = 1;
343 PRIM_CHAR = 2;
344 PRIM_MARKER = 3;
345 PRIM_AREA = 4;
346 PRIM_IMAGE = 5;
347 LBB_COLOR = $0001;
348 LBB_BACK_COLOR = $0002;
349 LBB_MIX_MODE = $0004;
350 LBB_BACK_MIX_MODE = $0008;
351 LBB_WIDTH = $0010;
352 LBB_GEOM_WIDTH = $0020;
353 LBB_TYPE = $0040;
354 LBB_END = $0080;
355 LBB_JOIN = $0100;
356 CBB_COLOR = $0001;
357 CBB_BACK_COLOR = $0002;
358 CBB_MIX_MODE = $0004;
359 CBB_BACK_MIX_MODE = $0008;
360 CBB_SET = $0010;
361 CBB_MODE = $0020;
362 CBB_BOX = $0040;
363 CBB_ANGLE = $0080;
364 CBB_SHEAR = $0100;
365 CBB_DIRECTION = $0200;
366 CBB_TEXT_ALIGN = $0400;
367 CBB_EXTRA = $0800;
368 CBB_BREAK_EXTRA = $1000;
369 MBB_COLOR = $0001;
370 MBB_BACK_COLOR = $0002;
371 MBB_MIX_MODE = $0004;
372 MBB_BACK_MIX_MODE = $0008;
373 MBB_SET = $0010;
374 MBB_SYMBOL = $0020;
375 MBB_BOX = $0040;
376 ABB_COLOR = $0001;
377 ABB_BACK_COLOR = $0002;
378 ABB_MIX_MODE = $0004;
379 ABB_BACK_MIX_MODE = $0008;
380 ABB_SET = $0010;
381 ABB_SYMBOL = $0020;
382 ABB_REF_POINT = $0040;
383 IBB_COLOR = $0001;
384 IBB_BACK_COLOR = $0002;
385 IBB_MIX_MODE = $0004;
386 IBB_BACK_MIX_MODE = $0008;
387
388 TXTBOX_TOPLEFT = 0;
389 TXTBOX_BOTTOMLEFT = 1;
390 TXTBOX_TOPRIGHT = 2;
391 TXTBOX_BOTTOMRIGHT = 3;
392 TXTBOX_CONCAT = 4;
393 TXTBOX_COUNT = 5;
394 PVIS_ERROR = 0;
395 PVIS_INVISIBLE = 1;
396 PVIS_VISIBLE = 2;
397 RVIS_ERROR = 0;
398 RVIS_INVISIBLE = 1;
399 RVIS_PARTIAL = 2;
400 RVIS_VISIBLE = 3;
401
402 FONT_DEFAULT = 1;
403 FONT_MATCH = 2;
404 LCIDT_FONT = 6;
405 LCIDT_BITMAP = 7;
406 LCID_ALL = (-1);
407
408 FWEIGHT_DONT_CARE = 0;
409 FWEIGHT_ULTRA_LIGHT = 1;
410 FWEIGHT_EXTRA_LIGHT = 2;
411 FWEIGHT_LIGHT = 3;
412 FWEIGHT_SEMI_LIGHT = 4;
413 FWEIGHT_NORMAL = 5;
414 FWEIGHT_SEMI_BOLD = 6;
415 FWEIGHT_BOLD = 7;
416 FWEIGHT_EXTRA_BOLD = 8;
417 FWEIGHT_ULTRA_BOLD = 9;
418 FWIDTH_DONT_CARE = 0;
419 FWIDTH_ULTRA_CONDENSED = 1;
420 FWIDTH_EXTRA_CONDENSED = 2;
421 FWIDTH_CONDENSED = 3;
422 FWIDTH_SEMI_CONDENSED = 4;
423 FWIDTH_NORMAL = 5;
424 FWIDTH_SEMI_EXPANDED = 6;
425 FWIDTH_EXPANDED = 7;
426 FWIDTH_EXTRA_EXPANDED = 8;
427 FWIDTH_ULTRA_EXPANDED = 9;
428 FTYPE_ITALIC = $0001;
429 FTYPE_ITALIC_DONT_CARE = $0002;
430 FTYPE_OBLIQUE = $0004;
431 FTYPE_OBLIQUE_DONT_CARE = $0008;
432 FTYPE_ROUNDED = $0010;
433 FTYPE_ROUNDED_DONT_CARE = $0020;
434 QFA_PUBLIC = 1;
435 QFA_PRIVATE = 2;
436 QFA_ERROR =GPI_ALTERROR;
437 QF_PUBLIC = $0001;
438 QF_PRIVATE = $0002;
439 QF_NO_GENERIC = $0004;
440 QF_NO_DEVICE = $0008;
441
442 ROP_SRCCOPY = $00CC;
443 ROP_SRCPAINT = $00EE;
444 ROP_SRCAND = $0088;
445 ROP_SRCINVERT = $0066;
446 ROP_SRCERASE = $0044;
447 ROP_NOTSRCCOPY = $0033;
448 ROP_NOTSRCERASE = $0011;
449 ROP_MERGECOPY = $00C0;
450 ROP_MERGEPAINT = $00BB;
451 ROP_PATCOPY = $00F0;
452 ROP_PATPAINT = $00FB;
453 ROP_PATINVERT = $005A;
454 ROP_DSTINVERT = $0055;
455 ROP_ZERO = $0000;
456 ROP_ONE = $00FF;
457 BBO_OR = 0;
458 BBO_AND = 1;
459 BBO_IGNORE = 2;
460 BBO_PAL_COLORS = 4;
461 BBO_NO_COLOR_INFO = 8;
462 FF_BOUNDARY = 0;
463 FF_SURFACE = 1;
464 HBM_ERROR = -1;
465
466 {Bitmaps}
467 CBM_INIT = $0004;
468 BMB_ERROR = (-1);
469
470 {Regions}
471 CRGN_OR = 1;
472 CRGN_COPY = 2;
473 CRGN_XOR = 4;
474 CRGN_AND = 6;
475 CRGN_DIFF = 7;
476 RECTDIR_LFRT_TOPBOT = 1;
477 RECTDIR_RTLF_TOPBOT = 2;
478 RECTDIR_LFRT_BOTTOP = 3;
479 RECTDIR_RTLF_BOTTOP = 4;
480 RGN_ERROR = 0;
481 RGN_NULL = 1;
482 RGN_RECT = 2;
483 RGN_COMPLEX = 3;
484 PRGN_ERROR = 0;
485 PRGN_OUTSIDE = 1;
486 PRGN_INSIDE = 2;
487 RRGN_ERROR = 0;
488 RRGN_OUTSIDE = 1;
489 RRGN_PARTIAL = 2;
490 RRGN_INSIDE = 3;
491 EQRGN_ERROR = 0;
492 EQRGN_NOTEQUAL = 1;
493 EQRGN_EQUAL = 2;
494 HRGN_ERROR = -1;
495
496 {Metafiles}
497 PMF_SEGBASE = 0;
498 PMF_LOADTYPE = 1;
499 PMF_RESOLVE = 2;
500 PMF_LCIDS = 3;
501 PMF_RESET = 4;
502 PMF_SUPPRESS = 5;
503 PMF_COLORTABLES = 6;
504 PMF_COLORREALIZABLE = 7;
505 PMF_DEFAULTS = 8;
506 PMF_DELETEOBJECTS = 9;
507 RS_DEFAULT = 0;
508 RS_NODISCARD = 1;
509 LC_DEFAULT = 0;
510 LC_NOLOAD = 1;
511 LC_LOADDISC = 3;
512 LT_DEFAULT = 0;
513 LT_NOMODIFY = 1;
514 LT_ORIGINALVIEW = 4;
515 RES_DEFAULT = 0;
516 RES_NORESET = 1;
517 RES_RESET = 2;
518 SUP_DEFAULT = 0;
519 SUP_NOSUPPRESS = 1;
520 SUP_SUPPRESS = 2;
521 CTAB_DEFAULT = 0;
522 CTAB_NOMODIFY = 1;
523 CTAB_REPLACE = 3;
524 CTAB_REPLACEPALETTE = 4;
525 CREA_DEFAULT = 0;
526 CREA_REALIZE = 1;
527 CREA_NOREALIZE = 2;
528 CREA_DOREALIZE = 3;
529 DDEF_DEFAULT = 0;
530 DDEF_IGNORE = 1;
531 DDEF_LOADDISC = 3;
532 DOBJ_DEFAULT = 0;
533 DOBJ_NODELETE = 1;
534 DOBJ_DELETE = 2;
535 RSP_DEFAULT = 0;
536 RSP_NODISCARD = 1;
537
538 {Polygons}
539 POLYGON_NOBOUNDARY = 0;
540 POLYGON_BOUNDARY = $0001;
541 POLYGON_ALTERNATE = 0;
542 POLYGON_WINDING = $0002;
543 POLYGON_EXCL = 0;
544 POLYGON_INCL = $0008;
545
546 type SizeL=record
547 cx,cy:longint;
548 end;
549 PSizeL=^SizeL;
550 TSizeL=SizeL;
551
552 MatrixLF=record
553 fxm11:longint;
554 fxm12:longint;
555 lm13:longint;
556 fxm21:longint;
557 fxm22:longint;
558 lm23:longint;
559 lm31:longint;
560 lm32:longint;
561 lm33:longint;
562 end;
563 PMatrixLF=^MatrixLF;
564 TMatrixLF=MatrixLF;
565
566 ArcParams=record
567 lp,lq,lr,ls:longint;
568 end;
569 PArcParams=^ArcParams;
570 TArcParams=ArcParams;
571
572 SizeF=record
573 cx,cy:longint;
574 end;
575 PSizeF=^SizeF;
576 TSizeF=SizeF;
577
578 GradientL=record
579 x,y:longint;
580 end;
581 PGradientL=^GradientL;
582 TGradientL=GradientL;
583
584 LineBundle=record
585 lColor:longint;
586 lBackColor:longint;
587 usMixMode:word;
588 usBackMixMode:word;
589 fxWidth:longint;
590 lGeomWidth:longint;
591 usType:word;
592 usEnd:word;
593 usJoin:word;
594 usReserved:word;
595 end;
596 PLineBundle=^LineBundle;
597 TLineBundle=LineBundle;
598
599 CharBundle=record
600 lColor:longint;
601 lBackColor:longint;
602 usMixMode:word;
603 usBackMixMode:word;
604 usSet:word;
605 usPrecision:word;
606 sizfxCell:sizef;
607 ptlAngle:pointl;
608 ptlShear:pointl;
609 usDirection:word;
610 usTextAlign:word;
611 fxExtra:longint;
612 fxBreakExtra:longint;
613 end;
614 PCharBundle=^CharBundle;
615 TCharBundle=CharBundle;
616
617 MarkerBundle=record
618 lColor:longint;
619 lBackColor:longint;
620 usMixMode:word;
621 usBackMixMode:word;
622 usSet:word;
623 usSymbol:word;
624 sizFxCell:SizeF;
625 end;
626 PMarkerBundle=^MarkerBundle;
627 TMarkerBundle=MarkerBundle;
628
629 AreaBundle=record
630 lColor:longint;
631 lBackColor:longint;
632 usMixMode:word;
633 usBackMixMode:word;
634 usSet:word;
635 usSymbol:word;
636 ptlRefPoint:pointl;
637 end;
638 PAreaBundle=^AreaBundle;
639 TAreaBundle=AreaBundle;
640
641 ImageBundle=record
642 lColor:longint;
643 lBackColor:longint;
644 usMixMode:word;
645 usBackMixMode:word;
646 end;
647 PImageBundle=^ImageBundle;
648 TImageBundle=ImageBundle;
649
650 KerningPairs=record
651 sFirstChar:integer;
652 sSecondChar:integer;
653 lKerningAmount:longint;
654 end;
655 PKerningPairs=^KerningPairs;
656 TKerningPairs=KerningPairs;
657
658 FaceNameDesc=record
659 usSize:word;
660 usWeightClass:word;
661 usWidthClass:word;
662 usReserved:word;
663 flOptions:cardinal;
664 end;
665 PFaceNameDesc=^FaceNameDesc;
666 TFaceNameDesc=FaceNameDesc;
667
668 FFDescs=array[0..1,0..FaceSize-1] of char;
669 PFFDescs=^FFDescs;
670 TFFDescs = FFDescs;
671
672 FFDescs2=record
673 cbLength:cardinal;
674 cbFacenameOffset:cardinal;
675 abFamilyName:array[0..1-1] of byte;
676 end;
677 PFFDescs2=^FFDescs2;
678 TFFDescs2=FFDescs2;
679
680 RgnRect=record
681 ircStart:cardinal;
682 crc:cardinal;
683 crcReturned:cardinal;
684 ulDirection:cardinal;
685 end;
686 PRgnRect=^RgnRect;
687 TRgnRect=RgnRect;
688
689 Polygon=record
690 ulPoints:cardinal;
691 aPointl:Ppointl;
692 end;
693 PPolygon=^Polygon;
694 TPolygon=Polygon;
695
696 Polyset=record
697 ulPolys:cardinal;
698 aPolygon:array[0..1-1] of TPolygon;
699 end;
700 PPolyset=^Polyset;
701 TPolyset=Polyset;
702
703 // ===========================================================================
704 //*
705 //* The orders fall into 4 categories :-
706 //*
707 //* 1) 1-byte orders
708 //*
709 //* 2) 2-byte orders - second byte contains the value
710 //*
711 //* 3) Long orders - second byte gives the order length, subsequent bytes
712 //* contain the values (up to 256 bytes long)
713 //*
714 //* 4) Very long orders - third and fourth bytes gives the order length,
715 //* subsequent bytes contain the values (up to 64K long)
716 //*
717 //* ===========================================================================
718
719 //#pragma pack(1) /* pack on byte boundary */
720
721 //***************************************************************************\
722 //*
723 //* Miscellaneous structures used in this file
724 //*
725 //***************************************************************************/
726
727 // form of RECTL with shorts instead of longs
728 type
729 RECT1S=record // rcs
730 xLeft: Integer;
731 yBottom: Integer;
732 xRight: Integer;
733 yTop: Integer;
734 end;
735
736 // form of POINTL with 1 byte offsets instead of longs
737 ODPOINT=record // odpt
738 dx: Char;
739 dy: Char;
740 end;
741
742 // form of SIZEL with shorts instead of longs
743 SIZES=record // sizs
744 cx: Integer;
745 cy: Integer;
746 end;
747
748 // unsigned two-byte swapped integer
749 SWPUSHORT=record // swpus
750 HiByte: Byte;
751 LoByte: Byte;
752 end;
753
754 //***************************************************************************\
755 //*
756 //* 1-byte orders
757 //*
758 //***************************************************************************/
759
760 // macro to tell whether this is a 1-byte order
761 {$define BYTE_ORDER(oc):=((oc)=OCODE_GNOP1 or (oc)=OCODE_GESD)}
762
763 // 1-byte order codes
764 const
765 OCODE_GNOP1 =$00; // No-operation
766 OCODE_GESD =$FF; // End symbol definition
767
768 //***************************************************************************\
769 //
770 // 2-byte orders
771 //
772 //***************************************************************************/
773
774 // definitions to help determine whether an order code is a 2-byte order
775 const
776 OCODE2_1 =$80;
777 OCODE2_2 =$88;
778
779 {$define SHORT_ORDER(oc):=((((oc) xor OCODE2_1) and OCODE2_2)=OCODE2_2)}
780
781 // General 2-byte order structure
782 type
783 ORDER=record // ord
784 idCode: Byte;
785 uchData: Byte;
786 end;
787
788 // 2-byte order codes
789 const
790 OCODE_GBAR =$68; // Begin area
791 OCODE_GCFIG =$7D; // Close figure
792 OCODE_GEEL =$49; // End element
793 OCODE_GEPTH =$7F; // End path
794 OCODE_GEPROL =$3E; // End prologue
795 OCODE_GPOP =$3F; // Pop
796 OCODE_GSBMX =$0D; // Set background mix
797 OCODE_GPSBMX =$4D; // Push & set b/g mix
798 OCODE_GSCD =$3A; // Set char direction
799 OCODE_GPSCD =$7A; // Push & set char direction
800 OCODE_GSCR =$39; // Set char precision
801 OCODE_GPSCR =$79; // Push & set char precision
802 OCODE_GSCS =$38; // Set char set
803 OCODE_GPSCS =$78; // Push & set char set
804 OCODE_GSCOL =$0A; // Set color
805 OCODE_GPSCOL =$4A; // Push & set color
806 OCODE_GSLE =$1A; // Set line end
807 OCODE_GPSLE =$5A; // Push & set line end
808 OCODE_GSLJ =$1B; // Set line join
809 OCODE_GPSLJ =$5B; // Push & set line join
810 OCODE_GSLT =$18; // Set line type
811 OCODE_GPSLT =$58; // Push & set line type
812 OCODE_GSLW =$19; // Set line width
813 OCODE_GPSLW =$59; // Push & set line width
814 OCODE_GSMP =$3B; // Set marker precision
815 OCODE_GPSMP =$7B; // Push & set marker precision
816 OCODE_GSMS =$3C; // Set marker set
817 OCODE_GPSMS =$7C; // Push & set marker set
818 OCODE_GSMT =$29; // Set marker symbol
819 OCODE_GPSMT =$69; // Push & set marker symbol
820 OCODE_GSMX =$0C; // Set mix
821 OCODE_GPSMX =$4C; // Push & set mix
822 OCODE_GSPS =$08; // Set pattern set
823 OCODE_GPSPS =$48; // Push & set pattern set
824 OCODE_GSPT =$28; // Set pattern symbol
825 OCODE_GPSPT =$09; // Push & set pattern symbol
826
827 // constants for 2-byte orders
828
829 // Begin area
830 const
831 GBAR_RESERVED =$80;
832 GBAR_BOUNDARY =$C0;
833 GBAR_NOBOUNDARY =$80;
834 GBAR_WINDING =$A0;
835 GBAR_ALTERNATE =$80;
836
837 // Set Character Precision
838 const
839 GSCR_PRECISION =$0F;
840
841 //***************************************************************************\
842 //*
843 //* Long orders
844 //*
845 //***************************************************************************/
846
847 // definitions to help determine whether an order code is a long order
848 const
849 OCODE_VLONG =$FE;
850
851 {$define LONG_ORDER(oc):=(not((oc)=OCODE_VLONG or BYTE_ORDER(oc) or SHORT_ORDER(oc)))}
852
853 // long order structure
854 const
855 LORDER_ML=253;
856
857 type
858 LORDER=record // lord
859 idCode: Byte;
860 uchLength: Byte;
861 uchData: Array[0..LORDER_ML-1] of Byte;
862 end;
863
864 // Long orders for which the length of data is normally zero
865 const
866 OCODE_GEAR =$60; // End Area
867 OCODE_GEIMG =$93; // End Image
868
869 // Long orders for which the data is contained in a type already defined
870
871 // Character String
872 const
873 OCODE_GCCHST = $83; // char string at curr posn
874 GCCHST_MC = 255; // Max len of string in bytes
875
876 OCODE_GCHST = $C3; // char string at given pos
877 GCHST_SMC = 251; // Max len of string (S)
878 GCHST_LMC = 247; // Max len of string (L)
879
880 // Character String Move
881 OCODE_GCCHSTM = $B1; // char string move at c.p.
882 GCCHSTM_MC = 255; // Max len of string in byte
883
884 OCODE_GCHSTM = $F1; // char string move at g.p.
885 GCHSTM_SMC = 251; // Max len of string (S)
886 GCHSTM_LMC = 247; // Max len of string (L)
887
888 // Comment
889 OCODE_GCOMT = $01; // Comment
890 GCOMT_ML = 255; // Maximum len of comment data
891
892 // Image
893 OCODE_GIMD = $92; // Image data
894 GIMD_ML = 255; // Maximum len of image data
895
896 // Full Arc
897 OCODE_GCFARC = $87; // full arc at current posn
898 OCODE_GFARC = $C7; // full arc at given posn
899
900 // Label
901 OCODE_GLABL = $D3; // Label
902
903 // Set Current Position
904 OCODE_GSCP = $21; // Set current position
905 OCODE_GPSCP = $61; // Push and set curr posn
906
907 // Bezier spline
908 OCODE_GCBEZ = $A5; // Bezier spline at curr pos
909 GCBEZ_SMB = 21; // Max number of splines (S)
910 GCBEZ_LMB = 10; // Max number of splines (L)
911
912 OCODE_GBEZ = $E5; // Bezier spline at given pos
913 GBEZ_SMB = 20; // Max number of splines (S)
914 GBEZ_LMB = 10; // Max number of splines (L)
915
916 // Fillet
917 OCODE_GCFLT = $85; // fillet at current posn
918 GCFLT_SMP = 63; // Max number of points (S)
919 GCFLT_LMP = 31; // Max number of points (L)
920
921 OCODE_GFLT = $C5; // fillet at given position
922 GFLT_SMP = 62; // Max number of points (S)
923 GFLT_LMP = 30; // Max number of points (L)
924
925 // Polyline
926 OCODE_GCLINE = $81; // polyline at current posn
927 GCLINE_SMP = 63; // Max number of points (S)
928 GCLINE_LMP = 31; // Max number of points (L)
929
930 OCODE_GLINE = $C1; // polyline at given posn
931 GLINE_SMP = 62; // Max number of points (S)
932 GLINE_LMP = 30; // Max number of points (L)
933
934 // Polymarker
935 OCODE_GCMRK = $82; // marker at current posn
936 GCMRK_SMP = 63; // Max number of points (S)
937 GCMRK_LMP = 31; // Max number of points (L)
938
939 OCODE_GMRK = $C2; // marker at given posn
940 GMRK_SMP = 62; // Max number of points (S)
941 GMRK_LMP = 30; // Max number of points (L)
942
943 // Relative Line
944 OCODE_GCRLINE =$A1; // Relative line at curr pos
945 GCRLINE_MP =127; // Max number of points
946
947 OCODE_GRLINE = $E1; // Relative line at givn pos
948 GRLINE_SMP = 125; // Max number of points (S)
949 GRLINE_LMP = 123; // Max number of points (L)
950
951 // Set Background Color
952 OCODE_GSBCOL = $25; // Set background color
953 OCODE_GPSBCOL = $65; // Push and set b/g color
954
955 // Set Extended Color
956 OCODE_GSECOL = $26; // Set extended color
957 OCODE_GPSECOL = $66; // Push and set ext color
958
959 // Extended Color values
960 SECOL_DEFAULT0 =$0000;
961 SECOL_DEFAULT1 =$FF00;
962 SECOL_NEUTRAL =$FF07;
963 SECOL_RESET =$FF08;
964
965 // Set Character Angle
966 OCODE_GSCA = $34; // Set character angle
967 OCODE_GPSCA = $74; // Push and set char angle
968
969 // Set Character Shear
970 OCODE_GSCH = $35; // Set character shear
971 OCODE_GPSCH = $75; // Push and set char shear
972
973 // Set Fractional Line Width
974 OCODE_GSFLW = $11; // Set fractional line width
975 OCODE_GPSFLW = $51; // Push and set frac l width
976
977 // Set Pick Identifier
978 OCODE_GSPIK = $43; // Set pick identifier
979 OCODE_GPSPIK = $23; // Push and set pick id
980
981
982 // Long Orders for which a structure can be defined for the data
983
984 // Arc
985 OCODE_GCARC = $86; // Arc at Current Position
986 OCODE_GARC = $C6; // Arc at Given Position
987
988 type
989 ORDERS_GCARC=record // osgcarc
990 ptInter: POINTS;
991 ptEnd: POINTS;
992 end;
993
994 ORDERL_GCARC=record // olgcarc
995 ptInter: POINTL;
996 ptEnd: POINTL;
997 end;
998
999 // Begin Element
1000 const
1001 OCODE_GBEL = $D2; // Begin Element
1002
1003 GBEL_DL = 251;
1004
1005 type
1006 ORDER_GBEL=record // ogbel
1007 lElementType: Longint;
1008 achDesc: Array[0..GBEL_DL-1] of Char;
1009 end;
1010
1011 // Begin Image
1012 const
1013 OCODE_GCBIMG = $91; // Begin Image at curr posn
1014 OCODE_GBIMG = $D1; // Begin Image at given posn
1015
1016 type
1017 ORDER_GCBIMG=record // ogbimg
1018 uchFormat: Byte;
1019 uchReserved: Byte;
1020 cx: SWPUSHORT;
1021 cy: SWPUSHORT;
1022 end;
1023
1024 // Begin Path
1025 const
1026 OCODE_GBPTH = $D0; // Begin Path
1027
1028 type
1029 ORDER_GBPTH=record // ogbpth
1030 usReserved: Word;
1031 idPath: Longint;
1032 end;
1033
1034 // Box
1035 const
1036 OCODE_GCBOX =$80; // Box at current position
1037 OCODE_GBOX =$C0; // Box at given position
1038
1039 type
1040 ORDERS_GCBOX=record // osgcbox
1041 fbFlags: Byte;
1042 uchReserved: Byte;
1043 ptCorner: POINTS;
1044 hAxis: Integer;
1045 vAxis: Integer;
1046 end;
1047
1048 ORDERL_GCBOX=record // olgcbox
1049 fbFlags: Byte;
1050 uchReserved: Byte;
1051 ptCorner: POINTL;
1052 hAxis: Longint;
1053 vAxis: Longint;
1054 end;
1055
1056 const
1057 GCBOX_FILL =$40;
1058 GCBOX_BOUNDARY =$20;
1059
1060 // Call Segment
1061 OCODE_GCALLS =$07; // call segment
1062
1063 type
1064 ORDER_GCALLS=record // ogcalls
1065 sReserved: Word;
1066 idSegment: Longint;
1067 end;
1068
1069 // Fill Path
1070 const
1071 OCODE_GFPTH =$D7; // Fill path
1072
1073 type
1074 ORDER_GFPTH=record // ogfpth
1075 fbFlags: Byte;
1076 uchReserved: Byte;
1077 idPath: Longint;
1078 end;
1079
1080 const
1081 GFPTH_ALTERNATE =$00;
1082 GFPTH_WINDING =$40;
1083 GFPTH_MODIFY =$20;
1084
1085 // Outline Path
1086 OCODE_GOPTH =$D4; // Outline Path
1087
1088 type
1089 ORDER_GOPTH=record // ogopth
1090 fbFlags: Byte;
1091 uchReserved: Byte;
1092 idPath: Longint;
1093 end;
1094
1095 // Modify Path
1096 const
1097 OCODE_GMPTH =$D8; // modify path
1098
1099 type
1100 ORDER_GMPTH=record // ogmpth
1101 uchMode: Byte;
1102 uchReserved: Byte;
1103 idPath: Longint;
1104 end;
1105
1106 const
1107 GMPTH_STROKE =$06;
1108
1109 // Partial Arc
1110 OCODE_GCPARC =$A3; // Partial arc at curr posn
1111 OCODE_GPARC =$E3; // Partial arc at given posn
1112
1113 type
1114 ORDERS_GCPARC=record // osgcparc
1115 ptCenter: POINTS;
1116 ufx88Multiplier: FIXED88;
1117 usStartAngle: Longint;
1118 usSweepAngle: Longint;
1119 end;
1120
1121 ORDERL_GCPARC=record // olgcparc
1122 ptCenter: POINTL;
1123 ufxMultiplier: FIXED;
1124 usStartAngle: Longint;
1125 usSweepAngle: Longint;
1126 end;
1127
1128 // Set Clip Path
1129 const
1130 OCODE_GSCPTH =$B4; // Set clip path
1131
1132 type
1133 ORDER_GSCPTH=record // ogscpth
1134 fbFlags: Byte;
1135 uchReserved: Byte;
1136 idPath: Longint;
1137 end;
1138
1139 const
1140 GSCPTH_ALTERNATE =$00;
1141 GSCPTH_WINDING =$40;
1142 GSCPTH_RESET =$00;
1143 GSCPTH_INTERSECT =$20;
1144
1145 // Set Arc Parameters
1146 OCODE_GSAP =$22; // Set arc parameters
1147 OCODE_GPSAP =$62; // Push and set arc params
1148
1149 type
1150 ORDERS_GSAP=record // osgsap
1151 p: Integer;
1152 q: Integer;
1153 r: Integer;
1154 s: Integer;
1155 end;
1156
1157 ORDERL_GSAP=record // olgsap
1158 p: Longint;
1159 q: Longint;
1160 r: Longint;
1161 s: Longint;
1162 end;
1163
1164 // Set Background Indexed Color
1165 const
1166 OCODE_GSBICOL =$A7; // Set b/g indexed color
1167 OCODE_GPSBICOL =$E7; // Push and set b/g ind color
1168 OCODE_GSICOL =$A6; // Set indexed color
1169 OCODE_GPSICOL =$E6; // Push and set indexd color
1170
1171
1172 type
1173 ORDER_GSBICOL=record // ogbicol
1174 fbFlags: Byte;
1175 auchColor: Array[0..3-1] of Byte;
1176 end;
1177
1178 const
1179 SICOL_SPECIFY =$00;
1180 SICOL_SPECIAL =$40;
1181 SICOL_DEFAULT =$80;
1182 SICOL_BLACK =1;
1183 SICOL_WHITE =2;
1184 SICOL_ONES =4;
1185 SICOL_ZEROES =5;
1186
1187 // Set Character Cell
1188 OCODE_GSCC =$33; // Set character cell
1189 OCODE_GPSCC =$03; // Push and set char cell
1190
1191 type
1192 ORDERS_GSCC=record // osgscc
1193 cxInt: Integer;
1194 cyInt: Integer;
1195 cxFract: Word;
1196 cyFract: Word;
1197 fbFlags: Byte;
1198 uchReserved: Byte;
1199 end;
1200
1201 ORDERL_GSCC=record // olgscc
1202 cxInt: Longint;
1203 cyInt: Longint;
1204 cxFract: Word;
1205 cyFract: Word;
1206 fbFlags: Byte;
1207 uchReserved: Byte;
1208 end;
1209
1210 const
1211 GSCC_ZERODEF =$00;
1212 GSCC_ZEROZERO =$80;
1213
1214 // Set Marker Cell
1215 OCODE_GSMC =$37; // Set marker cell
1216 OCODE_GPSMC =$77; // Push and set marker cell
1217
1218 type
1219 ORDERS_GSMC=record // osgsmc
1220 cx: Integer;
1221 cy: Integer;
1222 fbFlags: Byte;
1223 uchReserved: Byte;
1224 end;
1225
1226 ORDERL_GSMC=record // olgsmc
1227 cx: Longint;
1228 cy: Longint;
1229 fbFlags: Byte;
1230 uchReserved: Byte;
1231 end;
1232
1233 const
1234 GSMC_ZERODEF =$00;
1235 GSMC_ZEROZERO =$80;
1236
1237 // Set Pattern Reference Point
1238 OCODE_GSPRP =$A0; // Set pattern ref point
1239 OCODE_GPSPRP =$E0; // Push and set patt ref pt
1240
1241 type
1242 ORDERS_GSPRP=record // osgsprp
1243 fbFlags: Byte;
1244 uchReserved: Byte;
1245 ptPos: POINTS;
1246 end;
1247
1248 ORDERL_GSPRP=record // olgsprp
1249 fbFlags: Byte;
1250 uchReserved: Byte;
1251 ptPos: POINTL;
1252 end;
1253
1254 const
1255 GSPRP_DEFAULT =$80;
1256 GSPRP_SPECIFY =$00;
1257
1258
1259 // Set Individual Attribute
1260 OCODE_GSIA =$14; // Set individual attribute
1261 OCODE_GPSIA =$54; // Push and set ind attr
1262
1263 GSIA_VL=3;
1264
1265 type
1266 ORDER_GSIA=record // ogsia
1267 uchAttrType: Byte;
1268 uchPrimType: Byte;
1269 fbFlags: Byte;
1270 auchValue: Array[0..GSIA_VL-1] of Byte;
1271 end;
1272
1273 const
1274 GSIA_COLOR =$01;
1275 GSIA_BCOLOR =$02;
1276 GSIA_MIX =$03;
1277 GSIA_BMIX =$04;
1278 GSIA_LINE =$01;
1279 GSIA_CHAR =$02;
1280 GSIA_MARKER =$03;
1281 GSIA_PATTERN =$04;
1282 GSIA_IMAGE =$05;
1283 GSIA_SPECIFY =$00;
1284 GSIA_SPECIAL =$40;
1285 GSIA_DEFAULT =$80;
1286 GSIA_BLACK =1;
1287 GSIA_WHITE =2;
1288 GSIA_ONES =4;
1289 GSIA_ZEROES =5;
1290
1291
1292 // Set Model /Viewing Transform
1293 OCODE_GSTM =$24; // Set model transform
1294 OCODE_GPSTM =$64; // Push and set model tfm
1295
1296 OCODE_GSTV =$31; // Set Viewing Transform
1297
1298 GSTM_ML =16;
1299
1300 type
1301 ORDERS_GSTM=record // osgstm
1302 uchReserved: Byte;
1303 fbFlags: Byte;
1304 fsMask: Word;
1305 asMatrix: Array[0..GSTM_ML-1] of Integer;
1306 end;
1307
1308 ORDERL_GSTM=record // olgstm
1309 uchReserved: Byte;
1310 fbFlags: Byte;
1311 fsMask: Word;
1312 alMatrix: Array[0..GSTM_ML-1] of Longint;
1313 end;
1314
1315 const
1316 GSTM_M11 =$8000;
1317 GSTM_M12 =$4000;
1318 GSTM_M13 =$2000;
1319 GSTM_M14 =$1000;
1320 GSTM_M21 =$0800;
1321 GSTM_M22 =$0400;
1322 GSTM_M23 =$0200;
1323 GSTM_M24 =$0100;
1324 GSTM_M31 =$0080;
1325 GSTM_M32 =$0040;
1326 GSTM_M33 =$0020;
1327 GSTM_M34 =$0010;
1328 GSTM_M41 =$0008;
1329 GSTM_M42 =$0004;
1330 GSTM_M43 =$0002;
1331 GSTM_M44 =$0001;
1332
1333 GSTM_UNITY =$00;
1334 GSTM_AFTER =$01;
1335 GSTM_BEFORE =$02;
1336 GSTM_OVERWRITE =$03;
1337
1338 GSTV_OVERWRITE =$00;
1339 GSTV_AFTER =$04;
1340
1341 // Set Segment Boundary, Viewing Window
1342 OCODE_GSSB =$32; // Set segment boundary
1343 OCODE_GSVW =$27; // Set viewing window
1344 OCODE_GPSVW =$67; // Push and set view window
1345
1346 GSSB_ML =4;
1347
1348 type
1349 ORDERS_GSSB=record // osgssb
1350 fbFlags: Byte;
1351 fbMask: Byte;
1352 alMatrix: Array[0..GSSB_ML-1] of Integer;
1353 end;
1354
1355 ORDERL_GSSB=record // olgssb
1356 fbFLags: Byte;
1357 fbMask: Byte;
1358 alMatrix: Array[0..GSSB_ML-1] of Longint;
1359 end;
1360
1361 const
1362 GSSB_XLEFT =$20;
1363 GSSB_XRIGHT =$10;
1364 GSSB_YBOTTOM =$08;
1365 GSSB_YTOP =$04;
1366
1367 GSVW_INTERSECT =$00;
1368 GSVW_REPLACE =$80;
1369
1370 // Set Segment Characteristics
1371 OCODE_GSGCH =$04; // Set segment characteristics
1372
1373 GSGCH_ML =254;
1374
1375 type
1376 ORDER_GSGCH=record // ogsgch
1377 uchIdent: Byte;
1378 auchData: Array[0..GSGCH_ML-1] of Byte;
1379 end;
1380
1381 // Set Stroke Line Width
1382 const
1383 OCODE_GSSLW =$15; // Set stroke line width
1384 OCODE_GPSSLW =$55; // Push and set strk l width
1385
1386 type
1387 ORDERS_GSSLW=record // osgsslw
1388 fbFlags: Byte;
1389 uchReserved: Byte;
1390 LineWidth: Integer;
1391 end;
1392
1393 type
1394 ORDERL_GSSLW=record // olgsslw
1395 fbFlags: Byte;
1396 uchReserved: Byte;
1397 LineWidth: Longint;
1398 end;
1399
1400 const
1401 GSSLW_DEFAULT =$80;
1402 GSSLW_SPECIFY =$00;
1403
1404 // Sharp Fillet at Current Position
1405 OCODE_GCSFLT =$A4; // Sharp fillet at curr pos
1406 OCODE_GSFLT =$E4; // Sharp fillet at given pos
1407
1408 GCSFLT_SMF =21;
1409 GSFLT_SMF =20;
1410
1411 type
1412 ORDERS_GCSFLT=record // osgcsflt
1413 apt: Array[0..2*GCSFLT_SMF-1] of POINTS;
1414 afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED;
1415 end;
1416
1417 const
1418 GCSFLT_LMF = 12;
1419 GSFLT_LMF = 12;
1420
1421 type
1422 ORDERL_GCSFLT=record // olgcsflt
1423 apt: Array[0..2*GCSFLT_SMF-1] of POINTL;
1424 afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED;
1425 end;
1426
1427 // Bitblt
1428 const
1429 OCODE_GBBLT =$D6; // Bitblt
1430
1431 type
1432 ORDERS_GBBLT=record // osgbblt
1433 fsFlags: Word;
1434 usMix: Word;
1435 hbmSrc: HBITMAP;
1436 lOptions: Longint;
1437 rcsTargetRect: RECT1S;
1438 rclSourceRect: RECTL;
1439 end;
1440
1441 ORDERL_GBBLT=record // olgbblt
1442 fsFlags: Word;
1443 usMix: Word;
1444 hbmSrc: HBITMAP;
1445 lOptions: Longint;
1446 rclTargetRect: RECTL;
1447 rclSourceRect: RECTL;
1448 end;
1449
1450 // Char & break extra
1451 const
1452 OCODE_GSCE =$17; // Set char extra
1453 OCODE_GPSCE =$57; // Push and set char extra
1454 OCODE_GSCBE =$05; // Set char break extra
1455 OCODE_GPSCBE =$45; // Push and set char break extra
1456
1457 type
1458 ORDER_GSCBE=record // osgsce
1459 fbFlags: Byte;
1460 uchReserved: Byte;
1461 ufxextra: FIXED;
1462 end;
1463 ORDER_GSCE=ORDER_GSCBE;
1464 ORDER_GPSCE=ORDER_GSCBE;
1465 ORDER_GPSCBE=ORDER_GSCBE;
1466
1467 // Escape
1468 const
1469 OCODE_GESCP =$D5; // Escape
1470
1471
1472 //* type describes type of escape order, identifier gives the escape
1473 //* order if the type is registered
1474 const
1475 GESCP_ML = 253;
1476
1477 type
1478 ORDER_GESCP=record // ogescp
1479 uchType: Byte;
1480 uchIdent: Byte;
1481 auchData: Array[0..GESCP_ML-1] of Byte; // Escape data
1482 end;
1483
1484 const
1485 GESCP_REG =$80; // identifier is registered
1486
1487 // Escape (Bitblt)
1488 const
1489 GEBB_REGID =$02; // uchIdent - Bitblt
1490
1491 ETYPE_GEBB =$800200D5;
1492
1493 GEBB_LMP =29;
1494
1495 type
1496 ORDERL_GEBB=record // olgebb
1497 fbFlags: Byte;
1498 usMix: Word;
1499 cPoints: Byte;
1500 hbmSrc: HBITMAP;
1501 lReserved: Longint;
1502 lOptions: Longint;
1503 aptPoints: Array[0..GEBB_LMP-1] of POINTL;
1504 end;
1505
1506 // Escape (Set Pel)
1507 const
1508 GEPEL_REGID =$01; // uchIdent - Set Pel
1509
1510 ETYPE_GEPEL =$800100D5;
1511
1512 // Escape (DrawBits)
1513 GEDB_REGID =$04; // uchIdent - DrawBits
1514
1515 ETYPE_GEDB =$800400D5;
1516
1517 type
1518 ORDERL_GEDB=record // olgedb
1519 fsFlags: Word;
1520 usMix: Word;
1521 pBits: Pointer;
1522 pbmi: PBITMAPINFO2;
1523 lOptions: Longint;
1524 rclTargetRect: RECTL;
1525 rclSourceRect: RECTL;
1526 end;
1527
1528 // Escape (FloodFill)
1529 const
1530 GEFF_REGID =$03; // uchIdent - FloodFill
1531
1532 ETYPE_GEFF =$800300D5;
1533
1534 type
1535 ORDERL_GEFF=record // olgeff
1536 fsFlags: Byte;
1537 auchColor: Array[0..3-1] of Byte;
1538 end;
1539
1540 // Element Types for attribute bundles
1541 const
1542 ETYPE_LINEBUNDLE =$0000FD01;
1543 ETYPE_CHARBUNDLE =$0000FD02;
1544 ETYPE_MARKERBUNDLE =$0000FD03;
1545 ETYPE_AREABUNDLE =$0000FD04;
1546 ETYPE_IMAGEBUNDLE =$0000FD05;
1547
1548 //***************************************************************************\
1549 //*
1550 //* Very long orders
1551 //*
1552 //***************************************************************************/
1553
1554 // macro to tell whether this is a very long order
1555 {$define VLONG_ORDER(oc):=((oc)=OCODE_VLONG)}
1556
1557 // Very long order structure
1558 const
1559 VORDER_ML =65531;
1560
1561 type
1562 VORDER=record // vord
1563 idCode: Byte;
1564 uchQualifier: Byte;
1565 uchLength: SWPUSHORT;
1566 uchData: Array[0..VORDER_ML-1] of Byte;
1567 end;
1568
1569 // Character String Extended
1570 const
1571 OCODEQ_GCCHSTE =$B0; // Qualifier - current posn
1572 OCODEQ_GCHSTE =$F0; // Qualifier - given position
1573 OCODEQ_GTCHSPA =$F4; // Tabbed Char String At
1574
1575 ETYPE_GCCHSTE =$0000FEB0;
1576 ETYPE_GCHSTE =$0000FEF0;
1577
1578 type
1579 ORDERS_GCCHSTE=record // osgcchste
1580 fbFlags: Byte;
1581 uchReserved: Byte;
1582 ptRect: Array[0..2-1] of POINTS;
1583 cchString: SWPUSHORT;
1584 achString: Array[0..1-1] of Char;
1585 adx: Array[0..1-1] of Integer;
1586 end;
1587
1588 ORDERL_GCCHSTE=record // olgcchste
1589 fbFlags: Byte;
1590 uchReserved: Byte;
1591 ptRect: Array[0..2-1] of POINTL;
1592 cchString: SWPUSHORT;
1593 achString: Array[0..1-1] of Char;
1594 adx: Array[0..1-1] of Longint;
1595 end;
1596
1597 ORDERL_GTCHSPA=record // olgcchspa
1598 fbFlags: Byte;
1599 uchReserved: Byte;
1600 ptRect: Array[0..2-1] of POINTL;
1601 cchString: SWPUSHORT;
1602 achString: Array[0..1-1] of Char;
1603 adx: Array[0..2-1] of Longint;
1604 tabs: Array[0..1-1] of Longint;
1605 end;
1606
1607 const
1608 GCCHSTE_DRAWRECT =$80;
1609 GCCHSTE_NORECT =$00;
1610 GCCHSTE_CLIP =$40;
1611 GCCHSTE_NOCLIP =$00;
1612 GCCHSTE_DEEMPHASIZE =$20; // Reserved
1613 GCCHSTE_NODEEMPHASIZE =$00;
1614 GCCHSTE_LEAVEPOS =$10;
1615 GCCHSTE_MOVEPOS =$00;
1616 GCCHSTE_UNDERSCORE =$08;
1617 GCCHSTE_NOUNDERSCORE =$00;
1618 GCCHSTE_STRIKEOUT =$04;
1619 GCCHSTE_NOSTRIKEOUT =$00;
1620 GTCHSPA_STARTPOS =$02;
1621 GTCHSPA_NOSTARTPOS =$00;
1622
1623 // Extended Escape
1624 OCODEQ_GEESCP =$D5; // Qualifier - extended escape
1625
1626 GEESCP_ML =65533;
1627
1628 type
1629 ORDER_GEESCP=record // ogeescp
1630 uchType: Byte;
1631 uchIdent: Byte;
1632 auchData: Array[0..GEESCP_ML-1] of Byte;
1633 end;
1634
1635 //#pragma pack() /* reset to default packing */
1636
1637
1638
GpiCreatePSnull1639 function GpiCreatePS(hab,hdc : cardinal;var psizlSize : SIZEL;flOptions : cardinal) : cardinal;cdecl;
GpiDestroyPSnull1640 function GpiDestroyPS(hps : cardinal) : longbool;cdecl;
GpiAssociatenull1641 function GpiAssociate(hps,hdc : cardinal) : longbool;cdecl;
GpiRestorePSnull1642 function GpiRestorePS(hps : cardinal;lPSid : longint) : longbool;cdecl;
GpiSavePSnull1643 function GpiSavePS(hps : cardinal) : longint;cdecl;
GpiErasenull1644 function GpiErase(hps : cardinal) : longbool;cdecl;
GpiQueryDevicenull1645 function GpiQueryDevice(hps : cardinal) : cardinal;cdecl;
GpiResetPSnull1646 function GpiResetPS(hps,flOptions : cardinal) : longbool;cdecl;
GpiSetPSnull1647 function GpiSetPS(hps : cardinal;var psizlsize : SIZEL;flOptions : cardinal) : longbool;cdecl;
GpiQueryPSnull1648 function GpiQueryPS(hps : cardinal;var psizlSize : SIZEL) : cardinal;cdecl;
GpiErrorSegmentDatanull1649 function GpiErrorSegmentData(hps : cardinal;var plSegment,plContext : longint) : longint; cdecl;
GpiQueryDrawControlnull1650 function GpiQueryDrawControl(hps : cardinal;lControl : longint) : longint;cdecl;
GpiSetDrawControlnull1651 function GpiSetDrawControl(hps : cardinal;lControl,lValue : longint) : longbool;cdecl;
GpiQueryDrawingModenull1652 function GpiQueryDrawingMode(hps : cardinal) : longint;cdecl;
GpiSetDrawingModenull1653 function GpiSetDrawingMode(hps : cardinal;lMode : longint) : longbool;cdecl;
GpiQueryStopDrawnull1654 function GpiQueryStopDraw(hps : cardinal) : longint;cdecl;
GpiSetStopDrawnull1655 function GpiSetStopDraw(hps : cardinal;lValue : longint) : longbool;cdecl;
GpiCorrelateChainnull1656 function GpiCorrelateChain(hps : cardinal;lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var pl2 : longint) : longint;cdecl;
GpiQueryTagnull1657 function GpiQueryTag(hps : cardinal;var plTag : longint) : longbool;cdecl;
GpiSetTagnull1658 function GpiSetTag(hps : cardinal;lTag : longint) : longbool;cdecl;
GpiQueryPickApertureSizenull1659 function GpiQueryPickApertureSize(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl;
GpiSetPickApertureSizenull1660 function GpiSetPickApertureSize(hps : cardinal;lOptions : longint;var psizlSize : SIZEL) : longbool; cdecl;
GpiQueryPickAperturePositionnull1661 function GpiQueryPickAperturePosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl;
GpiSetPickAperturePositionnull1662 function GpiSetPickAperturePosition(hps : cardinal;var pptlPick : POINTL) : longbool; cdecl;
GpiQueryBoundaryDatanull1663 function GpiQueryBoundaryData(hps : cardinal;var prclBoundary : RECTL) : longbool; cdecl;
GpiResetBoundaryDatanull1664 function GpiResetBoundaryData(hps : cardinal) : longbool; cdecl;
GpiCorrelateFromnull1665 function GpiCorrelateFrom(hps : cardinal;lFirstSegment,lLastSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var plSegTag : longint) : longint; cdecl;
GpiCorrelateSegmentnull1666 function GpiCorrelateSegment(hps : cardinal;lSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var alSegTag : longint) : longint; cdecl;
GpiOpenSegmentnull1667 function GpiOpenSegment(hps : cardinal;lSegment : longint) : longbool; cdecl;
GpiCloseSegmentnull1668 function GpiCloseSegment(hps : cardinal) : longbool; cdecl;
GpiDeleteSegmentnull1669 function GpiDeleteSegment(hps : cardinal;lSegid : longint) : longbool; cdecl;
GpiQueryInitialSegmentAttrsnull1670 function GpiQueryInitialSegmentAttrs(hps : cardinal;lAttribute : longint) : longint; cdecl;
GpiSetInitialSegmentAttrsnull1671 function GpiSetInitialSegmentAttrs(hps : cardinal;lAttribute,lValue : longint) : longbool; cdecl;
GpiQuerySegmentAttrsnull1672 function GpiQuerySegmentAttrs(hps : cardinal;lSegid,lAttribute : longint) : longint; cdecl;
GpiSetSegmentAttrsnull1673 function GpiSetSegmentAttrs(hps : cardinal;lSegid,lAttribute,lValue : longint) : longbool; cdecl;
GpiQuerySegmentPrioritynull1674 function GpiQuerySegmentPriority(hps : cardinal;lRefSegid,lOrder : longint) : longint; cdecl;
GpiSetSegmentPrioritynull1675 function GpiSetSegmentPriority(hps : cardinal;lSegid,lRefSegid,lOrder : longint) : longbool; cdecl;
GpiDeleteSegmentsnull1676 function GpiDeleteSegments(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl;
GpiQuerySegmentNamesnull1677 function GpiQuerySegmentNames(hps : cardinal;lFirstSegid,lLastSegid,lMax : longint;var alSegids : longint) : longint; cdecl;
GpiGetDatanull1678 function GpiGetData(hps : cardinal;lSegid : longint;var plOffset : longint;lFormat,lLength : longint;var pbData : BYTE) : longint; cdecl;
GpiPutDatanull1679 function GpiPutData(hps : cardinal;lFormat : longint;var plCount : longint;var pbData : BYTE) : longint; cdecl;
GpiDrawChainnull1680 function GpiDrawChain(hps : cardinal) : longbool; cdecl;
GpiDrawFromnull1681 function GpiDrawFrom(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl;
GpiDrawSegmentnull1682 function GpiDrawSegment(hps : cardinal;lSegment : longint) : longbool; cdecl;
GpiDrawDynamicsnull1683 function GpiDrawDynamics(hps : cardinal) : longbool; cdecl;
GpiRemoveDynamicsnull1684 function GpiRemoveDynamics(hps : cardinal;lFirstSegid,lLastSegid : longint) : longbool; cdecl;
GpiBeginElementnull1685 function GpiBeginElement(hps : cardinal;lType : longint;pszDesc : pchar) : longbool; cdecl;
GpiEndElementnull1686 function GpiEndElement(hps : cardinal) : longbool; cdecl;
GpiLabelnull1687 function GpiLabel(hps : cardinal;lLabel : longint) : longbool; cdecl;
GpiElementnull1688 function GpiElement(hps : cardinal;lType : longint;pszDesc : pchar;lLength : longint;var pbData : BYTE) : longint; cdecl;
GpiQueryElementnull1689 function GpiQueryElement(hps : cardinal;lOff,lMaxLength : longint;var pbData : BYTE) : longint; cdecl;
GpiDeleteElementnull1690 function GpiDeleteElement(hps : cardinal) : longbool; cdecl;
GpiDeleteElementRangenull1691 function GpiDeleteElementRange(hps : cardinal;lFirstElement,lLastElement : longint) : longbool; cdecl;
GpiDeleteElementsBetweenLabelsnull1692 function GpiDeleteElementsBetweenLabels(hps : cardinal;lFirstLabel,lLastLabel : longint) : longbool; cdecl;
GpiQueryEditModenull1693 function GpiQueryEditMode(hps : cardinal) : longint; cdecl;
GpiSetEditModenull1694 function GpiSetEditMode(hps : cardinal;lMode : longint) : longbool; cdecl;
GpiQueryElementPointernull1695 function GpiQueryElementPointer(hps : cardinal) : longint; cdecl;
GpiSetElementPointernull1696 function GpiSetElementPointer(hps : cardinal;lElement : longint) : longbool; cdecl;
GpiOffsetElementPointernull1697 function GpiOffsetElementPointer(hps : cardinal;loffset : longint) : longbool; cdecl;
GpiQueryElementTypenull1698 function GpiQueryElementType(hps : cardinal;var plType : longint;lLength : longint;pszData : pchar) : longint; cdecl;
GpiSetElementPointerAtLabelnull1699 function GpiSetElementPointerAtLabel(hps : cardinal;lLabel : longint) : longbool; cdecl;
GpiQuerySegmentTransformMatrixnull1700 function GpiQuerySegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl;
GpiSetSegmentTransformMatrixnull1701 function GpiSetSegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl;
GpiConvertnull1702 function GpiConvert(hps : cardinal;lSrc,lTarg,lCount : longint;var aptlPoints : POINTL) : longbool; cdecl;
GpiConvertWithMatrixnull1703 function GpiConvertWithMatrix(hps : cardinal;lCountp : longint;var aptlPoints : POINTL;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl;
GpiQueryModelTransformMatrixnull1704 function GpiQueryModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl;
GpiSetModelTransformMatrixnull1705 function GpiSetModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl;
GpiCallSegmentMatrixnull1706 function GpiCallSegmentMatrix(hps : cardinal;lSegment,lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longint; cdecl;
GpiQueryDefaultViewMatrixnull1707 function GpiQueryDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl;
GpiSetDefaultViewMatrixnull1708 function GpiSetDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl;
GpiQueryPageViewportnull1709 function GpiQueryPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl;
GpiSetPageViewportnull1710 function GpiSetPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl;
GpiQueryViewingTransformMatrixnull1711 function GpiQueryViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl;
GpiSetViewingTransformMatrixnull1712 function GpiSetViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl;
GpiTranslatenull1713 function GpiTranslate(hps : cardinal;var pmatrixlf : MATRIXLF;long : longint;var ppointl : POINTL) : longbool; cdecl;
GpiScalenull1714 function GpiScale(hps : cardinal;var p1 : MATRIXLF;p2 : longint;var p3 : longint;var p4 : POINTL) : longbool; cdecl;
GpiRotatenull1715 function GpiRotate(p1 : cardinal;var p2 : MATRIXLF;p3,p4 : longint;var p5 : POINTL) : longbool; cdecl;
GpiSetGraphicsFieldnull1716 function GpiSetGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl;
GpiQueryGraphicsFieldnull1717 function GpiQueryGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl;
GpiSetViewingLimitsnull1718 function GpiSetViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl;
GpiQueryViewingLimitsnull1719 function GpiQueryViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl;
GpiBeginPathnull1720 function GpiBeginPath(hps : cardinal;lPath : longint) : longbool; cdecl;
GpiEndPathnull1721 function GpiEndPath(hps : cardinal) : longbool; cdecl;
GpiCloseFigurenull1722 function GpiCloseFigure(hps : cardinal) : longbool; cdecl;
GpiModifyPathnull1723 function GpiModifyPath(hps : cardinal;lPath,lMode : longint) : longbool; cdecl;
GpiFillPathnull1724 function GpiFillPath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl;
GpiSetClipPathnull1725 function GpiSetClipPath(hps : cardinal;lPath,lOptions : longint) : longbool; cdecl;
GpiOutlinePathnull1726 function GpiOutlinePath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl;
GpiPathToRegionnull1727 function GpiPathToRegion(GpiH : cardinal;lPath,lOptions : longint) : cardinal; cdecl;
GpiStrokePathnull1728 function GpiStrokePath(hps : cardinal;lPath : longint;flOptions : cardinal) : longint; cdecl;
GpiCreateLogColorTablenull1729 function GpiCreateLogColorTable(hps,flOptions : cardinal;lFormat,lStart,lCount : longint;var alTable : longint) : longbool; cdecl;
GpiQueryColorDatanull1730 function GpiQueryColorData(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl;
GpiQueryLogColorTablenull1731 function GpiQueryLogColorTable(hps,flOptions : cardinal;lStart,lCount : longint;var alArray : longint) : longint; cdecl;
GpiQueryRealColorsnull1732 function GpiQueryRealColors(hps,flOptions : cardinal;lStart,lCount : longint;var alColors : longint) : longint; cdecl;
GpiQueryNearestColornull1733 function GpiQueryNearestColor(hps,flOptions : cardinal;lRgbIn : longint) : longint; cdecl;
GpiQueryColorIndexnull1734 function GpiQueryColorIndex(hps,flOptions : cardinal;lRgbColor : longint) : longint; cdecl;
GpiQueryRGBColornull1735 function GpiQueryRGBColor(hps,flOptions : cardinal;lColorIndex : longint) : longint; cdecl;
GpiCreatePalettenull1736 function GpiCreatePalette(hab,flOptions,ulFormat,ulCount : cardinal;var aulTable) : cardinal; cdecl;
GpiDeletePalettenull1737 function GpiDeletePalette(hpal : cardinal) : longbool; cdecl;
GpiSelectPalettenull1738 function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl;
GpiAnimatePalettenull1739 function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longint; cdecl;
GpiSetPaletteEntriesnull1740 function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longbool; cdecl;
GpiQueryPalettenull1741 function GpiQueryPalette(hps : cardinal) : cardinal; cdecl;
GpiQueryPaletteInfonull1742 function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;var aulArray) : longint; cdecl;
GpiSetColornull1743 function GpiSetColor(hps : cardinal;lColor : longint) : longbool; cdecl;
GpiQueryColornull1744 function GpiQueryColor(hps : cardinal) : longint; cdecl;
GpiBoxnull1745 function GpiBox(hps : cardinal;lControl : longint;var pptlPoint : POINTL;lHRound,lVRound : longint) : longint; cdecl;
GpiMovenull1746 function GpiMove(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl;
GpiLinenull1747 function GpiLine(hps : cardinal;var pptlEndPoint : POINTL) : longint; cdecl;
GpiPolyLinenull1748 function GpiPolyLine(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl;
GpiPolyLineDisjointnull1749 function GpiPolyLineDisjoint(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl;
GpiSetPatternnull1750 function GpiSetPattern(hps : cardinal;lPatternSymbol : longint) : longbool; cdecl;
GpiQueryPatternnull1751 function GpiQueryPattern(hps : cardinal) : longint; cdecl;
GpiBeginAreanull1752 function GpiBeginArea(hps,flOptions : cardinal) : longbool; cdecl;
GpiEndAreanull1753 function GpiEndArea(hps : cardinal) : longint; cdecl;
GpiCharStringnull1754 function GpiCharString(hps : cardinal;lCount : longint;pchString : pchar) : longint; cdecl;
GpiCharStringAtnull1755 function GpiCharStringAt(hps : cardinal;var pptlPoint : POINTL;lCount : longint;pchString : pchar) : longint; cdecl;
GpiSetAttrModenull1756 function GpiSetAttrMode(hps : cardinal;lMode : longint) : longbool; cdecl;
GpiQueryAttrModenull1757 function GpiQueryAttrMode(hps : cardinal) : longint; cdecl;
GpiSetAttrsnull1758 function GpiSetAttrs(hps : cardinal;lPrimType : longint;flAttrMask,flDefMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl;
GpiQueryAttrsnull1759 function GpiQueryAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longint; cdecl;
GpiSetBackColornull1760 function GpiSetBackColor(hps : cardinal;lColor : longint) : longbool; cdecl;
GpiQueryBackColornull1761 function GpiQueryBackColor(hps : cardinal) : longint; cdecl;
GpiSetMixnull1762 function GpiSetMix(hps : cardinal;lMixMode : longint) : longbool; cdecl;
GpiQueryMixnull1763 function GpiQueryMix(hps : cardinal) : longint; cdecl;
GpiSetBackMixnull1764 function GpiSetBackMix(hps : cardinal;lMixMode : longint) : longbool; cdecl;
GpiQueryBackMixnull1765 function GpiQueryBackMix(hps : cardinal) : longint; cdecl;
GpiSetLineTypenull1766 function GpiSetLineType(hps : cardinal;lLineType : longint) : longbool; cdecl;
GpiQueryLineTypenull1767 function GpiQueryLineType(hps : cardinal) : longint; cdecl;
GpiSetLineWidthnull1768 function GpiSetLineWidth(hps : cardinal;fxLineWidth : longint) : longbool; cdecl;
GpiQueryLineWidthnull1769 function GpiQueryLineWidth(hps : cardinal) : longint; cdecl;
GpiSetLineWidthGeomnull1770 function GpiSetLineWidthGeom(hps : cardinal;lLineWidth : longint) : longbool; cdecl;
GpiQueryLineWidthGeomnull1771 function GpiQueryLineWidthGeom(hps : cardinal) : longint; cdecl;
GpiSetLineEndnull1772 function GpiSetLineEnd(hps : cardinal;lLineEnd : longint) : longbool; cdecl;
GpiQueryLineEndnull1773 function GpiQueryLineEnd(hps : cardinal) : longint; cdecl;
GpiSetLineJoinnull1774 function GpiSetLineJoin(hps : cardinal;lLineJoin : longint) : longbool; cdecl;
GpiQueryLineJoinnull1775 function GpiQueryLineJoin(hps : cardinal) : longint; cdecl;
GpiSetCurrentPositionnull1776 function GpiSetCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl;
GpiQueryCurrentPositionnull1777 function GpiQueryCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl;
GpiSetArcParamsnull1778 function GpiSetArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl;
GpiQueryArcParamsnull1779 function GpiQueryArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl;
GpiPointArcnull1780 function GpiPointArc(hps : cardinal;var pptl2 : POINTL) : longint; cdecl;
GpiFullArcnull1781 function GpiFullArc(hps : cardinal;lControl,fxMultiplier : longint) : longint; cdecl;
GpiPartialArcnull1782 function GpiPartialArc(hps : cardinal;var pptlCenter : POINTL;fxMultiplier,fxStartAngle,fxSweepAngle : longint) : longint; cdecl;
GpiPolyFilletnull1783 function GpiPolyFillet(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl;
GpiPolySplinenull1784 function GpiPolySpline(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl;
GpiPolyFilletSharpnull1785 function GpiPolyFilletSharp(hps : cardinal;lCount : longint;var aptlPoints : POINTL;var afxPoints : longint) : longint; cdecl;
GpiSetPatternSetnull1786 function GpiSetPatternSet(hps : cardinal;lSet : longint) : longbool; cdecl;
GpiQueryPatternSetnull1787 function GpiQueryPatternSet(hps : cardinal) : longint; cdecl;
GpiSetPatternRefPointnull1788 function GpiSetPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl;
GpiQueryPatternRefPointnull1789 function GpiQueryPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl;
GpiQueryCharStringPosnull1790 function GpiQueryCharStringPos(hps,flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl;
GpiQueryCharStringPosAtnull1791 function GpiQueryCharStringPosAt(hps : cardinal;var pptlStart : POINTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl;
GpiQueryTextBoxnull1792 function GpiQueryTextBox(hps : cardinal;lCount1 : longint;pchString : pchar;lCount2 : longint;var aptlPoints : POINTL) : longbool; cdecl;
GpiQueryDefCharBoxnull1793 function GpiQueryDefCharBox(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl;
GpiSetCharSetnull1794 function GpiSetCharSet(hps : cardinal;llcid : longint) : longbool; cdecl;
GpiQueryCharSetnull1795 function GpiQueryCharSet(hps : cardinal) : longint; cdecl;
GpiSetCharBoxnull1796 function GpiSetCharBox(hps : cardinal;var psizfxBox : SIZEF) : longbool; cdecl;
GpiQueryCharBoxnull1797 function GpiQueryCharBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl;
GpiSetCharAnglenull1798 function GpiSetCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl;
GpiQueryCharAnglenull1799 function GpiQueryCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl;
GpiSetCharShearnull1800 function GpiSetCharShear(hps : cardinal;var pptlAngle : POINTL) : longbool; cdecl;
GpiQueryCharShearnull1801 function GpiQueryCharShear(hps : cardinal;var pptlShear : POINTL) : longbool; cdecl;
GpiSetCharDirectionnull1802 function GpiSetCharDirection(hps : cardinal;lDirection : longint) : longbool; cdecl;
GpiQueryCharDirectionnull1803 function GpiQueryCharDirection(hps : cardinal) : longint; cdecl;
GpiSetCharModenull1804 function GpiSetCharMode(hps : cardinal;lMode : longint) : longbool; cdecl;
GpiQueryCharModenull1805 function GpiQueryCharMode(hps : cardinal) : longint; cdecl;
GpiSetTextAlignmentnull1806 function GpiSetTextAlignment(hps : cardinal;lHoriz,lVert : longint) : longbool; cdecl;
GpiQueryTextAlignmentnull1807 function GpiQueryTextAlignment(hps : cardinal;var plHoriz,plVert : longint) : longbool; cdecl;
GpiCharStringPosnull1808 function GpiCharStringPos(hps : cardinal;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl;
GpiCharStringPosAtnull1809 function GpiCharStringPosAt(hps : cardinal;var pptlStart : POINTL;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl;
GpiSetCharExtranull1810 function GpiSetCharExtra(hps : cardinal;Extra : longint) : longbool; cdecl;
GpiSetCharBreakExtranull1811 function GpiSetCharBreakExtra(hps : cardinal;BreakExtra : longint) : longbool; cdecl;
GpiQueryCharExtranull1812 function GpiQueryCharExtra(hps : cardinal;var Extra : longint) : longbool; cdecl;
GpiQueryCharBreakExtranull1813 function GpiQueryCharBreakExtra(hps : cardinal;var BreakExtra : longint) : longbool; cdecl;
GpiMarkernull1814 function GpiMarker(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiPolyMarkernull1815 function GpiPolyMarker(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl;
GpiSetMarkernull1816 function GpiSetMarker(hps : cardinal;lSymbol : longint) : longbool; cdecl;
GpiSetMarkerBoxnull1817 function GpiSetMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl;
GpiSetMarkerSetnull1818 function GpiSetMarkerSet(hps : cardinal;lSet : longint) : longbool; cdecl;
GpiQueryMarkernull1819 function GpiQueryMarker(hps : cardinal) : longint; cdecl;
GpiQueryMarkerBoxnull1820 function GpiQueryMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl;
GpiQueryMarkerSetnull1821 function GpiQueryMarkerSet(hps : cardinal) : longint; cdecl;
GpiImagenull1822 function GpiImage(hps : cardinal;lFormat : longint;var psizlImageSize : SIZEL;lLength : longint;var pbData : BYTE) : longint; cdecl;
GpiPopnull1823 function GpiPop(hps : cardinal;lCount : longint) : longbool; cdecl;
GpiPtVisiblenull1824 function GpiPtVisible(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiRectVisiblenull1825 function GpiRectVisible(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl;
GpiCommentnull1826 function GpiComment(hps : cardinal;lLength : longint;var pbData : BYTE) : longbool; cdecl;
GpiCreateLogFontnull1827 function GpiCreateLogFont(hps : cardinal;var pName : STR8;lLcid : longint;var pfatAttrs : FATTRS) : longint; cdecl;
GpiDeleteSetIdnull1828 function GpiDeleteSetId(hps : cardinal;lLcid : longint) : longbool; cdecl;
GpiLoadFontsnull1829 function GpiLoadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl;
GpiUnloadFontsnull1830 function GpiUnloadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl;
GpiQueryFontsnull1831 function GpiQueryFonts(hps,flOptions : cardinal;pszFacename : pchar;var plReqFonts : longint;lMetricsLength : longint;var afmMetrics : FONTMETRICS) : longint; cdecl;
GpiQueryFontMetricsnull1832 function GpiQueryFontMetrics(hps : cardinal;lMetricsLength : longint;var pfmMetrics : FONTMETRICS) : longbool; cdecl;
GpiQueryKerningPairsnull1833 function GpiQueryKerningPairs(hps : cardinal;lCount : longint;var akrnprData : KERNINGPAIRS) : longint; cdecl;
GpiQueryWidthTablenull1834 function GpiQueryWidthTable(hps : cardinal;lFirstChar,lCount : longint;var alData : longint) : longbool; cdecl;
GpiQueryNumberSetIdsnull1835 function GpiQueryNumberSetIds(hps : cardinal) : longint; cdecl;
GpiQuerySetIdsnull1836 function GpiQuerySetIds(hps : cardinal;lCount : longint;var alTypes : longint;var aNames : STR8;var allcids : longint) : longbool; cdecl;
GpiQueryFaceStringnull1837 function GpiQueryFaceString(PS : cardinal;FamilyName : pchar;var attrs : FACENAMEDESC;length : longint;CompoundFaceName : pchar) : cardinal; cdecl;
GpiQueryLogicalFontnull1838 function GpiQueryLogicalFont(PS : cardinal;lcid : longint;var name : STR8;var attrs : FATTRS;length : longint) : longbool; cdecl;
GpiQueryFontActionnull1839 function GpiQueryFontAction(anchor,options : cardinal) : cardinal; cdecl;
GpiLoadPublicFontsnull1840 function GpiLoadPublicFonts(p1 : cardinal;p2 : pchar):longbool; cdecl;
GpiUnloadPublicFontsnull1841 function GpiUnloadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl;
GpiSetCpnull1842 function GpiSetCp(hps,ulCodePage : cardinal) : longbool; cdecl;
GpiQueryCpnull1843 function GpiQueryCp(hps : cardinal) : cardinal; cdecl;
GpiQueryFontFileDescriptionsnull1844 function GpiQueryFontFileDescriptions(hab : cardinal;pszFilename : pchar;var plCount : longint;var affdescsNames : FFDESCS) : longint; cdecl;
GpiQueryFullFontFileDescsnull1845 function GpiQueryFullFontFileDescs(hab : cardinal;pszFilename : pchar;var plCount : longint;pNames : pointer;var plNamesBuffLength : longint) : longint; cdecl;
GpiBitBltnull1846 function GpiBitBlt(hpsTarget,hpsSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl;
GpiDeleteBitmapnull1847 function GpiDeleteBitmap(hbm : cardinal) : longbool; cdecl;
GpiLoadBitmapnull1848 function GpiLoadBitmap(hps,Resource,idBitmap : cardinal;lWidth,lHeight : longint) : cardinal; cdecl;
GpiSetBitmapnull1849 function GpiSetBitmap(hps,hbm : cardinal) : cardinal; cdecl;
GpiWCBitBltnull1850 function GpiWCBitBlt(hpsTarget,hbmSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl;
GpiCreateBitmapnull1851 function GpiCreateBitmap(hps : cardinal;var pbmpNew : Tbitmapinfoheader2;flOptions : cardinal;var pbInitData : BYTE;var pbmiInfoTable : Tbitmapinfo2) : cardinal; cdecl;
GpiSetBitmapBitsnull1852 function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable : Tbitmapinfo2) : longint; cdecl;
GpiSetBitmapDimensionnull1853 function GpiSetBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl;
GpiSetBitmapIdnull1854 function GpiSetBitmapId(hps,hbm : cardinal;lLcid : longint) : longbool; cdecl;
GpiQueryBitmapBitsnull1855 function GpiQueryBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable :Tbitmapinfo2) : longint; cdecl;
GpiQueryBitmapDimensionnull1856 function GpiQueryBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl;
GpiQueryBitmapHandlenull1857 function GpiQueryBitmapHandle(hps : cardinal;lLcid : longint) : cardinal; cdecl;
GpiQueryBitmapParametersnull1858 function GpiQueryBitmapParameters(hbm : cardinal;var pbmpData : Tbitmapinfoheader) : longbool; cdecl;
GpiQueryBitmapInfoHeadernull1859 function GpiQueryBitmapInfoHeader(hbm : cardinal;var pbmpData : Tbitmapinfoheader2) : longbool; cdecl;
GpiQueryDeviceBitmapFormatsnull1860 function GpiQueryDeviceBitmapFormats(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl;
GpiSetPelnull1861 function GpiSetPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiQueryPelnull1862 function GpiQueryPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiFloodFillnull1863 function GpiFloodFill(hps : cardinal;lOptions,lColor : longint) : longint; cdecl;
GpiDrawBitsnull1864 function GpiDrawBits(hps : cardinal;pBits : pointer;var pbmiInfoTable :Tbitmapinfo2;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl;
GpiCombineRegionnull1865 function GpiCombineRegion(hps,hrgnDest,hrgnSrc1,hrgnSrc2 : cardinal;lMode : longint) : longint; cdecl;
GpiCreateRegionnull1866 function GpiCreateRegion(hps : cardinal;lCount : longint;var arclRectangles : RECTL) : cardinal; cdecl;
GpiDestroyRegionnull1867 function GpiDestroyRegion(hps,hrgn : cardinal) : longbool; cdecl;
GpiEqualRegionnull1868 function GpiEqualRegion(hps,hrgnSrc1,hrgnSrc2 : cardinal) : longint; cdecl;
GpiOffsetRegionnull1869 function GpiOffsetRegion(hps,Hrgn : cardinal;var pptlOffset : POINTL) : longbool; cdecl;
GpiPaintRegionnull1870 function GpiPaintRegion(hps,hrgn : cardinal) : longint; cdecl;
GpiFrameRegionnull1871 function GpiFrameRegion(hps,hrgn : cardinal;var thickness : SIZEL) : longint; cdecl;
GpiPtInRegionnull1872 function GpiPtInRegion(hps,hrgn : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiQueryRegionBoxnull1873 function GpiQueryRegionBox(hps,hrgn : cardinal;var prclBound : RECTL) : longint; cdecl;
GpiQueryRegionRectsnull1874 function GpiQueryRegionRects(hps,hrgn : cardinal;var prclBound : RECTL;var prgnrcControl : RGNRECT;var prclRect : RECTL) : longbool; cdecl;
GpiRectInRegionnull1875 function GpiRectInRegion(hps,hrgn : cardinal;var prclRect : RECTL) : longint; cdecl;
GpiSetRegionnull1876 function GpiSetRegion(hps,hrgn : cardinal;lcount : longint;var arclRectangles : RECTL) : longbool;cdecl;
GpiSetClipRegionnull1877 function GpiSetClipRegion(hps,hrgn : cardinal;var phrgnOld : cardinal) : longint; cdecl;
GpiQueryClipRegionnull1878 function GpiQueryClipRegion(hps : cardinal) : cardinal; cdecl;
GpiQueryClipBoxnull1879 function GpiQueryClipBox(hps : cardinal;var prclBound : RECTL) : longint; cdecl;
GpiExcludeClipRectanglenull1880 function GpiExcludeClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl;
GpiIntersectClipRectanglenull1881 function GpiIntersectClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl;
GpiOffsetClipRegionnull1882 function GpiOffsetClipRegion(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl;
GpiCopyMetaFilenull1883 function GpiCopyMetaFile(hmf : cardinal) : cardinal; cdecl;
GpiDeleteMetaFilenull1884 function GpiDeleteMetaFile(hmf : cardinal) : longbool; cdecl;
GpiLoadMetaFilenull1885 function GpiLoadMetaFile(hab : cardinal;pszFilename : pchar) : cardinal; cdecl;
GpiPlayMetaFilenull1886 function GpiPlayMetaFile(hps,hmf : cardinal;lCount1 : longint;var alOptarray,plSegCount : longint;lCount2 : longint;pszDesc : pchar) : longint; cdecl;
GpiQueryMetaFileBitsnull1887 function GpiQueryMetaFileBits(hmf : cardinal;lOffset,lLength : longint;var pbData : BYTE) : longbool; cdecl;
GpiQueryMetaFileLengthnull1888