home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / PMSPL.H < prev    next >
C/C++ Source or Header  |  1999-04-30  |  51KB  |  1,313 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: PMSPL.H
  4. *
  5. * OS/2 Presentation Manager Spooler constants, types and function declarations
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1993
  8. *
  9. * ===========================================================================
  10. *
  11. * The following symbols are used in this file for conditional sections.
  12. *
  13. *   #define:                To include:
  14. *
  15. *   INCL_SPLERRORS          defined if INCL_ERRORS defined
  16. *   INCL_SPLFSE             file system emulation calls
  17. *   INCL_SPLDOSPRINT        DosPrint APIs
  18. *   INCL_SPLBIDI            bidirectional print defines in pmsplb.h
  19. *
  20. * ===========================================================================
  21. *
  22. * Comments at the end of each typedef line give the name tags used in
  23. * the assembler include version of this file.
  24. *
  25. * The assembler include version of this file excludes lines between XLATOFF
  26. * and XLATON comments.
  27. *
  28. \***************************************************************************/
  29.  
  30. /* XLATOFF */
  31. #if __IBMC__ || __IBMCPP__
  32.    #pragma info( none )
  33.    #ifndef __CHKHDR__
  34.       #pragma info( none )
  35.    #endif
  36.    #pragma info( restore )
  37. #endif
  38. #ifdef __cplusplus
  39.       extern "C" {
  40. #endif
  41. /* XLATON */
  42.  
  43. /* XLATOFF */
  44. #ifndef PMSPL_INCLUDED
  45.    /* XLATON */
  46.    #define PMSPL_INCLUDED
  47.    
  48.    
  49.    
  50.    /* XLATOFF */
  51.    #define DosPrintDestControl       SplControlDevice
  52.    #define DosPrintDestGetInfo       SplQueryDevice
  53.    #define DosPrintDestEnum          SplEnumDevice
  54.    #define DosPrintJobContinue       SplReleaseJob
  55.    #define DosPrintJobPause          SplHoldJob
  56.    #define DosPrintJobDel            SplDeleteJob
  57.    #define DosPrintJobGetInfo        SplQueryJob
  58.    #define DosPrintJobSetInfo        SplSetJob
  59.    #define DosPrintJobEnum           SplEnumJob
  60.    #define DosPrintQAdd              SplCreateQueue
  61.    #define DosPrintQPause            SplHoldQueue
  62.    #define DosPrintQContinue         SplReleaseQueue
  63.    #define DosPrintQDel              SplDeleteQueue
  64.    #define DosPrintQGetInfo          SplQueryQueue
  65.    #define DosPrintQSetInfo          SplSetQueue
  66.    #define DosPrintQEnum             SplEnumQueue
  67.    #define DosPrintDestAdd           SplCreateDevice
  68.    #define DosPrintDestSetInfo       SplSetDevice
  69.    #define DosPrintDestDel           SplDeleteDevice
  70.    #define DosPrintQPurge            SplPurgeQueue
  71.    #define DosPrintDriverEnum        SplEnumDriver
  72.    #define DosPrintQProcessorEnum    SplEnumQueueProcessor
  73.    #define DosPrintPortEnum          SplEnumPort
  74.    /* XLATON */
  75.    
  76.    /*** if error definitions are required then allow Spooler errors ********/
  77.    #ifdef INCL_ERRORS
  78.       #define INCL_SPLERRORS
  79.    #endif /* INCL_ERRORS */
  80.    
  81.    /*** Names of various OS2SYS.INI spooler variables **********************/
  82.    
  83.    #define SPL_INI_SPOOLER         "PM_SPOOLER"
  84.    #define SPL_INI_QUEUE           "PM_SPOOLER_QUEUE"
  85.    #define SPL_INI_PRINTER         "PM_SPOOLER_PRINTER"
  86.    #define SPL_INI_PRINTERDESCR    "PM_SPOOLER_PRINTER_DESCR"
  87.    #define SPL_INI_QUEUEDESCR      "PM_SPOOLER_QUEUE_DESCR"
  88.    #define SPL_INI_QUEUEDD         "PM_SPOOLER_QUEUE_DD"
  89.    #define SPL_INI_QUEUEDDDATA     "PM_SPOOLER_QUEUE_DDDATA"
  90.    
  91.    /*** General SPL return values ******************************************/
  92.    #define SPL_ERROR     0L
  93.    #define SPL_OK        1L
  94.    
  95.    /*** handle to a spool file *********************************************/
  96.    typedef LHANDLE HSPL;               /* hspl */
  97.    
  98.    /* Used in recording of PM_Q_STD data via SplStdxxx calls */
  99.    typedef LHANDLE HSTD;               /* hstd */
  100.    typedef HSTD *PHSTD;
  101.    
  102.    /*** spooler manager open data ******************************************/
  103.    typedef PSZ *PQMOPENDATA;       /* pqmdop */
  104.    
  105.    
  106.    
  107.    
  108.    /*** Spooler Queue Processor interface **********************************/
  109.    
  110.    /* control codes for SplQpControl */
  111.    #define SPLC_ABORT     1
  112.    #define SPLC_PAUSE     2
  113.    #define SPLC_CONTINUE  3
  114.    
  115.    /* flag defines for optional SplQpQueryFlags           */
  116.    /* set this to allow spooler to bypass Queue Processor */
  117.    /* for PM_Q_RAW jobs.  This allows print while a job   */
  118.    /* is still spooling.                                  */
  119.    #define QP_RAWDATA_BYPASS 0x00000001L
  120.    /* set this if queue driver can print separator pages  */
  121.    #define QP_PRINT_SEPARATOR_PAGE  0x00000002
  122.    
  123.    /*** handle to a spooler queue processor ********************************/
  124.    typedef LHANDLE HPROC;              /* hproc */
  125.    
  126.    /*** spooler processor open data ****************************************/
  127.    typedef PSZ *PQPOPENDATA;       /* pqpdop */
  128.    
  129.    /*** Spooler Queue Processor interface **********************************/
  130.    /* API's exported by Queue Processor DLL's                              */
  131.    HPROC EXPENTRY SplQpOpen(LONG        cData,
  132.    PQPOPENDATA pQPDataIn);
  133.    
  134.    BOOL  EXPENTRY SplQpPrint(HPROC hproc,
  135.    PSZ   pszFileName);
  136.    
  137.    BOOL  EXPENTRY SplQpClose(HPROC hproc);
  138.    
  139.    BOOL  EXPENTRY SplQpControl(HPROC hproc,
  140.    LONG  cmdCode);
  141.    
  142.    BOOL  EXPENTRY SplQpQueryDt(PLONG    pcDataType,
  143.    PSZ *paszDataTypes);
  144.    
  145.    BOOL  EXPENTRY SplQpInstall(HWND hwnd);
  146.    
  147.    /* The next API is optionally exported by Queue Processors */
  148.    /* The flags may be set to QP_RAWDATA_BYPASS to allow the  */
  149.    /* spooler to print the job while spooling, bypassing this */
  150.    /* queue processor                                         */
  151.    
  152.    BOOL  EXPENTRY SplQpQueryFlags(PULONG pulFlags);
  153.    
  154.    BOOL  APIENTRY SplQpPrintSeparator( HPROC hproc,
  155.                                       PBYTE pBuf,
  156.                                       ULONG cbBuf,
  157.                                       ULONG ulFlags );
  158.    
  159.    /*************************************************************************
  160.    * There are two definitions governing the QpOpen data block :-
  161.    * 1) the original  QPOPENDATA, which is used as
  162.    *    an array of PSZ and has a list of associated QPDAT defines
  163.    *    for accessing elements of the array. This has been extended
  164.    *    from 6 to 12 elements. The last element is a numeric type
  165.    *    and cannot satisfactorily be accessed via array indexing.
  166.    *
  167.    * 2) a new SQPOPENDATA structure (see below)
  168.    *
  169.    * The old defn has been retained to support existing QProcs.
  170.    *
  171.    *************************************************************************/
  172.    
  173.    /*** Definition for elements within the PQPOPENDATA block ***************/
  174.    #define QPDAT_ADDRESS     0
  175.    #define QPDAT_DRIVER_NAME 1
  176.    #define QPDAT_DRIVER_DATA 2
  177.    #define QPDAT_DATA_TYPE   3
  178.    #define QPDAT_COMMENT     4
  179.    #define QPDAT_PROC_PARAMS 5
  180.    #define QPDAT_SPL_PARAMS  6      /* SplQmOpen Spooler params **       */
  181.    #define QPDAT_NET_PARAMS  7      /* SplQmOpen Network params **       */
  182.    #define QPDAT_DOC_NAME    8      /* SplQmStartDoc name       **       */
  183.    #define QPDAT_QUEUE_NAME  9      /* Queue name for job       **       */
  184.    #define QPDAT_TOKEN      10      /* SplQmOpen token name     **       */
  185.    #define QPDAT_JOBID      11      /* SQM job identity         **       */
  186.    
  187.    typedef struct _SQPOPENDATA       /* SplQpOpenData */
  188.    {
  189.       PSZ       pszLogAddress;     /*                                   */
  190.       PSZ       pszDriverName;     /*                                   */
  191.       PDRIVDATA pdriv;             /*                                   */
  192.       PSZ       pszDataType;       /*                                   */
  193.       PSZ       pszComment;        /*                                   */
  194.       PSZ       pszProcParams;     /*                                   */
  195.       PSZ       pszSpoolParams;    /*                                   */
  196.       PSZ       pszNetworkParams;  /*                                   */
  197.       PSZ       pszDocName;        /*                                   */
  198.       PSZ       pszQueueName;      /*                                   */
  199.       PSZ       pszToken;          /*                                   */
  200.       USHORT    idJobId;           /*                                   */
  201.    } SQPOPENDATA;                   /*                                   */
  202.    typedef SQPOPENDATA *PSQPOPENDATA; /* ptr to SQPOPENDATA */
  203.    
  204.    
  205.    /*************************************************************************
  206.    *** Error information and return codes
  207.    *************************************************************************/
  208.    
  209.    /* Error information for SplMessageBox */
  210.    #define SPLINFO_QPERROR       0x0001
  211.    #define SPLINFO_DDERROR       0x0002
  212.    #define SPLINFO_SPLERROR      0x0004
  213.    #define SPLINFO_OTHERERROR    0x0080
  214.    #define SPLINFO_INFORMATION   0x0100
  215.    #define SPLINFO_WARNING       0x0200
  216.    #define SPLINFO_ERROR         0x0400
  217.    #define SPLINFO_SEVERE        0x0800
  218.    #define SPLINFO_USERINTREQD   0x1000
  219.    
  220.    /* Error Data for SplMessageBox */
  221.    #define SPLDATA_PRINTERJAM    0x0001
  222.    #define SPLDATA_FORMCHGREQD   0x0002
  223.    #define SPLDATA_CARTCHGREQD   0x0004
  224.    #define SPLDATA_PENCHGREQD    0x0008
  225.    #define SPLDATA_DATAERROR     0x0010
  226.    #define SPLDATA_UNEXPECTERROR 0x0020
  227.    #define SPLDATA_OTHER         0x8000
  228.    
  229.    /* return code for fSplStdQueryLength */
  230.    #define SSQL_ERROR (-1L)
  231.    
  232.    #ifdef INCL_SPLERRORS
  233.       #include <pmerr.h>
  234.    #endif /* INCL_SPLERRORS */
  235.    
  236.    typedef unsigned long SPLERR;
  237.    
  238.    #ifdef INCL_SPLDOSPRINT
  239.       /* length for character arrays in structs (excluding zero terminator) */
  240.       #define CNLEN           15             /* Computer name length      */
  241.       #define UNLEN           20             /* Maximum user name length  */
  242.       #define QNLEN           12             /* Queue name maximum length */
  243.       #define PDLEN            8             /* Print destination length  */
  244.       #define DTLEN            9             /* Spool file data type      */
  245.       /* e.g. PM_Q_STD,PM_Q_RAW    */
  246.       #define QP_DATATYPE_SIZE        15     /* returned by SplQpQueryDt  */
  247.       #define DRIV_DEVICENAME_SIZE    31     /* see DRIVDATA struc        */
  248.       #define DRIV_NAME_SIZE           8     /* name of device driver     */
  249.       #define PRINTERNAME_SIZE        32     /* max printer name length   */
  250.       #define FORMNAME_SIZE           31     /* max form name length      */
  251.       #define MAXCOMMENTSZ            48     /* queue comment length      */
  252.       
  253.       typedef struct _PRJINFO      /* prj1 */
  254.       {
  255.          USHORT  uJobId;
  256.          CHAR    szUserName[UNLEN+1];
  257.          CHAR    pad_1;
  258.          CHAR    szNotifyName[CNLEN+1];
  259.          CHAR    szDataType[DTLEN+1];
  260.          PSZ     pszParms;
  261.          USHORT  uPosition;
  262.          USHORT  fsStatus;
  263.          PSZ     pszStatus;
  264.          ULONG   ulSubmitted;
  265.          ULONG   ulSize;
  266.          PSZ     pszComment;
  267.       } PRJINFO;
  268.       typedef PRJINFO *PPRJINFO;
  269.       typedef PRJINFO *NPPRJINFO;
  270.       
  271.       typedef struct _PRJINFO2      /* prj2 */
  272.       {
  273.          USHORT  uJobId;
  274.          USHORT  uPriority;
  275.          PSZ     pszUserName;
  276.          USHORT  uPosition;
  277.          USHORT  fsStatus;
  278.          ULONG   ulSubmitted;
  279.          ULONG   ulSize;
  280.          PSZ     pszComment;
  281.          PSZ     pszDocument;
  282.       } PRJINFO2;
  283.       typedef PRJINFO2 *PPRJINFO2;
  284.       typedef PRJINFO2 *NPPRJINFO2;
  285.       
  286.       typedef struct _PRJINFO3      /* prj */
  287.       {
  288.          USHORT  uJobId;
  289.          USHORT  uPriority;
  290.          PSZ     pszUserName;
  291.          USHORT  uPosition;
  292.          USHORT  fsStatus;
  293.          ULONG   ulSubmitted;
  294.          ULONG   ulSize;
  295.          PSZ     pszComment;
  296.          PSZ     pszDocument;
  297.          PSZ     pszNotifyName;
  298.          PSZ     pszDataType;
  299.          PSZ     pszParms;
  300.          PSZ     pszStatus;
  301.          PSZ     pszQueue;
  302.          PSZ     pszQProcName;
  303.          PSZ     pszQProcParms;
  304.          PSZ     pszDriverName;
  305.          PDRIVDATA pDriverData;
  306.          PSZ     pszPrinterName;
  307.       } PRJINFO3;
  308.       typedef PRJINFO3 *PPRJINFO3;
  309.       typedef PRJINFO3 *NPPRJINFO3;
  310.       
  311.       typedef struct _PRJINFO4      /* prj4 */
  312.       {
  313.          USHORT uJobId;
  314.          USHORT uPriority;
  315.          PSZ    pszUserName;
  316.          USHORT uPosition;
  317.          USHORT fsStatus;
  318.          ULONG  ulSubmitted;
  319.          ULONG  ulSize;
  320.          PSZ    pszComment;
  321.          PSZ    pszDocument;
  322.          PSZ    pszSpoolFileName;
  323.          PSZ    pszPortName;
  324.          PSZ    pszStatus;
  325.          ULONG  ulPagesSpooled;
  326.          ULONG  ulPagesSent;
  327.          ULONG  ulPagesPrinted;
  328.          ULONG  ulTimePrinted;
  329.          ULONG  ulExtendJobStatus;
  330.          ULONG  ulStartPage;
  331.          ULONG  ulEndPage;
  332.       } PRJINFO4;
  333.       typedef PRJINFO4 *PPRJINFO4;
  334.       typedef PRJINFO4 *NPPRJINFO4;
  335.       
  336.       typedef struct _PRDINFO       /* prd1 */
  337.       {
  338.          CHAR    szName[PDLEN+1];
  339.          CHAR    szUserName[UNLEN+1];
  340.          USHORT  uJobId;
  341.          USHORT  fsStatus;
  342.          PSZ     pszStatus;
  343.          USHORT  time;
  344.       } PRDINFO;
  345.       typedef PRDINFO *PPRDINFO;
  346.       typedef PRDINFO *NPPRDINFO;
  347.       
  348.       typedef struct _PRDINFO3      /* prd */
  349.       {
  350.          PSZ     pszPrinterName;
  351.          PSZ     pszUserName;
  352.          PSZ     pszLogAddr;
  353.          USHORT  uJobId;
  354.          USHORT  fsStatus;
  355.          PSZ     pszStatus;
  356.          PSZ     pszComment;
  357.          PSZ     pszDrivers;
  358.          USHORT  time;
  359.          USHORT  usTimeOut;
  360.       } PRDINFO3;
  361.       typedef PRDINFO3 *PPRDINFO3;
  362.       typedef PRDINFO3 *NPPRDINFO3;
  363.       
  364.       typedef struct _PRQINFO      /* prq1 */
  365.       {
  366.          CHAR    szName[QNLEN+1];
  367.          CHAR    pad_1;
  368.          USHORT  uPriority;
  369.          USHORT  uStartTime;
  370.          USHORT  uUntilTime;
  371.          PSZ     pszSepFile;
  372.          PSZ     pszPrProc;
  373.          PSZ     pszDestinations;
  374.          PSZ     pszParms;
  375.          PSZ     pszComment;
  376.          USHORT  fsStatus;
  377.          USHORT  cJobs;
  378.       } PRQINFO;
  379.       typedef PRQINFO *PPRQINFO;
  380.       typedef PRQINFO *NPPRQINFO;
  381.       
  382.       typedef struct _PRQINFO3     /* prq */
  383.       {
  384.          PSZ     pszName;
  385.          USHORT  uPriority;
  386.          USHORT  uStartTime;
  387.          USHORT  uUntilTime;
  388.          USHORT  fsType;
  389.          PSZ     pszSepFile;
  390.          PSZ     pszPrProc;
  391.          PSZ     pszParms;
  392.          PSZ     pszComment;
  393.          USHORT  fsStatus;
  394.          USHORT  cJobs;
  395.          PSZ     pszPrinters;
  396.          PSZ     pszDriverName;
  397.          PDRIVDATA pDriverData;
  398.       } PRQINFO3;
  399.       typedef PRQINFO3 *PPRQINFO3;
  400.       typedef PRQINFO3 *NPPRQINFO3;
  401.       
  402.       typedef struct _PRQINFO6     /* prq6 */
  403.       {
  404.          PSZ     pszName;
  405.          USHORT  uPriority;
  406.          USHORT  uStartTime;
  407.          USHORT  uUntilTime;
  408.          USHORT  fsType;
  409.          PSZ     pszSepFile;
  410.          PSZ     pszPrProc;
  411.          PSZ     pszParms;
  412.          PSZ     pszComment;
  413.          USHORT  fsStatus;
  414.          USHORT  cJobs;
  415.          PSZ     pszPrinters;
  416.          PSZ     pszDriverName;
  417.          PDRIVDATA pDriverData;
  418.          PSZ     pszRemoteComputerName;
  419.          PSZ     pszRemoteQueueName;
  420.       } PRQINFO6;
  421.       typedef PRQINFO6 *PPRQINFO6;
  422.       typedef PRQINFO6 *NPPRQINFO6;
  423.       
  424.       /*
  425.       * structure for DosPrintJobGetId
  426.       */
  427.       typedef struct _PRIDINFO     /* prjid */
  428.       {
  429.          USHORT  uJobId;
  430.          CHAR    szComputerName[CNLEN + 1];
  431.          CHAR    szQueueName[QNLEN+1];
  432.          CHAR    pad_1;
  433.       } PRIDINFO;
  434.       typedef PRIDINFO *PPRIDINFO;
  435.       typedef PRIDINFO *NPPRIDINFO;
  436.       
  437.       /*
  438.       * structure returned by SplQmGetJobID
  439.       */
  440.       typedef struct _QMJOBINFO   /* qmjob */
  441.       {
  442.          ULONG ulJobID;
  443.          PSZ   pszComputerName;
  444.          PSZ   pszQueueName;
  445.       } QMJOBINFO;
  446.       typedef QMJOBINFO *PQMJOBINFO;
  447.       
  448.       /*
  449.       * structure for DosPrintDriverEnum
  450.       */
  451.       typedef struct _PRDRIVINFO    /* prdid */
  452.       {
  453.          CHAR    szDrivName[DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE+1];
  454.       } PRDRIVINFO;
  455.       typedef PRDRIVINFO *PPRDRIVINFO;
  456.       typedef PRDRIVINFO *NPPRDRIVINFO;
  457.       
  458.       /*
  459.       * structures for SplQueryDriver/SplSetDriver level 2
  460.       */
  461.       typedef struct _PRDRIVINFO2    /* prdid2 */
  462.       {
  463.          PSZ     pszPrinterName;
  464.          PSZ     pszDriverName;
  465.          USHORT  usFlags;
  466.          USHORT  cDriverProps; /* Count of DRIVPROPS array that follows */
  467.       } PRDRIVINFO2;
  468.       typedef PRDRIVINFO2 *PPRDRIVINFO2;
  469.       
  470.       typedef struct _DRIVPROPS      /* dprop */
  471.       {
  472.          PSZ     pszKeyName;
  473.          ULONG   cbBuf;
  474.          PVOID   pBuf;
  475.       } DRIVPROPS;
  476.       typedef DRIVPROPS *PDRIVPROPS;
  477.       typedef DRIVPROPS *NPDRIVPROPS;
  478.       
  479.       /*
  480.       * structure for DosPrintQProcessorEnum
  481.       */
  482.       typedef struct _PRQPROCINFO    /* prqp */
  483.       {
  484.          CHAR    szQProcName[QNLEN+1];
  485.       } PRQPROCINFO;
  486.       typedef PRQPROCINFO *PPRQPROCINFO;
  487.       typedef PRQPROCINFO *NPPRQPROCINFO;
  488.       
  489.       /*
  490.       * structure for DosPrintPortEnum Level 0
  491.       */
  492.       typedef struct _PRPORTINFO    /* prpo */
  493.       {
  494.          CHAR    szPortName[PDLEN+1];
  495.       } PRPORTINFO;
  496.       typedef PRPORTINFO *PPRPORTINFO;
  497.       typedef PRPORTINFO *NPPRPORTINFO;
  498.       
  499.       /*
  500.       * structure for DosPrintPortEnum Level 1
  501.       */
  502.       typedef struct _PRPORTINFO1    /* prpo1 */
  503.       {
  504.          PSZ     pszPortName ;
  505.          PSZ     pszPortDriverName ;
  506.          PSZ     pszPortDriverPathName ;
  507.       } PRPORTINFO1;
  508.       typedef PRPORTINFO1 *PPRPORTINFO1;
  509.       typedef PRPORTINFO1 *NPPRPORTINFO1;
  510.       
  511.       /*
  512.       * structure for SplQueryPort/SplEnumPort/SplSetPort Level 2
  513.       */
  514.       typedef struct _PRPORTINFO2   /* prpo2 */
  515.       {
  516.          PSZ     pszPortName ;
  517.          PSZ     pszPortDriver ;
  518.          PSZ     pszProtocolConverter ;
  519.          ULONG   ulReserved;
  520.          ULONG   ulMode ;
  521.          ULONG   ulPriority ;
  522.       } PRPORTINFO2;
  523.       typedef PRPORTINFO2 *PPRPORTINFO2;
  524.       
  525.       /*** Values for ulMode in PRPORTINFO2  *************/
  526.       #define PRPORT_AUTODETECT                1
  527.       #define PRPORT_DISABLE_BIDI              2
  528.       #define PRPORT_ENABLE_BIDI               3
  529.       
  530.       /*** ulVersion values for SplCreatePort ******************************/
  531.       #define SPLPORT_VERSION_REGULAR      0
  532.       #define SPLPORT_VERSION_VIRTUAL      1
  533.       
  534.       /*** Values for parmnum in SplSetPort  *************/
  535.       #define PRPO_PORT_DRIVER                 1
  536.       #define PRPO_PROTOCOL_CNV                2
  537.       #define PRPO_MODE                        3
  538.       #define PRPO_PRIORITY                    4
  539.       
  540.       /*** Values for parmnum in DosPrintQSetInfo/SplSetQueue  *************/
  541.       #define PRQ_PRIORITY_PARMNUM            2
  542.       #define PRQ_STARTTIME_PARMNUM           3
  543.       #define PRQ_UNTILTIME_PARMNUM           4
  544.       #define PRQ_SEPARATOR_PARMNUM           5
  545.       #define PRQ_PROCESSOR_PARMNUM           6
  546.       #define PRQ_DESTINATIONS_PARMNUM        7
  547.       #define PRQ_PARMS_PARMNUM               8
  548.       #define PRQ_COMMENT_PARMNUM             9
  549.       #define PRQ_TYPE_PARMNUM               10
  550.       #define PRQ_PRINTERS_PARMNUM           12
  551.       #define PRQ_DRIVERNAME_PARMNUM         13
  552.       #define PRQ_DRIVERDATA_PARMNUM         14
  553.       #define PRQ_REMOTE_COMPUTER_PARMNUM    15
  554.       #define PRQ_REMOTE_QUEUE_PARMNUM       16
  555.       #define PRQ_MAXPARMNUM                 16
  556.       
  557.       /*** Print Queue Priority ********************************************/
  558.       #define PRQ_MAX_PRIORITY                1        /* highest priority */
  559.       #define PRQ_DEF_PRIORITY                5
  560.       #define PRQ_MIN_PRIORITY                9        /* lowest priority  */
  561.       #define PRQ_NO_PRIORITY                 0
  562.       
  563.       /*** Print queue status bitmask and values for level 1 ***************/
  564.       #define PRQ_STATUS_MASK                 3
  565.       #define PRQ_ACTIVE                      0
  566.       #define PRQ_PAUSED                      1        /* queue is held    */
  567.       #define PRQ_ERROR                       2
  568.       #define PRQ_PENDING                     3        /* pending deletion */
  569.       
  570.       /*** Print queue status bits for level 3 *****************************/
  571.       #define PRQ3_PAUSED                   0x1        /* queue is held    */
  572.       #define PRQ3_PENDING                  0x2        /* pending deletion */
  573.       
  574.       /*** Print queue type bits for level 3 *******************************/
  575.       #define PRQ3_TYPE_RAW         0x0001 /* spools printer-specific data */
  576.       #define PRQ3_TYPE_BYPASS      0x0002 /* allow print while spooling   */
  577.       #define PRQ3_TYPE_APPDEFAULT  0x0004 /* set for Application default Q*/
  578.       
  579.       /*** Values for parmnum in DosPrintJobSetInfo/SplSetJob **************/
  580.       #define PRJ_NOTIFYNAME_PARMNUM        3
  581.       #define PRJ_DATATYPE_PARMNUM          4
  582.       #define PRJ_PARMS_PARMNUM             5
  583.       #define PRJ_POSITION_PARMNUM          6
  584.       #define PRJ_JOBFILEINUSE_PARMNUM      7
  585.       #define PRJ_COMMENT_PARMNUM          11
  586.       #define PRJ_DOCUMENT_PARMNUM         12
  587.       #define PRJ_STATUSCOMMENT_PARMNUM    13
  588.       #define PRJ_PRIORITY_PARMNUM         14
  589.       #define PRJ_PROCPARMS_PARMNUM        16
  590.       #define PRJ_DRIVERDATA_PARMNUM       18
  591.       #define PRJ_SPOOLFILENAME_PARMNUM    19
  592.       #define PRJ_PAGESSPOOLED_PARMNUM     20
  593.       #define PRJ_PAGESSENT_PARMNUM        21
  594.       #define PRJ_PAGESPRINTED_PARMNUM     22
  595.       #define PRJ_TIMEPRINTED_PARMNUM      23
  596.       #define PRJ_EXTENDSTATUS_PARMNUM     24
  597.       #define PRJ_STARTPAGE_PARMNUM        25
  598.       #define PRJ_ENDPAGE_PARMNUM          26
  599.       #define PRJ_MAXPARMNUM               26
  600.       
  601.       /*** Bitmap masks for status field of PRJINFO. ***********************/
  602.       /* 2-7 bits also used in device status */
  603.       #define PRJ_QSTATUS      0x0003      /* Bits 0,1  */
  604.       #define PRJ_DEVSTATUS    0x0ffc      /* 2-11 bits */
  605.       #define PRJ_COMPLETE     0x0004      /* Bit 2     */
  606.       #define PRJ_INTERV       0x0008      /* Bit 3     */
  607.       #define PRJ_ERROR        0x0010      /* Bit 4     */
  608.       #define PRJ_DESTOFFLINE  0x0020      /* Bit 5     */
  609.       #define PRJ_DESTPAUSED   0x0040      /* Bit 6     */
  610.       #define PRJ_NOTIFY       0x0080      /* Bit 7     */
  611.       #define PRJ_DESTNOPAPER  0x0100      /* Bit 8     */
  612.       #define PRJ_DESTFORMCHG  0x0200      /* BIT 9     */
  613.       #define PRJ_DESTCRTCHG   0x0400      /* BIT 10    */
  614.       #define PRJ_DESTPENCHG   0x0800      /* BIT 11    */
  615.       #define PRJ_JOBFILEINUSE 0x4000      /* Bit 14    */
  616.       #define PRJ_DELETED      0x8000      /* Bit 15    */
  617.       
  618.       /*** Bitmap masks for ulExtendedJobStatus field of PRJINFO4. *********/
  619.       #define PRJ4_INPRINTER      0x00000001      /* Bit 0     */
  620.       #define PRJ4_STACKED        0x00000002      /* Bit 1     */
  621.       #define PRJ4_HELDINPRINTER  0x00000004      /* Bit 2     */
  622.       #define PRJ4_JOBSTARTED     0x00000008      /* Bit 3     */
  623.       
  624.       /*** Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO. ********/
  625.       #define PRJ_QS_QUEUED                 0
  626.       #define PRJ_QS_PAUSED                 1
  627.       #define PRJ_QS_SPOOLING               2
  628.       #define PRJ_QS_PRINTING               3
  629.       
  630.       /*** Print Job Priority **********************************************/
  631.       #define PRJ_MAX_PRIORITY             99          /* lowest priority  */
  632.       #define PRJ_MIN_PRIORITY              1          /* highest priority */
  633.       #define PRJ_NO_PRIORITY               0
  634.       
  635.       
  636.       /*** Bitmap masks for status field of PRDINFO. ***********************/
  637.       #define PRD_STATUS_MASK       0x0003      /* Bits 0,1 */
  638.       #define PRD_DEVSTATUS         0x0ffc      /* 2-11 bits */
  639.       
  640.       /*** Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO. ****/
  641.       #define PRD_ACTIVE                 0
  642.       #define PRD_PAUSED                 1
  643.       
  644.       /*** Control codes used in DosPrintDestControl/SplControlDevice ******/
  645.       #define PRD_DELETE                    0
  646.       #define PRD_PAUSE                     1
  647.       #define PRD_CONT                      2
  648.       #define PRD_RESTART                   3
  649.       
  650.       /*** Values for parmnum in DosPrintDestSetInfo/SplSetDevice **********/
  651.       #define PRD_LOGADDR_PARMNUM      3
  652.       #define PRD_COMMENT_PARMNUM      7
  653.       #define PRD_DRIVERS_PARMNUM      8
  654.       #define PRD_TIMEOUT_PARMNUM      10
  655.       
  656.       /*** structure for SplEnumPrinter ************************************/
  657.       typedef struct _PRINTERINFO     /* prtin */
  658.       {
  659.          ULONG   flType;
  660.          PSZ     pszComputerName;
  661.          PSZ     pszPrintDestinationName;
  662.          PSZ     pszDescription;
  663.          PSZ     pszLocalName;
  664.       } PRINTERINFO ;
  665.       typedef PRINTERINFO *PPRINTERINFO;
  666.       
  667.       /*** Flags for flType in  PRINTERINFO and SplEnumPrinter *************/
  668.       #define    SPL_PR_QUEUE            0x00000001 /* include queues */
  669.       #define    SPL_PR_DIRECT_DEVICE    0x00000002 /* unattached devices */
  670.       #define    SPL_PR_QUEUED_DEVICE    0x00000004 /* queued devices */
  671.       #define    SPL_PR_LOCAL_ONLY       0x00000100 /* exclude remote queues */
  672.       
  673.       
  674.    #endif  /* INCL_SPLDOSPRINT */
  675.    
  676.    /*********************************************************************/
  677.    /*                      FUNCTION PROTOTYPES                          */
  678.    /*                                                                   */
  679.    /* In the case of the DosPrintxxx, the API is presented by new name  */
  680.    /* with the old name in parenthesis.                                 */
  681.    /*********************************************************************/
  682.    
  683. #ifdef __cplusplus
  684.    HSPL APIENTRY SplQmOpen(PCSZ          pszToken,
  685.                            LONG        lCount,
  686.                            PQMOPENDATA pqmdopData);
  687. #else
  688.    HSPL APIENTRY SplQmOpen(PSZ         pszToken,
  689.                            LONG        lCount,
  690.                            PQMOPENDATA pqmdopData);
  691. #endif
  692.    
  693. #ifdef __cplusplus
  694.    BOOL APIENTRY SplQmStartDoc(HSPL  hspl,
  695.                                PCSZ  pszDocName);
  696. #else
  697.    BOOL APIENTRY SplQmStartDoc(HSPL  hspl,
  698.                                PSZ pszDocName);
  699. #endif
  700.    
  701.    BOOL APIENTRY SplQmWrite(HSPL    hspl,
  702.                             LONG  lCount,
  703.                             PVOID pData);
  704.    
  705.    BOOL APIENTRY SplQmEndDoc(HSPL hspl);
  706.    
  707.    BOOL APIENTRY SplQmClose(HSPL hspl);
  708.    
  709.    BOOL APIENTRY SplQmAbort(HSPL hspl);
  710.    
  711.    BOOL APIENTRY SplQmAbortDoc(HSPL hspl);
  712.    
  713. #ifdef __cplusplus
  714.    ULONG  APIENTRY SplMessageBox(PCSZ    pszLogAddr,
  715.                                  ULONG fErrInfo,
  716.                                  ULONG fErrData,
  717.                                  PCSZ    pszText,
  718.                                  PCSZ    pszCaption,
  719.                                  ULONG idWindow,
  720.                                  ULONG fStyle);
  721. #else
  722.    ULONG  APIENTRY SplMessageBox(PSZ   pszLogAddr,
  723.                                  ULONG fErrInfo,
  724.                                  ULONG fErrData,
  725.                                  PSZ   pszText,
  726.                                  PSZ   pszCaption,
  727.                                  ULONG idWindow,
  728.                                  ULONG fStyle);
  729. #endif
  730.    
  731.    BOOL  APIENTRY SplQmNewPage( HSPL hspl,
  732.                                ULONG ulPageNumber );
  733.    ULONG APIENTRY SplQmGetJobID( HSPL hspl,
  734.                                 ULONG ulLevel,
  735.                                 PVOID pBuf,
  736.                                 ULONG cbBuf,
  737.                                 PULONG pcbNeeded );
  738.    
  739.    #ifdef INCL_SPLFSE
  740.       /*** Direct Device File System Interface **************************/
  741. #ifdef __cplusplus
  742.       ULONG  APIENTRY PrtOpen(PCSZ     pszDeviceName,
  743.                               PHFILE phDevice,
  744.                               PULONG pActionTaken,
  745.                               ULONG  cbFileSize,
  746.                               ULONG  uFileAttr,
  747.                               ULONG  openFlag,
  748.                               ULONG  openMode,
  749.                               ULONG  reserved);
  750. #else
  751.       ULONG  APIENTRY PrtOpen(PSZ    pszDeviceName,
  752.                               PHFILE phDevice,
  753.                               PULONG pActionTaken,
  754.                               ULONG  cbFileSize,
  755.                               ULONG  uFileAttr,
  756.                               ULONG  openFlag,
  757.                               ULONG  openMode,
  758.                               ULONG  reserved);
  759. #endif
  760.       
  761.       ULONG  APIENTRY PrtClose(HFILE hDevice);
  762.       
  763.       ULONG  APIENTRY PrtWrite(HFILE  hDevice,
  764.                                PVOID  pchData,
  765.                                ULONG  cbData,
  766.                                PULONG pcbWritten);
  767.       
  768.       ULONG  APIENTRY PrtDevIOCtl(PVOID pData,
  769.                                   PVOID pParms,
  770.                                   ULONG uFunction,
  771.                                   ULONG uCategory,
  772.                                   HFILE hDevice);
  773.       
  774.       VOID   APIENTRY PrtAbort(HFILE hDevice);
  775.       ULONG  APIENTRY PrtAbortDoc(HFILE  hFile,
  776.                                   PVOID pchData,
  777.                                   ULONG cbData,
  778.                                   ULONG ulFlags );
  779.       ULONG  APIENTRY PrtResetAbort(HFILE  hFile );
  780.       ULONG  APIENTRY PrtNewPage(HFILE  hFile,
  781.                                  ULONG ulPageNumber );
  782.    #endif /* include File System Emulation functions */
  783.    
  784.    
  785.    #ifdef INCL_SPLBIDI
  786.       #include <pmsplb.h>
  787.    #endif /* INCL_SPLBIDI */
  788.    
  789.    
  790.    BOOL APIENTRY SplStdOpen(HDC hdc);
  791.    
  792.    BOOL APIENTRY SplStdClose(HDC hdc);
  793.    
  794.    BOOL APIENTRY SplStdStart(HDC hdc);
  795.    
  796.    HSTD APIENTRY SplStdStop(HDC hdc);
  797.    
  798.    BOOL APIENTRY SplStdDelete(HSTD hMetaFile);
  799.    
  800.    BOOL APIENTRY SplStdGetBits(HSTD hMetaFile,
  801.                                LONG offData,
  802.                                LONG cbData,
  803.                                PCH  pchData);
  804.    
  805.    LONG APIENTRY SplStdQueryLength(HSTD hMetaFile);
  806.    
  807.    
  808.    /*              SplCreateDevice(DosPrintDestAdd) */
  809. #ifdef __cplusplus
  810.    SPLERR APIENTRY SplCreateDevice(PCSZ    pszComputerName,
  811.                                    ULONG ulLevel,
  812.                                    PVOID pBuf,
  813.                                    ULONG cbBuf);
  814. #else
  815.    SPLERR APIENTRY SplCreateDevice(PSZ   pszComputerName,
  816.                                    ULONG ulLevel,
  817.                                    PVOID pBuf,
  818.                                    ULONG cbBuf);
  819. #endif
  820.    
  821.    /*              SplControlDevice(DosPrintDestControl) */
  822. #ifdef __cplusplus
  823.    SPLERR APIENTRY SplControlDevice(PCSZ    pszComputerName,
  824.                                     PCSZ    pszPortName,
  825.                                     ULONG ulControl);
  826. #else
  827.    SPLERR APIENTRY SplControlDevice(PSZ   pszComputerName,
  828.                                     PSZ   pszPortName,
  829.                                     ULONG ulControl);
  830. #endif
  831.    
  832.    /*              SplDeleteDevice(DosPrintDestDel) */
  833. #ifdef __cplusplus
  834.    SPLERR APIENTRY SplDeleteDevice(PCSZ  pszComputerName,
  835.                                    PCSZ  pszPrintDeviceName);
  836. #else
  837.    SPLERR APIENTRY SplDeleteDevice(PSZ pszComputerName,
  838.                                    PSZ pszPrintDeviceName);
  839. #endif
  840.    
  841.    
  842.    /*              SplEnumDevice(DosPrintDestEnum) */
  843. #ifdef __cplusplus
  844.    SPLERR APIENTRY SplEnumDevice(PCSZ     pszComputerName,
  845.                                  ULONG  ulLevel,
  846.                                  PVOID  pBuf,
  847.                                  ULONG  cbBuf,
  848.                                  PULONG pcReturned,
  849.                                  PULONG pcTotal,
  850.                                  PULONG pcbNeeded,
  851.                                  PVOID  pReserved);
  852. #else
  853.    SPLERR APIENTRY SplEnumDevice(PSZ    pszComputerName,
  854.                                  ULONG  ulLevel,
  855.                                  PVOID  pBuf,
  856.                                  ULONG  cbBuf,
  857.                                  PULONG pcReturned,
  858.                                  PULONG pcTotal,
  859.                                  PULONG pcbNeeded,
  860.                                  PVOID  pReserved);
  861. #endif
  862.    
  863.    /*              SplQueryDevice(DosPrintDestGetInfo) */
  864. #ifdef __cplusplus
  865.    SPLERR APIENTRY SplQueryDevice(PCSZ     pszComputerName,
  866.                                   PCSZ     pszPrintDeviceName,
  867.                                   ULONG  ulLevel,
  868.                                   PVOID  pBuf,
  869.                                   ULONG  cbBuf,
  870.                                   PULONG pcbNeeded);
  871. #else
  872.    SPLERR APIENTRY SplQueryDevice(PSZ    pszComputerName,
  873.                                   PSZ    pszPrintDeviceName,
  874.                                   ULONG  ulLevel,
  875.                                   PVOID  pBuf,
  876.                                   ULONG  cbBuf,
  877.                                   PULONG pcbNeeded);
  878. #endif
  879.    
  880.    /*              SplSetDevice(DosPrintDestSetInfo) */
  881. #ifdef __cplusplus
  882.    SPLERR APIENTRY SplSetDevice(PCSZ    pszComputerName,
  883.                                 PCSZ    pszPrintDeviceName,
  884.                                 ULONG ulLevel,
  885.                                 PVOID pBuf,
  886.                                 ULONG cbBuf,
  887.                                 ULONG ulParmNum);
  888. #else
  889.    SPLERR APIENTRY SplSetDevice(PSZ   pszComputerName,
  890.                                 PSZ   pszPrintDeviceName,
  891.                                 ULONG ulLevel,
  892.                                 PVOID pBuf,
  893.                                 ULONG cbBuf,
  894.                                 ULONG ulParmNum);
  895. #endif
  896.    
  897. #ifdef __cplusplus
  898.    SPLERR APIENTRY SplCopyJob(PCSZ     pszSrcComputerName,
  899.                               PCSZ     pszSrcQueueName,
  900.                               ULONG  ulSrcJob,
  901.                               PCSZ     pszTrgComputerName,
  902.                               PCSZ     pszTrgQueueName,
  903.                               PULONG pulTrgJob);
  904. #else
  905.    SPLERR APIENTRY SplCopyJob(PSZ    pszSrcComputerName,
  906.                               PSZ    pszSrcQueueName,
  907.                               ULONG  ulSrcJob,
  908.                               PSZ    pszTrgComputerName,
  909.                               PSZ    pszTrgQueueName,
  910.                               PULONG pulTrgJob);
  911. #endif
  912.    
  913.    /*              SplDeleteJob(DosPrintJobDel) */
  914. #ifdef __cplusplus
  915.    SPLERR APIENTRY SplDeleteJob(PCSZ    pszComputerName,
  916.                                 PCSZ    pszQueueName,
  917.                                 ULONG ulJob);
  918. #else
  919.    SPLERR APIENTRY SplDeleteJob(PSZ   pszComputerName,
  920.                                 PSZ   pszQueueName,
  921.                                 ULONG ulJob);
  922. #endif
  923.    
  924.    /*              SplEnumJob(DosPrintJobEnum) */
  925. #ifdef __cplusplus
  926.    SPLERR APIENTRY SplEnumJob(PCSZ     pszComputerName,
  927.                               PCSZ     pszQueueName,
  928.                               ULONG  ulLevel,
  929.                               PVOID  pBuf,
  930.                               ULONG  cbBuf,
  931.                               PULONG pcReturned,
  932.                               PULONG pcTotal,
  933.                               PULONG pcbNeeded,
  934.                               PVOID  pReserved);
  935. #else
  936.    SPLERR APIENTRY SplEnumJob(PSZ    pszComputerName,
  937.                               PSZ    pszQueueName,
  938.                               ULONG  ulLevel,
  939.                               PVOID  pBuf,
  940.                               ULONG  cbBuf,
  941.                               PULONG pcReturned,
  942.                               PULONG pcTotal,
  943.                               PULONG pcbNeeded,
  944.                               PVOID  pReserved);
  945. #endif
  946.    
  947.    /*              SplHoldJob(DosPrintJobPause)   */
  948. #ifdef __cplusplus
  949.    SPLERR APIENTRY SplHoldJob(PCSZ    pszComputerName,
  950.                               PCSZ    pszQueueName,
  951.                               ULONG ulJob);
  952. #else
  953.    SPLERR APIENTRY SplHoldJob(PSZ   pszComputerName,
  954.                               PSZ   pszQueueName,
  955.                               ULONG ulJob);
  956. #endif
  957.    
  958.    /*              SplQueryJob(DosPrintJobGetInfo)  */
  959. #ifdef __cplusplus
  960.    SPLERR APIENTRY SplQueryJob(PCSZ     pszComputerName,
  961.                                PCSZ     pszQueueName,
  962.                                ULONG  ulJob,
  963.                                ULONG  ulLevel,
  964.                                PVOID  pBuf,
  965.                                ULONG  cbBuf,
  966.                                PULONG pcbNeeded);
  967. #else
  968.    SPLERR APIENTRY SplQueryJob(PSZ    pszComputerName,
  969.                                PSZ    pszQueueName,
  970.                                ULONG  ulJob,
  971.                                ULONG  ulLevel,
  972.                                PVOID  pBuf,
  973.                                ULONG  cbBuf,
  974.                                PULONG pcbNeeded);
  975. #endif
  976.    
  977.    /*              SplReleaseJob(DosPrintJobContinue) */
  978. #ifdef __cplusplus
  979.    SPLERR APIENTRY SplReleaseJob(PCSZ    pszComputerName,
  980.                                  PCSZ    pszQueueName,
  981.                                  ULONG ulJob);
  982. #else
  983.    SPLERR APIENTRY SplReleaseJob(PSZ   pszComputerName,
  984.                                  PSZ   pszQueueName,
  985.                                  ULONG ulJob);
  986. #endif
  987.    
  988.    /*              SplSetJob(DosPrintJobSetInfo)*/
  989. #ifdef __cplusplus
  990.    SPLERR APIENTRY SplSetJob(PCSZ    pszComputerName,
  991.                              PCSZ    pszQueueName,
  992.                              ULONG ulJob,
  993.                              ULONG ulLevel,
  994.                              PVOID pBuf,
  995.                              ULONG cbBuf,
  996.                              ULONG ulParmNum);
  997. #else
  998.    SPLERR APIENTRY SplSetJob(PSZ   pszComputerName,
  999.                              PSZ   pszQueueName,
  1000.                              ULONG ulJob,
  1001.                              ULONG ulLevel,
  1002.                              PVOID pBuf,
  1003.                              ULONG cbBuf,
  1004.                              ULONG ulParmNum);
  1005. #endif
  1006.    
  1007. #ifdef __cplusplus
  1008.    SPLERR APIENTRY SplCreatePort(PCSZ      pszComputerName,
  1009.                                  PCSZ      pszPortName,
  1010.                                  PCSZ      pszPortDriver,
  1011.                                  ULONG   ulVersion,
  1012.                                  PVOID   pBuf,
  1013.                                  ULONG   cbBuf );
  1014. #else
  1015.    SPLERR APIENTRY SplCreatePort(PSZ     pszComputerName,
  1016.                                  PSZ     pszPortName,
  1017.                                  PSZ     pszPortDriver,
  1018.                                  ULONG   ulVersion,
  1019.                                  PVOID   pBuf,
  1020.                                  ULONG   cbBuf );
  1021. #endif
  1022.    
  1023. #ifdef __cplusplus
  1024.    SPLERR APIENTRY SplDeletePort(PCSZ      pszComputerName,
  1025.                                  PCSZ      pszPortName );
  1026. #else
  1027.    SPLERR APIENTRY SplDeletePort(PSZ     pszComputerName,
  1028.                                  PSZ     pszPortName );
  1029. #endif
  1030.    
  1031.    /*               SplEnumPort(DosPrintPortEnum) */
  1032. #ifdef __cplusplus
  1033.    SPLERR APIENTRY  SplEnumPort(PCSZ     pszComputerName,
  1034.                                 ULONG  ulLevel,
  1035.                                 PVOID  pBuf,
  1036.                                 ULONG  cbBuf,
  1037.                                 PULONG pcReturned,
  1038.                                 PULONG pcTotal,
  1039.                                 PULONG pcbNeeded,
  1040.                                 PVOID  pReserved);
  1041. #else
  1042.    SPLERR APIENTRY  SplEnumPort(PSZ    pszComputerName,
  1043.                                 ULONG  ulLevel,
  1044.                                 PVOID  pBuf,
  1045.                                 ULONG  cbBuf,
  1046.                                 PULONG pcReturned,
  1047.                                 PULONG pcTotal,
  1048.                                 PULONG pcbNeeded,
  1049.                                 PVOID  pReserved);
  1050. #endif
  1051.    
  1052. #ifdef __cplusplus
  1053.    SPLERR APIENTRY  SplQueryPort(PCSZ      pszComputerName,
  1054.                                  PCSZ      pszPortName,
  1055.                                  ULONG   ulLevel,
  1056.                                  PVOID   pBuf,
  1057.                                  ULONG   cbBuf,
  1058.                                  PULONG  pcbNeeded);
  1059. #else
  1060.    SPLERR APIENTRY  SplQueryPort(PSZ     pszComputerName,
  1061.                                  PSZ     pszPortName,
  1062.                                  ULONG   ulLevel,
  1063.                                  PVOID   pBuf,
  1064.                                  ULONG   cbBuf,
  1065.                                  PULONG  pcbNeeded);
  1066. #endif
  1067.    
  1068. #ifdef __cplusplus
  1069.    SPLERR APIENTRY  SplSetPort(PCSZ     pszComputerName,
  1070.                                PCSZ     pszPortName,
  1071.                                ULONG  ulLevel,
  1072.                                PVOID  pBuf,
  1073.                                ULONG  cbBuf,
  1074.                                ULONG  ulParmNum);
  1075. #else
  1076.    SPLERR APIENTRY  SplSetPort(PSZ    pszComputerName,
  1077.                                PSZ    pszPortName,
  1078.                                ULONG  ulLevel,
  1079.                                PVOID  pBuf,
  1080.                                ULONG  cbBuf,
  1081.                                ULONG  ulParmNum);
  1082. #endif
  1083.    
  1084.    /*              SplCreateQueue(DosPrintQAdd) */
  1085. #ifdef __cplusplus
  1086.    SPLERR APIENTRY SplCreateQueue(PCSZ    pszComputerName,
  1087.                                   ULONG ulLevel,
  1088.                                   PVOID pBuf,
  1089.                                   ULONG cbBuf);
  1090. #else
  1091.    SPLERR APIENTRY SplCreateQueue(PSZ   pszComputerName,
  1092.                                   ULONG ulLevel,
  1093.                                   PVOID pBuf,
  1094.                                   ULONG cbBuf);
  1095. #endif
  1096.    
  1097.    /*              SplReleaseQueue(DosPrintQContinue) */
  1098. #ifdef __cplusplus
  1099.    SPLERR APIENTRY SplReleaseQueue(PCSZ  pszComputerName,
  1100.                                    PCSZ  pszQueueName);
  1101. #else
  1102.    SPLERR APIENTRY SplReleaseQueue(PSZ pszComputerName,
  1103.                                    PSZ pszQueueName);
  1104. #endif
  1105.    
  1106.    
  1107.    /*              SplDeleteQueue(DosPrintQDel) */
  1108. #ifdef __cplusplus
  1109.    SPLERR APIENTRY SplDeleteQueue(PCSZ  pszComputerName,
  1110.                                   PCSZ  pszQueueName);
  1111. #else
  1112.    SPLERR APIENTRY SplDeleteQueue(PSZ pszComputerName,
  1113.                                   PSZ pszQueueName);
  1114. #endif
  1115.    
  1116.    
  1117.    /*              SplEnumQueue(DosPrintQEnum) */
  1118. #ifdef __cplusplus
  1119.    SPLERR APIENTRY SplEnumQueue(PCSZ     pszComputerName,
  1120.                                 ULONG  ulLevel,
  1121.                                 PVOID  pBuf,
  1122.                                 ULONG  cbBuf,
  1123.                                 PULONG pcReturned,
  1124.                                 PULONG pcTotal,
  1125.                                 PULONG pcbNeeded,
  1126.                                 PVOID  pReserved);
  1127. #else
  1128.    SPLERR APIENTRY SplEnumQueue(PSZ    pszComputerName,
  1129.                                 ULONG  ulLevel,
  1130.                                 PVOID  pBuf,
  1131.                                 ULONG  cbBuf,
  1132.                                 PULONG pcReturned,
  1133.                                 PULONG pcTotal,
  1134.                                 PULONG pcbNeeded,
  1135.                                 PVOID  pReserved);
  1136. #endif
  1137.    
  1138.    /*               SplQueryQueue(DosPrintQGetInfo) */
  1139. #ifdef __cplusplus
  1140.    SPLERR APIENTRY  SplQueryQueue(PCSZ     pszComputerName,
  1141.                                   PCSZ     pszQueueName,
  1142.                                   ULONG  ulLevel,
  1143.                                   PVOID  pBuf,
  1144.                                   ULONG  cbBuf,
  1145.                                   PULONG pcbNeeded);
  1146. #else
  1147.    SPLERR APIENTRY  SplQueryQueue(PSZ    pszComputerName,
  1148.                                   PSZ    pszQueueName,
  1149.                                   ULONG  ulLevel,
  1150.                                   PVOID  pBuf,
  1151.                                   ULONG  cbBuf,
  1152.                                   PULONG pcbNeeded);
  1153. #endif
  1154.    
  1155.    /*              SplHoldQueue(DosPrintQPause) */
  1156. #ifdef __cplusplus
  1157.    SPLERR APIENTRY SplHoldQueue(PCSZ  pszComputerName,
  1158.                                 PCSZ  pszQueueName);
  1159. #else
  1160.    SPLERR APIENTRY SplHoldQueue(PSZ pszComputerName,
  1161.                                 PSZ pszQueueName);
  1162. #endif
  1163.    
  1164.    
  1165.    /*              SplPurgeQueue(DosPrintQPurge) */
  1166. #ifdef __cplusplus
  1167.    SPLERR APIENTRY SplPurgeQueue(PCSZ  pszComputerName,
  1168.                                  PCSZ  pszQueueName);
  1169. #else
  1170.    SPLERR APIENTRY SplPurgeQueue(PSZ pszComputerName,
  1171.                                  PSZ pszQueueName);
  1172. #endif
  1173.    
  1174.    
  1175.    /*               SplSetQueue(DosPrintQSetInfo) */
  1176. #ifdef __cplusplus
  1177.    SPLERR APIENTRY  SplSetQueue(PCSZ    pszComputerName,
  1178.                                 PCSZ    pszQueueName,
  1179.                                 ULONG ulLevel,
  1180.                                 PVOID pBuf,
  1181.                                 ULONG cbBuf,
  1182.                                 ULONG ulParmNum);
  1183. #else
  1184.    SPLERR APIENTRY  SplSetQueue(PSZ   pszComputerName,
  1185.                                 PSZ   pszQueueName,
  1186.                                 ULONG ulLevel,
  1187.                                 PVOID pBuf,
  1188.                                 ULONG cbBuf,
  1189.                                 ULONG ulParmNum);
  1190. #endif
  1191.    
  1192.    /*               SplEnumDriver(DosPrintDriverEnum) */
  1193. #ifdef __cplusplus
  1194.    SPLERR APIENTRY  SplEnumDriver(PCSZ     pszComputerName,
  1195.                                   ULONG  ulLevel,
  1196.                                   PVOID  pBuf,
  1197.                                   ULONG  cbBuf,
  1198.                                   PULONG pcReturned,
  1199.                                   PULONG pcTotal,
  1200.                                   PULONG pcbNeeded,
  1201.                                   PVOID  pReserved);
  1202. #else
  1203.    SPLERR APIENTRY  SplEnumDriver(PSZ    pszComputerName,
  1204.                                   ULONG  ulLevel,
  1205.                                   PVOID  pBuf,
  1206.                                   ULONG  cbBuf,
  1207.                                   PULONG pcReturned,
  1208.                                   PULONG pcTotal,
  1209.                                   PULONG pcbNeeded,
  1210.                                   PVOID  pReserved);
  1211. #endif
  1212.    
  1213. #ifdef __cplusplus
  1214.    SPLERR APIENTRY SplQueryDriver(PCSZ     pszComputerName,
  1215.                                   PCSZ     pszDriverName,
  1216.                                   PCSZ     pszPrinterName,
  1217.                                   ULONG  ulLevel,
  1218.                                   PVOID  pBuf,
  1219.                                   ULONG  cbBuf,
  1220.                                   PULONG pcbNeeded);
  1221. #else
  1222.    SPLERR APIENTRY SplQueryDriver(PSZ    pszComputerName,
  1223.                                   PSZ    pszDriverName,
  1224.                                   PSZ    pszPrinterName,
  1225.                                   ULONG  ulLevel,
  1226.                                   PVOID  pBuf,
  1227.                                   ULONG  cbBuf,
  1228.                                   PULONG pcbNeeded);
  1229. #endif
  1230.    
  1231. #ifdef __cplusplus
  1232.    SPLERR APIENTRY SplSetDriver(PCSZ    pszComputerName,
  1233.                                 PCSZ    pszDriverName,
  1234.                                 PCSZ    pszPrinterName,
  1235.                                 ULONG ulLevel,
  1236.                                 PVOID pBuf,
  1237.                                 ULONG cbBuf,
  1238.                                 ULONG ulParmNum);
  1239. #else
  1240.    SPLERR APIENTRY SplSetDriver(PSZ   pszComputerName,
  1241.                                 PSZ   pszDriverName,
  1242.                                 PSZ   pszPrinterName,
  1243.                                 ULONG ulLevel,
  1244.                                 PVOID pBuf,
  1245.                                 ULONG cbBuf,
  1246.                                 ULONG ulParmNum);
  1247. #endif
  1248.    
  1249.    /*               SplEnumQueueProcessor(DosPrintQProcessorEnum) */
  1250. #ifdef __cplusplus
  1251.    SPLERR APIENTRY  SplEnumQueueProcessor(PCSZ     pszComputerName,
  1252.                                           ULONG  ulLevel,
  1253.                                           PVOID  pBuf,
  1254.                                           ULONG  cbBuf,
  1255.                                           PULONG pcReturned,
  1256.                                           PULONG pcTotal,
  1257.                                           PULONG pcbNeeded,
  1258.                                           PVOID  pReserved);
  1259. #else
  1260.    SPLERR APIENTRY  SplEnumQueueProcessor(PSZ    pszComputerName,
  1261.                                           ULONG  ulLevel,
  1262.                                           PVOID  pBuf,
  1263.                                           ULONG  cbBuf,
  1264.                                           PULONG pcReturned,
  1265.                                           PULONG pcTotal,
  1266.                                           PULONG pcbNeeded,
  1267.                                           PVOID  pReserved);
  1268. #endif
  1269.    
  1270.    
  1271. #ifdef __cplusplus
  1272.    SPLERR APIENTRY SplEnumPrinter(PCSZ     pszComputerName,
  1273.                                   ULONG  uLevel,
  1274.                                   ULONG  flType,
  1275.                                   PVOID  pBuf,
  1276.                                   ULONG  cbbuf,
  1277.                                   PULONG pcReturned,
  1278.                                   PULONG pcTotal,
  1279.                                   PULONG pcbNeeded,
  1280.                                   PVOID  pReserved);
  1281. #else
  1282.    SPLERR APIENTRY SplEnumPrinter(PSZ    pszComputerName,
  1283.                                   ULONG  uLevel,
  1284.                                   ULONG  flType,
  1285.                                   PVOID  pBuf,
  1286.                                   ULONG  cbbuf,
  1287.                                   PULONG pcReturned,
  1288.                                   PULONG pcTotal,
  1289.                                   PULONG pcbNeeded,
  1290.                                   PVOID  pReserved);
  1291. #endif
  1292.    
  1293.    
  1294.    
  1295.    /* XLATOFF */
  1296. #endif
  1297. /* XLATON */
  1298.  
  1299. /* XLATOFF */
  1300. #ifdef __cplusplus
  1301.         }
  1302. #endif
  1303. #if __IBMC__ || __IBMCPP__
  1304.    #pragma info( none )
  1305.    #ifndef __CHKHDR__
  1306.       #pragma info( restore )
  1307.    #endif
  1308.    #pragma info( restore )
  1309. #endif
  1310. /* XLATON */
  1311.  
  1312. /**************************** end of file **********************************/
  1313.