--- mstools/h/winspool.h 2018/08/09 18:20:33 1.1.1.2 +++ mstools/h/winspool.h 2018/08/09 18:21:12 1.1.1.3 @@ -21,26 +21,67 @@ Revision History: #ifndef _WINSPOOL_ #define _WINSPOOL_ -typedef struct _PRINTER_INFO_1 { +typedef struct _PRINTER_INFO_1A { 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; + LPSTR pDescription; + LPSTR pName; + LPSTR pComment; +} PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A; + +typedef struct _PRINTER_INFO_1W { + DWORD Flags; + LPWSTR pDescription; + LPWSTR pName; + LPWSTR pComment; +} PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W; + +#ifdef UNICODE +#define PRINTER_INFO_1 PRINTER_INFO_1W +#define PPRINTER_INFO_1 PPRINTER_INFO_1W +#define LPPRINTER_INFO_1 LPPRINTER_INFO_1W +#else +#define PRINTER_INFO_1 PRINTER_INFO_1A +#define PPRINTER_INFO_1 PPRINTER_INFO_1A +#define LPPRINTER_INFO_1 LPPRINTER_INFO_1A +#endif // UNICODE + +typedef struct _PRINTER_INFO_2A { + LPSTR pServerName; + LPSTR pPrinterName; + LPSTR pShareName; + LPSTR pPortName; + LPSTR pDriverName; + LPSTR pComment; + LPSTR pLocation; + LPDEVMODEA pDevMode; + LPSTR pSepFile; + LPSTR pPrintProcessor; + LPSTR pDatatype; + LPSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A; + +typedef struct _PRINTER_INFO_2W { + LPWSTR pServerName; + LPWSTR pPrinterName; + LPWSTR pShareName; + LPWSTR pPortName; + LPWSTR pDriverName; + LPWSTR pComment; + LPWSTR pLocation; + LPDEVMODEW pDevMode; + LPWSTR pSepFile; + LPWSTR pPrintProcessor; + LPWSTR pDatatype; + LPWSTR pParameters; PSECURITY_DESCRIPTOR pSecurityDescriptor; DWORD Attributes; DWORD Priority; @@ -50,7 +91,17 @@ typedef struct _PRINTER_INFO_2 { DWORD Status; DWORD cJobs; DWORD AveragePPM; -} PRINTER_INFO_2, *PPRINTER_INFO_2, *LPPRINTER_INFO_2; +} PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W; + +#ifdef UNICODE +#define PRINTER_INFO_2 PRINTER_INFO_2W +#define PPRINTER_INFO_2 PPRINTER_INFO_2W +#define LPPRINTER_INFO_2 LPPRINTER_INFO_2W +#else +#define PRINTER_INFO_2 PRINTER_INFO_2A +#define PPRINTER_INFO_2 PPRINTER_INFO_2A +#define LPPRINTER_INFO_2 LPPRINTER_INFO_2A +#endif // UNICODE #define PRINTER_CONTROL_PAUSE 1 #define PRINTER_CONTROL_RESUME 2 @@ -70,32 +121,61 @@ typedef struct _PRINTER_INFO_2 { #define MIN_PRIORITY 1 #define DEF_PRIORITY 1 -typedef struct _JOB_INFO_1 { +typedef struct _JOB_INFO_1A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pDatatype; + LPSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A; + +typedef struct _JOB_INFO_1W { DWORD JobId; - LPTSTR pPrinterName; - LPTSTR pMachineName; - LPTSTR pUserName; - LPTSTR pDocument; - LPTSTR pDatatype; - LPTSTR pStatus; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pDatatype; + LPWSTR pStatus; DWORD Status; DWORD Priority; DWORD Position; -} JOB_INFO_1, *PJOB_INFO_1, *LPJOB_INFO_1; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W; + +#ifdef UNICODE +#define JOB_INFO_1 JOB_INFO_1W +#define PJOB_INFO_1 PJOB_INFO_1W +#define LPJOB_INFO_1 LPJOB_INFO_1W +#else +#define JOB_INFO_1 JOB_INFO_1A +#define PJOB_INFO_1 PJOB_INFO_1A +#define LPJOB_INFO_1 LPJOB_INFO_1A +#endif // UNICODE -typedef struct _JOB_INFO_2 { +typedef struct _JOB_INFO_2A { DWORD JobId; - LPTSTR pPrinterName; - LPTSTR pMachineName; - LPTSTR pUserName; - LPTSTR pDocument; - LPTSTR pNotifyName; - LPTSTR pDatatype; - LPTSTR pPrintProcessor; - LPTSTR pParameters; - LPTSTR pDriverName; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pNotifyName; + LPSTR pDatatype; + LPSTR pPrintProcessor; + LPSTR pParameters; + LPSTR pDriverName; LPDEVMODE pDevMode; - LPTSTR pStatus; + LPSTR pStatus; PSECURITY_DESCRIPTOR pSecurityDescriptor; DWORD Status; DWORD Priority; @@ -106,7 +186,44 @@ typedef struct _JOB_INFO_2 { 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; + DWORD PagesPrinted; +} JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A; + +typedef struct _JOB_INFO_2W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pNotifyName; + LPWSTR pDatatype; + LPWSTR pPrintProcessor; + LPWSTR pParameters; + LPWSTR pDriverName; + LPDEVMODE pDevMode; + LPWSTR 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 + DWORD PagesPrinted; +} JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W; + +#ifdef UNICODE +#define JOB_INFO_2 JOB_INFO_2W +#define PJOB_INFO_2 PJOB_INFO_2W +#define LPJOB_INFO_2 LPJOB_INFO_2W +#else +#define JOB_INFO_2 JOB_INFO_2A +#define PJOB_INFO_2 PJOB_INFO_2A +#define LPJOB_INFO_2 LPJOB_INFO_2A +#endif // UNICODE #define JOB_CONTROL_PAUSE 1 #define JOB_CONTROL_RESUME 2 @@ -122,62 +239,213 @@ typedef struct _JOB_INFO_2 { #define JOB_STATUS_PAPEROUT 0x00000040 #define JOB_STATUS_PRINTED 0x00000080 -typedef struct _ADDJOB_INFO_1 { - LPTSTR Path; +typedef struct _ADDJOB_INFO_1A { + LPSTR Path; DWORD JobId; -} ADDJOB_INFO_1, *PADDJOB_INFO_1, *LPADDJOB_INFO_1; +} ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A; -typedef struct _DRIVER_INFO_1 { - LPTSTR pName; // QMS 810 -} DRIVER_INFO_1, *PDRIVER_INFO_1, *LPDRIVER_INFO_1; +typedef struct _ADDJOB_INFO_1W { + LPWSTR Path; + DWORD JobId; +} ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W; + +#ifdef UNICODE +#define ADDJOB_INFO_1 ADDJOB_INFO_1W +#define PADDJOB_INFO_1 PADDJOB_INFO_1W +#define LPADDJOB_INFO_1 LPADDJOB_INFO_1W +#else +#define ADDJOB_INFO_1 ADDJOB_INFO_1A +#define PADDJOB_INFO_1 PADDJOB_INFO_1A +#define LPADDJOB_INFO_1 LPADDJOB_INFO_1A +#endif // UNICODE + +typedef struct _DRIVER_INFO_1A { + LPSTR pName; // QMS 810 +} DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A; + +typedef struct _DRIVER_INFO_1W { + LPWSTR pName; // QMS 810 +} DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W; + +#ifdef UNICODE +#define DRIVER_INFO_1 DRIVER_INFO_1W +#define PDRIVER_INFO_1 PDRIVER_INFO_1W +#define LPDRIVER_INFO_1 LPDRIVER_INFO_1W +#else +#define DRIVER_INFO_1 DRIVER_INFO_1A +#define PDRIVER_INFO_1 PDRIVER_INFO_1A +#define LPDRIVER_INFO_1 LPDRIVER_INFO_1A +#endif // UNICODE + +typedef struct _DRIVER_INFO_2A { + DWORD cVersion; + LPSTR pName; // QMS 810 + LPSTR pEnvironment; // Win32 x86 + LPSTR pDriverPath; // c:\drivers\pscript.dll + LPSTR pDataFile; // c:\drivers\QMS810.PPD + LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL +} DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A; -typedef struct _DRIVER_INFO_2 { +typedef struct _DRIVER_INFO_2W { 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; + LPWSTR pName; // QMS 810 + LPWSTR pEnvironment; // Win32 x86 + LPWSTR pDriverPath; // c:\drivers\pscript.dll + LPWSTR pDataFile; // c:\drivers\QMS810.PPD + LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL +} DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W; + +#ifdef UNICODE +#define DRIVER_INFO_2 DRIVER_INFO_2W +#define PDRIVER_INFO_2 PDRIVER_INFO_2W +#define LPDRIVER_INFO_2 LPDRIVER_INFO_2W +#else +#define DRIVER_INFO_2 DRIVER_INFO_2A +#define PDRIVER_INFO_2 PDRIVER_INFO_2A +#define LPDRIVER_INFO_2 LPDRIVER_INFO_2A +#endif // UNICODE + +typedef struct _DOC_INFO_1A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; +} DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A; + +typedef struct _DOC_INFO_1W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; +} DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W; + +#ifdef UNICODE +#define DOC_INFO_1 DOC_INFO_1W +#define PDOC_INFO_1 PDOC_INFO_1W +#define LPDOC_INFO_1 LPDOC_INFO_1W +#else +#define DOC_INFO_1 DOC_INFO_1A +#define PDOC_INFO_1 PDOC_INFO_1A +#define LPDOC_INFO_1 LPDOC_INFO_1A +#endif // UNICODE -typedef struct _FORM_INFO_1 { - LPTSTR pName; +typedef struct _FORM_INFO_1A { + LPSTR pName; SIZEL Size; RECTL ImageableArea; -} FORM_INFO_1, *PFORM_INFO_1, *LPFORM_INFO_1; +} FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A; -typedef struct _PRINTPROCESSOR_INFO_1 { - LPTSTR pName; -} PRINTPROCESSOR_INFO_1, *PPRINTPROCESSOR_INFO_1, *LPPRINTPROCESSOR_INFO_1; +typedef struct _FORM_INFO_1W { + LPWSTR pName; + SIZEL Size; + RECTL ImageableArea; +} FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W; -typedef struct _PORT_INFO_1 { +#ifdef UNICODE +#define FORM_INFO_1 FORM_INFO_1W +#define PFORM_INFO_1 PFORM_INFO_1W +#define LPFORM_INFO_1 LPFORM_INFO_1W +#else +#define FORM_INFO_1 FORM_INFO_1A +#define PFORM_INFO_1 PFORM_INFO_1A +#define LPFORM_INFO_1 LPFORM_INFO_1A +#endif // UNICODE + +typedef struct _PRINTPROCESSOR_INFO_1A { LPSTR pName; -} PORT_INFO_1, *PPORT_INFO_1, *LPPORT_INFO_1; +} PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A, *LPPRINTPROCESSOR_INFO_1A; + +typedef struct _PRINTPROCESSOR_INFO_1W { + LPWSTR pName; +} PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W, *LPPRINTPROCESSOR_INFO_1W; + +#ifdef UNICODE +#define PRINTPROCESSOR_INFO_1 PRINTPROCESSOR_INFO_1W +#define PPRINTPROCESSOR_INFO_1 PPRINTPROCESSOR_INFO_1W +#define LPPRINTPROCESSOR_INFO_1 LPPRINTPROCESSOR_INFO_1W +#else +#define PRINTPROCESSOR_INFO_1 PRINTPROCESSOR_INFO_1A +#define PPRINTPROCESSOR_INFO_1 PPRINTPROCESSOR_INFO_1A +#define LPPRINTPROCESSOR_INFO_1 LPPRINTPROCESSOR_INFO_1A +#endif // UNICODE -typedef struct _MONITOR_INFO_1 { +typedef struct _PORT_INFO_1A { LPSTR pName; -} MONITOR_INFO_1, *PMONITOR_INFO_1, *LPMONITOR_INFO_1; +} PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A; -typedef struct _DATATYPES_INFO_1 { +typedef struct _PORT_INFO_1W { + LPWSTR pName; +} PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W; + +#ifdef UNICODE +#define PORT_INFO_1 PORT_INFO_1W +#define PPORT_INFO_1 PPORT_INFO_1W +#define LPPORT_INFO_1 LPPORT_INFO_1W +#else +#define PORT_INFO_1 PORT_INFO_1A +#define PPORT_INFO_1 PPORT_INFO_1A +#define LPPORT_INFO_1 LPPORT_INFO_1A +#endif // UNICODE + +typedef struct _MONITOR_INFO_1A { + LPSTR pName; +} MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A; + +typedef struct _MONITOR_INFO_1W { + LPWSTR pName; +} MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W; + +#ifdef UNICODE +#define MONITOR_INFO_1 MONITOR_INFO_1W +#define PMONITOR_INFO_1 PMONITOR_INFO_1W +#define LPMONITOR_INFO_1 LPMONITOR_INFO_1W +#else +#define MONITOR_INFO_1 MONITOR_INFO_1A +#define PMONITOR_INFO_1 PMONITOR_INFO_1A +#define LPMONITOR_INFO_1 LPMONITOR_INFO_1A +#endif // UNICODE + +typedef struct _DATATYPES_INFO_1A { LPSTR pName; -} DATATYPES_INFO_1, *PDATATYPES_INFO_1, *LPDATATYPES_INFO_1; +} DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A; + +typedef struct _DATATYPES_INFO_1W { + LPWSTR pName; +} DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W; + +#ifdef UNICODE +#define DATATYPES_INFO_1 DATATYPES_INFO_1W +#define PDATATYPES_INFO_1 PDATATYPES_INFO_1W +#define LPDATATYPES_INFO_1 LPDATATYPES_INFO_1W +#else +#define DATATYPES_INFO_1 DATATYPES_INFO_1A +#define PDATATYPES_INFO_1 PDATATYPES_INFO_1A +#define LPDATATYPES_INFO_1 LPDATATYPES_INFO_1A +#endif // UNICODE -typedef struct _PRINTER_DEFAULTS { +typedef struct _PRINTER_DEFAULTSA { LPSTR pDatatype; - LPDEVMODE pDevMode; -} PRINTER_DEFAULTS, *PPRINTER_DEFAULTS, *LPPRINTER_DEFAULTS; + LPDEVMODEA pDevMode; +} PRINTER_DEFAULTSA, *PPRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA; + +typedef struct _PRINTER_DEFAULTSW { + LPWSTR pDatatype; + LPDEVMODEW pDevMode; +} PRINTER_DEFAULTSW, *PPRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW; + +#ifdef UNICODE +#define PRINTER_DEFAULTS PRINTER_DEFAULTSW +#define PPRINTER_DEFAULTS PPRINTER_DEFAULTSW +#define LPPRINTER_DEFAULTS LPPRINTER_DEFAULTSW +#else +#define PRINTER_DEFAULTS PRINTER_DEFAULTSA +#define PPRINTER_DEFAULTS PPRINTER_DEFAULTSA +#define LPPRINTER_DEFAULTS LPPRINTER_DEFAULTSA +#endif // UNICODE BOOL WINAPI -EnumPrinters( +EnumPrintersA( DWORD Flags, - LPTSTR Name, + LPSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, @@ -185,24 +453,80 @@ EnumPrinters( 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 +EnumPrintersW( + DWORD Flags, + LPWSTR Name, + DWORD Level, + LPBYTE pPrinterEnum, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumPrinters EnumPrintersW +#else +#define EnumPrinters EnumPrintersA +#endif // !UNICODE + +#define PRINTER_ENUM_DEFAULT 0x00000001 +#define PRINTER_ENUM_LOCAL 0x00000002 +#define PRINTER_ENUM_CONNECTIONS 0x00000004 +#define PRINTER_ENUM_FAVORITE 0x00000004 +#define PRINTER_ENUM_NAME 0x00000008 +#define PRINTER_ENUM_REMOTE 0x00000010 +#define PRINTER_ENUM_SHARED 0x00000020 +#define PRINTER_ENUM_NETWORK 0x00000040 + +#define PRINTER_ENUM_CONTAINER 0x00008000 + +#define PRINTER_ENUM_ICONMASK 0x00ff0000 +#define PRINTER_ENUM_ICON1 0x00010000 +#define PRINTER_ENUM_ICON2 0x00020000 +#define PRINTER_ENUM_ICON3 0x00040000 +#define PRINTER_ENUM_ICON4 0x00080000 +#define PRINTER_ENUM_ICON5 0x00100000 +#define PRINTER_ENUM_ICON6 0x00200000 +#define PRINTER_ENUM_ICON7 0x00400000 +#define PRINTER_ENUM_ICON8 0x00800000 BOOL WINAPI -OpenPrinter( - LPTSTR pPrinterName, +OpenPrinterA( + LPSTR pPrinterName, LPHANDLE phPrinter, - LPPRINTER_DEFAULTS pDefault + LPPRINTER_DEFAULTSA pDefault +); + +BOOL +WINAPI +OpenPrinterW( + LPWSTR pPrinterName, + LPHANDLE phPrinter, + LPPRINTER_DEFAULTSW pDefault +); + +#ifdef UNICODE +#define OpenPrinter OpenPrinterW +#else +#define OpenPrinter OpenPrinterA +#endif // !UNICODE + +BOOL +WINAPI +SetJobA( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + LPBYTE pJob, + DWORD Command ); BOOL WINAPI -SetJob( +SetJobW( HANDLE hPrinter, DWORD JobId, DWORD Level, @@ -210,9 +534,15 @@ SetJob( DWORD Command ); +#ifdef UNICODE +#define SetJob SetJobW +#else +#define SetJob SetJobA +#endif // !UNICODE + BOOL WINAPI -GetJob( +GetJobA( HANDLE hPrinter, DWORD JobId, DWORD Level, @@ -223,7 +553,37 @@ GetJob( BOOL WINAPI -EnumJobs( +GetJobW( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetJob GetJobW +#else +#define GetJob GetJobA +#endif // !UNICODE + +BOOL +WINAPI +EnumJobsA( + HANDLE hPrinter, + DWORD FirstJob, + DWORD NoJobs, + DWORD Level, + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +WINAPI +EnumJobsW( HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, @@ -234,14 +594,34 @@ EnumJobs( LPDWORD pcReturned ); +#ifdef UNICODE +#define EnumJobs EnumJobsW +#else +#define EnumJobs EnumJobsA +#endif // !UNICODE + HANDLE WINAPI -AddPrinter( +AddPrinterA( LPSTR pName, DWORD Level, LPBYTE pPrinter ); +HANDLE +WINAPI +AddPrinterW( + LPWSTR pName, + DWORD Level, + LPBYTE pPrinter +); + +#ifdef UNICODE +#define AddPrinter AddPrinterW +#else +#define AddPrinter AddPrinterA +#endif // !UNICODE + BOOL WINAPI DeletePrinter( @@ -250,7 +630,7 @@ DeletePrinter( BOOL WINAPI -SetPrinter( +SetPrinterA( HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, @@ -259,7 +639,22 @@ SetPrinter( BOOL WINAPI -GetPrinter( +SetPrinterW( + HANDLE hPrinter, + DWORD Level, + LPBYTE pPrinter, + DWORD Command +); + +#ifdef UNICODE +#define SetPrinter SetPrinterW +#else +#define SetPrinter SetPrinterA +#endif // !UNICODE + +BOOL +WINAPI +GetPrinterA( HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, @@ -269,17 +664,47 @@ GetPrinter( BOOL WINAPI -AddPrinterDriver( - LPTSTR pName, +GetPrinterW( + HANDLE hPrinter, + DWORD Level, + LPBYTE pPrinter, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetPrinter GetPrinterW +#else +#define GetPrinter GetPrinterA +#endif // !UNICODE + +BOOL +WINAPI +AddPrinterDriverA( + LPSTR pName, DWORD Level, LPBYTE pDriverInfo ); BOOL WINAPI -EnumPrinterDrivers( - LPTSTR pName, - LPTSTR pEnvironment, +AddPrinterDriverW( + LPWSTR pName, + DWORD Level, + LPBYTE pDriverInfo +); + +#ifdef UNICODE +#define AddPrinterDriver AddPrinterDriverW +#else +#define AddPrinterDriver AddPrinterDriverA +#endif // !UNICODE + +BOOL +WINAPI +EnumPrinterDriversA( + LPSTR pName, + LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, @@ -289,9 +714,27 @@ EnumPrinterDrivers( BOOL WINAPI -GetPrinterDriver( +EnumPrinterDriversW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumPrinterDrivers EnumPrinterDriversW +#else +#define EnumPrinterDrivers EnumPrinterDriversA +#endif // !UNICODE + +BOOL +WINAPI +GetPrinterDriverA( HANDLE hPrinter, - LPTSTR pEnvironment, + LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, @@ -300,37 +743,100 @@ GetPrinterDriver( BOOL WINAPI -GetPrinterDriverDirectory( - LPTSTR pName, - LPTSTR pEnvironment, +GetPrinterDriverW( + HANDLE hPrinter, + LPWSTR pEnvironment, + DWORD Level, + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetPrinterDriver GetPrinterDriverW +#else +#define GetPrinterDriver GetPrinterDriverA +#endif // !UNICODE + +BOOL +WINAPI +GetPrinterDriverDirectoryA( + LPSTR pName, + LPSTR pEnvironment, + DWORD Level, + LPBYTE pDriverDirectory, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +BOOL +WINAPI +GetPrinterDriverDirectoryW( + LPWSTR pName, + LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverDirectory, DWORD cbBuf, LPDWORD pcbNeeded ); +#ifdef UNICODE +#define GetPrinterDriverDirectory GetPrinterDriverDirectoryW +#else +#define GetPrinterDriverDirectory GetPrinterDriverDirectoryA +#endif // !UNICODE + +BOOL +WINAPI +DeletePrinterDriverA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pDriverName +); + BOOL WINAPI -DeletePrinterDriver( - LPTSTR pName, - LPTSTR pEnvironment, - LPTSTR pDriverName +DeletePrinterDriverW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pDriverName ); +#ifdef UNICODE +#define DeletePrinterDriver DeletePrinterDriverW +#else +#define DeletePrinterDriver DeletePrinterDriverA +#endif // !UNICODE + BOOL WINAPI -AddPrintProcessor( - LPTSTR pName, - LPTSTR pEnvironment, - LPTSTR pPathName, - LPTSTR pPrintProcessorName +AddPrintProcessorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPathName, + LPSTR pPrintProcessorName ); BOOL WINAPI -EnumPrintProcessors( - LPTSTR pName, - LPTSTR pEnvironment, +AddPrintProcessorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPathName, + LPWSTR pPrintProcessorName +); + +#ifdef UNICODE +#define AddPrintProcessor AddPrintProcessorW +#else +#define AddPrintProcessor AddPrintProcessorA +#endif // !UNICODE + +BOOL +WINAPI +EnumPrintProcessorsA( + LPSTR pName, + LPSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, @@ -340,9 +846,27 @@ EnumPrintProcessors( BOOL WINAPI -GetPrintProcessorDirectory( - LPTSTR pName, - LPTSTR pEnvironment, +EnumPrintProcessorsW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumPrintProcessors EnumPrintProcessorsW +#else +#define EnumPrintProcessors EnumPrintProcessorsA +#endif // !UNICODE + +BOOL +WINAPI +GetPrintProcessorDirectoryA( + LPSTR pName, + LPSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, @@ -351,12 +875,43 @@ GetPrintProcessorDirectory( BOOL WINAPI -StartDocPrinter( +GetPrintProcessorDirectoryW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetPrintProcessorDirectory GetPrintProcessorDirectoryW +#else +#define GetPrintProcessorDirectory GetPrintProcessorDirectoryA +#endif // !UNICODE + +DWORD +WINAPI +StartDocPrinterA( + HANDLE hPrinter, + DWORD Level, + LPBYTE pDocInfo +); + +DWORD +WINAPI +StartDocPrinterW( HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo ); +#ifdef UNICODE +#define StartDocPrinter StartDocPrinterW +#else +#define StartDocPrinter StartDocPrinterA +#endif // !UNICODE + BOOL WINAPI StartPagePrinter( @@ -401,7 +956,7 @@ EndDocPrinter( BOOL WINAPI -AddJob( +AddJobA( HANDLE hPrinter, DWORD Level, LPBYTE pData, @@ -411,6 +966,22 @@ AddJob( BOOL WINAPI +AddJobW( + HANDLE hPrinter, + DWORD Level, + LPBYTE pData, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define AddJob AddJobW +#else +#define AddJob AddJobA +#endif // !UNICODE + +BOOL +WINAPI ScheduleJob( HANDLE hPrinter, DWORD JobId @@ -425,30 +996,63 @@ PrinterProperties( LONG WINAPI -DocumentProperties( +DocumentPropertiesA( HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, - PDEVMODE pDevModeOutput, - PDEVMODE pDevModeInput, + PDEVMODEA pDevModeOutput, + PDEVMODEA pDevModeInput, DWORD fMode ); LONG WINAPI -AdvancedDocumentProperties( +DocumentPropertiesW( + HWND hWnd, + HANDLE hPrinter, + LPWSTR pDeviceName, + PDEVMODEW pDevModeOutput, + PDEVMODEW pDevModeInput, + DWORD fMode +); + +#ifdef UNICODE +#define DocumentProperties DocumentPropertiesW +#else +#define DocumentProperties DocumentPropertiesA +#endif // !UNICODE + +LONG +WINAPI +AdvancedDocumentPropertiesA( HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, - PDEVMODE pDevModeOutput, - PDEVMODE pDevModeInput + PDEVMODEA pDevModeOutput, + PDEVMODEA pDevModeInput ); +LONG +WINAPI +AdvancedDocumentPropertiesW( + HWND hWnd, + HANDLE hPrinter, + LPWSTR pDeviceName, + PDEVMODEW pDevModeOutput, + PDEVMODEW pDevModeInput +); + +#ifdef UNICODE +#define AdvancedDocumentProperties AdvancedDocumentPropertiesW +#else +#define AdvancedDocumentProperties AdvancedDocumentPropertiesA +#endif // !UNICODE + DWORD WINAPI -GetPrinterData( +GetPrinterDataA( HANDLE hPrinter, - LPTSTR pValueName, + LPSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, @@ -457,14 +1061,90 @@ GetPrinterData( DWORD WINAPI -SetPrinterData( +GetPrinterDataW( + HANDLE hPrinter, + LPWSTR pValueName, + LPDWORD pType, + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetPrinterData GetPrinterDataW +#else +#define GetPrinterData GetPrinterDataA +#endif // !UNICODE + +DWORD +WINAPI +SetPrinterDataA( HANDLE hPrinter, - LPTSTR pValueName, + LPSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData ); +DWORD +WINAPI +SetPrinterDataW( + HANDLE hPrinter, + LPWSTR pValueName, + DWORD Type, + LPBYTE pData, + DWORD cbData +); + +#ifdef UNICODE +#define SetPrinterData SetPrinterDataW +#else +#define SetPrinterData SetPrinterDataA +#endif // !UNICODE + +DWORD +WINAPI +WaitForPrinterChange( + HANDLE hPrinter, + DWORD Flags +); + +DWORD +WINAPI +PrinterMessageBoxA( + HANDLE hPrinter, + DWORD Error, + HWND hWnd, + LPSTR pText, + LPSTR pCaption, + DWORD dwType +); + +DWORD +WINAPI +PrinterMessageBoxW( + HANDLE hPrinter, + DWORD Error, + HWND hWnd, + LPWSTR pText, + LPWSTR pCaption, + DWORD dwType +); + +#ifdef UNICODE +#define PrinterMessageBox PrinterMessageBoxW +#else +#define PrinterMessageBox PrinterMessageBoxA +#endif // !UNICODE + +#define PRINTER_ERROR_INFORMATION 0x80000000 +#define PRINTER_ERROR_WARNING 0x40000000 +#define PRINTER_ERROR_SEVERE 0x20000000 + +#define PRINTER_ERROR_OUTOFPAPER 0x00000001 +#define PRINTER_ERROR_JAM 0x00000002 +#define PRINTER_ERROR_OUTOFTONER 0x00000004 + BOOL WINAPI ClosePrinter( @@ -473,7 +1153,7 @@ ClosePrinter( BOOL WINAPI -AddForm( +AddFormA( HANDLE hPrinter, DWORD Level, LPBYTE pForm @@ -481,14 +1161,41 @@ AddForm( BOOL WINAPI -DeleteForm( +AddFormW( + HANDLE hPrinter, + DWORD Level, + LPBYTE pForm +); + +#ifdef UNICODE +#define AddForm AddFormW +#else +#define AddForm AddFormA +#endif // !UNICODE + +BOOL +WINAPI +DeleteFormA( HANDLE hPrinter, LPSTR pFormName ); BOOL WINAPI -GetForm( +DeleteFormW( + HANDLE hPrinter, + LPWSTR pFormName +); + +#ifdef UNICODE +#define DeleteForm DeleteFormW +#else +#define DeleteForm DeleteFormA +#endif // !UNICODE + +BOOL +WINAPI +GetFormA( HANDLE hPrinter, LPSTR pFormName, DWORD Level, @@ -499,7 +1206,24 @@ GetForm( BOOL WINAPI -SetForm( +GetFormW( + HANDLE hPrinter, + LPWSTR pFormName, + DWORD Level, + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded +); + +#ifdef UNICODE +#define GetForm GetFormW +#else +#define GetForm GetFormA +#endif // !UNICODE + +BOOL +WINAPI +SetFormA( HANDLE hPrinter, LPSTR pFormName, DWORD Level, @@ -508,7 +1232,33 @@ SetForm( BOOL WINAPI -EnumForms( +SetFormW( + HANDLE hPrinter, + LPWSTR pFormName, + DWORD Level, + LPBYTE pForm +); + +#ifdef UNICODE +#define SetForm SetFormW +#else +#define SetForm SetFormA +#endif // !UNICODE + +BOOL +WINAPI +EnumFormsA( + HANDLE hPrinter, + DWORD Level, + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +WINAPI +EnumFormsW( HANDLE hPrinter, DWORD Level, LPBYTE pForm, @@ -517,9 +1267,15 @@ EnumForms( LPDWORD pcReturned ); +#ifdef UNICODE +#define EnumForms EnumFormsW +#else +#define EnumForms EnumFormsA +#endif // !UNICODE + BOOL WINAPI -EnumMonitors( +EnumMonitorsA( LPSTR pName, DWORD Level, LPBYTE pMonitors, @@ -530,7 +1286,24 @@ EnumMonitors( BOOL WINAPI -EnumPorts( +EnumMonitorsW( + LPWSTR pName, + DWORD Level, + LPBYTE pMonitors, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumMonitors EnumMonitorsW +#else +#define EnumMonitors EnumMonitorsA +#endif // !UNICODE + +BOOL +WINAPI +EnumPortsA( LPSTR pName, DWORD Level, LPBYTE pPorts, @@ -541,7 +1314,24 @@ EnumPorts( BOOL WINAPI -AddPort( +EnumPortsW( + LPWSTR pName, + DWORD Level, + LPBYTE pPorts, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumPorts EnumPortsW +#else +#define EnumPorts EnumPortsA +#endif // !UNICODE + +BOOL +WINAPI +AddPortA( LPSTR pName, HWND hWnd, LPSTR pMonitorName @@ -549,7 +1339,21 @@ AddPort( BOOL WINAPI -ConfigurePort( +AddPortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pMonitorName +); + +#ifdef UNICODE +#define AddPort AddPortW +#else +#define AddPort AddPortA +#endif // !UNICODE + +BOOL +WINAPI +ConfigurePortA( LPSTR pName, HWND hWnd, LPSTR pPortName @@ -557,10 +1361,81 @@ ConfigurePort( BOOL WINAPI -DeletePort( +ConfigurePortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pPortName +); + +#ifdef UNICODE +#define ConfigurePort ConfigurePortW +#else +#define ConfigurePort ConfigurePortA +#endif // !UNICODE + +BOOL +WINAPI +DeletePortA( LPSTR pName, HWND hWnd, LPSTR pPortName ); +BOOL +WINAPI +DeletePortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pPortName +); + +#ifdef UNICODE +#define DeletePort DeletePortW +#else +#define DeletePort DeletePortA +#endif // !UNICODE + +BOOL +WINAPI +AddPrinterConnectionA( + LPSTR pName +); + +BOOL +WINAPI +AddPrinterConnectionW( + LPWSTR pName +); + +#ifdef UNICODE +#define AddPrinterConnection AddPrinterConnectionW +#else +#define AddPrinterConnection AddPrinterConnectionA +#endif // !UNICODE + +BOOL +WINAPI +DeletePrinterConnectionA( + LPSTR pName +); + +BOOL +WINAPI +DeletePrinterConnectionW( + LPWSTR pName +); + +#ifdef UNICODE +#define DeletePrinterConnection DeletePrinterConnectionW +#else +#define DeletePrinterConnection DeletePrinterConnectionA +#endif // !UNICODE + +HANDLE +WINAPI +ConnectToPrinterDlg( + HWND hwnd, + DWORD Flags +); + #endif // _WINSPOOL_