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