mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
570 lines
16 KiB
570 lines
16 KiB
/*****************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1987-1990 **/
|
|
/*****************************************************************/
|
|
/***************************************************************************\
|
|
*
|
|
* Module Name: PMSPL.H
|
|
*
|
|
* OS/2 Presentation Manager Spooler constants, types and function declarations
|
|
*
|
|
* Copyright (c) 1987 IBM Corporation
|
|
*
|
|
* =============================================================================
|
|
*
|
|
* The following symbols are used in this file for conditional sections.
|
|
*
|
|
* INCL_SPLERRORS - defined if INCL_ERRORS defined
|
|
* INCL_SPLFSE - file system emulation calls
|
|
*
|
|
\***************************************************************************/
|
|
|
|
/* if error definitions are required then allow Spooler errors */
|
|
#ifdef INCL_ERRORS
|
|
#define INCL_SPLERRORS
|
|
#endif /* INCL_ERRORS */
|
|
|
|
/* common types and constants
|
|
** ==========================
|
|
*/
|
|
|
|
#define SPLENTRY pascal far
|
|
|
|
#ifndef FARENTRY
|
|
#define FARENTRY pascal far
|
|
#endif
|
|
|
|
/* Names of various OS2SYS.INI spooler variables */
|
|
|
|
#define SPL_INI_SPOOLER "PM_SPOOLER"
|
|
#define SPL_INI_QUEUE "PM_SPOOLER_QUEUE"
|
|
#define SPL_INI_PRINTER "PM_SPOOLER_PRINTER"
|
|
#define SPL_INI_PRINTERDESCR "PM_SPOOLER_PRINTER_DESCR"
|
|
#define SPL_INI_QUEUEDESCR "PM_SPOOLER_QUEUE_DESCR"
|
|
#define SPL_INI_QUEUEDD "PM_SPOOLER_QUEUE_DD"
|
|
#define SPL_INI_QUEUEDDDATA "PM_SPOOLER_QUEUE_DDDATA"
|
|
|
|
/* General SPL return values */
|
|
#define SPL_ERROR 0L
|
|
#define SPL_OK 1L
|
|
|
|
/* handle to a spool file */
|
|
typedef LHANDLE HSPL; /* hspl */
|
|
/* Used in recording of PM_Q_STD data via SplStdxxx calls */
|
|
typedef LHANDLE HSTD; /* hstd */
|
|
typedef HSTD far *PHSTD;
|
|
/* spooler manager open data */
|
|
typedef PSZ FAR *PQMOPENDATA; /* pqmdop */
|
|
|
|
/*** Spooler Queue manager Interface */
|
|
HSPL SPLENTRY SplQmOpen( PSZ, LONG, PQMOPENDATA );
|
|
BOOL SPLENTRY SplQmStartDoc( HSPL, PSZ );
|
|
BOOL SPLENTRY SplQmWrite( HSPL, LONG, PBYTE );
|
|
BOOL SPLENTRY SplQmEndDoc( HSPL );
|
|
BOOL SPLENTRY SplQmClose( HSPL );
|
|
BOOL SPLENTRY SplQmAbort( HSPL );
|
|
BOOL SPLENTRY SplQmAbortDoc( HSPL );
|
|
|
|
#ifdef INCL_SPLFSE
|
|
/*** Direct Device File System Interface */
|
|
|
|
USHORT SPLENTRY PrtOpen( PSZ, PUSHORT, PUSHORT, ULONG,
|
|
USHORT, USHORT, USHORT, ULONG );
|
|
USHORT SPLENTRY PrtClose( HFILE );
|
|
USHORT SPLENTRY PrtWrite( HFILE, PCH, USHORT, PUSHORT );
|
|
USHORT SPLENTRY PrtDevIOCtl( PVOID, PVOID, USHORT, USHORT, HFILE );
|
|
#endif /* include File System Emulation functions */
|
|
|
|
/*** Spooler Queue Processor interface */
|
|
|
|
BOOL SPLENTRY SplQpQueryDt( PLONG, PSZ FAR * );
|
|
BOOL SPLENTRY SplQpInstall( HWND );
|
|
|
|
/* Style for SplMessageBox */
|
|
/* Same as for WinMsgBox see PMWIN.H for details */
|
|
|
|
/*** Spooler message interface */
|
|
USHORT SPLENTRY SplMessageBox( PSZ, USHORT, USHORT,
|
|
PSZ, PSZ, USHORT, USHORT );
|
|
|
|
/*** PM_Q_STD datatype functions */
|
|
BOOL SPLENTRY SplStdOpen( HDC );
|
|
BOOL SPLENTRY SplStdClose( HDC );
|
|
BOOL SPLENTRY SplStdStart( HDC );
|
|
HSTD SPLENTRY SplStdStop( HDC );
|
|
BOOL SPLENTRY SplStdDelete( HSTD );
|
|
BOOL SPLENTRY SplStdGetBits( HSTD, LONG, LONG, PCH );
|
|
LONG SPLENTRY SplStdQueryLength( HSTD );
|
|
|
|
/* Error information and return codes
|
|
** ==================================
|
|
*/
|
|
/* Error information for SplMessageBox */
|
|
#define SPLINFO_QPERROR 0x0001
|
|
#define SPLINFO_DDERROR 0x0002
|
|
#define SPLINFO_SPLERROR 0x0004
|
|
#define SPLINFO_OTHERERROR 0x0080
|
|
#define SPLINFO_INFORMATION 0x0100 /* @P3C */
|
|
#define SPLINFO_WARNING 0x0200 /* @P3C */
|
|
#define SPLINFO_ERROR 0x0400 /* @P3C */
|
|
#define SPLINFO_SEVERE 0x0800 /* @P3C */
|
|
#define SPLINFO_USERINTREQD 0x1000
|
|
|
|
/* Error Data for SplMessageBox */
|
|
#define SPLDATA_PRINTERJAM 0x0001
|
|
#define SPLDATA_FORMCHGREQD 0x0002
|
|
#define SPLDATA_CARTCHGREQD 0x0004
|
|
#define SPLDATA_PENCHGREQD 0x0008
|
|
#define SPLDATA_DATAERROR 0x0010
|
|
#define SPLDATA_UNEXPECTERROR 0x0020
|
|
#define SPLDATA_OTHER 0x8000
|
|
|
|
/* return code for SplStdQueryLength */
|
|
#define SSQL_ERROR (-1L)
|
|
|
|
#ifdef INCL_SPLERRORS
|
|
|
|
#include <pmerr.h>
|
|
|
|
#endif /* INCL_SPLERRORS */
|
|
|
|
|
|
|
|
|
|
/* length for character arrays in structures (excluding zero terminator) */
|
|
#define CNLEN 15 /* Computer name length */
|
|
#define UNLEN 20 /* Maximum user name length */
|
|
#define QNLEN 12 /* Queue name maximum length */
|
|
#define PDLEN 8 /* Print destination length */
|
|
#define DTLEN 9 /* Spool file data type */
|
|
/* e.g. PM_Q_STD,PM_Q_RAW */
|
|
#define QP_DATATYPE_SIZE 15 /* returned by SplQpQueryDt */
|
|
#define DRIV_DEVICENAME_SIZE 31 /* see DRIVDATA struc */
|
|
#define DRIV_NAME_SIZE 8 /* name of device driver */
|
|
#define PRINTERNAME_SIZE 32 /* max printer name length */
|
|
#define FORMNAME_SIZE 31 /* max form name length */
|
|
#define MAXCOMMENTSZ 48 /* queue comment length */
|
|
|
|
#define DEFAULT_LM_PROC "LMPRINT"
|
|
|
|
|
|
|
|
typedef unsigned SPLERR; /* err */
|
|
|
|
typedef struct _PRJINFO { /* prj1 */
|
|
USHORT uJobId;
|
|
CHAR szUserName[UNLEN+1];
|
|
CHAR pad_1;
|
|
CHAR szNotifyName[CNLEN+1];
|
|
CHAR szDataType[DTLEN+1];
|
|
PSZ pszParms;
|
|
USHORT uPosition;
|
|
USHORT fsStatus;
|
|
PSZ pszStatus;
|
|
ULONG ulSubmitted;
|
|
ULONG ulSize;
|
|
PSZ pszComment;
|
|
} PRJINFO;
|
|
typedef PRJINFO far *PPRJINFO;
|
|
typedef PRJINFO near *NPPRJINFO;
|
|
|
|
typedef struct _PRJINFO2 { /* prj2 */
|
|
USHORT uJobId;
|
|
USHORT uPriority;
|
|
PSZ pszUserName;
|
|
USHORT uPosition;
|
|
USHORT fsStatus;
|
|
ULONG ulSubmitted;
|
|
ULONG ulSize;
|
|
PSZ pszComment;
|
|
PSZ pszDocument;
|
|
} PRJINFO2;
|
|
typedef PRJINFO2 far *PPRJINFO2;
|
|
typedef PRJINFO2 near *NPPRJINFO2;
|
|
|
|
typedef struct _PRJINFO3 { /* prj */
|
|
USHORT uJobId;
|
|
USHORT uPriority;
|
|
PSZ pszUserName;
|
|
USHORT uPosition;
|
|
USHORT fsStatus;
|
|
ULONG ulSubmitted;
|
|
ULONG ulSize;
|
|
PSZ pszComment;
|
|
PSZ pszDocument;
|
|
PSZ pszNotifyName;
|
|
PSZ pszDataType;
|
|
PSZ pszParms;
|
|
PSZ pszStatus;
|
|
PSZ pszQueue;
|
|
PSZ pszQProcName;
|
|
PSZ pszQProcParms;
|
|
PSZ pszDriverName;
|
|
PDRIVDATA pDriverData;
|
|
PSZ pszPrinterName;
|
|
} PRJINFO3;
|
|
typedef PRJINFO3 far *PPRJINFO3;
|
|
typedef PRJINFO3 near *NPPRJINFO3;
|
|
|
|
|
|
typedef struct _PRDINFO { /* prd1 */
|
|
CHAR szName[PDLEN+1];
|
|
CHAR szUserName[UNLEN+1];
|
|
USHORT uJobId;
|
|
USHORT fsStatus;
|
|
PSZ pszStatus;
|
|
USHORT time;
|
|
} PRDINFO;
|
|
typedef PRDINFO far *PPRDINFO;
|
|
typedef PRDINFO near *NPPRDINFO;
|
|
|
|
|
|
typedef struct _PRDINFO3 { /* prd */
|
|
PSZ pszPrinterName;
|
|
PSZ pszUserName;
|
|
PSZ pszLogAddr;
|
|
USHORT uJobId;
|
|
USHORT fsStatus;
|
|
PSZ pszStatus;
|
|
PSZ pszComment;
|
|
PSZ pszDrivers;
|
|
USHORT time;
|
|
USHORT usTimeOut;
|
|
} PRDINFO3;
|
|
typedef PRDINFO3 far *PPRDINFO3;
|
|
typedef PRDINFO3 near *NPPRDINFO3;
|
|
|
|
|
|
typedef struct _PRQINFO { /* prq1 */
|
|
CHAR szName[QNLEN+1];
|
|
CHAR pad_1;
|
|
USHORT uPriority;
|
|
USHORT uStartTime;
|
|
USHORT uUntilTime;
|
|
PSZ pszSepFile;
|
|
PSZ pszPrProc;
|
|
PSZ pszDestinations;
|
|
PSZ pszParms;
|
|
PSZ pszComment;
|
|
USHORT fsStatus;
|
|
USHORT cJobs;
|
|
} PRQINFO;
|
|
typedef PRQINFO far *PPRQINFO;
|
|
typedef PRQINFO near *NPPRQINFO;
|
|
|
|
|
|
typedef struct _PRQINFO3 { /* prq */
|
|
PSZ pszName;
|
|
USHORT uPriority;
|
|
USHORT uStartTime;
|
|
USHORT uUntilTime;
|
|
USHORT pad1;
|
|
PSZ pszSepFile;
|
|
PSZ pszPrProc;
|
|
PSZ pszParms;
|
|
PSZ pszComment;
|
|
USHORT fsStatus;
|
|
USHORT cJobs;
|
|
PSZ pszPrinters;
|
|
PSZ pszDriverName;
|
|
PDRIVDATA pDriverData;
|
|
} PRQINFO3;
|
|
typedef PRQINFO3 far *PPRQINFO3;
|
|
typedef PRQINFO3 near *NPPRQINFO3;
|
|
|
|
|
|
/*
|
|
* structure for DosPrintJobGetId
|
|
*/
|
|
typedef struct _PRIDINFO { /* prjid */
|
|
USHORT uJobId;
|
|
CHAR szServer[CNLEN + 1];
|
|
CHAR szQName[QNLEN+1];
|
|
CHAR pad_1;
|
|
} PRIDINFO;
|
|
typedef PRIDINFO far *PPRIDINFO;
|
|
typedef PRIDINFO near *NPPRIDINFO;
|
|
|
|
|
|
/****************************************************************
|
|
* *
|
|
* Function prototypes *
|
|
* *
|
|
****************************************************************/
|
|
|
|
SPLERR SPLENTRY DosPrintDestEnum(
|
|
PSZ pszServer,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcReturned,
|
|
PUSHORT pcTotal
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintDestControl(
|
|
PSZ pszServer,
|
|
PSZ pszDevName,
|
|
USHORT uControl
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintDestGetInfo(
|
|
PSZ pszServer,
|
|
PSZ pszName,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcbNeeded
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintDestAdd(
|
|
PSZ pszServer,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintDestSetInfo(
|
|
PSZ pszServer,
|
|
PSZ pszName,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
USHORT uParmNum
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintDestDel(
|
|
PSZ pszServer,
|
|
PSZ pszPrinterName
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQEnum(
|
|
PSZ pszServer,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcReturned,
|
|
PUSHORT pcTotal
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQGetInfo(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcbNeeded
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQSetInfo(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
USHORT uParmNum
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQPause(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQContinue(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQPurge(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQAdd(
|
|
PSZ pszServer,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintQDel(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobGetInfo(
|
|
PSZ pszServer,
|
|
USHORT uJobId,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcbNeeded
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobSetInfo(
|
|
PSZ pszServer,
|
|
USHORT uJobId,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
USHORT uParmNum
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobPause(
|
|
PSZ pszServer,
|
|
USHORT uJobId
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobContinue(
|
|
PSZ pszServer,
|
|
USHORT uJobId
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobDel(
|
|
PSZ pszServer,
|
|
USHORT uJobId
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobEnum(
|
|
PSZ pszServer,
|
|
PSZ pszQueueName,
|
|
USHORT uLevel,
|
|
PBYTE pbBuf,
|
|
USHORT cbBuf,
|
|
PUSHORT pcReturned,
|
|
PUSHORT pcTotal
|
|
);
|
|
|
|
SPLERR SPLENTRY DosPrintJobGetId(
|
|
HFILE hFile,
|
|
PPRIDINFO pInfo,
|
|
USHORT cbInfo
|
|
);
|
|
|
|
|
|
/*
|
|
* Values for parmnum in DosPrintQSetInfo.
|
|
*/
|
|
|
|
#define PRQ_PRIORITY_PARMNUM 2
|
|
#define PRQ_STARTTIME_PARMNUM 3
|
|
#define PRQ_UNTILTIME_PARMNUM 4
|
|
#define PRQ_SEPARATOR_PARMNUM 5
|
|
#define PRQ_PROCESSOR_PARMNUM 6
|
|
#define PRQ_DESTINATIONS_PARMNUM 7
|
|
#define PRQ_PARMS_PARMNUM 8
|
|
#define PRQ_COMMENT_PARMNUM 9
|
|
#define PRQ_PRINTERS_PARMNUM 12
|
|
#define PRQ_DRIVERNAME_PARMNUM 13
|
|
#define PRQ_DRIVERDATA_PARMNUM 14
|
|
#define PRQ_MAXPARMNUM 14
|
|
|
|
/*
|
|
* Print Queue Priority
|
|
*/
|
|
|
|
#define PRQ_MAX_PRIORITY 1 /* highest priority */
|
|
#define PRQ_DEF_PRIORITY 5
|
|
#define PRQ_MIN_PRIORITY 9 /* lowest priority */
|
|
#define PRQ_NO_PRIORITY 0
|
|
|
|
/*
|
|
* Print queue status bitmask and values for level 1
|
|
*/
|
|
|
|
#define PRQ_STATUS_MASK 3
|
|
#define PRQ_ACTIVE 0
|
|
#define PRQ_PAUSED 1
|
|
#define PRQ_ERROR 2
|
|
#define PRQ_PENDING 3
|
|
|
|
/*
|
|
* Print queue status bits for level 3
|
|
*/
|
|
|
|
#define PRQ3_PAUSED 0x1
|
|
#define PRQ3_PENDING 0x2
|
|
|
|
/*
|
|
* Values for parmnum in DosPrintJobSetInfo.
|
|
*/
|
|
|
|
#define PRJ_NOTIFYNAME_PARMNUM 3
|
|
#define PRJ_DATATYPE_PARMNUM 4
|
|
#define PRJ_PARMS_PARMNUM 5
|
|
#define PRJ_POSITION_PARMNUM 6
|
|
#define PRJ_COMMENT_PARMNUM 11
|
|
#define PRJ_DOCUMENT_PARMNUM 12
|
|
#define PRJ_PRIORITY_PARMNUM 14
|
|
#define PRJ_PROCPARMS_PARMNUM 16
|
|
#define PRJ_DRIVERDATA_PARMNUM 18
|
|
#define PRJ_MAXPARMNUM 18
|
|
|
|
/*
|
|
* Bitmap masks for status field of PRJINFO.
|
|
*/
|
|
|
|
/* 2-7 bits also used in device status */
|
|
|
|
#define PRJ_QSTATUS 0x0003 /* Bits 0,1 */
|
|
#define PRJ_DEVSTATUS 0x0ffc /* 2-11 bits */
|
|
#define PRJ_COMPLETE 0x0004 /* Bit 2 */
|
|
#define PRJ_INTERV 0x0008 /* Bit 3 */
|
|
#define PRJ_ERROR 0x0010 /* Bit 4 */
|
|
#define PRJ_DESTOFFLINE 0x0020 /* Bit 5 */
|
|
#define PRJ_DESTPAUSED 0x0040 /* Bit 6 */
|
|
#define PRJ_NOTIFY 0x0080 /* Bit 7 */
|
|
#define PRJ_DESTNOPAPER 0x0100 /* Bit 8 */
|
|
#define PRJ_DESTFORMCHG 0x0200 /* BIT 9 */
|
|
#define PRJ_DESTCRTCHG 0x0400 /* BIT 10 */
|
|
#define PRJ_DESTPENCHG 0x0800 /* BIT 11 */
|
|
#define PRJ_DELETED 0x8000 /* Bit 15 */
|
|
|
|
/*
|
|
* Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO.
|
|
*/
|
|
|
|
#define PRJ_QS_QUEUED 0
|
|
#define PRJ_QS_PAUSED 1
|
|
#define PRJ_QS_SPOOLING 2
|
|
#define PRJ_QS_PRINTING 3
|
|
|
|
/*
|
|
* Print Job Priority
|
|
*/
|
|
|
|
#define PRJ_MAX_PRIORITY 99 /* lowest priority */
|
|
#define PRJ_MIN_PRIORITY 1 /* highest priority */
|
|
#define PRJ_NO_PRIORITY 0
|
|
|
|
|
|
/*
|
|
* Bitmap masks for status field of PRDINFO.
|
|
* see PRJ_... for bits 2-11
|
|
*/
|
|
|
|
#define PRD_STATUS_MASK 0x0003 /* Bits 0,1 */
|
|
#define PRD_DEVSTATUS 0x0ffc /* 2-11 bits */
|
|
|
|
/*
|
|
* Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO.
|
|
*/
|
|
|
|
#define PRD_ACTIVE 0
|
|
#define PRD_PAUSED 1
|
|
|
|
/*
|
|
* Control codes used in DosPrintDestControl.
|
|
*/
|
|
|
|
#define PRD_DELETE 0
|
|
#define PRD_PAUSE 1
|
|
#define PRD_CONT 2
|
|
#define PRD_RESTART 3
|
|
|
|
/*
|
|
* Values for parmnum in DosPrintDestSetInfo.
|
|
*/
|
|
|
|
#define PRD_LOGADDR_PARMNUM 3
|
|
#define PRD_COMMENT_PARMNUM 7
|
|
#define PRD_DRIVERS_PARMNUM 8
|