VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/ddk/winsplp.h@ 33656

Last change on this file since 33656 was 33656, checked in by vboxsync, 14 years ago

*: rebrand Sun (L)GPL disclaimers

  • Property svn:eol-style set to native
File size: 22.1 KB
Line 
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
38extern "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
59typedef 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
90typedef 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
128typedef struct _MONITOREX {
129 DWORD dwMonitorSize;
130 MONITOR Monitor;
131} MONITOREX, *LPMONITOREX;
132
133typedef 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
158typedef struct _MONITORINIT {
159 DWORD cbSize;
160 HANDLE hSpooler;
161 HANDLE hckRegistryRoot;
162 PMONITORREG pMonitorReg;
163 BOOL bLocal;
164} MONITORINIT, *PMONITORINIT;
165
166typedef 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
174typedef struct _PRINTER_NOTIFY_INIT {
175 DWORD Size;
176 DWORD Reserved;
177 DWORD PollTime;
178} PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
179
180typedef 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
195typedef 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
354typedef 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
366HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
367BOOL WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
368 DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
369BOOL WINAPI DeletePrinterIC(HANDLE hPrinterIC);
370BOOL WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
371
372/* Security and Access */
373HANDLE WINAPI RevertToPrinterSelf(VOID);
374BOOL WINAPI ImpersonatePrinterClient(HANDLE hToken);
375BOOL WINAPI OpenPrinterToken(PHANDLE phToken);
376BOOL WINAPI SetPrinterToken(HANDLE hToken);
377BOOL WINAPI ClosePrinterToken(HANDLE hToken);
378
379/* Notification */
380BOOL WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
381 PDWORD pdwResult, PVOID pPrinterNotifyInfo);
382BOOL WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
383 PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
384PPRINTER_NOTIFY_INFO RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
385BOOL WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
386BOOL WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
387 PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, DWORD fdwFlags);
388DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
389 DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify, PVOID pvReserved);
390
391/* Port monitor / Language monitor / Print monitor */
392LPMONITOR2 WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
393 PHANDLE phMonitor);
394PMONITORUI WINAPI InitializePrintMonitorUI(VOID);
395LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
396BOOL WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
397BOOL WINAPI InitializeMonitor(LPWSTR pRegistryRoot);
398
399BOOL WINAPI OpenPort(LPWSTR pName, PHANDLE pHandle);
400BOOL WINAPI WritePort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
401 LPDWORD pcbWritten);
402BOOL WINAPI ReadPort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
403 LPDWORD pcbRead);
404BOOL WINAPI ClosePort(HANDLE hPort);
405
406/* Print processor */
407HANDLE WINAPI OpenPrintProcessor(LPWSTR pPrinterName,
408 PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
409BOOL WINAPI PrintDocumentOnPrintProcessor(HANDLE hPrintProcessor,
410 LPWSTR pDocumentName);
411BOOL WINAPI ClosePrintProcessor(HANDLE hPrintProcessor);
412BOOL WINAPI ControlPrintProcessor(HANDLE hPrintProcessor, DWORD Command);
413BOOL WINAPI InstallPrintProcessor(HWND hWnd);
414
415/* Print provider */
416BOOL WINAPI InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor,
417 DWORD cbPrintProvidor, LPWSTR pFullRegistryPath);
418BOOL WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
419 DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify,
420 PVOID pvReserved0, PVOID pvReserved1);
421BOOL WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
422
423/* Spooler */
424BOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
425 DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent,
426 PVOID pPrinterNotifyOptions, PVOID pvReserved);
427BOOL WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
428 LPDWORD pfdwChange, PVOID pvReserved0, PVOID ppPrinterNotifyInfo);
429VOID WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
430BOOL WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
431
432#ifdef __cplusplus
433} /* extern "C" */
434#endif
435
436#endif /* _WINSPLP_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette