diff options
Diffstat (limited to 'vendor/winapi/src/um/winspool.rs')
-rw-r--r-- | vendor/winapi/src/um/winspool.rs | 2433 |
1 files changed, 0 insertions, 2433 deletions
diff --git a/vendor/winapi/src/um/winspool.rs b/vendor/winapi/src/um/winspool.rs deleted file mode 100644 index c6796ca..0000000 --- a/vendor/winapi/src/um/winspool.rs +++ /dev/null @@ -1,2433 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! Winspool header file -use shared::guiddef::GUID; -use shared::minwindef::{ - BOOL, BYTE, DWORD, FILETIME, FLOAT, LPBYTE, LPDWORD, LPHANDLE, LPVOID, MAX_PATH, PBYTE, PDWORD, - PULONG, PWORD, UINT, ULONG, WORD, -}; -use shared::windef::{HWND, RECTL, SIZEL}; -use shared::winerror::ERROR_NOT_SUPPORTED; -use um::minwinbase::SYSTEMTIME; -use um::wingdi::{LPDEVMODEA, LPDEVMODEW, PDEVMODEA, PDEVMODEW}; -use um::winnt::{ - ACCESS_MASK, CHAR, DWORDLONG, HANDLE, HRESULT, LANGID, LONG, LONGLONG, LPCSTR, LPCWSTR, LPSTR, - LPWSTR, PCWSTR, PSECURITY_DESCRIPTOR, PVOID, PWSTR, STANDARD_RIGHTS_EXECUTE, - STANDARD_RIGHTS_READ, STANDARD_RIGHTS_REQUIRED, STANDARD_RIGHTS_WRITE, WCHAR, -}; -use vc::vcruntime::size_t; -STRUCT!{struct PRINTER_INFO_1A { - Flags: DWORD, - pDescription: LPSTR, - pName: LPSTR, - pComment: LPSTR, -}} -pub type PPRINTER_INFO_1A = *mut PRINTER_INFO_1A; -pub type LPPRINTER_INFO_1A = *mut PRINTER_INFO_1A; -STRUCT!{struct PRINTER_INFO_1W { - Flags: DWORD, - pDescription: LPWSTR, - pName: LPWSTR, - pComment: LPWSTR, -}} -pub type PPRINTER_INFO_1W = *mut PRINTER_INFO_1W; -pub type LPPRINTER_INFO_1W = *mut PRINTER_INFO_1W; -STRUCT!{struct PRINTER_INFO_2A { - pServerName: LPSTR, - pPrinterName: LPSTR, - pShareName: LPSTR, - pPortName: LPSTR, - pDriverName: LPSTR, - pComment: LPSTR, - pLocation: LPSTR, - pDevMode: LPDEVMODEA, - pSepFile: LPSTR, - pPrintProcessor: LPSTR, - pDatatype: LPSTR, - pParameters: LPSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Attributes: DWORD, - Priority: DWORD, - DefaultPriority: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - Status: DWORD, - cJobs: DWORD, - AveragePPM: DWORD, -}} -pub type PPRINTER_INFO_2A = *mut PRINTER_INFO_2A; -pub type LPPRINTER_INFO_2A = *mut PRINTER_INFO_2A; -STRUCT!{struct PRINTER_INFO_2W { - pServerName: LPWSTR, - pPrinterName: LPWSTR, - pShareName: LPWSTR, - pPortName: LPWSTR, - pDriverName: LPWSTR, - pComment: LPWSTR, - pLocation: LPWSTR, - pDevMode: LPDEVMODEW, - pSepFile: LPWSTR, - pPrintProcessor: LPWSTR, - pDatatype: LPWSTR, - pParameters: LPWSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Attributes: DWORD, - Priority: DWORD, - DefaultPriority: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - Status: DWORD, - cJobs: DWORD, - AveragePPM: DWORD, -}} -pub type PPRINTER_INFO_2W = *mut PRINTER_INFO_2W; -pub type LPPRINTER_INFO_2W = *mut PRINTER_INFO_2W; -STRUCT!{struct PRINTER_INFO_3 { - pSecurityDescriptor: PSECURITY_DESCRIPTOR, -}} -pub type PPRINTER_INFO_3 = *mut PRINTER_INFO_3; -pub type LPPRINTER_INFO_3 = *mut PRINTER_INFO_3; -STRUCT!{struct PRINTER_INFO_4A { - pPrinterName: LPSTR, - pServerName: LPSTR, - Attributes: DWORD, -}} -pub type PPRINTER_INFO_4A = *mut PRINTER_INFO_4A; -pub type LPPRINTER_INFO_4A = *mut PRINTER_INFO_4A; -STRUCT!{struct PRINTER_INFO_4W { - pPrinterName: LPWSTR, - pServerName: LPWSTR, - Attributes: DWORD, -}} -pub type PPRINTER_INFO_4W = *mut PRINTER_INFO_4W; -pub type LPPRINTER_INFO_4W = *mut PRINTER_INFO_4W; -STRUCT!{struct PRINTER_INFO_5A { - pPrinterName: LPSTR, - pPortName: LPSTR, - Attributes: DWORD, - DeviceNotSelectedTimeout: DWORD, - TransmissionRetryTimeout: DWORD, -}} -pub type PPRINTER_INFO_5A = *mut PRINTER_INFO_5A; -pub type LPPRINTER_INFO_5A = *mut PRINTER_INFO_5A; -STRUCT!{struct PRINTER_INFO_5W { - pPrinterName: LPWSTR, - pPortName: LPWSTR, - Attributes: DWORD, - DeviceNotSelectedTimeout: DWORD, - TransmissionRetryTimeout: DWORD, -}} -pub type PPRINTER_INFO_5W = *mut PRINTER_INFO_5W; -pub type LPPRINTER_INFO_5W = *mut PRINTER_INFO_5W; -STRUCT!{struct PRINTER_INFO_6 { - dwStatus: DWORD, -}} -pub type PPRINTER_INFO_6 = *mut PRINTER_INFO_6; -pub type LPPRINTER_INFO_6 = *mut PRINTER_INFO_6; -STRUCT!{struct PRINTER_INFO_7A { - pszObjectGUID: LPSTR, - dwAction: DWORD, -}} -pub type PPRINTER_INFO_7A = *mut PRINTER_INFO_7A; -pub type LPPRINTER_INFO_7A = *mut PRINTER_INFO_7A; -STRUCT!{struct PRINTER_INFO_7W { - pszObjectGUID: LPWSTR, - dwAction: DWORD, -}} -pub type PPRINTER_INFO_7W = *mut PRINTER_INFO_7W; -pub type LPPRINTER_INFO_7W = *mut PRINTER_INFO_7W; -pub const DSPRINT_PUBLISH: DWORD = 0x00000001; -pub const DSPRINT_UPDATE: DWORD = 0x00000002; -pub const DSPRINT_UNPUBLISH: DWORD = 0x00000004; -pub const DSPRINT_REPUBLISH: DWORD = 0x00000008; -pub const DSPRINT_PENDING: DWORD = 0x80000000; -STRUCT!{struct PRINTER_INFO_8A { - pDevMode: LPDEVMODEA, -}} -pub type PPRINTER_INFO_8A = *mut PRINTER_INFO_8A; -pub type LPPRINTER_INFO_8A = *mut PRINTER_INFO_8A; -STRUCT!{struct PRINTER_INFO_8W { - pDevMode: LPDEVMODEW, -}} -pub type PPRINTER_INFO_8W = *mut PRINTER_INFO_8W; -pub type LPPRINTER_INFO_8W = *mut PRINTER_INFO_8W; -STRUCT!{struct PRINTER_INFO_9A { - pDevMode: LPDEVMODEA, -}} -pub type PPRINTER_INFO_9A = *mut PRINTER_INFO_9A; -pub type LPPRINTER_INFO_9A = *mut PRINTER_INFO_9A; -STRUCT!{struct PRINTER_INFO_9W { - pDevMode: LPDEVMODEW, -}} -pub type PPRINTER_INFO_9W = *mut PRINTER_INFO_9W; -pub type LPPRINTER_INFO_9W = *mut PRINTER_INFO_9W; -pub const PRINTER_CONTROL_PAUSE: DWORD = 1; -pub const PRINTER_CONTROL_RESUME: DWORD = 2; -pub const PRINTER_CONTROL_PURGE: DWORD = 3; -pub const PRINTER_CONTROL_SET_STATUS: DWORD = 4; -pub const PRINTER_STATUS_PAUSED: DWORD = 0x00000001; -pub const PRINTER_STATUS_ERROR: DWORD = 0x00000002; -pub const PRINTER_STATUS_PENDING_DELETION: DWORD = 0x00000004; -pub const PRINTER_STATUS_PAPER_JAM: DWORD = 0x00000008; -pub const PRINTER_STATUS_PAPER_OUT: DWORD = 0x00000010; -pub const PRINTER_STATUS_MANUAL_FEED: DWORD = 0x00000020; -pub const PRINTER_STATUS_PAPER_PROBLEM: DWORD = 0x00000040; -pub const PRINTER_STATUS_OFFLINE: DWORD = 0x00000080; -pub const PRINTER_STATUS_IO_ACTIVE: DWORD = 0x00000100; -pub const PRINTER_STATUS_BUSY: DWORD = 0x00000200; -pub const PRINTER_STATUS_PRINTING: DWORD = 0x00000400; -pub const PRINTER_STATUS_OUTPUT_BIN_FULL: DWORD = 0x00000800; -pub const PRINTER_STATUS_NOT_AVAILABLE: DWORD = 0x00001000; -pub const PRINTER_STATUS_WAITING: DWORD = 0x00002000; -pub const PRINTER_STATUS_PROCESSING: DWORD = 0x00004000; -pub const PRINTER_STATUS_INITIALIZING: DWORD = 0x00008000; -pub const PRINTER_STATUS_WARMING_UP: DWORD = 0x00010000; -pub const PRINTER_STATUS_TONER_LOW: DWORD = 0x00020000; -pub const PRINTER_STATUS_NO_TONER: DWORD = 0x00040000; -pub const PRINTER_STATUS_PAGE_PUNT: DWORD = 0x00080000; -pub const PRINTER_STATUS_USER_INTERVENTION: DWORD = 0x00100000; -pub const PRINTER_STATUS_OUT_OF_MEMORY: DWORD = 0x00200000; -pub const PRINTER_STATUS_DOOR_OPEN: DWORD = 0x00400000; -pub const PRINTER_STATUS_SERVER_UNKNOWN: DWORD = 0x00800000; -pub const PRINTER_STATUS_POWER_SAVE: DWORD = 0x01000000; -pub const PRINTER_STATUS_SERVER_OFFLINE: DWORD = 0x02000000; -pub const PRINTER_STATUS_DRIVER_UPDATE_NEEDED: DWORD = 0x04000000; -pub const PRINTER_ATTRIBUTE_QUEUED: DWORD = 0x00000001; -pub const PRINTER_ATTRIBUTE_DIRECT: DWORD = 0x00000002; -pub const PRINTER_ATTRIBUTE_DEFAULT: DWORD = 0x00000004; -pub const PRINTER_ATTRIBUTE_SHARED: DWORD = 0x00000008; -pub const PRINTER_ATTRIBUTE_NETWORK: DWORD = 0x00000010; -pub const PRINTER_ATTRIBUTE_HIDDEN: DWORD = 0x00000020; -pub const PRINTER_ATTRIBUTE_LOCAL: DWORD = 0x00000040; -pub const PRINTER_ATTRIBUTE_ENABLE_DEVQ: DWORD = 0x00000080; -pub const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS: DWORD = 0x00000100; -pub const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST: DWORD = 0x00000200; -pub const PRINTER_ATTRIBUTE_WORK_OFFLINE: DWORD = 0x00000400; -pub const PRINTER_ATTRIBUTE_ENABLE_BIDI: DWORD = 0x00000800; -pub const PRINTER_ATTRIBUTE_RAW_ONLY: DWORD = 0x00001000; -pub const PRINTER_ATTRIBUTE_PUBLISHED: DWORD = 0x00002000; -pub const PRINTER_ATTRIBUTE_FAX: DWORD = 0x00004000; -pub const PRINTER_ATTRIBUTE_TS: DWORD = 0x00008000; -pub const PRINTER_ATTRIBUTE_PUSHED_USER: DWORD = 0x00020000; -pub const PRINTER_ATTRIBUTE_PUSHED_MACHINE: DWORD = 0x00040000; -pub const PRINTER_ATTRIBUTE_MACHINE: DWORD = 0x00080000; -pub const PRINTER_ATTRIBUTE_FRIENDLY_NAME: DWORD = 0x00100000; -pub const PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER: DWORD = 0x00200000; -pub const PRINTER_ATTRIBUTE_PER_USER: DWORD = 0x00400000; -pub const PRINTER_ATTRIBUTE_ENTERPRISE_CLOUD: DWORD = 0x00800000; -pub const NO_PRIORITY: DWORD = 0; -pub const MAX_PRIORITY: DWORD = 99; -pub const MIN_PRIORITY: DWORD = 1; -pub const DEF_PRIORITY: DWORD = 1; -STRUCT!{struct JOB_INFO_1A { - JobId: DWORD, - pPrinterName: LPSTR, - pMachineName: LPSTR, - pUserName: LPSTR, - pDocument: LPSTR, - pDatatype: LPSTR, - pStatus: LPSTR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - TotalPages: DWORD, - PagesPrinted: DWORD, - Submitted: SYSTEMTIME, -}} -pub type PJOB_INFO_1A = *mut JOB_INFO_1A; -pub type LPJOB_INFO_1A = *mut JOB_INFO_1A; -STRUCT!{struct JOB_INFO_1W { - JobId: DWORD, - pPrinterName: LPWSTR, - pMachineName: LPWSTR, - pUserName: LPWSTR, - pDocument: LPWSTR, - pDatatype: LPWSTR, - pStatus: LPWSTR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - TotalPages: DWORD, - PagesPrinted: DWORD, - Submitted: SYSTEMTIME, -}} -pub type PJOB_INFO_1W = *mut JOB_INFO_1W; -pub type LPJOB_INFO_1W = *mut JOB_INFO_1W; -STRUCT!{struct JOB_INFO_2A { - JobId: DWORD, - pPrinterName: LPSTR, - pMachineName: LPSTR, - pUserName: LPSTR, - pDocument: LPSTR, - pNotifyName: LPSTR, - pDatatype: LPSTR, - pPrintProcessor: LPSTR, - pParameters: LPSTR, - pDriverName: LPSTR, - pDevMode: LPDEVMODEA, - pStatus: LPSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - TotalPages: DWORD, - Size: DWORD, - Submitted: SYSTEMTIME, - Time: DWORD, - PagesPrinted: DWORD, -}} -pub type PJOB_INFO_2A = *mut JOB_INFO_2A; -pub type LPJOB_INFO_2A = *mut JOB_INFO_2A; -STRUCT!{struct JOB_INFO_2W { - JobId: DWORD, - pPrinterName: LPWSTR, - pMachineName: LPWSTR, - pUserName: LPWSTR, - pDocument: LPWSTR, - pNotifyName: LPWSTR, - pDatatype: LPWSTR, - pPrintProcessor: LPWSTR, - pParameters: LPWSTR, - pDriverName: LPWSTR, - pDevMode: LPDEVMODEW, - pStatus: LPWSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - TotalPages: DWORD, - Size: DWORD, - Submitted: SYSTEMTIME, - Time: DWORD, - PagesPrinted: DWORD, -}} -pub type PJOB_INFO_2W = *mut JOB_INFO_2W; -pub type LPJOB_INFO_2W = *mut JOB_INFO_2W; -STRUCT!{struct JOB_INFO_3 { - JobId: DWORD, - NextJobId: DWORD, - Reserved: DWORD, -}} -pub type PJOB_INFO_3 = *mut JOB_INFO_3; -pub type LPJOB_INFO_3 = *mut JOB_INFO_3; -STRUCT!{struct JOB_INFO_4A { - JobId: DWORD, - pPrinterName: LPSTR, - pMachineName: LPSTR, - pUserName: LPSTR, - pDocument: LPSTR, - pNotifyName: LPSTR, - pDatatype: LPSTR, - pPrintProcessor: LPSTR, - pParameters: LPSTR, - pDriverName: LPSTR, - pDevMode: LPDEVMODEA, - pStatus: LPSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - TotalPages: DWORD, - Size: DWORD, - Submitted: SYSTEMTIME, - Time: DWORD, - PagesPrinted: DWORD, - SizeHigh: LONG, -}} -pub type PJOB_INFO_4A = *mut JOB_INFO_4A; -pub type LPJOB_INFO_4A = *mut JOB_INFO_4A; -STRUCT!{struct JOB_INFO_4W { - JobId: DWORD, - pPrinterName: LPWSTR, - pMachineName: LPWSTR, - pUserName: LPWSTR, - pDocument: LPWSTR, - pNotifyName: LPWSTR, - pDatatype: LPWSTR, - pPrintProcessor: LPWSTR, - pParameters: LPWSTR, - pDriverName: LPWSTR, - pDevMode: LPDEVMODEW, - pStatus: LPWSTR, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, - Status: DWORD, - Priority: DWORD, - Position: DWORD, - StartTime: DWORD, - UntilTime: DWORD, - TotalPages: DWORD, - Size: DWORD, - Submitted: SYSTEMTIME, - Time: DWORD, - PagesPrinted: DWORD, - SizeHigh: LONG, -}} -pub type PJOB_INFO_4W = *mut JOB_INFO_4W; -pub type LPJOB_INFO_4W = *mut JOB_INFO_4W; -pub const JOB_CONTROL_PAUSE: DWORD = 1; -pub const JOB_CONTROL_RESUME: DWORD = 2; -pub const JOB_CONTROL_CANCEL: DWORD = 3; -pub const JOB_CONTROL_RESTART: DWORD = 4; -pub const JOB_CONTROL_DELETE: DWORD = 5; -pub const JOB_CONTROL_SENT_TO_PRINTER: DWORD = 6; -pub const JOB_CONTROL_LAST_PAGE_EJECTED: DWORD = 7; -pub const JOB_STATUS_PAUSED: DWORD = 0x00000001; -pub const JOB_STATUS_ERROR: DWORD = 0x00000002; -pub const JOB_STATUS_DELETING: DWORD = 0x00000004; -pub const JOB_STATUS_SPOOLING: DWORD = 0x00000008; -pub const JOB_STATUS_PRINTING: DWORD = 0x00000010; -pub const JOB_STATUS_OFFLINE: DWORD = 0x00000020; -pub const JOB_STATUS_PAPEROUT: DWORD = 0x00000040; -pub const JOB_STATUS_PRINTED: DWORD = 0x00000080; -pub const JOB_STATUS_DELETED: DWORD = 0x00000100; -pub const JOB_STATUS_BLOCKED_DEVQ: DWORD = 0x00000200; -pub const JOB_STATUS_USER_INTERVENTION: DWORD = 0x00000400; -pub const JOB_STATUS_RESTART: DWORD = 0x00000800; -pub const JOB_POSITION_UNSPECIFIED: DWORD = 0; -STRUCT!{struct ADDJOB_INFO_1A { - Path: LPSTR, - JobId: DWORD, -}} -pub type PADDJOB_INFO_1A = *mut ADDJOB_INFO_1A; -pub type LPADDJOB_INFO_1A = *mut ADDJOB_INFO_1A; -STRUCT!{struct ADDJOB_INFO_1W { - Path: LPWSTR, - JobId: DWORD, -}} -pub type PADDJOB_INFO_1W = *mut ADDJOB_INFO_1W; -pub type LPADDJOB_INFO_1W = *mut ADDJOB_INFO_1W; -STRUCT!{struct DRIVER_INFO_1A { - pName: LPSTR, -}} -pub type PDRIVER_INFO_1A = *mut DRIVER_INFO_1A; -pub type LPDRIVER_INFO_1A = *mut DRIVER_INFO_1A; -STRUCT!{struct DRIVER_INFO_1W { - pName: LPWSTR, -}} -pub type PDRIVER_INFO_1W = *mut DRIVER_INFO_1W; -pub type LPDRIVER_INFO_1W = *mut DRIVER_INFO_1W; -STRUCT!{struct DRIVER_INFO_2A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, -}} -pub type PDRIVER_INFO_2A = *mut DRIVER_INFO_2A; -pub type LPDRIVER_INFO_2A = *mut DRIVER_INFO_2A; -STRUCT!{struct DRIVER_INFO_2W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, -}} -pub type PDRIVER_INFO_2W = *mut DRIVER_INFO_2W; -pub type LPDRIVER_INFO_2W = *mut DRIVER_INFO_2W; -STRUCT!{struct DRIVER_INFO_3A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, - pHelpFile: LPSTR, - pDependentFiles: LPSTR, - pMonitorName: LPSTR, - pDefaultDataType: LPSTR, -}} -pub type PDRIVER_INFO_3A = *mut DRIVER_INFO_3A; -pub type LPDRIVER_INFO_3A = *mut DRIVER_INFO_3A; -STRUCT!{struct DRIVER_INFO_3W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, - pHelpFile: LPWSTR, - pDependentFiles: LPWSTR, - pMonitorName: LPWSTR, - pDefaultDataType: LPWSTR, -}} -pub type PDRIVER_INFO_3W = *mut DRIVER_INFO_3W; -pub type LPDRIVER_INFO_3W = *mut DRIVER_INFO_3W; -STRUCT!{struct DRIVER_INFO_4A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, - pHelpFile: LPSTR, - pDependentFiles: LPSTR, - pMonitorName: LPSTR, - pDefaultDataType: LPSTR, - pszzPreviousNames: LPSTR, -}} -pub type PDRIVER_INFO_4A = *mut DRIVER_INFO_4A; -pub type LPDRIVER_INFO_4A = *mut DRIVER_INFO_4A; -STRUCT!{struct DRIVER_INFO_4W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, - pHelpFile: LPWSTR, - pDependentFiles: LPWSTR, - pMonitorName: LPWSTR, - pDefaultDataType: LPWSTR, - pszzPreviousNames: LPWSTR, -}} -pub type PDRIVER_INFO_4W = *mut DRIVER_INFO_4W; -pub type LPDRIVER_INFO_4W = *mut DRIVER_INFO_4W; -STRUCT!{struct DRIVER_INFO_5A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, - dwDriverAttributes: DWORD, - dwConfigVersion: DWORD, - dwDriverVersion: DWORD, -}} -pub type PDRIVER_INFO_5A = *mut DRIVER_INFO_5A; -pub type LPDRIVER_INFO_5A = *mut DRIVER_INFO_5A; -STRUCT!{struct DRIVER_INFO_5W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, - dwDriverAttributes: DWORD, - dwConfigVersion: DWORD, - dwDriverVersion: DWORD, -}} -pub type PDRIVER_INFO_5W = *mut DRIVER_INFO_5W; -pub type LPDRIVER_INFO_5W = *mut DRIVER_INFO_5W; -STRUCT!{struct DRIVER_INFO_6A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, - pHelpFile: LPSTR, - pDependentFiles: LPSTR, - pMonitorName: LPSTR, - pDefaultDataType: LPSTR, - pszzPreviousNames: LPSTR, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pszMfgName: LPSTR, - pszOEMUrl: LPSTR, - pszHardwareID: LPSTR, - pszProvider: LPSTR, -}} -pub type PDRIVER_INFO_6A = *mut DRIVER_INFO_6A; -pub type LPDRIVER_INFO_6A = *mut DRIVER_INFO_6A; -STRUCT!{struct DRIVER_INFO_6W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, - pHelpFile: LPWSTR, - pDependentFiles: LPWSTR, - pMonitorName: LPWSTR, - pDefaultDataType: LPWSTR, - pszzPreviousNames: LPWSTR, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pszMfgName: LPWSTR, - pszOEMUrl: LPWSTR, - pszHardwareID: LPWSTR, - pszProvider: LPWSTR, -}} -pub type PDRIVER_INFO_6W = *mut DRIVER_INFO_6W; -pub type LPDRIVER_INFO_6W = *mut DRIVER_INFO_6W; -pub const PRINTER_DRIVER_PACKAGE_AWARE: DWORD = 0x00000001; -pub const PRINTER_DRIVER_XPS: DWORD = 0x00000002; -pub const PRINTER_DRIVER_SANDBOX_ENABLED: DWORD = 0x00000004; -pub const PRINTER_DRIVER_CLASS: DWORD = 0x00000008; -pub const PRINTER_DRIVER_DERIVED: DWORD = 0x00000010; -pub const PRINTER_DRIVER_NOT_SHAREABLE: DWORD = 0x00000020; -pub const PRINTER_DRIVER_CATEGORY_FAX: DWORD = 0x00000040; -pub const PRINTER_DRIVER_CATEGORY_FILE: DWORD = 0x00000080; -pub const PRINTER_DRIVER_CATEGORY_VIRTUAL: DWORD = 0x00000100; -pub const PRINTER_DRIVER_CATEGORY_SERVICE: DWORD = 0x00000200; -pub const PRINTER_DRIVER_SOFT_RESET_REQUIRED: DWORD = 0x00000400; -pub const PRINTER_DRIVER_SANDBOX_DISABLED: DWORD = 0x00000800; -pub const PRINTER_DRIVER_CATEGORY_3D: DWORD = 0x00001000; -pub const PRINTER_DRIVER_CATEGORY_CLOUD: DWORD = 0x00002000; -STRUCT!{struct DRIVER_INFO_8A { - cVersion: DWORD, - pName: LPSTR, - pEnvironment: LPSTR, - pDriverPath: LPSTR, - pDataFile: LPSTR, - pConfigFile: LPSTR, - pHelpFile: LPSTR, - pDependentFiles: LPSTR, - pMonitorName: LPSTR, - pDefaultDataType: LPSTR, - pszzPreviousNames: LPSTR, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pszMfgName: LPSTR, - pszOEMUrl: LPSTR, - pszHardwareID: LPSTR, - pszProvider: LPSTR, - pszPrintProcessor: LPSTR, - pszVendorSetup: LPSTR, - pszzColorProfiles: LPSTR, - pszInfPath: LPSTR, - dwPrinterDriverAttributes: DWORD, - pszzCoreDriverDependencies: LPSTR, - ftMinInboxDriverVerDate: FILETIME, - dwlMinInboxDriverVerVersion: DWORDLONG, -}} -pub type PDRIVER_INFO_8A = *mut DRIVER_INFO_8A; -pub type LPDRIVER_INFO_8A = *mut DRIVER_INFO_8A; -STRUCT!{struct DRIVER_INFO_8W { - cVersion: DWORD, - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverPath: LPWSTR, - pDataFile: LPWSTR, - pConfigFile: LPWSTR, - pHelpFile: LPWSTR, - pDependentFiles: LPWSTR, - pMonitorName: LPWSTR, - pDefaultDataType: LPWSTR, - pszzPreviousNames: LPWSTR, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pszMfgName: LPWSTR, - pszOEMUrl: LPWSTR, - pszHardwareID: LPWSTR, - pszProvider: LPWSTR, - pszPrintProcessor: LPWSTR, - pszVendorSetup: LPWSTR, - pszzColorProfiles: LPWSTR, - pszInfPath: LPWSTR, - dwPrinterDriverAttributes: DWORD, - pszzCoreDriverDependencies: LPWSTR, - ftMinInboxDriverVerDate: FILETIME, - dwlMinInboxDriverVerVersion: DWORDLONG, -}} -pub type PDRIVER_INFO_8W = *mut DRIVER_INFO_8W; -pub type LPDRIVER_INFO_8W = *mut DRIVER_INFO_8W; -pub const DRIVER_KERNELMODE: DWORD = 0x00000001; -pub const DRIVER_USERMODE: DWORD = 0x00000002; -pub const DPD_DELETE_UNUSED_FILES: DWORD = 0x00000001; -pub const DPD_DELETE_SPECIFIC_VERSION: DWORD = 0x00000002; -pub const DPD_DELETE_ALL_FILES: DWORD = 0x00000004; -pub const APD_STRICT_UPGRADE: DWORD = 0x00000001; -pub const APD_STRICT_DOWNGRADE: DWORD = 0x00000002; -pub const APD_COPY_ALL_FILES: DWORD = 0x00000004; -pub const APD_COPY_NEW_FILES: DWORD = 0x00000008; -pub const APD_COPY_FROM_DIRECTORY: DWORD = 0x00000010; -STRUCT!{struct DOC_INFO_1A { - pDocName: LPSTR, - pOutputFile: LPSTR, - pDatatype: LPSTR, -}} -pub type PDOC_INFO_1A = *mut DOC_INFO_1A; -pub type LPDOC_INFO_1A = *mut DOC_INFO_1A; -STRUCT!{struct DOC_INFO_1W { - pDocName: LPWSTR, - pOutputFile: LPWSTR, - pDatatype: LPWSTR, -}} -pub type PDOC_INFO_1W = *mut DOC_INFO_1W; -pub type LPDOC_INFO_1W = *mut DOC_INFO_1W; -STRUCT!{struct FORM_INFO_1A { - Flags: DWORD, - pName: LPSTR, - Size: SIZEL, - ImageableArea: RECTL, -}} -pub type PFORM_INFO_1A = *mut FORM_INFO_1A; -pub type LPFORM_INFO_1A = *mut FORM_INFO_1A; -STRUCT!{struct FORM_INFO_1W { - Flags: DWORD, - pName: LPWSTR, - Size: SIZEL, - ImageableArea: RECTL, -}} -pub type PFORM_INFO_1W = *mut FORM_INFO_1W; -pub type LPFORM_INFO_1W = *mut FORM_INFO_1W; -pub const STRING_NONE: DWORD = 0x00000001; -pub const STRING_MUIDLL: DWORD = 0x00000002; -pub const STRING_LANGPAIR: DWORD = 0x00000004; -pub const MAX_FORM_KEYWORD_LENGTH: usize = 63 + 1; -STRUCT!{struct FORM_INFO_2A { - Flags: DWORD, - pName: LPCSTR, - Size: SIZEL, - ImageableArea: RECTL, - pKeyword: LPCSTR, - StringType: DWORD, - pMuiDll: LPCSTR, - dwResourceId: DWORD, - pDisplayName: LPCSTR, - wLangId: LANGID, -}} -pub type PFORM_INFO_2A = *mut FORM_INFO_2A; -pub type LPFORM_INFO_2A = *mut FORM_INFO_2A; -STRUCT!{struct FORM_INFO_2W { - Flags: DWORD, - pName: LPCWSTR, - Size: SIZEL, - ImageableArea: RECTL, - pKeyword: LPCSTR, - StringType: DWORD, - pMuiDll: LPCWSTR, - dwResourceId: DWORD, - pDisplayName: LPCWSTR, - wLangId: LANGID, -}} -pub type PFORM_INFO_2W = *mut FORM_INFO_2W; -pub type LPFORM_INFO_2W = *mut FORM_INFO_2W; -STRUCT!{struct DOC_INFO_2A { - pDocName: LPSTR, - pOutputFile: LPSTR, - pDatatype: LPSTR, - dwMode: DWORD, - JobId: DWORD, -}} -pub type PDOC_INFO_2A = *mut DOC_INFO_2A; -pub type LPDOC_INFO_2A = *mut DOC_INFO_2A; -STRUCT!{struct DOC_INFO_2W { - pDocName: LPWSTR, - pOutputFile: LPWSTR, - pDatatype: LPWSTR, - dwMode: DWORD, - JobId: DWORD, -}} -pub type PDOC_INFO_2W = *mut DOC_INFO_2W; -pub type LPDOC_INFO_2W = *mut DOC_INFO_2W; -pub const DI_CHANNEL: DWORD = 1; -pub const DI_READ_SPOOL_JOB: DWORD = 3; -STRUCT!{struct DOC_INFO_3A { - pDocName: LPSTR, - pOutputFile: LPSTR, - pDatatype: LPSTR, - dwFlags: DWORD, -}} -pub type PDOC_INFO_3A = *mut DOC_INFO_3A; -pub type LPDOC_INFO_3A = *mut DOC_INFO_3A; -STRUCT!{struct DOC_INFO_3W { - pDocName: LPWSTR, - pOutputFile: LPWSTR, - pDatatype: LPWSTR, - dwFlags: DWORD, -}} -pub type PDOC_INFO_3W = *mut DOC_INFO_3W; -pub type LPDOC_INFO_3W = *mut DOC_INFO_3W; -pub const DI_MEMORYMAP_WRITE: DWORD = 0x00000001; -pub const FORM_USER: DWORD = 0x00000000; -pub const FORM_BUILTIN: DWORD = 0x00000001; -pub const FORM_PRINTER: DWORD = 0x00000002; -STRUCT!{struct PRINTPROCESSOR_INFO_1A { - pName: LPSTR, -}} -pub type PPRINTPROCESSOR_INFO_1A = *mut PRINTPROCESSOR_INFO_1A; -pub type LPPRINTPROCESSOR_INFO_1A = *mut PRINTPROCESSOR_INFO_1A; -STRUCT!{struct PRINTPROCESSOR_INFO_1W { - pName: LPWSTR, -}} -pub type PPRINTPROCESSOR_INFO_1W = *mut PRINTPROCESSOR_INFO_1W; -pub type LPPRINTPROCESSOR_INFO_1W = *mut PRINTPROCESSOR_INFO_1W; -STRUCT!{struct PRINTPROCESSOR_CAPS_1 { - dwLevel: DWORD, - dwNupOptions: DWORD, - dwPageOrderFlags: DWORD, - dwNumberOfCopies: DWORD, -}} -pub type PPRINTPROCESSOR_CAPS_1 = *mut PRINTPROCESSOR_CAPS_1; -STRUCT!{struct PRINTPROCESSOR_CAPS_2 { - dwLevel: DWORD, - dwNupOptions: DWORD, - dwPageOrderFlags: DWORD, - dwNumberOfCopies: DWORD, - dwDuplexHandlingCaps: DWORD, - dwNupDirectionCaps: DWORD, - dwNupBorderCaps: DWORD, - dwBookletHandlingCaps: DWORD, - dwScalingCaps: DWORD, -}} -pub type PPRINTPROCESSOR_CAPS_2 = *mut PRINTPROCESSOR_CAPS_2; -pub const PPCAPS_RIGHT_THEN_DOWN: DWORD = 0x00000001; -pub const PPCAPS_DOWN_THEN_RIGHT: DWORD = 0x00000001 << 1; -pub const PPCAPS_LEFT_THEN_DOWN: DWORD = 0x00000001 << 2; -pub const PPCAPS_DOWN_THEN_LEFT: DWORD = 0x00000001 << 3; -pub const PPCAPS_BORDER_PRINT: DWORD = 0x00000001; -pub const PPCAPS_BOOKLET_EDGE: DWORD = 0x00000001; -pub const PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX: DWORD = 0x00000001; -pub const PPCAPS_DONT_SEND_EXTRA_PAGES_FOR_DUPLEX: DWORD = 0x00000001 << 1; -pub const PPCAPS_SQUARE_SCALING: DWORD = 0x00000001; -STRUCT!{struct PORT_INFO_1A { - pName: LPSTR, -}} -pub type PPORT_INFO_1A = *mut PORT_INFO_1A; -pub type LPPORT_INFO_1A = *mut PORT_INFO_1A; -STRUCT!{struct PORT_INFO_1W { - pName: LPWSTR, -}} -pub type PPORT_INFO_1W = *mut PORT_INFO_1W; -pub type LPPORT_INFO_1W = *mut PORT_INFO_1W; -STRUCT!{struct PORT_INFO_2A { - pPortName: LPSTR, - pMonitorName: LPSTR, - pDescription: LPSTR, - fPortType: DWORD, - Reserved: DWORD, -}} -pub type PPORT_INFO_2A = *mut PORT_INFO_2A; -pub type LPPORT_INFO_2A = *mut PORT_INFO_2A; -STRUCT!{struct PORT_INFO_2W { - pPortName: LPWSTR, - pMonitorName: LPWSTR, - pDescription: LPWSTR, - fPortType: DWORD, - Reserved: DWORD, -}} -pub type PPORT_INFO_2W = *mut PORT_INFO_2W; -pub type LPPORT_INFO_2W = *mut PORT_INFO_2W; -pub const PORT_TYPE_WRITE: DWORD = 0x0001; -pub const PORT_TYPE_READ: DWORD = 0x0002; -pub const PORT_TYPE_REDIRECTED: DWORD = 0x0004; -pub const PORT_TYPE_NET_ATTACHED: DWORD = 0x0008; -STRUCT!{struct PORT_INFO_3A { - dwStatus: DWORD, - pszStatus: LPSTR, - dwSeverity: DWORD, -}} -pub type PPORT_INFO_3A = *mut PORT_INFO_3A; -pub type LPPORT_INFO_3A = *mut PORT_INFO_3A; -STRUCT!{struct PORT_INFO_3W { - dwStatus: DWORD, - pszStatus: LPWSTR, - dwSeverity: DWORD, -}} -pub type PPORT_INFO_3W = *mut PORT_INFO_3W; -pub type LPPORT_INFO_3W = *mut PORT_INFO_3W; -pub const PORT_STATUS_TYPE_ERROR: DWORD = 1; -pub const PORT_STATUS_TYPE_WARNING: DWORD = 2; -pub const PORT_STATUS_TYPE_INFO: DWORD = 3; -pub const PORT_STATUS_OFFLINE: DWORD = 1; -pub const PORT_STATUS_PAPER_JAM: DWORD = 2; -pub const PORT_STATUS_PAPER_OUT: DWORD = 3; -pub const PORT_STATUS_OUTPUT_BIN_FULL: DWORD = 4; -pub const PORT_STATUS_PAPER_PROBLEM: DWORD = 5; -pub const PORT_STATUS_NO_TONER: DWORD = 6; -pub const PORT_STATUS_DOOR_OPEN: DWORD = 7; -pub const PORT_STATUS_USER_INTERVENTION: DWORD = 8; -pub const PORT_STATUS_OUT_OF_MEMORY: DWORD = 9; -pub const PORT_STATUS_TONER_LOW: DWORD = 10; -pub const PORT_STATUS_WARMING_UP: DWORD = 11; -pub const PORT_STATUS_POWER_SAVE: DWORD = 12; -STRUCT!{struct MONITOR_INFO_1A { - pName: LPSTR, -}} -pub type PMONITOR_INFO_1A = *mut MONITOR_INFO_1A; -pub type LPMONITOR_INFO_1A = *mut MONITOR_INFO_1A; -STRUCT!{struct MONITOR_INFO_1W { - pName: LPWSTR, -}} -pub type PMONITOR_INFO_1W = *mut MONITOR_INFO_1W; -pub type LPMONITOR_INFO_1W = *mut MONITOR_INFO_1W; -STRUCT!{struct MONITOR_INFO_2A { - pName: LPSTR, - pEnvironment: LPSTR, - pDLLName: LPSTR, -}} -pub type PMONITOR_INFO_2A = *mut MONITOR_INFO_2A; -pub type LPMONITOR_INFO_2A = *mut MONITOR_INFO_2A; -STRUCT!{struct MONITOR_INFO_2W { - pName: LPWSTR, - pEnvironment: LPWSTR, - pDLLName: LPWSTR, -}} -pub type PMONITOR_INFO_2W = *mut MONITOR_INFO_2W; -pub type LPMONITOR_INFO_2W = *mut MONITOR_INFO_2W; -STRUCT!{struct DATATYPES_INFO_1A { - pName: LPSTR, -}} -pub type PDATATYPES_INFO_1A = *mut DATATYPES_INFO_1A; -pub type LPDATATYPES_INFO_1A = *mut DATATYPES_INFO_1A; -STRUCT!{struct DATATYPES_INFO_1W { - pName: LPWSTR, -}} -pub type PDATATYPES_INFO_1W = *mut DATATYPES_INFO_1W; -pub type LPDATATYPES_INFO_1W = *mut DATATYPES_INFO_1W; -STRUCT!{struct PRINTER_DEFAULTSA { - pDataType: LPSTR, - pDevMode: LPDEVMODEA, - DesiredAccess: ACCESS_MASK, -}} -pub type PPRINTER_DEFAULTSA = *mut PRINTER_DEFAULTSA; -pub type LPPRINTER_DEFAULTSA = *mut PRINTER_DEFAULTSA; -STRUCT!{struct PRINTER_DEFAULTSW { - pDataType: LPWSTR, - pDevMode: LPDEVMODEW, - DesiredAccess: ACCESS_MASK, -}} -pub type PPRINTER_DEFAULTSW = *mut PRINTER_DEFAULTSW; -pub type LPPRINTER_DEFAULTSW = *mut PRINTER_DEFAULTSW; -STRUCT!{struct PRINTER_ENUM_VALUESA { - pValueName: LPSTR, - cbValueName: DWORD, - dwType: DWORD, - pData: LPBYTE, - cbData: DWORD, -}} -pub type PPRINTER_ENUM_VALUESA = *mut PRINTER_ENUM_VALUESA; -pub type LPPRINTER_ENUM_VALUESA = *mut PRINTER_ENUM_VALUESA; -STRUCT!{struct PRINTER_ENUM_VALUESW { - pValueName: LPWSTR, - cbValueName: DWORD, - dwType: DWORD, - pData: LPBYTE, - cbData: DWORD, -}} -pub type PPRINTER_ENUM_VALUESW = *mut PRINTER_ENUM_VALUESW; -pub type LPPRINTER_ENUM_VALUESW = *mut PRINTER_ENUM_VALUESW; -extern "system" { - pub fn EnumPrintersA( - Flags: DWORD, - Name: LPSTR, - Level: DWORD, - pPrinterEnum: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumPrintersW( - Flags: DWORD, - Name: LPWSTR, - Level: DWORD, - pPrinterEnum: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; -} -pub const PRINTER_ENUM_DEFAULT: DWORD = 0x00000001; -pub const PRINTER_ENUM_LOCAL: DWORD = 0x00000002; -pub const PRINTER_ENUM_CONNECTIONS: DWORD = 0x00000004; -pub const PRINTER_ENUM_FAVORITE: DWORD = 0x00000004; -pub const PRINTER_ENUM_NAME: DWORD = 0x00000008; -pub const PRINTER_ENUM_REMOTE: DWORD = 0x00000010; -pub const PRINTER_ENUM_SHARED: DWORD = 0x00000020; -pub const PRINTER_ENUM_NETWORK: DWORD = 0x00000040; -pub const PRINTER_ENUM_EXPAND: DWORD = 0x00004000; -pub const PRINTER_ENUM_CONTAINER: DWORD = 0x00008000; -pub const PRINTER_ENUM_ICONMASK: DWORD = 0x00ff0000; -pub const PRINTER_ENUM_ICON1: DWORD = 0x00010000; -pub const PRINTER_ENUM_ICON2: DWORD = 0x00020000; -pub const PRINTER_ENUM_ICON3: DWORD = 0x00040000; -pub const PRINTER_ENUM_ICON4: DWORD = 0x00080000; -pub const PRINTER_ENUM_ICON5: DWORD = 0x00100000; -pub const PRINTER_ENUM_ICON6: DWORD = 0x00200000; -pub const PRINTER_ENUM_ICON7: DWORD = 0x00400000; -pub const PRINTER_ENUM_ICON8: DWORD = 0x00800000; -pub const PRINTER_ENUM_HIDE: DWORD = 0x01000000; -pub const PRINTER_ENUM_CATEGORY_ALL: DWORD = 0x02000000; -pub const PRINTER_ENUM_CATEGORY_3D: DWORD = 0x04000000; -pub const SPOOL_FILE_PERSISTENT: DWORD = 0x00000001; -pub const SPOOL_FILE_TEMPORARY: DWORD = 0x00000002; -extern "system" { - pub fn GetSpoolFileHandle( - hPrinter: HANDLE, - ) -> HANDLE; - pub fn CommitSpoolData( - hPrinter: HANDLE, - hSpoolFile: HANDLE, - cbCommit: DWORD, - ) -> HANDLE; - pub fn CloseSpoolFileHandle( - hPrinter: HANDLE, - hSpoolFile: HANDLE, - ) -> BOOL; - pub fn OpenPrinterA( - pPrinterName: LPSTR, - phPrinter: LPHANDLE, - pDefault: LPPRINTER_DEFAULTSA, - ) -> BOOL; - pub fn OpenPrinterW( - pPrinterName: LPWSTR, - phPrinter: LPHANDLE, - pDefault: LPPRINTER_DEFAULTSW, - ) -> BOOL; - pub fn ResetPrinterA( - hPrinter: HANDLE, - pDefault: LPPRINTER_DEFAULTSA, - ) -> BOOL; - pub fn ResetPrinterW( - hPrinter: HANDLE, - pDefault: LPPRINTER_DEFAULTSW, - ) -> BOOL; - pub fn SetJobA( - hPrinter: HANDLE, - JobId: DWORD, - Level: DWORD, - pJob: LPBYTE, - Command: DWORD, - ) -> BOOL; - pub fn SetJobW( - hPrinter: HANDLE, - JobId: DWORD, - Level: DWORD, - pJob: LPBYTE, - Command: DWORD, - ) -> BOOL; - pub fn GetJobA( - hPrinter: HANDLE, - JobId: DWORD, - Level: DWORD, - pJob: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetJobW( - hPrinter: HANDLE, - JobId: DWORD, - Level: DWORD, - pJob: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn EnumJobsA( - hPrinter: HANDLE, - FirstJob: DWORD, - NoJobs: DWORD, - Level: DWORD, - pJob: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumJobsW( - hPrinter: HANDLE, - FirstJob: DWORD, - NoJobs: DWORD, - Level: DWORD, - pJob: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn AddPrinterA( - pName: LPSTR, - Level: DWORD, - pPrinter: LPBYTE, - ) -> HANDLE; - pub fn AddPrinterW( - pName: LPWSTR, - Level: DWORD, - pPrinter: LPBYTE, - ) -> HANDLE; - pub fn DeletePrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn SetPrinterA( - hPrinter: HANDLE, - Level: DWORD, - pPrinter: LPBYTE, - Command: DWORD, - ) -> BOOL; - pub fn SetPrinterW( - hPrinter: HANDLE, - Level: DWORD, - pPrinter: LPBYTE, - Command: DWORD, - ) -> BOOL; - pub fn GetPrinterA( - hPrinter: HANDLE, - Level: DWORD, - pPrinter: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrinterW( - hPrinter: HANDLE, - Level: DWORD, - pPrinter: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn AddPrinterDriverA( - pName: LPSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - ) -> BOOL; - pub fn AddPrinterDriverW( - pName: LPWSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - ) -> BOOL; - pub fn AddPrinterDriverExA( - pName: LPSTR, - Level: DWORD, - pDriverInfo: PBYTE, - dwFileCopyFlags: DWORD, - ) -> BOOL; - pub fn AddPrinterDriverExW( - pName: LPWSTR, - Level: DWORD, - pDriverInfo: PBYTE, - dwFileCopyFlags: DWORD, - ) -> BOOL; - pub fn EnumPrinterDriversA( - pName: LPSTR, - pEnvironment: LPSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumPrinterDriversW( - pName: LPWSTR, - pEnvironment: LPWSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn GetPrinterDriverA( - hPrinter: HANDLE, - pEnvironment: LPSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrinterDriverW( - hPrinter: HANDLE, - pEnvironment: LPWSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrinterDriverDirectoryA( - pName: LPSTR, - pEnvironment: LPSTR, - Level: DWORD, - pDriverDirectory: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrinterDriverDirectoryW( - pName: LPWSTR, - pEnvironment: LPWSTR, - Level: DWORD, - pDriverDirectory: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn DeletePrinterDriverA( - pName: LPSTR, - pEnvironment: LPSTR, - pDriverName: LPSTR, - ) -> BOOL; - pub fn DeletePrinterDriverW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverName: LPWSTR, - ) -> BOOL; - pub fn DeletePrinterDriverExA( - pName: LPSTR, - pEnvironment: LPSTR, - pDriverName: LPSTR, - dwDeleteFlag: DWORD, - dwVersionFlag: DWORD, - ) -> BOOL; - pub fn DeletePrinterDriverExW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pDriverName: LPWSTR, - dwDeleteFlag: DWORD, - dwVersionFlag: DWORD, - ) -> BOOL; - pub fn AddPrintProcessorA( - pName: LPSTR, - pEnvironment: LPSTR, - pPathName: LPSTR, - pPrintProcessorName: LPSTR, - ) -> BOOL; - pub fn AddPrintProcessorW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pPathName: LPWSTR, - pPrintProcessorName: LPWSTR, - ) -> BOOL; - pub fn EnumPrintProcessorsA( - pName: LPSTR, - pEnvironment: LPSTR, - Level: DWORD, - pPrintProcessorInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumPrintProcessorsW( - pName: LPWSTR, - pEnvironment: LPWSTR, - Level: DWORD, - pPrintProcessorInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn GetPrintProcessorDirectoryA( - pName: LPSTR, - pEnvironment: LPSTR, - Level: DWORD, - pPrintProcessorInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrintProcessorDirectoryW( - pName: LPWSTR, - pEnvironment: LPWSTR, - Level: DWORD, - pPrintProcessorInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn EnumPrintProcessorDatatypesA( - pName: LPSTR, - pPrintProcessorName: LPSTR, - Level: DWORD, - pDatatypes: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumPrintProcessorDatatypesW( - pName: LPWSTR, - pPrintProcessorName: LPWSTR, - Level: DWORD, - pDatatypes: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn DeletePrintProcessorA( - pName: LPSTR, - pEnvironment: LPSTR, - pPrintProcessorName: LPSTR, - ) -> BOOL; - pub fn DeletePrintProcessorW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pPrintProcessorName: LPWSTR, - ) -> BOOL; - pub fn StartDocPrinterA( - hPrinter: HANDLE, - Level: DWORD, - pDocInfo: LPBYTE, - ) -> DWORD; - pub fn StartDocPrinterW( - hPrinter: HANDLE, - Level: DWORD, - pDocInfo: LPBYTE, - ) -> DWORD; - pub fn StartPagePrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn WritePrinter( - hPrinter: HANDLE, - pBuf: LPVOID, - cbBuf: DWORD, - pcWritten: LPDWORD, - ) -> BOOL; - pub fn FlushPrinter( - hPrinter: HANDLE, - pBuf: LPVOID, - cbBuf: DWORD, - pcWritten: LPDWORD, - cSleep: DWORD, - ) -> BOOL; - pub fn EndPagePrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn AbortPrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn ReadPrinter( - hPrinter: HANDLE, - pBuf: LPVOID, - cbBuf: DWORD, - pNoBytesRead: LPDWORD, - ) -> BOOL; - pub fn EndDocPrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn AddJobA( - hPrinter: HANDLE, - Level: DWORD, - pData: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn AddJobW( - hPrinter: HANDLE, - Level: DWORD, - pData: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn ScheduleJob( - hPrinter: HANDLE, - JobId: DWORD, - ) -> BOOL; - pub fn PrinterProperties( - hWnd: HWND, - hPrinter: HANDLE, - ) -> BOOL; - pub fn DocumentPropertiesA( - hWnd: HWND, - hPrinter: HANDLE, - pDeviceName: LPSTR, - pDevModeOutput: PDEVMODEA, - pDevModeInput: PDEVMODEA, - fMode: DWORD, - ) -> LONG; - pub fn DocumentPropertiesW( - hWnd: HWND, - hPrinter: HANDLE, - pDeviceName: LPWSTR, - pDevModeOutput: PDEVMODEW, - pDevModeInput: PDEVMODEW, - fMode: DWORD, - ) -> LONG; - pub fn AdvancedDocumentPropertiesA( - hWnd: HWND, - hPrinter: HANDLE, - pDeviceName: LPSTR, - pDevModeOutput: PDEVMODEA, - pDevModeInput: PDEVMODEA, - ) -> LONG; - pub fn AdvancedDocumentPropertiesW( - hWnd: HWND, - hPrinter: HANDLE, - pDeviceName: LPWSTR, - pDevModeOutput: PDEVMODEW, - pDevModeInput: PDEVMODEW, - ) -> LONG; - pub fn ExtDeviceMode( - hWnd: HWND, - hInst: HANDLE, - pDevModeOutput: LPDEVMODEA, - pDeviceName: LPSTR, - pPort: LPSTR, - pDevModeInput: LPDEVMODEA, - pProfile: LPSTR, - fMode: DWORD, - ) -> LONG; - pub fn GetPrinterDataA( - hPrinter: HANDLE, - pValueName: LPSTR, - pType: LPDWORD, - pData: LPBYTE, - nSize: DWORD, - pcbNeeded: LPDWORD, - ) -> DWORD; - pub fn GetPrinterDataW( - hPrinter: HANDLE, - pValueName: LPWSTR, - pType: LPDWORD, - pData: LPBYTE, - nSize: DWORD, - pcbNeeded: LPDWORD, - ) -> DWORD; - pub fn GetPrinterDataExA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - pValueName: LPCSTR, - pType: LPDWORD, - pData: LPBYTE, - nSize: DWORD, - pcbNeeded: LPDWORD, - ) -> DWORD; - pub fn GetPrinterDataExW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - pValueName: LPCWSTR, - pType: LPDWORD, - pData: LPBYTE, - nSize: DWORD, - pcbNeeded: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterDataA( - hPrinter: HANDLE, - dwIndex: DWORD, - pValueName: LPSTR, - cbValueName: DWORD, - pcbValueName: LPDWORD, - pType: LPDWORD, - pData: LPBYTE, - cbData: DWORD, - pcbData: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterDataW( - hPrinter: HANDLE, - dwIndex: DWORD, - pValueName: LPWSTR, - cbValueName: DWORD, - pcbValueName: LPDWORD, - pType: LPDWORD, - pData: LPBYTE, - cbData: DWORD, - pcbData: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterDataExA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - pEnumValues: LPBYTE, - cbEnumValues: DWORD, - pcbEnumValues: LPDWORD, - pnEnumValues: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterDataExW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - pEnumValues: LPBYTE, - cbEnumValues: DWORD, - pcbEnumValues: LPDWORD, - pnEnumValues: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterKeyA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - pSubKey: LPSTR, - cbSubkey: DWORD, - pcbSubkey: LPDWORD, - ) -> DWORD; - pub fn EnumPrinterKeyW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - pSubKey: LPWSTR, - cbSubkey: DWORD, - pcbSubkey: LPDWORD, - ) -> DWORD; - pub fn SetPrinterDataA( - hPrinter: HANDLE, - pValueName: LPSTR, - Type: DWORD, - pData: LPBYTE, - cbData: DWORD, - ) -> DWORD; - pub fn SetPrinterDataW( - hPrinter: HANDLE, - pValueName: LPWSTR, - Type: DWORD, - pData: LPBYTE, - cbData: DWORD, - ) -> DWORD; - pub fn SetPrinterDataExA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - pValueName: LPCSTR, - Type: DWORD, - pData: LPBYTE, - cbData: DWORD, - ) -> DWORD; - pub fn SetPrinterDataExW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - pValueName: LPCWSTR, - Type: DWORD, - pData: LPBYTE, - cbData: DWORD, - ) -> DWORD; - pub fn DeletePrinterDataA( - hPrinter: HANDLE, - pValueName: LPSTR, - ) -> DWORD; - pub fn DeletePrinterDataW( - hPrinter: HANDLE, - pValueName: LPWSTR, - ) -> DWORD; - pub fn DeletePrinterDataExA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - pValueName: LPCSTR, - ) -> DWORD; - pub fn DeletePrinterDataExW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - pValueName: LPCWSTR, - ) -> DWORD; - pub fn DeletePrinterKeyA( - hPrinter: HANDLE, - pKeyName: LPCSTR, - ) -> DWORD; - pub fn DeletePrinterKeyW( - hPrinter: HANDLE, - pKeyName: LPCWSTR, - ) -> DWORD; -} -pub const PRINTER_NOTIFY_TYPE: DWORD = 0x00; -pub const JOB_NOTIFY_TYPE: DWORD = 0x01; -pub const SERVER_NOTIFY_TYPE: DWORD = 0x02; -pub const PRINTER_NOTIFY_FIELD_SERVER_NAME: DWORD = 0x00; -pub const PRINTER_NOTIFY_FIELD_PRINTER_NAME: DWORD = 0x01; -pub const PRINTER_NOTIFY_FIELD_SHARE_NAME: DWORD = 0x02; -pub const PRINTER_NOTIFY_FIELD_PORT_NAME: DWORD = 0x03; -pub const PRINTER_NOTIFY_FIELD_DRIVER_NAME: DWORD = 0x04; -pub const PRINTER_NOTIFY_FIELD_COMMENT: DWORD = 0x05; -pub const PRINTER_NOTIFY_FIELD_LOCATION: DWORD = 0x06; -pub const PRINTER_NOTIFY_FIELD_DEVMODE: DWORD = 0x07; -pub const PRINTER_NOTIFY_FIELD_SEPFILE: DWORD = 0x08; -pub const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: DWORD = 0x09; -pub const PRINTER_NOTIFY_FIELD_PARAMETERS: DWORD = 0x0A; -pub const PRINTER_NOTIFY_FIELD_DATATYPE: DWORD = 0x0B; -pub const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: DWORD = 0x0C; -pub const PRINTER_NOTIFY_FIELD_ATTRIBUTES: DWORD = 0x0D; -pub const PRINTER_NOTIFY_FIELD_PRIORITY: DWORD = 0x0E; -pub const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: DWORD = 0x0F; -pub const PRINTER_NOTIFY_FIELD_START_TIME: DWORD = 0x10; -pub const PRINTER_NOTIFY_FIELD_UNTIL_TIME: DWORD = 0x11; -pub const PRINTER_NOTIFY_FIELD_STATUS: DWORD = 0x12; -pub const PRINTER_NOTIFY_FIELD_STATUS_STRING: DWORD = 0x13; -pub const PRINTER_NOTIFY_FIELD_CJOBS: DWORD = 0x14; -pub const PRINTER_NOTIFY_FIELD_AVERAGE_PPM: DWORD = 0x15; -pub const PRINTER_NOTIFY_FIELD_TOTAL_PAGES: DWORD = 0x16; -pub const PRINTER_NOTIFY_FIELD_PAGES_PRINTED: DWORD = 0x17; -pub const PRINTER_NOTIFY_FIELD_TOTAL_BYTES: DWORD = 0x18; -pub const PRINTER_NOTIFY_FIELD_BYTES_PRINTED: DWORD = 0x19; -pub const PRINTER_NOTIFY_FIELD_OBJECT_GUID: DWORD = 0x1A; -pub const PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: DWORD = 0x1B; -pub const PRINTER_NOTIFY_FIELD_BRANCH_OFFICE_PRINTING: DWORD = 0x1C; -pub const JOB_NOTIFY_FIELD_PRINTER_NAME: DWORD = 0x00; -pub const JOB_NOTIFY_FIELD_MACHINE_NAME: DWORD = 0x01; -pub const JOB_NOTIFY_FIELD_PORT_NAME: DWORD = 0x02; -pub const JOB_NOTIFY_FIELD_USER_NAME: DWORD = 0x03; -pub const JOB_NOTIFY_FIELD_NOTIFY_NAME: DWORD = 0x04; -pub const JOB_NOTIFY_FIELD_DATATYPE: DWORD = 0x05; -pub const JOB_NOTIFY_FIELD_PRINT_PROCESSOR: DWORD = 0x06; -pub const JOB_NOTIFY_FIELD_PARAMETERS: DWORD = 0x07; -pub const JOB_NOTIFY_FIELD_DRIVER_NAME: DWORD = 0x08; -pub const JOB_NOTIFY_FIELD_DEVMODE: DWORD = 0x09; -pub const JOB_NOTIFY_FIELD_STATUS: DWORD = 0x0A; -pub const JOB_NOTIFY_FIELD_STATUS_STRING: DWORD = 0x0B; -pub const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: DWORD = 0x0C; -pub const JOB_NOTIFY_FIELD_DOCUMENT: DWORD = 0x0D; -pub const JOB_NOTIFY_FIELD_PRIORITY: DWORD = 0x0E; -pub const JOB_NOTIFY_FIELD_POSITION: DWORD = 0x0F; -pub const JOB_NOTIFY_FIELD_SUBMITTED: DWORD = 0x10; -pub const JOB_NOTIFY_FIELD_START_TIME: DWORD = 0x11; -pub const JOB_NOTIFY_FIELD_UNTIL_TIME: DWORD = 0x12; -pub const JOB_NOTIFY_FIELD_TIME: DWORD = 0x13; -pub const JOB_NOTIFY_FIELD_TOTAL_PAGES: DWORD = 0x14; -pub const JOB_NOTIFY_FIELD_PAGES_PRINTED: DWORD = 0x15; -pub const JOB_NOTIFY_FIELD_TOTAL_BYTES: DWORD = 0x16; -pub const JOB_NOTIFY_FIELD_BYTES_PRINTED: DWORD = 0x17; -pub const JOB_NOTIFY_FIELD_REMOTE_JOB_ID: DWORD = 0x18; -pub const SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP: DWORD = 0x00; -pub const PRINTER_NOTIFY_CATEGORY_ALL: DWORD = 0x001000; -pub const PRINTER_NOTIFY_CATEGORY_3D: DWORD = 0x002000; -STRUCT!{struct PRINTER_NOTIFY_OPTIONS_TYPE { - Type: WORD, - Reserved0: WORD, - Reserved1: DWORD, - Reserved2: DWORD, - Count: DWORD, - pFields: PWORD, -}} -pub type PPRINTER_NOTIFY_OPTIONS_TYPE = *mut PRINTER_NOTIFY_OPTIONS_TYPE; -pub type LPPRINTER_NOTIFY_OPTIONS_TYPE = *mut PRINTER_NOTIFY_OPTIONS_TYPE; -pub const PRINTER_NOTIFY_OPTIONS_REFRESH: DWORD = 0x01; -STRUCT!{struct PRINTER_NOTIFY_OPTIONS { - Version: DWORD, - Flags: DWORD, - Count: DWORD, - pTypes: PPRINTER_NOTIFY_OPTIONS_TYPE, -}} -pub type PPRINTER_NOTIFY_OPTIONS = *mut PRINTER_NOTIFY_OPTIONS; -pub type LPPRINTER_NOTIFY_OPTIONS = *mut PRINTER_NOTIFY_OPTIONS; -pub const PRINTER_NOTIFY_INFO_DISCARDED: DWORD = 0x01; -STRUCT!{struct PRINTER_NOTIFY_INFO_DATA_NotifyData_Data { - cbBuf: DWORD, - pBuf: LPVOID, -}} -UNION!{union PRINTER_NOTIFY_INFO_DATA_NotifyData { - [usize; 2], - adwData adwData_mut: [DWORD; 2], - Data Data_mut: PRINTER_NOTIFY_INFO_DATA_NotifyData_Data, -}} -STRUCT!{struct PRINTER_NOTIFY_INFO_DATA { - Type: WORD, - Field: WORD, - Reserved: DWORD, - Id: DWORD, - NotifyData: PRINTER_NOTIFY_INFO_DATA_NotifyData, -}} -pub type PPRINTER_NOTIFY_INFO_DATA = *mut PRINTER_NOTIFY_INFO_DATA; -pub type LPPRINTER_NOTIFY_INFO_DATA = *mut PRINTER_NOTIFY_INFO_DATA; -STRUCT!{struct PRINTER_NOTIFY_INFO { - Version: DWORD, - Flags: DWORD, - Count: DWORD, - aData: [PRINTER_NOTIFY_INFO_DATA; 1], -}} -pub type PPRINTER_NOTIFY_INFO = *mut PRINTER_NOTIFY_INFO; -pub type LPPRINTER_NOTIFY_INFO = *mut PRINTER_NOTIFY_INFO; -STRUCT!{struct BINARY_CONTAINER { - cbBuf: DWORD, - pData: LPBYTE, -}} -pub type PBINARY_CONTAINER = *mut BINARY_CONTAINER; -UNION!{union BIDI_DATA_u { - [usize; 2], - bData bData_mut: BOOL, - iData iData_mut: LONG, - sData sData_mut: LPWSTR, - fData fData_mut: FLOAT, - biData biData_mut: BINARY_CONTAINER, -}} -STRUCT!{struct BIDI_DATA { - dwBidiType: DWORD, - u: BIDI_DATA_u, -}} -pub type PBIDI_DATA = *mut BIDI_DATA; -pub type LPBIDI_DATA = *mut BIDI_DATA; -STRUCT!{struct BIDI_REQUEST_DATA { - dwReqNumber: DWORD, - pSchema: LPWSTR, - data: BIDI_DATA, -}} -pub type PBIDI_REQUEST_DATA = *mut BIDI_REQUEST_DATA; -pub type LPBIDI_REQUEST_DATA = *mut BIDI_REQUEST_DATA; -STRUCT!{struct BIDI_REQUEST_CONTAINER { - Version: DWORD, - Flags: DWORD, - Count: DWORD, - aData: [BIDI_REQUEST_DATA; 1], -}} -pub type PBIDI_REQUEST_CONTAINER = *mut BIDI_REQUEST_CONTAINER; -pub type LPBIDI_REQUEST_CONTAINER = *mut BIDI_REQUEST_CONTAINER; -STRUCT!{struct BIDI_RESPONSE_DATA { - dwResult: DWORD, - dwReqNumber: DWORD, - pSchema: LPWSTR, - data: BIDI_DATA, -}} -pub type PBIDI_RESPONSE_DATA = *mut BIDI_RESPONSE_DATA; -pub type LPBIDI_RESPONSE_DATA = *mut BIDI_RESPONSE_DATA; -STRUCT!{struct BIDI_RESPONSE_CONTAINER { - Version: DWORD, - Flags: DWORD, - Count: DWORD, - aData: [BIDI_RESPONSE_DATA; 1], -}} -pub type PBIDI_RESPONSE_CONTAINER = *mut BIDI_RESPONSE_CONTAINER; -pub type LPBIDI_RESPONSE_CONTAINER = *mut BIDI_RESPONSE_CONTAINER; -pub const BIDI_ACTION_ENUM_SCHEMA: &'static str = "EnumSchema"; -pub const BIDI_ACTION_GET: &'static str = "Get"; -pub const BIDI_ACTION_SET: &'static str = "Set"; -pub const BIDI_ACTION_GET_ALL: &'static str = "GetAll"; -pub const BIDI_ACTION_GET_WITH_ARGUMENT: &'static str = "GetWithArgument"; -ENUM!{enum BIDI_TYPE { - BIDI_NULL = 0, - BIDI_INT = 1, - BIDI_FLOAT = 2, - BIDI_BOOL = 3, - BIDI_STRING = 4, - BIDI_TEXT = 5, - BIDI_ENUM = 6, - BIDI_BLOB = 7, -}} -pub const BIDI_ACCESS_ADMINISTRATOR: DWORD = 0x1; -pub const BIDI_ACCESS_USER: DWORD = 0x2; -pub const ERROR_BIDI_STATUS_OK: DWORD = 0; -pub const ERROR_BIDI_NOT_SUPPORTED: DWORD = ERROR_NOT_SUPPORTED; -pub const ERROR_BIDI_ERROR_BASE: DWORD = 13000; -pub const ERROR_BIDI_STATUS_WARNING: DWORD = ERROR_BIDI_ERROR_BASE + 1; -pub const ERROR_BIDI_SCHEMA_READ_ONLY: DWORD = ERROR_BIDI_ERROR_BASE + 2; -pub const ERROR_BIDI_SERVER_OFFLINE: DWORD = ERROR_BIDI_ERROR_BASE + 3; -pub const ERROR_BIDI_DEVICE_OFFLINE: DWORD = ERROR_BIDI_ERROR_BASE + 4; -pub const ERROR_BIDI_SCHEMA_NOT_SUPPORTED: DWORD = ERROR_BIDI_ERROR_BASE + 5; -pub const ERROR_BIDI_SET_DIFFERENT_TYPE: DWORD = ERROR_BIDI_ERROR_BASE + 6; -pub const ERROR_BIDI_SET_MULTIPLE_SCHEMAPATH: DWORD = ERROR_BIDI_ERROR_BASE + 7; -pub const ERROR_BIDI_SET_INVALID_SCHEMAPATH: DWORD = ERROR_BIDI_ERROR_BASE + 8; -pub const ERROR_BIDI_SET_UNKNOWN_FAILURE: DWORD = ERROR_BIDI_ERROR_BASE + 9; -pub const ERROR_BIDI_SCHEMA_WRITE_ONLY: DWORD = ERROR_BIDI_ERROR_BASE + 10; -pub const ERROR_BIDI_GET_REQUIRES_ARGUMENT: DWORD = ERROR_BIDI_ERROR_BASE + 11; -pub const ERROR_BIDI_GET_ARGUMENT_NOT_SUPPORTED: DWORD = ERROR_BIDI_ERROR_BASE + 12; -pub const ERROR_BIDI_GET_MISSING_ARGUMENT: DWORD = ERROR_BIDI_ERROR_BASE + 13; -pub const ERROR_BIDI_DEVICE_CONFIG_UNCHANGED: DWORD = ERROR_BIDI_ERROR_BASE + 14; -pub const ERROR_BIDI_NO_LOCALIZED_RESOURCES: DWORD = ERROR_BIDI_ERROR_BASE + 15; -pub const ERROR_BIDI_NO_BIDI_SCHEMA_EXTENSIONS: DWORD = ERROR_BIDI_ERROR_BASE + 16; -pub const ERROR_BIDI_UNSUPPORTED_CLIENT_LANGUAGE: DWORD = ERROR_BIDI_ERROR_BASE + 17; -pub const ERROR_BIDI_UNSUPPORTED_RESOURCE_FORMAT: DWORD = ERROR_BIDI_ERROR_BASE + 18; -extern "system" { - pub fn WaitForPrinterChange( - hPrinter: HANDLE, - Flags: DWORD, - ) -> DWORD; - pub fn FindFirstPrinterChangeNotification( - hPrinter: HANDLE, - fdwFilter: DWORD, - fdwOptions: DWORD, - pPrinterNotifyOptions: LPVOID, - ) -> HANDLE; - pub fn FindNextPrinterChangeNotification( - hChange: HANDLE, - pdwChange: PDWORD, - pPrinterNotifyOptions: LPVOID, - ppPrinterNotifyInfo: *mut LPVOID, - ) -> BOOL; - pub fn FreePrinterNotifyInfo( - pPrinterNotifyInfo: PPRINTER_NOTIFY_INFO, - ) -> BOOL; - pub fn FindClosePrinterChangeNotification( - hChange: HANDLE, - ) -> BOOL; -} -pub const PRINTER_CHANGE_ADD_PRINTER: DWORD = 0x00000001; -pub const PRINTER_CHANGE_SET_PRINTER: DWORD = 0x00000002; -pub const PRINTER_CHANGE_DELETE_PRINTER: DWORD = 0x00000004; -pub const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER: DWORD = 0x00000008; -pub const PRINTER_CHANGE_PRINTER: DWORD = 0x000000FF; -pub const PRINTER_CHANGE_ADD_JOB: DWORD = 0x00000100; -pub const PRINTER_CHANGE_SET_JOB: DWORD = 0x00000200; -pub const PRINTER_CHANGE_DELETE_JOB: DWORD = 0x00000400; -pub const PRINTER_CHANGE_WRITE_JOB: DWORD = 0x00000800; -pub const PRINTER_CHANGE_JOB: DWORD = 0x0000FF00; -pub const PRINTER_CHANGE_ADD_FORM: DWORD = 0x00010000; -pub const PRINTER_CHANGE_SET_FORM: DWORD = 0x00020000; -pub const PRINTER_CHANGE_DELETE_FORM: DWORD = 0x00040000; -pub const PRINTER_CHANGE_FORM: DWORD = 0x00070000; -pub const PRINTER_CHANGE_ADD_PORT: DWORD = 0x00100000; -pub const PRINTER_CHANGE_CONFIGURE_PORT: DWORD = 0x00200000; -pub const PRINTER_CHANGE_DELETE_PORT: DWORD = 0x00400000; -pub const PRINTER_CHANGE_PORT: DWORD = 0x00700000; -pub const PRINTER_CHANGE_ADD_PRINT_PROCESSOR: DWORD = 0x01000000; -pub const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR: DWORD = 0x04000000; -pub const PRINTER_CHANGE_PRINT_PROCESSOR: DWORD = 0x07000000; -pub const PRINTER_CHANGE_SERVER: DWORD = 0x08000000; -pub const PRINTER_CHANGE_ADD_PRINTER_DRIVER: DWORD = 0x10000000; -pub const PRINTER_CHANGE_SET_PRINTER_DRIVER: DWORD = 0x20000000; -pub const PRINTER_CHANGE_DELETE_PRINTER_DRIVER: DWORD = 0x40000000; -pub const PRINTER_CHANGE_PRINTER_DRIVER: DWORD = 0x70000000; -pub const PRINTER_CHANGE_TIMEOUT: DWORD = 0x80000000; -pub const PRINTER_CHANGE_ALL: DWORD = 0x7F77FFFF; -extern "system" { - pub fn PrinterMessageBoxA( - hPrinter: HANDLE, - Error: DWORD, - hWnd: HWND, - pText: LPSTR, - pCaption: LPSTR, - dwType: DWORD, - ) -> DWORD; - pub fn PrinterMessageBoxW( - hPrinter: HANDLE, - Error: DWORD, - hWnd: HWND, - pText: LPWSTR, - pCaption: LPWSTR, - dwType: DWORD, - ) -> DWORD; -} -pub const PRINTER_ERROR_INFORMATION: DWORD = 0x80000000; -pub const PRINTER_ERROR_WARNING: DWORD = 0x40000000; -pub const PRINTER_ERROR_SEVERE: DWORD = 0x20000000; -pub const PRINTER_ERROR_OUTOFPAPER: DWORD = 0x00000001; -pub const PRINTER_ERROR_JAM: DWORD = 0x00000002; -pub const PRINTER_ERROR_OUTOFTONER: DWORD = 0x00000004; -extern "system" { - pub fn ClosePrinter( - hPrinter: HANDLE, - ) -> BOOL; - pub fn AddFormA( - hPrinter: HANDLE, - Level: DWORD, - pForm: LPBYTE, - ) -> BOOL; - pub fn AddFormW( - hPrinter: HANDLE, - Level: DWORD, - pForm: LPBYTE, - ) -> BOOL; - pub fn DeleteFormA( - hPrinter: HANDLE, - pFormName: LPSTR, - ) -> BOOL; - pub fn DeleteFormW( - hPrinter: HANDLE, - pFormName: LPWSTR, - ) -> BOOL; - pub fn GetFormA( - hPrinter: HANDLE, - pFormName: LPSTR, - Level: DWORD, - pForm: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetFormW( - hPrinter: HANDLE, - pFormName: LPWSTR, - Level: DWORD, - pForm: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn SetFormA( - hPrinter: HANDLE, - pFormName: LPSTR, - Level: DWORD, - pForm: LPBYTE, - ) -> BOOL; - pub fn SetFormW( - hPrinter: HANDLE, - pFormName: LPWSTR, - Level: DWORD, - pForm: LPBYTE, - ) -> BOOL; - pub fn EnumFormsA( - hPrinter: HANDLE, - Level: DWORD, - pForm: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumFormsW( - hPrinter: HANDLE, - Level: DWORD, - pForm: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumMonitorsA( - pName: LPSTR, - Level: DWORD, - pMonitor: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumMonitorsW( - pName: LPWSTR, - Level: DWORD, - pMonitor: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn AddMonitorA( - pName: LPSTR, - Level: DWORD, - pMonitors: LPBYTE, - ) -> BOOL; - pub fn AddMonitorW( - pName: LPWSTR, - Level: DWORD, - pMonitors: LPBYTE, - ) -> BOOL; - pub fn DeleteMonitorA( - pName: LPSTR, - pEnvironment: LPSTR, - pMonitorName: LPSTR, - ) -> BOOL; - pub fn DeleteMonitorW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pMonitorName: LPWSTR, - ) -> BOOL; - pub fn EnumPortsA( - pName: LPSTR, - Level: DWORD, - pPort: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn EnumPortsW( - pName: LPWSTR, - Level: DWORD, - pPort: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - pcReturned: LPDWORD, - ) -> BOOL; - pub fn AddPortA( - pName: LPSTR, - hWnd: HWND, - pMonitorName: LPSTR, - ) -> BOOL; - pub fn AddPortW( - pName: LPWSTR, - hWnd: HWND, - pMonitorName: LPWSTR, - ) -> BOOL; - pub fn ConfigurePortA( - pName: LPSTR, - hWnd: HWND, - pPortName: LPSTR, - ) -> BOOL; - pub fn ConfigurePortW( - pName: LPWSTR, - hWnd: HWND, - pPortName: LPWSTR, - ) -> BOOL; - pub fn DeletePortA( - pName: LPSTR, - hWnd: HWND, - pPortName: LPSTR, - ) -> BOOL; - pub fn DeletePortW( - pName: LPWSTR, - hWnd: HWND, - pPortName: LPWSTR, - ) -> BOOL; - pub fn XcvDataW( - hXcv: HANDLE, - pszDataName: PCWSTR, - pInputData: PBYTE, - cbInputData: DWORD, - pOutputData: PBYTE, - cbOutputData: DWORD, - pcbOutputNeeded: PDWORD, - pdwStatus: PDWORD, - ) -> BOOL; - pub fn GetDefaultPrinterA( - pszBuffer: LPSTR, - pcchBuffer: LPDWORD, - ) -> BOOL; - pub fn GetDefaultPrinterW( - pszBuffer: LPWSTR, - pcchBuffer: LPDWORD, - ) -> BOOL; - pub fn SetDefaultPrinterA( - pszPrinter: LPCSTR, - ) -> BOOL; - pub fn SetDefaultPrinterW( - pszPrinter: LPCWSTR, - ) -> BOOL; - pub fn SetPortA( - pName: LPSTR, - pPortName: LPSTR, - dwLevel: DWORD, - pPortInfo: LPBYTE, - ) -> BOOL; - pub fn SetPortW(pName: LPWSTR, - pPortName: LPWSTR, - dwLevel: DWORD, - pPortInfo: LPBYTE, - ) -> BOOL; - pub fn AddPrinterConnectionA( - pName: LPSTR, - ) -> BOOL; - pub fn AddPrinterConnectionW( - pName: LPWSTR, - ) -> BOOL; - pub fn DeletePrinterConnectionA( - pName: LPSTR, - ) -> BOOL; - pub fn DeletePrinterConnectionW( - pName: LPWSTR, - ) -> BOOL; - pub fn ConnectToPrinterDlg( - hwnd: HWND, - Flags: DWORD, - ) -> HANDLE; -} -STRUCT!{struct PROVIDOR_INFO_1A { - pName: LPSTR, - pEnvironment: LPSTR, - pDLLName: LPSTR, -}} -pub type PPROVIDOR_INFO_1A = *mut PROVIDOR_INFO_1A; -pub type LPPROVIDOR_INFO_1A = *mut PROVIDOR_INFO_1A; -STRUCT!{struct PROVIDOR_INFO_1W { - pName: LPWSTR, - pEnvironment: LPWSTR, - pDLLName: LPWSTR, -}} -pub type PPROVIDOR_INFO_1W = *mut PROVIDOR_INFO_1W; -pub type LPPROVIDOR_INFO_1W = *mut PROVIDOR_INFO_1W; -STRUCT!{struct PROVIDOR_INFO_2A { - pOrder: LPSTR, -}} -pub type PPROVIDOR_INFO_2A = *mut PROVIDOR_INFO_2A; -pub type LPPROVIDOR_INFO_2A = *mut PROVIDOR_INFO_2A; -STRUCT!{struct PROVIDOR_INFO_2W { - pOrder: LPWSTR, -}} -pub type PPROVIDOR_INFO_2W = *mut PROVIDOR_INFO_2W; -pub type LPPROVIDOR_INFO_2W = *mut PROVIDOR_INFO_2W; -extern "system" { - pub fn AddPrintProvidorA( - pName: LPSTR, - Level: DWORD, - pProvidorInfo: LPBYTE, - ) -> BOOL; - pub fn AddPrintProvidorW( - pName: LPWSTR, - Level: DWORD, - pProvidorInfo: LPBYTE, - ) -> BOOL; - pub fn DeletePrintProvidorA( - pName: LPSTR, - pEnvironment: LPSTR, - pPrintProvidorName: LPSTR, - ) -> BOOL; - pub fn DeletePrintProvidorW( - pName: LPWSTR, - pEnvironment: LPWSTR, - pPrintProvidorName: LPWSTR, - ) -> BOOL; - pub fn IsValidDevmodeA( - pDevmode: PDEVMODEA, - DevmodeSize: size_t, - ) -> BOOL; - pub fn IsValidDevmodeW( - pDevmode: PDEVMODEW, - DevmodeSize: size_t, - ) -> BOOL; -} -pub const SPLREG_DEFAULT_SPOOL_DIRECTORY: &'static str = "DefaultSpoolDirectory"; -pub const SPLREG_PORT_THREAD_PRIORITY_DEFAULT: &'static str = "PortThreadPriorityDefault"; -pub const SPLREG_PORT_THREAD_PRIORITY: &'static str = "PortThreadPriority"; -pub const SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT: &'static str - = "SchedulerThreadPriorityDefault"; -pub const SPLREG_SCHEDULER_THREAD_PRIORITY: &'static str = "SchedulerThreadPriority"; -pub const SPLREG_BEEP_ENABLED: &'static str = "BeepEnabled"; -pub const SPLREG_NET_POPUP: &'static str = "NetPopup"; -pub const SPLREG_RETRY_POPUP: &'static str = "RetryPopup"; -pub const SPLREG_NET_POPUP_TO_COMPUTER: &'static str = "NetPopupToComputer"; -pub const SPLREG_EVENT_LOG: &'static str = "EventLog"; -pub const SPLREG_MAJOR_VERSION: &'static str = "MajorVersion"; -pub const SPLREG_MINOR_VERSION: &'static str = "MinorVersion"; -pub const SPLREG_ARCHITECTURE: &'static str = "Architecture"; -pub const SPLREG_OS_VERSION: &'static str = "OSVersion"; -pub const SPLREG_OS_VERSIONEX: &'static str = "OSVersionEx"; -pub const SPLREG_DS_PRESENT: &'static str = "DsPresent"; -pub const SPLREG_DS_PRESENT_FOR_USER: &'static str = "DsPresentForUser"; -pub const SPLREG_REMOTE_FAX: &'static str = "RemoteFax"; -pub const SPLREG_RESTART_JOB_ON_POOL_ERROR: &'static str = "RestartJobOnPoolError"; -pub const SPLREG_RESTART_JOB_ON_POOL_ENABLED: &'static str = "RestartJobOnPoolEnabled"; -pub const SPLREG_DNS_MACHINE_NAME: &'static str = "DNSMachineName"; -pub const SPLREG_ALLOW_USER_MANAGEFORMS: &'static str = "AllowUserManageForms"; -pub const SPLREG_WEBSHAREMGMT: &'static str = "WebShareMgmt"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR: &'static str = "\\"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS: &'static str = "PrintDriverIsolationGroups"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE: &'static str - = "PrintDriverIsolationTimeBeforeRecycle"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE: &'static str - = "PrintDriverIsolationMaxobjsBeforeRecycle"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT: &'static str - = "PrintDriverIsolationIdleTimeout"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY: &'static str - = "PrintDriverIsolationExecutionPolicy"; -pub const SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY: &'static str - = "PrintDriverIsolationOverrideCompat"; -pub const SPLREG_PRINT_QUEUE_V4_DRIVER_DIRECTORY: &'static str = "PrintQueueV4DriverDirectory"; -pub const SERVER_ACCESS_ADMINISTER: DWORD = 0x00000001; -pub const SERVER_ACCESS_ENUMERATE: DWORD = 0x00000002; -pub const PRINTER_ACCESS_ADMINISTER: DWORD = 0x00000004; -pub const PRINTER_ACCESS_USE: DWORD = 0x00000008; -pub const JOB_ACCESS_ADMINISTER: DWORD = 0x00000010; -pub const JOB_ACCESS_READ: DWORD = 0x00000020; -pub const PRINTER_ACCESS_MANAGE_LIMITED: DWORD = 0x00000040; -pub const SERVER_ALL_ACCESS: DWORD = STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER - | SERVER_ACCESS_ENUMERATE; -pub const SERVER_READ: DWORD = STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE; -pub const SERVER_WRITE: DWORD = STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER - | SERVER_ACCESS_ENUMERATE; -pub const SERVER_EXECUTE: DWORD = STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE; -pub const PRINTER_ALL_ACCESS: DWORD = STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER - | PRINTER_ACCESS_USE; -pub const PRINTER_READ: DWORD = STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE; -pub const PRINTER_WRITE: DWORD = STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE; -pub const PRINTER_EXECUTE: DWORD = STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE; -pub const JOB_ALL_ACCESS: DWORD = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER - | JOB_ACCESS_READ; -pub const JOB_READ: DWORD = STANDARD_RIGHTS_READ | JOB_ACCESS_READ; -pub const JOB_WRITE: DWORD = STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER; -pub const JOB_EXECUTE: DWORD = STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER; -pub const SPLDS_SPOOLER_KEY: &'static str = "DsSpooler"; -pub const SPLDS_DRIVER_KEY: &'static str = "DsDriver"; -pub const SPLDS_USER_KEY: &'static str = "DsUser"; -pub const SPLDS_ASSET_NUMBER: &'static str = "assetNumber"; -pub const SPLDS_BYTES_PER_MINUTE: &'static str = "bytesPerMinute"; -pub const SPLDS_DESCRIPTION: &'static str = "description"; -pub const SPLDS_DRIVER_NAME: &'static str = "driverName"; -pub const SPLDS_DRIVER_VERSION: &'static str = "driverVersion"; -pub const SPLDS_LOCATION: &'static str = "location"; -pub const SPLDS_PORT_NAME: &'static str = "portName"; -pub const SPLDS_PRINT_ATTRIBUTES: &'static str = "printAttributes"; -pub const SPLDS_PRINT_BIN_NAMES: &'static str = "printBinNames"; -pub const SPLDS_PRINT_COLLATE: &'static str = "printCollate"; -pub const SPLDS_PRINT_COLOR: &'static str = "printColor"; -pub const SPLDS_PRINT_DUPLEX_SUPPORTED: &'static str = "printDuplexSupported"; -pub const SPLDS_PRINT_END_TIME: &'static str = "printEndTime"; -pub const SPLDS_PRINTER_CLASS: &'static str = "printQueue"; -pub const SPLDS_PRINTER_NAME: &'static str = "printerName"; -pub const SPLDS_PRINT_KEEP_PRINTED_JOBS: &'static str = "printKeepPrintedJobs"; -pub const SPLDS_PRINT_LANGUAGE: &'static str = "printLanguage"; -pub const SPLDS_PRINT_MAC_ADDRESS: &'static str = "printMACAddress"; -pub const SPLDS_PRINT_MAX_X_EXTENT: &'static str = "printMaxXExtent"; -pub const SPLDS_PRINT_MAX_Y_EXTENT: &'static str = "printMaxYExtent"; -pub const SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED: &'static str = "printMaxResolutionSupported"; -pub const SPLDS_PRINT_MEDIA_READY: &'static str = "printMediaReady"; -pub const SPLDS_PRINT_MEDIA_SUPPORTED: &'static str = "printMediaSupported"; -pub const SPLDS_PRINT_MEMORY: &'static str = "printMemory"; -pub const SPLDS_PRINT_MIN_X_EXTENT: &'static str = "printMinXExtent"; -pub const SPLDS_PRINT_MIN_Y_EXTENT: &'static str = "printMinYExtent"; -pub const SPLDS_PRINT_NETWORK_ADDRESS: &'static str = "printNetworkAddress"; -pub const SPLDS_PRINT_NOTIFY: &'static str = "printNotify"; -pub const SPLDS_PRINT_NUMBER_UP: &'static str = "printNumberUp"; -pub const SPLDS_PRINT_ORIENTATIONS_SUPPORTED: &'static str = "printOrientationsSupported"; -pub const SPLDS_PRINT_OWNER: &'static str = "printOwner"; -pub const SPLDS_PRINT_PAGES_PER_MINUTE: &'static str = "printPagesPerMinute"; -pub const SPLDS_PRINT_RATE: &'static str = "printRate"; -pub const SPLDS_PRINT_RATE_UNIT: &'static str = "printRateUnit"; -pub const SPLDS_PRINT_SEPARATOR_FILE: &'static str = "printSeparatorFile"; -pub const SPLDS_PRINT_SHARE_NAME: &'static str = "printShareName"; -pub const SPLDS_PRINT_SPOOLING: &'static str = "printSpooling"; -pub const SPLDS_PRINT_STAPLING_SUPPORTED: &'static str = "printStaplingSupported"; -pub const SPLDS_PRINT_START_TIME: &'static str = "printStartTime"; -pub const SPLDS_PRINT_STATUS: &'static str = "printStatus"; -pub const SPLDS_PRIORITY: &'static str = "priority"; -pub const SPLDS_SERVER_NAME: &'static str = "serverName"; -pub const SPLDS_SHORT_SERVER_NAME: &'static str = "shortServerName"; -pub const SPLDS_UNC_NAME: &'static str = "uNCName"; -pub const SPLDS_URL: &'static str = "url"; -pub const SPLDS_FLAGS: &'static str = "flags"; -pub const SPLDS_VERSION_NUMBER: &'static str = "versionNumber"; -pub const SPLDS_PRINTER_NAME_ALIASES: &'static str = "printerNameAliases"; -pub const SPLDS_PRINTER_LOCATIONS: &'static str = "printerLocations"; -pub const SPLDS_PRINTER_MODEL: &'static str = "printerModel"; -ENUM!{enum PRINTER_OPTION_FLAGS { - PRINTER_OPTION_NO_CACHE = 1 << 0, - PRINTER_OPTION_CACHE = 1 << 1, - PRINTER_OPTION_CLIENT_CHANGE = 1 << 2, - PRINTER_OPTION_NO_CLIENT_DATA = 1 << 3, -}} -STRUCT!{struct PRINTER_OPTIONSA { - cbSize: UINT, - dwFlags: DWORD, -}} -pub type PPRINTER_OPTIONSA = *mut PRINTER_OPTIONSA; -pub type LPPRINTER_OPTIONSA = *mut PRINTER_OPTIONSA; -STRUCT!{struct PRINTER_OPTIONSW { - cbSize: UINT, - dwFlags: DWORD, -}} -pub type PPRINTER_OPTIONSW = *mut PRINTER_OPTIONSW; -pub type LPPRINTER_OPTIONSW = *mut PRINTER_OPTIONSW; -extern "system" { - pub fn OpenPrinter2A( - pPrinterName: LPCSTR, - phPrinter: LPHANDLE, - pDefault: PPRINTER_DEFAULTSA, - pOptions: PPRINTER_OPTIONSA, - ) -> BOOL; - pub fn OpenPrinter2W( - pPrinterName: LPCWSTR, - phPrinter: LPHANDLE, - pDefault: PPRINTER_DEFAULTSW, - pOptions: PPRINTER_OPTIONSW, - ) -> BOOL; -} -pub const PRINTER_CONNECTION_MISMATCH: DWORD = 0x00000020; -pub const PRINTER_CONNECTION_NO_UI: DWORD = 0x00000040; -STRUCT!{struct PRINTER_CONNECTION_INFO_1A { - dwFlags: DWORD, - pszDriverName: LPSTR, -}} -pub type PPRINTER_CONNECTION_INFO_1A = *mut PRINTER_CONNECTION_INFO_1A; -pub type LPPRINTER_CONNECTION_INFO_1A = *mut PRINTER_CONNECTION_INFO_1A; -STRUCT!{struct PRINTER_CONNECTION_INFO_1W { - dwFlags: DWORD, - pszDriverName: LPWSTR, -}} -pub type PPRINTER_CONNECTION_INFO_1W = *mut PRINTER_CONNECTION_INFO_1W; -pub type LPPRINTER_CONNECTION_INFO_1W = *mut PRINTER_CONNECTION_INFO_1W; -extern "system" { - pub fn AddPrinterConnection2A( - hWnd: HWND, - pszName: LPCSTR, - dwLevel: DWORD, - pConnectionInfo: PVOID, - ) -> BOOL; - pub fn AddPrinterConnection2W( - hWnd: HWND, - pszName: LPCWSTR, - dwLevel: DWORD, - pConnectionInfo: PVOID, - ) -> BOOL; -} -pub const IPDFP_COPY_ALL_FILES: DWORD = 0x00000001; -extern "system" { - pub fn InstallPrinterDriverFromPackageA( - pszServer: LPCSTR, - pszInfPath: LPCSTR, - pszDriverName: LPCSTR, - pszEnvironment: LPCSTR, - dwFlags: DWORD, - ) -> HRESULT; - pub fn InstallPrinterDriverFromPackageW( - pszServer: LPCWSTR, - pszInfPath: LPCWSTR, - pszDriverName: LPCWSTR, - pszEnvironment: LPCWSTR, - dwFlags: DWORD, - ) -> HRESULT; -} -pub const UPDP_SILENT_UPLOAD: DWORD = 0x00000001; -pub const UPDP_UPLOAD_ALWAYS: DWORD = 0x00000002; -pub const UPDP_CHECK_DRIVERSTORE: DWORD = 0x00000004; -extern "system" { - pub fn UploadPrinterDriverPackageA( - pszServer: LPCSTR, - pszInfPath: LPCSTR, - pszEnvironment: LPCSTR, - dwFlags: DWORD, - hwnd: HWND, - pszDestInfPath: LPSTR, - pcchDestInfPath: PULONG, - ) -> HRESULT; - pub fn UploadPrinterDriverPackageW( - pszServer: LPCWSTR, - pszInfPath: LPCWSTR, - pszEnvironment: LPCWSTR, - dwFlags: DWORD, - hwnd: HWND, - pszDestInfPath: LPWSTR, - pcchDestInfPath: PULONG, - ) -> HRESULT; -} -STRUCT!{struct CORE_PRINTER_DRIVERA { - CoreDriverGUID: GUID, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - szPackageID: [CHAR; MAX_PATH], -}} -pub type PCORE_PRINTER_DRIVERA = *mut CORE_PRINTER_DRIVERA; -STRUCT!{struct CORE_PRINTER_DRIVERW { - CoreDriverGUID: GUID, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - szPackageID: [WCHAR; MAX_PATH], -}} -pub type PCORE_PRINTER_DRIVERW = *mut CORE_PRINTER_DRIVERW; -extern "system" { - pub fn GetCorePrinterDriversA( - pszServer: LPCSTR, - pszEnvironment: LPCSTR, - pszzCoreDriverDependencies: LPCSTR, - cCorePrinterDrivers: DWORD, - pCorePrinterDrivers: PCORE_PRINTER_DRIVERA, - ) -> HRESULT; - pub fn GetCorePrinterDriversW( - pszServer: LPCWSTR, - pszEnvironment: LPCWSTR, - pszzCoreDriverDependencies: LPCWSTR, - cCorePrinterDrivers: DWORD, - pCorePrinterDrivers: PCORE_PRINTER_DRIVERW, - ) -> HRESULT; - pub fn CorePrinterDriverInstalledA( - pszServer: LPCSTR, - pszEnvironment: LPCSTR, - CoreDriverGUID: GUID, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pbDriverInstalled: *mut BOOL, - ) -> HRESULT; - pub fn CorePrinterDriverInstalledW( - pszServer: LPCWSTR, - pszEnvironment: LPCWSTR, - CoreDriverGUID: GUID, - ftDriverDate: FILETIME, - dwlDriverVersion: DWORDLONG, - pbDriverInstalled: *mut BOOL, - ) -> HRESULT; - pub fn GetPrinterDriverPackagePathA( - pszServer: LPCSTR, - pszEnvironment: LPCSTR, - pszLanguage: LPCSTR, - pszPackageID: LPCSTR, - pszDriverPackageCab: LPSTR, - cchDriverPackageCab: DWORD, - pcchRequiredSize: LPDWORD, - ) -> HRESULT; - pub fn GetPrinterDriverPackagePathW( - pszServer: LPCWSTR, - pszEnvironment: LPCWSTR, - pszLanguage: LPCWSTR, - pszPackageID: LPCWSTR, - pszDriverPackageCab: LPWSTR, - cchDriverPackageCab: DWORD, - pcchRequiredSize: LPDWORD, - ) -> HRESULT; - pub fn DeletePrinterDriverPackageA( - pszServer: LPCSTR, - pszInfPath: LPCSTR, - pszEnvironment: LPCSTR, - ) -> HRESULT; - pub fn DeletePrinterDriverPackageW( - pszServer: LPCWSTR, - pszInfPath: LPCWSTR, - pszEnvironment: LPCWSTR, - ) -> HRESULT; -} -ENUM!{enum EPrintPropertyType { - kPropertyTypeString = 1, - kPropertyTypeInt32, - kPropertyTypeInt64, - kPropertyTypeByte, - kPropertyTypeTime, - kPropertyTypeDevMode, - kPropertyTypeSD, - kPropertyTypeNotificationReply, - kPropertyTypeNotificationOptions, - kPropertyTypeBuffer, -}} -ENUM!{enum EPrintXPSJobProgress { - kAddingDocumentSequence = 0, - kDocumentSequenceAdded = 1, - kAddingFixedDocument = 2, - kFixedDocumentAdded = 3, - kAddingFixedPage = 4, - kFixedPageAdded = 5, - kResourceAdded = 6, - kFontAdded = 7, - kImageAdded = 8, - kXpsDocumentCommitted = 9, -}} -ENUM!{enum EPrintXPSJobOperation { - kJobProduction = 1, - kJobConsumption, -}} -STRUCT!{struct PrintPropertyValue_value_propertyBlob { - cbBuf: DWORD, - pBuf: LPVOID, -}} -UNION!{union PrintPropertyValue_value { - [u64; 1] [u64; 2], - propertyByte propertyByte_mut: BYTE, - propertyString propertyString_mut: PWSTR, - propertyInt32 propertyInt32_mut: LONG, - propertyInt64 propertyInt64_mut: LONGLONG, - propertyBlob propertyBlob_mut: PrintPropertyValue_value_propertyBlob, -}} -STRUCT!{struct PrintPropertyValue { - ePropertyType: EPrintPropertyType, - value: PrintPropertyValue_value, -}} -STRUCT!{struct PrintNamedProperty { - propertyName: *mut WCHAR, - propertyValue: PrintPropertyValue, -}} -STRUCT!{struct PrintPropertiesCollection { - numberOfProperties: ULONG, - propertiesCollection: *mut PrintNamedProperty, -}} -extern "system" { - pub fn ReportJobProcessingProgress( - printerHandle: HANDLE, - jobId: ULONG, - jobOperation: EPrintXPSJobOperation, - jobProgress: EPrintXPSJobProgress, - ) -> HRESULT; - pub fn GetPrinterDriver2A( - hWnd: HWND, - hPrinter: HANDLE, - pEnvironment: LPSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; - pub fn GetPrinterDriver2W( - hWnd: HWND, - hPrinter: HANDLE, - pEnvironment: LPWSTR, - Level: DWORD, - pDriverInfo: LPBYTE, - cbBuf: DWORD, - pcbNeeded: LPDWORD, - ) -> BOOL; -} -ENUM!{enum PRINT_EXECUTION_CONTEXT { - PRINT_EXECUTION_CONTEXT_APPLICATION = 0, - PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE = 1, - PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST = 2, - PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE = 3, - PRINT_EXECUTION_CONTEXT_WOW64 = 4, -}} -STRUCT!{struct PRINT_EXECUTION_DATA { - context: PRINT_EXECUTION_CONTEXT, - clientAppPID: DWORD, -}} -extern "system" { - pub fn GetPrintExecutionData( - pData: *mut PRINT_EXECUTION_DATA, - ) -> BOOL; - pub fn GetJobNamedPropertyValue( - hPrinter: HANDLE, - JobId: DWORD, - pszName: PCWSTR, - pValue: *mut PrintPropertyValue, - ) -> DWORD; - pub fn FreePrintPropertyValue( - pValue: *mut PrintPropertyValue, - ); - pub fn FreePrintNamedPropertyArray( - cProperties: DWORD, - ppProperties: *mut *mut PrintNamedProperty, - ); - pub fn SetJobNamedProperty( - hPrinter: HANDLE, - JobId: DWORD, - pProperty: *const PrintNamedProperty, - ) -> DWORD; - pub fn DeleteJobNamedProperty( - hPrinter: HANDLE, - JobId: DWORD, - pszName: PCWSTR, - ) -> DWORD; - pub fn EnumJobNamedProperties( - hPrinter: HANDLE, - JobId: DWORD, - pcProperties: *mut DWORD, - ppProperties: *mut *mut PrintNamedProperty, - ) -> DWORD; - pub fn GetPrintOutputInfo( - hWnd: HWND, - pszPrinter: PCWSTR, - phFile: *mut HANDLE, - ppszOutputFile: *mut PWSTR, - ) -> HRESULT; -} -pub const MS_PRINT_JOB_OUTPUT_FILE: &'static str = "MsPrintJobOutputFile"; |