home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sp15demo.zip / libsrc.zip / LIBSRC / PMSPL.PAS < prev    next >
Pascal/Delphi Source File  |  1996-02-18  |  25KB  |  620 lines

  1. UNIT PMSpl;
  2.  
  3. (****************************** Module Header *****************************
  4. *                                                                         *
  5. * Module Name: PMSPL.PAS                                                  *
  6. *                                                                         *
  7. * OS/2 Presentation Manager Spooler constants, types and function         *
  8. * declarations                                                            *
  9. *                                                                         *
  10. *                                                                         *
  11. ***************************************************************************)
  12.  
  13.  
  14. INTERFACE
  15.  
  16. USES OS2Def,BseDos;
  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.      SPL_ERROR   = 0;
  29.      SPL_OK      = 1;
  30.  
  31.    /*** handle to a spool file *********************************************/
  32. TYPE
  33.    HSPL=ULONG;               /* hspl */
  34.  
  35.    /* Used in recording of PM_Q_STD data via SplStdxxx calls */
  36.    HSTD=ULONG;               /* hstd */
  37.    PHSTD=^HSTD;
  38.  
  39.    /*** spooler manager open data ******************************************/
  40.    QMOPENDATA=CSTRING;
  41.    PQMOPENDATA=^CSTRING;       /* pqmdop */
  42.  
  43.  
  44.    /*** Spooler Queue Processor interface **********************************/
  45.  
  46. CONST
  47.    /* control codes for SplQpControl */
  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=ULONG;              /* hproc */
  61.  
  62.  
  63.    /*** spooler processor open data ****************************************/
  64.    PQPOPENDATA=^CSTRING;       /* pqpdop */
  65.  
  66.  
  67.    /*** Definition for elements within the PQPOPENDATA block ***************/
  68. CONST
  69.      QPDAT_ADDRESS     =0;
  70.      QPDAT_DRIVER_NAME =1;
  71.      QPDAT_DRIVER_DATA =2;
  72.      QPDAT_DATA_TYPE   =3;
  73.      QPDAT_COMMENT     =4;
  74.      QPDAT_PROC_PARAMS =5;
  75.      QPDAT_SPL_PARAMS  =6;      /* SplQmOpen Spooler params **       */
  76.      QPDAT_NET_PARAMS  =7;      /* SplQmOpen Network params **       */
  77.      QPDAT_DOC_NAME    =8;      /* SplQmStartDoc name       **       */
  78.      QPDAT_QUEUE_NAME  =9;      /* Queue name for job       **       */
  79.      QPDAT_TOKEN       =10;      /* SplQmOpen token name     **       */
  80.      QPDAT_JOBID       =11;      /* SQM job identity         **       */
  81.  
  82. TYPE
  83.    SQPOPENDATA=RECORD       /* SplQpOpenData */
  84.       pszLogAddress:PChar;     /*                                   */
  85.       pszDriverName:PChar;     /*                                   */
  86.       pdriv:PDRIVDATA;         /*                                   */
  87.       pszDataType:PChar;       /*                                   */
  88.       pszComment:PChar;        /*                                   */
  89.       pszProcParams:PChar;     /*                                   */
  90.       pszSpoolParams:PChar;    /*                                   */
  91.       pszNetworkParams:PChar;  /*                                   */
  92.       pszDocName:PChar;        /*                                   */
  93.       pszQueueName:PChar;      /*                                   */
  94.       pszToken:PChar;          /*                                   */
  95.       idJobId:USHORT;          /*                                   */
  96.    END;
  97.    PSQPOPENDATA=^SQPOPENDATA; /* ptr to SQPOPENDATA */
  98.  
  99.  
  100.    /*************************************************************************
  101.    *** Error information and return codes
  102.    *************************************************************************/
  103.  
  104.    /* Error information for SplMessageBox */
  105. CONST
  106.      SPLINFO_QPERROR     =  $0001;
  107.      SPLINFO_DDERROR     =  $0002;
  108.      SPLINFO_SPLERROR    =  $0004;
  109.      SPLINFO_OTHERERROR  =  $0080;
  110.      SPLINFO_INFORMATION =  $0100;
  111.      SPLINFO_WARNING     =  $0200;
  112.      SPLINFO_ERROR       =  $0400;
  113.      SPLINFO_SEVERE      =  $0800;
  114.      SPLINFO_USERINTREQD =  $1000;
  115.  
  116.    /* Error Data for SplMessageBox */
  117.      SPLDATA_PRINTERJAM   = $0001;
  118.      SPLDATA_FORMCHGREQD  = $0002;
  119.      SPLDATA_CARTCHGREQD  = $0004;
  120.      SPLDATA_PENCHGREQD   = $0008;
  121.      SPLDATA_DATAERROR    = $0010;
  122.      SPLDATA_UNEXPECTERROR= $0020;
  123.      SPLDATA_OTHER        = $8000;
  124.  
  125.    /* return code for fSplStdQueryLength */
  126.      SSQL_ERROR = -1;
  127.  
  128. TYPE
  129.     SPLERR=ULONG;
  130.  
  131.       /* length for character arrays in structs (excluding zero terminator) */
  132. CONST
  133.         CNLEN         = 15;            /* Computer name length      */
  134.         UNLEN         = 20;            /* Maximum user name length  */
  135.         QNLEN         = 12;            /* Queue name maximum length */
  136.         PDLEN         =  8;            /* Print destination length  */
  137.         DTLEN         =  9;            /* Spool file data type      */
  138.       /* e.g. PM_Q_STD,PM_Q_RAW    */
  139.         QP_DATATYPE_SIZE      = 15;    /* returned by SplQpQueryDt  */
  140.         DRIV_DEVICENAME_SIZE  = 31;    /* see DRIVDATA struc        */
  141.         DRIV_NAME_SIZE        =  8;    /* name of device driver     */
  142.         PRINTERNAME_SIZE      = 32;    /* max printer name length   */
  143.         FORMNAME_SIZE         = 31;    /* max form name length      */
  144.         MAXCOMMENTSZ          = 48;    /* queue comment length      */
  145.  
  146. TYPE
  147.       DRIVPROPS=RECORD      /* dprop */
  148.          pszKeyName:PChar;
  149.          cbBuf:ULONG;
  150.          pBuf:POINTER;
  151.       END;
  152.       PDRIVPROPS=^DRIVPROPS;
  153.       NPDRIVPROPS=^DRIVPROPS;
  154.  
  155.       PRJINFO=RECORD      /* prj1 */
  156.          uJobId:USHORT;
  157.          szUserName:CSTRING[UNLEN];
  158.          pad_1:CHAR;
  159.          szNotifyName:CSTRING[CNLEN];
  160.          szDataType:CSTRING[DTLEN];
  161.          pszParms:PChar;
  162.          uPosition:USHORT;
  163.          fsStatus:USHORT;
  164.          pszStatus:PChar;
  165.          ulSubmitted:ULONG;
  166.          ulSize:ULONG;
  167.          pszComment:PChar;
  168.       END;
  169.       PPRJINFO=^PRJINFO;
  170.       NPPRJINFO=^PRJINFO;
  171.  
  172.       PRJINFO2=RECORD      /* prj2 */
  173.          uJobId:USHORT;
  174.          uPriority:USHORT;
  175.          pszUserName:PChar;
  176.          uPosition:USHORT;
  177.          fsStatus:USHORT;
  178.          ulSubmitted:ULONG;
  179.          ulSize:ULONG;
  180.          pszComment:PChar;
  181.          pszDocument:PChar;
  182.       END;
  183.       PPRJINFO2=^PRJINFO2;
  184.       NPPRJINFO2=^PRJINFO2;
  185.  
  186.       PRJINFO3=RECORD      /* prj */
  187.          uJobId:USHORT;
  188.          uPriority:USHORT;
  189.          pszUserName:PChar;
  190.          uPosition:USHORT;
  191.          fsStatus:USHORT;
  192.          ulSubmitted:ULONG;
  193.          ulSize:ULONG;
  194.          pszComment:PChar;
  195.          pszDocument:PChar;
  196.          pszNotifyName:PChar;
  197.          pszDataType:PChar;
  198.          pszParms:PChar;
  199.          pszStatus:PChar;
  200.          pszQueue:PChar;
  201.          pszQProcName:PChar;
  202.          pszQProcParms:PChar;
  203.          pszDriverName:PChar;
  204.          pDriverData:PDRIVDATA;
  205.          pszPrinterName:PChar;
  206.       END;
  207.       PPRJINFO3=^PRJINFO3;
  208.       NPPRJINFO3=^PRJINFO3;
  209.  
  210.       PRDINFO=RECORD       /* prd1 */
  211.          szName:CSTRING[PDLEN];
  212.          szUserName:CSTRING[UNLEN];
  213.          uJobId:USHORT;
  214.          fsStatus:USHORT;
  215.          pszStatus:PChar;
  216.          time:USHORT;
  217.       END;
  218.       PPRDINFO=^PRDINFO;
  219.       NPPRDINFO=^PRDINFO;
  220.  
  221.       PRDINFO3=RECORD      /* prd */
  222.          pszPrinterName:PChar;
  223.          pszUserName:PChar;
  224.          pszLogAddr:PChar;
  225.          uJobId:USHORT;
  226.          fsStatus:USHORT;
  227.          pszStatus:PChar;
  228.          pszComment:PChar;
  229.          pszDrivers:PChar;
  230.          time:USHORT;
  231.          usTimeOut:USHORT;
  232.       END;
  233.       PPRDINFO3=^PRDINFO3;
  234.       NPPRDINFO3=^PRDINFO3;
  235.  
  236.       PRQINFO=RECORD      /* prq1 */
  237.          szName:CSTRING[QNLEN];
  238.          pad_1:CHAR;
  239.          uPriority:USHORT;
  240.          uStartTime:USHORT;
  241.          uUntilTime:USHORT;
  242.          pszSepFile:PChar;
  243.          pszPrProc:PChar;
  244.          pszDestinations:PChar;
  245.          pszParms:PChar;
  246.          pszComment:PChar;
  247.          fsStatus:USHORT;
  248.          cJobs:USHORT;
  249.       END;
  250.       PPRQINFO=^PRQINFO;
  251.       NPPRQINFO=^PRQINFO;
  252.  
  253.       PRQINFO3=RECORD     /* prq */
  254.          pszName:PChar;
  255.          uPriority:USHORT;
  256.          uStartTime:USHORT;
  257.          uUntilTime:USHORT;
  258.          fsType:USHORT;
  259.          pszSepFile:PChar;
  260.          pszPrProc:PChar;
  261.          pszParms:PChar;
  262.          pszComment:PChar;
  263.          fsStatus:USHORT;
  264.          cJobs:USHORT;
  265.          pszPrinters:PChar;
  266.          pszDriverName:PChar;
  267.          pDriverData:PDRIVDATA;
  268.       END;
  269.       PPRQINFO3=^PRQINFO3;
  270.       NPPRQINFO3=^PRQINFO3;
  271.  
  272.       PRQINFO6=RECORD     /* prq6 */
  273.          pszName:PChar;
  274.          uPriority:USHORT;
  275.          uStartTime:USHORT;
  276.          uUntilTime:USHORT;
  277.          fsType:USHORT;
  278.          pszSepFile:PChar;
  279.          pszPrProc:PChar;
  280.          pszParms:PChar;
  281.          pszComment:PChar;
  282.          fsStatus:USHORT;
  283.          cJobs:USHORT;
  284.          pszPrinters:PChar;
  285.          pszDriverName:PChar;
  286.          pDriverData:PDRIVDATA;
  287.          pszRemoteComputerName:PChar;
  288.          pszRemoteQueueName:PChar;
  289.       END;
  290.       PPRQINFO6=^PRQINFO6;
  291.       NPPRQINFO6=^PRQINFO6;
  292.  
  293.       /*
  294.       * structure for DosPrintJobGetId
  295.       */
  296.       PRIDINFO=RECORD     /* prjid */
  297.          uJobId:USHORT;
  298.          szComputerName:CSTRING[CNLEN];
  299.          szQueueName:CSTRING[QNLEN];
  300.          pad_1:CHAR;
  301.       END;
  302.       PPRIDINFO=^PRIDINFO;
  303.       NPPRIDINFO=^PRIDINFO;
  304.  
  305.       /*
  306.       * structure for DosPrintDriverEnum
  307.       */
  308.       PRDRIVINFO=RECORD    /* prdid */
  309.          szDrivName:CSTRING[DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE];
  310.       END;
  311.       PPRDRIVINFO=^PRDRIVINFO;
  312.       NPPRDRIVINFO=^PRDRIVINFO;
  313.  
  314.       /*
  315.       * structure for DosPrintQProcessorEnum
  316.       */
  317.       PRQPROCINFO=RECORD    /* prqp */
  318.          szQProcName:CSTRING[QNLEN];
  319.       END;
  320.       PPRQPROCINFO=^PRQPROCINFO;
  321.       NPPRQPROCINFO=^PRQPROCINFO;
  322.  
  323.       /*
  324.       * structure for DosPrintPortEnum Level 0
  325.       */
  326.       PRPORTINFO=RECORD    /* prpo */
  327.          szPortName:CSTRING[PDLEN];
  328.       END;
  329.       PPRPORTINFO=^PRPORTINFO;
  330.       NPPRPORTINFO=^PRPORTINFO;
  331.  
  332.       /*
  333.       * structure for DosPrintPortEnum Level 1
  334.       */
  335.       PRPORTINFO1=RECORD    /* prpo1 */
  336.          pszPortName :PChar;
  337.          pszPortDriverName :PChar;
  338.          pszPortDriverPathName :PChar;
  339.       END;
  340.       PPRPORTINFO1=^PRPORTINFO1;
  341.       NPPRPORTINFO1=^PRPORTINFO1;
  342.  
  343.  
  344.       /*** Values for parmnum in DosPrintQSetInfo/SplSetQueue  *************/
  345. CONST
  346.         PRQ_PRIORITY_PARMNUM        =    2;
  347.         PRQ_STARTTIME_PARMNUM       =    3;
  348.         PRQ_UNTILTIME_PARMNUM       =    4;
  349.         PRQ_SEPARATOR_PARMNUM       =    5;
  350.         PRQ_PROCESSOR_PARMNUM       =    6;
  351.         PRQ_DESTINATIONS_PARMNUM    =    7;
  352.         PRQ_PARMS_PARMNUM           =    8;
  353.         PRQ_COMMENT_PARMNUM         =    9;
  354.         PRQ_TYPE_PARMNUM            =   10;
  355.         PRQ_PRINTERS_PARMNUM        =   12;
  356.         PRQ_DRIVERNAME_PARMNUM      =   13;
  357.         PRQ_DRIVERDATA_PARMNUM      =   14;
  358.         PRQ_REMOTE_COMPUTER_PARMNUM =   15;
  359.         PRQ_REMOTE_QUEUE_PARMNUM    =   16;
  360.         PRQ_MAXPARMNUM              =   16;
  361.  
  362.       /*** Print Queue Priority ********************************************/
  363.         PRQ_MAX_PRIORITY            =    1;        /* highest priority */
  364.         PRQ_DEF_PRIORITY            =    5;
  365.         PRQ_MIN_PRIORITY            =    9;        /* lowest priority  */
  366.         PRQ_NO_PRIORITY             =    0;
  367.  
  368.       /*** Print queue status bitmask and values for level 1 ***************/
  369.         PRQ_STATUS_MASK             =    3;
  370.         PRQ_ACTIVE                  =    0;
  371.         PRQ_PAUSED                  =    1;        /* queue is held    */
  372.         PRQ_ERROR                   =    2;
  373.         PRQ_PENDING                 =    3;       /* pending deletion */
  374.  
  375.       /*** Print queue status bits for level 3 *****************************/
  376.         PRQ3_PAUSED                 =  $1;        /* queue is held    */
  377.         PRQ3_PENDING                =  $2;        /* pending deletion */
  378.  
  379.       /*** Print queue type bits for level 3 *******************************/
  380.         PRQ3_TYPE_RAW       =  $0001; /* spools printer-specific data */
  381.         PRQ3_TYPE_BYPASS    =  $0002; /* allow print while spooling   */
  382.         PRQ3_TYPE_APPDEFAULT=  $0004; /* set for Application default Q*/
  383.  
  384.       /*** Values for parmnum in DosPrintJobSetInfo/SplSetJob **************/
  385.         PRJ_NOTIFYNAME_PARMNUM     =   3;
  386.         PRJ_DATATYPE_PARMNUM       =   4;
  387.         PRJ_PARMS_PARMNUM          =   5;
  388.         PRJ_POSITION_PARMNUM       =   6;
  389.         PRJ_JOBFILEINUSE_PARMNUM   =   7;
  390.         PRJ_COMMENT_PARMNUM        =  11;
  391.         PRJ_DOCUMENT_PARMNUM       =  12;
  392.         PRJ_STATUSCOMMENT_PARMNUM  =  13;
  393.         PRJ_PRIORITY_PARMNUM       =  14;
  394.         PRJ_PROCPARMS_PARMNUM      =  16;
  395.         PRJ_DRIVERDATA_PARMNUM     =  18;
  396.         PRJ_MAXPARMNUM             =  18;
  397.  
  398.       /*** Bitmap masks for status field of PRJINFO. ***********************/
  399.       /* 2-7 bits also used in device status */
  400.         PRJ_QSTATUS     = $0003;      /* Bits 0,1  */
  401.         PRJ_DEVSTATUS   = $0ffc;      /* 2-11 bits */
  402.         PRJ_COMPLETE    = $0004;      /* Bit 2     */
  403.         PRJ_INTERV      = $0008;      /* Bit 3     */
  404.         PRJ_ERROR       = $0010;      /* Bit 4     */
  405.         PRJ_DESTOFFLINE = $0020;      /* Bit 5     */
  406.         PRJ_DESTPAUSED  = $0040;      /* Bit 6     */
  407.         PRJ_NOTIFY      = $0080;      /* Bit 7     */
  408.         PRJ_DESTNOPAPER = $0100;      /* Bit 8     */
  409.         PRJ_DESTFORMCHG = $0200;      /* BIT 9     */
  410.         PRJ_DESTCRTCHG  = $0400;      /* BIT 10    */
  411.         PRJ_DESTPENCHG  = $0800;      /* BIT 11    */
  412.         PRJ_JOBFILEINUSE= $4000;      /* Bit 14    */
  413.         PRJ_DELETED     = $8000;      /* Bit 15    */
  414.  
  415.       /*** Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO. ********/
  416.         PRJ_QS_QUEUED              =   0;
  417.         PRJ_QS_PAUSED              =   1;
  418.         PRJ_QS_SPOOLING            =   2;
  419.         PRJ_QS_PRINTING            =   3;
  420.  
  421.       /*** Print Job Priority **********************************************/
  422.         PRJ_MAX_PRIORITY           =  99;          /* lowest priority  */
  423.         PRJ_MIN_PRIORITY           =   1;          /* highest priority */
  424.         PRJ_NO_PRIORITY            =   0;
  425.  
  426.  
  427.       /*** Bitmap masks for status field of PRDINFO. ***********************/
  428.         PRD_STATUS_MASK     =  $0003;      /* Bits 0,1 */
  429.         PRD_DEVSTATUS       =  $0ffc;      /* 2-11 bits */
  430.  
  431.       /*** Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO. ****/
  432.         PRD_ACTIVE               =  0;
  433.         PRD_PAUSED               =  1;
  434.  
  435.       /*** Control codes used in DosPrintDestControl/SplControlDevice ******/
  436.         PRD_DELETE                  =  0;
  437.         PRD_PAUSE                   =  1;
  438.         PRD_CONT                    =  2;
  439.         PRD_RESTART                 =  3;
  440.  
  441.       /*** Values for parmnum in DosPrintDestSetInfo/SplSetDevice **********/
  442.         PRD_LOGADDR_PARMNUM    =  3;
  443.         PRD_COMMENT_PARMNUM    =  7;
  444.         PRD_DRIVERS_PARMNUM    =  8;
  445.         PRD_TIMEOUT_PARMNUM    =  10;
  446.  
  447.       /*** structure for SplEnumPrinter ************************************/
  448. TYPE
  449.       PRINTERINFO=RECORD     /* prtin */
  450.          flType:ULONG;
  451.          pszComputerName:PChar;
  452.          pszPrintDestinationName:PChar;
  453.          pszDescription:PChar;
  454.          pszLocalName:PChar;
  455.       END;
  456.       PPRINTERINFO=^PRINTERINFO;
  457.  
  458.       /*** Flags for flType in  PRINTERINFO and SplEnumPrinter *************/
  459. CONST
  460.            SPL_PR_QUEUE          = $00000001; /* include queues */
  461.            SPL_PR_DIRECT_DEVICE  = $00000002; /* unattached devices */
  462.            SPL_PR_QUEUED_DEVICE  = $00000004; /* queued devices */
  463.            SPL_PR_LOCAL_ONLY     = $00000100; /* exclude remote queues */
  464.  
  465.  
  466. IMPORTS
  467.  
  468. FUNCTION SplQueryDevice(CONST pszComputerName,pszPrintDeviceName:CSTRING;
  469.                         ulLevel:ULONG;VAR pBuf;cbBuf:ULONG;
  470.                         VAR pcbNeeded:ULONG):LONG;
  471.          APIENTRY;           PMSPL index 381;
  472. FUNCTION SplQueryQueue(CONST pszComputerName,pszQueueName:CSTRING;
  473.                        ulLevel:ULONG;VAR pBuf;cbBuf:ULONG;
  474.                        VAR pcbNeeded:ULONG):LONG;
  475.          APIENTRY;           PMSPL index 397;
  476. FUNCTION SplEnumQueue(CONST pszComputerName:CSTRING;ulLevel:ULONG;VAR pBuf;
  477.                       cbBuf:ULONG;VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  478.                       VAR pReserved):LONG;
  479.          APIENTRY;           PMSPL index 399;
  480. {FUNCTION SplQpOpen(cData:LONG;VAR pQPDataIn:QPOPENDATA):HPROC;
  481.          APIENTRY;           PMSPL index ********************   ;
  482. FUNCTION SplQpPrint(ahproc:HPROC;CONST pszFileName:CSTRING):BOOL;
  483.          APIENTRY;           PMSPL index  *******************  ;
  484. FUNCTION SplQpClose(ahproc:HPROC):BOOL;
  485.          APIENTRY;           PMSPL index *******************   ;
  486. FUNCTION SplQpControl(ahproc:HPROC;cmdCode:LONG):BOOL;
  487.          APIENTRY;           PMSPL index *****************   ;
  488. FUNCTION SplQpQueryDt(VAR pcDataType:LONG;VAR paszDataTypes:CSTRING):BOOL;
  489.          APIENTRY;           PMSPL index *****************   ;
  490. FUNCTION SplQpInstall(ahwnd:HWND):BOOL;
  491.          APIENTRY;           PMSPL index ****************   ;
  492. FUNCTION SplQpQueryFlags(VAR pulFlags:ULONG):BOOL;
  493.          APIENTRY;           PMSPL index ****************   ;}
  494. FUNCTION SplQmOpen(CONST pszToken:CSTRING;lCount:LONG;
  495.                    VAR pqmdopData:QMOPENDATA):HSPL;
  496.          APIENTRY;           PMSPL index 301;
  497. FUNCTION SplQmStartDoc(ahspl:HSPL;CONST pszDocName:CSTRING):BOOL;
  498.          APIENTRY;           PMSPL index 302;
  499. FUNCTION SplQmWrite(ahspl:HSPL;lCount:LONG;VAR pData):BOOL;
  500.          APIENTRY;           PMSPL index 304;
  501. FUNCTION SplQmEndDoc(ahspl:HSPL):BOOL;
  502.          APIENTRY;           PMSPL index 303;
  503. FUNCTION SplQmClose(ahspl:HSPL):BOOL;
  504.          APIENTRY;           PMSPL index 306;
  505. FUNCTION SplQmAbort(ahspl:HSPL):BOOL;
  506.          APIENTRY;           PMSPL index 305;
  507. FUNCTION SplQmAbortDoc(ahspl:HSPL):BOOL;
  508.          APIENTRY;           PMSPL index 308;
  509. FUNCTION SplMessageBox(CONST pszLogAddr:CSTRING;fErrInfo,fErrData:ULONG;
  510.                        CONST pszText,pszCaption:CSTRING;
  511.                        idWindow,fStyle:ULONG):ULONG;
  512.          APIENTRY;           PMSPL index 307;
  513. FUNCTION PrtOpen(CONST pszDeviceName:CSTRING;VAR phDevice:HFILE;
  514.                  VAR pActionTaken:ULONG;cbFileSize,uFileAttr:ULONG;
  515.                  openFlag,openMode,reserved:ULONG):ULONG;
  516.          APIENTRY;           PMSPL index  370;
  517. FUNCTION PrtClose(hDevice:HFILE):ULONG;
  518.          APIENTRY;           PMSPL index  373;
  519. FUNCTION PrtWrite(hDevice:HFILE;VAR  pchData;cbData:ULONG;
  520.                   VAR pcbWritten:ULONG):ULONG;
  521.          APIENTRY;           PMSPL index  371;
  522. FUNCTION PrtDevIOCtl(VAR pData;VAR pParms;uFunction,uCategory:ULONG;
  523.                      hDevice:HFILE):ULONG;
  524.          APIENTRY;           PMSPL index  372;
  525. PROCEDURE PrtAbort(hDevice:HFILE);
  526.          APIENTRY;           PMSPL index  375;
  527. FUNCTION SplStdOpen(ahdc:HDC):BOOL;
  528.          APIENTRY;           PMSPL index  350;
  529. FUNCTION SplStdClose(ahdc:HDC):BOOL;
  530.          APIENTRY;           PMSPL index  351;
  531. FUNCTION SplStdStart(ahdc:HDC):BOOL;
  532.          APIENTRY;           PMSPL index  352;
  533. FUNCTION SplStdStop(ahdc:HDC):HSTD;
  534.          APIENTRY;           PMSPL index  353;
  535. FUNCTION SplStdDelete(hMetaFile:HSTD):BOOL;
  536.          APIENTRY;           PMSPL index  354;
  537. FUNCTION SplStdGetBits(hMetaFile:HSTD;offData,cbData:LONG;VAR pchData):BOOL;
  538.          APIENTRY;           PMSPL index  355;
  539. FUNCTION SplStdQueryLength(hMetaFile:HSTD):LONG;
  540.          APIENTRY;           PMSPL index  356;
  541. FUNCTION SplCreateDevice(CONST pszComputerName:CSTRING;ulLevel:ULONG;
  542.                          VAR pBuf;cbBuf:ULONG):SPLERR;
  543.          APIENTRY;           PMSPL index  401;
  544. FUNCTION SplControlDevice(CONST pszComputerName,pszPortName:CSTRING;
  545.                           ulControl:ULONG):SPLERR;
  546.          APIENTRY;           PMSPL index  380;
  547. FUNCTION SplDeleteDevice(CONST pszComputerName,pszPrintDeviceName:CSTRING):SPLERR;
  548.          APIENTRY;           PMSPL index  403;
  549. FUNCTION SplEnumDevice(CONST pszComputerName:CSTRING;ulLevel:ULONG;VAR pBuf;
  550.                        cbBuf:ULONG;VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  551.                        VAR pReserved):SPLERR;
  552.          APIENTRY;           PMSPL index  382;
  553. FUNCTION SplSetDevice(CONST pszComputerName,pszPrintDeviceName:CSTRING;
  554.                       ulLevel:ULONG;VAR pBuf;cbBuf,ulParmNum:ULONG):SPLERR;
  555.          APIENTRY;           PMSPL index  402;
  556. FUNCTION SplReleaseJob(CONST pszComputerName,pszQueueName:CSTRING;
  557.                        ulJob:ULONG):SPLERR;
  558.          APIENTRY;           PMSPL index  384;
  559. FUNCTION SplDeleteJob(CONST pszComputerName,pszQueueName:CSTRING;ulJob:ULONG):SPLERR;
  560.          APIENTRY;           PMSPL index  386;
  561. FUNCTION SplEnumJob(CONST pszComputerName,pszQueueName:CSTRING;ulLevel:ULONG;
  562.                     VAR pBuf;cbBuf:ULONG;
  563.                     VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  564.                     VAR  pReserved):SPLERR;
  565.          APIENTRY;           PMSPL index 392;
  566. FUNCTION SplQueryJob(CONST pszComputerName,pszQueueName:CSTRING;
  567.                      ulJob,ulLevel:ULONG;VAR pBuf;cbBuf:ULONG;
  568.                      VAR pcbNeeded:ULONG):SPLERR;
  569.          APIENTRY;           PMSPL index 390;
  570. FUNCTION SplHoldJob(CONST pszComputerName,pszQueueName:CSTRING;ulJob:ULONG):SPLERR;
  571.          APIENTRY;           PMSPL index 385;
  572. FUNCTION SplSetJob(CONST pszComputerName,pszQueueName:CSTRING;ulJob,ulLevel:ULONG;
  573.                    VAR pBuf;cbBuf,ulParmNum:ULONG):SPLERR;
  574.          APIENTRY;           PMSPL index 391;
  575. FUNCTION SplCreateQueue(CONST pszComputerName:CSTRING;ulLevel:ULONG;VAR pBuf;
  576.                         cbBuf:ULONG):SPLERR;
  577.          APIENTRY;           PMSPL index 393;
  578. FUNCTION SplReleaseQueue(CONST pszComputerName,pszQueueName:CSTRING):SPLERR;
  579.          APIENTRY;           PMSPL index 395;
  580. FUNCTION SplDeleteQueue(CONST pszComputerName,pszQueueName:CSTRING):SPLERR;
  581.          APIENTRY;           PMSPL index 396;
  582. FUNCTION SplHoldQueue(CONST pszComputerName,pszQueueName:CSTRING):SPLERR;
  583.          APIENTRY;           PMSPL index 394;
  584. FUNCTION SplPurgeQueue(CONST pszComputerName,pszQueueName:CSTRING):SPLERR;
  585.          APIENTRY;           PMSPL index 404;
  586. FUNCTION SplSetQueue(CONST pszComputerName,pszQueueName:CSTRING;ulLevel:ULONG;
  587.                      VAR pBuf;cbBuf,ulParmNum:ULONG):SPLERR;
  588.          APIENTRY;           PMSPL index 398;
  589. FUNCTION SplEnumDriver(CONST pszComputerName:CSTRING;ulLevel:ULONG;VAR pBuf;
  590.                        cbBuf:ULONG;VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  591.                        VAR pReserved):SPLERR;
  592.          APIENTRY;           PMSPL index 406;
  593. FUNCTION SplEnumPort(CONST pszComputerName:CSTRING;ulLevel:ULONG;VAR pBuf;
  594.                      cbBuf:ULONG;VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  595.                      VAR pReserved):SPLERR;
  596.          APIENTRY;           PMSPL index 408;
  597. FUNCTION SplEnumQueueProcessor(CONST pszComputerName:CSTRING;ulLevel:ULONG;
  598.                                VAR pBuf;cbBuf:ULONG;
  599.                                VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  600.                                VAR pReserved):SPLERR;
  601.          APIENTRY;           PMSPL index 407;
  602. FUNCTION SplEnumPrinter(CONST pszComputerName:CSTRING;uLevel,flType:ULONG;
  603.                         VAR pBuf;cbbuf:ULONG;
  604.                         VAR pcReturned,pcTotal,pcbNeeded:ULONG;
  605.                         VAR pReserved):SPLERR;
  606.          APIENTRY;           PMSPL index 441;
  607. FUNCTION SplCopyJob(CONST pszSrcComputerName,pszSrcQueueName:CSTRING;
  608.                     ulSrcJob:ULONG;CONST pszTrgComputerName,
  609.                     pszTrgQueueName:CSTRING;VAR pulTrgJob:ULONG):SPLERR;
  610.          APIENTRY;           PMSPL index 442;
  611. END; {IMPORTS}
  612.  
  613.  
  614.  
  615. IMPLEMENTATION
  616.  
  617.  
  618. BEGIN
  619. END.
  620.