|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1990 Microsoft Corporation
4:
5: Module Name:
6:
7: WinSplp.h
8:
9: Abstract:
10:
11: Internal Header file for Print APIs
12:
13: Author:
14:
15: Dave Snipp (DaveSn) 15-Mar-1991
16:
17: Revision History:
18:
19: --*/
20:
21: #ifndef _WINSPLP_
22: #define _WINSPLP_
23:
24: typedef struct _PRINTPROVIDOR {
25:
26: BOOL (*fpOpenPrinter)(LPWSTR pPrinterName,
27: LPHANDLE phPrinter,
28: LPPRINTER_DEFAULTS pDefault);
29:
30: BOOL (*fpSetJob)(HANDLE hPrinter,
31: DWORD JobId,
32: DWORD Level,
33: LPBYTE pJob,
34: DWORD Command);
35:
36: BOOL (*fpGetJob)(HANDLE hPrinter,
37: DWORD JobId,
38: DWORD Level,
39: LPBYTE pJob,
40: DWORD cbBuf,
41: LPDWORD pcbNeeded);
42:
43: BOOL (*fpEnumJobs)(HANDLE hPrinter,
44: DWORD FirstJob,
45: DWORD NoJobs,
46: DWORD Level,
47: LPBYTE pJob,
48: DWORD cbBuf,
49: LPDWORD pcbNeeded,
50: LPDWORD pcReturned);
51:
52: HANDLE (*fpAddPrinter)(LPWSTR pName,
53: DWORD Level,
54: LPBYTE pPrinter);
55:
56: BOOL (*fpDeletePrinter)(HANDLE hPrinter);
57:
58: BOOL (*fpSetPrinter)(HANDLE hPrinter,
59: DWORD Level,
60: LPBYTE pPrinter,
61: DWORD Command);
62:
63: BOOL (*fpGetPrinter)(HANDLE hPrinter,
64: DWORD Level,
65: LPBYTE pPrinter,
66: DWORD cbBuf,
67: LPDWORD pcbNeeded);
68:
69: BOOL (*fpEnumPrinters)(DWORD Flags,
70: LPWSTR Name,
71: DWORD Level,
72: LPBYTE pPrinterEnum,
73: DWORD cbBuf,
74: LPDWORD pcbNeeded,
75: LPDWORD pcReturned);
76:
77: BOOL (*fpAddPrinterDriver)(LPWSTR pName,
78: DWORD Level,
79: LPBYTE pDriverInfo);
80:
81: BOOL (*fpEnumPrinterDrivers)(LPWSTR pName,
82: LPWSTR pEnvironment,
83: DWORD Level,
84: LPBYTE pDriverInfo,
85: DWORD cbBuf,
86: LPDWORD pcbNeeded,
87: LPDWORD pcReturned);
88:
89: BOOL (*fpGetPrinterDriver)(HANDLE hPrinter,
90: LPWSTR pEnvironment,
91: DWORD Level,
92: LPBYTE pDriverInfo,
93: DWORD cbBuf,
94: LPDWORD pcbNeeded);
95:
96: BOOL (*fpGetPrinterDriverDirectory)(LPWSTR pName,
97: LPWSTR pEnvironment,
98: DWORD Level,
99: LPBYTE pDriverDirectory,
100: DWORD cbBuf,
101: LPDWORD pcbNeeded);
102:
103: BOOL (*fpDeletePrinterDriver)(LPWSTR pName,
104: LPWSTR pEnvironment,
105: LPWSTR pDriverName);
106:
107: BOOL (*fpAddPrintProcessor)(LPWSTR pName,
108: LPWSTR pEnvironment,
109: LPWSTR pPathName,
110: LPWSTR pPrintProcessorName);
111:
112: BOOL (*fpEnumPrintProcessors)(LPWSTR pName,
113: LPWSTR pEnvironment,
114: DWORD Level,
115: LPBYTE pPrintProcessorInfo,
116: DWORD cbBuf,
117: LPDWORD pcbNeeded,
118: LPDWORD pcReturned);
119:
120: BOOL (*fpGetPrintProcessorDirectory)(LPWSTR pName,
121: LPWSTR pEnvironment,
122: DWORD Level,
123: LPBYTE pPrintProcessorInfo,
124: DWORD cbBuf,
125: LPDWORD pcbNeeded);
126:
127: BOOL (*fpDeletePrintProcessor)(LPWSTR pName,
128: LPWSTR pEnvironment,
129: LPWSTR pPrintProcessorName);
130:
131: BOOL (*fpEnumPrintProcessorDatatypes)(LPWSTR pName,
132: LPWSTR pPrintProcessorName,
133: DWORD Level,
134: LPBYTE pDataypes,
135: DWORD cbBuf,
136: LPDWORD pcbNeeded,
137: LPDWORD pcReturned);
138:
139: DWORD (*fpStartDocPrinter)(HANDLE hPrinter,
140: DWORD Level,
141: LPBYTE pDocInfo);
142:
143: BOOL (*fpStartPagePrinter)(HANDLE hPrinter);
144:
145: BOOL (*fpWritePrinter)(HANDLE hPrinter,
146: LPVOID pBuf,
147: DWORD cbBuf,
148: LPDWORD pcWritten);
149:
150: BOOL (*fpEndPagePrinter)(HANDLE hPrinter);
151:
152: BOOL (*fpAbortPrinter)(HANDLE hPrinter);
153:
154: BOOL (*fpReadPrinter)(HANDLE hPrinter,
155: LPVOID pBuf,
156: DWORD cbBuf,
157: LPDWORD pNoBytesRead);
158:
159: BOOL (*fpEndDocPrinter)(HANDLE hPrinter);
160:
161: BOOL (*fpAddJob)(HANDLE hPrinter,
162: DWORD Level,
163: LPBYTE pData,
164: DWORD cbBuf,
165: LPDWORD pcbNeeded);
166:
167: BOOL (*fpScheduleJob)(HANDLE hPrinter,
168: DWORD JobId);
169:
170: DWORD (*fpGetPrinterData)(HANDLE hPrinter,
171: LPWSTR pValueName,
172: LPDWORD pType,
173: LPBYTE pData,
174: DWORD nSize,
175: LPDWORD pcbNeeded);
176:
177: DWORD (*fpSetPrinterData)(HANDLE hPrinter,
178: LPWSTR pValueName,
179: DWORD Type,
180: LPBYTE pData,
181: DWORD cbData);
182:
183: DWORD (*fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
184:
185: BOOL (*fpClosePrinter)(HANDLE hPrinter);
186:
187: BOOL (*fpAddForm)(HANDLE hPrinter,
188: DWORD Level,
189: LPBYTE pForm);
190:
191: BOOL (*fpDeleteForm)(HANDLE hPrinter,
192: LPWSTR pFormName);
193:
194: BOOL (*fpGetForm)(HANDLE hPrinter,
195: LPWSTR pFormName,
196: DWORD Level,
197: LPBYTE pForm,
198: DWORD cbBuf,
199: LPDWORD pcbNeeded);
200:
201: BOOL (*fpSetForm)(HANDLE hPrinter,
202: LPWSTR pFormName,
203: DWORD Level,
204: LPBYTE pForm);
205:
206: BOOL (*fpEnumForms)(HANDLE hPrinter,
207: DWORD Level,
208: LPBYTE pForm,
209: DWORD cbBuf,
210: LPDWORD pcbNeeded,
211: LPDWORD pcReturned);
212:
213: BOOL (*fpEnumMonitors)(LPWSTR pName,
214: DWORD Level,
215: LPBYTE pMonitors,
216: DWORD cbBuf,
217: LPDWORD pcbNeeded,
218: LPDWORD pcReturned);
219:
220: BOOL (*fpEnumPorts)(LPWSTR pName,
221: DWORD Level,
222: LPBYTE pPorts,
223: DWORD cbBuf,
224: LPDWORD pcbNeeded,
225: LPDWORD pcReturned);
226:
227: BOOL (*fpAddPort)(LPWSTR pName,
228: HWND hWnd,
229: LPWSTR pMonitorName);
230:
231: BOOL (*fpConfigurePort)(LPWSTR pName,
232: HWND hWnd,
233: LPWSTR pPortName);
234:
235: BOOL (*fpDeletePort)(LPWSTR pName,
236: HWND hWnd,
237: LPWSTR pPortName);
238:
239: HANDLE (*fpCreatePrinterIC)(HANDLE hPrinter,
240: LPDEVMODEW pDevMode);
241:
242: BOOL (*fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC,
243: LPBYTE pIn,
244: DWORD cIn,
245: LPBYTE pOut,
246: DWORD cOut,
247: DWORD ul);
248:
249: BOOL (*fpDeletePrinterIC)(HANDLE hPrinterIC);
250:
251: BOOL (*fpAddPrinterConnection)(LPWSTR pName);
252:
253: BOOL (*fpDeletePrinterConnection)(LPWSTR pName);
254:
255: DWORD (*fpPrinterMessageBox)(HANDLE hPrinter,
256: DWORD Error,
257: HWND hWnd,
258: LPWSTR pText,
259: LPWSTR pCaption,
260: DWORD dwType);
261:
262: BOOL (*fpAddMonitor)(LPWSTR pName,
263: DWORD Level,
264: LPBYTE pMonitorInfo);
265:
266: BOOL (*fpDeleteMonitor)(LPWSTR pName,
267: LPWSTR pEnvironment,
268: LPWSTR pMonitorName);
269:
270: BOOL (*fpResetPrinter)(HANDLE hPrinter,
271: LPPRINTER_DEFAULTS pDefault);
272:
273: } PRINTPROVIDOR, *LPPRINTPROVIDOR;
274:
275: BOOL
276: InitializePrintProvidor(
277: LPPRINTPROVIDOR pPrintProvidor,
278: DWORD cbPrintProvidor,
279: LPWSTR pFullRegistryPath
280: );
281:
282: typedef struct _PRINTPROCESSOROPENDATA {
283: PDEVMODE pDevMode;
284: LPWSTR pDatatype;
285: LPWSTR pParameters;
286: LPWSTR pDocumentName;
287: DWORD JobId;
288: } PRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA;
289:
290: HANDLE
291: OpenPrintProcessor(
292: LPWSTR pPrinterName,
293: PPRINTPROCESSOROPENDATA pPrintProcessorOpenData
294: );
295:
296: BOOL
297: PrintDocumentOnPrintProcessor(
298: HANDLE hPrintProcessor,
299: LPWSTR pDocumentName
300: );
301:
302: BOOL
303: ClosePrintProcessor(
304: HANDLE hPrintProcessor
305: );
306:
307: BOOL
308: ControlPrintProcessor(
309: HANDLE hPrintProcessor,
310: DWORD Command
311: );
312:
313: BOOL
314: InstallPrintProcessor(
315: HWND hWnd
316: );
317:
318:
319: BOOL
320: InitializeMonitor(
321: LPWSTR pRegistryRoot
322: );
323:
324: BOOL
325: OpenPort(
326: LPWSTR pName,
327: PHANDLE pHandle
328: );
329:
330: BOOL
331: WritePort(
332: HANDLE hPort,
333: LPBYTE pBuffer,
334: DWORD cbBuf,
335: LPDWORD pcbWritten
336: );
337:
338: BOOL
339: ReadPort(
340: HANDLE hPort,
341: LPBYTE pBuffer,
342: DWORD cbBuffer,
343: LPDWORD pcbRead
344: );
345:
346: BOOL
347: ClosePort(
348: HANDLE hPort
349: );
350:
351: HANDLE
352: CreatePrinterIC(
353: HANDLE hPrinter,
354: LPDEVMODEW pDevMode
355: );
356:
357: BOOL
358: PlayGdiScriptOnPrinterIC(
359: HANDLE hPrinterIC,
360: LPBYTE pIn,
361: DWORD cIn,
362: LPBYTE pOut,
363: DWORD cOut,
364: DWORD ul
365: );
366:
367: BOOL
368: DeletePrinterIC(
369: HANDLE hPrinterIC
370: );
371:
372: BOOL
373: DevQueryPrint(
374: HANDLE hPrinter,
375: LPDEVMODE pDevMode,
376: DWORD *pResID
377: );
378:
379: HANDLE
380: RevertToPrinterSelf(
381: VOID
382: );
383:
384: BOOL
385: ImpersonatePrinterClient(
386: HANDLE hToken
387: );
388:
389: BOOL
390: OpenPrinterToken(
391: PHANDLE phToken
392: );
393:
394: BOOL
395: SetPrinterToken(
396: HANDLE hToken
397: );
398:
399: BOOL
400: ClosePrinterToken(
401: HANDLE hToken
402: );
403:
404: #endif // _WINSPLP_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.