📄 winspool.h
字号:
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 _BINARY_CONTAINER{
DWORD cbBuf;
LPBYTE pData;
} BINARY_CONTAINER, *PBINARY_CONTAINER;
typedef struct _BIDI_DATA{
DWORD dwBidiType;
union {
BOOL bData;
LONG iData;
LPWSTR sData;
FLOAT fData;
BINARY_CONTAINER biData;
}u;
} BIDI_DATA, *PBIDI_DATA, *LPBIDI_DATA;
typedef struct _BIDI_REQUEST_DATA{
DWORD dwReqNumber;
LPWSTR pSchema;
BIDI_DATA data;
} BIDI_REQUEST_DATA , *PBIDI_REQUEST_DATA , *LPBIDI_REQUEST_DATA;
typedef struct _BIDI_REQUEST_CONTAINER{
DWORD Version;
DWORD Flags;
DWORD Count;
BIDI_REQUEST_DATA aData[ 1 ];
}BIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER;
typedef struct _BIDI_RESPONSE_DATA{
DWORD dwResult;
DWORD dwReqNumber;
LPWSTR pSchema;
BIDI_DATA data;
} BIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA;
typedef struct _BIDI_RESPONSE_CONTAINER{
DWORD Version;
DWORD Flags;
DWORD Count;
BIDI_RESPONSE_DATA aData[ 1 ];
} BIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER;
#define BIDI_ACTION_ENUM_SCHEMA L"EnumSchema"
#define BIDI_ACTION_GET L"Get"
#define BIDI_ACTION_SET L"Set"
#define BIDI_ACTION_GET_ALL L"GetAll"
typedef enum {
BIDI_NULL = 0,
BIDI_INT = 1,
BIDI_FLOAT = 2,
BIDI_BOOL = 3,
BIDI_STRING = 4,
BIDI_TEXT = 5,
BIDI_ENUM = 6,
BIDI_BLOB = 7
} BIDI_TYPE;
#define BIDI_ACCESS_ADMINISTRATOR 0x1
#define BIDI_ACCESS_USER 0x2
/*
Error code for bidi apis
*/
#define ERROR_BIDI_STATUS_OK 0
#define ERROR_BIDI_NOT_SUPPORTED ERROR_NOT_SUPPORTED
#define ERROR_BIDI_ERROR_BASE 13000
#define ERROR_BIDI_STATUS_WARNING (ERROR_BIDI_ERROR_BASE + 1)
#define ERROR_BIDI_SCHEMA_READ_ONLY (ERROR_BIDI_ERROR_BASE + 2)
#define ERROR_BIDI_SERVER_OFFLINE (ERROR_BIDI_ERROR_BASE + 3)
#define ERROR_BIDI_DEVICE_OFFLINE (ERROR_BIDI_ERROR_BASE + 4)
#define ERROR_BIDI_SCHEMA_NOT_SUPPORTED (ERROR_BIDI_ERROR_BASE + 5)
DWORD
WINAPI
WaitForPrinterChange(
IN HANDLE hPrinter,
IN DWORD Flags
);
HANDLE
WINAPI
FindFirstPrinterChangeNotification(
IN HANDLE hPrinter,
IN DWORD fdwFlags,
IN DWORD fdwOptions,
IN LPVOID pPrinterNotifyOptions
);
BOOL
WINAPI
FindNextPrinterChangeNotification(
IN HANDLE hChange,
OUT PDWORD pdwChange,
IN LPVOID pvReserved,
OUT LPVOID *ppPrinterNotifyInfo
);
BOOL
WINAPI
FreePrinterNotifyInfo(
IN PPRINTER_NOTIFY_INFO pPrinterNotifyInfo
);
BOOL
WINAPI
FindClosePrinterChangeNotification(
IN 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(
IN HANDLE hPrinter,
IN DWORD Error,
IN HWND hWnd,
IN LPSTR pText,
IN LPSTR pCaption,
IN DWORD dwType
);
DWORD
WINAPI
PrinterMessageBoxW(
IN HANDLE hPrinter,
IN DWORD Error,
IN HWND hWnd,
IN LPWSTR pText,
IN LPWSTR pCaption,
IN 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(
IN HANDLE hPrinter
);
BOOL
WINAPI
AddFormA(
IN HANDLE hPrinter,
IN DWORD Level,
IN LPBYTE pForm
);
BOOL
WINAPI
AddFormW(
IN HANDLE hPrinter,
IN DWORD Level,
IN LPBYTE pForm
);
#ifdef UNICODE
#define AddForm AddFormW
#else
#define AddForm AddFormA
#endif // !UNICODE
BOOL
WINAPI
DeleteFormA(
IN HANDLE hPrinter,
IN LPSTR pFormName
);
BOOL
WINAPI
DeleteFormW(
IN HANDLE hPrinter,
IN LPWSTR pFormName
);
#ifdef UNICODE
#define DeleteForm DeleteFormW
#else
#define DeleteForm DeleteFormA
#endif // !UNICODE
BOOL
WINAPI
GetFormA(
IN HANDLE hPrinter,
IN LPSTR pFormName,
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded
);
BOOL
WINAPI
GetFormW(
IN HANDLE hPrinter,
IN LPWSTR pFormName,
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded
);
#ifdef UNICODE
#define GetForm GetFormW
#else
#define GetForm GetFormA
#endif // !UNICODE
BOOL
WINAPI
SetFormA(
IN HANDLE hPrinter,
IN LPSTR pFormName,
IN DWORD Level,
IN LPBYTE pForm
);
BOOL
WINAPI
SetFormW(
IN HANDLE hPrinter,
IN LPWSTR pFormName,
IN DWORD Level,
IN LPBYTE pForm
);
#ifdef UNICODE
#define SetForm SetFormW
#else
#define SetForm SetFormA
#endif // !UNICODE
BOOL
WINAPI
EnumFormsA(
IN HANDLE hPrinter,
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
BOOL
WINAPI
EnumFormsW(
IN HANDLE hPrinter,
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
#ifdef UNICODE
#define EnumForms EnumFormsW
#else
#define EnumForms EnumFormsA
#endif // !UNICODE
BOOL
WINAPI
EnumMonitorsA(
IN LPSTR pName,
IN DWORD Level,
OUT LPBYTE pMonitors,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
BOOL
WINAPI
EnumMonitorsW(
IN LPWSTR pName,
IN DWORD Level,
OUT LPBYTE pMonitors,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
#ifdef UNICODE
#define EnumMonitors EnumMonitorsW
#else
#define EnumMonitors EnumMonitorsA
#endif // !UNICODE
BOOL
WINAPI
AddMonitorA(
IN LPSTR pName,
IN DWORD Level,
IN LPBYTE pMonitors
);
BOOL
WINAPI
AddMonitorW(
IN LPWSTR pName,
IN DWORD Level,
IN LPBYTE pMonitors
);
#ifdef UNICODE
#define AddMonitor AddMonitorW
#else
#define AddMonitor AddMonitorA
#endif // !UNICODE
BOOL
WINAPI
DeleteMonitorA(
IN LPSTR pName,
IN LPSTR pEnvironment,
IN LPSTR pMonitorName
);
BOOL
WINAPI
DeleteMonitorW(
IN LPWSTR pName,
IN LPWSTR pEnvironment,
IN LPWSTR pMonitorName
);
#ifdef UNICODE
#define DeleteMonitor DeleteMonitorW
#else
#define DeleteMonitor DeleteMonitorA
#endif // !UNICODE
BOOL
WINAPI
EnumPortsA(
IN LPSTR pName,
IN DWORD Level,
OUT LPBYTE pPorts,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
BOOL
WINAPI
EnumPortsW(
IN LPWSTR pName,
IN DWORD Level,
OUT LPBYTE pPorts,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
);
#ifdef UNICODE
#define EnumPorts EnumPortsW
#else
#define EnumPorts EnumPortsA
#endif // !UNICODE
BOOL
WINAPI
AddPortA(
IN LPSTR pName,
IN HWND hWnd,
IN LPSTR pMonitorName
);
BOOL
WINAPI
AddPortW(
IN LPWSTR pName,
IN HWND hWnd,
IN LPWSTR pMonitorName
);
#ifdef UNICODE
#define AddPort AddPortW
#else
#define AddPort AddPortA
#endif // !UNICODE
BOOL
WINAPI
ConfigurePortA(
IN LPSTR pName,
IN HWND hWnd,
IN LPSTR pPortName
);
BOOL
WINAPI
ConfigurePortW(
IN LPWSTR pName,
IN HWND hWnd,
IN LPWSTR pPortName
);
#ifdef UNICODE
#define ConfigurePort ConfigurePortW
#else
#define ConfigurePort ConfigurePortA
#endif // !UNICODE
BOOL
WINAPI
DeletePortA(
IN LPSTR pName,
IN HWND hWnd,
IN LPSTR pPortName
);
BOOL
WINAPI
DeletePortW(
IN LPWSTR pName,
IN HWND hWnd,
IN LPWSTR pPortName
);
#ifdef UNICODE
#define DeletePort DeletePortW
#else
#define DeletePort DeletePortA
#endif // !UNICODE
BOOL
WINAPI
XcvDataW(
IN HANDLE hXc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -