home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v1.zip / DDKX86 / H / PMSPL.H < prev    next >
Text File  |  1995-04-14  |  46KB  |  1,085 lines

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