home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / PMSPL.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  54KB  |  1,418 lines

  1. (* ====================================================== *)
  2. (*                        PMSPL.PAS                       *)
  3. (*     Implementation of the functions of PMSPL.DLL       *)
  4. (*                 Printer-/spooler functions             *)
  5. (*          Translation to Pascal by jb/toolbox mag       *)
  6. (* ====================================================== *)
  7. {$IFNDEF OS2}
  8.   Error: Wrong target/Compiler not patched
  9. {$ENDIF}
  10.  
  11. UNIT PMSPL;
  12.  
  13. INTERFACE
  14.  
  15. USES
  16.   Os2Def;
  17.  
  18. CONST
  19.   SPL_INI_SPOOLER       = 'PM_SPOOLER';
  20.   SPL_INI_QUEUE         = 'PM_SPOOLER_QUEUE';
  21.   SPL_INI_PRINTER       = 'PM_SPOOLER_PRINTER';
  22.   SPL_INI_PRINTERDESCR  = 'PM_SPOOLER_PRINTER_DESCR';
  23.   SPL_INI_QUEUEDESCR    = 'PM_SPOOLER_QUEUE_DESCR';
  24.   SPL_INI_QUEUEDD       = 'PM_SPOOLER_QUEUE_DD';
  25.   SPL_INI_QUEUEDDDATA   = 'PM_SPOOLER_QUEUE_DDDATA';
  26.  
  27. (*** General SPL return values ****************************)
  28. CONST
  29.   SPL_ERROR   =  $00000000;
  30.   SPL_OK      =  $00000001;
  31.  
  32. (*** handle to a spool file *******************************)
  33. TYPE
  34.   hSpl = LHandle;               (* hspl *)
  35.  
  36. (* Used in recording of PM_Q_STD data via SplStdxxx calls *)
  37.   hStd        = LHandle ;               (* hstd *)
  38.   pHstd       = ^hStd;
  39.  
  40. (*** spooler manager open data ****************************)
  41.   PQMOPENDATA =^pChar;       (* pqmdop *)
  42.  
  43.  
  44. (*** Spooler Queue Processor interface ********************)
  45.  
  46.    (* control codes for SplQpControl *)
  47. CONST
  48.   SPLC_ABORT     = 1;
  49.   SPLC_PAUSE     = 2;
  50.   SPLC_CONTINUE  = 3;
  51.  
  52. (* flag defines for optional SplQpQueryFlags              *)
  53. (* set this to allow spooler to bypass Queue Processor    *)
  54. (* for PM_Q_RAW jobs.  This allows print while a job      *)
  55. (* is still spooling.                                     *)
  56.   QP_RAWDATA_BYPASS = $00000001;
  57.  
  58. (*** handle to a spooler queue processor ******************)
  59. TYPE
  60.    hProc = LHandle;              (* hproc *)
  61.  
  62. (*** spooler processor open data **************************)
  63.    PQPOPENDATA = ^pChar;          (* pqpdop *)
  64.  
  65. (*** Spooler Queue Processor interface ********************)
  66. (* API's exported by Queue Processor DLL's                *)
  67.  
  68. {                 NOT YET IMPLEMENTED !!!!!!!
  69.  
  70. FUNCTION SplQpOpen(cData     : LongInt;
  71.                    pQPDataIn : PQPOPENDATA ): HProc;
  72.  
  73. FUNCTION SplQpPrint(aHProc: hProc; pszFileName: PSZ): BOOL;
  74.  
  75. FUNCTION SplQpClose(aHProc: hProc): BOOL;
  76.  
  77. FUNCTION SplQpControl(aHProc : hProc;
  78.                       cmdCode: LongInt): BOOL;
  79.  
  80. FUNCTION SplQpQueryDt(pcDataType   : pLong;
  81.                       paszDataTypes: pPSZ): BOOL;
  82.  
  83. FUNCTION SplQpInstall(aHWnd: HWnd): BOOL;
  84.  
  85. (* The next API is optionally exported by Queue           *)
  86. (* Processors. The flags may be set to                    *)
  87. (* QP_RAWDATA_BYPASS to allow the spooler to print the    *)
  88. (* job while spooling, bypassing this queue processor     *)
  89.  
  90. FUNCTION SplQpQueryFlags(pulFlags: pULONG): BOOL;
  91.  
  92.  (*******************************************************)
  93.  (* There are two definitions governing the QpOpen data *)
  94.  (* block :-                                            *)
  95.  (* 1) the original  QPOPENDATA, which is used as       *)
  96.  (*    an array of PSZ and has a list of associated     *)
  97.  (*    QPDAT defines for accessing elements of the      *)
  98.  (*    array. This has been extended from 6 to 12       *)
  99.  (*    elements. The last element is a numeric type     *)
  100.  (*    and cannot satisfactorily be accessed via array  *)
  101.  (*    indexing.                                        *)
  102.  (*                                                     *)
  103.  (* 2) a new SQPOPENDATA structure (see below)          *)
  104.  (*                                                     *)
  105.  (* The old defn has been retained to support existing  *)
  106.  (* QProcs.                                             *)
  107.  (*                                                     *)
  108.  (*******************************************************)
  109. ------ }
  110.  
  111. (*** Definition for elements within the PQPOPENDATA block *)
  112. CONST
  113.   QPDAT_ADDRESS     =  0;
  114.   QPDAT_DRIVER_NAME =  1;
  115.   QPDAT_DRIVER_DATA =  2;
  116.   QPDAT_DATA_TYPE   =  3;
  117.   QPDAT_COMMENT     =  4;
  118.   QPDAT_PROC_PARAMS =  5;
  119.   QPDAT_SPL_PARAMS  =  6;     (* SplQmOpen Spooler params *)
  120.   QPDAT_NET_PARAMS  =  7;     (* SplQmOpen Network params *)
  121.   QPDAT_DOC_NAME    =  8;     (* SplQmStartDoc name       *)
  122.   QPDAT_QUEUE_NAME  =  9;     (* Queue name for job       *)
  123.   QPDAT_TOKEN       = 10;     (* SplQmOpen token name     *)
  124.   QPDAT_JOBID       = 11;     (* SQM job identity         *)
  125.  
  126. TYPE
  127.   SQPOPENDATA = RECORD          (* SplQpOpenData *)
  128.     pszLogAddress    : pChar;
  129.     pszDriverName    : pChar ;
  130.     pdriv            : pDrivData ;
  131.     pszDataType      : pChar ;
  132.     pszComment       : pChar ;
  133.     pszProcParams    : pChar ;
  134.     pszSpoolParams   : pChar ;
  135.     pszNetworkParams : pChar ;
  136.     pszDocName       : pChar ;
  137.     pszQueueName     : pChar ;
  138.     pszToken         : pChar ;
  139.     idJobId          : WORD;
  140.   END;
  141.   pSQPOpenData = ^SQPOPENDATA;
  142.  
  143.  
  144. (**********************************************************)
  145. (** Error information and return codes                    *)
  146. (**********************************************************)
  147.  
  148. (* Error information for SplMessageBox *)
  149. CONST
  150.   SPLINFO_QPERROR       = $0001;
  151.   SPLINFO_DDERROR       = $0002;
  152.   SPLINFO_SPLERROR      = $0004;
  153.   SPLINFO_OTHERERROR    = $0080;
  154.   SPLINFO_INFORMATION   = $0100;
  155.   SPLINFO_WARNING       = $0200;
  156.   SPLINFO_ERROR         = $0400;
  157.   SPLINFO_SEVERE        = $0800;
  158.   SPLINFO_USERINTREQD   = $1000;
  159.  
  160. (* Error Data for SplMessageBox *)
  161. CONST
  162.   SPLDATA_PRINTERJAM    = $0001;
  163.   SPLDATA_FORMCHGREQD   = $0002;
  164.   SPLDATA_CARTCHGREQD   = $0004;
  165.   SPLDATA_PENCHGREQD    = $0008;
  166.   SPLDATA_DATAERROR     = $0010;
  167.   SPLDATA_UNEXPECTERROR = $0020;
  168.   SPLDATA_OTHER         = $8000;
  169.  
  170. (* return code for fSplStdQueryLength *)
  171.   SSQL_ERROR = -00000001;
  172.  
  173. (* #ifdef INCL_SPLERRORS
  174.       #include <pmerr.h>
  175.    #endif /* INCL_SPLERRORS */
  176. *)
  177.  
  178. TYPE
  179.   SplErr = LongInt;
  180.  
  181.  
  182. (* length for character arrays in structs (excluding zero terminator) *)
  183. CONST
  184.   CNLEN                = 15; (* Computer name length      *)
  185.   UNLEN                = 20; (* Maximum user name length  *)
  186.   QNLEN                = 12; (* Queue name maximum length *)
  187.   PDLEN                =  8; (* Print destination length  *)
  188.   DTLEN                =  9; (* Spool file data type      *)
  189.   (* e.g. PM_Q_STD,PM_Q_RAW    *)
  190.   QP_DATATYPE_SIZE     = 15; (* returned by SplQpQueryDt  *)
  191.   DRIV_DEVICENAME_SIZE = 31; (* see DRIVDATA struc        *)
  192.   DRIV_NAME_SIZE       =  8; (* name of device driver     *)
  193.   PRINTERNAME_SIZE     = 32; (* max printer name length   *)
  194.   FORMNAME_SIZE        = 31; (* max form name length      *)
  195.   MAXCOMMENTSZ         = 48; (* queue comment length      *)
  196.  
  197. TYPE
  198.   DrivProps  = RECORD    (* dprop *)
  199.      pszKeyName : pChar;
  200.      cbBuf      : LongInt;
  201.      pBuf       : pVoid;
  202.   END;
  203.   pDrivProps  = ^DrivProps;
  204.   npDrivProps = ^DrivProps;
  205.  
  206.   PrjInfo  = RECORD    (* prj1 *)
  207.     uJobId                : WORD;
  208.     szUserName            : ARRAY[0..UNLEN+1] OF CHAR;
  209.     pad_1                 : CHAR;
  210.     szNotifyName          : ARRAY[0..CNLEN+1] OF CHAR;
  211.     szDataType            : ARRAY[0..DTLEN+1] OF CHAR;
  212.     pszParms              : pChar;
  213.     uPosition             : WORD;
  214.     fsStatus              : WORD;
  215.     pszStatus             : pChar;
  216.     ulSubmitted           : LongInt;
  217.     ulSize                : LongInt;
  218.     pszComment            : pChar;
  219.   END;
  220.   pPrjInfo  = ^PrjInfo;
  221.   npPrjInfo = ^PrjInfo;
  222.  
  223.   PrjInfo2 = RECORD     (* prj2 *)
  224.     uJobId       : WORD;
  225.     uPriority    : WORD;
  226.     pszUserName  : pChar;
  227.     uPosition    : WORD;
  228.     fsStatus     : WORD;
  229.     ulSubmitted  : LongInt;
  230.     ulSize       : LongInt;
  231.     pszComment   : pChar;
  232.     pszDocument  : pChar;
  233.   END;
  234.   pPrjInfo2 = ^PrjInfo2;
  235.   npPrjInfo2= ^PrjInfo2;
  236.  
  237.   PrjInfo3 = RECORD     (* prj *)
  238.     uJobId          : WORD;
  239.     uPriority       : WORD;
  240.     pszUserName     : pChar;
  241.     uPosition       : WORD;
  242.     fsStatus        : WORD;
  243.     ulSubmitted     : LongInt;
  244.     ulSize          : LongInt;
  245.     pszComment      : pChar;
  246.     pszDocument     : pChar;
  247.     pszNotifyName   : pChar;
  248.     pszDataType     : pChar;
  249.     pszParms        : pChar;
  250.     pszStatus       : pChar;
  251.     pszQueue        : pChar;
  252.     pszQProcName    : pChar;
  253.     pszQProcParms   : pChar;
  254.     pszDriverName   : pChar;
  255.     pDriverData     : pDrivData ;
  256.     pszPrinterName  : pChar;
  257.   END;
  258.   pPrjInfo3  = ^PrjInfo3;
  259.   npPrjInfo3 = ^PrjInfo3;
  260.  
  261.   PrdInfo = RECORD       (* prd1 *)
  262.     szName        : ARRAY [0..PDLEN+1] OF CHAR;
  263.     szUserName    : ARRAY [0..UNLEN+1] OF CHAR;
  264.     uJobId        : WORD;
  265.     fsStatus      : WORD;
  266.     pszStatus     : pChar;
  267.     time          : WORD;
  268.   END;
  269.   pPrdInfo    = ^PrdInfo;
  270.   npPrdInfo   = ^PrdInfo;
  271.       
  272.   PrdInfo3  = RECORD    (* prd *)
  273.     pszPrinterName : pChar;
  274.     pszUserName    : pChar;
  275.     pszLogAddr     : pChar;
  276.     uJobId         : WORD;
  277.     fsStatus       : WORD;
  278.     pszStatus      : pChar;
  279.     pszComment     : pChar;
  280.     pszDrivers     : pChar;
  281.     time           : WORD;
  282.     usTimeOut      : WORD;
  283.   END;
  284.   pPrdInfo3  = ^PrdInfo3;
  285.   npPrdInfo3 = ^PrdInfo3;
  286.  
  287.   PrqInfo = RECORD     (* prq1 *)
  288.     szName          : ARRAY [0..QNLEN+1] OF CHAR;
  289.     pad_1           : CHAR;
  290.     uPriority       : WORD;
  291.     uStartTime      : WORD;
  292.     uUntilTime      : WORD;
  293.     pszSepFile      : pChar;
  294.     pszPrProc       : pChar;
  295.     pszDestinations : pChar;
  296.     pszParms        : pChar;
  297.     pszComment      : pChar;
  298.     fsStatus        : WORD;
  299.     cJobs           : WORD;
  300.   END;
  301.   pPrqInfo    = ^PrqInfo;
  302.   npPrqInfo   = ^PrqInfo;
  303.       
  304.   PrqInfo3    = RECORD (* prq *)
  305.     pszName      : pChar;
  306.     uPriority    : WORD;
  307.     uStartTime   : WORD;
  308.     uUntilTime   : WORD;
  309.     fsType       : WORD;
  310.     pszSepFile   : pChar;
  311.     pszPrProc    : pChar ;
  312.     pszParms     : pChar;
  313.     pszComment   : pChar;
  314.     fsStatus     : WORD;
  315.     cJobs        : WORD;
  316.     pszPrinters  : pChar;
  317.     pszDriverName: pChar;
  318.     pDriverData  : pDrivData;
  319.   END;
  320.   pPrqInfo3    = ^PrqInfo3;
  321.   npPrqInfo3   = ^PrqInfo3;
  322.       
  323.   PrqInfo6 = RECORD    (* prq6 *)
  324.     pszName               : pChar;
  325.     uPriority             : WORD;
  326.     uStartTime            : WORD;
  327.     uUntilTime            : WORD;
  328.     fsType                : WORD;
  329.     pszSepFile            : pChar;
  330.     pszPrProc             : pChar;
  331.     pszParms              : pChar;
  332.     pszComment            : pChar;
  333.     fsStatus              : WORD;
  334.     cJobs                 : WORD;
  335.     pszPrinters           : pChar;
  336.     pszDriverName         : pChar;
  337.     pDriverData           : pDrivData ;
  338.     pszRemoteComputerName : pChar;
  339.     pszRemoteQueueName    : pChar;
  340.   END;
  341.   pPrqInfo6  = ^PrqInfo6;
  342.   npPrqInfo6 = ^PrqInfo6;
  343.  
  344. (** structure for DosPrintJobGetId *)
  345.   PridInfo  = RECORD   (* prjid *)
  346.     uJobId         : WORD;
  347.     szComputerName : ARRAY [0..CNLEN + 1] OF CHAR;
  348.     szQueueName    : ARRAY [0..QNLEN + 1] OF CHAR;
  349.     pad_1          : CHAR;
  350.   END;
  351.   pPridInfo  = ^PridInfo;
  352.   npPridInfo = ^PridInfo;
  353.  
  354. (** structure for DosPrintDriverEnum *)
  355.   PrDrivInfo = RECORD  (* prdid *)
  356.     szDrivName: ARRAY[0..DRIV_NAME_SIZE + 1 +
  357.                          DRIV_DEVICENAME_SIZE + 1] OF CHAR;
  358.   END;
  359.   pPrDrivInfo  = ^PrDrivInfo;
  360.   npPrDrivInfo = ^PrDrivInfo;
  361.  
  362. (** structure for DosPrintQProcessorEnum *)
  363.   PrqProcInfo  = RECORD   (* prqp *)
  364.     szQProcName: ARRAY[0..QNLEN+1] OF CHAR;
  365.   END;
  366.   pPrqProcInfo  = ^PrqProcInfo;
  367.   npPrqProcInfo = ^PrqProcInfo;
  368.  
  369. (** structure for DosPrintPortEnum Level 0 *)
  370.   PrPortInfo = RECORD   (* prpo *)
  371.     szPortName: ARRAY[0..PDLEN+1] OF CHAR;
  372.   END;
  373.   pPrPortInfo  = ^PrPortInfo;
  374.   npPrPortInfo = ^PrPortInfo;
  375.  
  376. (** structure for DosPrintPortEnum Level 1 *)
  377.   PrPortInfo1  = RECORD   (* prpo1 *)
  378.     pszPortName           : pChar;
  379.     pszPortDriverName     : pChar;
  380.     pszPortDriverPathName : pChar;
  381.   END;
  382.   pPrPortInfo1  = ^PrPortInfo1;
  383.   npPrPortInfo1 = ^PrPortInfo1;
  384.  
  385. (*** Values for parmnum in DosPrintQSetInfo/SplSetQueue  **)
  386. CONST
  387.   PRQ_PRIORITY_PARMNUM         =   2;
  388.   PRQ_STARTTIME_PARMNUM        =   3;
  389.   PRQ_UNTILTIME_PARMNUM        =   4;
  390.   PRQ_SEPARATOR_PARMNUM        =   5;
  391.   PRQ_PROCESSOR_PARMNUM        =   6;
  392.   PRQ_DESTINATIONS_PARMNUM     =   7;
  393.   PRQ_PARMS_PARMNUM            =   8;
  394.   PRQ_COMMENT_PARMNUM          =   9;
  395.   PRQ_TYPE_PARMNUM             =  10;
  396.   PRQ_PRINTERS_PARMNUM         =  12;
  397.   PRQ_DRIVERNAME_PARMNUM       =  13;
  398.   PRQ_DRIVERDATA_PARMNUM       =  14;
  399.   PRQ_REMOTE_COMPUTER_PARMNUM  =  15;
  400.   PRQ_REMOTE_QUEUE_PARMNUM     =  16;
  401.   PRQ_MAXPARMNUM               =  16;
  402.  
  403. (*** Print Queue Priority *********************************)
  404.   PRQ_MAX_PRIORITY  =   1;            (* highest priority *)
  405.   PRQ_DEF_PRIORITY  =   5;
  406.   PRQ_MIN_PRIORITY  =   9;            (* lowest priority  *)
  407.   PRQ_NO_PRIORITY   =   0;
  408.  
  409.   (*** Print queue status bitmask and values for level 1 **)
  410.   PRQ_STATUS_MASK    =   3;
  411.   PRQ_ACTIVE         =   0;
  412.   PRQ_PAUSED         =   1;           (* queue is held    *)
  413.   PRQ_ERROR          =   2;
  414.   PRQ_PENDING        =   3;           (* pending deletion *)
  415.  
  416.   (*** Print queue status bits for level 3 ****************)
  417.   PRQ3_PAUSED        = $1;            (* queue is held    *)
  418.   PRQ3_PENDING       = $2;            (* pending deletion *)
  419.  
  420.   (*** Print queue type bits for level 3 ******************)
  421.   PRQ3_TYPE_RAW    = $0001; (*spools printer-specific data*)
  422.   PRQ3_TYPE_BYPASS = $0002; (*allow print while spooling  *)
  423.  
  424.   (*** Values for parmnum in DosPrintJobSetInfo/SplSetJob *)
  425.   PRJ_NOTIFYNAME_PARMNUM     =   3;
  426.   PRJ_DATATYPE_PARMNUM       =   4;
  427.   PRJ_PARMS_PARMNUM          =   5;
  428.   PRJ_POSITION_PARMNUM       =   6;
  429.   PRJ_JOBFILEINUSE_PARMNUM   =   7;
  430.  
  431.   PRJ_COMMENT_PARMNUM        =  11;
  432.   PRJ_DOCUMENT_PARMNUM       =  12;
  433.   PRJ_STATUSCOMMENT_PARMNUM  =  13;
  434.   PRJ_PRIORITY_PARMNUM       =  14;
  435.   PRJ_PROCPARMS_PARMNUM      =  16;
  436.   PRJ_DRIVERDATA_PARMNUM     =  18;
  437.   PRJ_MAXPARMNUM             =  18;
  438.  
  439. (*** Bitmap masks for status field of PRJINFO. ************)
  440.       (* 2-7 bits also used in device status *)
  441.   PRJ_QSTATUS      = $0003;      (* Bits 0,1  *)
  442.   PRJ_DEVSTATUS    = $0FFC;      (* 2-11 bits *)
  443.   PRJ_COMPLETE     = $0004;      (* Bit 2     *)
  444.   PRJ_INTERV       = $0008;      (* Bit 3     *)
  445.   PRJ_ERROR        = $0010;      (* Bit 4     *)
  446.   PRJ_DESTOFFLINE  = $0020;      (* Bit 5     *)
  447.   PRJ_DESTPAUSED   = $0040;      (* Bit 6     *)
  448.   PRJ_NOTIFY       = $0080;      (* Bit 7     *)
  449.   PRJ_DESTNOPAPER  = $0100;      (* Bit 8     *)
  450.   PRJ_DESTFORMCHG  = $0200;      (* BIT 9     *)
  451.   PRJ_DESTCRTCHG   = $0400;      (* BIT 10    *)
  452.   PRJ_DESTPENCHG   = $0800;      (* BIT 11    *)
  453.   PRJ_JOBFILEINUSE = $4000;      (* Bit 14    *)
  454.   PRJ_DELETED      = $8000;      (* Bit 15    *)
  455.  
  456. (* Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO*)
  457.   PRJ_QS_QUEUED    =  0;
  458.   PRJ_QS_PAUSED    =  1;
  459.   PRJ_QS_SPOOLING  =  2;
  460.   PRJ_QS_PRINTING  =  3;
  461.  
  462.   (*** Print Job Priority *********************************)
  463.   PRJ_MAX_PRIORITY = 99;              (* lowest priority  *)
  464.   PRJ_MIN_PRIORITY =  1;              (* highest priority *)
  465.   PRJ_NO_PRIORITY  =  0;
  466.  
  467.  
  468.   (*** Bitmap masks for status field of PRDINFO. **********)
  469.   PRD_STATUS_MASK  = $0003;                  (* Bits 0,1  *)
  470.   PRD_DEVSTATUS    = $0FFC;                  (* 2-11 bits *)
  471.  
  472.   (*** Values of PRD_STATUS_MASK bits in fsStatus field   *)
  473.   (*** of PRDINFO.                                      ***)
  474.   PRD_ACTIVE            =  0;
  475.   PRD_PAUSED            =  1;
  476.  
  477.   (*** Control codes used in DosPrintDestControl/         *)
  478.   (*** SplControlDevice                              ******)
  479.   PRD_DELETE            =  0;
  480.   PRD_PAUSE             =  1;
  481.   PRD_CONT              =  2;
  482.   PRD_RESTART           =  3;
  483.  
  484.   (*** Values for parmnum in DosPrintDestSetInfo/         *)
  485.   (***                              SplSetDevice **********)
  486.   PRD_LOGADDR_PARMNUM   =  3;
  487.   PRD_COMMENT_PARMNUM   =  7;
  488.   PRD_DRIVERS_PARMNUM   =  8;
  489.   PRD_TIMEOUT_PARMNUM   = 10;
  490.  
  491. (*** structure for SplEnumPrinter *************************)
  492. TYPE
  493.   PRINTERINFO  = RECORD    (* prtin *)
  494.     flType                   : LongInt;
  495.     pszComputerName          : pChar;
  496.     pszPrintDestinationName  : pChar;
  497.     pszDescription           : pChar;
  498.     pszLocalName             : pChar;
  499.    END;
  500.    pPrinterInfo = ^PRINTERINFO;
  501.  
  502. (*** Flags for flType in  PRINTERINFO and SplEnumPrinter **)
  503. CONST
  504.   SPL_PR_QUEUE         = $00000001; (* include queues     *)
  505.   SPL_PR_DIRECT_DEVICE = $00000002; (* unattached devices *)
  506.   SPL_PR_QUEUED_DEVICE = $00000004; (* queued devices     *)
  507.   SPL_PR_LOCAL_ONLY    = $00000100;(*exclude remote queues*)
  508.  
  509.  
  510. (**********************************************************)
  511. (* In the case of the DosPrintxxx, the API is presented   *)
  512. (* by new name with the old name in parenthesis.          *)
  513. (**********************************************************)
  514.  
  515.   FUNCTION SplQmOpen(pszToken  : pChar;
  516.                      lCount    : LongInt;
  517.                      pqmdopData: PQMOPENDATA): hSpl;
  518.   FUNCTION Spl16QmOpen(pszToken: pChar;
  519.                      lCount    : LongInt;
  520.                      pqmdopData: PQMOPENDATA): hSpl;
  521.  
  522.   FUNCTION SplQmStartDoc(ahSpl       : hSpl;
  523.                          pszDocName  : pChar): BOOL;
  524.   FUNCTION Spl16QmStartDoc(ahSpl     : hSpl;
  525.                          pszDocName  : pChar): BOOL;
  526.  
  527.   FUNCTION SplQmWrite(ahSpl : hSpl;
  528.                       lCount: LongInt;
  529.                       pData : pVoid): BOOL;
  530.   FUNCTION Spl16QmWrite(ahSpl : hSpl;
  531.                       lCount: LongInt;
  532.                       pData : pVoid): BOOL;
  533.  
  534.   FUNCTION SplQmEndDoc(  ahSpl : hSpl): BOOL;
  535.   FUNCTION Spl16QmEndDoc(ahSpl : hSpl): BOOL;
  536.  
  537.   FUNCTION SplQmClose(  ahSpl: hSpl): BOOL;
  538.   FUNCTION Spl16QmClose(ahSpl: hSpl): BOOL;
  539.  
  540.   FUNCTION SplQmAbort(  ahSpl: hSpl): BOOL;
  541.   FUNCTION Spl16QmAbort(ahSpl: hSpl): BOOL;
  542.  
  543.   FUNCTION SplQmAbortDoc(  ahSpl: hSpl): BOOL;
  544.   FUNCTION Spl16QmAbortDoc(ahSpl: hSpl): BOOL;
  545.  
  546.   FUNCTION SplMessageBox(pszLogAddr: pChar;
  547.                          fErrInfo  : LongInt;
  548.                          fErrData  : LongInt;
  549.                          pszText   : pChar;
  550.                          pszCaption: pChar;
  551.                          idWindow  : LongInt;
  552.                          fStyle    : LongInt ): LongInt;
  553.   FUNCTION Spl16MessageBox(pszLogAddr: pChar;
  554.                          fErrInfo  : LongInt;
  555.                          fErrData  : LongInt;
  556.                          pszText   : pChar;
  557.                          pszCaption: pChar;
  558.                          idWindow  : LongInt;
  559.                          fStyle    : LongInt ): LongInt;
  560.  
  561. (*** Direct Device File System Interface ******************)
  562.   FUNCTION PrtOpen(pszDeviceName: pChar;
  563.                    phDevice     : HFile;
  564.                    pActionTaken : pULong;
  565.                    cbFileSize,
  566.                    uFileAttr,
  567.                    openFlag,
  568.                    openMode,
  569.                    Reserved     : LongInt): LongInt;
  570.   FUNCTION Prt16Open(pszDeviceName  : pChar;
  571.                      phDevice       : HFile;
  572.                      pActionTaken   : pULong;
  573.                      cbFileSize,
  574.                      uFileAttr,
  575.                      openFlag,
  576.                      openMode,
  577.                      Reserved       : LongInt): LongInt;
  578.  
  579.   FUNCTION PrtClose(  hDevice: HFile): LongInt;
  580.   FUNCTION Prt16Close(hDevice: HFile): LongInt;
  581.  
  582.   FUNCTION PrtWrite(hDevice   : HFile;
  583.                     pchData   : pVoid;
  584.                     cbData    : LongInt;
  585.                     pcbWritten: pULong): LongInt;
  586.   FUNCTION Prt16Write(hDevice : HFile;
  587.                     pchData   : pVoid;
  588.                     cbData    : LongInt;
  589.                     pcbWritten: pULong): LongInt;
  590.  
  591.   FUNCTION PrtDevIOCtl(pData    : pVoid;
  592.                        pParms   : pVoid;
  593.                        uFunction: LongInt;
  594.                        uCategory: LongInt;
  595.                        hDevice  : HFile): LongInt;
  596.   FUNCTION Prt16DevIOCtl(pData  : pVoid;
  597.                        pParms   : pVoid;
  598.                        uFunction: LongInt;
  599.                        uCategory: LongInt;
  600.                        hDevice  : HFile): LongInt;
  601.  
  602.   PROCEDURE PrtAbort(  hDevice: HFile);
  603.   PROCEDURE Prt16Abort(hDevice: HFile);
  604. (* end of include File System Emulation functions *)
  605.  
  606.   FUNCTION SplStdOpen(  ahdc: hDC): BOOL;
  607.   FUNCTION Spl16StdOpen(ahdc: hDC): BOOL;
  608.  
  609.   FUNCTION SplStdClose(  ahdc: hDC): BOOL;
  610.   FUNCTION Spl16StdClose(ahdc: hDC): BOOL;
  611.  
  612.   FUNCTION SplStdStart(  ahdc: hDC): BOOL;
  613.   FUNCTION Spl16StdStart(ahdc: hDC): BOOL;
  614.  
  615.   FUNCTION SplStdStop(  ahdc: hDC): hStd;
  616.   FUNCTION Spl16StdStop(ahdc: hDC): hStd;
  617.  
  618.   FUNCTION SplStdDelete(hMetaFile: hStd): BOOL;
  619.   FUNCTION Spl16StdDelete(hMetaFile: hStd): BOOL;
  620.  
  621.   FUNCTION SplStdGetBits(hMetaFile: hStd;
  622.                          OffData: LongInt;
  623.                          cbData: LongInt;
  624.                          pchData: pCh): BOOL;
  625.   FUNCTION Spl16StdGetBits(hMetaFile: hStd;
  626.                          OffData: LongInt;
  627.                          cbData: LongInt;
  628.                          pchData: pCh): BOOL;
  629.  
  630.   FUNCTION SplStdQueryLength(hMetaFile: hStd ): LongInt;
  631.   FUNCTION Spl16StdQueryLength(hMetaFile: hStd ): LongInt;
  632.  
  633.  
  634.    (*              SplCreateDevice(DosPrintDestAdd) *)
  635.   FUNCTION SplCreateDevice(pszComputerName: pChar;
  636.                            ulLevel: LongInt;
  637.                            pBuf: pVoid;
  638.                            cbBuf: LongInt): SplErr;
  639.   FUNCTION DosPrintDestAdd(pszComputerName: pChar;
  640.                            ulLevel: LongInt;
  641.                            pBuf: pVoid;
  642.                            cbBuf: LongInt): SplErr;
  643.   FUNCTION DosPrint16DestAdd(pszComputerName: pChar;
  644.                              ulLevel: LongInt;
  645.                              pBuf: pVoid;
  646.                              cbBuf: LongInt): SplErr;
  647.  
  648.    (*              SplControlDevice(DosPrintDestControl) *)
  649.   FUNCTION SplControlDevice(     pszComputerName: pChar;
  650.                                  pszPortName: pChar;
  651.                                  ulControl: LongInt): SplErr;
  652.   FUNCTION DosPrintDestControl(  pszComputerName: pChar;
  653.                                  pszPortName: pChar;
  654.   (* ALT ! *)                    ulControl: LongInt): SplErr;
  655.   FUNCTION DosPrint16DestControl(pszComputerName: pChar;
  656.                                  pszPortName: pChar;
  657.   (* ALT ! *)                    ulControl: LongInt): SplErr;
  658.  
  659.    (*              SplDeleteDevice(DosPrintDestDel) *)
  660.    FUNCTION SplDeleteDevice(pszComputerName,
  661.                             pszPrintDeviceName: pChar):SplErr;
  662.    FUNCTION DosPrintDestDel(pszComputerName,
  663.                             pszPrintDeviceName: pChar):SplErr;
  664.    FUNCTION DosPrint16DestDel(pszComputerName,
  665.                             pszPrintDeviceName: pChar):SplErr;
  666.  
  667.    (*              SplEnumDevice(DosPrintDestEnum) *)
  668.    FUNCTION SplEnumDevice(pszComputerName: pChar;
  669.                           ulLevel        : LongInt;
  670.                           pBuf           : pVoid;
  671.                           cbBuf          : LongInt;
  672.                           pcReturned,
  673.                           pcTotal,
  674.                           pcbNeeded      : pULong;
  675.                           pReserved      : pVoid): SplErr;
  676.    FUNCTION DosPrintDestEnum(pszComputerName: pChar;
  677.                           ulLevel        : LongInt;
  678.                           pBuf           : pVoid;
  679.                           cbBuf          : LongInt;
  680.                           pcReturned,
  681.                           pcTotal,
  682.                           pcbNeeded      : pULong;
  683.                           pReserved      : pVoid): SplErr;
  684.    FUNCTION DosPrint16DestEnum(pszComputerName: pChar;
  685.                           ulLevel        : LongInt;
  686.                           pBuf           : pVoid;
  687.                           cbBuf          : LongInt;
  688.                           pcReturned,
  689.                           pcTotal,
  690.                           pcbNeeded      : pULong;
  691.                           pReserved      : pVoid): SplErr;
  692.  
  693.  
  694.  
  695.    (*              SplQueryDevice(DosPrintDestGetInfo) *)
  696.   FUNCTION SplQueryDevice(pszComputerName : pChar;
  697.                  pszPrintDeviceName       : pChar;
  698.                  ulLevel                  : LongInt;
  699.                  pBuf                     : pVoid;
  700.                  cbBuf                    : LongInt;
  701.                  pcbNeeded                : pULong): SplErr;
  702.   FUNCTION DosPrintDestGetInfo(pszComputerName: pChar;
  703.                  pszPrintDeviceName           : pChar;
  704.                  ulLevel                      : LongInt;
  705.                  pBuf                         : pVoid;
  706.                  cbBuf                        : LongInt;
  707.                  pcbNeeded                    : pULong
  708.                                              ): SplErr;
  709.   FUNCTION DosPrint16DestGetInfo(pszComputerName : pChar;
  710.                  pszPrintDeviceName              : pChar;
  711.                  ulLevel                         : LongInt;
  712.                  pBuf                            : pVoid;
  713.                  cbBuf                           : LongInt;
  714.                  pcbNeeded                       : pULong
  715.                                                 ): SplErr;
  716.  
  717.    (*              SplSetDevice(DosPrintDestSetInfo) *)
  718.   FUNCTION SplSetDevice(pszComputerName,
  719.                         pszPrintDeviceName : pChar;
  720.                         ulLevel            : LongInt;
  721.                         pBuf               : pVoid;
  722.                         cbBuf              : LongInt;
  723.                         ulParmNum          : LongInt): SplErr;
  724.   FUNCTION DosPrintDestSetInfo(pszComputerName,
  725.                         pszPrintDeviceName : pChar;
  726.                         ulLevel            : LongInt;
  727.                         pBuf               : pVoid;
  728.                         cbBuf              : LongInt;
  729.                         ulParmNum          : LongInt): SplErr;
  730.   FUNCTION DosPrint16DestSetInfo(pszComputerName,
  731.                         pszPrintDeviceName : pChar;
  732.                         ulLevel            : LongInt;
  733.                         pBuf               : pVoid;
  734.                         cbBuf              : LongInt;
  735.                         ulParmNum          : LongInt): SplErr;
  736.  
  737.    (*              SplReleaseJob(DosPrintJobContinue) *)
  738.   FUNCTION SplReleaseJob(pszComputerName,
  739.                          pszQueueName    : pChar;
  740.                          ulJob           : LongInt): SplErr;
  741.   FUNCTION DosPrintJobContinue(pszComputerName,
  742.                          pszQueueName    : pChar;
  743.                          ulJob           : LongInt): SplErr;
  744.   FUNCTION DosPrint16JobContinue(pszComputerName,
  745.                          pszQueueName    : pChar;
  746.                          ulJob           : LongInt): SplErr;
  747.  
  748.  
  749.  
  750.    (*              SplDeleteJob(DosPrintJobDel) *)
  751.   FUNCTION SplDeleteJob(pszComputerName,
  752.                         pszQueueName       : pChar;
  753.                         ulJob              : LongInt): SplErr;
  754.   FUNCTION DosPrintJobDel(pszComputerName,
  755.                         pszQueueName       : pChar;
  756.                         ulJob              : LongInt): SplErr;
  757.   FUNCTION DosPrint16JobDel(pszComputerName,
  758.                         pszQueueName       : pChar;
  759.                         ulJob              : LongInt): SplErr;
  760.  
  761.    (*              SplEnumJob(DosPrintJobEnum) *)
  762.    FUNCTION SplEnumJob(pszComputerName,
  763.                        pszQueueName   : pChar;
  764.                        ulLevel        : LongInt;
  765.                        pBuf           : pVoid;
  766.                        cbBuf          : LongInt;
  767.                        pcReturned,
  768.                        pcTotal,
  769.                        pcbNeeded      : pULong;
  770.                        pReserved      : pVoid): SplErr;
  771.    FUNCTION DosPrintJobEnum(pszComputerName,
  772.                             pszQueueName   : pChar;
  773.                             ulLevel        : LongInt;
  774.                             pBuf           : pVoid;
  775.                             cbBuf          : LongInt;
  776.                             pcReturned,
  777.                             pcTotal,
  778.                             pcbNeeded      : pULong;
  779.                             pReserved      : pVoid): SplErr;
  780.    FUNCTION DosPrint16JobEnum(pszComputerName,
  781.                             pszQueueName   : pChar;
  782.                             ulLevel        : LongInt;
  783.                             pBuf           : pVoid;
  784.                             cbBuf          : LongInt;
  785.                             pcReturned,
  786.                             pcTotal,
  787.                             pcbNeeded      : pULong;
  788.                             pReserved      : pVoid): SplErr;
  789.  
  790.    (*** See above for change to PRIDINFO datatype for     *)
  791.    (* this API.                                   *********)
  792.  
  793.    (*              SplQueryJob(DosPrintJobGetInfo)  *)
  794.    FUNCTION SplQueryJob(pszComputerName,
  795.                         pszQueueName : pChar;
  796.                         ulJob,
  797.                         ulLevel      : LongInt;
  798.                         pBuf         : pVoid;
  799.                         cbBuf        : LongInt;
  800.                         pcbNeeded    : pULong): SplErr;
  801.    FUNCTION DosPrintJobGetInfo(pszComputerName,
  802.                         pszQueueName : pChar;
  803.                         ulJob,
  804.                         ulLevel      : LongInt;
  805.                         pBuf         : pVoid;
  806.                         cbBuf        : LongInt;
  807.                         pcbNeeded    : pULong): SplErr;
  808.    FUNCTION DosPrint16JobGetInfo(pszComputerName,
  809.                         pszQueueName : pChar;
  810.                         ulJob,
  811.                         ulLevel      : LongInt;
  812.                         pBuf         : pVoid;
  813.                         cbBuf        : LongInt;
  814.                         pcbNeeded    : pULong): SplErr;
  815.  
  816.    (*              SplHoldJob(DosPrintJobPause)   *)
  817.   FUNCTION SplHoldJob(pszComputerName,
  818.                       pszQueueName   : pChar;
  819.                       ulJob          : LongInt): SplErr;
  820.   FUNCTION DosPrintJobPause(pszComputerName,
  821.                       pszQueueName   : pChar;
  822.                       ulJob          : LongInt): SplErr;
  823.   FUNCTION DosPrint16JobPause(pszComputerName,
  824.                       pszQueueName   : pChar;
  825.                       ulJob          : LongInt): SplErr;
  826.  
  827.    (*              SplSetJob(DosPrintJobSetInfo)*)
  828.   FUNCTION SplSetJob(pszComputerName,
  829.                      pszQueueName   : pChar;
  830.                      ulJob,
  831.                      ulLevel        : LongInt;
  832.                      pBuf           : pVoid;
  833.                      cbBuf,
  834.                      ulParmNum      : LongInt): SplErr;
  835.   FUNCTION DosPrintJobSetInfo(pszComputerName,
  836.                               pszQueueName   : pChar;
  837.                               ulJob,
  838.                               ulLevel        : LongInt;
  839.                               pBuf           : pVoid;
  840.                               cbBuf,
  841.                               ulParmNum      : LongInt
  842.                                             ): SplErr;
  843.   FUNCTION DosPrint16JobSetInfo(pszComputerName,
  844.                                 pszQueueName : pChar;
  845.                                 ulJob,
  846.                                 ulLevel      : LongInt;
  847.                                 pBuf         : pVoid;
  848.                                 cbBuf,
  849.                                 ulParmNum    : LongInt
  850.                                             ): SplErr;
  851.  
  852.    (*              SplCreateQueue(DosPrintQAdd) *)
  853.   FUNCTION SplCreateQueue(pszComputerName : pChar;
  854.                           ulLevel         : LongInt;
  855.                           pBuf            : pVoid;
  856.                           cbBuf           : LongInt): SplErr;
  857.   FUNCTION DosPrintQAdd(pszComputerName   : pChar;
  858.                         ulLevel           : LongInt;
  859.                         pBuf              : pVoid;
  860.                         cbBuf             : LongInt): SplErr;
  861.   FUNCTION DosPrint16QAdd(pszComputerName : pChar;
  862.                           ulLevel         : LongInt;
  863.                           pBuf            : pVoid;
  864.                           cbBuf           : LongInt): SplErr;
  865.  
  866.    (*              SplReleaseQueue(DosPrintQContinue) *)
  867.   FUNCTION SplReleaseQueue(pszComputerName,
  868.                            pszQueueName      : pChar): SplErr;
  869.   FUNCTION DosPrintQContinue(pszComputerName,
  870.                              pszQueueName    : pChar): SplErr;
  871.   FUNCTION DosPrint16QContinue(pszComputerName,
  872.                                pszQueueName  : pChar): SplErr;
  873.  
  874.    (*              SplDeleteQueue(DosPrintQDel) *)
  875.   FUNCTION SplDeleteQueue(pszComputerName,
  876.                           pszQueueName    : pChar): SplErr;
  877.   FUNCTION DosPrintQDel(pszComputerName,
  878.                         pszQueueName      : pChar): SplErr;
  879.   FUNCTION DosPrint16QDel(pszComputerName,
  880.                           pszQueueName    : pChar): SplErr;
  881.  
  882.  
  883.    (*              SplEnumQueue(DosPrintQEnum) *)
  884.   FUNCTION SplEnumQueue(pszComputerName: pChar;
  885.                         ulLevel        : LongInt;
  886.                         pBuf           : pVoid;
  887.                         cbBuf          : LongInt;
  888.                         pcReturned,
  889.                         pcTotal,
  890.                         pcbNeeded      : pULong;
  891.                         pReserved      : pVoid): SplErr;
  892.   FUNCTION DosPrintQEnum(pszComputerName: pChar;
  893.                         ulLevel         : LongInt;
  894.                         pBuf            : pVoid;
  895.                         cbBuf           : LongInt;
  896.                         pcReturned,
  897.                         pcTotal,
  898.                         pcbNeeded       : pULong;
  899.                         pReserved       : pVoid): SplErr;
  900.   FUNCTION DosPrint16QEnum(pszComputerName: pChar;
  901.                            ulLevel        : LongInt;
  902.                            pBuf           : pVoid;
  903.                            cbBuf          : LongInt;
  904.                            pcReturned,
  905.                            pcTotal,
  906.                            pcbNeeded      : pULong;
  907.                            pReserved      : pVoid): SplErr;
  908.  
  909.    (*               SplQueryQueue(DosPrintQGetInfo) *)
  910.   FUNCTION  SplQueryQueue(pszComputerName,
  911.                           pszQueueName    : pChar;
  912.                           ulLevel         : LongInt;
  913.                           pBuf            : pVoid;
  914.                           cbBuf           : LongInt;
  915.                           pcbNeeded       : pULong): SplErr;
  916.   FUNCTION  DosPrintQGetInfo(pszComputerName,
  917.                              pszQueueName : pChar;
  918.                              ulLevel      : LongInt;
  919.                              pBuf         : pVoid;
  920.                              cbBuf        : LongInt;
  921.                              pcbNeeded    : pULong): SplErr;
  922.   FUNCTION  DosPrint16QGetInfo(pszComputerName,
  923.                                pszQueueName   : pChar;
  924.                                ulLevel        : LongInt;
  925.                                pBuf           : pVoid;
  926.                                cbBuf          : LongInt;
  927.                                pcbNeeded      : pULong
  928.                                              ): SplErr;
  929.  
  930.    (*              SplHoldQueue(DosPrintQPause) *)
  931.   FUNCTION SplHoldQueue(pszComputerName,
  932.                         pszQueueName   : pChar)  : SplErr;
  933.   FUNCTION DosPrintQPause(pszComputerName,
  934.                           pszQueueName   : pChar) : SplErr;
  935.   FUNCTION DosPrint16QPause(pszComputerName,
  936.                             pszQueueName   : pChar) : SplErr;
  937.  
  938.    (*              SplPurgeQueue(DosPrintQPurge) *)
  939.   FUNCTION SplPurgeQueue(pszComputerName,
  940.                          pszQueueName   : pChar): SplErr;
  941.   FUNCTION DosPrintQPurge(pszComputerName,
  942.                           pszQueueName   : pChar): SplErr;
  943.   FUNCTION DosPrint16QPurge(pszComputerName,
  944.                             pszQueueName   : pChar): SplErr;
  945.  
  946.    (*               SplSetQueue(DosPrintQSetInfo) *)
  947.   FUNCTION SplSetQueue(pszComputerName,
  948.                        pszQueueName   : pChar;
  949.                        ulLevel        : LongInt;
  950.                        pBuf           : pVoid;
  951.                        cbBuf,
  952.                        ulParmNum      : LongInt): SplErr;
  953.   FUNCTION DosPrintQSetInfo(pszComputerName,
  954.                             pszQueueName   : pChar;
  955.                             ulLevel        : LongInt;
  956.                             pBuf           : pVoid;
  957.                             cbBuf,
  958.                             ulParmNum      : LongInt): SplErr;
  959.   FUNCTION DosPrint16QSetInfo(pszComputerName,
  960.                               pszQueueName   : pChar;
  961.                               ulLevel        : LongInt;
  962.                               pBuf           : pVoid;
  963.                               cbBuf,
  964.                               ulParmNum      : LongInt
  965.                                             ): SplErr;
  966.  
  967.    (*               SplEnumDriver(DosPrintDriverEnum) *)
  968.   FUNCTION SplEnumDriver(pszComputerName: pChar;
  969.                          ulLevel        : LongInt;
  970.                          pBuf           : pVoid;
  971.                          cbBuf          : LongInt;
  972.                          pcReturned     : pULong;
  973.                          pcTotal        : pULong;
  974.                          pcbNeeded      : pULong;
  975.                          pReserved      : pVoid): SplErr;
  976.   FUNCTION DosPrintDriverEnum(pszComputerName: pChar;
  977.                               ulLevel        : LongInt;
  978.                               pBuf           : pVoid;
  979.                               cbBuf          : LongInt;
  980.                               pcReturned     : pULong;
  981.                               pcTotal        : pULong;
  982.                               pcbNeeded      : pULong;
  983.                               pReserved      : pVoid
  984.                                             ): SplErr;
  985.   FUNCTION DosPrint16DriverEnum(pszComputerName: pChar;
  986.                                 ulLevel        : LongInt;
  987.                                 pBuf           : pVoid;
  988.                                 cbBuf          : LongInt;
  989.                                 pcReturned     : pULong;
  990.                                 pcTotal        : pULong;
  991.                                 pcbNeeded      : pULong;
  992.                                 pReserved      : pVoid
  993.                                               ): SplErr;
  994.  
  995.    (*               SplEnumPort(DosPrintPortEnum) *)
  996.   FUNCTION SplEnumPort(pszComputerName: pChar;
  997.                        ulLevel        : LongInt;
  998.                        pBuf           : pVoid;
  999.                        cbBuf          : LongInt;
  1000.                        pcReturned     : pULong;
  1001.                        pcTotal        : pULong;
  1002.                        pcbNeeded      : pULong;
  1003.                        pReserved      : pVoid): SplErr;
  1004.   FUNCTION DosPrintPortEnum(pszComputerName: pChar;
  1005.                             ulLevel        : LongInt;
  1006.                             pBuf           : pVoid;
  1007.                             cbBuf          : LongInt;
  1008.                             pcReturned     : pULong;
  1009.                             pcTotal        : pULong;
  1010.                             pcbNeeded      : pULong;
  1011.                             pReserved      : pVoid): SplErr;
  1012.   FUNCTION DosPrint16PortEnum(pszComputerName: pChar;
  1013.                               ulLevel        : LongInt;
  1014.                               pBuf           : pVoid;
  1015.                               cbBuf          : LongInt;
  1016.                               pcReturned     : pULong;
  1017.                               pcTotal        : pULong;
  1018.                               pcbNeeded      : pULong;
  1019.                               pReserved      : pVoid
  1020.                                             ): SplErr;
  1021.  
  1022.    (*               SplEnumQueueProcessor(DosPrintQProcessorEnum) *)
  1023.   FUNCTION SplEnumQueueProcessor(pszComputerName : pChar;
  1024.                                  ulLevel         : LongInt;
  1025.                                  pBuf            : pVoid;
  1026.                                  cbBuf           : LongInt;
  1027.                                  pcReturned,
  1028.                                  pcTotal,
  1029.                                  pcbNeeded       : pULong;
  1030.                                  pReserved       : pVoid
  1031.                                                 ): SplErr;
  1032.   FUNCTION DosPrintQProcessorEnum(pszComputerName: pChar;
  1033.                                   ulLevel        : LongInt;
  1034.                                   pBuf           : pVoid;
  1035.                                   cbBuf          : LongInt;
  1036.                                   pcReturned,
  1037.                                   pcTotal,
  1038.                                   pcbNeeded      : pULong;
  1039.                                   pReserved      : pVoid
  1040.                                                 ): SplErr;
  1041.   FUNCTION DosPrint16QProcessorEnum(pszComputerName: pChar;
  1042.                                     ulLevel        : LongInt;
  1043.                                     pBuf           : pVoid;
  1044.                                     cbBuf          : LongInt;
  1045.                                     pcReturned,
  1046.                                     pcTotal,
  1047.                                     pcbNeeded      : pULong;
  1048.                                     pReserved      : pVoid
  1049.                                                   ): SplErr;
  1050. {
  1051.   FUNCTION SplEnumPrinter(pszComputerName: PSZ;
  1052.                           uLevel         : LongInt;
  1053.                           flType         : LongInt;
  1054.                           pBuf           : pVoid;
  1055.                           cbbuf          : ULong;
  1056.                           pcReturned     : pLongInt;
  1057.                           pcTotal        : pLongInt;
  1058.                           pcbNeeded      : pLongInt;
  1059.                           pReserved      : PVOID): SPLERR;
  1060.  
  1061.   FUNCTION SplCopyJob(pszSrcComputerName,
  1062.                       pszSrcQueueName    : PSZ;
  1063.                       ulSrcJob           : ULong;
  1064.                       pszTrgComputerName,
  1065.                       pszTrgQueueName    : PSZ;
  1066.                       pulTrgJob          : pULong): SPLERR;
  1067. }
  1068. IMPLEMENTATION
  1069.  
  1070.   FUNCTION SplQmOpen;           EXTERNAL 'PMSpl' INDEX  1;
  1071.   FUNCTION Spl16QmOpen;         EXTERNAL 'PMSpl' INDEX  1;
  1072.  
  1073.   FUNCTION SplQmStartDoc;       EXTERNAL 'PMSpl' INDEX  2;
  1074.   FUNCTION Spl16QmStartDoc;     EXTERNAL 'PMSpl' INDEX  2;
  1075.  
  1076.   FUNCTION SplQmEndDoc;         EXTERNAL 'PMSpl' INDEX  3;
  1077.   FUNCTION Spl16QmEndDoc;       EXTERNAL 'PMSpl' INDEX  3;
  1078.  
  1079.   FUNCTION SplQmWrite;          EXTERNAL 'PMSpl' INDEX  4;
  1080.   FUNCTION Spl16QmWrite;        EXTERNAL 'PMSpl' INDEX  4;
  1081.  
  1082.   FUNCTION SplQmAbort;          EXTERNAL 'PMSpl' INDEX  5;
  1083.   FUNCTION Spl16QmAbort;        EXTERNAL 'PMSpl' INDEX  5;
  1084.  
  1085.   FUNCTION SplQmClose;          EXTERNAL 'PMSpl' INDEX  6;
  1086.   FUNCTION Spl16QmClose;        EXTERNAL 'PMSpl' INDEX  6;
  1087.  
  1088.   FUNCTION SplMessageBox;       EXTERNAL 'PMSpl' INDEX  7;
  1089.   FUNCTION Spl16MessageBox;     EXTERNAL 'PMSpl' INDEX  7;
  1090.  
  1091.   FUNCTION SplQmAbortDoc;       EXTERNAL 'PMSpl' INDEX  8;
  1092.   FUNCTION Spl16QmAbortDoc;     EXTERNAL 'PMSpl' INDEX  8;
  1093.  
  1094. (* ====================================================== *)
  1095.  
  1096. {         FUNCTIONS NOT YET INTERFACED !!!!!!!!!!
  1097.  
  1098.   FUNCTION SPLInit;             External 'PMSpl' INDEX 20;
  1099.   FUNCTION SPL16Init;           External 'PMSpl' INDEX 20;
  1100.  
  1101.   FUNCTION SPLQMListQueues;     External 'PMSpl' INDEX  21;
  1102.   FUNCTION SPLQMQueryQInfo;     External 'PMSpl' INDEX  22;
  1103.  
  1104.   FUNCTION SPLQMListJobs;       External 'PMSpl' INDEX 23;
  1105.   FUNCTION SPLQMQueryJInfo;     External 'PMSpl' INDEX 24;
  1106.  
  1107.   FUNCTION SPLQMHoldQueue;      External 'PMSpl' INDEX 25;
  1108.   FUNCTION SPLQMReleaseQueue;   External 'PMSpl' INDEX 26;
  1109.  
  1110.   FUNCTION SPLQMHoldJob;        External 'PMSpl' INDEX 27;
  1111.   FUNCTION SPLQMReleaseJob;     External 'PMSpl' INDEX 28;
  1112.  
  1113.   FUNCTION SPLQMCancelJob;      External 'PMSpl' INDEX 29;
  1114.   FUNCTION SPLQMRestartJob;     External 'PMSpl' INDEX 30;
  1115.  
  1116.   FUNCTION SPLQMRepeatJob;      External 'PMSpl' INDEX 31;
  1117.   FUNCTION SPLQMPrintJobNext;   External 'PMSpl' INDEX 32;
  1118.  
  1119.   FUNCTION SPLQMQueryPInfo;     External 'PMSpl' INDEX 33;
  1120.   FUNCTION SPLQMChangeJobPrtY;  External 'PMSpl' INDEX 34;
  1121.  
  1122.   FUNCTION SPLQMWriteFile;      External 'PMSpl' INDEX 35;
  1123.  
  1124. (* ===================================================== *)
  1125. }
  1126.   FUNCTION SplStdOpen;          EXTERNAL 'PMSpl' INDEX 50;
  1127.   FUNCTION Spl16StdOpen;        EXTERNAL 'PMSpl' INDEX 50;
  1128.  
  1129.   FUNCTION SplStdClose;         EXTERNAL 'PMSpl' INDEX 51;
  1130.   FUNCTION Spl16StdClose;       EXTERNAL 'PMSpl' INDEX 51;
  1131.  
  1132.   FUNCTION SplStdStart;         EXTERNAL 'PMSpl' INDEX 52;
  1133.   FUNCTION Spl16StdStart;       EXTERNAL 'PMSpl' INDEX 52;
  1134.  
  1135.   FUNCTION SplStdStop;          EXTERNAL 'PMSpl' INDEX 53;
  1136.   FUNCTION Spl16StdStop;        EXTERNAL 'PMSpl' INDEX 53;
  1137.  
  1138.   FUNCTION SplStdDelete;        EXTERNAL 'PMSpl' INDEX 54;
  1139.   FUNCTION Spl16StdDelete;      EXTERNAL 'PMSpl' INDEX 54;
  1140.  
  1141.   FUNCTION SplStdGetBits;       EXTERNAL 'PMSpl' INDEX 55;
  1142.   FUNCTION Spl16StdGetBits;     EXTERNAL 'PMSpl' INDEX 55;
  1143.  
  1144.   FUNCTION SplStdQueryLength;   EXTERNAL 'PMSpl' INDEX 56;
  1145.   FUNCTION Spl16StdQueryLength; EXTERNAL 'PMSpl' INDEX 56;
  1146.  
  1147. (* ====================================================== *)
  1148.  
  1149.   FUNCTION PrtOpen;             EXTERNAL 'PMSpl' INDEX 70;
  1150.   FUNCTION Prt16Open;           EXTERNAL 'PMSpl' INDEX 70;
  1151.  
  1152.   FUNCTION PrtWrite;            EXTERNAL 'PMSpl' INDEX 71;
  1153.   FUNCTION Prt16Write;          EXTERNAL 'PMSpl' INDEX 71;
  1154.  
  1155.   FUNCTION PrtDevIOCtl;         EXTERNAL 'PMSpl' INDEX 72;
  1156.   FUNCTION Prt16DevIOCtl;       EXTERNAL 'PMSpl' INDEX 72;
  1157.  
  1158.   FUNCTION PrtClose;            EXTERNAL 'PMSpl' INDEX 73;
  1159.   FUNCTION Prt16Close;          EXTERNAL 'PMSpl' INDEX 73;
  1160.  
  1161. (* ====================================================== *)
  1162.  
  1163.   PROCEDURE PrtAbort;           EXTERNAL 'PMSpl' INDEX 75;
  1164.   PROCEDURE Prt16Abort;         EXTERNAL 'PMSpl' INDEX 75;
  1165.  
  1166.   FUNCTION DosPrintDestControl; EXTERNAL 'PMSpl' INDEX 80;
  1167.   FUNCTION DosPrint16DestControl;
  1168.     EXTERNAL 'PMSpl' INDEX 80;
  1169.  
  1170.   FUNCTION DosPrintDestGetInfo; EXTERNAL 'PMSpl' INDEX 81;
  1171.   FUNCTION DosPrint16DestGetInfo;
  1172.     EXTERNAL 'PMSpl' INDEX 81;
  1173.  
  1174.   FUNCTION DosPrintDestEnum;    EXTERNAL 'PMSpl' INDEX 82;
  1175.   FUNCTION DosPrint16DestEnum;  EXTERNAL 'PMSpl' INDEX 82;
  1176.  
  1177. (* ====================================================== *)
  1178.  
  1179.   FUNCTION DosPrintJobContinue; EXTERNAL 'PMSpl' INDEX 84;
  1180.   FUNCTION DosPrint16JobContinue;
  1181.     EXTERNAL 'PMSpl' INDEX 84;
  1182.  
  1183.   FUNCTION DosPrintJobPause;    EXTERNAL 'PMSpl' INDEX 85;
  1184.   FUNCTION DosPrint16JobPause;  EXTERNAL 'PMSpl' INDEX 85;
  1185.  
  1186.   FUNCTION DosPrintJobDel;      EXTERNAL 'PMSpl' INDEX 86;
  1187.   FUNCTION DosPrint16JobDel;    EXTERNAL 'PMSpl' INDEX 86;
  1188.  
  1189. (* ====================================================== *)
  1190.  
  1191.   FUNCTION DosPrintJobGetInfo;  EXTERNAL 'PMSpl' INDEX 90;
  1192.   FUNCTION DosPrint16JobGetInfo;EXTERNAL 'PMSpl' INDEX 90;
  1193.  
  1194.   FUNCTION DosPrintJobSetInfo;  EXTERNAL 'PMSpl' INDEX 91;
  1195.   FUNCTION DosPrint16JobSetInfo;EXTERNAL 'PMSpl' INDEX 91;
  1196.  
  1197.   FUNCTION DosPrintJobEnum;     EXTERNAL 'PMSpl' INDEX 92;
  1198.   FUNCTION DosPrint16JobEnum;   EXTERNAL 'PMSpl' INDEX 92;
  1199.  
  1200.   FUNCTION DosPrintQAdd;        EXTERNAL 'PMSpl' INDEX 93;
  1201.   FUNCTION DosPrint16QAdd;      EXTERNAL 'PMSpl' INDEX 93;
  1202.  
  1203.   FUNCTION DosPrintQPause;      EXTERNAL 'PMSpl' INDEX 94;
  1204.   FUNCTION DosPrint16QPause;    EXTERNAL 'PMSpl' INDEX 94;
  1205.  
  1206.   FUNCTION DosPrintQContinue;   EXTERNAL 'PMSpl' INDEX 95;
  1207.   FUNCTION DosPrint16QContinue; EXTERNAL 'PMSpl' INDEX 95;
  1208.  
  1209.   FUNCTION DosPrintQDel;        EXTERNAL 'PMSpl' INDEX 96;
  1210.   FUNCTION DosPrint16QDel;      EXTERNAL 'PMSpl' INDEX 96;
  1211.  
  1212.   FUNCTION DosPrintQGetInfo;    EXTERNAL 'PMSpl' INDEX 97;
  1213.   FUNCTION DosPrint16QGetInfo;  EXTERNAL 'PMSpl' INDEX 97;
  1214.  
  1215.   FUNCTION DosPrintQSetInfo;    EXTERNAL 'PMSpl' INDEX 98;
  1216.   FUNCTION DosPrint16QSetInfo;  EXTERNAL 'PMSpl' INDEX 98;
  1217.  
  1218.   FUNCTION DosPrintQEnum;       EXTERNAL 'PMSpl' INDEX 99;
  1219.   FUNCTION DosPrint16QEnum;     EXTERNAL 'PMSpl' INDEX 99;
  1220.  
  1221. (* ====================================================== *)
  1222.  
  1223.   FUNCTION DosPrintDestAdd;     EXTERNAL 'PMSpl' INDEX 101;
  1224.   FUNCTION DosPrint16DestAdd;   EXTERNAL 'PMSpl' INDEX 101;
  1225.  
  1226.   FUNCTION DosPrintDestSetInfo; EXTERNAL 'PMSpl' INDEX 102;
  1227.   FUNCTION DosPrint16DestSetInfo;
  1228.     EXTERNAL 'PMSpl' INDEX 102;
  1229.  
  1230.   FUNCTION DosPrintDestDel;     EXTERNAL 'PMSpl' INDEX 103;
  1231.   FUNCTION DosPrint16DestDel;   EXTERNAL 'PMSpl' INDEX 103;
  1232.  
  1233.   FUNCTION DosPrintQPurge;      EXTERNAL 'PMSpl' INDEX 104;
  1234.   FUNCTION DosPrint16QPurge;    EXTERNAL 'PMSpl' INDEX 104;
  1235.  
  1236. {
  1237.   FUNCTION DosPrintJobGetID;    External 'PMSpl' INDEX 105;
  1238.   FUNCTION DosPrint16JobGetID;  External 'PMSpl' INDEX 105;
  1239. }
  1240.  
  1241.   FUNCTION DosPrintDriverEnum;  EXTERNAL 'PMSpl' INDEX 106;
  1242.   FUNCTION DosPrint16DriverEnum;EXTERNAL 'PMSpl' INDEX 106;
  1243.  
  1244.   FUNCTION DosPrintQProcessorEnum;
  1245.     EXTERNAL 'PMSpl' INDEX 107;
  1246.   FUNCTION DosPrint16QProcessorEnum;
  1247.     EXTERNAL 'PMSpl' INDEX 107;
  1248.  
  1249.   FUNCTION DosPrintPortEnum;    EXTERNAL 'PMSpl' INDEX 108;
  1250.   FUNCTION DosPrint16PortEnum;  EXTERNAL 'PMSpl' INDEX 108;
  1251.  
  1252. (* ===================================================== *)
  1253. {
  1254.   FUNCTION SPLQMQueryPrintRes;  External 'PMSpl' INDEX 140;
  1255.   FUNCTION SPL16QMQueryPrintRes;External 'PMSpl' INDEX 140;
  1256. }
  1257. (* ====================================================== *)
  1258. (*                       32 Bit                           *)
  1259. {
  1260.   FUNCTION SPL32QmOpen;         External 'PMSpl' INDEX 301;
  1261.  
  1262.   FUNCTION SPL32QmStartDoc;     External 'PMSpl' INDEX 302;
  1263.  
  1264.   FUNCTION SPL32QmEndDoc;
  1265.     External 'PMSpl'    INDEX 303;
  1266.  
  1267.   FUNCTION SPL32QmWrite;
  1268.     External 'PMSpl'    INDEX 304;
  1269.  
  1270.   FUNCTION SPL32QmAbort;
  1271.     External 'PMSpl'    INDEX 305;
  1272.  
  1273.   FUNCTION SPL32QmClose;
  1274.     External 'PMSpl'    INDEX 306;
  1275.  
  1276.   FUNCTION SPL32MessageBox;
  1277.     External 'PMSpl'    INDEX 307;
  1278.  
  1279.   FUNCTION SPL32QmAbortDoc;
  1280.     External 'PMSpl'    INDEX 308;
  1281.  
  1282. (* ===================================================== *)
  1283.  
  1284.   FUNCTION SPL32Init;
  1285.     External 'PMSpl'    INDEX 320;
  1286.  
  1287. (* ===================================================== *)
  1288.  
  1289.   FUNCTION SPL32StdOpen;
  1290.     External 'PMSpl'    INDEX 350;
  1291.  
  1292.   FUNCTION SPL32StdClose;
  1293.     External 'PMSpl'    INDEX 351;
  1294.  
  1295.   FUNCTION SPL32StdStart;
  1296.     External 'PMSpl'    INDEX 352;
  1297.  
  1298.   FUNCTION SPL32StdStop;
  1299.     External 'PMSpl'    INDEX 353;
  1300.  
  1301.   FUNCTION SPL32StdDelete;
  1302.     External 'PMSpl'    INDEX 354;
  1303.  
  1304.   FUNCTION SPL32StdGetBits;
  1305.     External 'PMSpl'    INDEX 355;
  1306.  
  1307.   FUNCTION SPL32StdQueryLength;
  1308.     External 'PMSpl'    INDEX 356;
  1309.  
  1310. (* ====================================================== *)
  1311.  
  1312.   FUNCTION Prt32Open;
  1313.     External 'PMSpl'    INDEX 370;
  1314.  
  1315.   FUNCTION Prt32Write;
  1316.     External 'PMSpl'    INDEX 371;
  1317.  
  1318.   FUNCTION Prt32DevIOCtl;
  1319.     External 'PMSpl'    INDEX 372;
  1320.  
  1321.   FUNCTION Prt32Close;
  1322.     External 'PMSpl'    INDEX 373;
  1323.  
  1324.   FUNCTION Prt32Abort;
  1325.     External 'PMSpl'    INDEX 375;
  1326. }
  1327. (* ====================================================== *)
  1328.  
  1329.   FUNCTION SplControlDevice;
  1330.     EXTERNAL 'PMSpl'    INDEX 380;
  1331.  
  1332.   FUNCTION SplQueryDevice;
  1333.     EXTERNAL 'PMSpl'    INDEX 381;
  1334.  
  1335.   FUNCTION SplEnumDevice;
  1336.     EXTERNAL 'PMSpl'    INDEX 382;
  1337.  
  1338.   FUNCTION SplReleaseJob;
  1339.     EXTERNAL 'PMSpl'    INDEX 384;
  1340.  
  1341.   FUNCTION SplHoldJob;
  1342.     EXTERNAL 'PMSpl'    INDEX 385;
  1343.  
  1344.   FUNCTION SplDeleteJob;
  1345.     EXTERNAL 'PMSpl'    INDEX 386;
  1346.  
  1347. (* ====================================================== *)
  1348.  
  1349.   FUNCTION SplQueryJob;
  1350.     EXTERNAL 'PMSpl'    INDEX 390;
  1351.  
  1352.   FUNCTION SplSetJob;
  1353.     EXTERNAL 'PMSpl'    INDEX 391;
  1354.  
  1355.   FUNCTION SplEnumJob;
  1356.     EXTERNAL 'PMSpl'    INDEX 392;
  1357.  
  1358.   FUNCTION SplCreateQueue;
  1359.     EXTERNAL 'PMSpl'    INDEX 393;
  1360.  
  1361.   FUNCTION SplHoldQueue;
  1362.     EXTERNAL 'PMSpl'    INDEX 394;
  1363.  
  1364.   FUNCTION SplReleaseQueue;
  1365.     EXTERNAL 'PMSpl'    INDEX 395;
  1366.  
  1367.   FUNCTION SplDeleteQueue;
  1368.     EXTERNAL 'PMSpl'    INDEX 396;
  1369.  
  1370.   FUNCTION SplQueryQueue;
  1371.     EXTERNAL 'PMSpl'    INDEX 397;
  1372.  
  1373.   FUNCTION SplSetQueue;
  1374.     EXTERNAL 'PMSpl'    INDEX 398;
  1375.  
  1376.   FUNCTION SplEnumQueue;
  1377.     EXTERNAL 'PMSpl'    INDEX 399;
  1378.  
  1379. (* ====================================================== *)
  1380.  
  1381.   FUNCTION SplCreateDevice;
  1382.     EXTERNAL 'PMSpl'    INDEX 401;
  1383.  
  1384.   FUNCTION SplSetDevice;
  1385.     EXTERNAL 'PMSpl'    INDEX 402;
  1386.  
  1387.   FUNCTION SplDeleteDevice;
  1388.     EXTERNAL 'PMSpl'    INDEX 403;
  1389.  
  1390.   FUNCTION SplPurgeQueue;
  1391.     EXTERNAL 'PMSpl'    INDEX 404;
  1392. {
  1393.   FUNCTION SplQueryJobId;
  1394.     External 'PMSpl'    INDEX 405;
  1395. }
  1396.   FUNCTION SplEnumDriver;
  1397.     EXTERNAL 'PMSpl'    INDEX 406;
  1398.  
  1399.   FUNCTION SplEnumQueueProcessor;
  1400.     EXTERNAL 'PMSpl'    INDEX 407;
  1401.  
  1402.   FUNCTION SplEnumPort;
  1403.     EXTERNAL 'PMSpl'    INDEX 408;
  1404.  
  1405. (* ====================================================== *)
  1406. (*                       32 Bit                           *)
  1407. {                 nicht implementiert
  1408.  
  1409.   FUNCTION SPL32EnumPrinter; External 'PMSpl'    INDEX 441;
  1410.   FUNCTION SPL32CopyJob;     External 'PMSpl'    INDEX 442;
  1411.   FUNCTION SPL32QmSetup;     External 'PMSpl' INDEX 443;
  1412. }
  1413.  
  1414. END.
  1415.  
  1416. (* ====================================================== *)
  1417. (*                   Ende von PMSPL.PAS                   *)
  1418.