2
This file is part of the Free Pascal run time library.
3
Copyright (c) 2002 by Yuri Prokushev (prokushev@freemail.ru).
5
OS/2 Presentation Manager Device Context constants, types and
8
See the file COPYING.FPC, included in this distribution,
9
for details about the copyright.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
**********************************************************************}
17
{Warning: This code is alfa. Future versions
18
of this unit might not be compatible.}
27
//General DEV return values
32
//DC type for DevOpenDC
39
OD_METAFILE_NOQUERY =9;
41
//codes for DevQueryCaps
45
CAPS_DRIVER_VERSION =3;
47
CAPS_HEIGHT =5; //pels
48
CAPS_WIDTH_IN_CHARS =6;
49
CAPS_HEIGHT_IN_CHARS =7;
50
CAPS_HORIZONTAL_RESOLUTION =8; //pels per meter
51
CAPS_VERTICAL_RESOLUTION =9; //pels per meter
52
CAPS_CHAR_WIDTH =10; //pels
53
CAPS_CHAR_HEIGHT =11; //pels
54
CAPS_SMALL_CHAR_WIDTH =12; //pels
55
CAPS_SMALL_CHAR_HEIGHT =13; //pels
57
CAPS_COLOR_PLANES =15;
58
CAPS_COLOR_BITCOUNT =16;
59
CAPS_COLOR_TABLE_SUPPORT =17;
60
CAPS_MOUSE_BUTTONS =18;
61
CAPS_FOREGROUND_MIX_SUPPORT =19;
62
CAPS_BACKGROUND_MIX_SUPPORT =20;
63
CAPS_DEVICE_WINDOWING =31;
64
CAPS_ADDITIONAL_GRAPHICS =32;
65
CAPS_VIO_LOADABLE_FONTS =21;
66
CAPS_WINDOW_BYTE_ALIGNMENT =22;
67
CAPS_BITMAP_FORMATS =23;
69
CAPS_MARKER_HEIGHT =25; //pels
70
CAPS_MARKER_WIDTH =26; //pels
71
CAPS_DEVICE_FONTS =27;
72
CAPS_GRAPHICS_SUBSET =28;
73
CAPS_GRAPHICS_VERSION =29;
74
CAPS_GRAPHICS_VECTOR_SUBSET =30;
77
CAPS_GRAPHICS_CHAR_WIDTH =35;
78
CAPS_GRAPHICS_CHAR_HEIGHT =36;
79
CAPS_HORIZONTAL_FONT_RES =37;
80
CAPS_VERTICAL_FONT_RES =38;
81
CAPS_DEVICE_FONT_SIM =39;
82
CAPS_LINEWIDTH_THICK =40;
83
CAPS_DEVICE_POLYSET_POINTS =41;
85
//Constants for CAPS_IO_CAPS
87
CAPS_IO_SUPPORTS_OP =2;
88
CAPS_IO_SUPPORTS_IP =3;
89
CAPS_IO_SUPPORTS_IO =4;
91
//Constants for CAPS_TECHNOLOGY
93
CAPS_TECH_VECTOR_PLOTTER =1;
94
CAPS_TECH_RASTER_DISPLAY =2;
95
CAPS_TECH_RASTER_PRINTER =3;
96
CAPS_TECH_RASTER_CAMERA =4;
97
CAPS_TECH_POSTSCRIPT =5;
99
//Constants for CAPS_COLOR_TABLE_SUPPORT
100
CAPS_COLTABL_RGB_8 =1;
101
CAPS_COLTABL_RGB_8_PLUS =2;
102
CAPS_COLTABL_TRUE_MIX =4;
103
CAPS_COLTABL_REALIZE =8;
105
//Constants for CAPS_FOREGROUND_MIX_SUPPORT
107
CAPS_FM_OVERPAINT =2;
109
CAPS_FM_LEAVEALONE =16;
111
CAPS_FM_GENERAL_BOOLEAN =64;
113
//Constants for CAPS_BACKGROUND_MIX_SUPPORT
115
CAPS_BM_OVERPAINT =2;
117
CAPS_BM_LEAVEALONE =16;
119
CAPS_BM_GENERAL_BOOLEAN =64;
120
CAPS_BM_SRCTRANSPARENT =128;
121
CAPS_BM_DESTTRANSPARENT =256;
123
//Constants for CAPS_DEVICE_WINDOWING
124
CAPS_DEV_WINDOWING_SUPPORT =1;
126
//Constants for CAPS_ADDITIONAL_GRAPHICS
127
CAPS_VDD_DDB_TRANSFER =1;
128
CAPS_GRAPHICS_KERNING_SUPPORT =2;
129
CAPS_FONT_OUTLINE_DEFAULT =4;
130
CAPS_FONT_IMAGE_DEFAULT =8;
131
//bits represented by values 16L and 32L are reserved
132
CAPS_SCALED_DEFAULT_MARKERS =64;
133
CAPS_COLOR_CURSOR_SUPPORT =128;
134
CAPS_PALETTE_MANAGER =256;
135
CAPS_COSMETIC_WIDELINE_SUPPORT =512;
136
CAPS_DIRECT_FILL =1024;
137
CAPS_REBUILD_FILLS =2048;
138
CAPS_CLIP_FILLS =$00001000; //4096L
139
CAPS_ENHANCED_FONTMETRICS =$00002000; //8192L
140
CAPS_TRANSFORM_SUPPORT =$00004000; //16384L
142
//Constants for CAPS_WINDOW_BYTE_ALIGNMENT
143
CAPS_BYTE_ALIGN_REQUIRED =0;
144
CAPS_BYTE_ALIGN_RECOMMENDED =1;
145
CAPS_BYTE_ALIGN_NOT_REQUIRED =2;
147
//Constants for CAPS_RASTER_CAPS
148
CAPS_RASTER_BITBLT =1;
149
CAPS_RASTER_BANDING =2;
150
CAPS_RASTER_BITBLT_SCALING =4;
151
CAPS_RASTER_SET_PEL =16;
152
CAPS_RASTER_FONTS =32;
153
CAPS_RASTER_FLOOD_FILL =64;
155
//structures for DEVESC_QUERYVIOCELLSIZES
158
PVioSizeCount=^VioSizeCount;
164
PVioFontCellSize=^VioFontCellSize;
165
VioFontCellSize=record
170
//structure for DEVESC_GETSCALINGFACTOR
177
//structure for DEVESC_NEXTBAND
186
//return codes for DevEscape
189
DEVESC_NOTIMPLEMENTED =0;
191
//codes for DevEscape
192
DEVESC_QUERYESCSUPPORT = 0;
193
DEVESC_GETSCALINGFACTOR = 1;
194
DEVESC_QUERYVIOCELLSIZES = 2;
197
DEVESC_STARTDOC =8150;
199
DEVESC_NEXTBAND =8152;
200
DEVESC_ABORTDOC =8153;
202
DEVESC_NEWFRAME =16300;
203
DEVESC_DRAFTMODE =16301;
204
DEVESC_FLUSHOUTPUT =16302;
205
DEVESC_RAWDATA =16303;
206
DEVESC_SETMODE =16304;
208
DEVESC_DBE_FIRST =24450;
209
DEVESC_DBE_LAST =24455;
211
//DevEscape codes for adding extra space to character strings
212
DEVESC_CHAR_EXTRA =16998;
213
DEVESC_BREAK_EXTRA =16999;
215
//codes for DevEscape PM_Q_ESC spool files
216
DEVESC_STD_JOURNAL =32600;
218
//structure for DEVESC_SETMODE
226
//return codes for DevPostDeviceModes
231
//codes for DevPostDeviceModes
234
DPDM_QUERYJOBPROP =2;
236
//string types for DevQueryDeviceNames
242
//return code for DevQueryHardcopyCaps
246
//codes for DevQueryHardcopyCaps
251
//structure for DevQueryHardcopyCaps
259
yBottomClip: Longint;
264
flAttributes: Longint;
267
{ -----------------------------------------------------------------
268
Tuple Item used for QUERYSIZE
272
{ I - type (DJP_ALL or DJP_CURRENT) }
277
TdjpQueryTuple = record
278
ulProperty : Cardinal;
281
TQUERYTUPLE = TdjpQueryTuple;
282
TPQUERYTUPLE = ^TdjpQueryTuple;
283
{ -----------------------------------------------------------------
284
Query Size Structure for DEVESC_QUERYSIZE
287
{ I - Size of entire structure }
288
{ O - Size returned; }
289
{ I - Start of tuple list }
290
{ use DJP_NONE for end of list }
292
TdjpQuerySize = record
294
ulSizeNeeded : Cardinal;
295
aTuples : array[0..0] of TQUERYTUPLE;
297
TQUERYSIZE = TdjpQuerySize;
298
TPQUERYSIZE = ^TdjpQuerySize;
299
{ was #define dname def_expr }
300
// function QUERYSIZE_HEADER_SIZE : longint;
301
{ return type might be wrong }
303
{ -----------------------------------------------------------------
304
Dynamic Job Property Item
307
{ I/O - sizeof DJP_ITEM structure }
308
{ I - Which property }
309
{ I/O - DJP_ALL or DJP_CURRENT. }
310
{ DJP_ERROR_XXX if error. }
311
{ O - How many elements have been }
313
{ O - Variably sized based on }
314
{ ulProperty. The smallest }
315
{ is a ULONG in size }
321
ulProperty : Cardinal;
323
ulNumReturned : Cardinal;
326
TDJP_ITEM = TdjpItem;
327
TPDJP_ITEM = ^TdjpItem;
328
{ was #define dname def_expr }
329
// function DJP_HEADER_SIZE : longint;
330
{ return type might be wrong }
332
{ was #define dname(params) para_def_expr }
333
{ argument types are unknown }
334
// function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
336
{ was #define dname(params) para_def_expr }
337
{ argument types are unknown }
338
// function DJP_ELEMENTP(s,t : longint) : ^Tt;
341
#define DJP_SET_ELEMENT(s,t,e) ( *DJP_ELEMENTP (s,t) = (e))
343
{ -----------------------------------------------------------------
344
Types of Dynamic Job Properties
346
To see if the driver is enabled use,
347
DevEscape (DEVESC_QUERYESCSUPPORT,
348
DEVESC_STARTDOC_WPROP, ...)
349
and DevQueryDevice (DEVQRY_QUERYSUPPORT,
350
DEVESC_QUERYJOBPROPERTIES, ...)
352
NOTE: The C/S in the defines indicate the complexity or size of
353
the information. If it is s, then the size is ULONG sized
354
and no special processing for the next element needs to be
356
The J/P in the defines indicate the class. J stands for job
357
properties and P stands for printer properties.
359
{ also End Of List marker }
363
DJP_SJ_ORIENTATION = 1;
364
DJP_CJ_RESOLUTION = 2;
365
DJP_SJ_BITSPERPEL = 3;
367
DJP_SJ_PRINTQUALITY = 5;
368
DJP_SJ_PAPERSIZE = 6;
371
DJP_SJ_MEDIA_COLOR = 9;
373
DJP_CJ_MIXEDFORMS = 11;
374
DJP_SJ_FONTDOWNLOADING = 12;
380
DJP_SJ_FORMFEEDCONTROL = 18;
382
DJP_CJ_OUTPUTBIN = 20;
383
DJP_CJ_TRAYNAME = 21;
384
{ Types for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
386
{ enumerate the property }
388
{ from job properties }
390
{ Errors for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
392
{ driver doesnt support that property }
393
DJP_ERROR_NOT_SUPPORTED = -(1);
394
{ not in the valid range }
395
DJP_ERROR_OUT_OF_RANGE = -(2);
396
{ not enumerateable }
397
DJP_ERROR_NOT_ENUM = -(3);
398
{ field not proper value }
399
DJP_ERROR_INV_PARMS = -(4);
400
{ -----------------------------------------------------------------
403
DJP_ORI_PORTRAIT = 1;
404
DJP_ORI_LANDSCAPE = 2;
405
DJP_ORI_REV_PORTRAIT = 3;
406
DJP_ORI_REV_LANDSCAPE = 4;
410
TDJPT_ORIENTATION = Cardinal;
412
TPDJPT_ORIENTATION = Cardinal;
413
{ -----------------------------------------------------------------
417
{ X resolution (in dots per inch) }
418
{ Y resolution (in dots per inch) }
420
TdjpResolution = record
421
usXResolution : Word;
422
usYResolution : Word;
424
TDJPT_RESOLUTION = TdjpResolution;
425
TPDJPT_RESOLUTION = ^TdjpResolution;
426
{ -----------------------------------------------------------------
430
TDJPT_BITSPERPEL = Cardinal;
432
TPDJPT_BITSPERPEL = Cardinal;
433
{ -----------------------------------------------------------------
438
DJP_CLR_MONOCHROME = 1;
443
TDJPT_COLOR = Cardinal;
445
TPDJPT_COLOR = Cardinal;
446
{ -----------------------------------------------------------------
449
Note: DJP_PQL_DRAFT is the worst quality. In the future, there
450
may be better qualities (such as DJP_PQL_ULTRA_HIGH) which
451
will be numerically greater than DJP_PQL_HIGH.
459
DJP_PQL_LAST = DJP_PQL_HIGH;
463
TDJPT_PRINTQUALITY = Cardinal;
465
TPDJPT_PRINTQUALITY = Cardinal;
466
{ -----------------------------------------------------------------
469
Note: it is recommended to use DJP_CJ_FORM to chage the papersize.
472
{ inches millimeters }
476
{ 8.5 x 11 216 x 279 }
478
{ 8.5 x 14 216 x 356 }
480
{ 13.58 x 11 345 x 279 }
482
{ 17 x 22 431 x 558 }
484
{ 22 x 34 558 x 863 }
486
{ 34 x 44 863 x 1117 }
489
DJP_PSI_LETTERSMALL = 7;
490
{ 11 x 17 279 x 431 }
492
{ 17 x 11 431 x 279 }
494
{ 5.5 x 8.5 139 x 216 }
495
DJP_PSI_STATEMENT = 10;
496
{ 7.25 x 10.5 184 x 266 }
497
DJP_PSI_EXECUTIVE = 11;
498
{ 33.11 x 46.81 841 x 1189 }
500
{ 23.39 x 33.11 594 x 841 }
502
{ 16.54 x 23.39 420 x 594 }
504
{ 11.7 x 16.54 297 x 420 }
506
{ 8.3 x 11.7 210 x 297 }
509
DJP_PSI_A4_SMALL = 17;
510
{ 5.83 x 8.27 148 x 210 }
512
{ 9.84 x 13.94 250 x 354 }
514
{ 7.17 x 10.12 182 x 257 }
516
{ 8.5 x 13 216 x 330 }
518
{ 8.46 x 10.83 215 x 275 }
520
{ 10 x 14 254 x 355 }
522
{ 11 x 17 279 x 431 }
549
DJP_PSI_ENV_C65 = 37;
553
DJP_PSI_ENV_C10 = 39;
561
DJP_PSI_ENV_ITALY = 43;
563
DJP_PSI_ENV_MONARCH = 44;
565
DJP_PSI_ENV_PERSONAL = 45;
567
DJP_PSI_FANFOLD_US = 46;
569
DJP_PSI_FANFOLD_STD_GERMAN = 47;
571
DJP_PSI_FANFOLD_LGL_GERMAN = 48;
573
DJP_PSI_ARCHITECT_BSHEET = 49;
575
DJP_PSI_ARCHITECT_CSHEET = 50;
577
DJP_PSI_ARCHITECT_DSHEET = 51;
579
DJP_PSI_ARCHITECT_ESHEET = 52;
581
DJP_PSI_CARD_A6 = 53;
583
DJP_PSI_CARD_4X6 = 54;
585
DJP_PSI_CARD_5X8 = 55;
587
DJP_PSI_CARD_HAGAKI = 56;
588
{ 1.10 x 3.50 28 x 89 }
589
DJP_PSI_LABEL_STANDARD = 57;
590
{ 3.98 x 2.13 101 x 54 }
591
DJP_PSI_LABEL_SHIPPING = 58;
592
{ 2.76 x 2.13 70 x 54 }
593
DJP_PSI_LABEL_DISK = 59;
594
{ 3.50 x 1.42 89 x 36 }
595
DJP_PSI_LABEL_EURO = 60;
597
DJP_PSI_CARD_OUFUKU_HAGAKI = 61;
637
DJP_PSI_B10_JIS = 81;
638
DJP_PSI_LAST = DJP_PSI_B10_JIS;
642
TDJPT_PAPERSIZE = Longint;
644
TPDJPT_PAPERSIZE = Longint;
645
{ -----------------------------------------------------------------
648
Note: it is recommended to use DJP_CJ_FORM to chage the tray type.
654
DJP_TRY_ONLYONE = DJP_TRY_UPPER;
658
DJP_TRY_ENVELOPE = 5;
659
DJP_TRY_ENVMANUAL = 6;
662
DJP_TRY_SMALLFMT = 9;
663
DJP_TRY_LARGEFMT = 10;
664
DJP_TRY_LARGECAPACITY = 11;
665
DJP_TRY_CASSETTE = 12;
666
DJP_TRY_LAST = DJP_TRY_CASSETTE;
670
TDJPT_TRAYTYPE = Cardinal;
672
TPDJPT_TRAYTYPE = Cardinal;
673
{ -----------------------------------------------------------------
676
Note: it is recommended to use DJP_CJ_FORM to chage the media type.
682
DJP_MED_TRANSPARENCY = 2;
686
DJP_MED_BACKPRINT = 6;
689
DJP_MED_STATIONARY = 9;
690
DJP_MED_ENVELOPE = 10;
691
DJP_MED_CONTINUOUS_LONG = 11;
692
DJP_MED_CONTINUOUS_SHORT = 12;
693
DJP_MED_TAB_STOCK = 13;
694
DJP_MED_MULTI_PART_FORM = 14;
696
DJP_MED_LAST = DJP_MED_LABELS;
700
TDJPT_MEDIA = Cardinal;
702
TPDJPT_MEDIA = Cardinal;
703
{ -----------------------------------------------------------------
706
Select the media color (for the same media types).
712
DJP_MDC_GOLDENROD = 3;
715
DJP_MDC_TRANSPARENT = 6;
718
DJP_MDC_LAST = DJP_MDC_YELLOW;
722
TDJPT_MEDIA_COLOR = Cardinal;
724
TPDJPT_MEDIA_COLOR = Cardinal;
725
{ -----------------------------------------------------------------
728
Setting will match all three fields. If szTrayname or szMedianame
729
is null then it will be defaulted to the first one found.
731
Querying will return all fields filled in.
736
{ System Media name }
737
{ v-= Informational only =-v }
738
{ Corresponding hard copy info }
739
{ Display Form name (translated) }
740
{ Display Tray name (translated) }
741
{ Display Media name (translated) }
742
{ Simple form id (if not DJP_NONE) }
743
{ Simple tray id (if not DJP_NONE) }
744
{ Simple media id (if not DJP_NONE) }
751
szDisplayFormname : Str64;
752
szDisplayTrayname : Str64;
753
szDisplayMedianame : Str64;
754
djppsFormID : TDJPT_PAPERSIZE;
755
djpttTrayID : TDJPT_TRAYTYPE;
756
djpmdMediaID : TDJPT_MEDIA;
758
TDJPT_FORM = TdjpForm;
759
TPDJPT_FORM = ^TdjpForm;
760
{ -----------------------------------------------------------------
763
This is unique in that both setting and querying can have multiple
764
elements. Both the first page and the last page are DJP_MXF_INFINITY
765
(which is the separator for individual elements).
768
- Only one form (form1) for the entire job.
769
(DJP_MXF_INFINITY, DJP_MXF_INFINITY, form1)
771
- Page 1 has form1, then pages 2 ... n have form2.
772
(DJP_MXF_INFINITY, 1, form1) (2, DJP_MXF_INFINITY, form2)
774
- Even pages have form1 and odd pages have form2
775
(DJP_MXF_INFINITY, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
776
or (DJP_MXF_INFINITY, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
778
- First page has form1, even pages have form2 and odd pages have form3
779
(DJP_MXF_INFINITY, 1, form1) (DJP_MXF_ODD, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
780
or (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_EVEN, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
785
DJP_MXF_INFINITY = -(1);
789
{ Starting page number }
790
{ Ending page number }
791
{ Form associated with the range }
795
TdjpMixedForms = record
796
lStartRange : Longint;
798
djpfmForm : TDJPT_FORM;
800
TDJPT_MIXEDFORMS = TdjpMixedForms;
801
TPDJPT_MIXEDFORMS = ^TdjpMixedForms;
802
{ -----------------------------------------------------------------
803
DJP_SJ_FONTDOWNLOADING
805
{ Device does not support downloading }
809
{ Download fonts to printer }
810
DJP_FDL_DOWNLOAD = 1;
813
{ Substitute device fonts for system }
814
DJP_FDL_SUBSTITUTE = 3;
818
TDJPT_FONTDOWNLOADING = Cardinal;
820
TPDJPT_FONTDOWNLOADING = Cardinal;
821
{ -----------------------------------------------------------------
824
{ Device does not support duplex }
828
{ Duplex is turned off }
835
TDJPT_DUPLEX = Cardinal;
837
TPDJPT_DUPLEX = Cardinal;
838
{ -----------------------------------------------------------------
841
{ Device does not support collation }
847
{ more for printer dialogs than }
848
DJP_COL_PRINTER_SETTING = 3;
849
{ programmatic control. Use }
850
{ the setting on the printer panel. }
854
TDJPT_COLLATE = Cardinal;
856
TPDJPT_COLLATE = Cardinal;
857
{ -----------------------------------------------------------------
863
DJP_FED_AUTOMATIC = 2;
867
TDJPT_FEED = Cardinal;
869
TPDJPT_FEED = Cardinal;
870
{ -----------------------------------------------------------------
873
This is the number of copies on a per page basis. This is not
877
TDJPT_COPIES = Cardinal;
879
TPDJPT_COPIES = Cardinal;
880
{ -----------------------------------------------------------------
883
This is a percentage value. This is not enumerateable.
886
TDJPT_SCALING = Longint;
888
TPDJPT_SCALING = Longint;
889
{ -----------------------------------------------------------------
890
DJP_SJ_FORMFEEDCONTROL
892
This is a property that effects raw data jobs (print from the
893
command line, DOS print jobs, Windows print jobs). This checks
894
the very last byte of the data stream to see if it is a form
895
feed control character.
902
DJP_FFC_CONDITIONAL = 2;
904
DJP_FFC_COMPULSORY = 3;
908
TDJPT_FORMFEEDCONTROL = Cardinal;
910
TPDJPT_FORMFEEDCONTROL = Cardinal;
911
{ -----------------------------------------------------------------
914
Number of logical pages per physical page (ex: 2-up, 4-up)
919
TPDJPT_NUP = Longint;
920
{ -----------------------------------------------------------------
923
Setting will only use szBinname.
925
Querying will return all fields filled in.
929
{ v-= Informational only =-v }
930
{ Display Bin name (translated) }
931
{ Bin id # (-1 for no id) }
933
TdjpOutputBin = record
935
szDisplayBinname : Str64;
938
TDJPT_OUTPUTBIN = TdjpOutputBin;
939
TPDJPT_OUTPUTBIN = ^TdjpOutputBin;
940
{ -----------------------------------------------------------------
943
Setting will match only szTrayname. The perfered way to set which
944
tray to use is DJP_CJ_FORM. Otherwise, you are not guaranteed a
945
unique match for all three form, tray, and media possibilities.
947
Querying will return all fields filled in.
951
{ v-= Informational only =-v }
952
{ Display Tray name (translated) }
953
{ Simple tray id (if not DJP_NONE) }
955
TdjpInputTray = record
957
szDisplayTrayname : Str64;
958
djpttTrayID : TDJPT_TRAYTYPE;
960
TDJPT_TRAYNAME = TdjpInputTray;
961
TPDJPT_TRAYNAME = ^TdjpInputTray;
964
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
965
function DevCloseDC(ahdc: cardinal): cardinal; cdecl;
966
function DevEscape(ahdc: cardinal; lCode, lInCount: Longint; var pbInData; var plOutCount: Longint; var pbOutData): Longint; cdecl;
967
function DevQueryCaps(ahdc: cardinal; lStart, lCount: Longint; var alArray: Longint): Longbool; cdecl;
968
function DevQueryDeviceNames(ahab: HAB; pszDriverName: PChar; var pldn: Longint; aDeviceName: Str32; aDeviceDesc: Str64; var pldt: Longint; aDataType: Str16): Longbool; cdecl;
969
function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var phciHcInfo: HCInfo): Longint; cdecl;
970
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PChar; flOptions: cardinal): Longint; cdecl;
974
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
975
external 'PMGPI' index 610;
976
function DevCloseDC(ahdc: cardinal): cardinal; cdecl;
977
external 'PMGPI' index 604;
978
function DevEscape(ahdc: cardinal; lCode, lInCount: Longint; var pbInData; var plOutCount: Longint; var pbOutData): Longint; cdecl;
979
external 'PMGPI' index 605;
980
function DevQueryCaps(ahdc: cardinal; lStart, lCount: Longint;var alArray: Longint): Longbool; cdecl;
981
external 'PMGPI' index 606;
982
function DevQueryDeviceNames(ahab: HAB; pszDriverName: PChar; var pldn: Longint; aDeviceName: Str32; aDeviceDesc: Str64; var pldt: Longint; aDataType: Str16): Longbool; cdecl;
983
external 'PMGPI' index 607;
984
function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var phciHcInfo: HCInfo): Longint; cdecl;
985
external 'PMGPI' index 608;
986
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PChar; flOptions: cardinal): Longint; cdecl;
987
external 'PMGPI' index 609;
990
#define QUERYSIZE_HEADER_SIZE (sizeof (QUERYSIZE) - sizeof (((PQUERYSIZE)NULL)->aTuples))
992
// function QUERYSIZE_HEADER_SIZE : longint;
993
// { return type might be wrong }
995
// QUERYSIZE_HEADER_SIZE:=(sizeof(QUERYSIZE)) - (sizeof((TPQUERYSIZE(NULL))^.aTuples));
998
// #define DJP_HEADER_SIZE (sizeof (DJP_ITEM) - sizeof (((PDJP_ITEM)NULL)->ulValue))
999
// #define DJP_NEXT_STRUCTP(p) ((PDJP_ITEM)((PBYTE)(p) + (p)->cb))
1000
// #define DJP_ELEMENTP(s,t) ((t*)&((s).ulValue))
1001
// #define DJP_SET_ELEMENT(s,t,e) (*DJP_ELEMENTP (s,t) = (e))
1003
{ was #define dname def_expr }
1004
// function DJP_HEADER_SIZE : longint;
1005
// { return type might be wrong }
1007
// DJP_HEADER_SIZE:=(sizeof(DJP_ITEM)) - (sizeof((TPDJP_ITEM(NULL))^.ulValue));
1010
{ was #define dname(params) para_def_expr }
1011
{ argument types are unknown }
1012
// function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
1014
// DJP_NEXT_STRUCTP:=TPDJP_ITEM((TPBYTE(p)) + (p^.cb));
1017
{ was #define dname(params) para_def_expr }
1018
{ argument types are unknown }
1019
// function DJP_ELEMENTP(s,t : longint) : ^Tt;
1021
// DJP_ELEMENTP:=^Tt(@(s.ulValue));