diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c index 67a97bf30ff..8371cb37904 100644 --- a/dlls/winspool/info.c +++ b/dlls/winspool/info.c @@ -811,7 +811,7 @@ BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName, * AddMonitor32A [WINSPOOL.107] * */ -BOOL WINAPI AddMonitorA(LPCSTR pName, DWORD Level, LPBYTE pMonitors) +BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors) { FIXME("(%s,%lx,%p):stub!\n", pName, Level, pMonitors); SetLastError(ERROR_CALL_NOT_IMPLEMENTED); diff --git a/include/winspool.h b/include/winspool.h index 1e88558390e..000b12c101b 100644 --- a/include/winspool.h +++ b/include/winspool.h @@ -33,6 +33,11 @@ extern "C" { #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400 #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800 +#define PRINTER_CONTROL_PAUSE 1 +#define PRINTER_CONTROL_RESUME 2 +#define PRINTER_CONTROL_PURGE 3 +#define PRINTER_CONTROL_SET_STATUS 4 + #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x00000002 #define PRINTER_ENUM_CONNECTIONS 0x00000004 @@ -83,6 +88,156 @@ extern "C" { #define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000 #define PRINTER_STATUS_POWER_SAVE 0x01000000 +#define NO_PRIORITY 0 +#define MAX_PRIORITY 99 +#define MIN_PRIORITY 1 +#define DEF_PRIORITY 1 + +#define JOB_CONTROL_PAUSE 1 +#define JOB_CONTROL_RESUME 2 +#define JOB_CONTROL_CANCEL 3 +#define JOB_CONTROL_RESTART 4 +#define JOB_CONTROL_DELETE 5 +#define JOB_CONTROL_SENT_TO_PRINTER 6 +#define JOB_CONTROL_LAST_PAGE_EJECTED 7 + +#define JOB_STATUS_PAUSED 0x0001 +#define JOB_STATUS_ERROR 0x0002 +#define JOB_STATUS_DELETING 0x0004 +#define JOB_STATUS_SPOOLING 0x0008 +#define JOB_STATUS_PRINTING 0x0010 +#define JOB_STATUS_OFFLINE 0x0020 +#define JOB_STATUS_PAPEROUT 0x0040 +#define JOB_STATUS_PRINTED 0x0080 +#define JOB_STATUS_DELETED 0x0100 +#define JOB_STATUS_BLOCKED_DEVQ 0x0200 +#define JOB_STATUS_USER_INTERVENTION 0x0400 + +#define JOB_POSITION_UNSPECIFIED 1 + +#define DI_CHANNEL 1 +#define DI_READ_SPOOL_JOB 3 + +#define FORM_USER 0 +#define FORM_BUILTIN 1 +#define FORM_PRINTER 2 + +#define PORT_TYPE_WRITE 1 +#define PORT_TYPE_READ 2 +#define PORT_TYPE_REDIRECTED 4 +#define PORT_TYPE_NET_ATTACHED 8 + +#define PORT_STATUS_TYPE_ERROR 1 +#define PORT_STATUS_TYPE_WARNING 2 +#define PORT_STATUS_TYPE_INFO 3 + +#define PORT_STATUS_OFFLINE 1 +#define PORT_STATUS_PAPER_JAM 2 +#define PORT_STATUS_PAPER_OUT 3 +#define PORT_STATUS_OUTPUT_BIN_FULL 4 +#define PORT_STATUS_PAPER_PROBLEM 5 +#define PORT_STATUS_NO_TONER 6 +#define PORT_STATUS_DOOR_OPEN 7 +#define PORT_STATUS_USER_INTERVENTION 8 +#define PORT_STATUS_OUT_OF_MEMORY 9 +#define PORT_STATUS_TONER_LOW 10 +#define PORT_STATUS_WARMING_UP 11 +#define PORT_STATUS_POWER_SAVE 12 + +#define PRINTER_NOTIFY_TYPE 0 +#define JOB_NOTIFY_TYPE 1 + +#define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00 +#define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01 +#define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02 +#define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03 +#define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04 +#define PRINTER_NOTIFY_FIELD_COMMENT 0x05 +#define PRINTER_NOTIFY_FIELD_LOCATION 0x06 +#define PRINTER_NOTIFY_FIELD_DEVMODE 0x07 +#define PRINTER_NOTIFY_FIELD_SEPFILE 0x08 +#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09 +#define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0a +#define PRINTER_NOTIFY_FIELD_DATATYPE 0x0b +#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c +#define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0d +#define PRINTER_NOTIFY_FIELD_PRIORITY 0x0e +#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f +#define PRINTER_NOTIFY_FIELD_START_TIME 0x10 +#define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11 +#define PRINTER_NOTIFY_FIELD_STATUS 0x12 +#define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13 +#define PRINTER_NOTIFY_FIELD_CJOBS 0x14 +#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15 +#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16 +#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17 +#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18 +#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19 + +#define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00 +#define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01 +#define JOB_NOTIFY_FIELD_PORT_NAME 0x02 +#define JOB_NOTIFY_FIELD_USER_NAME 0x03 +#define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04 +#define JOB_NOTIFY_FIELD_DATATYPE 0x05 +#define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06 +#define JOB_NOTIFY_FIELD_PARAMETERS 0x07 +#define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08 +#define JOB_NOTIFY_FIELD_DEVMODE 0x09 +#define JOB_NOTIFY_FIELD_STATUS 0x0a +#define JOB_NOTIFY_FIELD_STATUS_STRING 0x0b +#define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c +#define JOB_NOTIFY_FIELD_DOCUMENT 0x0d +#define JOB_NOTIFY_FIELD_PRIORITY 0x0e +#define JOB_NOTIFY_FIELD_POSITION 0x0f +#define JOB_NOTIFY_FIELD_SUBMITTED 0x10 +#define JOB_NOTIFY_FIELD_START_TIME 0x11 +#define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12 +#define JOB_NOTIFY_FIELD_TIME 0x13 +#define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14 +#define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15 +#define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16 +#define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17 + +#define PRINTER_NOTIFY_OPTIONS_REFRESH 1 +#define PRINTER_NOTIFY_INFO_DISCARDED 1 + +#define PRINTER_CHANGE_ADD_PRINTER 0x00000001 +#define PRINTER_CHANGE_SET_PRINTER 0x00000002 +#define PRINTER_CHANGE_DELETE_PRINTER 0x00000004 +#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008 +#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_PRINTER_PROCESSOR 0x04000000 +#define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000 +#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000 +#define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000 +#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000 +#define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000 +#define PRINTER_CHANGE_TIMEOUT 0x80000000 +#define PRINTER_CHANGE_ALL 0x7777ffff + +#define PRINTER_ERROR_INFORMATION 0x80000000 +#define PRINTER_ERROR_WARNING 0x40000000 +#define PRINTER_ERROR_SEVERE 0x20000000 + +#define PRINTER_ERROR_OUTODPAPER 0x00000001 +#define PRINTER_ERROR_JAM 0x00000002 +#define PRINTER_ERROR_OUTOFTONER 0x00000004 + /* TYPES */ typedef struct _PRINTER_DEFAULTSA { LPSTR pDatatype; @@ -238,6 +393,10 @@ DECL_WINELIB_TYPE_AW(PRINTER_INFO_2) DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2) DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2) +typedef struct _PRINTER_INFO_3 { + PSECURITY_DESCRIPTOR pSecurityDescriptor; +} PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3; + typedef struct _PRINTER_INFO_4A { LPSTR pPrinterName; LPSTR pServerName; @@ -274,6 +433,10 @@ DECL_WINELIB_TYPE_AW(PRINTER_INFO_5) DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5) DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5) +typedef struct _PRINTER_INFO_6 { + DWORD dwStatus; +} PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6; + typedef struct _JOB_INFO_1A { DWORD JobID; LPSTR pPrinterName; @@ -366,11 +529,240 @@ DECL_WINELIB_TYPE_AW(JOB_INFO_2) DECL_WINELIB_TYPE_AW(PJOB_INFO_2) DECL_WINELIB_TYPE_AW(LPJOB_INFO_2) +typedef struct _JOB_INFO_3 { + DWORD JobID; + DWORD NextJobID; + DWORD Reserved; +} JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3; + +typedef struct _ADDJOB_INFO_1A { + LPSTR Path; + DWORD JobID; +} ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A; + +typedef struct _ADDJOB_INFO_1W { + LPWSTR Path; + DWORD JobID; +} ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W; + +DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1) +DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1) +DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1) + +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; + +DECL_WINELIB_TYPE_AW(DOC_INFO_1) +DECL_WINELIB_TYPE_AW(PDOC_INFO_1) +DECL_WINELIB_TYPE_AW(LPDOC_INFO_1) + +typedef struct _DOC_INFO_2A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; + DWORD dwMode; + DWORD JobID; +} DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A; + +typedef struct _DOC_INFO_2W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; + DWORD dwMode; + DWORD JobID; +} DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W; + +DECL_WINELIB_TYPE_AW(DOC_INFO_2) +DECL_WINELIB_TYPE_AW(PDOC_INFO_2) +DECL_WINELIB_TYPE_AW(LPDOC_INFO_2) + +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; +} FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W; + +DECL_WINELIB_TYPE_AW(FORM_INFO_1) +DECL_WINELIB_TYPE_AW(PFORM_INFO_1) +DECL_WINELIB_TYPE_AW(LPFORM_INFO_1) + +typedef struct _PRINTPROCESSOR_INFO_1A { + LPSTR pName; +} PRINTPROCESSOR_INFO_1A, *PPRINTERPROCESSOR_INFO_1A, + *LPPRINTPROCESSOR_INFO_1A; + +typedef struct _PRINTPROCESSOR_INFO_1W { + LPWSTR pName; +} PRINTPROCESSOR_INFO_1W, *PPRINTERPROCESSOR_INFO_1W, + *LPPRINTPROCESSOR_INFO_1W; + +DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1) +DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1) +DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1) + +typedef struct _PORT_INFO_1A { + LPSTR pName; +} PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A; + +typedef struct _PORT_INFO_1W { + LPWSTR pName; +} PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W; + +DECL_WINELIB_TYPE_AW(PORT_INFO_1) +DECL_WINELIB_TYPE_AW(PPORT_INFO_1) +DECL_WINELIB_TYPE_AW(LPPORT_INFO_1) + +typedef struct _PORT_INFO_2A { + LPSTR pPortName; + LPSTR pMonitorName; + LPSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A; + +typedef struct _PORT_INFO_2W { + LPWSTR pPortName; + LPWSTR pMonitorName; + LPWSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W; + +DECL_WINELIB_TYPE_AW(PORT_INFO_2) +DECL_WINELIB_TYPE_AW(PPORT_INFO_2) +DECL_WINELIB_TYPE_AW(LPPORT_INFO_2) + +typedef struct _PORT_INFO_3A { + DWORD dwStatus; + LPSTR pszStatus; + DWORD dwSeverity; +} PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A; + +typedef struct _PORT_INFO_3W { + DWORD dwStatus; + LPWSTR pszStatus; + DWORD dwSeverity; +} PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W; + +DECL_WINELIB_TYPE_AW(PORT_INFO_3) +DECL_WINELIB_TYPE_AW(PPORT_INFO_3) +DECL_WINELIB_TYPE_AW(LPPORT_INFO_3) + +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; + +DECL_WINELIB_TYPE_AW(MONITOR_INFO_1) +DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1) +DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1) + + +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; + +DECL_WINELIB_TYPE_AW(MONITOR_INFO_2) +DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2) +DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2) + +typedef struct _DATATYPES_INFO_1A { + LPSTR pName; +} 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; + +DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1) +DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1) +DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1) + +typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE { + WORD Type; + WORD Reserved0; + DWORD Reserved1; + DWORD Reserved2; + DWORD Count; + PWORD pFields; +} PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE, +*LPPRINTER_NOTIFY_OPTIONS_TYPE; + +typedef struct _PRINTER_NOTIFY_OPTIONS { + DWORD Version; + DWORD Flags; + DWORD Count; + PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; +} PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS; + +typedef struct _PRINTER_NOTIFY_INFO_DATA { + WORD Type; + WORD Field; + DWORD Reserved; + DWORD Id; + union { + DWORD adwData[2]; + struct { + DWORD cbBuf; + LPVOID pBuf; + } Data; + } NotifyData; +} PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA, +*LPPRINTER_NOTIFY_INFO_DATA; + +typedef struct _PRINTER_NOTIFY_INFO { + DWORD Version; + DWORD Flags; + DWORD Count; + PRINTER_NOTIFY_INFO_DATA aData[1]; +} PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO; + +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; + +DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1) +DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1) +DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1) #endif /* Status */ - - /* DECLARATIONS */ INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability, LPSTR pOutput, LPDEVMODEA pDevMode); @@ -382,11 +774,11 @@ INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort, LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, LPSTR pDeviceName, LPDEVMODEA pDevModeOutput, - LPDEVMODEA pDevModeInput,DWORD fMode ); + LPDEVMODEA pDevModeInput,DWORD fMode ); LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, - LPWSTR pDeviceName, - LPDEVMODEW pDevModeOutput, - LPDEVMODEW pDevModeInput, DWORD fMode); + LPWSTR pDeviceName, + LPDEVMODEW pDevModeOutput, + LPDEVMODEW pDevModeInput, DWORD fMode); #define DocumentProperties WINELIB_NAME_AW(DocumentProperties) @@ -397,6 +789,10 @@ BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter, #define OpenPrinter WINELIB_NAME_AW(OpenPrinter) +BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault); +BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault); +#define ResetPrinter WINELIB_NAME_AW(ResetPrinter) + BOOL WINAPI ClosePrinter (HANDLE phPrinter); BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, @@ -431,9 +827,257 @@ BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD cbBuf, LPDWORD pcbNeeded); #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver) +BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, + DWORD Command); +BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, + DWORD Command); +#define SetJob WINELIB_NAME_AW(SetJob) + +BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, + DWORD cbBuf, LPDWORD pcbNeeded); +BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, + DWORD cbBuf, LPDWORD pcbNeeded); +#define GetJob WINELIB_NAME_AW(GetJob) + +HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter); +HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter); +#define AddPrinter WINELIB_NAME_AW(AddPrinter) + +BOOL WINAPI DeletePrinter(HANDLE hPrinter); + +BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, + DWORD Command); +BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, + DWORD Command); +#define SetPrinter WINELIB_NAME_AW(SetPrinter) + +BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, + DWORD cbBuf, LPDWORD pcbNeeded); +BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, + DWORD cbBuf, LPDWORD pcbNeeded); +#define GetPrinter WINELIB_NAME_AW(GetPrinter) + +BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo); +BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo); +#define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver) + +BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level, + LPBYTE pDriverInfo, DWORD cbBuf, + LPDWORD pcbNeeded, LPDWORD pcbReturned); +BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, + LPBYTE pDriverInfo, DWORD cbBuf, + LPDWORD pcbNeeded, LPDWORD pcbReturned); +#define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers) + +BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment, + LPSTR pDriverName); +BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment, + LPWSTR pDriverName); +#define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver) + +BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment, + LPSTR pPathName, LPSTR pPrintProcessorName); +BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment, + LPWSTR pPathName, LPWSTR pPrintProcessorName); +#define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor) + +BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment, + DWORD Level, LPBYTE pPrintProcessorInfo, + DWORD cbBuf, LPDWORD pcbNeeded, + LPDWORD pcbReturned); +BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment, + DWORD Level, LPBYTE pPrintProcessorInfo, + DWORD cbBuf, LPDWORD pcbNeeded, + LPDWORD pcbReturned); +#define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors) + +BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, LPDWORD pcbNeeded); + +BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment, + DWORD Level, + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, LPDWORD pcbNeeded); +#define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory) + +BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName, + LPSTR pPrintProcessorName, + DWORD Level, LPBYTE pDatatypes, + DWORD cbBuf, LPDWORD pcbNeeded, + LPDWORD pcbReturned); +BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName, + LPWSTR pPrintProcessorName, + DWORD Level, LPBYTE pDatatypes, + DWORD cbBuf, LPDWORD pcbNeeded, + LPDWORD pcbReturned); +#define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes) + +BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment, + LPSTR pPrintProcessorName); +BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment, + LPWSTR pPrintProcessorName); +#define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor) + +DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo); +DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo); +#define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter) + +BOOL WINAPI StartPagePrinter(HANDLE hPrinter); +BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, + LPDWORD pcWritten); +BOOL WINAPI EndPagePrinter(HANDLE hPrinter); +BOOL WINAPI AbortPrinter(HANDLE hPrinter); +BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, + LPDWORD pNoBytesRead); +BOOL WINAPI EndDocPrinter(HANDLE hPrinter); + +BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, + LPDWORD pcbNeeded); +BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, + LPDWORD pcbNeeded); +#define AddJob WINELIB_NAME_AW(AddJob) + +BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID); + +LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter, + LPSTR pDeviceName, + PDEVMODEA pDevModeOutput, + PDEVMODEA pDevModeInput); +LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter, + LPWSTR pDeviceName, + PDEVMODEW pDevModeOutput, + PDEVMODEW pDevModeInput); +#define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties) + +DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType, + LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); +DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType, + LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); +#define GetPrinterData WINELIB_NAME_AW(GetPrinterData) + +DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type, + LPBYTE pData, DWORD cbData); +DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type, + LPBYTE pData, DWORD cbData); +#define SetPrinterData WINELIB_NAME_AW(SetPrinterData) + +DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags); +HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter, + DWORD fdwFlags, + DWORD fdwOptions, + LPVOID pPrinterNotifyOptions); +BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange, + PDWORD pdwChange, + LPVOID pvReserved, + LPVOID *ppPrinterNotifyInfo); +BOOL WINAPI FreePrinterBotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo); +BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange); + +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); +#define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox) + +BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm); +BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm); +#define AddForm WINELIB_NAME_AW(AddForm) + +BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName); +BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName); +#define DeleteForm WINELIB_NAME_AW(DeleteForm) + +BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level, + LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded); +BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level, + LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded); +#define GetForm WINELIB_NAME_AW(GetForm) + +BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level, + LPBYTE pForm); +BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level, + LPBYTE pForm); +#define SetForm WINELIB_NAME_AW(SetForm) + +BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf, + LPDWORD pcbNeeded, LPDWORD pcReturned); +BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf, + LPDWORD pcbNeeded, LPDWORD pcReturned); +#define EnumForms WINELIB_NAME_AW(EnumForms) + +BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors, + DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); +BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors, + DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); +#define EnumMonitors WINELIB_NAME_AW(EnumMonitors) + +BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors); +BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors); +#define AddMonitor WINELIB_NAME_AW(AddMonitor) + +BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment, + LPSTR pMonitorName); +BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment, + LPWSTR pMonitorName); +#define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor) + +BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts, + DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); +BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts, + DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); +#define EnumPorts WINELIB_NAME_AW(EnumPorts) + +BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName); +BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName); +#define AddPort WINELIB_NAME_AW(AddPort) + +BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName); +BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName); +#define ConfigurePort WINELIB_NAME_AW(ConfigurePort) + +BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName); +BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName); +#define DeletePort WINELIB_NAME_AW(DeletePort) + +BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel, + LPBYTE pPortInfo); +BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel, + LPBYTE pPortInfo); +#define SetPort WINELIB_NAME_AW(SetPort) + +BOOL WINAPI AddPrinterConnectionA(LPSTR pName); +BOOL WINAPI AddPrinterConnectionW(LPWSTR pName); +#define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection) + +BOOL WINAPI DeletePrinterConnectionA(LPSTR pName); +BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName); +#define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection) + +HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags); + +BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo); +BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo); +#define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor) + +BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment, + LPSTR pPrintProvidorName); +BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment, + LPWSTR pPrintProvidorName); +#define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor) + + + #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __WINE_WINSPOOL_H */ + + + + + +