|
@@ -0,0 +1,778 @@
|
|
|
|
+{****************************************************************************
|
|
|
|
+
|
|
|
|
+ $Id$
|
|
|
|
+
|
|
|
|
+ This file is part of the Free Pascal run time library.
|
|
|
|
+ Copyright (c) 2002 by the Free Pascal development team.
|
|
|
|
+
|
|
|
|
+ OS/2 Presentation Manager spooler constants, types
|
|
|
|
+ and functions implemented in PMSPL.DLL.
|
|
|
|
+
|
|
|
|
+ See the file COPYING.FPC, included in this distribution,
|
|
|
|
+ for details about the copyright.
|
|
|
|
+
|
|
|
|
+ This program is distributed in the hope that it will be useful,
|
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
+
|
|
|
|
+ ****************************************************************************}
|
|
|
|
+
|
|
|
|
+unit PMSpl;
|
|
|
|
+
|
|
|
|
+interface
|
|
|
|
+
|
|
|
|
+{$MODE OBJFPC}
|
|
|
|
+
|
|
|
|
+uses OS2Def, DosCalls;
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+ SPL_INI_SPOOLER = 'PM_SPOOLER';
|
|
|
|
+ SPL_INI_QUEUE = 'PM_SPOOLER_QUEUE';
|
|
|
|
+ SPL_INI_PRINTER = 'PM_SPOOLER_PRINTER';
|
|
|
|
+ SPL_INI_PRINTERDESCR = 'PM_SPOOLER_PRINTER_DESCR';
|
|
|
|
+ SPL_INI_QUEUEDESCR = 'PM_SPOOLER_QUEUE_DESCR';
|
|
|
|
+ SPL_INI_QUEUEDD = 'PM_SPOOLER_QUEUE_DD';
|
|
|
|
+ SPL_INI_QUEUEDDDATA = 'PM_SPOOLER_QUEUE_DDDATA';
|
|
|
|
+
|
|
|
|
+{ General SPL return values }
|
|
|
|
+ SPL_ERROR = 0;
|
|
|
|
+ SPL_OK = 1;
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+{ Handle to a spool file }
|
|
|
|
+ HSpl = cardinal;
|
|
|
|
+
|
|
|
|
+{ Used in recording of PM_Q_STD data via SplStdxxx calls }
|
|
|
|
+ HStd = cardinal;
|
|
|
|
+ PHStd = ^HStd;
|
|
|
|
+
|
|
|
|
+{ Spooler manager open data }
|
|
|
|
+ QMOpenData = PChar;
|
|
|
|
+ PQMOpenData = ^PChar;
|
|
|
|
+
|
|
|
|
+{ Spooler Queue Processor interface }
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+{ Control codes for SplQpControl }
|
|
|
|
+ SPLC_ABORT = 1;
|
|
|
|
+ SPLC_PAUSE = 2;
|
|
|
|
+ SPLC_CONTINUE = 3;
|
|
|
|
+
|
|
|
|
+{ Flag defines for optional SplQpQueryFlags }
|
|
|
|
+{ Set this to allow spooler to bypass Queue Processor for PM_Q_Raw
|
|
|
|
+ jobs. This allows print while a job is still spooling. }
|
|
|
|
+ QP_RawData_Bypass = $00000001;
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+{ Handle to a spooler queue processor }
|
|
|
|
+ HProc = cardinal;
|
|
|
|
+
|
|
|
|
+ PQPOpenData = ^PChar;
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+{ Definition for elements within the PQPOpenData block }
|
|
|
|
+ QPDAT_ADDRESS = 0;
|
|
|
|
+ QPDAT_DRIVER_NAME = 1;
|
|
|
|
+ QPDAT_DRIVER_DATA = 2;
|
|
|
|
+ QPDAT_DATA_TYPE = 3;
|
|
|
|
+ QPDAT_COMMENT = 4;
|
|
|
|
+ QPDAT_PROC_PARAMS = 5;
|
|
|
|
+ QPDAT_SPL_PARAMS = 6; { SplQmOpen Spooler params }
|
|
|
|
+ QPDAT_NET_PARAMS = 7; { SplQmOpen Network params }
|
|
|
|
+ QPDAT_DOC_NAME = 8; { SplQmStartDoc name }
|
|
|
|
+ QPDAT_QUEUE_NAME = 9; { Queue name for job }
|
|
|
|
+ QPDAT_TOKEN = 10; { SplQmOpen token name }
|
|
|
|
+ QPDAT_JOBID = 11; { SQM job identity }
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+ TSQPOpenData = record
|
|
|
|
+ pszLogAddress: PChar;
|
|
|
|
+ pszDriverName: PChar;
|
|
|
|
+ pdriv: PDrivData;
|
|
|
|
+ pszDataType: PChar;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ pszProcParams: PChar;
|
|
|
|
+ pszSpoolParams: PChar;
|
|
|
|
+ pszNetworkParams: PChar;
|
|
|
|
+ pszDocName: PChar;
|
|
|
|
+ pszQueueName: PChar;
|
|
|
|
+ pszToken: PChar;
|
|
|
|
+ idJobId: word;
|
|
|
|
+ end;
|
|
|
|
+ PSQPOpenData = ^TSQPOpenData;
|
|
|
|
+ SQPOpenData = TSQPOpenData;
|
|
|
|
+
|
|
|
|
+{ Error information and return codes }
|
|
|
|
+const
|
|
|
|
+{ Error information for SplMessageBox }
|
|
|
|
+ SPLINFO_QPERROR = $0001;
|
|
|
|
+ SPLINFO_DDERROR = $0002;
|
|
|
|
+ SPLINFO_SPLERROR = $0004;
|
|
|
|
+ SPLINFO_OTHERERROR = $0080;
|
|
|
|
+ SPLINFO_INFORMATION = $0100;
|
|
|
|
+ SPLINFO_WARNING = $0200;
|
|
|
|
+ SPLINFO_ERROR = $0400;
|
|
|
|
+ SPLINFO_SEVERE = $0800;
|
|
|
|
+ SPLINFO_USERINTREQD = $1000;
|
|
|
|
+
|
|
|
|
+{ Error Data for SplMessageBox }
|
|
|
|
+ SPLDATA_PRINTERJAM = $0001;
|
|
|
|
+ SPLDATA_FORMCHGREQD = $0002;
|
|
|
|
+ SPLDATA_CARTCHGREQD = $0004;
|
|
|
|
+ SPLDATA_PENCHGREQD = $0008;
|
|
|
|
+ SPLDATA_DATAERROR = $0010;
|
|
|
|
+ SPLDATA_UNEXPECTERROR= $0020;
|
|
|
|
+ SPLDATA_OTHER = $8000;
|
|
|
|
+
|
|
|
|
+{ Return code for fSplStdQueryLength }
|
|
|
|
+ SSQL_ERROR = -1;
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+ SPLERR = cardinal;
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+{ length for character arrays in structs (excluding zero terminator) }
|
|
|
|
+ CNLEN = 15; { Computer name length }
|
|
|
|
+ UNLEN = 20; { Maximum user name length }
|
|
|
|
+ QNLEN = 12; { Queue name maximum length }
|
|
|
|
+ PDLEN = 8; { Print destination length }
|
|
|
|
+ DTLEN = 9; { Spool file data type }
|
|
|
|
+ { e.g. PM_Q_STD,PM_Q_RAW }
|
|
|
|
+ QP_DATATYPE_SIZE = 15; { returned by SplQpQueryDt }
|
|
|
|
+ DRIV_DEVICENAME_SIZE = 31; { see DRIVDATA struc }
|
|
|
|
+ DRIV_NAME_SIZE = 8; { name of device driver }
|
|
|
|
+ PRINTERNAME_SIZE = 32; { max printer name length }
|
|
|
|
+ FORMNAME_SIZE = 31; { max form name length }
|
|
|
|
+ MAXCOMMENTSZ = 48; { queue comment length }
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+ TDrivProps = record
|
|
|
|
+ pszKeyName: PChar;
|
|
|
|
+ cbBuf: cardinal;
|
|
|
|
+ pBuf: pointer;
|
|
|
|
+ end;
|
|
|
|
+ PDrivProps =^TDrivProps;
|
|
|
|
+ DrivProps = TDrivProps;
|
|
|
|
+ NPDrivProps = ^DrivProps;
|
|
|
|
+
|
|
|
|
+ TPrJInfo = record
|
|
|
|
+ uJobId: word;
|
|
|
|
+ szUserName: array [0..UNLen] of char;
|
|
|
|
+ pad_1: char;
|
|
|
|
+ szNotifyName: array [0..CNLen] of char;
|
|
|
|
+ szDataType: array [0..DTLen] of char;
|
|
|
|
+ pszParms: PChar;
|
|
|
|
+ uPosition: word;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ pszStatus: PChar;
|
|
|
|
+ ulSubmitted: cardinal;
|
|
|
|
+ ulSize: cardinal;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ end;
|
|
|
|
+ PPrJInfo = ^TPrJInfo;
|
|
|
|
+ PrJInfo = TPrJInfo;
|
|
|
|
+ NPPrJInfo = ^TPrJInfo;
|
|
|
|
+
|
|
|
|
+ TPrJInfo2 = record
|
|
|
|
+ uJobId: word;
|
|
|
|
+ uPriority: word;
|
|
|
|
+ pszUserName: PChar;
|
|
|
|
+ uPosition: word;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ ulSubmitted: cardinal;
|
|
|
|
+ ulSize: cardinal;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ pszDocument: PChar;
|
|
|
|
+ end;
|
|
|
|
+ PPrJInfo2 = ^TPrJInfo2;
|
|
|
|
+ PrJInfo2 = TPrJInfo2;
|
|
|
|
+ NPPrJInfo2 = ^TPrJInfo2;
|
|
|
|
+
|
|
|
|
+ TPrJInfo3 = record
|
|
|
|
+ uJobId: word;
|
|
|
|
+ uPriority: word;
|
|
|
|
+ pszUserName: PChar;
|
|
|
|
+ uPosition: word;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ ulSubmitted: cardinal;
|
|
|
|
+ ulSize: cardinal;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ pszDocument: PChar;
|
|
|
|
+ pszNotifyName: PChar;
|
|
|
|
+ pszDataType: PChar;
|
|
|
|
+ pszParms: PChar;
|
|
|
|
+ pszStatus: PChar;
|
|
|
|
+ pszQueue: PChar;
|
|
|
|
+ pszQProcName: PChar;
|
|
|
|
+ pszQProcParms: PChar;
|
|
|
|
+ pszDriverName: PChar;
|
|
|
|
+ pDriverData: PDrivData;
|
|
|
|
+ pszPrinterName: PChar;
|
|
|
|
+ end;
|
|
|
|
+ PPrJInfo3 = ^TPrJInfo3;
|
|
|
|
+ PrJInfo3 = TPrJInfo3;
|
|
|
|
+ NPPrJInfo3 = ^TPrJInfo3;
|
|
|
|
+
|
|
|
|
+ TPrDInfo = record
|
|
|
|
+ szName: array [0..PDLen] of char;
|
|
|
|
+ szUserName: array [0..UNLen] of char;
|
|
|
|
+ uJobId: word;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ pszStatus: PChar;
|
|
|
|
+ time: word;
|
|
|
|
+ end;
|
|
|
|
+ PPrDInfo = ^TPrDInfo;
|
|
|
|
+ PrDInfo = TPrDInfo;
|
|
|
|
+ NPPrDInfo = ^TPrDInfo;
|
|
|
|
+
|
|
|
|
+ TPrDInfo3 = record
|
|
|
|
+ pszPrinterName: PChar;
|
|
|
|
+ pszUserName: PChar;
|
|
|
|
+ pszLogAddr: PChar;
|
|
|
|
+ uJobId: word;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ pszStatus: PChar;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ pszDrivers: PChar;
|
|
|
|
+ time: word;
|
|
|
|
+ usTimeOut: word;
|
|
|
|
+ end;
|
|
|
|
+ PPrDInfo3 = ^TPrDInfo3;
|
|
|
|
+ PrDInfo3 = TPrDInfo3;
|
|
|
|
+ NPPrDInfo3 = ^TPrDInfo3;
|
|
|
|
+
|
|
|
|
+ TPrQInfo = record
|
|
|
|
+ szName: array [0..QNLen] of char;
|
|
|
|
+ pad_1: char;
|
|
|
|
+ uPriority: word;
|
|
|
|
+ uStartTime: word;
|
|
|
|
+ uUntilTime: word;
|
|
|
|
+ pszSepFile: PChar;
|
|
|
|
+ pszPrProc: PChar;
|
|
|
|
+ pszDestinations: PChar;
|
|
|
|
+ pszParms: PChar;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ cJobs: word;
|
|
|
|
+ end;
|
|
|
|
+ PPrQInfo = ^TPrQInfo;
|
|
|
|
+ PrQInfo = TPrQInfo;
|
|
|
|
+ NPPrQInfo = ^TPrQInfo;
|
|
|
|
+
|
|
|
|
+ TPrQInfo3 = record
|
|
|
|
+ pszName: PChar;
|
|
|
|
+ uPriority: word;
|
|
|
|
+ uStartTime: word;
|
|
|
|
+ uUntilTime: word;
|
|
|
|
+ fsType: word;
|
|
|
|
+ pszSepFile: PChar;
|
|
|
|
+ pszPrProc: PChar;
|
|
|
|
+ pszParms: PChar;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ cJobs: word;
|
|
|
|
+ pszPrinters: PChar;
|
|
|
|
+ pszDriverName: PChar;
|
|
|
|
+ pDriverData: PDrivData;
|
|
|
|
+ end;
|
|
|
|
+ PPrQInfo3 = ^TPrQInfo3;
|
|
|
|
+ PrQInfo3 = TPrQInfo3;
|
|
|
|
+ NPPrQInfo3 = ^TPrQInfo3;
|
|
|
|
+
|
|
|
|
+ TPrQInfo6 = record
|
|
|
|
+ pszName: PChar;
|
|
|
|
+ uPriority: word;
|
|
|
|
+ uStartTime: word;
|
|
|
|
+ uUntilTime: word;
|
|
|
|
+ fsType: word;
|
|
|
|
+ pszSepFile: PChar;
|
|
|
|
+ pszPrProc: PChar;
|
|
|
|
+ pszParms: PChar;
|
|
|
|
+ pszComment: PChar;
|
|
|
|
+ fsStatus: word;
|
|
|
|
+ cJobs: word;
|
|
|
|
+ pszPrinters: PChar;
|
|
|
|
+ pszDriverName: PChar;
|
|
|
|
+ pDriverData: PDrivData;
|
|
|
|
+ pszRemoteComputerName: PChar;
|
|
|
|
+ pszRemoteQueueName: PChar;
|
|
|
|
+ end;
|
|
|
|
+ PPrQInfo6 = ^TPrQInfo6;
|
|
|
|
+ PrQInfo6 = TPrQInfo6;
|
|
|
|
+ NPPrQInfo6 = ^TPrQInfo6;
|
|
|
|
+
|
|
|
|
+{ Structure for DosPrintJobGetId }
|
|
|
|
+ TPrIDInfo = record
|
|
|
|
+ uJobId: word;
|
|
|
|
+ szComputerName: array [0..CNLen] of char;
|
|
|
|
+ szQueueName: array [0..QNLen] of char;
|
|
|
|
+ pad_1: char;
|
|
|
|
+ end;
|
|
|
|
+ PPrIDInfo = ^TPrIDInfo;
|
|
|
|
+ PrIDInfo = TPrIDInfo;
|
|
|
|
+ NPPrIDInfo = ^TPrIDInfo;
|
|
|
|
+
|
|
|
|
+{ Structure for DosPrintDriverEnum }
|
|
|
|
+ TPrDrivInfo = record
|
|
|
|
+ szDrivName: array [0..Driv_Name_Size+1+Driv_DeviceName_Size] of char;
|
|
|
|
+ end;
|
|
|
|
+ PPrDrivInfo = ^TPrDrivInfo;
|
|
|
|
+ PrDrivInfo = TPrDrivInfo;
|
|
|
|
+ NPPrDrivInfo = ^TPrDrivInfo;
|
|
|
|
+
|
|
|
|
+{ Structure for DosPrintQProcessorEnum }
|
|
|
|
+ TPrQProcInfo = record
|
|
|
|
+ szQProcName: array [0..QNLen] of char;
|
|
|
|
+ end;
|
|
|
|
+ PPrQProcInfo = ^TPrQProcInfo;
|
|
|
|
+ PrQProcInfo = TPrQProcInfo;
|
|
|
|
+ NPPrQProcInfo = ^TPrQProcInfo;
|
|
|
|
+
|
|
|
|
+{ Structure for DosPrintPortEnum Level 0 }
|
|
|
|
+ TPrPortInfo = record
|
|
|
|
+ szPortName: array [0..PDLen] of char;
|
|
|
|
+ end;
|
|
|
|
+ PPrPortInfo = ^TPrPortInfo;
|
|
|
|
+ PrPortInfo = TPrPortInfo;
|
|
|
|
+ NPPrPortInfo = ^TPrPortInfo;
|
|
|
|
+
|
|
|
|
+{ Structure for DosPrintPortEnum Level 1 }
|
|
|
|
+ TPrPortInfo1 = record
|
|
|
|
+ pszPortName : PChar;
|
|
|
|
+ pszPortDriverName : PChar;
|
|
|
|
+ pszPortDriverPathName : PChar;
|
|
|
|
+ end;
|
|
|
|
+ PPrPortInfo1 = ^TPrPortInfo1;
|
|
|
|
+ PrPortInfo1 = TPrPortInfo1;
|
|
|
|
+ NPPrPortInfo1 = ^TPrPortInfo1;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+{ Values for parmnum in DosPrintQSetInfo/SplSetQueue }
|
|
|
|
+ PRQ_PRIORITY_PARMNUM = 2;
|
|
|
|
+ PRQ_STARTTIME_PARMNUM = 3;
|
|
|
|
+ PRQ_UNTILTIME_PARMNUM = 4;
|
|
|
|
+ PRQ_SEPARATOR_PARMNUM = 5;
|
|
|
|
+ PRQ_PROCESSOR_PARMNUM = 6;
|
|
|
|
+ PRQ_DESTINATIONS_PARMNUM = 7;
|
|
|
|
+ PRQ_PARMS_PARMNUM = 8;
|
|
|
|
+ PRQ_COMMENT_PARMNUM = 9;
|
|
|
|
+ PRQ_TYPE_PARMNUM = 10;
|
|
|
|
+ PRQ_PRINTERS_PARMNUM = 12;
|
|
|
|
+ PRQ_DRIVERNAME_PARMNUM = 13;
|
|
|
|
+ PRQ_DRIVERDATA_PARMNUM = 14;
|
|
|
|
+ PRQ_REMOTE_COMPUTER_PARMNUM = 15;
|
|
|
|
+ PRQ_REMOTE_QUEUE_PARMNUM = 16;
|
|
|
|
+ PRQ_MAXPARMNUM = 16;
|
|
|
|
+
|
|
|
|
+{ Print queue priority }
|
|
|
|
+ PRQ_MAX_PRIORITY = 1; { highest priority }
|
|
|
|
+ PRQ_DEF_PRIORITY = 5; { default priority }
|
|
|
|
+ PRQ_MIN_PRIORITY = 9; { lowest priority }
|
|
|
|
+ PRQ_NO_PRIORITY = 0;
|
|
|
|
+
|
|
|
|
+{ Print queue status bitmask and values for level 1 }
|
|
|
|
+ PRQ_STATUS_MASK = 3;
|
|
|
|
+ PRQ_ACTIVE = 0;
|
|
|
|
+ PRQ_PAUSED = 1; { queue is held }
|
|
|
|
+ PRQ_ERROR = 2;
|
|
|
|
+ PRQ_PENDING = 3; { pending deletion }
|
|
|
|
+
|
|
|
|
+{ Print queue status bits for level 3 }
|
|
|
|
+ PRQ3_PAUSED = 1; { queue is held }
|
|
|
|
+ PRQ3_PENDING = 2; { pending deletion }
|
|
|
|
+
|
|
|
|
+{ Print queue type bits for level 3 }
|
|
|
|
+ PRQ3_TYPE_RAW = 1; { spools printer-specific data }
|
|
|
|
+ PRQ3_TYPE_BYPASS = 2; { allow print while spooling }
|
|
|
|
+ PRQ3_TYPE_APPDEFAULT = 4; { set for application }
|
|
|
|
+ { default queue }
|
|
|
|
+
|
|
|
|
+{ Values for parmnum in DosPrintJobSetInfo/SplSetJob }
|
|
|
|
+ PRJ_NOTIFYNAME_PARMNUM = 3;
|
|
|
|
+ PRJ_DATATYPE_PARMNUM = 4;
|
|
|
|
+ PRJ_PARMS_PARMNUM = 5;
|
|
|
|
+ PRJ_POSITION_PARMNUM = 6;
|
|
|
|
+ PRJ_JOBFILEINUSE_PARMNUM = 7;
|
|
|
|
+ PRJ_COMMENT_PARMNUM = 11;
|
|
|
|
+ PRJ_DOCUMENT_PARMNUM = 12;
|
|
|
|
+ PRJ_STATUSCOMMENT_PARMNUM = 13;
|
|
|
|
+ PRJ_PRIORITY_PARMNUM = 14;
|
|
|
|
+ PRJ_PROCPARMS_PARMNUM = 16;
|
|
|
|
+ PRJ_DRIVERDATA_PARMNUM = 18;
|
|
|
|
+ PRJ_MAXPARMNUM = 18;
|
|
|
|
+
|
|
|
|
+{ Bitmap masks for status field of TPrJInfo }
|
|
|
|
+{ Bits 2-7 also used in device status }
|
|
|
|
+ PRJ_QSTATUS = $0003; { bits 0,1 }
|
|
|
|
+ PRJ_DEVSTATUS = $0ffc; { bits 2-11 }
|
|
|
|
+ PRJ_COMPLETE = $0004; { bit 2 }
|
|
|
|
+ PRJ_INTERV = $0008; { bit 3 }
|
|
|
|
+ PRJ_ERROR = $0010; { bit 4 }
|
|
|
|
+ PRJ_DESTOFFLINE = $0020; { bit 5 }
|
|
|
|
+ PRJ_DESTPAUSED = $0040; { bit 6 }
|
|
|
|
+ PRJ_NOTIFY = $0080; { bit 7 }
|
|
|
|
+ PRJ_DESTNOPAPER = $0100; { bit 8 }
|
|
|
|
+ PRJ_DESTFORMCHG = $0200; { bit 9 }
|
|
|
|
+ PRJ_DESTCRTCHG = $0400; { bit 10 }
|
|
|
|
+ PRJ_DESTPENCHG = $0800; { bit 11 }
|
|
|
|
+ PRJ_JOBFILEINUSE = $4000; { bit 14 }
|
|
|
|
+ PRJ_DELETED = $8000; { bit 15 }
|
|
|
|
+
|
|
|
|
+{ Values of PRJ_QSTATUS bits in fsStatus field of TPrJInfo }
|
|
|
|
+ PRJ_QS_QUEUED = 0;
|
|
|
|
+ PRJ_QS_PAUSED = 1;
|
|
|
|
+ PRJ_QS_SPOOLING = 2;
|
|
|
|
+ PRJ_QS_PRINTING = 3;
|
|
|
|
+
|
|
|
|
+{ Print Job Priority }
|
|
|
|
+ PRJ_MAX_PRIORITY = 99; { lowest priority }
|
|
|
|
+ PRJ_MIN_PRIORITY = 1; { highest priority }
|
|
|
|
+ PRJ_NO_PRIORITY = 0;
|
|
|
|
+
|
|
|
|
+{ Bitmap masks for status field of TPrDInfo }
|
|
|
|
+ PRD_STATUS_MASK = $0003; { bits 0,1 }
|
|
|
|
+ PRD_DEVSTATUS = $0ffc; { bits 2-11 }
|
|
|
|
+
|
|
|
|
+{ Values of PRD_STATUS_MASK bits in fsStatus field of TPrDInfo }
|
|
|
|
+ PRD_ACTIVE = 0;
|
|
|
|
+ PRD_PAUSED = 1;
|
|
|
|
+
|
|
|
|
+{ Control codes used in DosPrintDestControl/SplControlDevice }
|
|
|
|
+ PRD_DELETE = 0;
|
|
|
|
+ PRD_PAUSE = 1;
|
|
|
|
+ PRD_CONT = 2;
|
|
|
|
+ PRD_RESTART = 3;
|
|
|
|
+
|
|
|
|
+{ Values for parmnum in DosPrintDestSetInfo/SplSetDevice }
|
|
|
|
+ PRD_LOGADDR_PARMNUM = 3;
|
|
|
|
+ PRD_COMMENT_PARMNUM = 7;
|
|
|
|
+ PRD_DRIVERS_PARMNUM = 8;
|
|
|
|
+ PRD_TIMEOUT_PARMNUM = 10;
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+{ Structure for SplEnumPrinter }
|
|
|
|
+ TPrinterInfo = record
|
|
|
|
+ fltype: cardinal;
|
|
|
|
+ pszComputerName: PChar;
|
|
|
|
+ pszPrintDestinationName: PChar;
|
|
|
|
+ pszDescription: PChar;
|
|
|
|
+ pszLocalName: PChar;
|
|
|
|
+ end;
|
|
|
|
+ PrinterInfo = TPrinterInfo;
|
|
|
|
+ PPrinterInfo = ^TPrinterInfo;
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+{ Flags for fltype in PRINTERINFO and SplEnumPrinter }
|
|
|
|
+ SPL_PR_QUEUE = $00000001; { include queues }
|
|
|
|
+ SPL_PR_DIRECT_DEVICE = $00000002; { unattached devices }
|
|
|
|
+ SPL_PR_QUEUED_DEVICE = $00000004; { queued devices }
|
|
|
|
+ SPL_PR_LOCAL_ONLY = $00000100; { exclude remote queues }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SplQueryDevice (const pszComputerName, pszPrintDeviceName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): longint; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQueryQueue (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): longint; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumQueue (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): longint; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmOpen (const pszToken: PChar; lCount: longint;
|
|
|
|
+ var pqmdopData: PChar): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmStartDoc (ahspl: cardinal; const pszDocName: PChar): longbool;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmWrite (ahspl: cardinal; lCount: longint; var pData): longbool;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmEndDoc (ahspl: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmClose(ahspl: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmAbort(ahspl: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQmAbortDoc (ahspl: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplMessageBox (const pszLogAddr: PChar; fErrInfo, fErrData: cardinal;
|
|
|
|
+ const pszText, pszCaption: PChar;
|
|
|
|
+ idWindow, fStyle: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function PrtOpen (const pszDeviceName: PChar; var phDevice: cardinal;
|
|
|
|
+ var pActionTaken: cardinal;cbFileSize,uFileAttr: cardinal;
|
|
|
|
+ openFlag,openMode,reserved: cardinal): cardinal;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function PrtClose (hDevice: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function PrtWrite (hDevice: cardinal; var pchData; cbData: cardinal;
|
|
|
|
+ var pcbWritten: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function PrtDevIOCtl (var pData; var pParms; ufunction, uCategory: cardinal;
|
|
|
|
+ hDevice: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+procedure PrtAbort (hDevice: cardinal); cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdOpen (ahdc: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdClose (ahdc: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdStart(ahdc: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdStop (ahdc: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdDelete (hMetaFile: cardinal): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdGetBits (hMetaFile: cardinal; offData, cbData: longint;
|
|
|
|
+ var pchData): longbool; cdecl;
|
|
|
|
+
|
|
|
|
+function SplStdQueryLength (hMetaFile: cardinal): longint; cdecl;
|
|
|
|
+
|
|
|
|
+function SplCreateDevice (const pszComputerName: PChar;ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplControlDevice (const pszComputerName, pszPortName: PChar;
|
|
|
|
+ ulControl: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplDeleteDevice (const pszComputerName,
|
|
|
|
+ pszPrintDeviceName: PChar): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumDevice (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplSetDevice (const pszComputerName, pszPrintDeviceName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf, ulParmNum: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplReleaseJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplDeleteJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf;cbBuf: cardinal;
|
|
|
|
+ var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplQueryJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob, ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplHoldJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplSetJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob, ulLevel: cardinal; var pBuf;
|
|
|
|
+ cbBuf, ulParmNum: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplCreateQueue (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplReleaseQueue (const pszComputerName,
|
|
|
|
+ pszQueueName: PChar): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplDeleteQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function SplHoldQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function SplPurgeQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl;
|
|
|
|
+
|
|
|
|
+function SplSetQueue (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumDriver (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumPort (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumQueueProcessor (const pszComputerName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal; var pcReturned, pcTotal,
|
|
|
|
+ pcbNeeded: cardinal; var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplEnumPrinter (const pszComputerName: PChar;
|
|
|
|
+ uLevel, fltype: cardinal; var pBuf; cbbuf: cardinal; var pcReturned,
|
|
|
|
+ pcTotal, pcbNeeded: cardinal; var pReserved): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+function SplCopyJob (const pszSrcComputerName, pszSrcQueueName: PChar;
|
|
|
|
+ ulSrcJob: cardinal; const pszTrgComputerName, pszTrgQueueName: PChar;
|
|
|
|
+ var pulTrgJob: cardinal): cardinal; cdecl;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+implementation
|
|
|
|
+
|
|
|
|
+function SplQueryDevice (const pszComputerName, pszPrintDeviceName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): longint;
|
|
|
|
+ cdecl; external 'PMSPL' index 381;
|
|
|
|
+
|
|
|
|
+function SplQueryQueue (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): longint;
|
|
|
|
+ cdecl; external 'PMSPL' index 397;
|
|
|
|
+
|
|
|
|
+function SplEnumQueue (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): longint; cdecl; external 'PMSPL' index 399;
|
|
|
|
+
|
|
|
|
+function SplQmOpen (const pszToken: PChar; lCount: longint;
|
|
|
|
+ var pqmdopData: PChar): cardinal; cdecl; external 'PMSPL' index 301;
|
|
|
|
+
|
|
|
|
+function SplQmStartDoc (ahspl: cardinal; const pszDocName: PChar): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 302;
|
|
|
|
+
|
|
|
|
+function SplQmWrite (ahspl: cardinal; lCount: longint; var pData): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 304;
|
|
|
|
+
|
|
|
|
+function SplQmEndDoc (ahspl: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 303;
|
|
|
|
+
|
|
|
|
+function SplQmClose (ahspl: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 306;
|
|
|
|
+
|
|
|
|
+function SplQmAbort (ahspl: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 305;
|
|
|
|
+
|
|
|
|
+function SplQmAbortDoc (ahspl: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 308;
|
|
|
|
+
|
|
|
|
+function SplMessageBox (const pszLogAddr: PChar; fErrInfo, fErrData: cardinal;
|
|
|
|
+ const pszText, pszCaption: PChar; idWindow, fStyle: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 307;
|
|
|
|
+
|
|
|
|
+function PrtOpen (const pszDeviceName: PChar; var phDevice: cardinal;
|
|
|
|
+ var pActionTaken: cardinal; cbFileSize, uFileAttr: cardinal;
|
|
|
|
+ openFlag, openMode, reserved: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 370;
|
|
|
|
+
|
|
|
|
+function PrtClose (hDevice: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 373;
|
|
|
|
+
|
|
|
|
+function PrtWrite (hDevice: cardinal; var pchData; cbData: cardinal;
|
|
|
|
+ var pcbWritten: cardinal): cardinal; cdecl; external 'PMSPL' index 371;
|
|
|
|
+
|
|
|
|
+function PrtDevIOCtl (var pData; var pParms; ufunction, uCategory: cardinal;
|
|
|
|
+ hDevice: cardinal): cardinal; cdecl; external 'PMSPL' index 372;
|
|
|
|
+
|
|
|
|
+procedure PrtAbort (hDevice: cardinal); cdecl; external 'PMSPL' index 375;
|
|
|
|
+
|
|
|
|
+function SplStdOpen (ahdc: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 350;
|
|
|
|
+
|
|
|
|
+function SplStdClose (ahdc: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 351;
|
|
|
|
+
|
|
|
|
+function SplStdStart (ahdc: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 352;
|
|
|
|
+
|
|
|
|
+function SplStdStop (ahdc: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 353;
|
|
|
|
+
|
|
|
|
+function SplStdDelete (hMetaFile: cardinal): longbool;
|
|
|
|
+ cdecl; external 'PMSPL' index 354;
|
|
|
|
+
|
|
|
|
+function SplStdGetBits (hMetaFile: cardinal; offData, cbData: longint;
|
|
|
|
+ var pchData): longbool; cdecl; external 'PMSPL' index 355;
|
|
|
|
+
|
|
|
|
+function SplStdQueryLength (hMetaFile: cardinal): longint;
|
|
|
|
+ cdecl; external 'PMSPL' index 356;
|
|
|
|
+
|
|
|
|
+function SplCreateDevice (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal): cardinal; cdecl; external 'PMSPL' index 401;
|
|
|
|
+
|
|
|
|
+function SplControlDevice (const pszComputerName, pszPortName: PChar;
|
|
|
|
+ ulControl: cardinal): cardinal; cdecl; external 'PMSPL' index 380;
|
|
|
|
+
|
|
|
|
+function SplDeleteDevice (const pszComputerName,
|
|
|
|
+ pszPrintDeviceName: PChar): cardinal; cdecl; external 'PMSPL' index 403;
|
|
|
|
+
|
|
|
|
+function SplEnumDevice (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 382;
|
|
|
|
+
|
|
|
|
+function SplSetDevice (const pszComputerName, pszPrintDeviceName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf, ulParmNum: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 402;
|
|
|
|
+
|
|
|
|
+function SplReleaseJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 384;
|
|
|
|
+
|
|
|
|
+function SplDeleteJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 386;
|
|
|
|
+
|
|
|
|
+function SplEnumJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 392;
|
|
|
|
+
|
|
|
|
+function SplQueryJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob, ulLevel: cardinal; var pBuf; cbBuf: cardinal;
|
|
|
|
+ var pcbNeeded: cardinal): cardinal; cdecl; external 'PMSPL' index 390;
|
|
|
|
+
|
|
|
|
+function SplHoldJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob: cardinal): cardinal; cdecl; external 'PMSPL' index 385;
|
|
|
|
+
|
|
|
|
+function SplSetJob (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulJob, ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 391;
|
|
|
|
+
|
|
|
|
+function SplCreateQueue (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal): cardinal; cdecl; external 'PMSPL' index 393;
|
|
|
|
+
|
|
|
|
+function SplReleaseQueue (const pszComputerName,
|
|
|
|
+ pszQueueName: PChar): cardinal; cdecl; external 'PMSPL' index 395;
|
|
|
|
+
|
|
|
|
+function SplDeleteQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 396;
|
|
|
|
+
|
|
|
|
+function SplHoldQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 394;
|
|
|
|
+
|
|
|
|
+function SplPurgeQueue (const pszComputerName, pszQueueName: PChar): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 404;
|
|
|
|
+
|
|
|
|
+function SplSetQueue (const pszComputerName, pszQueueName: PChar;
|
|
|
|
+ ulLevel: cardinal; var pBuf;cbBuf,ulParmNum: cardinal): cardinal;
|
|
|
|
+ cdecl; external 'PMSPL' index 398;
|
|
|
|
+
|
|
|
|
+function SplEnumDriver (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 406;
|
|
|
|
+
|
|
|
|
+function SplEnumPort (const pszComputerName: PChar; ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned,pcTotal,pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 408;
|
|
|
|
+
|
|
|
|
+function SplEnumQueueProcessor (const pszComputerName: PChar;ulLevel: cardinal;
|
|
|
|
+ var pBuf; cbBuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 407;
|
|
|
|
+
|
|
|
|
+function SplEnumPrinter (const pszComputerName: PChar;uLevel, fltype: cardinal;
|
|
|
|
+ var pBuf; cbbuf: cardinal; var pcReturned, pcTotal, pcbNeeded: cardinal;
|
|
|
|
+ var pReserved): cardinal; cdecl; external 'PMSPL' index 441;
|
|
|
|
+
|
|
|
|
+function SplCopyJob (const pszSrcComputerName, pszSrcQueueName: PChar;
|
|
|
|
+ ulSrcJob: cardinal; const pszTrgComputerName, pszTrgQueueName: PChar;
|
|
|
|
+ var pulTrgJob: cardinal): cardinal; cdecl; external 'PMSPL' index 442;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+end.
|
|
|
|
+
|
|
|
|
+{
|
|
|
|
+ $Log$
|
|
|
|
+ Revision 1.1 2002-10-28 16:05:18 hajny
|
|
|
|
+ + PM spooler interface added
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|