home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / spl.def < prev    next >
Text File  |  1994-07-15  |  47KB  |  1,203 lines

  1. DEFINITION MODULE SPL;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            Spooler constants, types and function declarations.
  6.  
  7.   Copyright (c) 1992-1994 by Juergen Neuhoff
  8. *************************************************************************)
  9.  
  10. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  11. (*$CDECL+    C-style procedures                                         *)
  12. (*$A         default alignment for record fields                        *)
  13.  
  14. IMPORT SYSTEM;
  15. FROM   OS2DEF  IMPORT TYPEPREFIX, LHANDLE, PSZ, HWND, HDC, PDRIVDATA, HFILE;
  16.  
  17. CONST (* Names of various OS2SYS.INI spooler variables *)
  18.   SPL_INI_SPOOLER          = "PM_SPOOLER";
  19.   SPL_INI_QUEUE            = "PM_SPOOLER_QUEUE";
  20.   SPL_INI_PRINTER          = "PM_SPOOLER_PRINTER";
  21.   SPL_INI_PRINTERDESCR     = "PM_SPOOLER_PRINTER_DESCR";
  22.   SPL_INI_QUEUEDESCR       = "PM_SPOOLER_QUEUE_DESCR";
  23.   SPL_INI_QUEUEDD          = "PM_SPOOLER_QUEUE_DD";
  24.   SPL_INI_QUEUEDDDATA      = "PM_SPOOLER_QUEUE_DDDATA";
  25.  
  26. CONST (* General SPL return values *)
  27.   SPL_ERROR                = 0;
  28.   SPL_OK                   = 1;
  29.  
  30. TYPE (* handle to a spool file *)
  31.    HSPL                    = LHANDLE;          (* hspl *)
  32.  
  33. TYPE (* Used in recording of PM_Q_STD data via SplStdxxx calls *)
  34.    HSTD                    = LHANDLE;    (* hstd *)
  35.    PHSTD                   = POINTER TO HSTD;
  36.  
  37. TYPE (* spooler manager open data *)
  38.   QMOPENDATA               = PSZ;
  39.   PQMOPENDATA              = POINTER TO PSZ;   (* pqmdop *)
  40.  
  41. CONST (* control codes for SplQpControl *)
  42.   SPLC_ABORT               = 1;
  43.   SPLC_PAUSE               = 2;
  44.   SPLC_CONTINUE            = 3;
  45.  
  46. CONST
  47.   (* flag defines for optional SplQpQueryFlags           *)
  48.   (* set this to allow spooler to bypass Queue Processor *)
  49.   (* for PM_Q_RAW jobs.  This allows print while a job   *)
  50.   (* is still spooling.                                  *)
  51.   QP_RAWDATA_BYPASS        = 00000001H;
  52.  
  53. TYPE (* handle to a spooler queue processor *)
  54.   HPROC                    = LHANDLE;         (* hproc *)
  55.  
  56. TYPE (* spooler processor open data *)
  57.   QPOPENDATA               = PSZ;
  58.   PQPOPENDATA              = POINTER TO PSZ;  (* pqpdop *)
  59.  
  60. (**************************************************************************
  61.   API's exported by Queue Processor DLL's.
  62.  
  63.   Note: OS/2 2.0 can be extended by Spooler Queue Processor.
  64.         This Modula-2 compiler can be used to create it.
  65.  
  66.         Writing such a Queue Processor DLL requires:
  67.         - SplQp... functions must be made public to the operating
  68.           system by placing their headers in a definition module
  69.           and their code an an implementation module.
  70.         - Insert (*$DLL *)    at the beginning of definition module
  71.         - Insert (*$CDECL+ *) at the begiining of implementation module
  72.  
  73.        The API for the spooler procedures looks like this:
  74.  
  75.     PROCEDURE SplQpOpen
  76.     ( DataCount                : LONGINT;
  77.       VAR QPDataIn             : QPOPENDATA
  78.     )                          : HPROC;
  79.  
  80.     PROCEDURE SplQpPrint
  81.     ( ProcHandle               : HPROC;
  82.       FileName                 : ARRAY OF CHAR
  83.     )                          : BOOLEAN;
  84.  
  85.     PROCEDURE SplQpClose
  86.     ( ProcHandle               : HPROC
  87.     )                          : BOOLEAN;
  88.  
  89.     PROCEDURE SplQpControl
  90.     ( ProcHandle               : HPROC;
  91.       Code                     : LONGINT
  92.     )                          : BOOLEAN;
  93.  
  94.     PROCEDURE SplQpQueryDt
  95.     ( VAR DataType             : LONGINT;
  96.       VAR DataTypes            : PSZ
  97.     )                          : BOOLEAN;
  98.  
  99.     PROCEDURE SplQpInstall
  100.     ( WinHandle                : HWND
  101.     )                          : BOOLEAN;
  102.  
  103.     (* The next API is optionally exported by Queue Processors *)
  104.     (* The flags may be set to QP_RAWDATA_BYPASS to allow the  *)
  105.     (* spooler to print the job while spooling, bypassing this *)
  106.     (* queue processor                                         *)
  107.  
  108.     PROCEDURE SplQpQueryFlags
  109.     ( VAR Flags                : LONGCARD
  110.     )                          : BOOLEAN;
  111.  
  112. *************************************************************************)
  113.  
  114.  
  115. (*************************************************************************
  116. * There are two definitions governing the QpOpen data block :-
  117. * 1) the original  QPOPENDATA, which is used as
  118. *    an array of PSZ and has a list of associated QPDAT defines
  119. *    for accessing elements of the array. This has been extended
  120. *    from 6 to 12 elements. The last element is a numeric type
  121. *    and cannot satisfactorily be accessed via array indexing.
  122. *
  123. * 2) a new SQPOPENDATA structure (see below)
  124. *
  125. * The old defn has been retained to support existing QProcs.
  126. *
  127. *************************************************************************)
  128.  
  129. CONST (* Definition for elements within the PQPOPENDATA block *)
  130.   QPDAT_ADDRESS      =  0;
  131.   QPDAT_DRIVER_NAME  =  1;
  132.   QPDAT_DRIVER_DATA  =  2;
  133.   QPDAT_DATA_TYPE    =  3;
  134.   QPDAT_COMMENT      =  4;
  135.   QPDAT_PROC_PARAMS  =  5;
  136.   QPDAT_SPL_PARAMS   =  6;     (* SplQmOpen Spooler params **       *)
  137.   QPDAT_NET_PARAMS   =  7;     (* SplQmOpen Network params **       *)
  138.   QPDAT_DOC_NAME     =  8;     (* SplQmStartDoc name       **       *)
  139.   QPDAT_QUEUE_NAME   =  9;     (* Queue name for job       **       *)
  140.   QPDAT_TOKEN        = 10;     (* SplQmOpen token name     **       *)
  141.   QPDAT_JOBID        = 11;     (* SQM job identity         **       *)
  142.  
  143. TYPE
  144.   SQPOPENDATA              = RECORD (* SplQpOpenData *)
  145.     CASE                     : TYPEPREFIX OF
  146.     | TRUE                   :
  147.       pszLogAddress          : PSZ;
  148.       pszDriverName          : PSZ;
  149.       pdriv                  : PDRIVDATA;
  150.       pszDataType            : PSZ;
  151.       pszComment             : PSZ;
  152.       pszProcParams          : PSZ;
  153.       pszSpoolParams         : PSZ;
  154.       pszNetworkParams       : PSZ;
  155.       pszDocName             : PSZ;
  156.       pszQueueName           : PSZ;
  157.       pszToken               : PSZ;
  158.       idJobId                : CARDINAL;
  159.     | FALSE                  :
  160.       LogAddress             : PSZ;
  161.       DriverName             : PSZ;
  162.       DriverData             : PDRIVDATA;
  163.       DataType               : PSZ;
  164.       Comment                : PSZ;
  165.       ProcParams             : PSZ;
  166.       SpoolParams            : PSZ;
  167.       NetworkParams          : PSZ;
  168.       DocName                : PSZ;
  169.       QueueName              : PSZ;
  170.       Token                  : PSZ;
  171.       JobId                  : CARDINAL;
  172.     END;                     END;
  173.   PSQPOPENDATA             = POINTER TO SQPOPENDATA;
  174.  
  175. CONST (* Error information for SplMessageBox *)
  176.   SPLINFO_QPERROR          = 0001H;
  177.   SPLINFO_DDERROR          = 0002H;
  178.   SPLINFO_SPLERROR         = 0004H;
  179.   SPLINFO_OTHERERROR       = 0080H;
  180.   SPLINFO_INFORMATION      = 0100H;
  181.   SPLINFO_WARNING          = 0200H;
  182.   SPLINFO_ERROR            = 0400H;
  183.   SPLINFO_SEVERE           = 0800H;
  184.   SPLINFO_USERINTREQD      = 1000H;
  185.  
  186. CONST (* Error Data for SplMessageBox *)
  187.   SPLDATA_PRINTERJAM       = 0001H;
  188.   SPLDATA_FORMCHGREQD      = 0002H;
  189.   SPLDATA_CARTCHGREQD      = 0004H;
  190.   SPLDATA_PENCHGREQD       = 0008H;
  191.   SPLDATA_DATAERROR        = 0010H;
  192.   SPLDATA_UNEXPECTERROR    = 0020H;
  193.   SPLDATA_OTHER            = 8000H;
  194.  
  195. CONST (* return code for fSplStdQueryLength *)
  196.   SSQL_ERROR               = -1;
  197.  
  198. TYPE
  199.   SPLERR                   = LONGCARD;
  200.  
  201. CONST (* length for character arrays in structs (excluding zero terminator) *)
  202.   CNLEN                    = 15; (* Computer name length      *)
  203.   UNLEN                    = 20; (* Maximum user name length  *)
  204.   QNLEN                    = 12; (* Queue name maximum length *)
  205.   PDLEN                    =  8; (* Print destination length  *)
  206.   DTLEN                    =  9; (* Spool file data type      *)
  207.                                  (* e.g. PM_Q_STD,PM_Q_RAW    *)
  208.   QP_DATATYPE_SIZE         = 15; (* returned by SplQpQueryDt  *)
  209.   DRIV_DEVICENAME_SIZE     = 31; (* see DRIVDATA struc        *)
  210.   DRIV_NAME_SIZE           =  8; (* name of device driver     *)
  211.   PRINTERNAME_SIZE         = 32; (* max printer name length   *)
  212.   FORMNAME_SIZE            = 31; (* max form name length      *)
  213.   MAXCOMMENTSZ             = 48; (* queue comment length      *)
  214.  
  215. TYPE
  216.   DRIVPROPS                = RECORD   (* dprop *)
  217.     CASE                     : TYPEPREFIX OF
  218.     | TRUE                   :
  219.       pszKeyName             : PSZ;
  220.       cbBuf                  : LONGCARD;
  221.       pBuf                   : SYSTEM.ADDRESS;
  222.     | FALSE                  :
  223.       KeyName                : PSZ;
  224.       BufSize                : LONGCARD;
  225.       Buf                    : SYSTEM.ADDRESS;
  226.     END;                     END;
  227.   PDRIVPROPS               = POINTER TO DRIVPROPS;
  228.   NPDRIVPROPS              = POINTER TO DRIVPROPS;
  229.  
  230. TYPE
  231.   PRJINFO                  = RECORD   (* prj1 *)
  232.     CASE                     : TYPEPREFIX OF
  233.     | TRUE                   :
  234.       uJobId                 : CARDINAL;
  235.       szUserName             : ARRAY [0..UNLEN] OF CHAR;
  236.       pad_1                  : CHAR;
  237.       szNotifyName           : ARRAY [0..CNLEN] OF CHAR;
  238.       szDataType             : ARRAY [0..DTLEN] OF CHAR;
  239.       pszParms               : PSZ;
  240.       uPosition              : CARDINAL;
  241.       fsStatus               : CARDINAL;
  242.       pszStatus              : PSZ;
  243.       ulSubmitted            : LONGCARD;
  244.       ulSize                 : LONGCARD;
  245.       pszComment             : PSZ;
  246.     | FALSE                  :
  247.       JobId                  : CARDINAL;
  248.       UserName               : ARRAY [0..UNLEN] OF CHAR;
  249.       Pad_1                  : CHAR;
  250.       NotifyName             : ARRAY [0..CNLEN] OF CHAR;
  251.       DataType               : ARRAY [0..DTLEN] OF CHAR;
  252.       Parms                  : PSZ;
  253.       Position               : CARDINAL;
  254.       StatusFlag             : CARDINAL;
  255.       StatusStr              : PSZ;
  256.       Submitted              : LONGCARD;
  257.       Size                   : LONGCARD;
  258.       Comment                : PSZ;
  259.     END;                     END;
  260.   PPRJINFO                 = POINTER TO PRJINFO;
  261.   NPPRJINFO                = POINTER TO PRJINFO;
  262.  
  263. TYPE
  264.   PRJINFO2                 = RECORD   (* prj2 *)
  265.     CASE                     : TYPEPREFIX OF
  266.     | TRUE                   :
  267.       uJobId                 : CARDINAL;
  268.       uPriority              : CARDINAL;
  269.       pszUserName            : PSZ;
  270.       uPosition              : CARDINAL;
  271.       fsStatus               : CARDINAL;
  272.       ulSubmitted            : LONGCARD;
  273.       ulSize                 : LONGCARD;
  274.       pszComment             : PSZ;
  275.       pszDocument            : PSZ;
  276.     | FALSE                  :
  277.       JobId                  : CARDINAL;
  278.       Priority               : CARDINAL;
  279.       UserName               : PSZ;
  280.       Position               : CARDINAL;
  281.       Status                 : CARDINAL;
  282.       Submitted              : LONGCARD;
  283.       Size                   : LONGCARD;
  284.       Comment                : PSZ;
  285.       Document               : PSZ;
  286.     END;                     END;
  287.   PPRJINFO2                = POINTER TO PRJINFO2;
  288.   NPPRJINFO2               = POINTER TO PRJINFO2;
  289.  
  290. TYPE
  291.   PRJINFO3                 = RECORD   (* prj *)
  292.     CASE                     : TYPEPREFIX OF
  293.     | TRUE                   :
  294.       uJobId                 : CARDINAL;
  295.       uPriority              : CARDINAL;
  296.       pszUserName            : PSZ;
  297.       uPosition              : CARDINAL;
  298.       fsStatus               : CARDINAL;
  299.       ulSubmitted            : LONGCARD;
  300.       ulSize                 : LONGCARD;
  301.       pszComment             : PSZ;
  302.       pszDocument            : PSZ;
  303.       pszNotifyName          : PSZ;
  304.       pszDataType            : PSZ;
  305.       pszParms               : PSZ;
  306.       pszStatus              : PSZ;
  307.       pszQueue               : PSZ;
  308.       pszQProcName           : PSZ;
  309.       pszQProcParms          : PSZ;
  310.       pszDriverName          : PSZ;
  311.       pDriverData            : PDRIVDATA;
  312.       pszPrinterName         : PSZ;
  313.     | FALSE                  :
  314.       JobId                  : CARDINAL;
  315.       Priority               : CARDINAL;
  316.       UserName               : PSZ;
  317.       Position               : CARDINAL;
  318.       Status                 : CARDINAL;
  319.       Submitted              : LONGCARD;
  320.       Size                   : LONGCARD;
  321.       Comment                : PSZ;
  322.       Document               : PSZ;
  323.       NotifyName             : PSZ;
  324.       DataType               : PSZ;
  325.       Parms                  : PSZ;
  326.       StatusStr              : PSZ;
  327.       Queue                  : PSZ;
  328.       QProcName              : PSZ;
  329.       QProcParms             : PSZ;
  330.       DriverName             : PSZ;
  331.       DriverData             : PDRIVDATA;
  332.       PrinterName            : PSZ;
  333.     END;                     END;
  334.   PPRJINFO3                = POINTER TO PRJINFO3;
  335.   NPPRJINFO3               = POINTER TO PRJINFO3;
  336.  
  337. TYPE
  338.   PRDINFO                  = RECORD    (* prd1 *)
  339.     CASE                     : TYPEPREFIX OF
  340.     | TRUE                   :
  341.       szName                 : ARRAY [0..PDLEN] OF CHAR;
  342.       pad_1                  : ARRAY [0..2] OF SYSTEM.BYTE;
  343.       szUserName             : ARRAY [0..UNLEN] OF CHAR;
  344.       uJobId                 : CARDINAL;
  345.       fsStatus               : CARDINAL;
  346.       pszStatus              : PSZ;
  347.       time                   : CARDINAL;
  348.     | FALSE                  :
  349.       Name                   : ARRAY [0..PDLEN] OF CHAR;
  350.       Pad_1                  : ARRAY [0..2] OF SYSTEM.BYTE;
  351.       UserName               : ARRAY [0..UNLEN] OF CHAR;
  352.       JobId                  : CARDINAL;
  353.       StatusFlag             : CARDINAL;
  354.       StatusStr              : PSZ;
  355.       Time                   : CARDINAL;
  356.     END;                     END;
  357.   PPRDINFO                 = POINTER TO PRDINFO;
  358.   NPPRDINFO                = POINTER TO PRDINFO;
  359.  
  360. TYPE
  361.   PRDINFO3                 = RECORD    (* prd *)
  362.     CASE                     : TYPEPREFIX OF
  363.     | TRUE                   :
  364.       pszPrinterName         : PSZ;
  365.       pszUserName            : PSZ;
  366.       pszLogAddr             : PSZ;
  367.       uJobId                 : CARDINAL;
  368.       fsStatus               : CARDINAL;
  369.       pszStatus              : PSZ;
  370.       pszComment             : PSZ;
  371.       pszDrivers             : PSZ;
  372.       time                   : CARDINAL;
  373.       usTimeOut              : CARDINAL;
  374.     | FALSE                  :
  375.       PrinterName            : PSZ;
  376.       UserName               : PSZ;
  377.       LogAddr                : PSZ;
  378.       JobId                  : CARDINAL;
  379.       StatusFlag             : CARDINAL;
  380.       StatusStr              : PSZ;
  381.       Comment                : PSZ;
  382.       Drivers                : PSZ;
  383.       Time                   : CARDINAL;
  384.       TimeOut                : CARDINAL;
  385.     END;                     END;
  386.   PPRDINFO3                = POINTER TO PRDINFO3;
  387.   NPPRDINFO3               = POINTER TO PRDINFO3;
  388.  
  389. TYPE
  390.   PRQINFO                  = RECORD    (* prq1 *)
  391.     CASE                     : TYPEPREFIX OF
  392.     | TRUE                   :
  393.       szName                 : ARRAY [0..QNLEN] OF CHAR;
  394.       pad_1                  : CHAR;
  395.       uPriority              : CARDINAL;
  396.       uStartTime             : CARDINAL;
  397.       uUntilTime             : CARDINAL;
  398.       pszSepFile             : PSZ;
  399.       pszPrProc              : PSZ;
  400.       pszDestinations        : PSZ;
  401.       pszParms               : PSZ;
  402.       pszComment             : PSZ;
  403.       fsStatus               : CARDINAL;
  404.       cJobs                  : CARDINAL;
  405.     | FALSE                  :
  406.       Name                   : ARRAY [0..QNLEN] OF CHAR;
  407.       Pad_1                  : CHAR;
  408.       Priority               : CARDINAL;
  409.       StartTime              : CARDINAL;
  410.       UntilTime              : CARDINAL;
  411.       SepFile                : PSZ;
  412.       PrProc                 : PSZ;
  413.       Destinations           : PSZ;
  414.       Parms                  : PSZ;
  415.       Comment                : PSZ;
  416.       Status                 : CARDINAL;
  417.       Jobs                   : CARDINAL;
  418.     END;                     END;
  419.   PPRQINFO                 = POINTER TO PRQINFO;
  420.   NPPRQINFO                = POINTER TO PRQINFO;
  421.  
  422. TYPE
  423.   PRQINFO3                 = RECORD  (* prq *)
  424.     CASE                     : TYPEPREFIX OF
  425.     | TRUE                   :
  426.       pszName                : PSZ;
  427.       uPriority              : CARDINAL;
  428.       uStartTime             : CARDINAL;
  429.       uUntilTime             : CARDINAL;
  430.       fsType                 : CARDINAL;
  431.       pszSepFile             : PSZ;
  432.       pszPrProc              : PSZ;
  433.       pszParms               : PSZ;
  434.       pszComment             : PSZ;
  435.       fsStatus               : CARDINAL;
  436.       cJobs                  : CARDINAL;
  437.       pszPrinters            : PSZ;
  438.       pszDriverName          : PSZ;
  439.       pDriverData            : PDRIVDATA;
  440.     | FALSE                  :
  441.       Name                   : PSZ;
  442.       Priority               : CARDINAL;
  443.       StartTime              : CARDINAL;
  444.       UntilTime              : CARDINAL;
  445.       Type                   : CARDINAL;
  446.       SepFile                : PSZ;
  447.       PrProc                 : PSZ;
  448.       Parms                  : PSZ;
  449.       Comment                : PSZ;
  450.       Status                 : CARDINAL;
  451.       Jobs                   : CARDINAL;
  452.       Printers               : PSZ;
  453.       DriverName             : PSZ;
  454.       DriverData             : PDRIVDATA;
  455.     END;                     END;
  456.   PPRQINFO3                = POINTER TO PRQINFO3;
  457.   NPPRQINFO3               = POINTER TO PRQINFO3;
  458.  
  459. TYPE
  460.   PRQINFO6                 = RECORD  (* prq6 *)
  461.     CASE                     : TYPEPREFIX OF
  462.     | TRUE                   :
  463.       pszName                : PSZ;
  464.       uPriority              : CARDINAL;
  465.       uStartTime             : CARDINAL;
  466.       uUntilTime             : CARDINAL;
  467.       fsType                 : CARDINAL;
  468.       pszSepFile             : PSZ;
  469.       pszPrProc              : PSZ;
  470.       pszParms               : PSZ;
  471.       pszComment             : PSZ;
  472.       fsStatus               : CARDINAL;
  473.       cJobs                  : CARDINAL;
  474.       pszPrinters            : PSZ;
  475.       pszDriverName          : PSZ;
  476.       pDriverData            : PDRIVDATA;
  477.       pszRemoteComputerName  : PSZ;
  478.       pszRemoteQueueName     : PSZ;
  479.     | FALSE                  :
  480.       Name                   : PSZ;
  481.       Priority               : CARDINAL;
  482.       StartTime              : CARDINAL;
  483.       UntilTime              : CARDINAL;
  484.       Type                   : CARDINAL;
  485.       SepFile                : PSZ;
  486.       PrProc                 : PSZ;
  487.       Parms                  : PSZ;
  488.       Comment                : PSZ;
  489.       Status                 : CARDINAL;
  490.       Jobs                   : CARDINAL;
  491.       Printers               : PSZ;
  492.       DriverName             : PSZ;
  493.       DriverData             : PDRIVDATA;
  494.       RemoteComputerName     : PSZ;
  495.       RemoteQueueName        : PSZ;
  496.     END;                     END;
  497.   PPRQINFO6                = POINTER TO PRQINFO6;
  498.   NPPRQINFO6               = POINTER TO PRQINFO6;
  499.  
  500. TYPE (* structure for DosPrintJobGetId *)
  501.   PRIDINFO                 = RECORD    (* prjid *)
  502.     CASE                     : TYPEPREFIX OF
  503.     | TRUE                   :
  504.       uJobId                 : CARDINAL;
  505.       szComputerName         : ARRAY [0..CNLEN] OF CHAR;
  506.       szQueueName            : ARRAY [0..QNLEN] OF CHAR;
  507.       pad_1                  : CHAR;
  508.     | FALSE                  :
  509.       JobId                  : CARDINAL;
  510.       ComputerName           : ARRAY [0..CNLEN] OF CHAR;
  511.       QueueName              : ARRAY [0..QNLEN] OF CHAR;
  512.       Pad_1                  : CHAR;
  513.     END;                     END;
  514.   PPRIDINFO                = POINTER TO PRIDINFO;
  515.   NPPRIDINFO               = POINTER TO PRIDINFO;
  516.  
  517. TYPE (* structure for DosPrintDriverEnum *)
  518.   PRDRIVINFO     = RECORD   (* prdid *)
  519.     CASE           : TYPEPREFIX OF
  520.     | TRUE         :
  521.       szDrivName   : ARRAY [0..DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE] OF CHAR;
  522.     | FALSE        :
  523.       DrivName     : ARRAY [0..DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE] OF CHAR;
  524.     END;           END;
  525.   PPRDRIVINFO    = POINTER TO PRDRIVINFO;
  526.   NPPRDRIVINFO   = POINTER TO PRDRIVINFO;
  527.  
  528. TYPE (* structure for DosPrintQProcessorEnum *)
  529.   PRQPROCINFO    = RECORD     (* prqp *)
  530.     CASE           : TYPEPREFIX OF
  531.     | TRUE         :
  532.       szQProcName  : ARRAY [0..QNLEN] OF CHAR;
  533.     | FALSE        :
  534.       QProcName    : ARRAY [0..QNLEN] OF CHAR;
  535.     END;           END;
  536.   PPRQPROCINFO   = POINTER TO PRQPROCINFO;
  537.   NPPRQPROCINFO  = POINTER TO PRQPROCINFO;
  538.  
  539. TYPE (* structure for DosPrintPortEnum Level 0 *)
  540.   PRPORTINFO     = RECORD     (* prpo *)
  541.     CASE           : TYPEPREFIX OF
  542.     | TRUE         :
  543.       szPortName   : ARRAY [0..PDLEN] OF CHAR;
  544.     | FALSE        :
  545.       PortName     : ARRAY [0..PDLEN] OF CHAR;
  546.     END;           END;
  547.   PPRPORTINFO    = POINTER TO PRPORTINFO;
  548.   NPPRPORTINFO   = POINTER TO PRPORTINFO;
  549.  
  550. TYPE (* structure for DosPrintPortEnum Level 1 *)
  551.   PRPORTINFO1                  = RECORD    (* prpo1 *)
  552.     CASE                         : TYPEPREFIX OF
  553.     | TRUE                       :
  554.       pszPortName                : PSZ;
  555.       pszPortDriverName          : PSZ;
  556.       pszPortDriverPathName      : PSZ;
  557.     | FALSE                      :
  558.       PortName                   : PSZ;
  559.       PortDriverName             : PSZ;
  560.       PortDriverPathName         : PSZ;
  561.     END;                         END;
  562.   PPRPORTINFO1                 = POINTER TO PRPORTINFO1;
  563.   NPPRPORTINFO1                = POINTER TO PRPORTINFO1;
  564.  
  565. CONST (* Values for parmnum in DosPrintQSetInfo/SplSetQueue  *)
  566.   PRQ_PRIORITY_PARMNUM         =  2;
  567.   PRQ_STARTTIME_PARMNUM        =  3;
  568.   PRQ_UNTILTIME_PARMNUM        =  4;
  569.   PRQ_SEPARATOR_PARMNUM        =  5;
  570.   PRQ_PROCESSOR_PARMNUM        =  6;
  571.   PRQ_DESTINATIONS_PARMNUM     =  7;
  572.   PRQ_PARMS_PARMNUM            =  8;
  573.   PRQ_COMMENT_PARMNUM          =  9;
  574.   PRQ_TYPE_PARMNUM             = 10;
  575.   PRQ_PRINTERS_PARMNUM         = 12;
  576.   PRQ_DRIVERNAME_PARMNUM       = 13;
  577.   PRQ_DRIVERDATA_PARMNUM       = 14;
  578.   PRQ_REMOTE_COMPUTER_PARMNUM  = 15;
  579.   PRQ_REMOTE_QUEUE_PARMNUM     = 16;
  580.   PRQ_MAXPARMNUM               = 16;
  581.  
  582. CONST (* Print Queue Priority *)
  583.   PRQ_MAX_PRIORITY             = 1;       (* highest priority *)
  584.   PRQ_DEF_PRIORITY             = 5;
  585.   PRQ_MIN_PRIORITY             = 9;       (* lowest priority  *)
  586.   PRQ_NO_PRIORITY              = 0;
  587.  
  588. CONST (* Print queue status bitmask and values for level 1 *)
  589.   PRQ_STATUS_MASK              = 3;
  590.   PRQ_ACTIVE                   = 0;
  591.   PRQ_PAUSED                   = 1;       (* queue is held    *)
  592.   PRQ_ERROR                    = 2;
  593.   PRQ_PENDING                  = 3;       (* pending deletion *)
  594.  
  595. CONST (* Print queue status bits for level 3 *)
  596.   PRQ3_PAUSED                  = 1H;      (* queue is held    *)
  597.   PRQ3_PENDING                 = 2H;      (* pending deletion *)
  598.  
  599. CONST (* Print queue type bits for level 3 *)
  600.   PRQ3_TYPE_RAW                = 0001H;   (* spools printer-specific data *)
  601.   PRQ3_TYPE_BYPASS             = 0002H;   (* allow print while spooling   *)
  602.  
  603. CONST (* Values for parmnum in DosPrintJobSetInfo/SplSetJob *)
  604.   PRJ_NOTIFYNAME_PARMNUM       =  3;
  605.   PRJ_DATATYPE_PARMNUM         =  4;
  606.   PRJ_PARMS_PARMNUM            =  5;
  607.   PRJ_POSITION_PARMNUM         =  6;
  608.   PRJ_JOBFILEINUSE_PARMNUM     =  7;
  609.   PRJ_COMMENT_PARMNUM          = 11;
  610.   PRJ_DOCUMENT_PARMNUM         = 12;
  611.   PRJ_STATUSCOMMENT_PARMNUM    = 13;
  612.   PRJ_PRIORITY_PARMNUM         = 14;
  613.   PRJ_PROCPARMS_PARMNUM        = 16;
  614.   PRJ_DRIVERDATA_PARMNUM       = 18;
  615.   PRJ_MAXPARMNUM               = 18;
  616.  
  617. CONST (* Bitmap masks for status field of PRJINFO. *)
  618.       (* 2-7 bits also used in device status *)
  619.   PRJ_QSTATUS                  = 0003H;    (* Bits 0,1  *)
  620.   PRJ_DEVSTATUS                = 0FFCH;    (* 2-11 bits *)
  621.   PRJ_COMPLETE                 = 0004H;    (* Bit 2     *)
  622.   PRJ_INTERV                   = 0008H;    (* Bit 3     *)
  623.   PRJ_ERROR                    = 0010H;    (* Bit 4     *)
  624.   PRJ_DESTOFFLINE              = 0020H;    (* Bit 5     *)
  625.   PRJ_DESTPAUSED               = 0040H;    (* Bit 6     *)
  626.   PRJ_NOTIFY                   = 0080H;    (* Bit 7     *)
  627.   PRJ_DESTNOPAPER              = 0100H;    (* Bit 8     *)
  628.   PRJ_DESTFORMCHG              = 0200H;    (* BIT 9     *)
  629.   PRJ_DESTCRTCHG               = 0400H;    (* BIT 10    *)
  630.   PRJ_DESTPENCHG               = 0800H;    (* BIT 11    *)
  631.   PRJ_JOBFILEINUSE             = 4000H;    (* Bit 14    *)
  632.   PRJ_DELETED                  = 8000H;    (* Bit 15    *)
  633.  
  634. CONST (* Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO. *)
  635.   PRJ_QS_QUEUED                = 0;
  636.   PRJ_QS_PAUSED                = 1;
  637.   PRJ_QS_SPOOLING              = 2;
  638.   PRJ_QS_PRINTING              = 3;
  639.  
  640. CONST (* Print Job Priority *)
  641.   PRJ_MAX_PRIORITY             = 99;          (* lowest priority  *)
  642.   PRJ_MIN_PRIORITY             =  1;          (* highest priority *)
  643.   PRJ_NO_PRIORITY              =  0;
  644.  
  645. CONST (* Bitmap masks for status field of PRDINFO. *)
  646.   PRD_STATUS_MASK              = 0003H;       (* Bits 0,1 *)
  647.   PRD_DEVSTATUS                = 0FFCH;       (* 2-11 bits *)
  648.  
  649. CONST (* Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO. *)
  650.   PRD_ACTIVE                   = 0;
  651.   PRD_PAUSED                   = 1;
  652.  
  653. CONST (* Control codes used in DosPrintDestControl/SplControlDevice *)
  654.   PRD_DELETE                   = 0;
  655.   PRD_PAUSE                    = 1;
  656.   PRD_CONT                     = 2;
  657.   PRD_RESTART                  = 3;
  658.  
  659. CONST (* Values for parmnum in DosPrintDestSetInfo/SplSetDevice *)
  660.   PRD_LOGADDR_PARMNUM          =  3;
  661.   PRD_COMMENT_PARMNUM          =  7;
  662.   PRD_DRIVERS_PARMNUM          =  8;
  663.   PRD_TIMEOUT_PARMNUM          = 10;
  664.  
  665. TYPE (* structure for SplEnumPrinter *)
  666.   PRINTERINFO                  = RECORD   (* prtin *)
  667.     CASE                         : TYPEPREFIX OF
  668.     | TRUE                       :
  669.       flType                     : LONGCARD;
  670.       pszComputerName            : PSZ;
  671.       pszPrintDestinationName    : PSZ;
  672.       pszDescription             : PSZ;
  673.       pszLocalName               : PSZ;
  674.     | FALSE                      :
  675.       Type                       : LONGCARD;
  676.       ComputerName               : PSZ;
  677.       PrintDestinationName       : PSZ;
  678.       Description                : PSZ;
  679.       LocalName                  : PSZ;
  680.     END;                         END;
  681.   PPRINTERINFO                 = POINTER TO PRINTERINFO;
  682.  
  683. CONST (* Flags for flType in  PRINTERINFO and SplEnumPrinter *)
  684.   SPL_PR_QUEUE                 = 00000001H; (* include queues *)
  685.   SPL_PR_DIRECT_DEVICE         = 00000002H; (* unattached devices *)
  686.   SPL_PR_QUEUED_DEVICE         = 00000004H; (* queued devices *)
  687.   SPL_PR_LOCAL_ONLY            = 00000100H; (* exclude remote queues *)
  688.  
  689.  
  690. (*** Spooler API functions *)
  691.  
  692. PROCEDURE SplQmOpen
  693. ( Token                        : ARRAY OF CHAR;
  694.   Count                        : LONGINT;
  695.   Data                         : PQMOPENDATA
  696. )                              : HSPL;
  697.  
  698. PROCEDURE SplQmStartDoc
  699. ( SpoolHandle                  : HSPL;
  700.   DocName                      : ARRAY OF CHAR
  701. )                              : BOOLEAN;
  702.  
  703. PROCEDURE SplQmWrite
  704. ( SpoolHandle                  : HSPL;
  705.   Count                        : LONGINT;
  706.   VAR Data                     : ARRAY OF SYSTEM.BYTE
  707. )                              : BOOLEAN;
  708.  
  709. PROCEDURE SplQmEndDoc
  710. ( SpoolHandle                  : HSPL
  711. )                              : BOOLEAN;
  712.  
  713. PROCEDURE SplQmClose
  714. ( SpoolHandle                  : HSPL
  715. )                              : BOOLEAN;
  716.  
  717. PROCEDURE SplQmAbort
  718. ( SpoolHandle                  : HSPL
  719. )                              : BOOLEAN;
  720.  
  721. PROCEDURE SplQmAbortDoc
  722. ( SpoolHandle                  : HSPL
  723. )                              : BOOLEAN;
  724.  
  725. PROCEDURE SplMessageBox
  726. ( VAR LogAddrStr               : ARRAY OF CHAR;
  727.   ErrInfoFlags                 : LONGCARD;
  728.   ErrDataFlags                 : LONGCARD;
  729.   VAR Text                     : ARRAY OF CHAR;
  730.   VAR Caption                  : ARRAY OF CHAR;
  731.   WindowId                     : LONGCARD;
  732.   Style                        : LONGCARD
  733. )                              : LONGCARD;
  734.  
  735.  
  736. (*** Direct Device File System Interface *)
  737.  
  738. PROCEDURE PrtOpen
  739. ( DeviceName                   : ARRAY OF CHAR;
  740.   VAR Device                   : HFILE;
  741.   VAR ActionTaken              : LONGCARD;
  742.   FileSize                     : LONGCARD;
  743.   FileAttr                     : LONGCARD;
  744.   OpenFlag                     : LONGCARD;
  745.   OpenMode                     : LONGCARD;
  746.   Reserved                     : LONGCARD
  747. )                              : LONGCARD;
  748.  
  749. PROCEDURE PrtClose
  750. ( Device                       : HFILE
  751. )                              : LONGCARD;
  752.  
  753. PROCEDURE PrtWrite
  754. ( Device                       : HFILE;
  755.   VAR Data                     : ARRAY OF SYSTEM.BYTE;
  756.   DataSize                     : LONGCARD;
  757.   VAR WrittenSize              : LONGCARD
  758. )                              : LONGCARD;
  759.  
  760. PROCEDURE PrtDevIOCtl
  761. ( VAR Data                     : ARRAY OF SYSTEM.BYTE;
  762.   VAR Parms                    : ARRAY OF SYSTEM.BYTE;
  763.   Function                     : LONGCARD;
  764.   Category                     : LONGCARD;
  765.   Device                       : LONGCARD
  766. )                              : LONGCARD;
  767.  
  768. PROCEDURE PrtAbort
  769. ( Device                       : LONGCARD
  770. );
  771.  
  772.  
  773. (*** further Spooler API functions *)
  774.  
  775. PROCEDURE SplStdOpen
  776. ( DevHandle                    : HDC
  777. )                              : BOOLEAN;
  778.  
  779. PROCEDURE SplStdClose
  780. ( DevHandle                    : HDC
  781. )                              : BOOLEAN;
  782.  
  783. PROCEDURE SplStdStart
  784. ( DevHandle                    : HDC
  785. )                              : BOOLEAN;
  786.  
  787. PROCEDURE SplStdStop
  788. ( DevHandle                    : HDC
  789. )                              : HSTD;
  790.  
  791. PROCEDURE SplStdDelete
  792. ( MetaFile                     : HSTD
  793. )                              : BOOLEAN;
  794.  
  795. PROCEDURE SplStdGetBits
  796. ( MetaFile                     : HSTD;
  797.   DataOffset                   : LONGINT;
  798.   DataSize                     : LONGINT;
  799.   VAR Data                     : ARRAY OF SYSTEM.BYTE
  800. )                              : BOOLEAN;
  801.  
  802. PROCEDURE SplStdQueryLength
  803. ( MetaFile                     : HSTD
  804. )                              : LONGINT;
  805.  
  806. PROCEDURE SplCreateDevice      (* DosPrintDestAdd *)
  807. ( ComputerName                 : ARRAY OF CHAR;
  808.   Level                        : LONGCARD;
  809.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  810.   BufferSize                   : LONGCARD
  811. )                              : SPLERR;
  812.  
  813. PROCEDURE SplControlDevice     (* DosPrintDestControl *)
  814. ( ComputerName                 : ARRAY OF CHAR;
  815.   PortName                     : ARRAY OF CHAR;
  816.   Control                      : LONGCARD
  817. )                              : SPLERR;
  818.  
  819. PROCEDURE SplDeleteDevice      (* DosPrintDestDel *)
  820. ( ComputerName                 : ARRAY OF CHAR;
  821.   PrintDeviceName              : ARRAY OF CHAR
  822. )                              : SPLERR;
  823.  
  824. PROCEDURE SplEnumDevice        (* DosPrintDestEnum *)
  825. ( ComputerName                 : ARRAY OF CHAR;
  826.   Level                        : LONGCARD;
  827.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  828.   BufferSize                   : LONGCARD;
  829.   VAR ReturnedEntries          : LONGCARD;
  830.   VAR TotalEntries             : LONGCARD;
  831.   VAR NeededSize               : LONGCARD;
  832.   Reserved                     : SYSTEM.ADDRESS
  833. )                              : SPLERR;
  834.  
  835. PROCEDURE SplQueryDevice       (* DosPrintDestGetInfo *)
  836. ( ComputerName                 : ARRAY OF CHAR;
  837.   PrintDeviceName              : ARRAY OF CHAR;
  838.   Level                        : LONGCARD;
  839.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  840.   BufferSize                   : LONGCARD;
  841.   VAR NeededSize               : LONGCARD
  842. )                              : SPLERR;
  843.  
  844. PROCEDURE SplSetDevice         (* DosPrintDestSetInfo *)
  845. ( ComputerName                 : ARRAY OF CHAR;
  846.   PrintDeviceName              : ARRAY OF CHAR;
  847.   Level                        : LONGCARD;
  848.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  849.   BufferSize                   : LONGCARD;
  850.   ParmNum                      : LONGCARD
  851. )                              : SPLERR;
  852.  
  853. PROCEDURE SplReleaseJob        (* DosPrintJobContinue *)
  854. ( ComputerName                 : ARRAY OF CHAR;
  855.   QueueName                    : ARRAY OF CHAR;
  856.   Job                          : LONGCARD
  857. )                              : SPLERR;
  858.  
  859. PROCEDURE SplDeleteJob         (* DosPrintJobDel *)
  860. ( ComputerName                 : ARRAY OF CHAR;
  861.   QueueName                    : ARRAY OF CHAR;
  862.   Job                          : LONGCARD
  863. )                              : SPLERR;
  864.  
  865. PROCEDURE SplEnumJob           (* DosPrintJobEnum *)
  866. ( ComputerName                 : ARRAY OF CHAR;
  867.   QueueName                    : ARRAY OF CHAR;
  868.   Level                        : LONGCARD;
  869.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  870.   BufferSize                   : LONGCARD;
  871.   VAR ReturnedEntries          : LONGCARD;
  872.   VAR TotalEntries             : LONGCARD;
  873.   VAR NeededSize               : LONGCARD;
  874.   Reserved                     : SYSTEM.ADDRESS
  875. )                              : SPLERR;
  876.  
  877. PROCEDURE SplQueryJob          (* DosPrintJobGetInfo *)
  878. ( ComputerName                 : ARRAY OF CHAR;
  879.   QueueName                    : ARRAY OF CHAR;
  880.   Job                          : LONGCARD;
  881.   Level                        : LONGCARD;
  882.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  883.   BufferSize                   : LONGCARD;
  884.   VAR NeededSize               : LONGCARD
  885. )                              : SPLERR;
  886.  
  887. PROCEDURE SplHoldJob           (* DosPrintJobPause *)
  888. ( ComputerName                 : ARRAY OF CHAR;
  889.   QueueName                    : ARRAY OF CHAR;
  890.   Job                          : LONGCARD
  891. )                              : SPLERR;
  892.  
  893. PROCEDURE SplSetJob            (* DosPrintJobSetInfo *)
  894. ( ComputerName                 : ARRAY OF CHAR;
  895.   QueueName                    : ARRAY OF CHAR;
  896.   Job                          : LONGCARD;
  897.   Level                        : LONGCARD;
  898.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  899.   BufferSize                   : LONGCARD;
  900.   ParmNum                      : LONGCARD
  901. )                              : SPLERR;
  902.  
  903. PROCEDURE SplCreateQueue       (* DosPrintQAdd *)
  904. ( ComputerName                 : ARRAY OF CHAR;
  905.   Level                        : LONGCARD;
  906.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  907.   BufferSize                   : LONGCARD
  908. )                              : SPLERR;
  909.  
  910. PROCEDURE SplReleaseQueue      (* DosPrintQContinue *)
  911. ( ComputerName                 : ARRAY OF CHAR;
  912.   QueueName                    : ARRAY OF CHAR
  913. )                              : SPLERR;
  914.  
  915. PROCEDURE SplDeleteQueue       (* DosPrintQDel *)
  916. ( ComputerName                 : ARRAY OF CHAR;
  917.   QueueName                    : ARRAY OF CHAR
  918. )                              : SPLERR;
  919.  
  920. PROCEDURE SplEnumQueue         (* DosPrintQEnum *)
  921. ( ComputerName                 : ARRAY OF CHAR;
  922.   Level                        : LONGCARD;
  923.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  924.   BufferSize                   : LONGCARD;
  925.   VAR ReturnedEntries          : LONGCARD;
  926.   VAR TotalEntries             : LONGCARD;
  927.   VAR NeededSize               : LONGCARD;
  928.   Reserved                     : SYSTEM.ADDRESS
  929. )                              : SPLERR;
  930.  
  931. PROCEDURE SplQueryQueue        (* DosPrintQGetInfo *)
  932. ( ComputerName                 : ARRAY OF CHAR;
  933.   QueueName                    : ARRAY OF CHAR;
  934.   Level                        : LONGCARD;
  935.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  936.   BufferSize                   : LONGCARD;
  937.   VAR NeededSize               : LONGCARD
  938. )                              : SPLERR;
  939.  
  940. PROCEDURE SplHoldQueue         (* DosPrintQPause *)
  941. ( ComputerName                 : ARRAY OF CHAR;
  942.   QueueName                    : ARRAY OF CHAR
  943. )                              : SPLERR;
  944.  
  945. PROCEDURE SplPurgeQueue        (* DosPrintQPurge *)
  946. ( ComputerName                 : ARRAY OF CHAR;
  947.   QueueName                    : ARRAY OF CHAR
  948. )                              : SPLERR;
  949.  
  950. PROCEDURE SplSetQueue          (* DosPrintQSetInfo *)
  951. ( ComputerName                 : ARRAY OF CHAR;
  952.   QueueName                    : ARRAY OF CHAR;
  953.   Level                        : LONGCARD;
  954.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  955.   BufferSize                   : LONGCARD;
  956.   ParmNum                      : LONGCARD
  957. )                              : SPLERR;
  958.  
  959. PROCEDURE SplEnumDriver        (* DosPrintDriverEnum *)
  960. ( ComputerName                 : ARRAY OF CHAR;
  961.   Level                        : LONGCARD;
  962.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  963.   BufferSize                   : LONGCARD;
  964.   VAR ReturnedEntries          : LONGCARD;
  965.   VAR TotalEntries             : LONGCARD;
  966.   VAR NeededSize               : LONGCARD;
  967.   Reserved                     : SYSTEM.ADDRESS
  968. )                              : SPLERR;
  969.  
  970. PROCEDURE SplEnumPort          (* DosPrintPortEnum *)
  971. ( ComputerName                 : ARRAY OF CHAR;
  972.   Level                        : LONGCARD;
  973.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  974.   BufferSize                   : LONGCARD;
  975.   VAR ReturnedEntries          : LONGCARD;
  976.   VAR TotalEntries             : LONGCARD;
  977.   VAR NeededSize               : LONGCARD;
  978.   Reserved                     : SYSTEM.ADDRESS
  979. )                              : SPLERR;
  980.  
  981. PROCEDURE SplEnumQueueProcessor (* DosPrintQProcessorEnum *)
  982. ( ComputerName                 : ARRAY OF CHAR;
  983.   Level                        : LONGCARD;
  984.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  985.   BufferSize                   : LONGCARD;
  986.   VAR ReturnedEntries          : LONGCARD;
  987.   VAR TotalEntries             : LONGCARD;
  988.   VAR NeededSize               : LONGCARD;
  989.   Reserved                     : SYSTEM.ADDRESS
  990. )                              : SPLERR;
  991.  
  992. PROCEDURE SplEnumPrinter
  993. ( ComputerName                 : ARRAY OF CHAR;
  994.   Level                        : LONGCARD;
  995.   Type                         : LONGCARD;
  996.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  997.   BufferSize                   : LONGCARD;
  998.   VAR ReturnedEntries          : LONGCARD;
  999.   VAR TotalEntries             : LONGCARD;
  1000.   VAR NeededSize               : LONGCARD;
  1001.   Reserved                     : SYSTEM.ADDRESS
  1002. )                              : SPLERR;
  1003.  
  1004. PROCEDURE SplCopyJob
  1005. ( SrcComputerName              : ARRAY OF CHAR;
  1006.   SrcQueueName                 : ARRAY OF CHAR;
  1007.   SrcJob                       : LONGCARD;
  1008.   TrgComputerName              : ARRAY OF CHAR;
  1009.   TrgQueueName                 : ARRAY OF CHAR;
  1010.   VAR TrgJob                   : LONGCARD
  1011. )                              : SPLERR;
  1012.  
  1013.  
  1014. (**** DosPrint... mapped to Spl... functions by SPL.LIB import library *)
  1015.  
  1016. PROCEDURE DosPrintDestAdd      (* SplCreateDevice *)
  1017. ( ComputerName                 : ARRAY OF CHAR;
  1018.   Level                        : LONGCARD;
  1019.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1020.   BufferSize                   : LONGCARD
  1021. )                              : SPLERR;
  1022.  
  1023. PROCEDURE DosPrintDestControl  (* SplControlDevice *)
  1024. ( ComputerName                 : ARRAY OF CHAR;
  1025.   PortName                     : ARRAY OF CHAR;
  1026.   Control                      : LONGCARD
  1027. )                              : SPLERR;
  1028.  
  1029. PROCEDURE DosPrintDestDel      (* SplDeleteDevice *)
  1030. ( ComputerName                 : ARRAY OF CHAR;
  1031.   PrintDeviceName              : ARRAY OF CHAR
  1032. )                              : SPLERR;
  1033.  
  1034. PROCEDURE DosPrintDestEnum     (* SplEnumDevice *)
  1035. ( ComputerName                 : ARRAY OF CHAR;
  1036.   Level                        : LONGCARD;
  1037.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1038.   BufferSize                   : LONGCARD;
  1039.   VAR ReturnedEntries          : LONGCARD;
  1040.   VAR TotalEntries             : LONGCARD;
  1041.   VAR NeededSize               : LONGCARD;
  1042.   Reserved                     : SYSTEM.ADDRESS
  1043. )                              : SPLERR;
  1044.  
  1045. PROCEDURE DosPrintDestGetInfo  (* SplQueryDevice *)
  1046. ( ComputerName                 : ARRAY OF CHAR;
  1047.   PrintDeviceName              : ARRAY OF CHAR;
  1048.   Level                        : LONGCARD;
  1049.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1050.   BufferSize                   : LONGCARD;
  1051.   VAR NeededSize               : LONGCARD
  1052. )                              : SPLERR;
  1053.  
  1054. PROCEDURE DosPrintDestSetInfo  (* SplSetDevice *)
  1055. ( ComputerName                 : ARRAY OF CHAR;
  1056.   PrintDeviceName              : ARRAY OF CHAR;
  1057.   Level                        : LONGCARD;
  1058.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1059.   BufferSize                   : LONGCARD;
  1060.   ParmNum                      : LONGCARD
  1061. )                              : SPLERR;
  1062.  
  1063. PROCEDURE DosPrintJobContinue  (* SplReleaseJob *)
  1064. ( ComputerName                 : ARRAY OF CHAR;
  1065.   QueueName                    : ARRAY OF CHAR;
  1066.   Job                          : LONGCARD
  1067. )                              : SPLERR;
  1068.  
  1069. PROCEDURE DosPrintJobDel       (* SplDeleteJob *)
  1070. ( ComputerName                 : ARRAY OF CHAR;
  1071.   QueueName                    : ARRAY OF CHAR;
  1072.   Job                          : LONGCARD
  1073. )                              : SPLERR;
  1074.  
  1075. PROCEDURE DosPrintJobEnum      (* SplEnumJob *)
  1076. ( ComputerName                 : ARRAY OF CHAR;
  1077.   QueueName                    : ARRAY OF CHAR;
  1078.   Level                        : LONGCARD;
  1079.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1080.   BufferSize                   : LONGCARD;
  1081.   VAR ReturnedEntries          : LONGCARD;
  1082.   VAR TotalEntries             : LONGCARD;
  1083.   VAR NeededSize               : LONGCARD;
  1084.   Reserved                     : SYSTEM.ADDRESS
  1085. )                              : SPLERR;
  1086.  
  1087. PROCEDURE DosPrintJobGetInfo   (* SplQueryJob *)
  1088. ( ComputerName                 : ARRAY OF CHAR;
  1089.   QueueName                    : ARRAY OF CHAR;
  1090.   Job                          : LONGCARD;
  1091.   Level                        : LONGCARD;
  1092.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1093.   BufferSize                   : LONGCARD;
  1094.   VAR NeededSize               : LONGCARD
  1095. )                              : SPLERR;
  1096.  
  1097. PROCEDURE DosPrintJobPause     (* SplHoldJob *)
  1098. ( ComputerName                 : ARRAY OF CHAR;
  1099.   QueueName                    : ARRAY OF CHAR;
  1100.   Job                          : LONGCARD
  1101. )                              : SPLERR;
  1102.  
  1103. PROCEDURE DosPrintJobSetInfo   (* SplSetJob *)
  1104. ( ComputerName                 : ARRAY OF CHAR;
  1105.   QueueName                    : ARRAY OF CHAR;
  1106.   Job                          : LONGCARD;
  1107.   Level                        : LONGCARD;
  1108.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1109.   BufferSize                   : LONGCARD;
  1110.   ParmNum                      : LONGCARD
  1111. )                              : SPLERR;
  1112.  
  1113. PROCEDURE DosPrintQAdd         (* SplCreateQueue *)
  1114. ( ComputerName                 : ARRAY OF CHAR;
  1115.   Level                        : LONGCARD;
  1116.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1117.   BufferSize                   : LONGCARD
  1118. )                              : SPLERR;
  1119.  
  1120. PROCEDURE DosPrintQContinue    (* SplReleaseQueue *)
  1121. ( ComputerName                 : ARRAY OF CHAR;
  1122.   QueueName                    : ARRAY OF CHAR
  1123. )                              : SPLERR;
  1124.  
  1125. PROCEDURE DosPrintQDel         (* SplDeleteQueue *)
  1126. ( ComputerName                 : ARRAY OF CHAR;
  1127.   QueueName                    : ARRAY OF CHAR
  1128. )                              : SPLERR;
  1129.  
  1130. PROCEDURE DosPrintQEnum        (* SplEnumQueue *)
  1131. ( ComputerName                 : ARRAY OF CHAR;
  1132.   Level                        : LONGCARD;
  1133.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1134.   BufferSize                   : LONGCARD;
  1135.   VAR ReturnedEntries          : LONGCARD;
  1136.   VAR TotalEntries             : LONGCARD;
  1137.   VAR NeededSize               : LONGCARD;
  1138.   Reserved                     : SYSTEM.ADDRESS
  1139. )                              : SPLERR;
  1140.  
  1141. PROCEDURE DosPrintQGetInfo     (* SplQueryQueue *)
  1142. ( ComputerName                 : ARRAY OF CHAR;
  1143.   QueueName                    : ARRAY OF CHAR;
  1144.   Level                        : LONGCARD;
  1145.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1146.   BufferSize                   : LONGCARD;
  1147.   VAR NeededSize               : LONGCARD
  1148. )                              : SPLERR;
  1149.  
  1150. PROCEDURE DosPrintQPause       (* SplHoldQueue *)
  1151. ( ComputerName                 : ARRAY OF CHAR;
  1152.   QueueName                    : ARRAY OF CHAR
  1153. )                              : SPLERR;
  1154.  
  1155. PROCEDURE DosPrintQPurge       (* SplPurgeQueue *)
  1156. ( ComputerName                 : ARRAY OF CHAR;
  1157.   QueueName                    : ARRAY OF CHAR
  1158. )                              : SPLERR;
  1159.  
  1160. PROCEDURE DosPrintQSetInfo     (* SplSetQueue *)
  1161. ( ComputerName                 : ARRAY OF CHAR;
  1162.   QueueName                    : ARRAY OF CHAR;
  1163.   Level                        : LONGCARD;
  1164.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1165.   BufferSize                   : LONGCARD;
  1166.   ParmNum                      : LONGCARD
  1167. )                              : SPLERR;
  1168.  
  1169. PROCEDURE DosPrintDriverEnum   (* SplEnumDriver *)
  1170. ( ComputerName                 : ARRAY OF CHAR;
  1171.   Level                        : LONGCARD;
  1172.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1173.   BufferSize                   : LONGCARD;
  1174.   VAR ReturnedEntries          : LONGCARD;
  1175.   VAR TotalEntries             : LONGCARD;
  1176.   VAR NeededSize               : LONGCARD;
  1177.   Reserved                     : SYSTEM.ADDRESS
  1178. )                              : SPLERR;
  1179.  
  1180. PROCEDURE DosPrintPortEnum     (* SplEnumPort *)
  1181. ( ComputerName                 : ARRAY OF CHAR;
  1182.   Level                        : LONGCARD;
  1183.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1184.   BufferSize                   : LONGCARD;
  1185.   VAR ReturnedEntries          : LONGCARD;
  1186.   VAR TotalEntries             : LONGCARD;
  1187.   VAR NeededSize               : LONGCARD;
  1188.   Reserved                     : SYSTEM.ADDRESS
  1189. )                              : SPLERR;
  1190.  
  1191. PROCEDURE DosPrintQProcessorEnum (* SplEnumQueueProcessor *)
  1192. ( ComputerName                 : ARRAY OF CHAR;
  1193.   Level                        : LONGCARD;
  1194.   VAR Buffer                   : ARRAY OF SYSTEM.BYTE;
  1195.   BufferSize                   : LONGCARD;
  1196.   VAR ReturnedEntries          : LONGCARD;
  1197.   VAR TotalEntries             : LONGCARD;
  1198.   VAR NeededSize               : LONGCARD;
  1199.   Reserved                     : SYSTEM.ADDRESS
  1200. )                              : SPLERR;
  1201.  
  1202. END SPL.
  1203.