| 1 | #ifndef __OSLIBSPL_H__
 | 
|---|
| 2 | #define __OSLIBSPL_H__
 | 
|---|
| 3 | 
 | 
|---|
| 4 | 
 | 
|---|
| 5 | /*******************************************************************************
 | 
|---|
| 6 | *   Structures and Typedefs                                                    *
 | 
|---|
| 7 | *******************************************************************************/
 | 
|---|
| 8 | typedef struct
 | 
|---|
| 9 | {
 | 
|---|
| 10 |     ULONG   flType;
 | 
|---|
| 11 |     LPSTR   pszComputerName;
 | 
|---|
| 12 |     LPSTR   pszPrintDestinationName;
 | 
|---|
| 13 |     LPSTR   pszDescription;
 | 
|---|
| 14 |     LPSTR   pszLocalName;
 | 
|---|
| 15 | } OSLIB_PRINTERINFO, *POSLIB_PRINTERINFO;
 | 
|---|
| 16 | 
 | 
|---|
| 17 | typedef struct
 | 
|---|
| 18 | {
 | 
|---|
| 19 |     LONG    cb;
 | 
|---|
| 20 |     LONG    lVersion;
 | 
|---|
| 21 |     CHAR    szDeviceName[32];
 | 
|---|
| 22 |     CHAR    abGeneralData[1];
 | 
|---|
| 23 | } OSLIB_DRIVDATA;
 | 
|---|
| 24 | 
 | 
|---|
| 25 | typedef struct
 | 
|---|
| 26 | {
 | 
|---|
| 27 |     LPSTR     pszName;
 | 
|---|
| 28 |     USHORT  uPriority;
 | 
|---|
| 29 |     USHORT  uStartTime;
 | 
|---|
| 30 |     USHORT  uUntilTime;
 | 
|---|
| 31 |     USHORT  fsType;
 | 
|---|
| 32 |     LPSTR     pszSepFile;
 | 
|---|
| 33 |     LPSTR     pszPrProc;
 | 
|---|
| 34 |     LPSTR     pszParms;
 | 
|---|
| 35 |     LPSTR     pszComment;
 | 
|---|
| 36 |     USHORT  fsStatus;
 | 
|---|
| 37 |     USHORT  cJobs;
 | 
|---|
| 38 |     LPSTR     pszPrinters;
 | 
|---|
| 39 |     LPSTR     pszDriverName;
 | 
|---|
| 40 |     OSLIB_DRIVDATA *pDriverData;
 | 
|---|
| 41 | } OSLIB_PRQINFO3, *POSLIB_PRQINFO3;
 | 
|---|
| 42 | 
 | 
|---|
| 43 | typedef struct {
 | 
|---|
| 44 |     LPSTR        pszPrinterName;  /*  Print device name. */
 | 
|---|
| 45 |     LPSTR        pszUserName;     /*  User who submitted job. */
 | 
|---|
| 46 |     LPSTR        pszLogAddr;      /*  Logical address (for example LPT1). */
 | 
|---|
| 47 |     USHORT     uJobId;          /*  Identity of current job. */
 | 
|---|
| 48 |     USHORT     fsStatus;        /*  Print destination status. */
 | 
|---|
| 49 |     LPSTR        pszStatus;       /*  Print device comment while printing. */
 | 
|---|
| 50 |     LPSTR        pszComment;      /*  Print device description. */
 | 
|---|
| 51 |     LPSTR        pszDrivers;      /*  Drivers supported by print device. */
 | 
|---|
| 52 |     USHORT     time;            /*  Time job has been printing (minutes) */
 | 
|---|
| 53 |     USHORT     usTimeOut;       /*  Device timeout (seconds) */
 | 
|---|
| 54 | } OSLIB_PRDINFO3, *POSLIB_PRDINFO3;
 | 
|---|
| 55 | 
 | 
|---|
| 56 | typedef struct
 | 
|---|
| 57 | {
 | 
|---|
| 58 |     LPSTR       pszLogAddress;
 | 
|---|
| 59 |     LPSTR       pszDriverName;
 | 
|---|
| 60 |     void *        pdriv;
 | 
|---|
| 61 |     LPSTR       pszDataType;
 | 
|---|
| 62 |     LPSTR       pszComment;
 | 
|---|
| 63 |     LPSTR       pszQueueProcName;
 | 
|---|
| 64 |     LPSTR       pszQueueProcParams;
 | 
|---|
| 65 |     LPSTR       pszSpoolerParams;
 | 
|---|
| 66 |     LPSTR       pszNetworkParams;
 | 
|---|
| 67 | } OSLIB_DEVOPENSTRUC, *POSLIB_DEVOPENSTRUC;
 | 
|---|
| 68 | 
 | 
|---|
| 69 | /*** Flags for flType in  PRINTERINFO and SplEnumPrinter *************/
 | 
|---|
| 70 | #define OSLIB_SPL_PR_QUEUE            0x00000001 /* include queues */
 | 
|---|
| 71 | #define OSLIB_SPL_PR_DIRECT_DEVICE    0x00000002 /* unattached devices */
 | 
|---|
| 72 | #define OSLIB_SPL_PR_QUEUED_DEVICE    0x00000004 /* queued devices */
 | 
|---|
| 73 | #define OSLIB_SPL_PR_LOCAL_ONLY       0x00000100 /* exclude remote queues */
 | 
|---|
| 74 | 
 | 
|---|
| 75 | #define OSLIB_SPL_PR_ALL       (OSLIB_SPL_PR_QUEUE|OSLIB_SPL_PR_DIRECT_DEVICE|OSLIB_SPL_PR_QUEUED_DEVICE)
 | 
|---|
| 76 | 
 | 
|---|
| 77 | #define OSLIB_PRQ3_TYPE_RAW         0x0001 /* spools printer-specific data */
 | 
|---|
| 78 | #define OSLIB_PRQ3_TYPE_BYPASS      0x0002 /* allow print while spooling   */
 | 
|---|
| 79 | #define OSLIB_PRQ3_TYPE_APPDEFAULT  0x0004 /* set for Application default Q*/
 | 
|---|
| 80 | 
 | 
|---|
| 81 | void * OSLibSplEnumPrinter(LPSTR pszComputer, DWORD flType, PDWORD pcReturned, PDWORD pcTotal);
 | 
|---|
| 82 | void * OSLibSplEnumDevice(LPSTR pszComputer, DWORD ulLevel, DWORD *pcReturned, DWORD *pcTotal);
 | 
|---|
| 83 | void * OSLibSplEnumQueue(LPSTR pszComputer, DWORD ulLevel, DWORD *pcReturned, DWORD *pcTotal);
 | 
|---|
| 84 | 
 | 
|---|
| 85 | BOOL ExportPrintersToRegistry(void);
 | 
|---|
| 86 | ULONG OSLibShowPrinterDialog(HWND, LPSTR printerName);
 | 
|---|
| 87 | 
 | 
|---|
| 88 | BOOL OSLibSplFindDefaultPrinter(LPSTR lpszPortName, LPSTR lpszDriverName, LPSTR lpszQueueName);
 | 
|---|
| 89 | void * OSLibSplQueryQueue(LPSTR pszComputerName, LPSTR pszQueueName, ULONG ulLevel);
 | 
|---|
| 90 | 
 | 
|---|
| 91 | HANDLE  OSLibSplQmOpen(LPSTR pszToken, LONG lCount, LPSTR* pqmdopData);
 | 
|---|
| 92 | BOOL    OSLibSplQmClose(HANDLE hspl);
 | 
|---|
| 93 | BOOL    OSLibSplQmStartDoc(HANDLE hspl, LPSTR pszDocName);
 | 
|---|
| 94 | BOOL    OSLibSplQmEndDoc(HANDLE hspl);
 | 
|---|
| 95 | BOOL    OSLibSplQmWrite(HANDLE hspl, LONG cbData, PVOID pvData);
 | 
|---|
| 96 | BOOL    OSLibSplQmNewPage(HANDLE hspl, ULONG ulPageNo);
 | 
|---|
| 97 | 
 | 
|---|
| 98 | ULONG OSLibSplWinGetLastError(void);
 | 
|---|
| 99 | 
 | 
|---|
| 100 | #endif
 | 
|---|