1 | /*
|
---|
2 | * winsplp.h
|
---|
3 | *
|
---|
4 | * This file is part of the ReactOS PSDK package.
|
---|
5 | *
|
---|
6 | * Contributors:
|
---|
7 | * Created by Amine Khaldi.
|
---|
8 | *
|
---|
9 | * THIS SOFTWARE IS NOT COPYRIGHTED
|
---|
10 | *
|
---|
11 | * This source code is offered for use in the public domain. You may
|
---|
12 | * use, modify or distribute it freely.
|
---|
13 | *
|
---|
14 | * This code is distributed in the hope that it will be useful but
|
---|
15 | * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
---|
16 | * DISCLAIMED. This includes but is not limited to warranties of
|
---|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
---|
18 | *
|
---|
19 | */
|
---|
20 |
|
---|
21 | #pragma once
|
---|
22 |
|
---|
23 | #ifdef __cplusplus
|
---|
24 | extern "C" {
|
---|
25 | #endif
|
---|
26 |
|
---|
27 | #if (STRICT && (NTDDI_VERSION >= NTDDI_VISTA))
|
---|
28 | #define HKEYMONITOR HKEY
|
---|
29 | #else
|
---|
30 | #define HKEYMONITOR HANDLE
|
---|
31 | #endif
|
---|
32 |
|
---|
33 | #define PRINTER_NOTIFY_STATUS_ENDPOINT 1
|
---|
34 | #define PRINTER_NOTIFY_STATUS_POLL 2
|
---|
35 | #define PRINTER_NOTIFY_STATUS_INFO 4
|
---|
36 |
|
---|
37 | #define ROUTER_UNKNOWN 0
|
---|
38 | #define ROUTER_SUCCESS 1
|
---|
39 | #define ROUTER_STOP_ROUTING 2
|
---|
40 |
|
---|
41 | #if (NTDDI_VERSION >= NTDDI_WINXP)
|
---|
42 | #define MONITOR2_SIZE_WIN2K (sizeof(DWORD) + (sizeof(PVOID)*18))
|
---|
43 | #endif
|
---|
44 |
|
---|
45 | #define COPYFILE_EVENT_SET_PRINTER_DATAEX 1
|
---|
46 | #define COPYFILE_EVENT_DELETE_PRINTER 2
|
---|
47 | #define COPYFILE_EVENT_ADD_PRINTER_CONNECTION 3
|
---|
48 | #define COPYFILE_EVENT_DELETE_PRINTER_CONNECTION 4
|
---|
49 | #define COPYFILE_EVENT_FILES_CHANGED 5
|
---|
50 |
|
---|
51 | #define COPYFILE_FLAG_CLIENT_SPOOLER 0x00000001
|
---|
52 | #define COPYFILE_FLAG_SERVER_SPOOLER 0x00000002
|
---|
53 |
|
---|
54 | #define PRINTER_NOTIFY_INFO_DATA_COMPACT 1
|
---|
55 |
|
---|
56 | typedef struct _PRINTER_NOTIFY_INIT {
|
---|
57 | DWORD Size;
|
---|
58 | DWORD Reserved;
|
---|
59 | DWORD PollTime;
|
---|
60 | } PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
|
---|
61 |
|
---|
62 | typedef struct _SPLCLIENT_INFO_1 {
|
---|
63 | DWORD dwSize;
|
---|
64 | LPWSTR pMachineName;
|
---|
65 | LPWSTR pUserName;
|
---|
66 | DWORD dwBuildNum;
|
---|
67 | DWORD dwMajorVersion;
|
---|
68 | DWORD dwMinorVersion;
|
---|
69 | WORD wProcessorArchitecture;
|
---|
70 | } SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
|
---|
71 |
|
---|
72 | typedef struct _SPLCLIENT_INFO_2_V1{
|
---|
73 | ULONG_PTR hSplPrinter;
|
---|
74 | } SPLCLIENT_INFO_2_W2K;
|
---|
75 |
|
---|
76 | typedef struct _SPLCLIENT_INFO_2_V2{
|
---|
77 | #ifdef _WIN64
|
---|
78 | DWORD64 hSplPrinter;
|
---|
79 | #else
|
---|
80 | DWORD32 hSplPrinter;
|
---|
81 | #endif
|
---|
82 | } SPLCLIENT_INFO_2_WINXP;
|
---|
83 |
|
---|
84 | typedef struct _SPLCLIENT_INFO_2_V3{
|
---|
85 | UINT64 hSplPrinter;
|
---|
86 | } SPLCLIENT_INFO_2_LONGHORN;
|
---|
87 |
|
---|
88 | typedef struct _PRINTPROVIDOR {
|
---|
89 | WINBOOL (WINAPI *fpOpenPrinter)(PWSTR lpPrinterName, HANDLE *phPrinter,
|
---|
90 | PPRINTER_DEFAULTSW pDefault);
|
---|
91 | WINBOOL (WINAPI *fpSetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
|
---|
92 | LPBYTE pJob, DWORD Command);
|
---|
93 | WINBOOL (WINAPI *fpGetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
|
---|
94 | LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
95 | WINBOOL (WINAPI *fpEnumJobs)(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
|
---|
96 | DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
97 | LPDWORD pcReturned);
|
---|
98 | HANDLE (WINAPI *fpAddPrinter)(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
|
---|
99 | WINBOOL (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
|
---|
100 | WINBOOL (WINAPI *fpSetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
|
---|
101 | DWORD Command);
|
---|
102 | WINBOOL (WINAPI *fpGetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
|
---|
103 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
104 | WINBOOL (WINAPI *fpEnumPrinters)(DWORD dwType, LPWSTR lpszName, DWORD dwLevel,
|
---|
105 | LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
|
---|
106 | LPDWORD lpdwReturned);
|
---|
107 | WINBOOL (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
|
---|
108 | WINBOOL (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
109 | DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
|
---|
110 | LPDWORD pcbNeeded, LPDWORD pcbReturned);
|
---|
111 | WINBOOL (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
|
---|
112 | DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
|
---|
113 | LPDWORD pcbNeeded);
|
---|
114 | WINBOOL (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
115 | DWORD Level, LPBYTE pDriverDirectory,
|
---|
116 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
117 | WINBOOL (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
118 | LPWSTR pDriverName);
|
---|
119 | WINBOOL (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
120 | LPWSTR pPathName, LPWSTR pPrintProcessorName);
|
---|
121 | WINBOOL (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
122 | DWORD Level, LPBYTE pPrintProcessorInfo,
|
---|
123 | DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
124 | LPDWORD pcbReturned);
|
---|
125 | WINBOOL (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
126 | DWORD Level, LPBYTE pPrintProcessorInfo,
|
---|
127 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
128 | WINBOOL (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
129 | LPWSTR pPrintProcessorName);
|
---|
130 | WINBOOL (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
|
---|
131 | LPWSTR pPrintProcessorName,
|
---|
132 | DWORD Level, LPBYTE pDatatypes,
|
---|
133 | DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
134 | LPDWORD pcbReturned);
|
---|
135 | DWORD (WINAPI *fpStartDocPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
|
---|
136 | WINBOOL (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
|
---|
137 | WINBOOL (WINAPI *fpWritePrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
|
---|
138 | LPDWORD pcWritten);
|
---|
139 | WINBOOL (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
|
---|
140 | WINBOOL (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
|
---|
141 | WINBOOL (WINAPI *fpReadPrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
|
---|
142 | LPDWORD pNoBytesRead);
|
---|
143 | WINBOOL (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
|
---|
144 | WINBOOL (WINAPI *fpAddJob)(HANDLE hPrinter, DWORD Level, LPBYTE pData,
|
---|
145 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
146 | WINBOOL (WINAPI *fpScheduleJob)(HANDLE hPrinter, DWORD JobID);
|
---|
147 | DWORD (WINAPI *fpGetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
|
---|
148 | LPDWORD pType, LPBYTE pData, DWORD nSize,
|
---|
149 | LPDWORD pcbNeeded);
|
---|
150 | DWORD (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
|
---|
151 | DWORD Type, LPBYTE pData, DWORD cbData);
|
---|
152 | DWORD (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
|
---|
153 | WINBOOL (WINAPI *fpClosePrinter)(HANDLE phPrinter);
|
---|
154 | WINBOOL (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
|
---|
155 | WINBOOL (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
|
---|
156 | WINBOOL (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
|
---|
157 | LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
158 | WINBOOL (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
|
---|
159 | LPBYTE pForm);
|
---|
160 | WINBOOL (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
|
---|
161 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
162 | WINBOOL (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
|
---|
163 | DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
164 | LPDWORD pcReturned);
|
---|
165 | WINBOOL (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
166 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
167 | WINBOOL (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
168 | WINBOOL (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
169 | WINBOOL (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
170 | HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE hPrinter, LPDEVMODEW pDevMode);
|
---|
171 | WINBOOL (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC, LPBYTE pIn,
|
---|
172 | DWORD cIn, LPBYTE pOut, DWORD cOut,
|
---|
173 | DWORD ul);
|
---|
174 | WINBOOL (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
|
---|
175 | WINBOOL (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
|
---|
176 | WINBOOL (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
|
---|
177 | DWORD (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
|
---|
178 | LPWSTR pText, LPWSTR pCaption,
|
---|
179 | DWORD dwType);
|
---|
180 | WINBOOL (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
|
---|
181 | WINBOOL (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
182 | LPWSTR pMonitorName);
|
---|
183 | WINBOOL (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
|
---|
184 | WINBOOL (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
|
---|
185 | DWORD Level, LPBYTE pDriverInfo,
|
---|
186 | DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
187 | DWORD dwClientMajorVersion,
|
---|
188 | DWORD dwClientMinorVersion,
|
---|
189 | PDWORD pdwServerMajorVersion,
|
---|
190 | PDWORD pdwServerMinorVersion);
|
---|
191 | HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
|
---|
192 | DWORD fdwFlags,
|
---|
193 | DWORD fdwOptions,
|
---|
194 | LPVOID pPrinterNotifyOptions);
|
---|
195 | WINBOOL (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
|
---|
196 | WINBOOL (WINAPI *fpAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
|
---|
197 | LPWSTR lpMonitorName);
|
---|
198 | WINBOOL (WINAPI *fpShutDown)(LPVOID pvReserved);
|
---|
199 | WINBOOL (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
|
---|
200 | DWORD Reserved,
|
---|
201 | PVOID pvReserved,
|
---|
202 | PVOID pPrinterNotifyInfo);
|
---|
203 | WINBOOL (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
|
---|
204 | LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo,
|
---|
205 | DWORD Level);
|
---|
206 | HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
|
---|
207 | LPBYTE pClientInfo, DWORD ClientInfoLevel);
|
---|
208 | WINBOOL (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
|
---|
209 | LPBYTE pPortInfo);
|
---|
210 | DWORD (WINAPI *fpEnumPrinterData)(HANDLE hPrinter, DWORD dwIndex,
|
---|
211 | LPWSTR pValueName, DWORD cbValueName,
|
---|
212 | LPDWORD pcbValueName, LPDWORD pType,
|
---|
213 | LPBYTE pData, DWORD cbData, LPDWORD pcbData);
|
---|
214 | DWORD (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR pValueName);
|
---|
215 | DWORD (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
|
---|
216 | PHANDLE phSpooler, LPCWSTR pszName,
|
---|
217 | LPCWSTR pszAddress);
|
---|
218 | DWORD (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
|
---|
219 | DWORD (WINAPI *fpClusterSplIsAlive)(HANDLE hSpooler);
|
---|
220 | DWORD (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
221 | LPCWSTR pValueName, DWORD Type,
|
---|
222 | LPBYTE pData, DWORD cbData);
|
---|
223 | DWORD (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
224 | LPCWSTR pValueName, LPDWORD pType,
|
---|
225 | LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
|
---|
226 | DWORD (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
227 | LPBYTE pEnumValues, DWORD cbEnumValues,
|
---|
228 | LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
|
---|
229 | DWORD (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
230 | LPWSTR pSubkey, DWORD cbSubkey, LPDWORD pcbSubkey);
|
---|
231 | DWORD (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
232 | LPCWSTR pValueName);
|
---|
233 | DWORD (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
|
---|
234 | WINBOOL (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
|
---|
235 | PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod,
|
---|
236 | WINBOOL bWrite);
|
---|
237 | WINBOOL (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
238 | LPWSTR pDriverName, DWORD dwDeleteFlag,
|
---|
239 | DWORD dwVersionNum);
|
---|
240 | WINBOOL (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
|
---|
241 | LPCWSTR pPrinterName, LPCWSTR pPrintServer,
|
---|
242 | LPCWSTR pProvider);
|
---|
243 | WINBOOL (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
|
---|
244 | LPCWSTR pPrinterName);
|
---|
245 | WINBOOL (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
|
---|
246 | LPBYTE pPrinterEnum, DWORD cbBuf,
|
---|
247 | LPDWORD pcbNeeded,
|
---|
248 | LPDWORD pcReturned);
|
---|
249 | WINBOOL (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
|
---|
250 | DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
|
---|
251 | PDWORD pcbOutputNeeded, PDWORD pdwStatus);
|
---|
252 | WINBOOL (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
|
---|
253 | LPBYTE pDriverInfo, DWORD dwFileCopyFlags);
|
---|
254 | WINBOOL (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
|
---|
255 | WINBOOL (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
|
---|
256 | WINBOOL (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
|
---|
257 | LPHANDLE phFile, HANDLE hSpoolerProcess,
|
---|
258 | HANDLE hAppProcess);
|
---|
259 | WINBOOL (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
|
---|
260 | WINBOOL (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
|
---|
261 | WINBOOL (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
|
---|
262 | LPDWORD pcWritten, DWORD cSleep);
|
---|
263 | DWORD (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
|
---|
264 | LPBIDI_REQUEST_CONTAINER pReqData,
|
---|
265 | LPBIDI_RESPONSE_CONTAINER *ppResData);
|
---|
266 | WINBOOL (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
|
---|
267 | VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
|
---|
268 | } PRINTPROVIDOR, *LPPRINTPROVIDOR;
|
---|
269 |
|
---|
270 | typedef struct _PRINTPROCESSOROPENDATA {
|
---|
271 | PDEVMODEW pDevMode;
|
---|
272 | LPWSTR pDatatype;
|
---|
273 | LPWSTR pParameters;
|
---|
274 | LPWSTR pDocumentName;
|
---|
275 | DWORD JobId;
|
---|
276 | LPWSTR pOutputFile;
|
---|
277 | LPWSTR pPrinterName;
|
---|
278 | } PRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA;
|
---|
279 |
|
---|
280 | typedef struct _MONITORREG {
|
---|
281 | DWORD cbSize;
|
---|
282 | LONG (WINAPI *fpCreateKey)(HANDLE hcKey, LPCWSTR pszSubKey, DWORD dwOptions,
|
---|
283 | REGSAM samDesired,
|
---|
284 | PSECURITY_ATTRIBUTES pSecurityAttributes,
|
---|
285 | PHANDLE phckResult, PDWORD pdwDisposition,
|
---|
286 | HANDLE hSpooler);
|
---|
287 | LONG (WINAPI *fpOpenKey)(HANDLE hcKey, LPCWSTR pszSubKey, REGSAM samDesired,
|
---|
288 | PHANDLE phkResult, HANDLE hSpooler);
|
---|
289 | LONG (WINAPI *fpCloseKey)(HANDLE hcKey, HANDLE hSpooler);
|
---|
290 | LONG (WINAPI *fpDeleteKey)(HANDLE hcKey, LPCWSTR pszSubKey, HANDLE hSpooler);
|
---|
291 | LONG (WINAPI *fpEnumKey)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName,
|
---|
292 | PDWORD pcchName, PFILETIME pftLastWriteTime,
|
---|
293 | HANDLE hSpooler);
|
---|
294 | LONG (WINAPI *fpQueryInfoKey)(HANDLE hcKey, PDWORD pcSubKeys, PDWORD pcbKey,
|
---|
295 | PDWORD pcValues, PDWORD pcbValue, PDWORD pcbData,
|
---|
296 | PDWORD pcbSecurityDescriptor,
|
---|
297 | PFILETIME pftLastWriteTime,
|
---|
298 | HANDLE hSpooler);
|
---|
299 | LONG (WINAPI *fpSetValue)(HANDLE hcKey, LPCWSTR pszValue, DWORD dwType,
|
---|
300 | const BYTE* pData, DWORD cbData, HANDLE hSpooler);
|
---|
301 | LONG (WINAPI *fpDeleteValue)(HANDLE hcKey, LPCWSTR pszValue, HANDLE hSpooler);
|
---|
302 | LONG (WINAPI *fpEnumValue)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszValue,
|
---|
303 | PDWORD pcbValue, PDWORD pType, PBYTE pData, PDWORD pcbData,
|
---|
304 | HANDLE hSpooler);
|
---|
305 | LONG (WINAPI *fpQueryValue)(HANDLE hcKey, LPCWSTR pszValue, PDWORD pType,
|
---|
306 | PBYTE pData, PDWORD pcbData, HANDLE hSpooler);
|
---|
307 | } MONITORREG, *PMONITORREG;
|
---|
308 |
|
---|
309 | typedef struct _MONITORINIT {
|
---|
310 | DWORD cbSize;
|
---|
311 | HANDLE hSpooler;
|
---|
312 | HKEYMONITOR hckRegistryRoot;
|
---|
313 | PMONITORREG pMonitorReg;
|
---|
314 | WINBOOL bLocal;
|
---|
315 | LPCWSTR pszServerName;
|
---|
316 | } MONITORINIT, *PMONITORINIT;
|
---|
317 |
|
---|
318 | typedef struct _MONITOR {
|
---|
319 | WINBOOL (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
320 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
321 | WINBOOL (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
|
---|
322 | WINBOOL (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
|
---|
323 | PHANDLE pHandle, struct _MONITOR *pMonitor);
|
---|
324 | WINBOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
|
---|
325 | DWORD JobId, DWORD Level, LPBYTE pDocInfo);
|
---|
326 | WINBOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
|
---|
327 | LPDWORD pcbWritten);
|
---|
328 | WINBOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
|
---|
329 | LPDWORD pcbRead);
|
---|
330 | WINBOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
|
---|
331 | WINBOOL (WINAPI *pfnClosePort)(HANDLE hPort);
|
---|
332 | WINBOOL (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
333 | WINBOOL (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
|
---|
334 | LPWSTR lpMonitorName);
|
---|
335 | WINBOOL (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
336 | WINBOOL (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
337 | WINBOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
|
---|
338 | LPWSTR pValueName, LPWSTR lpInBuffer,
|
---|
339 | DWORD cbInBuffer, LPWSTR lpOutBuffer,
|
---|
340 | DWORD cbOutBuffer, LPDWORD lpcbReturned);
|
---|
341 | WINBOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
|
---|
342 | DWORD reserved);
|
---|
343 | WINBOOL (WINAPI *pfnXcvOpenPort)(LPCWSTR pszObject, ACCESS_MASK GrantedAccess, PHANDLE phXcv);
|
---|
344 | DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
|
---|
345 | PBYTE pInputData, DWORD cbInputData,
|
---|
346 | PBYTE pOutputData, DWORD cbOutputData,
|
---|
347 | PDWORD pcbOutputNeeded);
|
---|
348 | WINBOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
|
---|
349 | } MONITOR, *LPMONITOR;
|
---|
350 |
|
---|
351 | typedef struct _MONITOREX {
|
---|
352 | DWORD dwMonitorSize;
|
---|
353 | MONITOR Monitor;
|
---|
354 | } MONITOREX, *LPMONITOREX;
|
---|
355 |
|
---|
356 | typedef struct _MONITOR2 {
|
---|
357 | DWORD cbSize;
|
---|
358 | WINBOOL (WINAPI *pfnEnumPorts)(HANDLE hMonitor, LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
359 | DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
360 | LPDWORD pcReturned);
|
---|
361 | WINBOOL (WINAPI *pfnOpenPort)(HANDLE hMonitor, LPWSTR pName, PHANDLE pHandle);
|
---|
362 | WINBOOL (WINAPI *pfnOpenPortEx)(HANDLE hMonitor, HANDLE hMonitorPort, LPWSTR pPortName, LPWSTR pPrinterName,
|
---|
363 | PHANDLE pHandle, struct _MONITOR2 *pMonitor2);
|
---|
364 | WINBOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
|
---|
365 | DWORD JobId, DWORD Level, LPBYTE pDocInfo);
|
---|
366 | WINBOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
|
---|
367 | LPDWORD pcbWritten);
|
---|
368 | WINBOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
|
---|
369 | LPDWORD pcbRead);
|
---|
370 | WINBOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
|
---|
371 | WINBOOL (WINAPI *pfnClosePort)(HANDLE hPort);
|
---|
372 | WINBOOL (WINAPI *pfnAddPort)(HANDLE hMonitor, LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
373 | WINBOOL (WINAPI *pfnAddPortEx)(HANDLE hMonitor, LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
|
---|
374 | LPWSTR lpMonitorName);
|
---|
375 | WINBOOL (WINAPI *pfnConfigurePort)(HANDLE hMonitor, LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
376 | WINBOOL (WINAPI *pfnDeletePort)(HANDLE hMonitor, LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
377 | WINBOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
|
---|
378 | LPWSTR pValueName, LPWSTR lpInBuffer,
|
---|
379 | DWORD cbInBuffer, LPWSTR lpOutBuffer,
|
---|
380 | DWORD cbOutBuffer, LPDWORD lpcbReturned);
|
---|
381 | WINBOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
|
---|
382 | DWORD reserved);
|
---|
383 | WINBOOL (WINAPI *pfnXcvOpenPort)(HANDLE hMonitor, LPCWSTR pszObject,
|
---|
384 | ACCESS_MASK GrantedAccess, PHANDLE phXcv);
|
---|
385 | DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
|
---|
386 | PBYTE pInputData, DWORD cbInputData,
|
---|
387 | PBYTE pOutputData, DWORD cbOutputData,
|
---|
388 | PDWORD pcbOutputNeeded);
|
---|
389 | WINBOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
|
---|
390 | VOID (WINAPI *pfnShutdown)(HANDLE hMonitor);
|
---|
391 | #if (NTDDI_VERSION >= NTDDI_WINXP)
|
---|
392 | DWORD (WINAPI *pfnSendRecvBidiDataFromPort)(HANDLE hPort, DWORD dwAccessBit,
|
---|
393 | LPCWSTR pAction,
|
---|
394 | PBIDI_REQUEST_CONTAINER pReqData,
|
---|
395 | PBIDI_RESPONSE_CONTAINER *ppResData);
|
---|
396 | #endif
|
---|
397 | #if (NTDDI_VERSION >= NTDDI_WIN7)
|
---|
398 | DWORD (WINAPI *pfnNotifyUsedPorts)(HANDLE hMonitor, DWORD cPorts,
|
---|
399 | PCWSTR *ppszPorts);
|
---|
400 |
|
---|
401 | DWORD (WINAPI *pfnNotifyUnusedPorts)(HANDLE hMonitor, DWORD cPorts,
|
---|
402 | PCWSTR *ppszPorts);
|
---|
403 | #endif
|
---|
404 | } MONITOR2, *LPMONITOR2, *PMONITOR2;
|
---|
405 |
|
---|
406 | typedef struct _MONITORUI {
|
---|
407 | DWORD dwMonitorUISize;
|
---|
408 | WINBOOL (WINAPI *pfnAddPortUI)(PCWSTR pszServer, HWND hWnd,
|
---|
409 | PCWSTR pszPortNameIn, PWSTR *ppszPortNameOut);
|
---|
410 | WINBOOL (WINAPI *pfnConfigurePortUI)(PCWSTR pName, HWND hWnd, PCWSTR pPortName);
|
---|
411 | WINBOOL (WINAPI *pfnDeletePortUI)(PCWSTR pszServer, HWND hWnd, PCWSTR pszPortName);
|
---|
412 | } MONITORUI, *PMONITORUI;
|
---|
413 |
|
---|
414 | #if (NTDDI_VERSION >= NTDDI_WINXP)
|
---|
415 |
|
---|
416 | typedef enum {
|
---|
417 | kMessageBox = 0
|
---|
418 | } UI_TYPE;
|
---|
419 |
|
---|
420 | typedef struct {
|
---|
421 | DWORD cbSize;
|
---|
422 | LPWSTR pTitle;
|
---|
423 | LPWSTR pMessage;
|
---|
424 | DWORD Style;
|
---|
425 | DWORD dwTimeout;
|
---|
426 | WINBOOL bWait;
|
---|
427 | } MESSAGEBOX_PARAMS, *PMESSAGEBOX_PARAMS;
|
---|
428 |
|
---|
429 | typedef struct {
|
---|
430 | UI_TYPE UIType;
|
---|
431 | MESSAGEBOX_PARAMS MessageBoxParams;
|
---|
432 | } SHOWUIPARAMS, *PSHOWUIPARAMS;
|
---|
433 |
|
---|
434 | #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
---|
435 |
|
---|
436 | #if (NTDDI_VERSION >= NTDDI_WS03)
|
---|
437 | #ifndef __ATTRIBUTE_INFO_3__
|
---|
438 | #define __ATTRIBUTE_INFO_3__
|
---|
439 | typedef struct _ATTRIBUTE_INFO_3 {
|
---|
440 | DWORD dwJobNumberOfPagesPerSide;
|
---|
441 | DWORD dwDrvNumberOfPagesPerSide;
|
---|
442 | DWORD dwNupBorderFlags;
|
---|
443 | DWORD dwJobPageOrderFlags;
|
---|
444 | DWORD dwDrvPageOrderFlags;
|
---|
445 | DWORD dwJobNumberOfCopies;
|
---|
446 | DWORD dwDrvNumberOfCopies;
|
---|
447 | DWORD dwColorOptimization;
|
---|
448 | short dmPrintQuality;
|
---|
449 | short dmYResolution;
|
---|
450 | } ATTRIBUTE_INFO_3, *PATTRIBUTE_INFO_3;
|
---|
451 | #endif /* __ATTRIBUTE_INFO_3__ */
|
---|
452 | #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
|
---|
453 |
|
---|
454 | #if (NTDDI_VERSION >= NTDDI_VISTA)
|
---|
455 |
|
---|
456 | typedef WINBOOL
|
---|
457 | (CALLBACK *ROUTER_NOTIFY_CALLBACK)(
|
---|
458 | DWORD dwCommand,
|
---|
459 | PVOID pContext,
|
---|
460 | DWORD dwColor,
|
---|
461 | PPRINTER_NOTIFY_INFO pNofityInfo,
|
---|
462 | DWORD fdwFlags,
|
---|
463 | PDWORD pdwResult);
|
---|
464 |
|
---|
465 | typedef enum _NOTIFICATION_CALLBACK_COMMANDS {
|
---|
466 | NOTIFICATION_COMMAND_NOTIFY,
|
---|
467 | NOTIFICATION_COMMAND_CONTEXT_ACQUIRE,
|
---|
468 | NOTIFICATION_COMMAND_CONTEXT_RELEASE
|
---|
469 | } NOTIFICATION_CALLBACK_COMMANDS;
|
---|
470 |
|
---|
471 | typedef struct _NOTIFICATION_CONFIG_1 {
|
---|
472 | UINT cbSize;
|
---|
473 | DWORD fdwFlags;
|
---|
474 | ROUTER_NOTIFY_CALLBACK pfnNotifyCallback;
|
---|
475 | PVOID pContext;
|
---|
476 | } NOTIFICATION_CONFIG_1, *PNOTIFICATION_CONFIG_1;
|
---|
477 |
|
---|
478 | typedef enum _NOTIFICATION_CONFIG_FLAGS {
|
---|
479 | NOTIFICATION_CONFIG_CREATE_EVENT = 1 << 0,
|
---|
480 | NOTIFICATION_CONFIG_REGISTER_CALLBACK = 1 << 1,
|
---|
481 | NOTIFICATION_CONFIG_EVENT_TRIGGER = 1 << 2,
|
---|
482 | NOTIFICATION_CONFIG_ASYNC_CHANNEL = 1 << 3
|
---|
483 | } NOTIFICATION_CONFIG_FLAGS;
|
---|
484 |
|
---|
485 | typedef struct _SPLCLIENT_INFO_3 {
|
---|
486 | UINT cbSize;
|
---|
487 | DWORD dwFlags;
|
---|
488 | DWORD dwSize;
|
---|
489 | PWSTR pMachineName;
|
---|
490 | PWSTR pUserName;
|
---|
491 | DWORD dwBuildNum;
|
---|
492 | DWORD dwMajorVersion;
|
---|
493 | DWORD dwMinorVersion;
|
---|
494 | WORD wProcessorArchitecture;
|
---|
495 | UINT64 hSplPrinter;
|
---|
496 | } SPLCLIENT_INFO_3, *PSPLCLIENT_INFO_3, *LPSPLCLIENT_INFO_3;
|
---|
497 |
|
---|
498 | #ifndef __ATTRIBUTE_INFO_4__
|
---|
499 | #define __ATTRIBUTE_INFO_4__
|
---|
500 |
|
---|
501 | typedef struct _ATTRIBUTE_INFO_4 {
|
---|
502 | DWORD dwJobNumberOfPagesPerSide;
|
---|
503 | DWORD dwDrvNumberOfPagesPerSide;
|
---|
504 | DWORD dwNupBorderFlags;
|
---|
505 | DWORD dwJobPageOrderFlags;
|
---|
506 | DWORD dwDrvPageOrderFlags;
|
---|
507 | DWORD dwJobNumberOfCopies;
|
---|
508 | DWORD dwDrvNumberOfCopies;
|
---|
509 | DWORD dwColorOptimization;
|
---|
510 | short dmPrintQuality;
|
---|
511 | short dmYResolution;
|
---|
512 | DWORD dwDuplexFlags;
|
---|
513 | DWORD dwNupDirection;
|
---|
514 | DWORD dwBookletFlags;
|
---|
515 | DWORD dwScalingPercentX;
|
---|
516 | DWORD dwScalingPercentY;
|
---|
517 | } ATTRIBUTE_INFO_4, *PATTRIBUTE_INFO_4;
|
---|
518 |
|
---|
519 | #define REVERSE_PAGES_FOR_REVERSE_DUPLEX (0x00000001)
|
---|
520 | #define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX (0x00000001 << 1)
|
---|
521 |
|
---|
522 | #define RIGHT_THEN_DOWN (0x00000001)
|
---|
523 | #define DOWN_THEN_RIGHT (0x00000001 << 1)
|
---|
524 | #define LEFT_THEN_DOWN (0x00000001 << 2)
|
---|
525 | #define DOWN_THEN_LEFT (0x00000001 << 3)
|
---|
526 |
|
---|
527 | #define BOOKLET_EDGE_LEFT 0x00000000
|
---|
528 | #define BOOKLET_EDGE_RIGHT 0x00000001
|
---|
529 |
|
---|
530 | #endif /* __ATTRIBUTE_INFO_4__ */
|
---|
531 |
|
---|
532 | #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
---|
533 |
|
---|
534 | #if (OSVER(NTDDI_VERSION) == NTDDI_W2K)
|
---|
535 | typedef SPLCLIENT_INFO_2_W2K SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
|
---|
536 | #elif ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) || (OSVER(NTDDI_VERSION) == NTDDI_WS03))
|
---|
537 | typedef SPLCLIENT_INFO_2_WINXP SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
|
---|
538 | #else
|
---|
539 | typedef SPLCLIENT_INFO_2_LONGHORN SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
|
---|
540 | #endif /* (OSVER(NTDDI_VERSION) == NTDDI_W2K) */
|
---|
541 |
|
---|
542 | WINBOOL
|
---|
543 | WINAPI
|
---|
544 | InitializePrintProvidor(
|
---|
545 | LPPRINTPROVIDOR pPrintProvidor,
|
---|
546 | DWORD cbPrintProvidor,
|
---|
547 | LPWSTR pFullRegistryPath);
|
---|
548 |
|
---|
549 | HANDLE
|
---|
550 | WINAPI
|
---|
551 | OpenPrintProcessor(
|
---|
552 | LPWSTR pPrinterName,
|
---|
553 | PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
|
---|
554 |
|
---|
555 | WINBOOL
|
---|
556 | WINAPI
|
---|
557 | PrintDocumentOnPrintProcessor(
|
---|
558 | HANDLE hPrintProcessor,
|
---|
559 | LPWSTR pDocumentName);
|
---|
560 |
|
---|
561 | WINBOOL
|
---|
562 | WINAPI
|
---|
563 | ClosePrintProcessor(
|
---|
564 | HANDLE hPrintProcessor);
|
---|
565 |
|
---|
566 | WINBOOL
|
---|
567 | WINAPI
|
---|
568 | ControlPrintProcessor(
|
---|
569 | HANDLE hPrintProcessor,
|
---|
570 | DWORD Command);
|
---|
571 |
|
---|
572 | DWORD
|
---|
573 | WINAPI
|
---|
574 | GetPrintProcessorCapabilities(
|
---|
575 | LPTSTR pValueName,
|
---|
576 | DWORD dwAttributes,
|
---|
577 | LPBYTE pData,
|
---|
578 | DWORD nSize,
|
---|
579 | LPDWORD pcbNeeded);
|
---|
580 |
|
---|
581 | WINBOOL
|
---|
582 | WINAPI
|
---|
583 | InitializeMonitor(
|
---|
584 | LPWSTR pRegistryRoot);
|
---|
585 |
|
---|
586 | WINBOOL
|
---|
587 | WINAPI
|
---|
588 | OpenPort(
|
---|
589 | LPWSTR pName,
|
---|
590 | PHANDLE pHandle);
|
---|
591 |
|
---|
592 | WINBOOL
|
---|
593 | WINAPI
|
---|
594 | WritePort(
|
---|
595 | HANDLE hPort,
|
---|
596 | LPBYTE pBuffer,
|
---|
597 | DWORD cbBuf,
|
---|
598 | LPDWORD pcbWritten);
|
---|
599 |
|
---|
600 | WINBOOL
|
---|
601 | WINAPI
|
---|
602 | ReadPort(
|
---|
603 | HANDLE hPort,
|
---|
604 | LPBYTE pBuffer,
|
---|
605 | DWORD cbBuffer,
|
---|
606 | LPDWORD pcbRead);
|
---|
607 |
|
---|
608 | WINBOOL
|
---|
609 | WINAPI
|
---|
610 | ClosePort(
|
---|
611 | HANDLE hPort);
|
---|
612 |
|
---|
613 | WINBOOL
|
---|
614 | WINAPI
|
---|
615 | XcvOpenPort(
|
---|
616 | LPCWSTR pszObject,
|
---|
617 | ACCESS_MASK GrantedAccess,
|
---|
618 | PHANDLE phXcv);
|
---|
619 |
|
---|
620 | DWORD
|
---|
621 | WINAPI
|
---|
622 | XcvDataPort(
|
---|
623 | HANDLE hXcv,
|
---|
624 | LPCWSTR pszDataName,
|
---|
625 | PBYTE pInputData,
|
---|
626 | DWORD cbInputData,
|
---|
627 | PBYTE pOutputData,
|
---|
628 | DWORD cbOutputData,
|
---|
629 | PDWORD pcbOutputNeeded);
|
---|
630 |
|
---|
631 | WINBOOL
|
---|
632 | WINAPI
|
---|
633 | XcvClosePort(
|
---|
634 | HANDLE hXcv);
|
---|
635 |
|
---|
636 | WINBOOL
|
---|
637 | WINAPI
|
---|
638 | AddPortUI(
|
---|
639 | PCWSTR pszServer,
|
---|
640 | HWND hWnd,
|
---|
641 | PCWSTR pszMonitorNameIn,
|
---|
642 | PWSTR *ppszPortNameOut);
|
---|
643 |
|
---|
644 | WINBOOL
|
---|
645 | WINAPI
|
---|
646 | ConfigurePortUI(
|
---|
647 | PCWSTR pszServer,
|
---|
648 | HWND hWnd,
|
---|
649 | PCWSTR pszPortName);
|
---|
650 |
|
---|
651 | WINBOOL
|
---|
652 | WINAPI
|
---|
653 | DeletePortUI(
|
---|
654 | PCWSTR pszServer,
|
---|
655 | HWND hWnd,
|
---|
656 | PCWSTR pszPortName);
|
---|
657 |
|
---|
658 | WINBOOL
|
---|
659 | WINAPI
|
---|
660 | SplDeleteSpoolerPortStart(
|
---|
661 | PCWSTR pPortName);
|
---|
662 |
|
---|
663 | WINBOOL
|
---|
664 | WINAPI
|
---|
665 | SplDeleteSpoolerPortEnd(
|
---|
666 | PCWSTR pName,
|
---|
667 | WINBOOL bDeletePort);
|
---|
668 |
|
---|
669 | WINBOOL
|
---|
670 | WINAPI
|
---|
671 | SpoolerCopyFileEvent(
|
---|
672 | LPWSTR pszPrinterName,
|
---|
673 | LPWSTR pszKey,
|
---|
674 | DWORD dwCopyFileEvent);
|
---|
675 |
|
---|
676 | DWORD
|
---|
677 | WINAPI
|
---|
678 | GenerateCopyFilePaths(
|
---|
679 | LPCWSTR pszPrinterName,
|
---|
680 | LPCWSTR pszDirectory,
|
---|
681 | LPBYTE pSplClientInfo,
|
---|
682 | DWORD dwLevel,
|
---|
683 | LPWSTR pszSourceDir,
|
---|
684 | LPDWORD pcchSourceDirSize,
|
---|
685 | LPWSTR pszTargetDir,
|
---|
686 | LPDWORD pcchTargetDirSize,
|
---|
687 | DWORD dwFlags);
|
---|
688 |
|
---|
689 | HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
|
---|
690 | WINBOOL WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
|
---|
691 | DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
|
---|
692 | WINBOOL WINAPI DeletePrinterIC(HANDLE hPrinterIC);
|
---|
693 | WINBOOL WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
|
---|
694 | HANDLE WINAPI RevertToPrinterSelf(VOID);
|
---|
695 | WINBOOL WINAPI ImpersonatePrinterClient(HANDLE hToken);
|
---|
696 | WINBOOL WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
|
---|
697 | PDWORD pdwResult, PVOID pPrinterNotifyInfo);
|
---|
698 | WINBOOL WINAPI ReplyPrinterChangeNotificationEx(HANDLE hNotify, DWORD dwColor,
|
---|
699 | DWORD fdwFlags, PDWORD pdwResult,
|
---|
700 | PVOID pPrinterNotifyInfo);
|
---|
701 | WINBOOL WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
|
---|
702 | PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
|
---|
703 | PPRINTER_NOTIFY_INFO WINAPI RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
|
---|
704 | WINBOOL WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
|
---|
705 |
|
---|
706 | WINBOOL WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
|
---|
707 | PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc,
|
---|
708 | DWORD fdwFlags);
|
---|
709 | DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
710 | DWORD fdwFlags,
|
---|
711 | DWORD fdwOptions,
|
---|
712 | HANDLE hNotify,
|
---|
713 | PPRINTER_NOTIFY_OPTIONS pPrinterNotifyOptions);
|
---|
714 | WINBOOL WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
715 | DWORD fdwFlags,
|
---|
716 | DWORD fdwOptions,
|
---|
717 | HANDLE hNotify,
|
---|
718 | PVOID pvReserved0,
|
---|
719 | PVOID pvReserved1);
|
---|
720 | WINBOOL WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
|
---|
721 |
|
---|
722 | /* Spooler */
|
---|
723 | WINBOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
724 | DWORD fdwFlags,
|
---|
725 | DWORD fdwOptions,
|
---|
726 | PHANDLE phEvent,
|
---|
727 | PVOID pPrinterNotifyOptions,
|
---|
728 | PVOID pvReserved);
|
---|
729 | WINBOOL WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
|
---|
730 | LPDWORD pfdwChange,
|
---|
731 | PVOID pvReserved0,
|
---|
732 | PVOID ppPrinterNotifyInfo);
|
---|
733 | VOID WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
|
---|
734 | WINBOOL WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
|
---|
735 |
|
---|
736 | /* Port monitor / Language monitor / Print monitor */
|
---|
737 | LPMONITOR2 WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
|
---|
738 | PHANDLE phMonitor);
|
---|
739 | PMONITORUI WINAPI InitializePrintMonitorUI(VOID);
|
---|
740 | LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
|
---|
741 | WINBOOL WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
|
---|
742 |
|
---|
743 | #if (NTDDI_VERSION >= NTDDI_WINXP)
|
---|
744 |
|
---|
745 | PBIDI_RESPONSE_CONTAINER WINAPI RouterAllocBidiResponseContainer(DWORD Count);
|
---|
746 | PVOID WINAPI RouterAllocBidiMem(size_t NumBytes);
|
---|
747 | DWORD WINAPI RouterFreeBidiResponseContainer(PBIDI_RESPONSE_CONTAINER pData);
|
---|
748 | VOID WINAPI RouterFreeBidiMem(PVOID pMemPointer);
|
---|
749 |
|
---|
750 | WINBOOL
|
---|
751 | WINAPI
|
---|
752 | SplPromptUIInUsersSession(
|
---|
753 | HANDLE hPrinter,
|
---|
754 | DWORD JobId,
|
---|
755 | PSHOWUIPARAMS pUIParams,
|
---|
756 | DWORD *pResponse);
|
---|
757 |
|
---|
758 | DWORD
|
---|
759 | WINAPI
|
---|
760 | SplIsSessionZero(
|
---|
761 | HANDLE hPrinter,
|
---|
762 | DWORD JobId,
|
---|
763 | WINBOOL *pIsSessionZero);
|
---|
764 |
|
---|
765 | #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
---|
766 |
|
---|
767 | #if (NTDDI_VERSION >= NTDDI_WS03)
|
---|
768 | WINBOOL
|
---|
769 | WINAPI
|
---|
770 | GetJobAttributes(
|
---|
771 | LPWSTR pPrinterName,
|
---|
772 | LPDEVMODEW pDevmode,
|
---|
773 | PATTRIBUTE_INFO_3 pAttributeInfo);
|
---|
774 | #endif
|
---|
775 |
|
---|
776 | #if (NTDDI_VERSION >= NTDDI_VISTA)
|
---|
777 |
|
---|
778 | #define FILL_WITH_DEFAULTS 0x1
|
---|
779 |
|
---|
780 | WINBOOL
|
---|
781 | WINAPI
|
---|
782 | GetJobAttributesEx(
|
---|
783 | LPWSTR pPrinterName,
|
---|
784 | LPDEVMODEW pDevmode,
|
---|
785 | DWORD dwLevel,
|
---|
786 | LPBYTE pAttributeInfo,
|
---|
787 | DWORD nSize,
|
---|
788 | DWORD dwFlags);
|
---|
789 |
|
---|
790 | WINBOOL WINAPI SpoolerRefreshPrinterChangeNotification(HANDLE hPrinter,
|
---|
791 | DWORD dwColor,
|
---|
792 | PPRINTER_NOTIFY_OPTIONS pOptions,
|
---|
793 | PPRINTER_NOTIFY_INFO *ppInfo);
|
---|
794 |
|
---|
795 | #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
---|
796 |
|
---|
797 | /* FIXME : The following declarations are not present in the official header */
|
---|
798 |
|
---|
799 | WINBOOL WINAPI OpenPrinterToken(PHANDLE phToken);
|
---|
800 | WINBOOL WINAPI SetPrinterToken(HANDLE hToken);
|
---|
801 | WINBOOL WINAPI ClosePrinterToken(HANDLE hToken);
|
---|
802 | WINBOOL WINAPI InstallPrintProcessor(HWND hWnd);
|
---|
803 |
|
---|
804 | #ifdef __cplusplus
|
---|
805 | }
|
---|
806 | #endif
|
---|