[DDK]
[reactos.git] / include / psdk / winspool.h
1 #ifndef _WINSPOOL_H
2 #define _WINSPOOL_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 #ifdef _MSC_VER
8 #pragma warning(push)
9 #pragma warning(disable:4820)
10 #endif
11 #define DI_CHANNEL 1
12 #define DI_CHANNEL_WRITE 2
13 #define DI_READ_SPOOL_JOB 3
14 #define FORM_BUILTIN 1
15 #define JOB_CONTROL_PAUSE 1
16 #define JOB_CONTROL_RESUME 2
17 #define JOB_CONTROL_CANCEL 3
18 #define JOB_CONTROL_RESTART 4
19 #define JOB_CONTROL_DELETE 5
20 #define JOB_STATUS_PAUSED 1
21 #define JOB_STATUS_ERROR 2
22 #define JOB_STATUS_DELETING 4
23 #define JOB_STATUS_SPOOLING 8
24 #define JOB_STATUS_PRINTING 16
25 #define JOB_STATUS_OFFLINE 32
26 #define JOB_STATUS_PAPEROUT 0x40
27 #define JOB_STATUS_PRINTED 0x80
28 #define JOB_STATUS_DELETED 0x100
29 #define JOB_STATUS_BLOCKED_DEVQ 0x200
30 #define JOB_STATUS_USER_INTERVENTION 0x400
31 #define JOB_POSITION_UNSPECIFIED 0
32 #define JOB_NOTIFY_TYPE 1
33 #define JOB_NOTIFY_FIELD_PRINTER_NAME 0
34 #define JOB_NOTIFY_FIELD_MACHINE_NAME 1
35 #define JOB_NOTIFY_FIELD_PORT_NAME 2
36 #define JOB_NOTIFY_FIELD_USER_NAME 3
37 #define JOB_NOTIFY_FIELD_NOTIFY_NAME 4
38 #define JOB_NOTIFY_FIELD_DATATYPE 5
39 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 6
40 #define JOB_NOTIFY_FIELD_PARAMETERS 7
41 #define JOB_NOTIFY_FIELD_DRIVER_NAME 8
42 #define JOB_NOTIFY_FIELD_DEVMODE 9
43 #define JOB_NOTIFY_FIELD_STATUS 10
44 #define JOB_NOTIFY_FIELD_STATUS_STRING 11
45 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 12
46 #define JOB_NOTIFY_FIELD_DOCUMENT 13
47 #define JOB_NOTIFY_FIELD_PRIORITY 14
48 #define JOB_NOTIFY_FIELD_POSITION 15
49 #define JOB_NOTIFY_FIELD_SUBMITTED 16
50 #define JOB_NOTIFY_FIELD_START_TIME 17
51 #define JOB_NOTIFY_FIELD_UNTIL_TIME 18
52 #define JOB_NOTIFY_FIELD_TIME 19
53 #define JOB_NOTIFY_FIELD_TOTAL_PAGES 20
54 #define JOB_NOTIFY_FIELD_PAGES_PRINTED 21
55 #define JOB_NOTIFY_FIELD_TOTAL_BYTES 22
56 #define JOB_NOTIFY_FIELD_BYTES_PRINTED 23
57 #define JOB_ACCESS_ADMINISTER 16
58 #define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|JOB_ACCESS_ADMINISTER)
59 #define JOB_READ (STANDARD_RIGHTS_READ| JOB_ACCESS_ADMINISTER)
60 #define JOB_WRITE (STANDARD_RIGHTS_WRITE|JOB_ACCESS_ADMINISTER)
61 #define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE|JOB_ACCESS_ADMINISTER)
62 #define PRINTER_NOTIFY_OPTIONS_REFRESH 1
63 #define PRINTER_ACCESS_ADMINISTER 4
64 #define PRINTER_ACCESS_USE 8
65 #define PRINTER_ERROR_INFORMATION 0x80000000
66 #define PRINTER_ERROR_WARNING 0x40000000
67 #define PRINTER_ERROR_SEVERE 0x20000000
68 #define PRINTER_ERROR_OUTOFPAPER 1
69 #define PRINTER_ERROR_JAM 2
70 #define PRINTER_ERROR_OUTOFTONER 4
71 #define PRINTER_CONTROL_PAUSE 1
72 #define PRINTER_CONTROL_RESUME 2
73 #define PRINTER_CONTROL_PURGE 3
74 #define PRINTER_CONTROL_SET_STATUS 4
75 #define PRINTER_STATUS_PAUSED 1
76 #define PRINTER_STATUS_ERROR 2
77 #define PRINTER_STATUS_PENDING_DELETION 4
78 #define PRINTER_STATUS_PAPER_JAM 8
79 #define PRINTER_STATUS_PAPER_OUT 0x10
80 #define PRINTER_STATUS_MANUAL_FEED 0x20
81 #define PRINTER_STATUS_PAPER_PROBLEM 0x40
82 #define PRINTER_STATUS_OFFLINE 0x80
83 #define PRINTER_STATUS_IO_ACTIVE 0x100
84 #define PRINTER_STATUS_BUSY 0x200
85 #define PRINTER_STATUS_PRINTING 0x400
86 #define PRINTER_STATUS_OUTPUT_BIN_FULL 0x800
87 #define PRINTER_STATUS_NOT_AVAILABLE 0x1000
88 #define PRINTER_STATUS_WAITING 0x2000
89 #define PRINTER_STATUS_PROCESSING 0x4000
90 #define PRINTER_STATUS_INITIALIZING 0x8000
91 #define PRINTER_STATUS_WARMING_UP 0x10000
92 #define PRINTER_STATUS_TONER_LOW 0x20000
93 #define PRINTER_STATUS_NO_TONER 0x40000
94 #define PRINTER_STATUS_PAGE_PUNT 0x80000
95 #define PRINTER_STATUS_USER_INTERVENTION 0x100000
96 #define PRINTER_STATUS_OUT_OF_MEMORY 0x200000
97 #define PRINTER_STATUS_DOOR_OPEN 0x400000
98 #define PRINTER_STATUS_SERVER_UNKNOWN 0x800000
99 #define PRINTER_STATUS_POWER_SAVE 0x1000000
100 #define PRINTER_ATTRIBUTE_QUEUED 1
101 #define PRINTER_ATTRIBUTE_DIRECT 2
102 #define PRINTER_ATTRIBUTE_DEFAULT 4
103 #define PRINTER_ATTRIBUTE_SHARED 8
104 #define PRINTER_ATTRIBUTE_NETWORK 0x10
105 #define PRINTER_ATTRIBUTE_HIDDEN 0x20
106 #define PRINTER_ATTRIBUTE_LOCAL 0x40
107 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x80
108 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x100
109 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x200
110 #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x400
111 #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x800
112 #define PRINTER_ATTRIBUTE_RAW_ONLY 0x1000
113 #define PRINTER_ATTRIBUTE_PUBLISHED 0x2000
114 #define PRINTER_ENUM_DEFAULT 1
115 #define PRINTER_ENUM_LOCAL 2
116 #define PRINTER_ENUM_CONNECTIONS 4
117 #define PRINTER_ENUM_FAVORITE 4
118 #define PRINTER_ENUM_NAME 8
119 #define PRINTER_ENUM_REMOTE 16
120 #define PRINTER_ENUM_SHARED 32
121 #define PRINTER_ENUM_NETWORK 0x40
122 #define PRINTER_ENUM_EXPAND 0x4000
123 #define PRINTER_ENUM_CONTAINER 0x8000
124 #define PRINTER_ENUM_ICONMASK 0xff0000
125 #define PRINTER_ENUM_ICON1 0x10000
126 #define PRINTER_ENUM_ICON2 0x20000
127 #define PRINTER_ENUM_ICON3 0x40000
128 #define PRINTER_ENUM_ICON4 0x80000
129 #define PRINTER_ENUM_ICON5 0x100000
130 #define PRINTER_ENUM_ICON6 0x200000
131 #define PRINTER_ENUM_ICON7 0x400000
132 #define PRINTER_ENUM_ICON8 0x800000
133 #define PRINTER_NOTIFY_TYPE 0
134 #define PRINTER_NOTIFY_FIELD_SERVER_NAME 0
135 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME 1
136 #define PRINTER_NOTIFY_FIELD_SHARE_NAME 2
137 #define PRINTER_NOTIFY_FIELD_PORT_NAME 3
138 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME 4
139 #define PRINTER_NOTIFY_FIELD_COMMENT 5
140 #define PRINTER_NOTIFY_FIELD_LOCATION 6
141 #define PRINTER_NOTIFY_FIELD_DEVMODE 7
142 #define PRINTER_NOTIFY_FIELD_SEPFILE 8
143 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 9
144 #define PRINTER_NOTIFY_FIELD_PARAMETERS 10
145 #define PRINTER_NOTIFY_FIELD_DATATYPE 11
146 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 12
147 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES 13
148 #define PRINTER_NOTIFY_FIELD_PRIORITY 14
149 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 15
150 #define PRINTER_NOTIFY_FIELD_START_TIME 16
151 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME 17
152 #define PRINTER_NOTIFY_FIELD_STATUS 18
153 #define PRINTER_NOTIFY_FIELD_STATUS_STRING 19
154 #define PRINTER_NOTIFY_FIELD_CJOBS 20
155 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 21
156 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 22
157 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 23
158 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 24
159 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 25
160 #define PRINTER_CHANGE_ADD_PRINTER 1
161 #define PRINTER_CHANGE_SET_PRINTER 2
162 #define PRINTER_CHANGE_DELETE_PRINTER 4
163 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 8
164 #define PRINTER_CHANGE_PRINTER 0xFF
165 #define PRINTER_CHANGE_ADD_JOB 0x100
166 #define PRINTER_CHANGE_SET_JOB 0x200
167 #define PRINTER_CHANGE_DELETE_JOB 0x400
168 #define PRINTER_CHANGE_WRITE_JOB 0x800
169 #define PRINTER_CHANGE_JOB 0xFF00
170 #define PRINTER_CHANGE_ADD_FORM 0x10000
171 #define PRINTER_CHANGE_SET_FORM 0x20000
172 #define PRINTER_CHANGE_DELETE_FORM 0x40000
173 #define PRINTER_CHANGE_FORM 0x70000
174 #define PRINTER_CHANGE_ADD_PORT 0x100000
175 #define PRINTER_CHANGE_CONFIGURE_PORT 0x200000
176 #define PRINTER_CHANGE_DELETE_PORT 0x400000
177 #define PRINTER_CHANGE_PORT 0x700000
178 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x1000000
179 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x4000000
180 #define PRINTER_CHANGE_PRINT_PROCESSOR 0x7000000
181 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000
182 #define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000
183 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000
184 #define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000
185 #define PRINTER_CHANGE_TIMEOUT 0x80000000
186 #define PRINTER_CHANGE_ALL 0x7777FFFF
187 #define PRINTER_NOTIFY_INFO_DISCARDED 1
188 #define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE)
189 #define PRINTER_READ (STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE)
190 #define PRINTER_WRITE (STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE)
191 #define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE)
192 #define NO_PRIORITY 0
193 #define MAX_PRIORITY 99
194 #define MIN_PRIORITY 1
195 #define DEF_PRIORITY 1
196 #define PORT_TYPE_WRITE 1
197 #define PORT_TYPE_READ 2
198 #define PORT_TYPE_REDIRECTED 4
199 #define PORT_TYPE_NET_ATTACHED 8
200 #define SERVER_ACCESS_ADMINISTER 1
201 #define SERVER_ACCESS_ENUMERATE 2
202 #define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
203 #define SERVER_READ (STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE)
204 #define SERVER_WRITE (STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
205 #define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE)
206 #define PORT_STATUS_TYPE_ERROR 1
207 #define PORT_STATUS_TYPE_WARNING 2
208 #define PORT_STATUS_TYPE_INFO 3
209 #define PORT_STATUS_OFFLINE 1
210 #define PORT_STATUS_PAPER_JAM 2
211 #define PORT_STATUS_PAPER_OUT 3
212 #define PORT_STATUS_OUTPUT_BIN_FULL 4
213 #define PORT_STATUS_PAPER_PROBLEM 5
214 #define PORT_STATUS_NO_TONER 6
215 #define PORT_STATUS_DOOR_OPEN 7
216 #define PORT_STATUS_USER_INTERVENTION 8
217 #define PORT_STATUS_OUT_OF_MEMORY 9
218 #define PORT_STATUS_TONER_LOW 10
219 #define PORT_STATUS_WARMING_UP 11
220 #define PORT_STATUS_POWER_SAVE 12
221 #ifndef RC_INVOKED
222 typedef struct _ADDJOB_INFO_1A {
223 LPSTR Path;
224 DWORD JobId;
225 } ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A;
226 typedef struct _ADDJOB_INFO_1W {
227 LPWSTR Path;
228 DWORD JobId;
229 } ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W;
230 typedef struct _DATATYPES_INFO_1A{LPSTR pName;} DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A;
231 typedef struct _DATATYPES_INFO_1W{LPWSTR pName;} DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W;
232 typedef struct _JOB_INFO_1A {
233 DWORD JobId;
234 LPSTR pPrinterName;
235 LPSTR pMachineName;
236 LPSTR pUserName;
237 LPSTR pDocument;
238 LPSTR pDatatype;
239 LPSTR pStatus;
240 DWORD Status;
241 DWORD Priority;
242 DWORD Position;
243 DWORD TotalPages;
244 DWORD PagesPrinted;
245 SYSTEMTIME Submitted;
246 } JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A;
247 typedef struct _JOB_INFO_1W {
248 DWORD JobId;
249 LPWSTR pPrinterName;
250 LPWSTR pMachineName;
251 LPWSTR pUserName;
252 LPWSTR pDocument;
253 LPWSTR pDatatype;
254 LPWSTR pStatus;
255 DWORD Status;
256 DWORD Priority;
257 DWORD Position;
258 DWORD TotalPages;
259 DWORD PagesPrinted;
260 SYSTEMTIME Submitted;
261 } JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W;
262 typedef struct _JOB_INFO_2A {
263 DWORD JobId;
264 LPSTR pPrinterName;
265 LPSTR pMachineName;
266 LPSTR pUserName;
267 LPSTR pDocument;
268 LPSTR pNotifyName;
269 LPSTR pDatatype;
270 LPSTR pPrintProcessor;
271 LPSTR pParameters;
272 LPSTR pDriverName;
273 LPDEVMODEA pDevMode;
274 LPSTR pStatus;
275 PSECURITY_DESCRIPTOR pSecurityDescriptor;
276 DWORD Status;
277 DWORD Priority;
278 DWORD Position;
279 DWORD StartTime;
280 DWORD UntilTime;
281 DWORD TotalPages;
282 DWORD Size;
283 SYSTEMTIME Submitted;
284 DWORD Time;
285 DWORD PagesPrinted;
286 } JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A;
287 typedef struct _JOB_INFO_2W {
288 DWORD JobId;
289 LPWSTR pPrinterName;
290 LPWSTR pMachineName;
291 LPWSTR pUserName;
292 LPWSTR pDocument;
293 LPWSTR pNotifyName;
294 LPWSTR pDatatype;
295 LPWSTR pPrintProcessor;
296 LPWSTR pParameters;
297 LPWSTR pDriverName;
298 LPDEVMODEW pDevMode;
299 LPWSTR pStatus;
300 PSECURITY_DESCRIPTOR pSecurityDescriptor;
301 DWORD Status;
302 DWORD Priority;
303 DWORD Position;
304 DWORD StartTime;
305 DWORD UntilTime;
306 DWORD TotalPages;
307 DWORD Size;
308 SYSTEMTIME Submitted;
309 DWORD Time;
310 DWORD PagesPrinted;
311 } JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W;
312 typedef struct _DOC_INFO_1A {
313 LPSTR pDocName;
314 LPSTR pOutputFile;
315 LPSTR pDatatype;
316 } DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A;
317 typedef struct _DOC_INFO_1W {
318 LPWSTR pDocName;
319 LPWSTR pOutputFile;
320 LPWSTR pDatatype;
321 } DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W;
322 typedef struct _DOC_INFO_2A {
323 LPSTR pDocName;
324 LPSTR pOutputFile;
325 LPSTR pDatatype;
326 DWORD dwMode;
327 DWORD JobId;
328 } DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A;
329 typedef struct _DOC_INFO_2W {
330 LPWSTR pDocName;
331 LPWSTR pOutputFile;
332 LPWSTR pDatatype;
333 DWORD dwMode;
334 DWORD JobId;
335 } DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W;
336 typedef struct _DRIVER_INFO_1A {LPSTR pName;} DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A;
337 typedef struct _DRIVER_INFO_1W {LPWSTR pName;} DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W;
338 typedef struct _DRIVER_INFO_2A {
339 DWORD cVersion;
340 LPSTR pName;
341 LPSTR pEnvironment;
342 LPSTR pDriverPath;
343 LPSTR pDataFile;
344 LPSTR pConfigFile;
345 } DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A;
346 typedef struct _DRIVER_INFO_2W {
347 DWORD cVersion;
348 LPWSTR pName;
349 LPWSTR pEnvironment;
350 LPWSTR pDriverPath;
351 LPWSTR pDataFile;
352 LPWSTR pConfigFile;
353 } DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W;
354 typedef struct _DRIVER_INFO_3A {
355 DWORD cVersion;
356 LPSTR pName;
357 LPSTR pEnvironment;
358 LPSTR pDriverPath;
359 LPSTR pDataFile;
360 LPSTR pConfigFile;
361 LPSTR pHelpFile;
362 LPSTR pDependentFiles;
363 LPSTR pMonitorName;
364 LPSTR pDefaultDataType;
365 } DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A;
366 typedef struct _DRIVER_INFO_3W {
367 DWORD cVersion;
368 LPWSTR pName;
369 LPWSTR pEnvironment;
370 LPWSTR pDriverPath;
371 LPWSTR pDataFile;
372 LPWSTR pConfigFile;
373 LPWSTR pHelpFile;
374 LPWSTR pDependentFiles;
375 LPWSTR pMonitorName;
376 LPWSTR pDefaultDataType;
377 } DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W;
378 typedef struct _DRIVER_INFO_4A {
379 DWORD cVersion; // SDK examples:
380 LPSTR pName; // QMS 810
381 LPSTR pEnvironment; // Win32 x86
382 LPSTR pDriverPath; // c:\drivers\pscript.dll
383 LPSTR pDataFile; // c:\drivers\QMS810.PPD
384 LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL
385 LPSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP
386 LPSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0
387 LPSTR pMonitorName; // "PJL monitor"
388 LPSTR pDefaultDataType; // "EMF"
389 LPSTR pszzPreviousNames; // "OldName1\0OldName2\0\0
390 } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A;
391 typedef struct _DRIVER_INFO_4W {
392 DWORD cVersion;
393 LPWSTR pName;
394 LPWSTR pEnvironment;
395 LPWSTR pDriverPath;
396 LPWSTR pDataFile;
397 LPWSTR pConfigFile;
398 LPWSTR pHelpFile;
399 LPWSTR pDependentFiles;
400 LPWSTR pMonitorName;
401 LPWSTR pDefaultDataType;
402 LPWSTR pszzPreviousNames;
403 } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W;
404 typedef struct _DRIVER_INFO_5A {
405 DWORD cVersion; // SDK examples:
406 LPSTR pName; // QMS 810
407 LPSTR pEnvironment; // Win32 x86
408 LPSTR pDriverPath; // c:\drivers\pscript.dll
409 LPSTR pDataFile; // c:\drivers\QMS810.PPD
410 LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL
411 DWORD dwDriverAttributes; // driver attributes (like UMPD/KMPD)
412 DWORD dwConfigVersion; // version number of the config file since reboot
413 DWORD dwDriverVersion; // version number of the driver file since reboot
414 } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A;
415 typedef struct _DRIVER_INFO_5W {
416 DWORD cVersion;
417 LPWSTR pName;
418 LPWSTR pEnvironment;
419 LPWSTR pDriverPath;
420 LPWSTR pDataFile;
421 LPWSTR pConfigFile;
422 DWORD dwDriverAttributes;
423 DWORD dwConfigVersion;
424 DWORD dwDriverVersion;
425 } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W;
426 typedef struct _DRIVER_INFO_6A {
427 DWORD cVersion;
428 LPSTR pName;
429 LPSTR pEnvironment;
430 LPSTR pDriverPath;
431 LPSTR pDataFile;
432 LPSTR pConfigFile;
433 LPSTR pHelpFile;
434 LPSTR pDependentFiles;
435 LPSTR pMonitorName;
436 LPSTR pDefaultDataType;
437 LPSTR pszzPreviousNames;
438 FILETIME ftDriverDate;
439 DWORDLONG dwlDriverVersion;
440 LPSTR pszMfgName;
441 LPSTR pszOEMUrl;
442 LPSTR pszHardwareID;
443 LPSTR pszProvider;
444 } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A;
445 typedef struct _DRIVER_INFO_6W {
446 DWORD cVersion;
447 LPWSTR pName;
448 LPWSTR pEnvironment;
449 LPWSTR pDriverPath;
450 LPWSTR pDataFile;
451 LPWSTR pConfigFile;
452 LPWSTR pHelpFile;
453 LPWSTR pDependentFiles;
454 LPWSTR pMonitorName;
455 LPWSTR pDefaultDataType;
456 LPWSTR pszzPreviousNames;
457 FILETIME ftDriverDate;
458 DWORDLONG dwlDriverVersion;
459 LPWSTR pszMfgName;
460 LPWSTR pszOEMUrl;
461 LPWSTR pszHardwareID;
462 LPWSTR pszProvider;
463 } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W;
464 #define PRINTER_DRIVER_PACKAGE_AWARE 0x00000001
465 typedef struct _DRIVER_INFO_8A {
466 DWORD cVersion;
467 LPSTR pName;
468 LPSTR pEnvironment;
469 LPSTR pDriverPath;
470 LPSTR pDataFile;
471 LPSTR pConfigFile;
472 LPSTR pHelpFile;
473 LPSTR pDependentFiles;
474 LPSTR pMonitorName;
475 LPSTR pDefaultDataType;
476 LPSTR pszzPreviousNames;
477 FILETIME ftDriverDate;
478 DWORDLONG dwlDriverVersion;
479 LPSTR pszMfgName;
480 LPSTR pszOEMUrl;
481 LPSTR pszHardwareID;
482 LPSTR pszProvider;
483 LPSTR pszPrintProcessor;
484 LPSTR pszVendorSetup;
485 LPSTR pszzColorProfiles;
486 LPSTR pszInfPath;
487 DWORD dwPrinterDriverAttributes;
488 LPSTR pszzCoreDriverDependencies;
489 FILETIME ftMinInboxDriverVerDate;
490 DWORDLONG dwlMinInboxDriverVerVersion;
491 } DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A;
492 typedef struct _DRIVER_INFO_8W {
493 DWORD cVersion;
494 LPWSTR pName;
495 LPWSTR pEnvironment;
496 LPWSTR pDriverPath;
497 LPWSTR pDataFile;
498 LPWSTR pConfigFile;
499 LPWSTR pHelpFile;
500 LPWSTR pDependentFiles;
501 LPWSTR pMonitorName;
502 LPWSTR pDefaultDataType;
503 LPWSTR pszzPreviousNames;
504 FILETIME ftDriverDate;
505 DWORDLONG dwlDriverVersion;
506 LPWSTR pszMfgName;
507 LPWSTR pszOEMUrl;
508 LPWSTR pszHardwareID;
509 LPWSTR pszProvider;
510 LPWSTR pszPrintProcessor;
511 LPWSTR pszVendorSetup;
512 LPWSTR pszzColorProfiles;
513 LPWSTR pszInfPath;
514 DWORD dwPrinterDriverAttributes;
515 LPWSTR pszzCoreDriverDependencies;
516 FILETIME ftMinInboxDriverVerDate;
517 DWORDLONG dwlMinInboxDriverVerVersion;
518 } DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W;
519 // FLAGS for dwDriverAttributes
520 #define DRIVER_KERNELMODE 0x00000001
521 #define DRIVER_USERMODE 0x00000002
522 // FLAGS for DeletePrinterDriverEx.
523 #define DPD_DELETE_UNUSED_FILES 0x00000001
524 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002
525 #define DPD_DELETE_ALL_FILES 0x00000004
526 // FLAGS for AddPrinterDriverEx.
527 #define APD_STRICT_UPGRADE 0x00000001
528 #define APD_STRICT_DOWNGRADE 0x00000002
529 #define APD_COPY_ALL_FILES 0x00000004
530 #define APD_COPY_NEW_FILES 0x00000008
531 #if(_WIN32_WINNT >= 0x0501)
532 #define APD_COPY_FROM_DIRECTORY 0x00000010
533 #endif
534 typedef struct _MONITOR_INFO_1A{LPSTR pName;} MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A;
535 typedef struct _MONITOR_INFO_1W{LPWSTR pName;} MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W;
536 typedef struct _PORT_INFO_1A {LPSTR pName;} PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A;
537 typedef struct _PORT_INFO_1W {LPWSTR pName;} PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W;
538 typedef struct _MONITOR_INFO_2A{
539 LPSTR pName;
540 LPSTR pEnvironment;
541 LPSTR pDLLName;
542 } MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A;
543 typedef struct _MONITOR_INFO_2W{
544 LPWSTR pName;
545 LPWSTR pEnvironment;
546 LPWSTR pDLLName;
547 } MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W;
548 typedef struct _PORT_INFO_2A {
549 LPSTR pPortName;
550 LPSTR pMonitorName;
551 LPSTR pDescription;
552 DWORD fPortType;
553 DWORD Reserved;
554 } PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A;
555 typedef struct _PORT_INFO_2W {
556 LPWSTR pPortName;
557 LPWSTR pMonitorName;
558 LPWSTR pDescription;
559 DWORD fPortType;
560 DWORD Reserved;
561 } PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W;
562 typedef struct _PORT_INFO_3A {
563 DWORD dwStatus;
564 LPSTR pszStatus;
565 DWORD dwSeverity;
566 } PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A;
567 typedef struct _PORT_INFO_3W {
568 DWORD dwStatus;
569 LPWSTR pszStatus;
570 DWORD dwSeverity;
571 } PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W;
572 typedef struct _PRINTER_INFO_1A {
573 DWORD Flags;
574 LPSTR pDescription;
575 LPSTR pName;
576 LPSTR pComment;
577 } PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A;
578 typedef struct _PRINTER_INFO_1W {
579 DWORD Flags;
580 LPWSTR pDescription;
581 LPWSTR pName;
582 LPWSTR pComment;
583 } PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W;
584 typedef struct _PRINTER_INFO_2A {
585 LPSTR pServerName;
586 LPSTR pPrinterName;
587 LPSTR pShareName;
588 LPSTR pPortName;
589 LPSTR pDriverName;
590 LPSTR pComment;
591 LPSTR pLocation;
592 LPDEVMODEA pDevMode;
593 LPSTR pSepFile;
594 LPSTR pPrintProcessor;
595 LPSTR pDatatype;
596 LPSTR pParameters;
597 PSECURITY_DESCRIPTOR pSecurityDescriptor;
598 DWORD Attributes;
599 DWORD Priority;
600 DWORD DefaultPriority;
601 DWORD StartTime;
602 DWORD UntilTime;
603 DWORD Status;
604 DWORD cJobs;
605 DWORD AveragePPM;
606 } PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A;
607 typedef struct _PRINTER_INFO_2W {
608 LPWSTR pServerName;
609 LPWSTR pPrinterName;
610 LPWSTR pShareName;
611 LPWSTR pPortName;
612 LPWSTR pDriverName;
613 LPWSTR pComment;
614 LPWSTR pLocation;
615 LPDEVMODEW pDevMode;
616 LPWSTR pSepFile;
617 LPWSTR pPrintProcessor;
618 LPWSTR pDatatype;
619 LPWSTR pParameters;
620 PSECURITY_DESCRIPTOR pSecurityDescriptor;
621 DWORD Attributes;
622 DWORD Priority;
623 DWORD DefaultPriority;
624 DWORD StartTime;
625 DWORD UntilTime;
626 DWORD Status;
627 DWORD cJobs;
628 DWORD AveragePPM;
629 } PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W;
630 typedef struct _PRINTER_INFO_3 {
631 PSECURITY_DESCRIPTOR pSecurityDescriptor;
632 } PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3;
633 typedef struct _PRINTER_INFO_4A {
634 LPSTR pPrinterName;
635 LPSTR pServerName;
636 DWORD Attributes;
637 } PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A;
638 typedef struct _PRINTER_INFO_4W {
639 LPWSTR pPrinterName;
640 LPWSTR pServerName;
641 DWORD Attributes;
642 } PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W;
643 typedef struct _PRINTER_INFO_5A {
644 LPSTR pPrinterName;
645 LPSTR pPortName;
646 DWORD Attributes;
647 DWORD DeviceNotSelectedTimeout;
648 DWORD TransmissionRetryTimeout;
649 } PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A;
650 typedef struct _PRINTER_INFO_5W {
651 LPWSTR pPrinterName;
652 LPWSTR pPortName;
653 DWORD Attributes;
654 DWORD DeviceNotSelectedTimeout;
655 DWORD TransmissionRetryTimeout;
656 } PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W;
657 typedef struct _PRINTER_INFO_6 {
658 DWORD dwStatus;
659 } PRINTER_INFO_6,*PPRINTER_INFO_6,*LPPRINTER_INFO_6;
660 typedef struct _PRINTPROCESSOR_INFO_1A {LPSTR pName;} PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A;
661 typedef struct _PRINTPROCESSOR_INFO_1W {LPWSTR pName;} PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W;
662 typedef struct _PRINTER_NOTIFY_INFO_DATA {
663 WORD Type;
664 WORD Field;
665 DWORD Reserved;
666 DWORD Id;
667 union {
668 DWORD adwData[2];
669 struct {
670 DWORD cbBuf;
671 PVOID pBuf;
672 } Data;
673 } NotifyData;
674 } PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA;
675 typedef struct _PRINTER_NOTIFY_INFO {
676 DWORD Version;
677 DWORD Flags;
678 DWORD Count;
679 PRINTER_NOTIFY_INFO_DATA aData[1];
680 } PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO;
681 typedef struct _FORM_INFO_1A {
682 DWORD Flags;
683 LPSTR pName;
684 SIZEL Size;
685 RECTL ImageableArea;
686 } FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A;
687 typedef struct _FORM_INFO_1W {
688 DWORD Flags;
689 LPWSTR pName;
690 SIZEL Size;
691 RECTL ImageableArea;
692 } FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W;
693 typedef struct _PRINTER_DEFAULTSA {
694 LPSTR pDatatype;
695 LPDEVMODE pDevMode;
696 ACCESS_MASK DesiredAccess;
697 } PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA;
698 typedef struct _PRINTER_DEFAULTSW {
699 LPWSTR pDatatype;
700 LPDEVMODE pDevMode;
701 ACCESS_MASK DesiredAccess;
702 } PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW;
703
704 typedef struct _PROVIDOR_INFO_1A{
705 LPSTR pName;
706 LPSTR pEnvironment;
707 LPSTR pDLLName;
708 } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
709 typedef struct _PROVIDOR_INFO_1W{
710 LPWSTR pName;
711 LPWSTR pEnvironment;
712 LPWSTR pDLLName;
713 } PROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
714
715 typedef struct _PROVIDOR_INFO_2A{
716 LPSTR pOrder;
717 } PROVIDOR_INFO_2A, *PPROVIDOR_INFO_2A, *LPPROVIDOR_INFO_2A;
718 typedef struct _PROVIDOR_INFO_2W{
719 LPWSTR pOrder;
720 } PROVIDOR_INFO_2W, *LPPROVIDOR_INFO_2W;
721
722 typedef struct _BINARY_CONTAINER {
723 DWORD cbBuf;
724 LPBYTE pData;
725 } BINARY_CONTAINER, *PBINARY_CONTAINER;
726
727 typedef struct _BIDI_DATA {
728 DWORD dwBidiType;
729 union
730 {
731 BOOL bData;
732 INT iData;
733 LPWSTR sData;
734 FLOAT fData;
735 BINARY_CONTAINER biData;
736 } u;
737 } BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA;
738
739 typedef struct _BIDI_REQUEST_DATA {
740 DWORD dwReqNumber;
741 LPWSTR pSchema;
742 BIDI_DATA data;
743 } BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA;
744
745 typedef struct _BIDI_REQUEST_CONTAINER {
746 DWORD Version;
747 DWORD Flags;
748 DWORD Count;
749 BIDI_REQUEST_DATA aData[1];
750 } BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER;
751
752 typedef struct _BIDI_RESPONSE_DATA {
753 DWORD dwResult;
754 DWORD dwReqNumber;
755 LPWSTR pSchema;
756 BIDI_DATA data;
757 } BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA;
758
759 typedef struct _BIDI_RESPONSE_CONTAINER {
760 DWORD Version;
761 DWORD Flags;
762 DWORD Count;
763 BIDI_RESPONSE_DATA aData[1];
764 } BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER;
765
766 BOOL WINAPI AbortPrinter(HANDLE);
767 BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE);
768 BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE);
769 BOOL WINAPI AddJobA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
770 BOOL WINAPI AddJobW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
771 BOOL WINAPI AddMonitorA(LPSTR,DWORD,PBYTE);
772 BOOL WINAPI AddMonitorW(LPWSTR,DWORD,PBYTE);
773 BOOL WINAPI AddPortA(LPSTR,HWND,LPSTR);
774 BOOL WINAPI AddPortW(LPWSTR,HWND,LPWSTR);
775 HANDLE WINAPI AddPrinterA(LPSTR,DWORD,PBYTE);
776 HANDLE WINAPI AddPrinterW(LPWSTR,DWORD,PBYTE);
777 BOOL WINAPI AddPrinterConnectionA(LPSTR);
778 BOOL WINAPI AddPrinterConnectionW(LPWSTR);
779 BOOL WINAPI AddPrinterDriverA(LPSTR,DWORD,PBYTE);
780 BOOL WINAPI AddPrinterDriverW(LPWSTR,DWORD,PBYTE);
781 BOOL WINAPI AddPrintProcessorA(LPSTR,LPSTR,LPSTR,LPSTR);
782 BOOL WINAPI AddPrintProcessorW(LPWSTR,LPWSTR,LPWSTR,LPWSTR);
783 BOOL WINAPI AddPrintProvidorA(LPSTR,DWORD,PBYTE);
784 BOOL WINAPI AddPrintProvidorW(LPWSTR,DWORD,PBYTE);
785 LONG WINAPI AdvancedDocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA);
786 LONG WINAPI AdvancedDocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEW,PDEVMODEW);
787 BOOL WINAPI ClosePrinter(HANDLE);
788 BOOL WINAPI ConfigurePortA(LPSTR,HWND,LPSTR);
789 BOOL WINAPI ConfigurePortW(LPWSTR,HWND,LPWSTR);
790 HANDLE WINAPI ConnectToPrinterDlg(HWND,DWORD);
791 BOOL WINAPI DeleteFormA(HANDLE,LPSTR);
792 BOOL WINAPI DeleteFormW(HANDLE,LPWSTR);
793 BOOL WINAPI DeleteMonitorA(LPSTR,LPSTR,LPSTR);
794 BOOL WINAPI DeleteMonitorW(LPWSTR,LPWSTR,LPWSTR);
795 BOOL WINAPI DeletePortA(LPSTR,HWND,LPSTR);
796 BOOL WINAPI DeletePortW(LPWSTR,HWND,LPWSTR);
797 BOOL WINAPI DeletePrinter(HANDLE);
798 BOOL WINAPI DeletePrinterConnectionA(LPSTR);
799 BOOL WINAPI DeletePrinterConnectionW(LPWSTR);
800 DWORD WINAPI DeletePrinterDataA(HANDLE,LPSTR);
801 DWORD WINAPI DeletePrinterDataW(HANDLE,LPWSTR);
802 BOOL WINAPI DeletePrinterDriverA(LPSTR,LPSTR,LPSTR);
803 BOOL WINAPI DeletePrinterDriverW(LPWSTR,LPWSTR,LPWSTR);
804 BOOL WINAPI DeletePrintProcessorA(LPSTR,LPSTR,LPSTR);
805 BOOL WINAPI DeletePrintProcessorW(LPWSTR,LPWSTR,LPWSTR);
806 BOOL WINAPI DeletePrintProvidorA(LPSTR,LPSTR,LPSTR);
807 BOOL WINAPI DeletePrintProvidorW(LPWSTR,LPWSTR,LPWSTR);
808 LONG WINAPI DocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA,DWORD);
809 LONG WINAPI DocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEW,PDEVMODEW,DWORD);
810 BOOL WINAPI EndDocPrinter(HANDLE);
811 BOOL WINAPI EndPagePrinter(HANDLE);
812 BOOL WINAPI EnumFormsA(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
813 BOOL WINAPI EnumFormsW(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
814 BOOL WINAPI EnumJobsA(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
815 BOOL WINAPI EnumJobsW(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
816 BOOL WINAPI EnumMonitorsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
817 BOOL WINAPI EnumMonitorsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
818 BOOL WINAPI EnumPortsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
819 BOOL WINAPI EnumPortsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
820 DWORD WINAPI EnumPrinterDataA(HANDLE,DWORD,LPSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
821 DWORD WINAPI EnumPrinterDataW(HANDLE,DWORD,LPWSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
822 BOOL WINAPI EnumPrinterDriversA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
823 BOOL WINAPI EnumPrinterDriversW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
824 BOOL WINAPI EnumPrintersA(DWORD,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
825 BOOL WINAPI EnumPrintersW(DWORD,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
826 BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
827 BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
828 BOOL WINAPI EnumPrintProcessorsA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
829 BOOL WINAPI EnumPrintProcessorsW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
830 LONG WINAPI ExtDeviceMode(HWND,HANDLE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,DWORD);
831 BOOL WINAPI FindClosePrinterChangeNotification(HANDLE);
832 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE,DWORD,DWORD,PVOID);
833 HANDLE WINAPI FindNextPrinterChangeNotification(HANDLE,PDWORD,PVOID,PVOID*);
834 BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO);
835 #if _WIN32_WINNT >= 0x0500
836 BOOL WINAPI GetDefaultPrinterA(LPSTR,LPDWORD);
837 BOOL WINAPI GetDefaultPrinterW(LPWSTR,LPDWORD);
838 #endif
839 BOOL WINAPI GetFormA(HANDLE,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
840 BOOL WINAPI GetFormW(HANDLE,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
841 BOOL WINAPI GetJobA(HANDLE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD);
842 BOOL WINAPI GetJobW(HANDLE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD);
843 BOOL WINAPI GetPrinterA(HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
844 BOOL WINAPI GetPrinterW(HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
845 DWORD WINAPI GetPrinterDataA(HANDLE,LPSTR,PDWORD,LPBYTE,DWORD,LPDWORD);
846 DWORD WINAPI GetPrinterDataW(HANDLE,LPWSTR,LPDWORD,LPBYTE,DWORD,LPDWORD);
847 BOOL WINAPI GetPrinterDriverA(HANDLE,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
848 BOOL WINAPI GetPrinterDriverW(HANDLE,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
849 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
850 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
851 BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
852 BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
853 #if NTDDI_VERSION >= NTDDI_WINXPSP2
854 BOOL WINAPI IsValidDevmodeA(PDEVMODEA,size_t);
855 BOOL WINAPI IsValidDevmodeW(PDEVMODEW,size_t);
856 #endif
857 BOOL WINAPI OpenPrinterA(LPSTR,PHANDLE,LPPRINTER_DEFAULTSA);
858 BOOL WINAPI OpenPrinterW(LPWSTR,PHANDLE,LPPRINTER_DEFAULTSW);
859 DWORD WINAPI PrinterMessageBoxA(HANDLE,DWORD,HWND,LPSTR,LPSTR,DWORD);
860 DWORD WINAPI PrinterMessageBoxW(HANDLE,DWORD,HWND,LPWSTR,LPWSTR,DWORD);
861 BOOL WINAPI PrinterProperties(HWND,HANDLE);
862 BOOL WINAPI ReadPrinter(HANDLE,PVOID,DWORD,PDWORD);
863 BOOL WINAPI ResetPrinterA(HANDLE,LPPRINTER_DEFAULTSA);
864 BOOL WINAPI ResetPrinterW(HANDLE,LPPRINTER_DEFAULTSW);
865 BOOL WINAPI ScheduleJob(HANDLE,DWORD);
866 BOOL WINAPI SetFormA(HANDLE,LPSTR,DWORD,PBYTE);
867 BOOL WINAPI SetFormW(HANDLE,LPWSTR,DWORD,PBYTE);
868 BOOL WINAPI SetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD);
869 BOOL WINAPI SetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD);
870 BOOL WINAPI SetPrinterA(HANDLE,DWORD,PBYTE,DWORD);
871 BOOL WINAPI SetPrinterW(HANDLE,DWORD,PBYTE,DWORD);
872 BOOL WINAPI SetPrinterDataA(HANDLE,LPSTR,DWORD,PBYTE,DWORD);
873 BOOL WINAPI SetPrinterDataW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD);
874 #ifdef _WINE
875 LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc);
876 LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc);
877 #define StartDocDlg WINELIB_NAME_AW(StartDocDlg)
878 #endif
879 DWORD WINAPI StartDocPrinterA(HANDLE,DWORD,PBYTE);
880 DWORD WINAPI StartDocPrinterW(HANDLE,DWORD,PBYTE);
881 BOOL WINAPI StartPagePrinter(HANDLE);
882 DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD);
883 BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD);
884 BOOL WINAPI XcvDataW(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
885
886 #ifdef UNICODE
887 typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
888 typedef JOB_INFO_2W JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
889 typedef ADDJOB_INFO_1W ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
890 typedef DATATYPES_INFO_1W DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
891 typedef MONITOR_INFO_1W MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
892 typedef MONITOR_INFO_2W MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
893 typedef DOC_INFO_1W DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
894 typedef DOC_INFO_2W DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
895 typedef PORT_INFO_1W PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
896 typedef PORT_INFO_2W PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
897 typedef PORT_INFO_3W PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
898 typedef DRIVER_INFO_2W DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
899 typedef DRIVER_INFO_4W DRIVER_INFO_4,*PDRIVER_INFO_4,*LPDRIVER_INFO_4;
900 typedef DRIVER_INFO_5W DRIVER_INFO_5,*PDRIVER_INFO_5,*LPDRIVER_INFO_5;
901 typedef DRIVER_INFO_6W DRIVER_INFO_6,*PDRIVER_INFO_6,*LPDRIVER_INFO_6;
902 typedef DRIVER_INFO_8W DRIVER_INFO_8,*PDRIVER_INFO_8,*LPDRIVER_INFO_8;
903 typedef PRINTER_INFO_1W PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
904 typedef PRINTER_INFO_2W PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
905 typedef PRINTER_INFO_4W PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
906 typedef PRINTER_INFO_5W PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
907 typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
908 typedef FORM_INFO_1W FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
909 typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
910 typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1;
911 typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1;
912 typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2;
913 typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2;
914 #define AddForm AddFormW
915 #define AddJob AddJobW
916 #define AddMonitor AddMonitorW
917 #define AddPort AddPortW
918 #define AddPrinter AddPrinterW
919 #define AddPrinterConnection AddPrinterConnectionW
920 #define AddPrinterDriver AddPrinterDriverW
921 #define AddPrintProcessor AddPrintProcessorW
922 #define AddPrintProvidor AddPrintProvidorW
923 #define AdvancedDocumentProperties AdvancedDocumentPropertiesW
924 #define ConfigurePort ConfigurePortW
925 #define DeleteForm DeleteFormW
926 #define DeleteMonitor DeleteMonitorW
927 #define DeletePort DeletePortW
928 #define DeletePrinterConnection DeletePrinterConnectionW
929 #define DeletePrinterData DeletePrinterDataW
930 #define DeletePrinterDriver DeletePrinterDriverW
931 #define DeletePrintProcessor DeletePrinterProcessorW
932 #define DeletePrintProvidor DeletePrinterProvidorW
933 #define DocumentProperties DocumentPropertiesW
934 #define EnumForms EnumFormsW
935 #define EnumJobs EnumJobsW
936 #define EnumMonitors EnumMonitorsW
937 #define EnumPorts EnumPortsW
938 #define EnumPrinterData EnumPrinterDataW
939 #define EnumPrinterDrivers EnumPrinterDriversW
940 #define EnumPrinters EnumPrintersW
941 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
942 #define EnumPrintProcessors EnumPrintProcessorsW
943 #define GetDefaultPrinter GetDefaultPrinterW
944 #define GetForm GetFormW
945 #define GetJob GetJobW
946 #define GetPrinter GetPrinterW
947 #define GetPrinterData GetPrinterDataW
948 #define GetPrinterDriver GetPrinterDriverW
949 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
950 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
951 #define IsValidDevmode IsValidDevmodeW
952 #define OpenPrinter OpenPrinterW
953 #define PrinterMessageBox PrinterMessageBoxW
954 #define ResetPrinter ResetPrinterW
955 #define SetForm SetFormW
956 #define SetJob SetJobW
957 #define SetPrinter SetPrinterW
958 #define SetPrinterData SetPrinterDataW
959 #define StartDocPrinter StartDocPrinterW
960 #else
961 typedef JOB_INFO_1A JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
962 typedef JOB_INFO_2A JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
963 typedef ADDJOB_INFO_1A ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
964 typedef DATATYPES_INFO_1A DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
965 typedef MONITOR_INFO_1A MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
966 typedef MONITOR_INFO_2A MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
967 typedef DOC_INFO_1A DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
968 typedef DOC_INFO_2A DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
969 typedef PORT_INFO_1A PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
970 typedef PORT_INFO_2A PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
971 typedef PORT_INFO_3A PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
972 typedef DRIVER_INFO_2A DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
973 typedef DRIVER_INFO_4A DRIVER_INFO_4,*PDRIVER_INFO_4,*LPDRIVER_INFO_4;
974 typedef DRIVER_INFO_5A DRIVER_INFO_5,*PDRIVER_INFO_5,*LPDRIVER_INFO_5;
975 typedef DRIVER_INFO_6A DRIVER_INFO_6,*PDRIVER_INFO_6,*LPDRIVER_INFO_6;
976 typedef DRIVER_INFO_8A DRIVER_INFO_8,*PDRIVER_INFO_8,*LPDRIVER_INFO_8;
977 typedef PRINTER_INFO_1A PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
978 typedef PRINTER_INFO_2A PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
979 typedef PRINTER_INFO_4A PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
980 typedef PRINTER_INFO_5A PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
981 typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
982 typedef FORM_INFO_1A FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
983 typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
984 #define AddForm AddFormA
985 #define AddJob AddJobA
986 #define AddMonitor AddMonitorA
987 #define AddPort AddPortA
988 #define AddPrinter AddPrinterA
989 #define AddPrinterConnection AddPrinterConnectionA
990 #define AddPrinterDriver AddPrinterDriverA
991 #define AddPrintProcessor AddPrintProcessorA
992 #define AddPrintProvidor AddPrintProvidorA
993 #define AdvancedDocumentProperties AdvancedDocumentPropertiesA
994 #define ConfigurePort ConfigurePortA
995 #define DeleteForm DeleteFormA
996 #define DeleteMonitor DeleteMonitorA
997 #define DeletePort DeletePortA
998 #define DeletePrinterConnection DeletePrinterConnectionA
999 #define DeletePrinterData DeletePrinterDataA
1000 #define DeletePrinterDriver DeletePrinterDriverA
1001 #define DeletePrintProcessor DeletePrinterProcessorA
1002 #define DeletePrintProvidor DeletePrinterProvidorA
1003 #define DocumentProperties DocumentPropertiesA
1004 #define EnumForms EnumFormsA
1005 #define EnumJobs EnumJobsA
1006 #define EnumMonitors EnumMonitorsA
1007 #define EnumPorts EnumPortsA
1008 #define EnumPrinterData EnumPrinterDataA
1009 #define EnumPrinterDrivers EnumPrinterDriversA
1010 #define EnumPrinters EnumPrintersA
1011 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
1012 #define EnumPrintProcessors EnumPrintProcessorsA
1013 #define GetDefaultPrinter GetDefaultPrinterA
1014 #define GetForm GetFormA
1015 #define GetJob GetJobA
1016 #define GetPrinter GetPrinterA
1017 #define GetPrinterData GetPrinterDataA
1018 #define GetPrinterDriver GetPrinterDriverA
1019 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
1020 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
1021 #define IsValidDevmode IsValidDevmodeA
1022 #define OpenPrinter OpenPrinterA
1023 #define PrinterMessageBox PrinterMessageBoxA
1024 #define ResetPrinter ResetPrinterA
1025 #define SetForm SetFormA
1026 #define SetJob SetJobA
1027 #define SetPrinter SetPrinterA
1028 #define SetPrinterData SetPrinterDataA
1029 #define StartDocPrinter StartDocPrinterA
1030 #endif
1031 #endif /* RC_INVOKED */
1032 #ifdef _MSC_VER
1033 #pragma warning(pop)
1034 #endif
1035 #ifdef __cplusplus
1036 }
1037 #endif
1038 #endif