(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * SPL.DEF - Modula-2 OS/2 PM API Spooler interface * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# call(o_a_size => off, o_a_copy=>off, result_optional=>on, reg_saved => (si, di, ds, st1, st2), reg_param => (), seg_name => none, near_call => off, ds_eq_ss => off) *) (*# module(implementation=>off, init_code => off) *) (*# name(prefix => os2_lib) *) (*# data(near_ptr => off) *) DEFINITION MODULE Spl; FROM OS2DEF IMPORT LHANDLE,STR16,HWND,HDC, SEVERITY_NOERROR,SEVERITY_WARNING,SEVERITY_SEVERE,SEVERITY_ERROR; CONST SPL_ERROR = 0; SPL_OK = 1; _ADDRESS =0; DRIVER_NAME = 1; DRIVER_DATA = 2; DATA_TYPE = 3; _COMMENT = 4; PROC_NAME = 5; PROC_PARAMS = 6; SPL_PARAMS = 7; NETWORK_PARAMS = 8; TYPE HSPL = LHANDLE; (* Handle to a spool file *) HPROC = LHANDLE; (* Handle to a queue processor *) HSTD = LHANDLE; TYPE DEVOPENDATA = RECORD LogAddress : FarADDRESS; DriverName : FarADDRESS; Driv : POINTER TO DRIVDATA; DataType : FarADDRESS; Comment : FarADDRESS; QueueProcName : FarADDRESS; QueueProcParams : FarADDRESS; SpoolerParams : FarADDRESS; NetworkParams : FarADDRESS; END; (* Spooler Queue Manager Interface *) PROCEDURE QmOpen(t:ARRAY OF CHAR;c:CARDINAL;VAR d:DEVOPENDATA) : HSPL; PROCEDURE QmStartDoc(h:HSPL; n:ARRAY OF CHAR) : BOOLEAN; PROCEDURE QmWrite(h:HSPL; count:LONGCARD; b:ARRAY OF BYTE) : BOOLEAN; PROCEDURE QmEndDoc(h:HSPL) : CARDINAL; PROCEDURE QmClose(h:HSPL) : BOOLEAN; PROCEDURE QmAbort(h:HSPL) : BOOLEAN; PROCEDURE QmAbortDoc(h:HSPL) : BOOLEAN; CONST SPLC_ABORT = 1; SPLC_PAUSE = 2; SPLC_CONTINUE = 3; (* Spool Queue Processor Functions *) PROCEDURE QpOpen(t:ARRAY OF CHAR;VAR d:DEVOPENDATA) : HPROC; PROCEDURE QpPrint(h:HPROC; n:ARRAY OF CHAR) : BOOLEAN; PROCEDURE QpClose(h:HPROC) : BOOLEAN; PROCEDURE QpControl(h:HPROC; c:LONGINT) : BOOLEAN; PROCEDURE QpQueryDt(VAR c:LONGINT; VAR s : ARRAY OF STR16 ); PROCEDURE QpInstall(h:HWND) : BOOLEAN; (* File System Emulation Functions * The parameters for all of these, except PrtAbort, are the ** same as the corresponding DOS function eg PrtWrite has the ** same parameters as DosWrite. The parameter to PrtAbort is ** the file handle returned from PrtOpen and causes any "stuck" ** spool job to be abandoned and deleted. *) (*# save *) (*# name(prefix => none) *) PROCEDURE PrtOpen(dev:ARRAY OF CHAR; VAR handle:CARDINAL; VAR action:CARDINAL; size:LONGCARD; attrib,flag,mode:CARDINAL; rsrvd:LONGCARD) : CARDINAL; PROCEDURE PrtClose(handle:CARDINAL) : CARDINAL; PROCEDURE PrtWrite(handle:CARDINAL;buffer:FarADDRESS; bufflng:CARDINAL; VAR write:CARDINAL) : CARDINAL; PROCEDURE PrtDevIOCtl(data:FarADDRESS; parms:FarADDRESS; functn,categry:CARDINAL; h:CARDINAL) : CARDINAL; PROCEDURE PrtAbort (h:CARDINAL); (*# restore *) (* Style for SplMessageBox *) (* Same as for WinMsgBox - see WIN.DEF for details *) (* Spooler message interface *) PROCEDURE MessageBox(VAR s1:ARRAY OF CHAR; a,b:CARDINAL; VAR s2,s3:ARRAY OF CHAR; c,d:CARDINAL ):CARDINAL; (* PM_Q_STD Datatype functions *) PROCEDURE StdOpen( h:HDC ): BOOLEAN; PROCEDURE StdClose( h:HDC ): BOOLEAN; PROCEDURE StdStart( h:HDC ): BOOLEAN; PROCEDURE StdStop ( h:HDC ) : HSTD; PROCEDURE StdDelete ( h:HSTD ): BOOLEAN; PROCEDURE StdGetBits ( h:HSTD; a,b: LONGINT; VAR c:ARRAY OF CHAR): BOOLEAN; PROCEDURE StdQueryLength ( h:HSTD):LONGINT; (* Error information for SplMessageBox *) CONST SPLINFO_QPERROR = 00001H; SPLINFO_DDERROR = 00002H; SPLINFO_SPLERROR = 00004H; SPLINFO_OTHERERROR = 00080H; SPLINFO_INFORMATION = 00100H; SPLINFO_WARNING = 00200H; SPLINFO_ERROR = 00400H; SPLINFO_SEVERE = 00800H; SPLINFO_USERINTREQD = 01000H; (* Error Data for SplMessageBox *) SPLDATA_PRINTERJAM = 1; SPLDATA_FORMCHGREQD = 2; SPLDATA_CARTCHGREQD = 4; SPLDATA_PENCHGREQD = 8; SPLDATA_DATAERROR = 16; SPLDATA_UNEXPECTERROR = 32; SPLDATA_OTHER = 32768; (* return code for SplStdQueryLength *) SSQL_ERROR = -1; END Spl.