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