home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / 3COMM.ZIP / H.ZIP / SPOOL.H < prev    next >
C/C++ Source or Header  |  1989-05-17  |  9KB  |  271 lines

  1. /********************************************************************/
  2. /**                   Microsoft OS/2 LAN Manager                   **/
  3. /**            Copyright(c) Microsoft Corp., 1987, 1988            **/
  4. /********************************************************************/
  5.  
  6. /********************************************************************
  7.  *                                    *
  8.  *  About this file ...  SPOOL.H                    *
  9.  *                                    *
  10.  *  This file contains information about the DosPrint APIs.        *
  11.  *                                    *
  12.  *    Function prototypes.                        *
  13.  *                                    *
  14.  *    Data structure templates.                    *
  15.  *                                    *
  16.  *    Definition of special values.                    *
  17.  *                                    *
  18.  *                                    *
  19.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  20.  *       file    depends on values defined in NETCONS.H.            *
  21.  *                                    *
  22.  ********************************************************************/
  23.  
  24.  
  25. /**************************************************************** 
  26.  *                                *
  27.  *          Function prototypes                 *
  28.  *                                *
  29.  ****************************************************************/
  30.  
  31.  
  32. extern API_FUNCTION
  33.  DosPrintDestEnum ( const char far *, short, char far *, unsigned short, 
  34.     unsigned short far *, unsigned short far * );
  35.  
  36. extern API_FUNCTION
  37.   DosPrintDestControl ( const char far *, char far *, int );
  38.  
  39. extern API_FUNCTION
  40.   DosPrintDestGetInfo ( const char far *, char far *, short,char far *, 
  41.     unsigned short, unsigned short far * );
  42.  
  43. extern API_FUNCTION
  44.   DosPrintDestStatus (    char far *, unsigned short, unsigned short, char far * );
  45.  
  46. extern API_FUNCTION
  47.  DosPrintQEnum ( const char far *, short, char far *, unsigned short, 
  48.     unsigned short far *, unsigned short far * );
  49.  
  50. extern API_FUNCTION
  51.   DosPrintQGetInfo ( const char far *, char far *, short, char far *, unsigned short, unsigned short far * );
  52.  
  53. extern API_FUNCTION
  54.   DosPrintQSetInfo ( const char far *, char far *, short, char far *, unsigned short, short);
  55.  
  56. extern API_FUNCTION
  57.   DosPrintQPause ( const char far *, char far * );
  58.  
  59. extern API_FUNCTION
  60.   DosPrintQContinue ( const char far *, char far * );
  61.  
  62. extern API_FUNCTION
  63.   DosPrintQPurge ( const char far *, char far * );
  64.  
  65. extern API_FUNCTION
  66.   DosPrintQAdd ( const char far *, short, char far *, unsigned short );
  67.  
  68. extern API_FUNCTION
  69.   DosPrintQDel ( const char far *, char far * );
  70.  
  71. extern API_FUNCTION
  72.   DosPrintJobGetInfo ( const char far *, unsigned short, short,char far *, 
  73.     unsigned short, unsigned short far * );
  74.  
  75. extern API_FUNCTION
  76.   DosPrintJobSetInfo ( const char far *, unsigned short,short, char far *, 
  77.     unsigned short, short );
  78.  
  79. extern API_FUNCTION
  80.   DosPrintJobPause ( const char far *, unsigned short );
  81.  
  82. extern API_FUNCTION
  83.   DosPrintJobContinue ( const char far *, unsigned short );
  84.  
  85. extern API_FUNCTION
  86.   DosPrintJobDel ( const char far *, unsigned short );
  87.  
  88. extern API_FUNCTION
  89.   DosPrintJobEnum( const char far *, const char far *, short, char far *, 
  90.     unsigned short, unsigned short far *,unsigned short far *);
  91.  
  92. extern API_FUNCTION
  93.  DosPrintJobGetId(unsigned short, char far *, unsigned short);
  94.  
  95.  
  96. /**************************************************************** 
  97.  *                                *
  98.  *          Data structure templates            *
  99.  *                                *
  100.  ****************************************************************/
  101.  
  102.  
  103. struct prjob_info {
  104.    unsigned short prjob_id;       /* job ID                    */
  105.    char prjob_username[UNLEN+1];   /* submitting user name            */
  106.    char prjob_pad_1;            /* byte to pad to word boundary         */
  107.    char prjob_notifyname[CNLEN+1]; /* message name to notify            */
  108.    char prjob_datatype[DTLEN+1];   /* spool file data type name            */
  109.    char far * prjob_parms;         /* implementation defined parameter string */
  110.    unsigned short prjob_position;  /* position of the job in the queue        */
  111.                    /* For SetInfo                    */
  112.                    /* 0 means donot change position        */
  113.                    /* position > # of jobs means the end        */
  114.    unsigned short prjob_status;    /* job status                              */
  115.    char far * prjob_status_string; /* status string posted by print processor */
  116.    unsigned long prjob_submitted;  /* time when the job is submitted          */
  117.                                    /* (from 1970-1-1 in sec)                  */
  118.    unsigned long prjob_size;       /* job size                                */
  119.    char far *prjob_comment;       /* comment associated with this job        */
  120. };
  121.  
  122. struct prdest_info {
  123.    char prdest_name[PDLEN+1];       /* name of the print destination         */
  124.    char prdest_username[UNLEN+1];   /* the username of current job.          */
  125.    unsigned short prdest_jobid;     /* current printing job id or 0 if none  */
  126.    unsigned short prdest_status;    /* status of the destination, a bit mask */
  127.    char far * prdest_status_string; /* status string posted by the processor */
  128.    unsigned short prdest_time;        /* printing time in min.                 */
  129. };
  130.  
  131. struct prq_info {
  132.   char prq_name[QNLEN+1];     /* queue name                     */
  133.   char prq_pad_1;          /* byte to pad to word boundary         */
  134.   unsigned short prq_priority;   /* Priority (0-9) with 1 lowest             */
  135.   unsigned short prq_starttime;  /* time to start the queue.                 */
  136.                                  /* (from 00:00 of the day in min)           */
  137.   unsigned short prq_untiltime;  /* time to stop the queue.                  */
  138.                                  /* (from 00:00 of the day in min)           */
  139.   char far * prq_separator;      /* separator file name                      */
  140.   char far * prq_processor;      /* command string to invoke print processor */
  141.                                  /*   ("PATHNAME PARM1=VAL1 PARM2=VAL2 ...") */
  142.   char far * prq_destinations;   /* destination names the queue is routed to */
  143.                                  /*   ("DEST1 DEST2 ...")                    */
  144.   char far * prq_parms;          /* implementation defined parameter string  */
  145.   char far * prq_comment;     /* comment string                  */
  146.   unsigned short prq_status;     /* queue status mask:                       */
  147.                                  /*   0  Queue active                        */
  148.                                  /*   1  Queue paused                        */
  149.                                  /*   2  Queue unscheduled                   */
  150.                                  /*   3  Queue pending delete                */
  151.   unsigned short prq_jobcount;   /* number of jobs in the queue              */
  152. };
  153.  
  154. /*
  155.  * structure for DosPrintJobGetId
  156.  */
  157. struct prid_info {
  158.     unsigned short prjid_id;
  159.     char prjid_server[CNLEN + 1];    /* server name */
  160.     char prjid_qname[QNLEN+1];    /* queue to which the job is queued */
  161.        char prjid_pad_1;         /* byte to pad to word boundary         */
  162. };
  163.  
  164.  
  165. /**************************************************************** 
  166.  *                                *
  167.  *          Special values and constants            *
  168.  *                                *
  169.  ****************************************************************/
  170.  
  171.  
  172.  
  173.  
  174. /*
  175.  *    Values for parmnum in DosPrintQSetInfo.
  176.  */
  177.  
  178. #define PRQ_PRIORITY_PARMNUM           2
  179. #define PRQ_STARTTIME_PARMNUM           3
  180. #define PRQ_UNTILTIME_PARMNUM           4
  181. #define PRQ_SEPARATOR_PARMNUM           5
  182. #define PRQ_PROCESSOR_PARMNUM           6
  183. #define PRQ_DESTINATIONS_PARMNUM    7
  184. #define PRQ_PARMS_PARMNUM           8
  185. #define PRQ_COMMENT_PARMNUM           9
  186. #define PRQ_MAXPARMNUM              11
  187.  
  188. /*
  189.  *    Print Queue Priority 
  190.  */
  191.  
  192. #define PRQ_MAX_PRIORITY        1
  193. #define PRQ_DEF_PRIORITY        5
  194. #define PRQ_MIN_PRIORITY        9
  195.  
  196. /*
  197.  *    Print queue status bitmask and values.
  198.  */
  199.  
  200. #define PRQ_STATUS_MASK            3
  201. #define PRQ_ACTIVE            0
  202. #define PRQ_PAUSE            1
  203. #define PRQ_ERROR            2
  204. #define PRQ_PENDING            3
  205.  
  206. /*
  207.  *    Values for parmnum in DosPrintJobSetInfo.
  208.  */
  209.  
  210. #define PRJOB_NOTIFYNAME_PARMNUM    3
  211. #define PRJOB_DATATYPE_PARMNUM        4
  212. #define PRJOB_PARMS_PARMNUM        5
  213. #define PRJOB_POSITION_PARMNUM           6
  214. #define PRJOB_COMMENT_PARMNUM           11
  215. #define PRJOB_MAXPARMNUM           11
  216.  
  217. /* 
  218.  *    Bitmap masks for prjob_status field of PRINTJOB.
  219.  */
  220.  
  221. /* 2-7 bits also used in device status */
  222.  
  223. #define PRJOB_QSTATUS       0x3        /* Bits 0,1 */
  224. #define PRJOB_DEVSTATUS       0x1fc    /* 2-8 bits */
  225. #define PRJOB_COMPLETE      0x4        /*  Bit 2   */
  226. #define PRJOB_INTERV        0x8        /*  Bit 3   */
  227. #define PRJOB_ERROR        0x10        /*  Bit 4   */
  228. #define PRJOB_DESTOFFLINE  0x20        /*  Bit 5   */
  229. #define PRJOB_DESTPAUSED   0x40        /*  Bit 6   */
  230. #define PRJOB_NOTIFY       0x80        /* BIT 7 */
  231. #define PRJOB_DESTNOPAPER  0x100    /* BIT 8 */
  232. #define PRJOB_DELETED       0x8000    /* BIT 15 */
  233.  
  234. /* 
  235.  *    Values of PRJOB_QSTATUS bits in prjob_status field of PRINTJOB.
  236.  */
  237.  
  238. #define PRJOB_QS_QUEUED            0
  239. #define PRJOB_QS_PAUSED            1
  240. #define PRJOB_QS_SPOOLING          2
  241. #define PRJOB_QS_PRINTING          3
  242.  
  243. /*
  244.  *    Control codes used in DosPrintDestControl.
  245.  */
  246.  
  247. #define PRDEST_DELETE            0
  248. #define PRDEST_PAUSE            1
  249. #define    PRDEST_CONT            2
  250. #define PRDEST_RESTART            3
  251.  
  252. /*
  253.  *    These manifests define a two-bit field in prdest_status, and
  254.  *    two of the values that field may take.
  255.  */
  256.  
  257. #define PRDEST_STATUS_MASK        0x3
  258. #define    PRDEST_PAUSED            0x1
  259. #define    PRDEST_ACTIVE            0x0
  260.  
  261.  
  262. /*
  263.  *    Standard command argument when invoking print processor
  264.  */
  265. #define PPINPUT        "INPUT="
  266. #define PPOUTPUT    "OUTPUT="
  267. #define PPQUEUE        "QUEUE="
  268. #define PPPARMS        "PARMS="
  269. #define PPJOBID        "JOBID="
  270.  
  271.