--- mstools/h/winspool.h 2018/08/09 18:20:01 1.1 +++ mstools/h/winspool.h 2018/08/09 18:20:33 1.1.1.2 @@ -21,258 +21,546 @@ Revision History: #ifndef _WINSPOOL_ #define _WINSPOOL_ -typedef struct _PRINTERSERVER { - HANDLE hProvidor; - LPSTR lpName; - LPSTR lpDescription; - LPSTR lpLocation; - DWORD cbData; -} PRINTERSERVER, *LPPRINTERSERVER; - -typedef struct _PRINTER { - DWORD Reserved; - LPPRINTERSERVER lpPrinterServer; - LPSTR lpPrinterName; - LPSTR lpPortName; - LPSTR lpDriverName; - LPSTR lpComment; - LPSTR lpLocation; - LPDEVMODE lpDevMode; - LPSTR lpSepFile; - LPSTR lpPrintProcessor; - LPSTR lpDatatype; - LPSTR lpParameters; - LPSTR lpVendorData; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} PRINTER, *LPPRINTER; - -#define PRINTER_CONTROL_PAUSE 1 -#define PRINTER_CONTROL_RESUME 2 -#define PRINTER_CONTROL_PURGE 3 +typedef struct _PRINTER_INFO_1 { + DWORD Flags; + LPTSTR pDescription; + LPTSTR pName; + LPTSTR pComment; +} PRINTER_INFO_1, *PPRINTER_INFO_1, *LPPRINTER_INFO_1; + +typedef struct _PRINTER_INFO_2 { + LPTSTR pServerName; + LPTSTR pPrinterName; + LPTSTR pShareName; + LPTSTR pPortName; + LPTSTR pDriverName; + LPTSTR pComment; + LPTSTR pLocation; + LPDEVMODE pDevMode; + LPTSTR pSepFile; + LPTSTR pPrintProcessor; + LPTSTR pDatatype; + LPTSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} PRINTER_INFO_2, *PPRINTER_INFO_2, *LPPRINTER_INFO_2; + +#define PRINTER_CONTROL_PAUSE 1 +#define PRINTER_CONTROL_RESUME 2 +#define PRINTER_CONTROL_PURGE 3 -#define PRINTER_STATUS_PAUSED 0x00000001 -#define PRINTER_STATUS_ERROR 0x00000002 +#define PRINTER_STATUS_PAUSED 0x00000001 +#define PRINTER_STATUS_ERROR 0x00000002 #define PRINTER_STATUS_PENDING_DELETION 0x00000004 -#define PRINTER_ATTRIBUTE_QUEUED 0x00000001 -#define PRINTER_ATTRIBUTE_DIRECT 0x00000002 -#define PRINTER_ATTRIBUTE_DEFAULT 0x00000004 +#define PRINTER_ATTRIBUTE_QUEUED 0x00000001 +#define PRINTER_ATTRIBUTE_DIRECT 0x00000002 +#define PRINTER_ATTRIBUTE_DEFAULT 0x00000004 +#define PRINTER_ATTRIBUTE_SHARED 0x00000008 #define NO_PRIORITY 0 #define MAX_PRIORITY 99 #define MIN_PRIORITY 1 #define DEF_PRIORITY 1 -typedef struct _JOB { - DWORD cVersion; - DWORD JobId; - LPPRINTERSERVER lpPrinterServer; - LPSTR lpPrinterName; - LPSTR lpUserName; - LPSTR lpDocument; - LPSTR lpNotifyName; - LPSTR lpDatatype; - LPSTR lpPrintProcessor; - LPSTR lpParameters; - LPSTR lpDriverName; - LPDEVMODE lpDevMode; - LPSTR lpStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - DWORD Submitted; - SYSTEMTIME Time; -} JOB, *LPJOB; +typedef struct _JOB_INFO_1 { + DWORD JobId; + LPTSTR pPrinterName; + LPTSTR pMachineName; + LPTSTR pUserName; + LPTSTR pDocument; + LPTSTR pDatatype; + LPTSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; +} JOB_INFO_1, *PJOB_INFO_1, *LPJOB_INFO_1; + +typedef struct _JOB_INFO_2 { + DWORD JobId; + LPTSTR pPrinterName; + LPTSTR pMachineName; + LPTSTR pUserName; + LPTSTR pDocument; + LPTSTR pNotifyName; + LPTSTR pDatatype; + LPTSTR pPrintProcessor; + LPTSTR pParameters; + LPTSTR pDriverName; + LPDEVMODE pDevMode; + LPTSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; // Time the job was spooled + DWORD Time; // How many seconds the job has been printing +} JOB_INFO_2, *PJOB_INFO_2, *LPJOB_INFO_2; #define JOB_CONTROL_PAUSE 1 #define JOB_CONTROL_RESUME 2 #define JOB_CONTROL_CANCEL 3 #define JOB_CONTROL_RESTART 4 -#define JOB_STATUS_SPOOLING 0x00000001 -#define JOB_STATUS_PRINTING 0x00000002 -#define JOB_STATUS_PAUSED 0x00000004 -#define JOB_STATUS_ERROR 0x00000008 -#define JOB_STATUS_OFFLINE 0x00000010 -#define JOB_STATUS_PAPEROUT 0x00000020 -#define JOB_STATUS_DELETING 0x00000040 - -typedef struct _DRIVERINFO { - DWORD cVersion; - LPSTR lpDriverName; // PSCRIPT.QMS 810 - LPSTR lpEnvironment; // Win32.x86 - LPSTR lpDriverPath; // c:\drivers\pscript.dll - LPSTR lpDeviceName; // QMS 810 - LPSTR lpDataFile; // QMS810.PPD - LPSTR lpConfigFile; // PSCRIPT.EXE -} DRIVERINFO, *LPDRIVERINFO; +#define JOB_STATUS_PAUSED 0x00000001 +#define JOB_STATUS_ERROR 0x00000002 +#define JOB_STATUS_DELETING 0x00000004 +#define JOB_STATUS_SPOOLING 0x00000008 +#define JOB_STATUS_PRINTING 0x00000010 +#define JOB_STATUS_OFFLINE 0x00000020 +#define JOB_STATUS_PAPEROUT 0x00000040 +#define JOB_STATUS_PRINTED 0x00000080 + +typedef struct _ADDJOB_INFO_1 { + LPTSTR Path; + DWORD JobId; +} ADDJOB_INFO_1, *PADDJOB_INFO_1, *LPADDJOB_INFO_1; + +typedef struct _DRIVER_INFO_1 { + LPTSTR pName; // QMS 810 +} DRIVER_INFO_1, *PDRIVER_INFO_1, *LPDRIVER_INFO_1; + +typedef struct _DRIVER_INFO_2 { + DWORD cVersion; + LPTSTR pName; // QMS 810 + LPTSTR pEnvironment; // W32x86 + LPTSTR pDriverPath; // c:\drivers\pscript.dll + LPTSTR pDataFile; // c:\drivers\QMS810.PPD + LPTSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL +} DRIVER_INFO_2, *PDRIVER_INFO_2, *LPDRIVER_INFO_2; + +typedef struct _DOC_INFO_1 { + LPTSTR pDocName; + LPTSTR pOutputFile; + LPTSTR pDatatype; +} DOC_INFO_1, *PDOC_INFO_1, *LPDOC_INFO_1; + +typedef struct _FORM_INFO_1 { + LPTSTR pName; + SIZEL Size; + RECTL ImageableArea; +} FORM_INFO_1, *PFORM_INFO_1, *LPFORM_INFO_1; + +typedef struct _PRINTPROCESSOR_INFO_1 { + LPTSTR pName; +} PRINTPROCESSOR_INFO_1, *PPRINTPROCESSOR_INFO_1, *LPPRINTPROCESSOR_INFO_1; + +typedef struct _PORT_INFO_1 { + LPSTR pName; +} PORT_INFO_1, *PPORT_INFO_1, *LPPORT_INFO_1; + +typedef struct _MONITOR_INFO_1 { + LPSTR pName; +} MONITOR_INFO_1, *PMONITOR_INFO_1, *LPMONITOR_INFO_1; + +typedef struct _DATATYPES_INFO_1 { + LPSTR pName; +} DATATYPES_INFO_1, *PDATATYPES_INFO_1, *LPDATATYPES_INFO_1; + +typedef struct _PRINTER_DEFAULTS { + LPSTR pDatatype; + LPDEVMODE pDevMode; +} PRINTER_DEFAULTS, *PPRINTER_DEFAULTS, *LPPRINTER_DEFAULTS; BOOL +WINAPI +EnumPrinters( + DWORD Flags, + LPTSTR Name, + DWORD Level, + LPBYTE pPrinterEnum, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#define PRINTER_ENUM_DEFAULT 0x00000001 +#define PRINTER_ENUM_LOCAL 0x00000002 +#define PRINTER_ENUM_FAVORITE 0x00000004 +#define PRINTER_ENUM_NAME 0x00000008 +#define PRINTER_ENUM_REMOTE 0x00000010 +#define PRINTER_ENUM_SHARED 0x00000020 + +BOOL +WINAPI +OpenPrinter( + LPTSTR pPrinterName, + LPHANDLE phPrinter, + LPPRINTER_DEFAULTS pDefault +); + +BOOL +WINAPI SetJob( - IN LPJOB lpJob, - IN DWORD Command + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + LPBYTE pJob, + DWORD Command ); BOOL +WINAPI GetJob( - LPPRINTER lpPrinter, - DWORD JobId, - LPJOB lpJob, - DWORD cbBuf, - LPDWORD pcbNeeded + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded ); BOOL +WINAPI EnumJobs( - LPPRINTER lpPrinter, - DWORD FirstJob, - DWORD NoJobs, - LPJOB lpJob, - DWORD cbBuf, - LPDWORD lpcbNeeded, - LPDWORD lpcReturned + HANDLE hPrinter, + DWORD FirstJob, + DWORD NoJobs, + DWORD Level, + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned ); -BOOL +HANDLE +WINAPI AddPrinter( - LPPRINTER lpPrinter + LPSTR pName, + DWORD Level, + LPBYTE pPrinter ); BOOL +WINAPI DeletePrinter( - LPPRINTER lpPrinter + HANDLE hPrinter ); BOOL +WINAPI SetPrinter( - LPPRINTER lpPrinter, - DWORD Command + HANDLE hPrinter, + DWORD Level, + LPBYTE pPrinter, + DWORD Command ); BOOL +WINAPI GetPrinter( - LPSTR lpName, - LPPRINTER lpPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded + HANDLE hPrinter, + DWORD Level, + LPBYTE pPrinter, + DWORD cbBuf, + LPDWORD pcbNeeded ); BOOL -EnumPrinters( - DWORD Type, - LPPRINTER lpPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD lpcReturned +WINAPI +AddPrinterDriver( + LPTSTR pName, + DWORD Level, + LPBYTE pDriverInfo ); BOOL -GetJobFromHandle( - HANDLE hFile, - LPJOB lpJob, - DWORD cbBuf, - LPDWORD pcbNeeded +WINAPI +EnumPrinterDrivers( + LPTSTR pName, + LPTSTR pEnvironment, + DWORD Level, + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned ); BOOL -AddPrinterDriver( - LPPRINTERSERVER lpPrinterServer, - LPDRIVERINFO lpDriverInfo +WINAPI +GetPrinterDriver( + HANDLE hPrinter, + LPTSTR pEnvironment, + DWORD Level, + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded ); BOOL -EnumPrinterDrivers( - LPPRINTERSERVER lpPrinterServer, - LPSTR lpEnvironment, - LPDRIVERINFO lpDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD lpcReturned +WINAPI +GetPrinterDriverDirectory( + LPTSTR pName, + LPTSTR pEnvironment, + DWORD Level, + LPBYTE pDriverDirectory, + DWORD cbBuf, + LPDWORD pcbNeeded ); BOOL -GetPrinterDriver( - LPPRINTER lpPrinter, - LPSTR lpEnvironment, - LPDRIVERINFO lpDriverInfo, - DWORD cbBuf, - LPDWORD lpcbNeeded +WINAPI +DeletePrinterDriver( + LPTSTR pName, + LPTSTR pEnvironment, + LPTSTR pDriverName ); BOOL +WINAPI AddPrintProcessor( - LPPRINTERSERVER lpPrinterServer, - LPSTR lpEnvironment, - LPSTR lpPathName, - LPSTR lpName + LPTSTR pName, + LPTSTR pEnvironment, + LPTSTR pPathName, + LPTSTR pPrintProcessorName ); -HANDLE -OpenSpooler( - LPPRINTER lpPrinter +BOOL +WINAPI +EnumPrintProcessors( + LPTSTR pName, + LPTSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned ); BOOL -StartDocSpooler( - HANDLE hSpooler +WINAPI +GetPrintProcessorDirectory( + LPTSTR pName, + LPTSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded ); BOOL -StartFrameSpooler( - HANDLE hSpooler +WINAPI +StartDocPrinter( + HANDLE hPrinter, + DWORD Level, + LPBYTE pDocInfo ); BOOL -WriteSpooler( - HANDLE hSpooler, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pcWritten +WINAPI +StartPagePrinter( + HANDLE hPrinter ); BOOL -EndFrameSpooler( - HANDLE hSpooler +WINAPI +WritePrinter( + HANDLE hPrinter, + LPVOID pBuf, + DWORD cbBuf, + LPDWORD pcWritten ); BOOL -AbortSpooler( - HANDLE hSpooler +WINAPI +EndPagePrinter( + HANDLE hPrinter ); BOOL -ReadSpooler( - HANDLE hSpooler, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD lpNoBytesRead +WINAPI +AbortPrinter( + HANDLE hPrinter ); BOOL -EndDocSpooler( - HANDLE hSpooler +WINAPI +ReadPrinter( + HANDLE hPrinter, + LPVOID pBuf, + DWORD cbBuf, + LPDWORD pNoBytesRead ); BOOL -CloseSpooler( - HANDLE hSpooler +WINAPI +EndDocPrinter( + HANDLE hPrinter ); BOOL +WINAPI +AddJob( + HANDLE hPrinter, + DWORD Level, + LPBYTE pData, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +BOOL +WINAPI +ScheduleJob( + HANDLE hPrinter, + DWORD JobId +); + +BOOL +WINAPI PrinterProperties( - HWND hWnd, - LPPRINTER lpPrinter + HWND hWnd, + HANDLE hPrinter +); + +LONG +WINAPI +DocumentProperties( + HWND hWnd, + HANDLE hPrinter, + LPSTR pDeviceName, + PDEVMODE pDevModeOutput, + PDEVMODE pDevModeInput, + DWORD fMode +); + +LONG +WINAPI +AdvancedDocumentProperties( + HWND hWnd, + HANDLE hPrinter, + LPSTR pDeviceName, + PDEVMODE pDevModeOutput, + PDEVMODE pDevModeInput +); + +DWORD +WINAPI +GetPrinterData( + HANDLE hPrinter, + LPTSTR pValueName, + LPDWORD pType, + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); + +DWORD +WINAPI +SetPrinterData( + HANDLE hPrinter, + LPTSTR pValueName, + DWORD Type, + LPBYTE pData, + DWORD cbData +); + +BOOL +WINAPI +ClosePrinter( + HANDLE hPrinter +); + +BOOL +WINAPI +AddForm( + HANDLE hPrinter, + DWORD Level, + LPBYTE pForm +); + +BOOL +WINAPI +DeleteForm( + HANDLE hPrinter, + LPSTR pFormName +); + +BOOL +WINAPI +GetForm( + HANDLE hPrinter, + LPSTR pFormName, + DWORD Level, + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +BOOL +WINAPI +SetForm( + HANDLE hPrinter, + LPSTR pFormName, + DWORD Level, + LPBYTE pForm +); + +BOOL +WINAPI +EnumForms( + HANDLE hPrinter, + DWORD Level, + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +WINAPI +EnumMonitors( + LPSTR pName, + DWORD Level, + LPBYTE pMonitors, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +WINAPI +EnumPorts( + LPSTR pName, + DWORD Level, + LPBYTE pPorts, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +WINAPI +AddPort( + LPSTR pName, + HWND hWnd, + LPSTR pMonitorName +); + +BOOL +WINAPI +ConfigurePort( + LPSTR pName, + HWND hWnd, + LPSTR pPortName +); + +BOOL +WINAPI +DeletePort( + LPSTR pName, + HWND hWnd, + LPSTR pPortName ); #endif // _WINSPOOL_