home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos13.zip / pmspl.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-24  |  18KB  |  497 lines

  1. {| Unit: PmSpl
  2.  | Version: 1.00
  3.  | translated from file PmSpl.H
  4.  | Original translation: Peter Sawatzki (ps)
  5.  | Contributing:
  6.  |   (fill in)
  7.  |
  8.  | change history:
  9.  | Date:    Ver: Author:
  10.  | 11/23/93 1.00 ps     original translation by ps
  11. }
  12. Unit PmSpl;
  13. Interface
  14. Uses
  15.   Os2Def,
  16.   BseDos;
  17. {**************************************************************************\
  18. *
  19. * OS/2 Presentation Manager Spooler constants, types and function declarations
  20. *
  21. \**************************************************************************}
  22. Const
  23.  
  24. { Names of various OS2SYS.INI spooler variables }
  25.  
  26.   SPL_INI_SPOOLER       = 'PM_SPOOLER';
  27.   SPL_INI_QUEUE         = 'PM_SPOOLER_QUEUE';
  28.   SPL_INI_PRINTER       = 'PM_SPOOLER_PRINTER';
  29.   SPL_INI_PRINTERDESCR  = 'PM_SPOOLER_PRINTER_DESCR';
  30.   SPL_INI_QUEUEDESCR    = 'PM_SPOOLER_QUEUE_DESCR';
  31.   SPL_INI_QUEUEDD       = 'PM_SPOOLER_QUEUE_DD';
  32.   SPL_INI_QUEUEDDDATA   = 'PM_SPOOLER_QUEUE_DDDATA';
  33.  
  34. { General SPL return values }
  35.   SPL_ERROR             = 0;
  36.   SPL_OK                = 1;
  37.  
  38. Type
  39. { handle to a spool file }
  40.   HSPL = LHANDLE;               { hspl }
  41. { Used in recording of PM_Q_STD data via SplStdxxx calls }
  42.   HSTD = LHANDLE;               { hstd }
  43.   pHSTD = ^HSTD;
  44. { spooler manager open data }
  45.   pQMOPENDATA = ^PSZ;       { pqmdop }
  46.  
  47. {** Spooler Queue manager Interface }
  48.   Function SplQmOpen (Par1: PSZ; Par2: LONG; Par3: PQMOPENDATA): HSPL;
  49.   Function SplQmStartDoc (Par1: HSPL; Par2: PSZ): BOOL;
  50.   Function SplQmWrite (Par1: HSPL; Par2: LONG;Par3: PBYTE): BOOL;
  51.   Function SplQmEndDoc (Par1: HSPL): BOOL;
  52.   Function SplQmClose (Par1: HSPL): BOOL;
  53.   Function SplQmAbort (Par1: HSPL): BOOL;
  54.   Function SplQmAbortDoc (Par1: HSPL): BOOL;
  55.  
  56. {** Direct Device File System Interface }
  57.   Function PrtOpen (Par1: PSZ; Var Par2, Par3: USHORT; Par4: ULONG; Par5: USHORT;
  58.                     Par6, Par7: USHORT; Par8: ULONG): USHORT;
  59.   Function PrtClose (hFile: HFILE): USHORT;
  60.   Function PrtWrite (hFile: HFILE; Par2: PCH; Par3: USHORT; Var Par4: USHORT): USHORT;
  61.   Function PrtDevIOCtl (Par1, Par2: Pointer; Par3, Par4: USHORT; hFile: HFILE): USHORT;
  62.   Procedure PrtAbort (hFile: HFILE);
  63.  
  64. {** Spooler Queue Processor interface }
  65.  
  66.   Function SplQpQueryDt (Var Par1: LONG; Var Par2: PSZ): BOOL;
  67.   Function SplQpInstall (hWnd: HWND): BOOL;
  68.  
  69. { Style for SplMessageBox }
  70. { Same as for WinMsgBox see PMWIN.H for details }
  71.  
  72. {** Spooler message interface }
  73.   Function SplMessageBox (Par1: PSZ; Par2, Par3: USHORT; Par4, Par5: PSZ; Par6, Par7: USHORT): USHORT;
  74.  
  75. {** PM_Q_STD datatype functions }
  76.   Function SplStdOpen (hDC: HDC): BOOL;
  77.   Function SplStdClose (hDC: HDC): BOOL;
  78.   Function SplStdStart (hDC: HDC): BOOL;
  79.   Function SplStdStop (hDC: HDC): HSTD;
  80.   Function SplStdDelete (hSTD: HSTD): BOOL;
  81.   Function SplStdGetBits (hSTD: HSTD; Long1, Long2: LONG; Par4: PCH): BOOL;
  82.   Function SplStdQueryLength (hSTD: HSTD): LongInt;
  83.  
  84. { Error information and return codes
  85. ** ==================================
  86. }
  87. { Error information for SplMessageBox }
  88.  
  89. Const
  90.   SPLINFO_QPERROR         =  $0001;
  91.   SPLINFO_DDERROR                  =  $0002;
  92.   SPLINFO_SPLERROR                 =  $0004;
  93.   SPLINFO_OTHERERROR               =  $0080;
  94.   SPLINFO_INFORMATION              =  $0100;                { @P3C }
  95.   SPLINFO_WARNING                  =  $0200;                { @P3C }
  96.   SPLINFO_ERROR                    =  $0400;                { @P3C }
  97.   SPLINFO_SEVERE                   =  $0800;                { @P3C }
  98.   SPLINFO_USERINTREQD              =  $1000;
  99.  
  100. { Error Data for SplMessageBox }
  101.   SPLDATA_PRINTERJAM               =  $0001;
  102.   SPLDATA_FORMCHGREQD              =  $0002;
  103.   SPLDATA_CARTCHGREQD              =  $0004;
  104.   SPLDATA_PENCHGREQD               =  $0008;
  105.   SPLDATA_DATAERROR                =  $0010;
  106.   SPLDATA_UNEXPECTERROR            =  $0020;
  107.   SPLDATA_OTHER                    =  $8000;
  108.  
  109. { return code for SplStdQueryLength }
  110.   SSQL_ERROR                       = (-1 );
  111.  
  112.  
  113. { length for character arrays in structures}
  114.   CNLEN                            = 15;                    { Computer name length      }
  115.   UNLEN                            = 20;                    { Maximum user name length  }
  116.   QNLEN                            = 12;                    { Queue name maximum length }
  117.   PDLEN                            = 8;                     { Print destination length  }
  118.   DTLEN                            = 9;                     { Spool file data type      }
  119.                                             { e.g. PM_Q_STD,PM_Q_RAW    }
  120.   QP_DATATYPE_SIZE                 = 15;                    { returned by SplQpQueryDt  }
  121.   DRIV_DEVICENAME_SIZE             = 31;                    { see DRIVDATA struc        }
  122.   DRIV_NAME_SIZE                   = 8;                     { name of device driver     }
  123.   PRINTERNAME_SIZE                 = 32;                    { max printer name length   }
  124.   FORMNAME_SIZE                    = 31;                    { max form name length      }
  125.   MAXCOMMENTSZ                     = 48;                    { queue comment length      }
  126.  
  127.   DEFAULT_LM_PROC = 'LMPRINT';
  128.  
  129. Type
  130.   SPLERR = Word;    { err }
  131.  
  132.   PRJINFO = Record                      { prj1 }
  133.     uJobId: USHORT;
  134.     szUserName: Array[0..UNLEN] Of Char;
  135.     pad_1,
  136.     szNotifyName: Array[0..CNLEN] Of Char;
  137.     szDataType: Array[0..DTLEN] Of Char;
  138.     pszParms: PSZ;
  139.     uPosition,
  140.     fsStatus: USHORT;
  141.     pszStatus: PSZ;
  142.     ulSubmitted,
  143.     ulSize: ULONG;
  144.     pszComment: PSZ
  145.   End;
  146.   pPRJINFO = ^PPRJINFO;
  147.   npPRJINFO = ^PPRJINFO; {-CANT-}
  148.  
  149.   PRJINFO2 = Record                     { prj2 }
  150.     uJobId,
  151.     uPriority: USHORT;
  152.     pszUserName: PSZ;
  153.     uPosition,
  154.     fsStatus: USHORT;
  155.     ulSubmitted,
  156.     ulSize: ULONG;
  157.     pszComment,
  158.     pszDocument: PSZ
  159.   End;
  160.   pPRJINFO2 = ^PRJINFO2;
  161.   npPRJINFO2 = ^PRJINFO2; {-CANT-}
  162.  
  163.   PRJINFO3 = Record                     { prj }
  164.     uJobId,
  165.     uPriority: USHORT;
  166.     pszUserName: PSZ;
  167.     uPosition,
  168.     fsStatus: USHORT;
  169.     ulSubmitted,
  170.     ulSize: ULONG;
  171.     pszComment,
  172.     pszDocument,
  173.     pszNotifyName,
  174.     pszDataType,
  175.     pszParms,
  176.     pszStatus,
  177.     pszQueue,
  178.     pszQProcName,
  179.     pszQProcParms,
  180.     pszDriverName: PSZ;
  181.     pDriverData: PDRIVDATA;
  182.     pszPrinterName: PSZ
  183.   End;
  184.   pPRJINFO3 = ^PRJINFO3;
  185.   npPRJINFO3 = ^PRJINFO3; {-CANT-}
  186.  
  187.  
  188.   PRDINFO = Record                      { prd1 }
  189.     szName: Array[0..PDLEN] Of Char;
  190.     szUserName: Array[0..UNLEN] Of Char;
  191.     uJobId,
  192.     fsStatus: USHORT;
  193.     pszStatus: PSZ;
  194.     time: USHORT
  195.   End;
  196.   pPRDINFO = ^PRDINFO;
  197.   npPRDINFO = ^PRDINFO; {-CANT-}
  198.  
  199.   PRDINFO3 = Record                     { prd }
  200.     pszPrinterName,
  201.     pszUserName,
  202.     pszLogAddr: PSZ;
  203.     uJobId,
  204.     fsStatus: USHORT;
  205.     pszStatus,
  206.     pszComment,
  207.     pszDrivers: PSZ;
  208.     time,
  209.     usTimeOut: USHORT
  210.   End;
  211.   pPRDINFO3 = ^PRDINFO3;
  212.   npPRDINFO3 = ^PRDINFO3; {-CANT-}
  213.  
  214.  
  215.   PRQINFO = Record                      { prq1 }
  216.     szName: Array[0..QNLEN] Of Char;
  217.     pad_1: Char;
  218.     uPriority,
  219.     uStartTime,
  220.     uUntilTime: USHORT;
  221.     pszSepFile,
  222.     pszPrProc,
  223.     pszDestinations,
  224.     pszParms,
  225.     pszComment: PSZ;
  226.     fsStatus,
  227.     cJobs: USHORT
  228.   End;
  229.   pPRQINFO  = ^PRQINFO;
  230.   npPRQINFO  = ^PRQINFO;  {-CANT-}
  231.  
  232.  
  233.   PRQINFO3 = Record                     { prq }
  234.     pszName: PSZ;
  235.     uPriority,
  236.     uStartTime,
  237.     uUntilTime,
  238.     pad1: USHORT;
  239.     pszSepFile,
  240.     pszPrProc,
  241.     pszParms,
  242.     pszComment: PSZ;
  243.     fsStatus,
  244.     cJobs: USHORT;
  245.     pszPrinters,
  246.     pszDriverName: PSZ;
  247.     pDriverData: PDRIVDATA
  248.   End;
  249.   pPRQINFO3 = ^PRQINFO3;
  250.   npPRQINFO3 = ^PRQINFO3; {-CANT-}
  251.  
  252.  
  253. {
  254.  * structure for DosPrintJobGetId
  255.  }
  256.   PRIDINFO = Record                     { prjid }
  257.     uJobId: USHORT;
  258.     szServer: Array[0..CNLEN] Of Char;
  259.     szQName: Array[0..QNLEN] Of Char;
  260.     pad_1: Char
  261.   End;
  262.   pPRIDINFO = ^PRIDINFO;
  263.   npPRIDINFO = ^PRIDINFO; {-CANT-}
  264.  
  265.  
  266. {***************************************************************
  267.  *                                                              *
  268.  *              Function prototypes                             *
  269.  *                                                              *
  270.  ***************************************************************}
  271.  
  272.   Function DosPrintDestEnum (pszServer: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;pcReturned,
  273.                              pcTotal: PUSHORT): SPLERR;
  274.  
  275.   Function DosPrintDestControl (pszServer,pszDevName: PSZ;uControl: USHORT): SPLERR;
  276.  
  277.   Function DosPrintDestGetInfo (pszServer,pszName: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;
  278.                                 pcbNeeded: PUSHORT): SPLERR;
  279.  
  280.   Function DosPrintDestAdd (pszServer: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT): SPLERR;
  281.  
  282.   Function DosPrintDestSetInfo (pszServer,pszName: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf,uParmNum: USHORT): SPLERR;
  283.  
  284.   Function DosPrintDestDel (pszServer,pszPrinterName: PSZ): SPLERR;
  285.  
  286.   Function DosPrintQEnum (pszServer: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;pcReturned,
  287.                           pcTotal: PUSHORT): SPLERR;
  288.  
  289.   Function DosPrintQGetInfo (pszServer,pszQueueName: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;
  290.                              pcbNeeded: PUSHORT): SPLERR;
  291.  
  292.   Function DosPrintQSetInfo (pszServer,pszQueueName: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf,
  293.                              uParmNum: USHORT): SPLERR;
  294.  
  295.   Function DosPrintQPause (pszServer,pszQueueName: PSZ): SPLERR;
  296.  
  297.   Function DosPrintQContinue (pszServer,pszQueueName: PSZ): SPLERR;
  298.  
  299.   Function DosPrintQPurge (pszServer,pszQueueName: PSZ): SPLERR;
  300.  
  301.   Function DosPrintQAdd (pszServer: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT): SPLERR;
  302.  
  303.   Function DosPrintQDel (pszServer,pszQueueName: PSZ): SPLERR;
  304.  
  305.   Function DosPrintJobGetInfo (pszServer: PSZ;uJobId,uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;
  306.                                pcbNeeded: PUSHORT): SPLERR;
  307.  
  308.   Function DosPrintJobSetInfo (pszServer: PSZ;uJobId,uLevel: USHORT;pbBuf: PBYTE;cbBuf,uParmNum: USHORT): SPLERR;
  309.  
  310.   Function DosPrintJobPause (pszServer: PSZ;uJobId: USHORT): SPLERR;
  311.  
  312.   Function DosPrintJobContinue (pszServer: PSZ;uJobId: USHORT): SPLERR;
  313.  
  314.   Function DosPrintJobDel (pszServer: PSZ;uJobId: USHORT): SPLERR;
  315.  
  316.   Function DosPrintJobEnum (pszServer,pszQueueName: PSZ;uLevel: USHORT;pbBuf: PBYTE;cbBuf: USHORT;
  317.                             pcReturned,pcTotal: PUSHORT): SPLERR;
  318.  
  319.   Function DosPrintJobGetId (hFile: HFILE;pInfo: PPRIDINFO;cbInfo: USHORT): SPLERR;
  320.  
  321. {
  322.  *      Values for parmnum in DosPrintQSetInfo.
  323.  }
  324.  
  325.  
  326. Const
  327.   PRQ_PRIORITY_PARMNUM    = 2;
  328.   PRQ_STARTTIME_PARMNUM            = 3;
  329.   PRQ_UNTILTIME_PARMNUM            = 4;
  330.   PRQ_SEPARATOR_PARMNUM            = 5;
  331.   PRQ_PROCESSOR_PARMNUM            = 6;
  332.   PRQ_DESTINATIONS_PARMNUM         = 7;
  333.   PRQ_PARMS_PARMNUM                = 8;
  334.   PRQ_COMMENT_PARMNUM              = 9;
  335.   PRQ_PRINTERS_PARMNUM             = 12;
  336.   PRQ_DRIVERNAME_PARMNUM           = 13;
  337.   PRQ_DRIVERDATA_PARMNUM           = 14;
  338.   PRQ_MAXPARMNUM                   = 14;
  339.  
  340. {
  341.  *      Print Queue Priority
  342.  }
  343.  
  344.   PRQ_MAX_PRIORITY                 = 1;                     { highest priority }
  345.   PRQ_DEF_PRIORITY                 = 5;
  346.   PRQ_MIN_PRIORITY                 = 9;                     { lowest priority }
  347.   PRQ_NO_PRIORITY                  = 0;
  348.  
  349. {
  350.  *      Print queue status bitmask and values for level 1
  351.  }
  352.  
  353.   PRQ_STATUS_MASK                  = 3;
  354.   PRQ_ACTIVE                       = 0;
  355.   PRQ_PAUSED                       = 1;
  356.   PRQ_ERROR                        = 2;
  357.   PRQ_PENDING                      = 3;
  358.  
  359. {
  360.  *      Print queue status bits for level 3
  361.  }
  362.  
  363.   PRQ3_PAUSED                      =  $1;
  364.   PRQ3_PENDING                     =  $2;
  365.  
  366. {
  367.  *      Values for parmnum in DosPrintJobSetInfo.
  368.  }
  369.  
  370.   PRJ_NOTIFYNAME_PARMNUM           = 3;
  371.   PRJ_DATATYPE_PARMNUM             = 4;
  372.   PRJ_PARMS_PARMNUM                = 5;
  373.   PRJ_POSITION_PARMNUM             = 6;
  374.   PRJ_COMMENT_PARMNUM              = 11;
  375.   PRJ_DOCUMENT_PARMNUM             = 12;
  376.   PRJ_PRIORITY_PARMNUM             = 14;
  377.   PRJ_PROCPARMS_PARMNUM            = 16;
  378.   PRJ_DRIVERDATA_PARMNUM           = 18;
  379.   PRJ_MAXPARMNUM                   = 18;
  380.  
  381. {
  382.  *      Bitmap masks for status field of PRJINFO.
  383.  }
  384.  
  385. { 2-7 bits also used in device status }
  386.  
  387.   PRJ_QSTATUS                      =  $0003;                { Bits 0,1 }
  388.   PRJ_DEVSTATUS                    =  $0ffc;                { 2-11 bits }
  389.   PRJ_COMPLETE                     =  $0004;                {  Bit 2   }
  390.   PRJ_INTERV                       =  $0008;                {  Bit 3   }
  391.   PRJ_ERROR                        =  $0010;                {  Bit 4   }
  392.   PRJ_DESTOFFLINE                  =  $0020;                {  Bit 5   }
  393.   PRJ_DESTPAUSED                   =  $0040;                {  Bit 6   }
  394.   PRJ_NOTIFY                       =  $0080;                {  Bit 7   }
  395.   PRJ_DESTNOPAPER                  =  $0100;                {  Bit 8   }
  396.   PRJ_DESTFORMCHG                  =  $0200;                { BIT 9 }
  397.   PRJ_DESTCRTCHG                   =  $0400;                { BIT 10 }
  398.   PRJ_DESTPENCHG                   =  $0800;                { BIT 11 }
  399.   PRJ_DELETED                      =  $8000;                { Bit 15   }
  400.  
  401. {
  402.  *      Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO.
  403.  }
  404.  
  405.   PRJ_QS_QUEUED                    = 0;
  406.   PRJ_QS_PAUSED                    = 1;
  407.   PRJ_QS_SPOOLING                  = 2;
  408.   PRJ_QS_PRINTING                  = 3;
  409.  
  410. {
  411.  *      Print Job Priority
  412.  }
  413.  
  414.   PRJ_MAX_PRIORITY                 = 99;                    { lowest priority }
  415.   PRJ_MIN_PRIORITY                 = 1;                     { highest priority }
  416.   PRJ_NO_PRIORITY                  = 0;
  417.  
  418.  
  419. {
  420.  *      Bitmap masks for status field of PRDINFO.
  421.  *      see PRJ_... for bits 2-11
  422.  }
  423.  
  424.   PRD_STATUS_MASK                  =  $0003;                { Bits 0,1 }
  425.   PRD_DEVSTATUS                    =  $0ffc;                { 2-11 bits }
  426.  
  427. {
  428.  *      Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO.
  429.  }
  430.  
  431.   PRD_ACTIVE                       = 0;
  432.   PRD_PAUSED                       = 1;
  433.  
  434. {
  435.  *      Control codes used in DosPrintDestControl.
  436.  }
  437.  
  438.   PRD_DELETE                       = 0;
  439.   PRD_PAUSE                        = 1;
  440.   PRD_CONT                         = 2;
  441.   PRD_RESTART                      = 3;
  442.  
  443. {
  444.  *      Values for parmnum in DosPrintDestSetInfo.
  445.  }
  446.  
  447.   PRD_LOGADDR_PARMNUM              = 3;
  448.   PRD_COMMENT_PARMNUM              = 7;
  449.   PRD_DRIVERS_PARMNUM              = 8;
  450.   PRD_TIMEOUT_PARMNUM              = 10;
  451.  
  452. Implementation
  453.   Function DosPrintDestAdd;               External 'PMSPL'    Index  101;
  454.   Function DosPrintDestControl;           External 'PMSPL'    Index   80;
  455.   Function DosPrintDestDel;               External 'PMSPL'    Index  103;
  456.   Function DosPrintDestEnum;              External 'PMSPL'    Index   82;
  457.   Function DosPrintDestGetInfo;           External 'PMSPL'    Index   81;
  458.   Function DosPrintDestSetInfo;           External 'PMSPL'    Index  102;
  459.   Function DosPrintJobContinue;           External 'PMSPL'    Index   84;
  460.   Function DosPrintJobDel;                External 'PMSPL'    Index   86;
  461.   Function DosPrintJobEnum;               External 'PMSPL'    Index   92;
  462.   Function DosPrintJobGetId;              External 'PMSPL'    Index  105;
  463.   Function DosPrintJobGetInfo;            External 'PMSPL'    Index   90;
  464.   Function DosPrintJobPause;              External 'PMSPL'    Index   85;
  465.   Function DosPrintJobSetInfo;            External 'PMSPL'    Index   91;
  466.   Function DosPrintQAdd;                  External 'PMSPL'    Index   93;
  467.   Function DosPrintQContinue;             External 'PMSPL'    Index   95;
  468.   Function DosPrintQDel;                  External 'PMSPL'    Index   96;
  469.   Function DosPrintQEnum;                 External 'PMSPL'    Index   99;
  470.   Function DosPrintQGetInfo;              External 'PMSPL'    Index   97;
  471.   Function DosPrintQPause;                External 'PMSPL'    Index   94;
  472.   Function DosPrintQPurge;                External 'PMSPL'    Index  104;
  473.   Function DosPrintQSetInfo;              External 'PMSPL'    Index   98;
  474.   Procedure PrtAbort;                     External 'PMSPL'    Index   75;
  475.   Function PrtClose;                      External 'PMSPL'    Index   73;
  476.   Function PrtDevIOCtl;                   External 'PMSPL'    Index   72;
  477.   Function PrtOpen;                       External 'PMSPL'    Index   70;
  478.   Function PrtWrite;                      External 'PMSPL'    Index   71;
  479.   Function SplMessageBox;                 External 'PMSPL'    Index    7;
  480.   Function SplQmAbort;                    External 'PMSPL'    Index    5;
  481.   Function SplQmAbortDoc;                 External 'PMSPL'    Index    8;
  482.   Function SplQmClose;                    External 'PMSPL'    Index    6;
  483.   Function SplQmEndDoc;                   External 'PMSPL'    Index    3;
  484.   Function SplQmOpen;                     External 'PMSPL'    Index    1;
  485.   Function SplQmStartDoc;                 External 'PMSPL'    Index    2;
  486.   Function SplQmWrite;                    External 'PMSPL'    Index    4;
  487.   Function SplQpInstall; Begin UnKnown('SplQpInstall','PmSpl') End;
  488.   Function SplQpQueryDt; Begin UnKnown('SplQpQueryDt','PmSpl') End;
  489.   Function SplStdClose;                   External 'PMSPL'    Index   51;
  490.   Function SplStdDelete;                  External 'PMSPL'    Index   54;
  491.   Function SplStdGetBits;                 External 'PMSPL'    Index   55;
  492.   Function SplStdOpen;                    External 'PMSPL'    Index   50;
  493.   Function SplStdQueryLength;             External 'PMSPL'    Index   56;
  494.   Function SplStdStart;                   External 'PMSPL'    Index   52;
  495.   Function SplStdStop;                    External 'PMSPL'    Index   53;
  496. End.
  497.