📄 winspool.h
字号:
DWORD dwIndex,
LPSTR pValueName,
DWORD cbValueName,
LPDWORD pcbValueName,
LPDWORD pType,
LPBYTE pData,
DWORD cbData,
LPDWORD pcbData
);
DWORD
WINAPI
EnumPrinterDataW(
HANDLE hPrinter,
DWORD dwIndex,
LPWSTR pValueName,
DWORD cbValueName,
LPDWORD pcbValueName,
LPDWORD pType,
LPBYTE pData,
DWORD cbData,
LPDWORD pcbData
);
#ifdef UNICODE
#define EnumPrinterData EnumPrinterDataW
#else
#define EnumPrinterData EnumPrinterDataA
#endif // !UNICODE
DWORD
WINAPI
EnumPrinterDataExA(
HANDLE hPrinter,
LPCSTR pKeyName,
LPBYTE pEnumValues,
DWORD cbEnumValues,
LPDWORD pcbEnumValues,
LPDWORD pnEnumValues
);
DWORD
WINAPI
EnumPrinterDataExW(
HANDLE hPrinter,
LPCWSTR pKeyName,
LPBYTE pEnumValues,
DWORD cbEnumValues,
LPDWORD pcbEnumValues,
LPDWORD pnEnumValues
);
#ifdef UNICODE
#define EnumPrinterDataEx EnumPrinterDataExW
#else
#define EnumPrinterDataEx EnumPrinterDataExA
#endif // !UNICODE
DWORD
WINAPI
EnumPrinterKeyA(
HANDLE hPrinter,
LPCSTR pKeyName,
LPSTR pSubkey,
DWORD cbSubkey,
LPDWORD pcbSubkey
);
DWORD
WINAPI
EnumPrinterKeyW(
HANDLE hPrinter,
LPCWSTR pKeyName,
LPWSTR pSubkey,
DWORD cbSubkey,
LPDWORD pcbSubkey
);
#ifdef UNICODE
#define EnumPrinterKey EnumPrinterKeyW
#else
#define EnumPrinterKey EnumPrinterKeyA
#endif // !UNICODE
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
);
#ifdef UNICODE
#define SetPrinterData SetPrinterDataW
#else
#define SetPrinterData SetPrinterDataA
#endif // !UNICODE
DWORD
WINAPI
SetPrinterDataExA(
HANDLE hPrinter,
LPCSTR pKeyName,
LPCSTR pValueName,
DWORD Type,
LPBYTE pData,
DWORD cbData
);
DWORD
WINAPI
SetPrinterDataExW(
HANDLE hPrinter,
LPCWSTR pKeyName,
LPCWSTR pValueName,
DWORD Type,
LPBYTE pData,
DWORD cbData
);
#ifdef UNICODE
#define SetPrinterDataEx SetPrinterDataExW
#else
#define SetPrinterDataEx SetPrinterDataExA
#endif // !UNICODE
DWORD
WINAPI
DeletePrinterDataA(
HANDLE hPrinter,
LPSTR pValueName
);
DWORD
WINAPI
DeletePrinterDataW(
HANDLE hPrinter,
LPWSTR pValueName
);
#ifdef UNICODE
#define DeletePrinterData DeletePrinterDataW
#else
#define DeletePrinterData DeletePrinterDataA
#endif // !UNICODE
DWORD
WINAPI
DeletePrinterDataExA(
HANDLE hPrinter,
LPCSTR pKeyName,
LPCSTR pValueName
);
DWORD
WINAPI
DeletePrinterDataExW(
HANDLE hPrinter,
LPCWSTR pKeyName,
LPCWSTR pValueName
);
#ifdef UNICODE
#define DeletePrinterDataEx DeletePrinterDataExW
#else
#define DeletePrinterDataEx DeletePrinterDataExA
#endif // !UNICODE
DWORD
WINAPI
DeletePrinterKeyA(
HANDLE hPrinter,
LPCSTR pKeyName
);
DWORD
WINAPI
DeletePrinterKeyW(
HANDLE hPrinter,
LPCWSTR pKeyName
);
#ifdef UNICODE
#define DeletePrinterKey DeletePrinterKeyW
#else
#define DeletePrinterKey DeletePrinterKeyA
#endif // !UNICODE
#define PRINTER_NOTIFY_TYPE 0x00
#define JOB_NOTIFY_TYPE 0x01
#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 PRINTER_NOTIFY_FIELD_OBJECT_GUID 0x1A
#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
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;
#define PRINTER_NOTIFY_OPTIONS_REFRESH 0x01
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;
#define PRINTER_NOTIFY_INFO_DISCARDED 0x01
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;
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
FreePrinterNotifyInfo(
PPRINTER_NOTIFY_INFO pPrinterNotifyInfo
);
BOOL
WINAPI
FindClosePrinterChangeNotification(
HANDLE hChange
);
#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_PRINT_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
DWORD
WINAPI
PrinterMessageBoxA(
HANDLE hPrinter,
DWORD Error,
HWND hWnd,
LPSTR pText,
LPSTR pCaption,
DWORD dwType
);
DWORD
WINAPI
PrinterMessageBoxW(
HANDLE hPrinter,
DWORD Error,
HWND hWnd,
LPWSTR pText,
LPWSTR pCaption,
DWORD dwType
);
#ifdef UNICODE
#define PrinterMessageBox PrinterMessageBoxW
#else
#define PrinterMessageBox PrinterMessageBoxA
#endif // !UNICODE
#define PRINTER_ERROR_INFORMATION 0x80000000
#define PRINTER_ERROR_WARNING 0x40000000
#define PRINTER_ERROR_SEVERE 0x20000000
#define PRINTER_ERROR_OUTOFPAPER 0x00000001
#define PRINTER_ERROR_JAM 0x00000002
#define PRINTER_ERROR_OUTOFTONER 0x00000004
BOOL
WINAPI
ClosePrinter(
HANDLE hPrinter
);
BOOL
WINAPI
AddFormA(
HANDLE hPrinter,
DWORD Level,
LPBYTE pForm
);
BOOL
WINAPI
AddFormW(
HANDLE hPrinter,
DWORD Level,
LPBYTE pForm
);
#ifdef UNICODE
#define AddForm AddFormW
#else
#define AddForm AddFormA
#endif // !UNICODE
BOOL
WINAPI
DeleteFormA(
HANDLE hPrinter,
LPSTR pFormName
);
BOOL
WINAPI
DeleteFormW(
HANDLE hPrinter,
LPWSTR pFormName
);
#ifdef UNICODE
#define DeleteForm DeleteFormW
#else
#define DeleteForm DeleteFormA
#endif // !UNICODE
BOOL
WINAPI
GetFormA(
HANDLE hPrinter,
LPSTR pFormName,
DWORD Level,
LPBYTE pForm,
DWORD cbBuf,
LPDWORD pcbNeeded
);
BOOL
WINAPI
GetFormW(
HANDLE hPrinter,
LPWSTR pFormName,
DWORD Level,
LPBYTE pForm,
DWORD cbBuf,
LPDWORD pcbNeeded
);
#ifdef UNICODE
#define GetForm GetFormW
#else
#define GetForm GetFormA
#endif // !UNICODE
BOOL
WINAPI
SetFormA(
HANDLE hPrinter,
LPSTR pFormName,
DWORD Level,
LPBYTE pForm
);
BOOL
WINAPI
SetFormW(
HANDLE hPrinter,
LPWSTR pFormName,
DWORD Level,
LPBYTE pForm
);
#ifdef UNICODE
#define SetForm SetFormW
#else
#define SetForm SetFormA
#endif // !UNICODE
BOOL
WINAPI
EnumFormsA(
HANDLE hPrinter,
DWORD Level,
LPBYTE pForm,
DWORD cbBuf,
LPDWORD pcbNeeded,
LPDWORD pcReturned
);
BOOL
WINAPI
EnumFormsW(
HANDLE hPrinter,
DWORD Level,
LPBYTE pForm,
DWORD cbBuf,
LPDWORD pcbNeeded,
LPDWORD pcReturned
);
#ifdef UNICODE
#define EnumForms EnumFormsW
#else
#define EnumForms EnumFormsA
#endif // !UNICODE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -