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

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

Version: ~ [ 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 ] ~ [ wine-1.0-rc5 ] ~ [ wine-1.0-rc4 ] ~ [ wine-1.0-rc3 ] ~ [ wine-1.0-rc2 ] ~ [ wine-1.0-rc1 ] ~ [ wine-0.9.61 ] ~ [ wine-0.9.60 ] ~ [ wine-0.9.59 ] ~ [ wine-0.9.58 ] ~ [ wine-0.9.57 ] ~ [ wine-0.9.56 ] ~ [ wine-0.9.55 ] ~ [ wine-0.9.54 ] ~ [ wine-0.9.53 ] ~ [ wine-0.9.52 ] ~ [ wine-0.9.51 ] ~ [ wine-0.9.50 ] ~ [ wine-0.9.49 ] ~ [ wine-0.9.48 ] ~ [ wine-0.9.47 ] ~ [ wine-0.9.46 ] ~ [ wine-0.9.45 ] ~ [ wine-0.9.44 ] ~ [ wine-0.9.43 ] ~ [ wine-0.9.42 ] ~ [ wine-0.9.41 ] ~ [ wine-0.9.40 ] ~ [ wine-0.9.39 ] ~ [ wine-0.9.38 ] ~ [ wine-0.9.37 ] ~ [ wine-0.9.36 ] ~ [ wine-0.9.35 ] ~ [ wine-0.9.34 ] ~ [ wine-0.9.33 ] ~ [ wine-0.9.32 ] ~ [ wine-0.9.31 ] ~ [ wine-0.9.30 ] ~ [ wine-0.9.29 ] ~ [ wine-0.9.28 ] ~ [ wine-0.9.27 ] ~ [ wine-0.9.26 ] ~ [ wine-0.9.25 ] ~ [ wine-0.9.24 ] ~ [ wine-0.9.23 ] ~ [ wine-0.9.22 ] ~ [ wine-0.9.21 ] ~ [ wine-0.9.20 ] ~ [ wine-0.9.19 ] ~ [ wine-0.9.18 ] ~ [ wine-0.9.17 ] ~ [ wine-0.9.16 ] ~ [ wine-0.9.15 ] ~ [ wine-0.9.14 ] ~ [ wine-0.9.13 ] ~ [ wine-0.9.12 ] ~ [ wine-0.9.11 ] ~ [ wine-0.9.10 ] ~ [ wine-0.9.9 ] ~ [ wine-0.9.8 ] ~ [ wine-0.9.7 ] ~ [ wine-0.9.6 ] ~ [ wine-0.9.5 ] ~ [ wine-0.9.4 ] ~ [ wine-0.9.3 ] ~ [ wine-0.9.2 ] ~ [ wine-0.9.1 ] ~ [ wine-0.9 ] ~ [ wine20050930 ] ~ [ wine20050830 ] ~ [ wine20050725 ] ~ [ wine20050628 ] ~ [ wine20050524 ] ~ [ wine20050419 ] ~ [ wine20050310 ] ~ [ wine20050211 ] ~ [ wine20050111 ] ~ [ wine20041201 ] ~ [ wine20041019 ] ~ [ wine20040914 ] ~ [ wine20040813 ] ~ [ wine20040716 ] ~ [ wine20040615 ] ~ [ wine20040505 ] ~ [ wine20040408 ] ~ [ wine20040309 ] ~ [ wine20040213 ] ~ [ wine20040121 ] ~ [ wine20031212 ] ~ [ wine20031118 ] ~ [ wine20031016 ] ~ [ wine20030911 ] ~ [ wine20030813 ] ~ [ wine20030709 ] ~ [ wine20030618 ] ~ [ wine20030508 ] ~ [ wine20030408 ] ~ [ wine20030318 ] ~ [ wine20030219 ] ~ [ wine20030115 ] ~ [ wine20021219 ] ~ [ wine20021125 ] ~ [ wine20021031 ] ~ [ wine20021007 ] ~ [ wine20020904 ] ~ [ wine20020804 ] ~ [ wine20020710 ] ~ [ wine20020605 ] ~ [ wine20020509 ] ~ [ wine20020411 ] ~ [ wine20020310 ] ~ [ wine20020228 ] ~ [ wine20011226 ] ~ [ wine20011108 ] ~ [ wine20011004 ] ~ [ wine20010824 ] ~ [ wine20010731 ] ~ [ wine20010629 ] ~ [ wine20010510 ] ~ [ wine20010418 ] ~ [ wine20010326 ] ~ [ wine20010305 ] ~ [ wine20010216 ] ~ [ wine20010112 ] ~ [ wine20001222 ] ~ [ wine20001202 ] ~ [ wine20001026 ] ~ [ wine20001002 ] ~ [ wine20000909 ] ~ [ wine20000821 ] ~ [ wine20000801 ] ~ [ wine20000716 ] ~ [ wine20000326 ] ~ [ wine20000227 ] ~ [ wine20000130 ] ~ [ wine20000109 ] ~

  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)(HANDLE hMonitor, LPWSTR pName, DWORD Level,
284                  LPBYTE lpBuffer, LPWSTR lpMonitorName);
285  BOOL   (WINAPI *fpShutDown)(LPVOID pvReserved);
286  BOOL   (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
287                  DWORD Reserved, PVOID pvReserved, PVOID pPrinterNotifyInfo);
288  BOOL   (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
289                  LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo, DWORD Level);
290  HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
291                  LPBYTE pClientInfo, DWORD ClientInfoLevel);
292  BOOL   (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
293                  LPBYTE pPortInfo);
294  DWORD  (WINAPI *fpEnumPrinterData)( HANDLE hPrinter, DWORD dwIndex,
295                  LPWSTR pValueName, DWORD cbValueName, LPDWORD pcbValueName,
296                  LPDWORD pType, LPBYTE pData, DWORD cbData, LPDWORD pcbData);
297  DWORD  (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR  pValueName);
298  DWORD  (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
299                  PHANDLE phSpooler, LPCWSTR pszName, LPCWSTR pszAddress);
300  DWORD  (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
301  DWORD  (WINAPI *fpClusterSplIsAlive)(HANDLE  hSpooler);
302  DWORD  (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
303                  LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData);
304  DWORD  (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
305                  LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize,
306                  LPDWORD pcbNeeded);
307  DWORD  (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
308                  LPBYTE pEnumValues, DWORD cbEnumValues, LPDWORD pcbEnumValues,
309                  LPDWORD pnEnumValues);
310  DWORD  (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
311                  LPWSTR pSubkey, DWORD cbSubkey, LPDWORD  pcbSubkey);
312  DWORD  (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
313                  LPCWSTR pValueName);
314  DWORD  (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
315  BOOL   (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
316                  PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite);
317  BOOL   (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
318                  LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum);
319  BOOL   (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
320                  LPCWSTR pPrinterName, LPCWSTR pPrintServer, LPCWSTR pProvider);
321  BOOL   (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
322                  LPCWSTR pPrinterName);
323  BOOL   (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
324                  LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded,
325                  LPDWORD pcReturned);
326  BOOL   (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
327                  DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
328                  PDWORD pcbOutputNeeded, PDWORD pdwStatus);
329  BOOL   (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
330                  LPBYTE pDriverInfo, DWORD  dwFileCopyFlags);
331  BOOL   (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
332  BOOL   (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
333  BOOL   (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
334                  LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess);
335  BOOL   (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
336  BOOL   (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
337  BOOL   (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
338                  LPDWORD pcWritten, DWORD cSleep);
339  DWORD  (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
340                  LPBIDI_REQUEST_CONTAINER pReqData,
341                  LPBIDI_RESPONSE_CONTAINER *ppResData);
342  BOOL   (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
343                  VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
344 } PRINTPROVIDOR, *LPPRINTPROVIDOR;
345 
346 typedef struct _SPLCLIENT_INFO_1 {
347  DWORD  dwSize;
348  LPWSTR pMachineName;
349  LPWSTR pUserName;
350  DWORD  dwBuildNum;
351  DWORD  dwMajorVersion;
352  DWORD  dwMinorVersion;
353  WORD   wProcessorArchitecture;
354 } SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
355 
356 /* DECLARATIONS */
357 
358 HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
359 BOOL   WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
360               DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
361 BOOL   WINAPI DeletePrinterIC(HANDLE hPrinterIC);
362 BOOL   WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
363 
364 /* Security and Access */
365 HANDLE WINAPI RevertToPrinterSelf(VOID);
366 BOOL   WINAPI ImpersonatePrinterClient(HANDLE  hToken);
367 BOOL   WINAPI OpenPrinterToken(PHANDLE phToken);
368 BOOL   WINAPI SetPrinterToken(HANDLE hToken);
369 BOOL   WINAPI ClosePrinterToken(HANDLE hToken);
370 
371 /* Notification */
372 BOOL   WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
373               PDWORD pdwResult, PVOID pPrinterNotifyInfo);
374 BOOL   WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
375               PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
376 PPRINTER_NOTIFY_INFO RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
377 BOOL   WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
378 BOOL   WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
379               PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, DWORD fdwFlags);
380 DWORD  WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
381               DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify, PVOID pvReserved);
382 
383 /* Port monitor / Language monitor / Print monitor */
384 LPMONITOR2  WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
385                    PHANDLE phMonitor);
386 PMONITORUI  WINAPI InitializePrintMonitorUI(VOID);
387 LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
388 BOOL        WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
389 BOOL        WINAPI InitializeMonitor(LPWSTR pRegistryRoot);
390 
391 BOOL  WINAPI OpenPort(LPWSTR pName, PHANDLE pHandle);
392 BOOL  WINAPI WritePort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
393              LPDWORD pcbWritten);
394 BOOL  WINAPI ReadPort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
395              LPDWORD pcbRead);
396 BOOL  WINAPI ClosePort(HANDLE hPort);
397 
398 /* Print processor */
399 HANDLE WINAPI OpenPrintProcessor(LPWSTR pPrinterName,
400               PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
401 BOOL   WINAPI PrintDocumentOnPrintProcessor(HANDLE hPrintProcessor,
402               LPWSTR pDocumentName);
403 BOOL   WINAPI ClosePrintProcessor(HANDLE hPrintProcessor);
404 BOOL   WINAPI ControlPrintProcessor(HANDLE hPrintProcessor, DWORD Command);
405 BOOL   WINAPI InstallPrintProcessor(HWND hWnd);
406 
407 /* Print provider */
408 BOOL   WINAPI InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor,
409               DWORD cbPrintProvidor, LPWSTR pFullRegistryPath);
410 BOOL   WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
411               DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify,
412               PVOID pvReserved0, PVOID pvReserved1);
413 BOOL   WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
414 
415 /* Spooler */
416 BOOL   WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
417               DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent,
418               PVOID pPrinterNotifyOptions, PVOID pvReserved);
419 BOOL   WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
420               LPDWORD pfdwChange, PVOID pvReserved0, PVOID ppPrinterNotifyInfo);
421 VOID   WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
422 BOOL   WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
423 
424 #ifdef __cplusplus
425 } /* extern "C" */
426 #endif
427 
428 #endif  /* _WINSPLP_ */
429 

~ [ 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.