~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/ddk/winsplp.h

Version: ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.