📄 winsplp.h
字号:
LPCWSTR pPrintServer,
LPCWSTR pProvider);
BOOL (*fpDeletePerMachineConnection)(LPCWSTR pServer,
LPCWSTR pPrinterName);
BOOL (*fpEnumPerMachineConnections)(LPCWSTR pServer,
LPBYTE pPrinterEnum,
DWORD cbBuf,
LPDWORD pcbNeeded,
LPDWORD pcReturned);
BOOL (*fpXcvData)( HANDLE hXcv,
LPCWSTR pszDataName,
PBYTE pInputData,
DWORD cbInputData,
PBYTE pOutputData,
DWORD cbOutputData,
PDWORD pcbOutputNeeded,
PDWORD pdwStatus
);
BOOL (*fpAddPrinterDriverEx)(LPWSTR pName,
DWORD Level,
LPBYTE pDriverInfo,
DWORD dwFileCopyFlags);
BOOL (*fpSplReadPrinter)(HANDLE hPrinter,
LPBYTE *pBuf,
DWORD cbBuf);
BOOL (*fpDriverUnloadComplete)(LPWSTR pDriverFile);
BOOL (*fpGetSpoolFileInfo)(HANDLE hPrinter,
LPWSTR *pSpoolDir,
LPHANDLE phFile,
HANDLE hSpoolerProcess,
HANDLE hAppProcess);
BOOL (*fpCommitSpoolData)(HANDLE hPrinter,
DWORD cbCommit);
BOOL (*fpCloseSpoolFileHandle)(HANDLE hPrinter);
BOOL (*fpFlushPrinter)(HANDLE hPrinter,
LPBYTE pBuf,
DWORD cbBuf,
LPDWORD pcWritten,
DWORD cSleep);
DWORD (*fpSendRecvBidiData)(HANDLE hPrinter,
LPCWSTR pAction,
PBIDI_REQUEST_CONTAINER pReqData,
PBIDI_RESPONSE_CONTAINER* ppResData);
BOOL (*fpAddDriverCatalog)(HANDLE hPrinter,
DWORD dwLevel,
VOID *pvDriverInfCatInfo,
DWORD dwCatalogCopyFlags);
} PRINTPROVIDOR, *LPPRINTPROVIDOR;
BOOL
InitializePrintProvidor(
LPPRINTPROVIDOR pPrintProvidor,
DWORD cbPrintProvidor,
LPWSTR pFullRegistryPath
);
typedef struct _PRINTPROCESSOROPENDATA {
PDEVMODE pDevMode;
LPWSTR pDatatype;
LPWSTR pParameters;
LPWSTR pDocumentName;
DWORD JobId;
LPWSTR pOutputFile;
LPWSTR pPrinterName;
} PRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA;
HANDLE
OpenPrintProcessor(
LPWSTR pPrinterName,
PPRINTPROCESSOROPENDATA pPrintProcessorOpenData
);
BOOL
PrintDocumentOnPrintProcessor(
HANDLE hPrintProcessor,
LPWSTR pDocumentName
);
BOOL
ClosePrintProcessor(
HANDLE hPrintProcessor
);
BOOL
ControlPrintProcessor(
HANDLE hPrintProcessor,
DWORD Command
);
DWORD
GetPrintProcessorCapabilities(
LPTSTR pValueName,
DWORD dwAttributes,
LPBYTE pData,
DWORD nSize,
LPDWORD pcbNeeded
);
BOOL
InitializeMonitor(
LPWSTR pRegistryRoot
);
BOOL
OpenPort(
LPWSTR pName,
PHANDLE pHandle
);
BOOL
WritePort(
HANDLE hPort,
LPBYTE pBuffer,
DWORD cbBuf,
LPDWORD pcbWritten
);
BOOL
ReadPort(
HANDLE hPort,
LPBYTE pBuffer,
DWORD cbBuffer,
LPDWORD pcbRead
);
BOOL
ClosePort(
HANDLE hPort
);
BOOL
XcvOpenPort(
LPCWSTR pszObject,
ACCESS_MASK GrantedAccess,
PHANDLE phXcv
);
DWORD
XcvDataPort(
HANDLE hXcv,
LPCWSTR pszDataName,
PBYTE pInputData,
DWORD cbInputData,
PBYTE pOutputData,
DWORD cbOutputData,
PDWORD pcbOutputNeeded
);
BOOL
XcvClosePort(
HANDLE hXcv
);
BOOL
AddPortUI
(
PCWSTR pszServer,
HWND hWnd,
PCWSTR pszMonitorNameIn,
PWSTR *ppszPortNameOut
);
BOOL
ConfigurePortUI
(
PCWSTR pszServer,
HWND hWnd,
PCWSTR pszPortName
);
BOOL
DeletePortUI
(
PCWSTR pszServer,
HWND hWnd,
PCWSTR pszPortName
);
BOOL
SplDeleteSpoolerPortStart(
PCWSTR pPortName
);
BOOL
SplDeleteSpoolerPortEnd(
PCWSTR pName,
BOOL bDeletePort
);
typedef struct _MONITORREG {
DWORD cbSize;
LONG
(WINAPI *fpCreateKey)(
HANDLE hcKey,
LPCTSTR pszSubKey,
DWORD dwOptions,
REGSAM samDesired,
PSECURITY_ATTRIBUTES pSecurityAttributes,
PHANDLE phckResult,
PDWORD pdwDisposition,
HANDLE hSpooler
);
LONG
(WINAPI *fpOpenKey)(
HANDLE hcKey,
LPCTSTR pszSubKey,
REGSAM samDesired,
PHANDLE phkResult,
HANDLE hSpooler
);
LONG
(WINAPI *fpCloseKey)(
HANDLE hcKey,
HANDLE hSpooler
);
LONG
(WINAPI *fpDeleteKey)(
HANDLE hcKey,
LPCTSTR pszSubKey,
HANDLE hSpooler
);
LONG
(WINAPI *fpEnumKey)(
HANDLE hcKey,
DWORD dwIndex,
LPTSTR pszName,
PDWORD pcchName,
PFILETIME pftLastWriteTime,
HANDLE hSpooler
);
LONG
(WINAPI *fpQueryInfoKey)(
HANDLE hcKey,
PDWORD pcSubKeys,
PDWORD pcbKey,
PDWORD pcValues,
PDWORD pcbValue,
PDWORD pcbData,
PDWORD pcbSecurityDescriptor,
PFILETIME pftLastWriteTime,
HANDLE hSpooler
);
LONG
(WINAPI *fpSetValue)(
HANDLE hcKey,
LPCTSTR pszValue,
DWORD dwType,
const BYTE* pData,
DWORD cbData,
HANDLE hSpooler
);
LONG
(WINAPI *fpDeleteValue)(
HANDLE hcKey,
LPCTSTR pszValue,
HANDLE hSpooler
);
LONG
(WINAPI *fpEnumValue)(
HANDLE hcKey,
DWORD dwIndex,
LPTSTR pszValue,
PDWORD pcbValue,
PDWORD pType,
PBYTE pData,
PDWORD pcbData,
HANDLE hSpooler
);
LONG
(WINAPI *fpQueryValue)(
HANDLE hcKey,
LPCTSTR pszValue,
PDWORD pType,
PBYTE pData,
PDWORD pcbData,
HANDLE hSpooler
);
} MONITORREG, *PMONITORREG;
typedef struct _MONITORINIT {
DWORD cbSize;
HANDLE hSpooler;
HANDLE hckRegistryRoot;
PMONITORREG pMonitorReg;
BOOL bLocal;
LPCWSTR pszServerName;
} MONITORINIT, *PMONITORINIT;
typedef struct _MONITOR
{
BOOL (WINAPI *pfnEnumPorts)
(
LPWSTR pName,
DWORD Level,
LPBYTE pPorts,
DWORD cbBuf,
LPDWORD pcbNeeded,
LPDWORD pcReturned
);
BOOL (WINAPI *pfnOpenPort)
(
LPWSTR pName,
PHANDLE pHandle
);
BOOL (WINAPI *pfnOpenPortEx)
(
LPWSTR pPortName,
LPWSTR pPrinterName,
PHANDLE pHandle,
struct _MONITOR FAR *pMonitor
);
BOOL (WINAPI *pfnStartDocPort)
(
HANDLE hPort,
LPWSTR pPrinterName,
DWORD JobId,
DWORD Level,
LPBYTE pDocInfo
);
BOOL (WINAPI *pfnWritePort)
(
HANDLE hPort,
LPBYTE pBuffer,
DWORD cbBuf,
LPDWORD pcbWritten
);
BOOL (WINAPI *pfnReadPort)
(
HANDLE hPort,
LPBYTE pBuffer,
DWORD cbBuffer,
LPDWORD pcbRead
);
BOOL (WINAPI *pfnEndDocPort)
(
HANDLE hPort
);
BOOL (WINAPI *pfnClosePort)
(
HANDLE hPort
);
BOOL (WINAPI *pfnAddPort)
(
LPWSTR pName,
HWND hWnd,
LPWSTR pMonitorName
);
BOOL (WINAPI *pfnAddPortEx)
(
LPWSTR pName,
DWORD Level,
LPBYTE lpBuffer,
LPWSTR lpMonitorName
);
BOOL (WINAPI *pfnConfigurePort)
(
LPWSTR pName,
HWND hWnd,
LPWSTR pPortName
);
BOOL (WINAPI *pfnDeletePort)
(
LPWSTR pName,
HWND hWnd,
LPWSTR pPortName
);
BOOL (WINAPI *pfnGetPrinterDataFromPort)
(
HANDLE hPort,
DWORD ControlID,
LPWSTR pValueName,
LPWSTR lpInBuffer,
DWORD cbInBuffer,
LPWSTR lpOutBuffer,
DWORD cbOutBuffer,
LPDWORD lpcbReturned
);
BOOL (WINAPI *pfnSetPortTimeOuts)
(
HANDLE hPort,
LPCOMMTIMEOUTS lpCTO,
DWORD reserved // must be set to 0
);
BOOL (WINAPI *pfnXcvOpenPort)
(
LPCWSTR pszObject,
ACCESS_MASK GrantedAccess,
PHANDLE phXcv
);
DWORD (WINAPI *pfnXcvDataPort)
(
HANDLE hXcv,
LPCWSTR pszDataName,
PBYTE pInputData,
DWORD cbInputData,
PBYTE pOutputData,
DWORD cbOutputData,
PDWORD pcbOutputNeeded
);
BOOL (WINAPI *pfnXcvClosePort)
(
HANDLE hXcv
);
} MONITOR, FAR *LPMONITOR;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -