|
@@ -17,7 +17,7 @@
|
|
|
|
|
|
{Warning: This code is alfa. Future versions
|
|
|
of this unit might not be compatible.}
|
|
|
-
|
|
|
+
|
|
|
unit pmdev;
|
|
|
|
|
|
interface
|
|
@@ -44,16 +44,16 @@ const
|
|
|
CAPS_IO_CAPS =1;
|
|
|
CAPS_TECHNOLOGY =2;
|
|
|
CAPS_DRIVER_VERSION =3;
|
|
|
- CAPS_WIDTH =4; //pels
|
|
|
- CAPS_HEIGHT =5; //pels
|
|
|
+ CAPS_WIDTH =4; //pels
|
|
|
+ CAPS_HEIGHT =5; //pels
|
|
|
CAPS_WIDTH_IN_CHARS =6;
|
|
|
CAPS_HEIGHT_IN_CHARS =7;
|
|
|
- CAPS_HORIZONTAL_RESOLUTION =8; //pels per meter
|
|
|
- CAPS_VERTICAL_RESOLUTION =9; //pels per meter
|
|
|
- CAPS_CHAR_WIDTH =10; //pels
|
|
|
- CAPS_CHAR_HEIGHT =11; //pels
|
|
|
- CAPS_SMALL_CHAR_WIDTH =12; //pels
|
|
|
- CAPS_SMALL_CHAR_HEIGHT =13; //pels
|
|
|
+ CAPS_HORIZONTAL_RESOLUTION =8; //pels per meter
|
|
|
+ CAPS_VERTICAL_RESOLUTION =9; //pels per meter
|
|
|
+ CAPS_CHAR_WIDTH =10; //pels
|
|
|
+ CAPS_CHAR_HEIGHT =11; //pels
|
|
|
+ CAPS_SMALL_CHAR_WIDTH =12; //pels
|
|
|
+ CAPS_SMALL_CHAR_HEIGHT =13; //pels
|
|
|
CAPS_COLORS =14;
|
|
|
CAPS_COLOR_PLANES =15;
|
|
|
CAPS_COLOR_BITCOUNT =16;
|
|
@@ -67,8 +67,8 @@ const
|
|
|
CAPS_WINDOW_BYTE_ALIGNMENT =22;
|
|
|
CAPS_BITMAP_FORMATS =23;
|
|
|
CAPS_RASTER_CAPS =24;
|
|
|
- CAPS_MARKER_HEIGHT =25; //pels
|
|
|
- CAPS_MARKER_WIDTH =26; //pels
|
|
|
+ CAPS_MARKER_HEIGHT =25; //pels
|
|
|
+ CAPS_MARKER_WIDTH =26; //pels
|
|
|
CAPS_DEVICE_FONTS =27;
|
|
|
CAPS_GRAPHICS_SUBSET =28;
|
|
|
CAPS_GRAPHICS_VERSION =29;
|
|
@@ -82,13 +82,13 @@ const
|
|
|
CAPS_DEVICE_FONT_SIM =39;
|
|
|
CAPS_LINEWIDTH_THICK =40;
|
|
|
CAPS_DEVICE_POLYSET_POINTS =41;
|
|
|
-
|
|
|
+
|
|
|
//Constants for CAPS_IO_CAPS
|
|
|
CAPS_IO_DUMMY =1;
|
|
|
CAPS_IO_SUPPORTS_OP =2;
|
|
|
CAPS_IO_SUPPORTS_IP =3;
|
|
|
CAPS_IO_SUPPORTS_IO =4;
|
|
|
-
|
|
|
+
|
|
|
//Constants for CAPS_TECHNOLOGY
|
|
|
CAPS_TECH_UNKNOWN =0;
|
|
|
CAPS_TECH_VECTOR_PLOTTER =1;
|
|
@@ -96,7 +96,7 @@ const
|
|
|
CAPS_TECH_RASTER_PRINTER =3;
|
|
|
CAPS_TECH_RASTER_CAMERA =4;
|
|
|
CAPS_TECH_POSTSCRIPT =5;
|
|
|
-
|
|
|
+
|
|
|
//Constants for CAPS_COLOR_TABLE_SUPPORT
|
|
|
CAPS_COLTABL_RGB_8 =1;
|
|
|
CAPS_COLTABL_RGB_8_PLUS =2;
|
|
@@ -182,7 +182,7 @@ type
|
|
|
ybottom: Longint;
|
|
|
xright: Longint;
|
|
|
ytop: Longint;
|
|
|
- end;
|
|
|
+ end;
|
|
|
|
|
|
//return codes for DevEscape
|
|
|
const
|
|
@@ -236,7 +236,6 @@ const
|
|
|
|
|
|
//string types for DevQueryDeviceNames
|
|
|
type
|
|
|
- Str8 = Array[0..7] of Char;
|
|
|
Str16= Array[0..15] of Char;
|
|
|
Str32= Array[0..31] of Char;
|
|
|
Str64= Array[0..63] of Char;
|
|
@@ -266,6 +265,703 @@ type
|
|
|
flAttributes: Longint;
|
|
|
end;
|
|
|
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ Tuple Item used for QUERYSIZE
|
|
|
+ }
|
|
|
+ { djpQRT }
|
|
|
+ { I - Property }
|
|
|
+ { I - type (DJP_ALL or DJP_CURRENT) }
|
|
|
+ { }
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TdjpQueryTuple = record
|
|
|
+ ulProperty : Cardinal;
|
|
|
+ lType : Longint;
|
|
|
+ end;
|
|
|
+ TQUERYTUPLE = TdjpQueryTuple;
|
|
|
+ TPQUERYTUPLE = ^TdjpQueryTuple;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ Query Size Structure for DEVESC_QUERYSIZE
|
|
|
+ }
|
|
|
+ { djpQRS }
|
|
|
+ { I - Size of entire structure }
|
|
|
+ { O - Size returned; }
|
|
|
+ { I - Start of tuple list }
|
|
|
+ { use DJP_NONE for end of list }
|
|
|
+
|
|
|
+ TdjpQuerySize = record
|
|
|
+ cb : Cardinal;
|
|
|
+ ulSizeNeeded : Cardinal;
|
|
|
+ aTuples : array[0..0] of TQUERYTUPLE;
|
|
|
+ end;
|
|
|
+ TQUERYSIZE = TdjpQuerySize;
|
|
|
+ TPQUERYSIZE = ^TdjpQuerySize;
|
|
|
+ { was #define dname def_expr }
|
|
|
+// function QUERYSIZE_HEADER_SIZE : longint;
|
|
|
+ { return type might be wrong }
|
|
|
+
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ Dynamic Job Property Item
|
|
|
+ }
|
|
|
+ { djpITM }
|
|
|
+ { I/O - sizeof DJP_ITEM structure }
|
|
|
+ { I - Which property }
|
|
|
+ { I/O - DJP_ALL or DJP_CURRENT. }
|
|
|
+ { DJP_ERROR_XXX if error. }
|
|
|
+ { O - How many elements have been }
|
|
|
+ { returned }
|
|
|
+ { O - Variably sized based on }
|
|
|
+ { ulProperty. The smallest }
|
|
|
+ { is a ULONG in size }
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TdjpItem = record
|
|
|
+ cb : Cardinal;
|
|
|
+ ulProperty : Cardinal;
|
|
|
+ lType : Longint;
|
|
|
+ ulNumReturned : Cardinal;
|
|
|
+ ulValue : Cardinal;
|
|
|
+ end;
|
|
|
+ TDJP_ITEM = TdjpItem;
|
|
|
+ TPDJP_ITEM = ^TdjpItem;
|
|
|
+ { was #define dname def_expr }
|
|
|
+// function DJP_HEADER_SIZE : longint;
|
|
|
+ { return type might be wrong }
|
|
|
+
|
|
|
+ { was #define dname(params) para_def_expr }
|
|
|
+ { argument types are unknown }
|
|
|
+// function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
|
|
|
+
|
|
|
+ { was #define dname(params) para_def_expr }
|
|
|
+ { argument types are unknown }
|
|
|
+// function DJP_ELEMENTP(s,t : longint) : ^Tt;
|
|
|
+
|
|
|
+(* error
|
|
|
+ #define DJP_SET_ELEMENT(s,t,e) ( *DJP_ELEMENTP (s,t) = (e))
|
|
|
+in define line 83 *)
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ Types of Dynamic Job Properties
|
|
|
+
|
|
|
+ To see if the driver is enabled use,
|
|
|
+ DevEscape (DEVESC_QUERYESCSUPPORT,
|
|
|
+ DEVESC_STARTDOC_WPROP, ...)
|
|
|
+ and DevQueryDevice (DEVQRY_QUERYSUPPORT,
|
|
|
+ DEVESC_QUERYJOBPROPERTIES, ...)
|
|
|
+
|
|
|
+ NOTE: The C/S in the defines indicate the complexity or size of
|
|
|
+ the information. If it is s, then the size is ULONG sized
|
|
|
+ and no special processing for the next element needs to be
|
|
|
+ done.
|
|
|
+ The J/P in the defines indicate the class. J stands for job
|
|
|
+ properties and P stands for printer properties.
|
|
|
+ }
|
|
|
+ { also End Of List marker }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_NONE = 0;
|
|
|
+ DJP_SJ_ORIENTATION = 1;
|
|
|
+ DJP_CJ_RESOLUTION = 2;
|
|
|
+ DJP_SJ_BITSPERPEL = 3;
|
|
|
+ DJP_SJ_COLOR = 4;
|
|
|
+ DJP_SJ_PRINTQUALITY = 5;
|
|
|
+ DJP_SJ_PAPERSIZE = 6;
|
|
|
+ DJP_SJ_TRAYTYPE = 7;
|
|
|
+ DJP_SJ_MEDIA = 8;
|
|
|
+ DJP_SJ_MEDIA_COLOR = 9;
|
|
|
+ DJP_CJ_FORM = 10;
|
|
|
+ DJP_CJ_MIXEDFORMS = 11;
|
|
|
+ DJP_SJ_FONTDOWNLOADING = 12;
|
|
|
+ DJP_SJ_DUPLEX = 13;
|
|
|
+ DJP_SJ_COLLATE = 14;
|
|
|
+ DJP_SJ_FEED = 15;
|
|
|
+ DJP_SJ_COPIES = 16;
|
|
|
+ DJP_SJ_SCALING = 17;
|
|
|
+ DJP_SJ_FORMFEEDCONTROL = 18;
|
|
|
+ DJP_SJ_N_UP = 19;
|
|
|
+ DJP_CJ_OUTPUTBIN = 20;
|
|
|
+ DJP_CJ_TRAYNAME = 21;
|
|
|
+ { Types for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
|
|
|
+ }
|
|
|
+ { enumerate the property }
|
|
|
+ DJP_ALL = 1;
|
|
|
+ { from job properties }
|
|
|
+ DJP_CURRENT = 2;
|
|
|
+ { Errors for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
|
|
|
+ }
|
|
|
+ { driver doesnt support that property }
|
|
|
+ DJP_ERROR_NOT_SUPPORTED = -(1);
|
|
|
+ { not in the valid range }
|
|
|
+ DJP_ERROR_OUT_OF_RANGE = -(2);
|
|
|
+ { not enumerateable }
|
|
|
+ DJP_ERROR_NOT_ENUM = -(3);
|
|
|
+ { field not proper value }
|
|
|
+ DJP_ERROR_INV_PARMS = -(4);
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_ORIENTATION
|
|
|
+ }
|
|
|
+ DJP_ORI_PORTRAIT = 1;
|
|
|
+ DJP_ORI_LANDSCAPE = 2;
|
|
|
+ DJP_ORI_REV_PORTRAIT = 3;
|
|
|
+ DJP_ORI_REV_LANDSCAPE = 4;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_ORIENTATION = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_ORIENTATION = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_CJ_RESOLUTION
|
|
|
+ }
|
|
|
+ { djpRES }
|
|
|
+ { X resolution (in dots per inch) }
|
|
|
+ { Y resolution (in dots per inch) }
|
|
|
+
|
|
|
+ TdjpResolution = record
|
|
|
+ usXResolution : Word;
|
|
|
+ usYResolution : Word;
|
|
|
+ end;
|
|
|
+ TDJPT_RESOLUTION = TdjpResolution;
|
|
|
+ TPDJPT_RESOLUTION = ^TdjpResolution;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_BITSPERPEL
|
|
|
+ }
|
|
|
+
|
|
|
+ TDJPT_BITSPERPEL = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_BITSPERPEL = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_COLOR
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_CLR_MONOCHROME = 1;
|
|
|
+ DJP_CLR_COLOR = 2;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_COLOR = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_COLOR = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_PRINTQUALITY
|
|
|
+
|
|
|
+ Note: DJP_PQL_DRAFT is the worst quality. In the future, there
|
|
|
+ may be better qualities (such as DJP_PQL_ULTRA_HIGH) which
|
|
|
+ will be numerically greater than DJP_PQL_HIGH.
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_PQL_DRAFT = 1;
|
|
|
+ DJP_PQL_LOW = 2;
|
|
|
+ DJP_PQL_MEDIUM = 3;
|
|
|
+ DJP_PQL_HIGH = 4;
|
|
|
+ DJP_PQL_LAST = DJP_PQL_HIGH;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_PRINTQUALITY = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_PRINTQUALITY = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_PAPERSIZE
|
|
|
+
|
|
|
+ Note: it is recommended to use DJP_CJ_FORM to chage the papersize.
|
|
|
+ approximate size
|
|
|
+ }
|
|
|
+ { inches millimeters }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_PSI_NONE = 0;
|
|
|
+ { 8.5 x 11 216 x 279 }
|
|
|
+ DJP_PSI_LETTER = 1;
|
|
|
+ { 8.5 x 14 216 x 356 }
|
|
|
+ DJP_PSI_LEGAL = 2;
|
|
|
+ { 13.58 x 11 345 x 279 }
|
|
|
+ DJP_PSI_WIDE = 3;
|
|
|
+ { 17 x 22 431 x 558 }
|
|
|
+ DJP_PSI_CSHEET = 4;
|
|
|
+ { 22 x 34 558 x 863 }
|
|
|
+ DJP_PSI_DSHEET = 5;
|
|
|
+ { 34 x 44 863 x 1117 }
|
|
|
+ DJP_PSI_ESHEET = 6;
|
|
|
+ { }
|
|
|
+ DJP_PSI_LETTERSMALL = 7;
|
|
|
+ { 11 x 17 279 x 431 }
|
|
|
+ DJP_PSI_TABLOID = 8;
|
|
|
+ { 17 x 11 431 x 279 }
|
|
|
+ DJP_PSI_LEDGER = 9;
|
|
|
+ { 5.5 x 8.5 139 x 216 }
|
|
|
+ DJP_PSI_STATEMENT = 10;
|
|
|
+ { 7.25 x 10.5 184 x 266 }
|
|
|
+ DJP_PSI_EXECUTIVE = 11;
|
|
|
+ { 33.11 x 46.81 841 x 1189 }
|
|
|
+ DJP_PSI_A0 = 12;
|
|
|
+ { 23.39 x 33.11 594 x 841 }
|
|
|
+ DJP_PSI_A1 = 13;
|
|
|
+ { 16.54 x 23.39 420 x 594 }
|
|
|
+ DJP_PSI_A2 = 14;
|
|
|
+ { 11.7 x 16.54 297 x 420 }
|
|
|
+ DJP_PSI_A3 = 15;
|
|
|
+ { 8.3 x 11.7 210 x 297 }
|
|
|
+ DJP_PSI_A4 = 16;
|
|
|
+ { }
|
|
|
+ DJP_PSI_A4_SMALL = 17;
|
|
|
+ { 5.83 x 8.27 148 x 210 }
|
|
|
+ DJP_PSI_A5 = 18;
|
|
|
+ { 9.84 x 13.94 250 x 354 }
|
|
|
+ DJP_PSI_B4 = 19;
|
|
|
+ { 7.17 x 10.12 182 x 257 }
|
|
|
+ DJP_PSI_B5 = 20;
|
|
|
+ { 8.5 x 13 216 x 330 }
|
|
|
+ DJP_PSI_FOLIO = 21;
|
|
|
+ { 8.46 x 10.83 215 x 275 }
|
|
|
+ DJP_PSI_QUATRO = 22;
|
|
|
+ { 10 x 14 254 x 355 }
|
|
|
+ DJP_PSI_10X14 = 23;
|
|
|
+ { 11 x 17 279 x 431 }
|
|
|
+ DJP_PSI_11X17 = 24;
|
|
|
+ { }
|
|
|
+ DJP_PSI_NOTE = 25;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_9 = 26;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_10 = 27;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_11 = 28;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_12 = 29;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_14 = 30;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_DL = 31;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_A2 = 32;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C3 = 33;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C4 = 34;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C5 = 35;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C6 = 36;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C65 = 37;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C9 = 38;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_C10 = 39;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_B4 = 40;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_B5 = 41;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_B6 = 42;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_ITALY = 43;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_MONARCH = 44;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ENV_PERSONAL = 45;
|
|
|
+ { }
|
|
|
+ DJP_PSI_FANFOLD_US = 46;
|
|
|
+ { }
|
|
|
+ DJP_PSI_FANFOLD_STD_GERMAN = 47;
|
|
|
+ { }
|
|
|
+ DJP_PSI_FANFOLD_LGL_GERMAN = 48;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ARCHITECT_BSHEET = 49;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ARCHITECT_CSHEET = 50;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ARCHITECT_DSHEET = 51;
|
|
|
+ { }
|
|
|
+ DJP_PSI_ARCHITECT_ESHEET = 52;
|
|
|
+ { }
|
|
|
+ DJP_PSI_CARD_A6 = 53;
|
|
|
+ { }
|
|
|
+ DJP_PSI_CARD_4X6 = 54;
|
|
|
+ { }
|
|
|
+ DJP_PSI_CARD_5X8 = 55;
|
|
|
+ { }
|
|
|
+ DJP_PSI_CARD_HAGAKI = 56;
|
|
|
+ { 1.10 x 3.50 28 x 89 }
|
|
|
+ DJP_PSI_LABEL_STANDARD = 57;
|
|
|
+ { 3.98 x 2.13 101 x 54 }
|
|
|
+ DJP_PSI_LABEL_SHIPPING = 58;
|
|
|
+ { 2.76 x 2.13 70 x 54 }
|
|
|
+ DJP_PSI_LABEL_DISK = 59;
|
|
|
+ { 3.50 x 1.42 89 x 36 }
|
|
|
+ DJP_PSI_LABEL_EURO = 60;
|
|
|
+ { }
|
|
|
+ DJP_PSI_CARD_OUFUKU_HAGAKI = 61;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B0 = 62;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B1 = 63;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B2 = 64;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B3 = 65;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B6 = 66;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B7 = 67;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B8 = 68;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B9 = 69;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B10 = 70;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B0_JIS = 71;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B1_JIS = 72;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B2_JIS = 73;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B3_JIS = 74;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B4_JIS = 75;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B5_JIS = 76;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B6_JIS = 77;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B7_JIS = 78;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B8_JIS = 79;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B9_JIS = 80;
|
|
|
+ { }
|
|
|
+ DJP_PSI_B10_JIS = 81;
|
|
|
+ DJP_PSI_LAST = DJP_PSI_B10_JIS;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_PAPERSIZE = Longint;
|
|
|
+
|
|
|
+ TPDJPT_PAPERSIZE = Longint;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_TRAYTYPE
|
|
|
+
|
|
|
+ Note: it is recommended to use DJP_CJ_FORM to chage the tray type.
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_TRY_NONE = 0;
|
|
|
+ DJP_TRY_UPPER = 1;
|
|
|
+ DJP_TRY_ONLYONE = DJP_TRY_UPPER;
|
|
|
+ DJP_TRY_LOWER = 2;
|
|
|
+ DJP_TRY_MIDDLE = 3;
|
|
|
+ DJP_TRY_MANUAL = 4;
|
|
|
+ DJP_TRY_ENVELOPE = 5;
|
|
|
+ DJP_TRY_ENVMANUAL = 6;
|
|
|
+ DJP_TRY_AUTO = 7;
|
|
|
+ DJP_TRY_TRACTOR = 8;
|
|
|
+ DJP_TRY_SMALLFMT = 9;
|
|
|
+ DJP_TRY_LARGEFMT = 10;
|
|
|
+ DJP_TRY_LARGECAPACITY = 11;
|
|
|
+ DJP_TRY_CASSETTE = 12;
|
|
|
+ DJP_TRY_LAST = DJP_TRY_CASSETTE;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_TRAYTYPE = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_TRAYTYPE = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_MEDIA
|
|
|
+
|
|
|
+ Note: it is recommended to use DJP_CJ_FORM to chage the media type.
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_MED_NONE = 0;
|
|
|
+ DJP_MED_PLAIN = 1;
|
|
|
+ DJP_MED_TRANSPARENCY = 2;
|
|
|
+ DJP_MED_GLOSSY = 3;
|
|
|
+ DJP_MED_SPECIAL = 4;
|
|
|
+ DJP_MED_COATED = 5;
|
|
|
+ DJP_MED_BACKPRINT = 6;
|
|
|
+ DJP_MED_CLOTH = 7;
|
|
|
+ DJP_MED_THICK = 8;
|
|
|
+ DJP_MED_STATIONARY = 9;
|
|
|
+ DJP_MED_ENVELOPE = 10;
|
|
|
+ DJP_MED_CONTINUOUS_LONG = 11;
|
|
|
+ DJP_MED_CONTINUOUS_SHORT = 12;
|
|
|
+ DJP_MED_TAB_STOCK = 13;
|
|
|
+ DJP_MED_MULTI_PART_FORM = 14;
|
|
|
+ DJP_MED_LABELS = 15;
|
|
|
+ DJP_MED_LAST = DJP_MED_LABELS;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_MEDIA = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_MEDIA = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_MEDIA_COLOR
|
|
|
+
|
|
|
+ Select the media color (for the same media types).
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_MDC_BLUE = 1;
|
|
|
+ DJP_MDC_BLUFF = 2;
|
|
|
+ DJP_MDC_GOLDENROD = 3;
|
|
|
+ DJP_MDC_GREEN = 4;
|
|
|
+ DJP_MDC_PINK = 5;
|
|
|
+ DJP_MDC_TRANSPARENT = 6;
|
|
|
+ DJP_MDC_WHITE = 7;
|
|
|
+ DJP_MDC_YELLOW = 8;
|
|
|
+ DJP_MDC_LAST = DJP_MDC_YELLOW;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_MEDIA_COLOR = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_MEDIA_COLOR = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_CJ_FORM
|
|
|
+
|
|
|
+ Setting will match all three fields. If szTrayname or szMedianame
|
|
|
+ is null then it will be defaulted to the first one found.
|
|
|
+
|
|
|
+ Querying will return all fields filled in.
|
|
|
+ }
|
|
|
+ { djpFRM }
|
|
|
+ { System Form name }
|
|
|
+ { System Tray name }
|
|
|
+ { System Media name }
|
|
|
+ { v-= Informational only =-v }
|
|
|
+ { Corresponding hard copy info }
|
|
|
+ { Display Form name (translated) }
|
|
|
+ { Display Tray name (translated) }
|
|
|
+ { Display Media name (translated) }
|
|
|
+ { Simple form id (if not DJP_NONE) }
|
|
|
+ { Simple tray id (if not DJP_NONE) }
|
|
|
+ { Simple media id (if not DJP_NONE) }
|
|
|
+
|
|
|
+ TdjpForm = record
|
|
|
+ szFormname : array[0..31] of Char;
|
|
|
+ szTrayname : array[0..31] of Char;
|
|
|
+ szMedianame : array[0..31] of Char;
|
|
|
+ ahcInfo : HCINFO;
|
|
|
+ szDisplayFormname : array[0..63] of Char;
|
|
|
+ szDisplayTrayname : array[0..63] of Char;
|
|
|
+ szDisplayMedianame : array[0..63] of Char;
|
|
|
+ djppsFormID : TDJPT_PAPERSIZE;
|
|
|
+ djpttTrayID : TDJPT_TRAYTYPE;
|
|
|
+ djpmdMediaID : TDJPT_MEDIA;
|
|
|
+ end;
|
|
|
+ TDJPT_FORM = TdjpForm;
|
|
|
+ TPDJPT_FORM = ^TdjpForm;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_CJ_MIXEDFORMS
|
|
|
+
|
|
|
+ This is unique in that both setting and querying can have multiple
|
|
|
+ elements. Both the first page and the last page are DJP_MXF_INFINITY
|
|
|
+ (which is the separator for individual elements).
|
|
|
+ Some examples are:
|
|
|
+
|
|
|
+ - Only one form (form1) for the entire job.
|
|
|
+ (DJP_MXF_INFINITY, DJP_MXF_INFINITY, form1)
|
|
|
+
|
|
|
+ - Page 1 has form1, then pages 2 ... n have form2.
|
|
|
+ (DJP_MXF_INFINITY, 1, form1) (2, DJP_MXF_INFINITY, form2)
|
|
|
+
|
|
|
+ - Even pages have form1 and odd pages have form2
|
|
|
+ (DJP_MXF_INFINITY, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
|
|
|
+ or (DJP_MXF_INFINITY, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
|
|
|
+
|
|
|
+ - First page has form1, even pages have form2 and odd pages have form3
|
|
|
+ (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_ODD, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
|
|
|
+ or (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_EVEN, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_MXF_INFINITY = -(1);
|
|
|
+ DJP_MXF_ODD = -(2);
|
|
|
+ DJP_MXF_EVEN = -(3);
|
|
|
+ { djpMXF }
|
|
|
+ { Starting page number }
|
|
|
+ { Ending page number }
|
|
|
+ { Form associated with the range }
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TdjpMixedForms = record
|
|
|
+ lStartRange : Longint;
|
|
|
+ lEndRange : Longint;
|
|
|
+ djpfmForm : TDJPT_FORM;
|
|
|
+ end;
|
|
|
+ TDJPT_MIXEDFORMS = TdjpMixedForms;
|
|
|
+ TPDJPT_MIXEDFORMS = ^TdjpMixedForms;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_FONTDOWNLOADING
|
|
|
+ }
|
|
|
+ { Device does not support downloading }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_FDL_NONE = 0;
|
|
|
+ { Download fonts to printer }
|
|
|
+ DJP_FDL_DOWNLOAD = 1;
|
|
|
+ { Rasterize fonts }
|
|
|
+ DJP_FDL_BITMAP = 2;
|
|
|
+ { Substitute device fonts for system }
|
|
|
+ DJP_FDL_SUBSTITUTE = 3;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_FONTDOWNLOADING = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_FONTDOWNLOADING = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_DUPLEX
|
|
|
+ }
|
|
|
+ { Device does not support duplex }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_DUP_NONE = 0;
|
|
|
+ { Duplex is turned off }
|
|
|
+ DJP_DUP_OFF = 1;
|
|
|
+ DJP_DUP_BOOK = 2;
|
|
|
+ DJP_DUP_FLIP = 3;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_DUPLEX = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_DUPLEX = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_COLLATE
|
|
|
+ }
|
|
|
+ { Device does not support collation }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_COL_NONE = 0;
|
|
|
+ DJP_COL_OFF = 1;
|
|
|
+ DJP_COL_ON = 2;
|
|
|
+ { more for printer dialogs than }
|
|
|
+ DJP_COL_PRINTER_SETTING = 3;
|
|
|
+ { programmatic control. Use }
|
|
|
+ { the setting on the printer panel. }
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_COLLATE = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_COLLATE = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_FEED
|
|
|
+ }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_FED_MANUAL = 1;
|
|
|
+ DJP_FED_AUTOMATIC = 2;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_FEED = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_FEED = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_COPIES
|
|
|
+
|
|
|
+ This is the number of copies on a per page basis. This is not
|
|
|
+ enumerateable.
|
|
|
+ }
|
|
|
+
|
|
|
+ TDJPT_COPIES = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_COPIES = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_SCALING
|
|
|
+
|
|
|
+ This is a percentage value. This is not enumerateable.
|
|
|
+ }
|
|
|
+
|
|
|
+ TDJPT_SCALING = Longint;
|
|
|
+
|
|
|
+ TPDJPT_SCALING = Longint;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_FORMFEEDCONTROL
|
|
|
+
|
|
|
+ This is a property that effects raw data jobs (print from the
|
|
|
+ command line, DOS print jobs, Windows print jobs). This checks
|
|
|
+ the very last byte of the data stream to see if it is a form
|
|
|
+ feed control character.
|
|
|
+ }
|
|
|
+ { Never add }
|
|
|
+
|
|
|
+ const
|
|
|
+ DJP_FFC_NONE = 1;
|
|
|
+ { Add if not seen }
|
|
|
+ DJP_FFC_CONDITIONAL = 2;
|
|
|
+ { Always add }
|
|
|
+ DJP_FFC_COMPULSORY = 3;
|
|
|
+
|
|
|
+ type
|
|
|
+
|
|
|
+ TDJPT_FORMFEEDCONTROL = Cardinal;
|
|
|
+
|
|
|
+ TPDJPT_FORMFEEDCONTROL = Cardinal;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_SJ_N_UP
|
|
|
+
|
|
|
+ Number of logical pages per physical page (ex: 2-up, 4-up)
|
|
|
+ }
|
|
|
+
|
|
|
+ TDJPT_NUP = Longint;
|
|
|
+
|
|
|
+ TPDJPT_NUP = Longint;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_CJ_OUTPUTBIN
|
|
|
+
|
|
|
+ Setting will only use szBinname.
|
|
|
+
|
|
|
+ Querying will return all fields filled in.
|
|
|
+ }
|
|
|
+ { djpOBN }
|
|
|
+ { System Bin name }
|
|
|
+ { v-= Informational only =-v }
|
|
|
+ { Display Bin name (translated) }
|
|
|
+ { Bin id # (-1 for no id) }
|
|
|
+
|
|
|
+ TdjpOutputBin = record
|
|
|
+ szBinname : array[0..31] of Char;
|
|
|
+ szDisplayBinname : array[0..63] of Char;
|
|
|
+ lBinId : Longint;
|
|
|
+ end;
|
|
|
+ TDJPT_OUTPUTBIN = TdjpOutputBin;
|
|
|
+ TPDJPT_OUTPUTBIN = ^TdjpOutputBin;
|
|
|
+ { -----------------------------------------------------------------
|
|
|
+ DJP_CJ_TRAYNAME
|
|
|
+
|
|
|
+ Setting will match only szTrayname. The perfered way to set which
|
|
|
+ tray to use is DJP_CJ_FORM. Otherwise, you are not guaranteed a
|
|
|
+ unique match for all three form, tray, and media possibilities.
|
|
|
+
|
|
|
+ Querying will return all fields filled in.
|
|
|
+ }
|
|
|
+ { djpTry }
|
|
|
+ { System Tray name }
|
|
|
+ { v-= Informational only =-v }
|
|
|
+ { Display Tray name (translated) }
|
|
|
+ { Simple tray id (if not DJP_NONE) }
|
|
|
+
|
|
|
+ TdjpInputTray = record
|
|
|
+ szTrayname : array[0..31] of Char;
|
|
|
+ szDisplayTrayname : array[0..63] of Char;
|
|
|
+ djpttTrayID : TDJPT_TRAYTYPE;
|
|
|
+ end;
|
|
|
+ TDJPT_TRAYNAME = TdjpInputTray;
|
|
|
+ TPDJPT_TRAYNAME = ^TdjpInputTray;
|
|
|
+
|
|
|
+
|
|
|
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
|
|
|
function DevCloseDC(ahdc: cardinal): cardinal; cdecl;
|
|
|
function DevEscape(ahdc: cardinal; lCode, lInCount: Longint; var pbInData; var plOutCount: Longint; var pbOutData): Longint; cdecl;
|
|
@@ -273,7 +969,7 @@ function DevQueryCaps(ahdc: cardinal; lStart, lCount: Longint; var alArray: Long
|
|
|
function DevQueryDeviceNames(ahab: HAB; pszDriverName: PChar; var pldn: Longint; aDeviceName: Str32; aDeviceDesc: Str64; var pldt: Longint; aDataType: Str16): Longbool; cdecl;
|
|
|
function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var phciHcInfo: HCInfo): Longint; cdecl;
|
|
|
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PChar; flOptions: cardinal): Longint; cdecl;
|
|
|
-
|
|
|
+
|
|
|
implementation
|
|
|
|
|
|
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
|
|
@@ -290,13 +986,51 @@ function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var p
|
|
|
external 'PMGPI' index 608;
|
|
|
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PChar; flOptions: cardinal): Longint; cdecl;
|
|
|
external 'PMGPI' index 609;
|
|
|
-
|
|
|
+
|
|
|
+ { was
|
|
|
+ #define QUERYSIZE_HEADER_SIZE (sizeof (QUERYSIZE) - sizeof (((PQUERYSIZE)NULL)->aTuples))
|
|
|
+ }
|
|
|
+// function QUERYSIZE_HEADER_SIZE : longint;
|
|
|
+// { return type might be wrong }
|
|
|
+// begin
|
|
|
+// QUERYSIZE_HEADER_SIZE:=(sizeof(QUERYSIZE)) - (sizeof((TPQUERYSIZE(NULL))^.aTuples));
|
|
|
+// end;
|
|
|
+
|
|
|
+// #define DJP_HEADER_SIZE (sizeof (DJP_ITEM) - sizeof (((PDJP_ITEM)NULL)->ulValue))
|
|
|
+// #define DJP_NEXT_STRUCTP(p) ((PDJP_ITEM)((PBYTE)(p) + (p)->cb))
|
|
|
+// #define DJP_ELEMENTP(s,t) ((t*)&((s).ulValue))
|
|
|
+// #define DJP_SET_ELEMENT(s,t,e) (*DJP_ELEMENTP (s,t) = (e))
|
|
|
+
|
|
|
+ { was #define dname def_expr }
|
|
|
+// function DJP_HEADER_SIZE : longint;
|
|
|
+// { return type might be wrong }
|
|
|
+// begin
|
|
|
+// DJP_HEADER_SIZE:=(sizeof(DJP_ITEM)) - (sizeof((TPDJP_ITEM(NULL))^.ulValue));
|
|
|
+// end;
|
|
|
+
|
|
|
+ { was #define dname(params) para_def_expr }
|
|
|
+ { argument types are unknown }
|
|
|
+// function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
|
|
|
+// begin
|
|
|
+// DJP_NEXT_STRUCTP:=TPDJP_ITEM((TPBYTE(p)) + (p^.cb));
|
|
|
+// end;
|
|
|
+
|
|
|
+ { was #define dname(params) para_def_expr }
|
|
|
+ { argument types are unknown }
|
|
|
+// function DJP_ELEMENTP(s,t : longint) : ^Tt;
|
|
|
+// begin
|
|
|
+// DJP_ELEMENTP:=^Tt(@(s.ulValue));
|
|
|
+// end;
|
|
|
+
|
|
|
end.
|
|
|
|
|
|
{
|
|
|
|
|
|
$Log$
|
|
|
-Revision 1.1 2002-10-18 18:08:52 hajny
|
|
|
+Revision 1.2 2003-04-10 15:48:27 yuri
|
|
|
++ Dynamic jobs properties added
|
|
|
+
|
|
|
+Revision 1.1 2002/10/18 18:08:52 hajny
|
|
|
+ first version
|
|
|
|
|
|
|