1 {****************************************************************************
2 
3 
4     This file is part of the Free Pascal run time library.
5     Copyright (c) 2002 by the Free Pascal development team.
6 
7     OS/2 Presentation Manager spooler constants, types
8     and functions implemented in PMSPL.DLL.
9 
10     See the file COPYING.FPC, included in this distribution,
11     for details about the copyright.
12 
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 
17  ****************************************************************************}
18 
19 unit PMSpl;
20 
21 interface
22 
23 {$MODE OBJFPC}
24 
25 uses OS2Def;
26 
27 const
28     SPL_INI_SPOOLER       = 'PM_SPOOLER';
29     SPL_INI_QUEUE         = 'PM_SPOOLER_QUEUE';
30     SPL_INI_PRINTER       = 'PM_SPOOLER_PRINTER';
31     SPL_INI_PRINTERDESCR  = 'PM_SPOOLER_PRINTER_DESCR';
32     SPL_INI_QUEUEDESCR    = 'PM_SPOOLER_QUEUE_DESCR';
33     SPL_INI_QUEUEDD       = 'PM_SPOOLER_QUEUE_DD';
34     SPL_INI_QUEUEDDDATA   = 'PM_SPOOLER_QUEUE_DDDATA';
35 
36 { General SPL return values }
37     SPL_ERROR   = 0;
38     SPL_OK      = 1;
39 
40 type
41 { Handle to a spool file }
42     HSpl = cardinal;
43 
44 { Used in recording of PM_Q_STD data via SplStdxxx calls }
45     HStd = cardinal;
46     PHStd = ^HStd;
47 
48 { Spooler manager open data }
49     QMOpenData = PChar;
50     PQMOpenData = ^PChar;
51 
52 { Spooler Queue Processor interface }
53 
54 const
55 { Control codes for SplQpControl }
56     SPLC_ABORT    =  1;
57     SPLC_PAUSE    =  2;
58     SPLC_CONTINUE =  3;
59 
60 { Flag defines for optional SplQpQueryFlags }
61 { Set this to allow spooler to bypass Queue Processor for PM_Q_Raw
62   jobs. This allows print while a job is still spooling. }
63     QP_RawData_Bypass = $00000001;
64 
65 type
66 { Handle to a spooler queue processor }
67     HProc = cardinal;
68 
69     PQPOpenData = ^PChar;
70 
71 const
72 { Definition for elements within the PQPOpenData block }
73     QPDAT_ADDRESS     =  0;
74     QPDAT_DRIVER_NAME =  1;
75     QPDAT_DRIVER_DATA =  2;
76     QPDAT_DATA_TYPE   =  3;
77     QPDAT_COMMENT     =  4;
78     QPDAT_PROC_PARAMS =  5;
79     QPDAT_SPL_PARAMS  =  6;      { SplQmOpen Spooler params }
80     QPDAT_NET_PARAMS  =  7;      { SplQmOpen Network params }
81     QPDAT_DOC_NAME    =  8;      { SplQmStartDoc name       }
82     QPDAT_QUEUE_NAME  =  9;      { Queue name for job       }
83     QPDAT_TOKEN       = 10;      { SplQmOpen token name     }
84     QPDAT_JOBID       = 11;      { SQM job identity         }
85 
86 type
87     TSQPOpenData = record
88         pszLogAddress: PChar;
89         pszDriverName: PChar;
90         pdriv: PDrivData;
91         pszDataType: PChar;
92         pszComment: PChar;
93         pszProcParams: PChar;
94         pszSpoolParams: PChar;
95         pszNetworkParams: PChar;
96         pszDocName: PChar;
97         pszQueueName: PChar;
98         pszToken: PChar;
99         idJobId: word;
100     end;
101     PSQPOpenData = ^TSQPOpenData;
102     SQPOpenData = TSQPOpenData;
103 
104 { Error information and return codes }
105 const
106 { Error information for SplMessageBox }
107     SPLINFO_QPERROR     =  $0001;
108     SPLINFO_DDERROR     =  $0002;
109     SPLINFO_SPLERROR    =  $0004;
110     SPLINFO_OTHERERROR  =  $0080;
111     SPLINFO_INFORMATION =  $0100;
112     SPLINFO_WARNING     =  $0200;
113     SPLINFO_ERROR       =  $0400;
114     SPLINFO_SEVERE      =  $0800;
115     SPLINFO_USERINTREQD =  $1000;
116 
117 { Error Data for SplMessageBox }
118     SPLDATA_PRINTERJAM   = $0001;
119     SPLDATA_FORMCHGREQD  = $0002;
120     SPLDATA_CARTCHGREQD  = $0004;
121     SPLDATA_PENCHGREQD   = $0008;
122     SPLDATA_DATAERROR    = $0010;
123     SPLDATA_UNEXPECTERROR= $0020;
124     SPLDATA_OTHER        = $8000;
125 
126 { Return code for fSplStdQueryLength }
127     SSQL_ERROR = -1;
128 
129 type
130     SPLERR = cardinal;
131 
132 const
133 { length for character arrays in structs (excluding zero terminator) }
134     CNLEN         = 15;             { Computer name length      }
135     UNLEN         = 20;             { Maximum user name length  }
136     QNLEN         = 12;             { Queue name maximum length }
137     PDLEN         =  8;             { Print destination length  }
138     DTLEN         =  9;             { Spool file data type      }
139                                     { e.g. PM_Q_STD,PM_Q_RAW    }
140     QP_DATATYPE_SIZE      = 15;     { returned by SplQpQueryDt  }
141     DRIV_DEVICENAME_SIZE  = 31;     { see DRIVDATA struc        }
142     DRIV_NAME_SIZE        =  8;     { name of device driver     }
143     PRINTERNAME_SIZE      = 32;     { max printer name length   }
144     FORMNAME_SIZE         = 31;     { max form name length      }
145     MAXCOMMENTSZ          = 48;     { queue comment length      }
146 
147 type
148     TDrivProps = record
149         pszKeyName: PChar;
150         cbBuf: cardinal;
151         pBuf: pointer;
152     end;
153     PDrivProps =^TDrivProps;
154     DrivProps = TDrivProps;
155     NPDrivProps = ^DrivProps;
156 
157     TPrJInfo = record
158         uJobId: word;
159         szUserName: array [0..UNLen] of char;
160         pad_1: char;
161         szNotifyName: array [0..CNLen] of char;
162         szDataType: array [0..DTLen] of char;
163         pszParms: PChar;
164         uPosition: word;
165         fsStatus: word;
166         pszStatus: PChar;
167         ulSubmitted: cardinal;
168         ulSize: cardinal;
169         pszComment: PChar;
170     end;
171     PPrJInfo = ^TPrJInfo;
172     PrJInfo = TPrJInfo;
173     NPPrJInfo = ^TPrJInfo;
174 
175     TPrJInfo2 = record
176         uJobId: word;
177         uPriority: word;
178         pszUserName: PChar;
179         uPosition: word;
180         fsStatus: word;
181         ulSubmitted: cardinal;
182         ulSize: cardinal;
183         pszComment: PChar;
184         pszDocument: PChar;
185     end;
186     PPrJInfo2 = ^TPrJInfo2;
187     PrJInfo2 = TPrJInfo2;
188     NPPrJInfo2 = ^TPrJInfo2;
189 
190     TPrJInfo3 = record
191         uJobId: word;
192         uPriority: word;
193         pszUserName: PChar;
194         uPosition: word;
195         fsStatus: word;
196         ulSubmitted: cardinal;
197         ulSize: cardinal;
198         pszComment: PChar;
199         pszDocument: PChar;
200         pszNotifyName: PChar;
201         pszDataType: PChar;
202         pszParms: PChar;
203         pszStatus: PChar;
204         pszQueue: PChar;
205         pszQProcName: PChar;
206         pszQProcParms: PChar;
207         pszDriverName: PChar;
208         pDriverData: PDrivData;
209         pszPrinterName: PChar;
210     end;
211     PPrJInfo3 = ^TPrJInfo3;
212     PrJInfo3 = TPrJInfo3;
213     NPPrJInfo3 = ^TPrJInfo3;
214 
215     TPrDInfo = record
216         szName: array [0..PDLen] of char;
217         szUserName: array [0..UNLen] of char;
218         uJobId: word;
219         fsStatus: word;
220         pszStatus: PChar;
221         time: word;
222     end;
223     PPrDInfo = ^TPrDInfo;
224     PrDInfo = TPrDInfo;
225     NPPrDInfo = ^TPrDInfo;
226 
227     TPrDInfo3 = record
228         pszPrinterName: PChar;
229         pszUserName: PChar;
230         pszLogAddr: PChar;
231         uJobId: word;
232         fsStatus: word;
233         pszStatus: PChar;
234         pszComment: PChar;
235         pszDrivers: PChar;
236         time: word;
237         usTimeOut: word;
238     end;
239     PPrDInfo3 = ^TPrDInfo3;
240     PrDInfo3 = TPrDInfo3;
241     NPPrDInfo3 = ^TPrDInfo3;
242 
243     TPrQInfo = record
244         szName: array [0..QNLen] of char;
245         pad_1: char;
246         uPriority: word;
247         uStartTime: word;
248         uUntilTime: word;
249         pszSepFile: PChar;
250         pszPrProc: PChar;
251         pszDestinations: PChar;
252         pszParms: PChar;
253         pszComment: PChar;
254         fsStatus: word;
255         cJobs: word;
256     end;
257     PPrQInfo = ^TPrQInfo;
258     PrQInfo = TPrQInfo;
259     NPPrQInfo = ^TPrQInfo;
260 
261     TPrQInfo3 = record
262         pszName: PChar;
263         uPriority: word;
264         uStartTime: word;
265         uUntilTime: word;
266         fsType: word;
267         pszSepFile: PChar;
268         pszPrProc: PChar;
269         pszParms: PChar;
270         pszComment: PChar;
271         fsStatus: word;
272         cJobs: word;
273         pszPrinters: PChar;
274         pszDriverName: PChar;
275         pDriverData: PDrivData;
276     end;
277     PPrQInfo3 = ^TPrQInfo3;
278     PrQInfo3 = TPrQInfo3;
279     NPPrQInfo3 = ^TPrQInfo3;
280 
281     TPrQInfo6 = record
282         pszName: PChar;
283         uPriority: word;
284         uStartTime: word;
285         uUntilTime: word;
286         fsType: word;
287         pszSepFile: PChar;
288         pszPrProc: PChar;
289         pszParms: PChar;
290         pszComment: PChar;
291         fsStatus: word;
292         cJobs: word;
293         pszPrinters: PChar;
294         pszDriverName: PChar;
295         pDriverData: PDrivData;
296         pszRemoteComputerName: PChar;
297         pszRemoteQueueName: PChar;
298     end;
299     PPrQInfo6 = ^TPrQInfo6;
300     PrQInfo6 = TPrQInfo6;
301     NPPrQInfo6 = ^TPrQInfo6;
302 
303 { Structure for DosPrintJobGetId }
304     TPrIDInfo = record
305         uJobId: word;
306         szComputerName: array [0..CNLen] of char;
307         szQueueName: array [0..QNLen] of char;
308         pad_1: char;
309     end;
310     PPrIDInfo = ^TPrIDInfo;
311     PrIDInfo = TPrIDInfo;
312     NPPrIDInfo = ^TPrIDInfo;
313 
314 { Structure for DosPrintDriverEnum }
315     TPrDrivInfo = record
316         szDrivName: array [0..Driv_Name_Size+1+Driv_DeviceName_Size] of char;
317     end;
318     PPrDrivInfo = ^TPrDrivInfo;
319     PrDrivInfo = TPrDrivInfo;
320     NPPrDrivInfo = ^TPrDrivInfo;
321 
322 { Structure for DosPrintQProcessorEnum }
323     TPrQProcInfo = record
324         szQProcName: array [0..QNLen] of char;
325     end;
326     PPrQProcInfo = ^TPrQProcInfo;
327     PrQProcInfo = TPrQProcInfo;
328     NPPrQProcInfo = ^TPrQProcInfo;
329 
330 { Structure for DosPrintPortEnum Level 0 }
331     TPrPortInfo = record
332         szPortName: array [0..PDLen] of char;
333     end;
334     PPrPortInfo = ^TPrPortInfo;
335     PrPortInfo = TPrPortInfo;
336     NPPrPortInfo = ^TPrPortInfo;
337 
338 { Structure for DosPrintPortEnum Level 1 }
339     TPrPortInfo1 = record
340         pszPortName : PChar;
341         pszPortDriverName : PChar;
342         pszPortDriverPathName : PChar;
343     end;
344     PPrPortInfo1 = ^TPrPortInfo1;
345     PrPortInfo1 = TPrPortInfo1;
346     NPPrPortInfo1 = ^TPrPortInfo1;
347 
348 
349 const
350 { Values for parmnum in DosPrintQSetInfo/SplSetQueue }
351     PRQ_PRIORITY_PARMNUM        =    2;
352     PRQ_STARTTIME_PARMNUM       =    3;
353     PRQ_UNTILTIME_PARMNUM       =    4;
354     PRQ_SEPARATOR_PARMNUM       =    5;
355     PRQ_PROCESSOR_PARMNUM       =    6;
356     PRQ_DESTINATIONS_PARMNUM    =    7;
357     PRQ_PARMS_PARMNUM           =    8;
358     PRQ_COMMENT_PARMNUM         =    9;
359     PRQ_TYPE_PARMNUM            =   10;
360     PRQ_PRINTERS_PARMNUM        =   12;
361     PRQ_DRIVERNAME_PARMNUM      =   13;
362     PRQ_DRIVERDATA_PARMNUM      =   14;
363     PRQ_REMOTE_COMPUTER_PARMNUM =   15;
364     PRQ_REMOTE_QUEUE_PARMNUM    =   16;
365     PRQ_MAXPARMNUM              =   16;
366 
367 { Print queue priority }
368     PRQ_MAX_PRIORITY            =    1;     { highest priority }
369     PRQ_DEF_PRIORITY            =    5;     { default priority }
370     PRQ_MIN_PRIORITY            =    9;     { lowest priority  }
371     PRQ_NO_PRIORITY             =    0;
372 
373 { Print queue status bitmask and values for level 1 }
374     PRQ_STATUS_MASK             =    3;
375     PRQ_ACTIVE                  =    0;
376     PRQ_PAUSED                  =    1;     { queue is held    }
377     PRQ_ERROR                   =    2;
378     PRQ_PENDING                 =    3;     { pending deletion }
379 
380 { Print queue status bits for level 3 }
381     PRQ3_PAUSED                 =    1;     { queue is held    }
382     PRQ3_PENDING                =    2;     { pending deletion }
383 
384 { Print queue type bits for level 3 }
385     PRQ3_TYPE_RAW               =    1;     { spools printer-specific data }
386     PRQ3_TYPE_BYPASS            =    2;     { allow print while spooling   }
387     PRQ3_TYPE_APPDEFAULT        =    4;     { set for application          }
388                                             { default queue                }
389 
390 { Values for parmnum in DosPrintJobSetInfo/SplSetJob }
391     PRJ_NOTIFYNAME_PARMNUM      =    3;
392     PRJ_DATATYPE_PARMNUM        =    4;
393     PRJ_PARMS_PARMNUM           =    5;
394     PRJ_POSITION_PARMNUM        =    6;
395     PRJ_JOBFILEINUSE_PARMNUM    =    7;
396     PRJ_COMMENT_PARMNUM         =   11;
397     PRJ_DOCUMENT_PARMNUM        =   12;
398     PRJ_STATUSCOMMENT_PARMNUM   =   13;
399     PRJ_PRIORITY_PARMNUM        =   14;
400     PRJ_PROCPARMS_PARMNUM       =   16;
401     PRJ_DRIVERDATA_PARMNUM      =   18;
402     PRJ_MAXPARMNUM              =   18;
403 
404 { Bitmap masks for status field of TPrJInfo }
405 { Bits 2-7 also used in device status       }
406     PRJ_QSTATUS       = $0003;      { bits 0,1  }
407     PRJ_DEVSTATUS     = $0ffc;      { bits 2-11 }
408     PRJ_COMPLETE      = $0004;      { bit 2     }
409     PRJ_INTERV        = $0008;      { bit 3     }
410     PRJ_ERROR         = $0010;      { bit 4     }
411     PRJ_DESTOFFLINE   = $0020;      { bit 5     }
412     PRJ_DESTPAUSED    = $0040;      { bit 6     }
413     PRJ_NOTIFY        = $0080;      { bit 7     }
414     PRJ_DESTNOPAPER   = $0100;      { bit 8     }
415     PRJ_DESTFORMCHG   = $0200;      { bit 9     }
416     PRJ_DESTCRTCHG    = $0400;      { bit 10    }
417     PRJ_DESTPENCHG    = $0800;      { bit 11    }
418     PRJ_JOBFILEINUSE  = $4000;      { bit 14    }
419     PRJ_DELETED       = $8000;      { bit 15    }
420 
421 { Values of PRJ_QSTATUS bits in fsStatus field of TPrJInfo }
422     PRJ_QS_QUEUED              =   0;
423     PRJ_QS_PAUSED              =   1;
424     PRJ_QS_SPOOLING            =   2;
425     PRJ_QS_PRINTING            =   3;
426 
427 { Print Job Priority }
428     PRJ_MAX_PRIORITY           =  99;       { lowest priority  }
429     PRJ_MIN_PRIORITY           =   1;       { highest priority }
430     PRJ_NO_PRIORITY            =   0;
431 
432 { Bitmap masks for status field of TPrDInfo }
433     PRD_STATUS_MASK     =  $0003;      { bits 0,1  }
434     PRD_DEVSTATUS       =  $0ffc;      { bits 2-11 }
435 
436 { Values of PRD_STATUS_MASK bits in fsStatus field of TPrDInfo }
437     PRD_ACTIVE               =  0;
438     PRD_PAUSED               =  1;
439 
440 { Control codes used in DosPrintDestControl/SplControlDevice }
441     PRD_DELETE                  =  0;
442     PRD_PAUSE                   =  1;
443     PRD_CONT                    =  2;
444     PRD_RESTART                 =  3;
445 
446 { Values for parmnum in DosPrintDestSetInfo/SplSetDevice }
447     PRD_LOGADDR_PARMNUM    =  3;
448     PRD_COMMENT_PARMNUM    =  7;
449     PRD_DRIVERS_PARMNUM    =  8;
450     PRD_TIMEOUT_PARMNUM    =  10;
451 
452 type
453 { Structure for SplEnumPrinter }
454     TPrinterInfo = record
455         fltype: cardinal;
456         pszComputerName: PChar;
457         pszPrintDestinationName: PChar;
458         pszDescription: PChar;
459         pszLocalName: PChar;
460     end;
461     PrinterInfo = TPrinterInfo;
462     PPrinterInfo = ^TPrinterInfo;
463 
464 const
465 { Flags for fltype in  PRINTERINFO and SplEnumPrinter }
466     SPL_PR_QUEUE          = $00000001; { include queues }
467     SPL_PR_DIRECT_DEVICE  = $00000002; { unattached devices }
468     SPL_PR_QUEUED_DEVICE  = $00000004; { queued devices }
469     SPL_PR_LOCAL_ONLY     = $00000100; { exclude remote queues }
470 
471 
SplQueryDevicenull472 function SplQueryDevice (const pszComputerName, pszPrintDeviceName: PChar;
473                         ulLevel: cardinal; var pBuf; cbBuf: cardinal;
474                         var pcbNeeded: cardinal): longint; cdecl;
475 
SplQueryQueuenull476 function SplQueryQueue (const pszComputerName, pszQueueName: PChar;
477                        ulLevel: cardinal; var pBuf; cbBuf: cardinal;
478                        var pcbNeeded: cardinal): longint; cdecl;
479 
SplEnumQueuenull480 function SplEnumQueue (const pszComputerName: PChar; ulLevel: cardinal;
481       var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
482                                                 var pReserved): longint; cdecl;
483 
SplQmOpennull484 function SplQmOpen (const pszToken: PChar; lCount: longint;
485                                        var pqmdopData: PChar): cardinal; cdecl;
486 
SplQmStartDocnull487 function SplQmStartDoc (ahspl: cardinal; const pszDocName: PChar): longbool;
488                                                                          cdecl;
489 
SplQmWritenull490 function SplQmWrite (ahspl: cardinal; lCount: longint; var pData): longbool;
491                                                                          cdecl;
492 
SplQmEndDocnull493 function SplQmEndDoc (ahspl: cardinal): longbool; cdecl;
494 
SplQmClosenull495 function SplQmClose(ahspl: cardinal): longbool; cdecl;
496 
SplQmAbortnull497 function SplQmAbort(ahspl: cardinal): longbool; cdecl;
498 
SplQmAbortDocnull499 function SplQmAbortDoc (ahspl: cardinal): longbool; cdecl;
500 
SplMessageBoxnull501 function SplMessageBox (const pszLogAddr: PChar; fErrInfo, fErrData: cardinal;
502                                              const pszText, pszCaption: PChar;
503                                   idWindow, fStyle: cardinal): cardinal; cdecl;
504 
PrtOpennull505 function PrtOpen (const pszDeviceName: PChar; var phDevice: cardinal;
506                  var pActionTaken: cardinal;cbFileSize,uFileAttr: cardinal;
507                  openFlag,openMode,reserved: cardinal): cardinal;
508           cdecl;
509 
PrtClosenull510 function PrtClose (hDevice: cardinal): cardinal; cdecl;
511 
PrtWritenull512 function PrtWrite (hDevice: cardinal; var pchData; cbData: cardinal;
513                                     var pcbWritten: cardinal): cardinal; cdecl;
514 
PrtDevIOCtlnull515 function PrtDevIOCtl (var pData; var pParms; ufunction, uCategory: cardinal;
516                                            hDevice: cardinal): cardinal; cdecl;
517 
518 procedure PrtAbort (hDevice: cardinal); cdecl;
519 
SplStdOpennull520 function SplStdOpen (ahdc: cardinal): longbool; cdecl;
521 
SplStdClosenull522 function SplStdClose (ahdc: cardinal): longbool; cdecl;
523 
SplStdStartnull524 function SplStdStart(ahdc: cardinal): longbool; cdecl;
525 
SplStdStopnull526 function SplStdStop (ahdc: cardinal): cardinal; cdecl;
527 
SplStdDeletenull528 function SplStdDelete (hMetaFile: cardinal): longbool; cdecl;
529 
SplStdGetBitsnull530 function SplStdGetBits (hMetaFile: cardinal; offData, cbData: longint;
531                                                  var pchData): longbool; cdecl;
532 
SplStdQueryLengthnull533 function SplStdQueryLength (hMetaFile: cardinal): longint; cdecl;
534 
SplCreateDevicenull535 function SplCreateDevice (const pszComputerName: PChar;ulLevel: cardinal;
536                                    var pBuf; cbBuf: cardinal): cardinal; cdecl;
537 
SplControlDevicenull538 function SplControlDevice (const pszComputerName, pszPortName: PChar;
539                                          ulControl: cardinal): cardinal; cdecl;
540 
SplDeleteDevicenull541 function SplDeleteDevice (const pszComputerName,
542                                    pszPrintDeviceName: PChar): cardinal; cdecl;
543 
SplEnumDevicenull544 function SplEnumDevice (const pszComputerName: PChar; ulLevel: cardinal;
545       var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
546                                                var pReserved): cardinal; cdecl;
547 
SplSetDevicenull548 function SplSetDevice (const pszComputerName, pszPrintDeviceName: PChar;
549      ulLevel: cardinal; var pBuf; cbBuf, ulParmNum: cardinal): cardinal; cdecl;
550 
SplReleaseJobnull551 function SplReleaseJob (const pszComputerName, pszQueueName: PChar;
552                                              ulJob: cardinal): cardinal; cdecl;
553 
SplDeleteJobnull554 function SplDeleteJob (const pszComputerName, pszQueueName: PChar;
555                                              ulJob: cardinal): cardinal; cdecl;
556 
SplEnumJobnull557 function SplEnumJob (const pszComputerName, pszQueueName: PChar;
558                               ulLevel: cardinal; var pBuf;cbBuf: cardinal;
559                                  var pcReturned, pcTotal, pcbNeeded: cardinal;
560                                                var pReserved): cardinal; cdecl;
561 
SplQueryJobnull562 function SplQueryJob (const pszComputerName, pszQueueName: PChar;
563                           ulJob, ulLevel: cardinal; var pBuf; cbBuf: cardinal;
564                                      var pcbNeeded: cardinal): cardinal; cdecl;
565 
SplHoldJobnull566 function SplHoldJob (const pszComputerName, pszQueueName: PChar;
567                                              ulJob: cardinal): cardinal; cdecl;
568 
SplSetJobnull569 function SplSetJob (const pszComputerName, pszQueueName: PChar;
570                                           ulJob, ulLevel: cardinal; var pBuf;
571                                   cbBuf, ulParmNum: cardinal): cardinal; cdecl;
572 
SplCreateQueuenull573 function SplCreateQueue (const pszComputerName: PChar; ulLevel: cardinal;
574                                    var pBuf; cbBuf: cardinal): cardinal; cdecl;
575 
SplReleaseQueuenull576 function SplReleaseQueue (const pszComputerName,
577                                          pszQueueName: PChar): cardinal; cdecl;
578 
SplDeleteQueuenull579 function SplDeleteQueue (const pszComputerName, pszQueueName: PChar): cardinal;
580                                                                          cdecl;
581 
SplHoldQueuenull582 function SplHoldQueue (const pszComputerName, pszQueueName: PChar): cardinal;
583                                                                          cdecl;
584 
SplPurgeQueuenull585 function SplPurgeQueue (const pszComputerName, pszQueueName: PChar): cardinal;
586                                                                          cdecl;
587 
SplSetQueuenull588 function SplSetQueue (const pszComputerName, pszQueueName: PChar;
589        ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal; cdecl;
590 
SplEnumDrivernull591 function SplEnumDriver (const pszComputerName: PChar; ulLevel: cardinal;
592         var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
593                                                var pReserved): cardinal; cdecl;
594 
SplEnumPortnull595 function SplEnumPort (const pszComputerName: PChar; ulLevel: cardinal;
596       var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
597                                                var pReserved): cardinal; cdecl;
598 
SplEnumQueueProcessornull599 function SplEnumQueueProcessor (const pszComputerName: PChar;
600        ulLevel: cardinal; var pBuf; cbBuf: cardinal; var pcReturned, pcTotal,
601                           pcbNeeded: cardinal; var pReserved): cardinal; cdecl;
602 
SplEnumPrinternull603 function SplEnumPrinter (const pszComputerName: PChar;
604          uLevel, fltype: cardinal; var pBuf; cbbuf: cardinal; var pcReturned,
605                  pcTotal, pcbNeeded: cardinal; var pReserved): cardinal; cdecl;
606 
SplCopyJobnull607 function SplCopyJob (const pszSrcComputerName, pszSrcQueueName: PChar;
608          ulSrcJob: cardinal; const pszTrgComputerName, pszTrgQueueName: PChar;
609                                      var pulTrgJob: cardinal): cardinal; cdecl;
610 
611 
612 implementation
613 
SplQueryDevicenull614 function SplQueryDevice (const pszComputerName, pszPrintDeviceName: PChar;
615                               ulLevel: cardinal; var pBuf; cbBuf: cardinal;
616                                            var pcbNeeded: cardinal): longint;
617                                              cdecl; external 'PMSPL' index 381;
618 
SplQueryQueuenull619 function SplQueryQueue (const pszComputerName, pszQueueName: PChar;
620                               ulLevel: cardinal; var pBuf; cbBuf: cardinal;
621                                            var pcbNeeded: cardinal): longint;
622                                              cdecl; external 'PMSPL' index 397;
623 
SplEnumQueuenull624 function SplEnumQueue (const pszComputerName: PChar; ulLevel: cardinal;
625       var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
626                     var pReserved): longint; cdecl; external 'PMSPL' index 399;
627 
SplQmOpennull628 function SplQmOpen (const pszToken: PChar; lCount: longint;
629            var pqmdopData: PChar): cardinal; cdecl; external 'PMSPL' index 301;
630 
SplQmStartDocnull631 function SplQmStartDoc (ahspl: cardinal; const pszDocName: PChar): longbool;
632                                              cdecl; external 'PMSPL' index 302;
633 
SplQmWritenull634 function SplQmWrite (ahspl: cardinal; lCount: longint; var pData): longbool;
635                                              cdecl; external 'PMSPL' index 304;
636 
SplQmEndDocnull637 function SplQmEndDoc (ahspl: cardinal): longbool;
638                                              cdecl; external 'PMSPL' index 303;
639 
SplQmClosenull640 function SplQmClose (ahspl: cardinal): longbool;
641                                              cdecl; external 'PMSPL' index 306;
642 
SplQmAbortnull643 function SplQmAbort (ahspl: cardinal): longbool;
644                                              cdecl; external 'PMSPL' index 305;
645 
SplQmAbortDocnull646 function SplQmAbortDoc (ahspl: cardinal): longbool;
647                                              cdecl; external 'PMSPL' index 308;
648 
SplMessageBoxnull649 function SplMessageBox (const pszLogAddr: PChar; fErrInfo, fErrData: cardinal;
650       const pszText, pszCaption: PChar; idWindow, fStyle: cardinal): cardinal;
651                                              cdecl; external 'PMSPL' index 307;
652 
PrtOpennull653 function PrtOpen (const pszDeviceName: PChar; var phDevice: cardinal;
654                  var pActionTaken: cardinal; cbFileSize, uFileAttr: cardinal;
655                             openFlag, openMode, reserved: cardinal): cardinal;
656                                              cdecl; external 'PMSPL' index 370;
657 
PrtClosenull658 function PrtClose (hDevice: cardinal): cardinal;
659                                              cdecl; external 'PMSPL' index 373;
660 
PrtWritenull661 function PrtWrite (hDevice: cardinal; var pchData; cbData: cardinal;
662         var pcbWritten: cardinal): cardinal; cdecl; external 'PMSPL' index 371;
663 
PrtDevIOCtlnull664 function PrtDevIOCtl (var pData; var pParms; ufunction, uCategory: cardinal;
665                hDevice: cardinal): cardinal; cdecl; external 'PMSPL' index 372;
666 
667 procedure PrtAbort (hDevice: cardinal); cdecl; external 'PMSPL' index 375;
668 
SplStdOpennull669 function SplStdOpen (ahdc: cardinal): longbool;
670                                              cdecl; external 'PMSPL' index 350;
671 
SplStdClosenull672 function SplStdClose (ahdc: cardinal): longbool;
673                                              cdecl; external 'PMSPL' index 351;
674 
SplStdStartnull675 function SplStdStart (ahdc: cardinal): longbool;
676                                              cdecl; external 'PMSPL' index 352;
677 
SplStdStopnull678 function SplStdStop (ahdc: cardinal): cardinal;
679                                              cdecl; external 'PMSPL' index 353;
680 
SplStdDeletenull681 function SplStdDelete (hMetaFile: cardinal): longbool;
682                                              cdecl; external 'PMSPL' index 354;
683 
SplStdGetBitsnull684 function SplStdGetBits (hMetaFile: cardinal; offData, cbData: longint;
685                      var pchData): longbool; cdecl; external 'PMSPL' index 355;
686 
SplStdQueryLengthnull687 function SplStdQueryLength (hMetaFile: cardinal): longint;
688                                              cdecl; external 'PMSPL' index 356;
689 
SplCreateDevicenull690 function SplCreateDevice (const pszComputerName: PChar; ulLevel: cardinal;
691        var pBuf; cbBuf: cardinal): cardinal; cdecl; external 'PMSPL' index 401;
692 
SplControlDevicenull693 function SplControlDevice (const pszComputerName, pszPortName: PChar;
694              ulControl: cardinal): cardinal; cdecl; external 'PMSPL' index 380;
695 
SplDeleteDevicenull696 function SplDeleteDevice (const pszComputerName,
697        pszPrintDeviceName: PChar): cardinal; cdecl; external 'PMSPL' index 403;
698 
SplEnumDevicenull699 function SplEnumDevice (const pszComputerName: PChar; ulLevel: cardinal;
700         var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
701                    var pReserved): cardinal; cdecl; external 'PMSPL' index 382;
702 
SplSetDevicenull703 function SplSetDevice (const pszComputerName, pszPrintDeviceName: PChar;
704            ulLevel: cardinal; var pBuf; cbBuf, ulParmNum: cardinal): cardinal;
705                                              cdecl; external 'PMSPL' index 402;
706 
SplReleaseJobnull707 function SplReleaseJob (const pszComputerName, pszQueueName: PChar;
708                  ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 384;
709 
SplDeleteJobnull710 function SplDeleteJob (const pszComputerName, pszQueueName: PChar;
711                  ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 386;
712 
SplEnumJobnull713 function SplEnumJob (const pszComputerName, pszQueueName: PChar;
714                            ulLevel: cardinal; var pBuf; cbBuf: cardinal;
715                                  var pcReturned, pcTotal, pcbNeeded: cardinal;
716                    var pReserved): cardinal; cdecl; external 'PMSPL' index 392;
717 
SplQueryJobnull718 function SplQueryJob (const pszComputerName, pszQueueName: PChar;
719                           ulJob, ulLevel: cardinal; var pBuf; cbBuf: cardinal;
720          var pcbNeeded: cardinal): cardinal; cdecl; external 'PMSPL' index 390;
721 
SplHoldJobnull722 function SplHoldJob (const pszComputerName, pszQueueName: PChar;
723                  ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 385;
724 
SplSetJobnull725 function SplSetJob (const pszComputerName, pszQueueName: PChar;
726       ulJob, ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal;
727                                              cdecl; external 'PMSPL' index 391;
728 
SplCreateQueuenull729 function SplCreateQueue (const pszComputerName: PChar; ulLevel: cardinal;
730        var pBuf; cbBuf: cardinal): cardinal; cdecl; external 'PMSPL' index 393;
731 
SplReleaseQueuenull732 function SplReleaseQueue (const pszComputerName,
733              pszQueueName: PChar): cardinal; cdecl; external 'PMSPL' index 395;
734 
SplDeleteQueuenull735 function SplDeleteQueue (const pszComputerName, pszQueueName: PChar): cardinal;
736                                              cdecl; external 'PMSPL' index 396;
737 
SplHoldQueuenull738 function SplHoldQueue (const pszComputerName, pszQueueName: PChar): cardinal;
739                                              cdecl; external 'PMSPL' index 394;
740 
SplPurgeQueuenull741 function SplPurgeQueue (const pszComputerName, pszQueueName: PChar): cardinal;
742                                              cdecl; external 'PMSPL' index 404;
743 
SplSetQueuenull744 function SplSetQueue (const pszComputerName, pszQueueName: PChar;
745              ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal;
746                                              cdecl; external 'PMSPL' index 398;
747 
SplEnumDrivernull748 function SplEnumDriver (const pszComputerName: PChar; ulLevel: cardinal;
749       var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
750                    var pReserved): cardinal; cdecl; external 'PMSPL' index 406;
751 
SplEnumPortnull752 function SplEnumPort (const pszComputerName: PChar; ulLevel: cardinal;
753         var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
754                    var pReserved): cardinal; cdecl; external 'PMSPL' index 408;
755 
SplEnumQueueProcessornull756 function SplEnumQueueProcessor (const pszComputerName: PChar;ulLevel: cardinal;
757        var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
758                    var pReserved): cardinal; cdecl; external 'PMSPL' index 407;
759 
SplEnumPrinternull760 function SplEnumPrinter (const pszComputerName: PChar;uLevel, fltype: cardinal;
761        var pBuf; cbbuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
762                    var pReserved): cardinal; cdecl; external 'PMSPL' index 441;
763 
SplCopyJobnull764 function SplCopyJob (const pszSrcComputerName, pszSrcQueueName: PChar;
765          ulSrcJob: cardinal; const pszTrgComputerName, pszTrgQueueName: PChar;
766          var pulTrgJob: cardinal): cardinal; cdecl; external 'PMSPL' index 442;
767 
768 
769 end.
770