--- mstools/h/winspool.h 2018/08/09 18:21:12 1.1.1.3 +++ mstools/h/winspool.h 2018/08/09 18:23:08 1.1.1.4 @@ -1,6 +1,6 @@ /*++ -Copyright (c) 1990 Microsoft Corporation +Copyright (c) 1990-1993 Microsoft Corporation Module Name: @@ -21,6 +21,10 @@ Revision History: #ifndef _WINSPOOL_ #define _WINSPOOL_ +#ifdef __cplusplus +extern "C" { +#endif + typedef struct _PRINTER_INFO_1A { DWORD Flags; LPSTR pDescription; @@ -103,6 +107,10 @@ typedef struct _PRINTER_INFO_2W { #define LPPRINTER_INFO_2 LPPRINTER_INFO_2A #endif // UNICODE +typedef struct _PRINTER_INFO_3 { + PSECURITY_DESCRIPTOR pSecurityDescriptor; +} PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3; + #define PRINTER_CONTROL_PAUSE 1 #define PRINTER_CONTROL_RESUME 2 #define PRINTER_CONTROL_PURGE 3 @@ -110,11 +118,35 @@ typedef struct _PRINTER_INFO_2W { #define PRINTER_STATUS_PAUSED 0x00000001 #define PRINTER_STATUS_ERROR 0x00000002 #define PRINTER_STATUS_PENDING_DELETION 0x00000004 +#define PRINTER_STATUS_PAPER_JAM 0x00000008 +#define PRINTER_STATUS_PAPER_OUT 0x00000010 +#define PRINTER_STATUS_MANUAL_FEED 0x00000020 +#define PRINTER_STATUS_PAPER_PROBLEM 0x00000040 +#define PRINTER_STATUS_OFFLINE 0x00000080 +#define PRINTER_STATUS_IO_ACTIVE 0x00000100 +#define PRINTER_STATUS_BUSY 0x00000200 +#define PRINTER_STATUS_PRINTING 0x00000400 +#define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800 +#define PRINTER_STATUS_NOT_AVAILABLE 0x00001000 +#define PRINTER_STATUS_WAITING 0x00002000 +#define PRINTER_STATUS_PROCESSING 0x00004000 +#define PRINTER_STATUS_INITIALIZING 0x00008000 +#define PRINTER_STATUS_WARMING_UP 0x00010000 +#define PRINTER_STATUS_TONER_LOW 0x00020000 +#define PRINTER_STATUS_NO_TONER 0x00040000 +#define PRINTER_STATUS_PAGE_PUNT 0x00080000 +#define PRINTER_STATUS_USER_INTERVENTION 0x00100000 +#define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000 +#define PRINTER_STATUS_DOOR_OPEN 0x00400000 + #define PRINTER_ATTRIBUTE_QUEUED 0x00000001 #define PRINTER_ATTRIBUTE_DIRECT 0x00000002 #define PRINTER_ATTRIBUTE_DEFAULT 0x00000004 #define PRINTER_ATTRIBUTE_SHARED 0x00000008 +#define PRINTER_ATTRIBUTE_NETWORK 0x00000010 +#define PRINTER_ATTRIBUTE_HIDDEN 0x00000020 +#define PRINTER_ATTRIBUTE_LOCAL 0x00000040 #define NO_PRIORITY 0 #define MAX_PRIORITY 99 @@ -239,6 +271,8 @@ typedef struct _JOB_INFO_2W { #define JOB_STATUS_PAPEROUT 0x00000040 #define JOB_STATUS_PRINTED 0x00000080 +#define JOB_POSITION_UNSPECIFIED 0 + typedef struct _ADDJOB_INFO_1A { LPSTR Path; DWORD JobId; @@ -328,12 +362,14 @@ typedef struct _DOC_INFO_1W { #endif // UNICODE typedef struct _FORM_INFO_1A { + DWORD Flags; LPSTR pName; SIZEL Size; RECTL ImageableArea; } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A; typedef struct _FORM_INFO_1W { + DWORD Flags; LPWSTR pName; SIZEL Size; RECTL ImageableArea; @@ -349,6 +385,9 @@ typedef struct _FORM_INFO_1W { #define LPFORM_INFO_1 LPFORM_INFO_1A #endif // UNICODE +#define FORM_BUILTIN 0x00000001 + + typedef struct _PRINTPROCESSOR_INFO_1A { LPSTR pName; } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A, *LPPRINTPROCESSOR_INFO_1A; @@ -403,6 +442,28 @@ typedef struct _MONITOR_INFO_1W { #define LPMONITOR_INFO_1 LPMONITOR_INFO_1A #endif // UNICODE +typedef struct _MONITOR_INFO_2A { + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDLLName; +} MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A; + +typedef struct _MONITOR_INFO_2W { + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDLLName; +} MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W; + +#ifdef UNICODE +#define MONITOR_INFO_2 MONITOR_INFO_2W +#define PMONITOR_INFO_2 PMONITOR_INFO_2W +#define LPMONITOR_INFO_2 LPMONITOR_INFO_2W +#else +#define MONITOR_INFO_2 MONITOR_INFO_2A +#define PMONITOR_INFO_2 PMONITOR_INFO_2A +#define LPMONITOR_INFO_2 LPMONITOR_INFO_2A +#endif // UNICODE + typedef struct _DATATYPES_INFO_1A { LPSTR pName; } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A; @@ -422,13 +483,15 @@ typedef struct _DATATYPES_INFO_1W { #endif // UNICODE typedef struct _PRINTER_DEFAULTSA { - LPSTR pDatatype; - LPDEVMODEA pDevMode; + LPSTR pDatatype; + LPDEVMODEA pDevMode; + ACCESS_MASK DesiredAccess; } PRINTER_DEFAULTSA, *PPRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA; typedef struct _PRINTER_DEFAULTSW { - LPWSTR pDatatype; - LPDEVMODEW pDevMode; + LPWSTR pDatatype; + LPDEVMODEW pDevMode; + ACCESS_MASK DesiredAccess; } PRINTER_DEFAULTSW, *PPRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW; #ifdef UNICODE @@ -480,6 +543,7 @@ EnumPrintersW( #define PRINTER_ENUM_SHARED 0x00000020 #define PRINTER_ENUM_NETWORK 0x00000040 +#define PRINTER_ENUM_EXPAND 0x00004000 #define PRINTER_ENUM_CONTAINER 0x00008000 #define PRINTER_ENUM_ICONMASK 0x00ff0000 @@ -516,6 +580,26 @@ OpenPrinterW( BOOL WINAPI +ResetPrinterA( + HANDLE hPrinter, + LPPRINTER_DEFAULTSA pDefault +); + +BOOL +WINAPI +ResetPrinterW( + HANDLE hPrinter, + LPPRINTER_DEFAULTSW pDefault +); + +#ifdef UNICODE +#define ResetPrinter ResetPrinterW +#else +#define ResetPrinter ResetPrinterA +#endif // !UNICODE + +BOOL +WINAPI SetJobA( HANDLE hPrinter, DWORD JobId, @@ -890,6 +974,56 @@ GetPrintProcessorDirectoryW( #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA #endif // !UNICODE +BOOL +EnumPrintProcessorDatatypesW( + LPWSTR pName, + LPWSTR pPrintProcessorName, + DWORD Level, + LPBYTE pDatatypes, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +EnumPrintProcessorDatatypesA( + LPSTR pName, + LPSTR pPrintProcessorName, + DWORD Level, + LPBYTE pDatatypes, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +#ifdef UNICODE +#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW +#else +#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA +#endif // !UNICODE + +BOOL +WINAPI +DeletePrintProcessorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPrintProcessorName +); + +BOOL +WINAPI +DeletePrintProcessorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPrintProcessorName +); + +#ifdef UNICODE +#define DeletePrintProcessor DeletePrintProcessorW +#else +#define DeletePrintProcessor DeletePrintProcessorA +#endif // !UNICODE + DWORD WINAPI StartDocPrinterA( @@ -1109,6 +1243,32 @@ WaitForPrinterChange( DWORD Flags ); +#define PRINTER_CHANGE_ADD_PRINTER 0x00000001 +#define PRINTER_CHANGE_SET_PRINTER 0x00000002 +#define PRINTER_CHANGE_DELETE_PRINTER 0x00000004 +#define PRINTER_CHANGE_PRINTER 0x000000FF +#define PRINTER_CHANGE_ADD_JOB 0x00000100 +#define PRINTER_CHANGE_SET_JOB 0x00000200 +#define PRINTER_CHANGE_DELETE_JOB 0x00000400 +#define PRINTER_CHANGE_WRITE_JOB 0x00000800 +#define PRINTER_CHANGE_JOB 0x0000FF00 +#define PRINTER_CHANGE_ADD_FORM 0x00010000 +#define PRINTER_CHANGE_SET_FORM 0x00020000 +#define PRINTER_CHANGE_DELETE_FORM 0x00040000 +#define PRINTER_CHANGE_FORM 0x00070000 +#define PRINTER_CHANGE_ADD_PORT 0x00100000 +#define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000 +#define PRINTER_CHANGE_DELETE_PORT 0x00400000 +#define PRINTER_CHANGE_PORT 0x00700000 +#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000 +#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000 +#define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000 +#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000 +#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000 +#define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000 +#define PRINTER_CHANGE_TIMEOUT 0x80000000 +#define PRINTER_CHANGE_ALL 0x7777FFFF + DWORD WINAPI PrinterMessageBoxA( @@ -1303,6 +1463,50 @@ EnumMonitorsW( BOOL WINAPI +AddMonitorA( + LPSTR pName, + DWORD Level, + LPBYTE pMonitors +); + +BOOL +WINAPI +AddMonitorW( + LPWSTR pName, + DWORD Level, + LPBYTE pMonitors +); + +#ifdef UNICODE +#define AddMonitor AddMonitorW +#else +#define AddMonitor AddMonitorA +#endif // !UNICODE + +BOOL +WINAPI +DeleteMonitorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pMonitorName +); + +BOOL +WINAPI +DeleteMonitorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pMonitorName +); + +#ifdef UNICODE +#define DeleteMonitor DeleteMonitorW +#else +#define DeleteMonitor DeleteMonitorA +#endif // !UNICODE + +BOOL +WINAPI EnumPortsA( LPSTR pName, DWORD Level, @@ -1438,4 +1642,135 @@ ConnectToPrinterDlg( DWORD Flags ); +typedef struct _PROVIDOR_INFO_1A { + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDLLName; +} PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A; + +typedef struct _PROVIDOR_INFO_1W { + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDLLName; +} PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W; + +#ifdef UNICODE +#define PROVIDOR_INFO_1 PROVIDOR_INFO_1W +#define PPROVIDOR_INFO_1 PPROVIDOR_INFO_1W +#define LPPROVIDOR_INFO_1 LPPROVIDOR_INFO_1W +#else +#define PROVIDOR_INFO_1 PROVIDOR_INFO_1A +#define PPROVIDOR_INFO_1 PPROVIDOR_INFO_1A +#define LPPROVIDOR_INFO_1 LPPROVIDOR_INFO_1A +#endif // UNICODE + +BOOL +WINAPI +AddPrintProvidorA( + LPSTR pName, + DWORD Level, + LPBYTE pProvidorInfo +); + +BOOL +WINAPI +AddPrintProvidorW( + LPWSTR pName, + DWORD Level, + LPBYTE pProvidorInfo +); + +#ifdef UNICODE +#define AddPrintProvidor AddPrintProvidorW +#else +#define AddPrintProvidor AddPrintProvidorA +#endif // !UNICODE + +BOOL +WINAPI +DeletePrintProvidorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPrintProvidorName +); + +BOOL +WINAPI +DeletePrintProvidorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPrintProvidorName +); + +#ifdef UNICODE +#define DeletePrintProvidor DeletePrintProvidorW +#else +#define DeletePrintProvidor DeletePrintProvidorA +#endif // !UNICODE + +#define SERVER_ACCESS_ADMINISTER 0x00000001 +#define SERVER_ACCESS_ENUMERATE 0x00000002 + +#define PRINTER_ACCESS_ADMINISTER 0x00000004 +#define PRINTER_ACCESS_USE 0x00000008 + +#define JOB_ACCESS_ADMINISTER 0x00000010 + + +/* + * Access rights for print servers + */ + +#define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ + SERVER_ACCESS_ADMINISTER |\ + SERVER_ACCESS_ENUMERATE) + +#define SERVER_READ (STANDARD_RIGHTS_READ |\ + SERVER_ACCESS_ENUMERATE) + +#define SERVER_WRITE (STANDARD_RIGHTS_WRITE |\ + SERVER_ACCESS_ADMINISTER |\ + SERVER_ACCESS_ENUMERATE) + +#define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ + SERVER_ACCESS_ENUMERATE) + +/* + * Access rights for printers + */ + +#define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ + PRINTER_ACCESS_ADMINISTER |\ + PRINTER_ACCESS_USE) + +#define PRINTER_READ (STANDARD_RIGHTS_READ |\ + PRINTER_ACCESS_USE) + +#define PRINTER_WRITE (STANDARD_RIGHTS_WRITE |\ + PRINTER_ACCESS_USE) + +#define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ + PRINTER_ACCESS_USE) + +/* + * Access rights for jobs + */ + +#define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ + JOB_ACCESS_ADMINISTER) + +#define JOB_READ (STANDARD_RIGHTS_READ |\ + JOB_ACCESS_ADMINISTER) + +#define JOB_WRITE (STANDARD_RIGHTS_WRITE |\ + JOB_ACCESS_ADMINISTER) + +#define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ + JOB_ACCESS_ADMINISTER) + + +#ifdef __cplusplus +} +#endif + #endif // _WINSPOOL_