1 | /*
|
---|
2 | * Definitions for print provider, monitor, processor and spooler
|
---|
3 | *
|
---|
4 | * Copyright 2005 Detlef Riekenberg
|
---|
5 | *
|
---|
6 | * This library is free software; you can redistribute it and/or
|
---|
7 | * modify it under the terms of the GNU Lesser General Public
|
---|
8 | * License as published by the Free Software Foundation; either
|
---|
9 | * version 2.1 of the License, or (at your option) any later version.
|
---|
10 | *
|
---|
11 | * This library is distributed in the hope that it will be useful,
|
---|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
14 | * Lesser General Public License for more details.
|
---|
15 | *
|
---|
16 | * You should have received a copy of the GNU Lesser General Public
|
---|
17 | * License along with this library; if not, write to the Free Software
|
---|
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
19 | *
|
---|
20 | *
|
---|
21 | * "providor" is not a spelling error in this file. It's the real name.
|
---|
22 | *
|
---|
23 | */
|
---|
24 |
|
---|
25 | /*
|
---|
26 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
27 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
28 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
29 | * a choice of LGPL license versions is made available with the language indicating
|
---|
30 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
31 | * of the LGPL is applied is otherwise unspecified.
|
---|
32 | */
|
---|
33 |
|
---|
34 | #ifndef _WINSPLP_
|
---|
35 | #define _WINSPLP_
|
---|
36 |
|
---|
37 | #ifdef __cplusplus
|
---|
38 | extern "C" {
|
---|
39 | #endif
|
---|
40 |
|
---|
41 | /* DEFINES */
|
---|
42 |
|
---|
43 | #define PRINTER_NOTIFY_STATUS_ENDPOINT 1
|
---|
44 | #define PRINTER_NOTIFY_STATUS_POLL 2
|
---|
45 | #define PRINTER_NOTIFY_STATUS_INFO 4
|
---|
46 |
|
---|
47 |
|
---|
48 | #define ROUTER_UNKNOWN 0
|
---|
49 | #define ROUTER_SUCCESS 1
|
---|
50 | #define ROUTER_STOP_ROUTING 2
|
---|
51 |
|
---|
52 | /*
|
---|
53 | * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
|
---|
54 | */
|
---|
55 |
|
---|
56 |
|
---|
57 | /* TYPES */
|
---|
58 |
|
---|
59 | typedef struct _MONITOR {
|
---|
60 | BOOL (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
61 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
62 | BOOL (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
|
---|
63 | BOOL (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
|
---|
64 | PHANDLE pHandle, struct _MONITOR *pMonitor);
|
---|
65 | BOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
|
---|
66 | DWORD JobId, DWORD Level, LPBYTE pDocInfo);
|
---|
67 | BOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
|
---|
68 | LPDWORD pcbWritten);
|
---|
69 | BOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
|
---|
70 | LPDWORD pcbRead);
|
---|
71 | BOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
|
---|
72 | BOOL (WINAPI *pfnClosePort)(HANDLE hPort);
|
---|
73 | BOOL (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
74 | BOOL (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
|
---|
75 | LPWSTR lpMonitorName);
|
---|
76 | BOOL (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
77 | BOOL (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
78 | BOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
|
---|
79 | LPWSTR pValueName, LPWSTR lpInBuffer, DWORD cbInBuffer,
|
---|
80 | LPWSTR lpOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbReturned);
|
---|
81 | BOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
|
---|
82 | DWORD reserved);
|
---|
83 | BOOL (WINAPI *pfnXcvOpenPort)(LPCWSTR pszObject, ACCESS_MASK GrantedAccess, PHANDLE phXcv);
|
---|
84 | DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
|
---|
85 | PBYTE pInputData, DWORD cbInputData,
|
---|
86 | PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
|
---|
87 | BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
|
---|
88 | } MONITOR, *LPMONITOR;
|
---|
89 |
|
---|
90 | typedef struct _MONITOR2 {
|
---|
91 | DWORD cbSize;
|
---|
92 | BOOL (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
93 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
94 | BOOL (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
|
---|
95 | BOOL (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
|
---|
96 | PHANDLE pHandle, struct _MONITOR2 *pMonitor2);
|
---|
97 | BOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
|
---|
98 | DWORD JobId, DWORD Level, LPBYTE pDocInfo);
|
---|
99 | BOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
|
---|
100 | LPDWORD pcbWritten);
|
---|
101 | BOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
|
---|
102 | LPDWORD pcbRead);
|
---|
103 | BOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
|
---|
104 | BOOL (WINAPI *pfnClosePort)(HANDLE hPort);
|
---|
105 | BOOL (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
106 | BOOL (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
|
---|
107 | LPWSTR lpMonitorName);
|
---|
108 | BOOL (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
109 | BOOL (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
110 | BOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
|
---|
111 | LPWSTR pValueName, LPWSTR lpInBuffer, DWORD cbInBuffer,
|
---|
112 | LPWSTR lpOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbReturned);
|
---|
113 | BOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
|
---|
114 | DWORD reserved);
|
---|
115 | BOOL (WINAPI *pfnXcvOpenPort)(HANDLE hMonitor, LPCWSTR pszObject,
|
---|
116 | ACCESS_MASK GrantedAccess, PHANDLE phXcv);
|
---|
117 | DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
|
---|
118 | PBYTE pInputData, DWORD cbInputData,
|
---|
119 | PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
|
---|
120 | BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
|
---|
121 | /* Additions from MONITOR to MONITOR2 */
|
---|
122 | VOID (WINAPI *pfnShutdown)(HANDLE hMonitor);
|
---|
123 | DWORD (WINAPI *pfnSendRecvBidiDataFromPort)(HANDLE hPort, DWORD dwAccessBit,
|
---|
124 | LPCWSTR pAction, PBIDI_REQUEST_CONTAINER pReqData,
|
---|
125 | PBIDI_RESPONSE_CONTAINER *ppResData);
|
---|
126 | } MONITOR2, *LPMONITOR2, *PMONITOR2;
|
---|
127 |
|
---|
128 | typedef struct _MONITOREX {
|
---|
129 | DWORD dwMonitorSize;
|
---|
130 | MONITOR Monitor;
|
---|
131 | } MONITOREX, *LPMONITOREX;
|
---|
132 |
|
---|
133 | typedef struct _MONITORREG {
|
---|
134 | DWORD cbSize;
|
---|
135 | LONG (WINAPI *fpCreateKey)(HANDLE hcKey, LPCWSTR pszSubKey, DWORD dwOptions,
|
---|
136 | REGSAM samDesired, PSECURITY_ATTRIBUTES pSecurityAttributes,
|
---|
137 | PHANDLE phckResult, PDWORD pdwDisposition, HANDLE hSpooler);
|
---|
138 | LONG (WINAPI *fpOpenKey)(HANDLE hcKey, LPCWSTR pszSubKey, REGSAM samDesired,
|
---|
139 | PHANDLE phkResult, HANDLE hSpooler);
|
---|
140 | LONG (WINAPI *fpCloseKey)(HANDLE hcKey, HANDLE hSpooler);
|
---|
141 | LONG (WINAPI *fpDeleteKey)(HANDLE hcKey, LPCWSTR pszSubKey, HANDLE hSpooler);
|
---|
142 | LONG (WINAPI *fpEnumKey)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName,
|
---|
143 | PDWORD pcchName, PFILETIME pftLastWriteTime, HANDLE hSpooler);
|
---|
144 | LONG (WINAPI *fpQueryInfoKey)(HANDLE hcKey, PDWORD pcSubKeys, PDWORD pcbKey,
|
---|
145 | PDWORD pcValues, PDWORD pcbValue, PDWORD pcbData,
|
---|
146 | PDWORD pcbSecurityDescriptor, PFILETIME pftLastWriteTime,
|
---|
147 | HANDLE hSpooler);
|
---|
148 | LONG (WINAPI *fpSetValue)(HANDLE hcKey, LPCWSTR pszValue, DWORD dwType,
|
---|
149 | const BYTE* pData, DWORD cbData, HANDLE hSpooler);
|
---|
150 | LONG (WINAPI *fpDeleteValue)(HANDLE hcKey, LPCWSTR pszValue, HANDLE hSpooler);
|
---|
151 | LONG (WINAPI *fpEnumValue)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszValue,
|
---|
152 | PDWORD pcbValue, PDWORD pType, PBYTE pData, PDWORD pcbData,
|
---|
153 | HANDLE hSpooler);
|
---|
154 | LONG (WINAPI *fpQueryValue)(HANDLE hcKey, LPCWSTR pszValue, PDWORD pType,
|
---|
155 | PBYTE pData, PDWORD pcbData, HANDLE hSpooler);
|
---|
156 | } MONITORREG, *PMONITORREG;
|
---|
157 |
|
---|
158 | typedef struct _MONITORINIT {
|
---|
159 | DWORD cbSize;
|
---|
160 | HANDLE hSpooler;
|
---|
161 | HANDLE hckRegistryRoot;
|
---|
162 | PMONITORREG pMonitorReg;
|
---|
163 | BOOL bLocal;
|
---|
164 | } MONITORINIT, *PMONITORINIT;
|
---|
165 |
|
---|
166 | typedef struct _MONITORUI {
|
---|
167 | DWORD dwMonitorUISize;
|
---|
168 | BOOL (WINAPI *pfnAddPortUI)(PCWSTR pszServer, HWND hWnd,
|
---|
169 | PCWSTR pszPortNameIn, PWSTR *ppszPortNameOut);
|
---|
170 | BOOL (WINAPI *pfnConfigurePortUI)(PCWSTR pName, HWND hWnd, PCWSTR pPortName);
|
---|
171 | BOOL (WINAPI *pfnDeletePortUI)(PCWSTR pszServer, HWND hWnd, PCWSTR pszPortName);
|
---|
172 | }MONITORUI, *PMONITORUI;
|
---|
173 |
|
---|
174 | typedef struct _PRINTER_NOTIFY_INIT {
|
---|
175 | DWORD Size;
|
---|
176 | DWORD Reserved;
|
---|
177 | DWORD PollTime;
|
---|
178 | } PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
|
---|
179 |
|
---|
180 | typedef struct _PRINTPROCESSOROPENDATA {
|
---|
181 | PDEVMODEW pDevMode;
|
---|
182 | LPWSTR pDatatype;
|
---|
183 | LPWSTR pParameters;
|
---|
184 | LPWSTR pDocumentName;
|
---|
185 | DWORD JobId;
|
---|
186 | LPWSTR pOutputFile;
|
---|
187 | LPWSTR pPrinterName;
|
---|
188 | } PRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA;
|
---|
189 |
|
---|
190 |
|
---|
191 | /*
|
---|
192 | * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
|
---|
193 | */
|
---|
194 |
|
---|
195 | typedef struct _PRINTPROVIDOR {
|
---|
196 | BOOL (WINAPI *fpOpenPrinter)(LPWSTR lpPrinterName, HANDLE *phPrinter,
|
---|
197 | LPPRINTER_DEFAULTSW pDefault);
|
---|
198 | BOOL (WINAPI *fpSetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
|
---|
199 | LPBYTE pJob, DWORD Command);
|
---|
200 | BOOL (WINAPI *fpGetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
|
---|
201 | LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
202 | BOOL (WINAPI *fpEnumJobs)(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
|
---|
203 | DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
204 | LPDWORD pcReturned);
|
---|
205 | HANDLE (WINAPI *fpAddPrinter)(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
|
---|
206 | BOOL (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
|
---|
207 | BOOL (WINAPI *fpSetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
|
---|
208 | DWORD Command);
|
---|
209 | BOOL (WINAPI *fpGetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
|
---|
210 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
211 | BOOL (WINAPI *fpEnumPrinters)(DWORD dwType, LPWSTR lpszName, DWORD dwLevel,
|
---|
212 | LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
|
---|
213 | LPDWORD lpdwReturned);
|
---|
214 | BOOL (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level,
|
---|
215 | LPBYTE pDriverInfo);
|
---|
216 | BOOL (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
217 | DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
|
---|
218 | LPDWORD pcbNeeded, LPDWORD pcbReturned);
|
---|
219 | BOOL (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
|
---|
220 | DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
|
---|
221 | LPDWORD pcbNeeded);
|
---|
222 | BOOL (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
223 | DWORD Level, LPBYTE pDriverDirectory, DWORD cbBuf,
|
---|
224 | LPDWORD pcbNeeded);
|
---|
225 | BOOL (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
226 | LPWSTR pDriverName);
|
---|
227 | BOOL (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
228 | LPWSTR pPathName, LPWSTR pPrintProcessorName);
|
---|
229 | BOOL (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
230 | DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
|
---|
231 | LPDWORD pcbNeeded, LPDWORD pcbReturned);
|
---|
232 | BOOL (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
233 | DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
|
---|
234 | LPDWORD pcbNeeded);
|
---|
235 | BOOL (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
236 | LPWSTR pPrintProcessorName);
|
---|
237 | BOOL (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
|
---|
238 | LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes,
|
---|
239 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcbReturned);
|
---|
240 | DWORD (WINAPI *fpStartDocPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
|
---|
241 | BOOL (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
|
---|
242 | BOOL (WINAPI *fpWritePrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
|
---|
243 | LPDWORD pcWritten);
|
---|
244 | BOOL (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
|
---|
245 | BOOL (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
|
---|
246 | BOOL (WINAPI *fpReadPrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
|
---|
247 | LPDWORD pNoBytesRead);
|
---|
248 | BOOL (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
|
---|
249 | BOOL (WINAPI *fpAddJob)(HANDLE hPrinter, DWORD Level, LPBYTE pData,
|
---|
250 | DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
251 | BOOL (WINAPI *fpScheduleJob)(HANDLE hPrinter, DWORD JobID);
|
---|
252 | DWORD (WINAPI *fpGetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
|
---|
253 | LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
|
---|
254 | DWORD (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
|
---|
255 | DWORD Type, LPBYTE pData, DWORD cbData);
|
---|
256 | DWORD (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
|
---|
257 | BOOL (WINAPI *fpClosePrinter)(HANDLE phPrinter);
|
---|
258 | BOOL (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
|
---|
259 | BOOL (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
|
---|
260 | BOOL (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
|
---|
261 | LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
|
---|
262 | BOOL (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
|
---|
263 | LPBYTE pForm);
|
---|
264 | BOOL (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
|
---|
265 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
266 | BOOL (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
|
---|
267 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
268 | BOOL (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
|
---|
269 | DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
|
---|
270 | BOOL (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
|
---|
271 | BOOL (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
272 | BOOL (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
|
---|
273 | HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE hPrinter, LPDEVMODEW pDevMode);
|
---|
274 | BOOL (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC, LPBYTE pIn,
|
---|
275 | DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
|
---|
276 | BOOL (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
|
---|
277 | BOOL (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
|
---|
278 | BOOL (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
|
---|
279 | DWORD (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
|
---|
280 | LPWSTR pText, LPWSTR pCaption, DWORD dwType);
|
---|
281 | BOOL (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
|
---|
282 | BOOL (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
283 | LPWSTR pMonitorName);
|
---|
284 | BOOL (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
|
---|
285 | BOOL (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
|
---|
286 | DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
287 | DWORD dwClientMajorVersion, DWORD dwClientMinorVersion,
|
---|
288 | PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion);
|
---|
289 | HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
|
---|
290 | DWORD fdwFlags, DWORD fdwOptions, LPVOID pPrinterNotifyOptions);
|
---|
291 | BOOL (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
|
---|
292 | BOOL (WINAPI *fpAddPortEx)(LPWSTR, DWORD, LPBYTE, LPWSTR);
|
---|
293 | BOOL (WINAPI *fpShutDown)(LPVOID pvReserved);
|
---|
294 | BOOL (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
|
---|
295 | DWORD Reserved, PVOID pvReserved, PVOID pPrinterNotifyInfo);
|
---|
296 | BOOL (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
|
---|
297 | LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo, DWORD Level);
|
---|
298 | HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
|
---|
299 | LPBYTE pClientInfo, DWORD ClientInfoLevel);
|
---|
300 | BOOL (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
|
---|
301 | LPBYTE pPortInfo);
|
---|
302 | DWORD (WINAPI *fpEnumPrinterData)( HANDLE hPrinter, DWORD dwIndex,
|
---|
303 | LPWSTR pValueName, DWORD cbValueName, LPDWORD pcbValueName,
|
---|
304 | LPDWORD pType, LPBYTE pData, DWORD cbData, LPDWORD pcbData);
|
---|
305 | DWORD (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR pValueName);
|
---|
306 | DWORD (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
|
---|
307 | PHANDLE phSpooler, LPCWSTR pszName, LPCWSTR pszAddress);
|
---|
308 | DWORD (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
|
---|
309 | DWORD (WINAPI *fpClusterSplIsAlive)(HANDLE hSpooler);
|
---|
310 | DWORD (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
311 | LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData);
|
---|
312 | DWORD (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
313 | LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize,
|
---|
314 | LPDWORD pcbNeeded);
|
---|
315 | DWORD (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
316 | LPBYTE pEnumValues, DWORD cbEnumValues, LPDWORD pcbEnumValues,
|
---|
317 | LPDWORD pnEnumValues);
|
---|
318 | DWORD (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
319 | LPWSTR pSubkey, DWORD cbSubkey, LPDWORD pcbSubkey);
|
---|
320 | DWORD (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
|
---|
321 | LPCWSTR pValueName);
|
---|
322 | DWORD (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
|
---|
323 | BOOL (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
|
---|
324 | PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite);
|
---|
325 | BOOL (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
|
---|
326 | LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum);
|
---|
327 | BOOL (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
|
---|
328 | LPCWSTR pPrinterName, LPCWSTR pPrintServer, LPCWSTR pProvider);
|
---|
329 | BOOL (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
|
---|
330 | LPCWSTR pPrinterName);
|
---|
331 | BOOL (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
|
---|
332 | LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded,
|
---|
333 | LPDWORD pcReturned);
|
---|
334 | BOOL (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
|
---|
335 | DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
|
---|
336 | PDWORD pcbOutputNeeded, PDWORD pdwStatus);
|
---|
337 | BOOL (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
|
---|
338 | LPBYTE pDriverInfo, DWORD dwFileCopyFlags);
|
---|
339 | BOOL (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
|
---|
340 | BOOL (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
|
---|
341 | BOOL (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
|
---|
342 | LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess);
|
---|
343 | BOOL (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
|
---|
344 | BOOL (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
|
---|
345 | BOOL (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
|
---|
346 | LPDWORD pcWritten, DWORD cSleep);
|
---|
347 | DWORD (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
|
---|
348 | LPBIDI_REQUEST_CONTAINER pReqData,
|
---|
349 | LPBIDI_RESPONSE_CONTAINER *ppResData);
|
---|
350 | BOOL (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
|
---|
351 | VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
|
---|
352 | } PRINTPROVIDOR, *LPPRINTPROVIDOR;
|
---|
353 |
|
---|
354 | typedef struct _SPLCLIENT_INFO_1 {
|
---|
355 | DWORD dwSize;
|
---|
356 | LPWSTR pMachineName;
|
---|
357 | LPWSTR pUserName;
|
---|
358 | DWORD dwBuildNum;
|
---|
359 | DWORD dwMajorVersion;
|
---|
360 | DWORD dwMinorVersion;
|
---|
361 | WORD wProcessorArchitecture;
|
---|
362 | } SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
|
---|
363 |
|
---|
364 | /* DECLARATIONS */
|
---|
365 |
|
---|
366 | HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
|
---|
367 | BOOL WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
|
---|
368 | DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
|
---|
369 | BOOL WINAPI DeletePrinterIC(HANDLE hPrinterIC);
|
---|
370 | BOOL WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
|
---|
371 |
|
---|
372 | /* Security and Access */
|
---|
373 | HANDLE WINAPI RevertToPrinterSelf(VOID);
|
---|
374 | BOOL WINAPI ImpersonatePrinterClient(HANDLE hToken);
|
---|
375 | BOOL WINAPI OpenPrinterToken(PHANDLE phToken);
|
---|
376 | BOOL WINAPI SetPrinterToken(HANDLE hToken);
|
---|
377 | BOOL WINAPI ClosePrinterToken(HANDLE hToken);
|
---|
378 |
|
---|
379 | /* Notification */
|
---|
380 | BOOL WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
|
---|
381 | PDWORD pdwResult, PVOID pPrinterNotifyInfo);
|
---|
382 | BOOL WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
|
---|
383 | PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
|
---|
384 | PPRINTER_NOTIFY_INFO RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
|
---|
385 | BOOL WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
|
---|
386 | BOOL WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
|
---|
387 | PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, DWORD fdwFlags);
|
---|
388 | DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
389 | DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify, PVOID pvReserved);
|
---|
390 |
|
---|
391 | /* Port monitor / Language monitor / Print monitor */
|
---|
392 | LPMONITOR2 WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
|
---|
393 | PHANDLE phMonitor);
|
---|
394 | PMONITORUI WINAPI InitializePrintMonitorUI(VOID);
|
---|
395 | LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
|
---|
396 | BOOL WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
|
---|
397 | BOOL WINAPI InitializeMonitor(LPWSTR pRegistryRoot);
|
---|
398 |
|
---|
399 | BOOL WINAPI OpenPort(LPWSTR pName, PHANDLE pHandle);
|
---|
400 | BOOL WINAPI WritePort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
|
---|
401 | LPDWORD pcbWritten);
|
---|
402 | BOOL WINAPI ReadPort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
|
---|
403 | LPDWORD pcbRead);
|
---|
404 | BOOL WINAPI ClosePort(HANDLE hPort);
|
---|
405 |
|
---|
406 | /* Print processor */
|
---|
407 | HANDLE WINAPI OpenPrintProcessor(LPWSTR pPrinterName,
|
---|
408 | PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
|
---|
409 | BOOL WINAPI PrintDocumentOnPrintProcessor(HANDLE hPrintProcessor,
|
---|
410 | LPWSTR pDocumentName);
|
---|
411 | BOOL WINAPI ClosePrintProcessor(HANDLE hPrintProcessor);
|
---|
412 | BOOL WINAPI ControlPrintProcessor(HANDLE hPrintProcessor, DWORD Command);
|
---|
413 | BOOL WINAPI InstallPrintProcessor(HWND hWnd);
|
---|
414 |
|
---|
415 | /* Print provider */
|
---|
416 | BOOL WINAPI InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor,
|
---|
417 | DWORD cbPrintProvidor, LPWSTR pFullRegistryPath);
|
---|
418 | BOOL WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
419 | DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify,
|
---|
420 | PVOID pvReserved0, PVOID pvReserved1);
|
---|
421 | BOOL WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
|
---|
422 |
|
---|
423 | /* Spooler */
|
---|
424 | BOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
|
---|
425 | DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent,
|
---|
426 | PVOID pPrinterNotifyOptions, PVOID pvReserved);
|
---|
427 | BOOL WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
|
---|
428 | LPDWORD pfdwChange, PVOID pvReserved0, PVOID ppPrinterNotifyInfo);
|
---|
429 | VOID WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
|
---|
430 | BOOL WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
|
---|
431 |
|
---|
432 | #ifdef __cplusplus
|
---|
433 | } /* extern "C" */
|
---|
434 | #endif
|
---|
435 |
|
---|
436 | #endif /* _WINSPLP_ */
|
---|