Reintegrate header-work branch. Important changes include continued work on headers...
[reactos.git] / reactos / 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
222 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
223 WORD Type;
224 WORD Reserved0;
225 DWORD Reserved1;
226 DWORD Reserved2;
227 DWORD Count;
228 PWORD pFields;
229 } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE, *LPPRINTER_NOTIFY_OPTIONS_TYPE;
230
231 typedef struct _PRINTER_NOTIFY_OPTIONS {
232 DWORD Version;
233 DWORD Flags;
234 DWORD Count;
235 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
236 } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS;
237
238 #ifndef RC_INVOKED
239 typedef struct _ADDJOB_INFO_1A {
240 LPSTR Path;
241 DWORD JobId;
242 } ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A;
243 typedef struct _ADDJOB_INFO_1W {
244 LPWSTR Path;
245 DWORD JobId;
246 } ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W;
247 typedef struct _DATATYPES_INFO_1A{LPSTR pName;} DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A;
248 typedef struct _DATATYPES_INFO_1W{LPWSTR pName;} DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W;
249 typedef struct _JOB_INFO_1A {
250 DWORD JobId;
251 LPSTR pPrinterName;
252 LPSTR pMachineName;
253 LPSTR pUserName;
254 LPSTR pDocument;
255 LPSTR pDatatype;
256 LPSTR pStatus;
257 DWORD Status;
258 DWORD Priority;
259 DWORD Position;
260 DWORD TotalPages;
261 DWORD PagesPrinted;
262 SYSTEMTIME Submitted;
263 } JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A;
264 typedef struct _JOB_INFO_1W {
265 DWORD JobId;
266 LPWSTR pPrinterName;
267 LPWSTR pMachineName;
268 LPWSTR pUserName;
269 LPWSTR pDocument;
270 LPWSTR pDatatype;
271 LPWSTR pStatus;
272 DWORD Status;
273 DWORD Priority;
274 DWORD Position;
275 DWORD TotalPages;
276 DWORD PagesPrinted;
277 SYSTEMTIME Submitted;
278 } JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W;
279 typedef struct _JOB_INFO_2A {
280 DWORD JobId;
281 LPSTR pPrinterName;
282 LPSTR pMachineName;
283 LPSTR pUserName;
284 LPSTR pDocument;
285 LPSTR pNotifyName;
286 LPSTR pDatatype;
287 LPSTR pPrintProcessor;
288 LPSTR pParameters;
289 LPSTR pDriverName;
290 LPDEVMODEA pDevMode;
291 LPSTR pStatus;
292 PSECURITY_DESCRIPTOR pSecurityDescriptor;
293 DWORD Status;
294 DWORD Priority;
295 DWORD Position;
296 DWORD StartTime;
297 DWORD UntilTime;
298 DWORD TotalPages;
299 DWORD Size;
300 SYSTEMTIME Submitted;
301 DWORD Time;
302 DWORD PagesPrinted;
303 } JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A;
304 typedef struct _JOB_INFO_2W {
305 DWORD JobId;
306 LPWSTR pPrinterName;
307 LPWSTR pMachineName;
308 LPWSTR pUserName;
309 LPWSTR pDocument;
310 LPWSTR pNotifyName;
311 LPWSTR pDatatype;
312 LPWSTR pPrintProcessor;
313 LPWSTR pParameters;
314 LPWSTR pDriverName;
315 LPDEVMODEW pDevMode;
316 LPWSTR pStatus;
317 PSECURITY_DESCRIPTOR pSecurityDescriptor;
318 DWORD Status;
319 DWORD Priority;
320 DWORD Position;
321 DWORD StartTime;
322 DWORD UntilTime;
323 DWORD TotalPages;
324 DWORD Size;
325 SYSTEMTIME Submitted;
326 DWORD Time;
327 DWORD PagesPrinted;
328 } JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W;
329 typedef struct _DOC_INFO_1A {
330 LPSTR pDocName;
331 LPSTR pOutputFile;
332 LPSTR pDatatype;
333 } DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A;
334 typedef struct _DOC_INFO_1W {
335 LPWSTR pDocName;
336 LPWSTR pOutputFile;
337 LPWSTR pDatatype;
338 } DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W;
339 typedef struct _DOC_INFO_2A {
340 LPSTR pDocName;
341 LPSTR pOutputFile;
342 LPSTR pDatatype;
343 DWORD dwMode;
344 DWORD JobId;
345 } DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A;
346 typedef struct _DOC_INFO_2W {
347 LPWSTR pDocName;
348 LPWSTR pOutputFile;
349 LPWSTR pDatatype;
350 DWORD dwMode;
351 DWORD JobId;
352 } DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W;
353 typedef struct _DRIVER_INFO_1A {LPSTR pName;} DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A;
354 typedef struct _DRIVER_INFO_1W {LPWSTR pName;} DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W;
355 typedef struct _DRIVER_INFO_2A {
356 DWORD cVersion;
357 LPSTR pName;
358 LPSTR pEnvironment;
359 LPSTR pDriverPath;
360 LPSTR pDataFile;
361 LPSTR pConfigFile;
362 } DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A;
363 typedef struct _DRIVER_INFO_2W {
364 DWORD cVersion;
365 LPWSTR pName;
366 LPWSTR pEnvironment;
367 LPWSTR pDriverPath;
368 LPWSTR pDataFile;
369 LPWSTR pConfigFile;
370 } DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W;
371 typedef struct _DRIVER_INFO_3A {
372 DWORD cVersion;
373 LPSTR pName;
374 LPSTR pEnvironment;
375 LPSTR pDriverPath;
376 LPSTR pDataFile;
377 LPSTR pConfigFile;
378 LPSTR pHelpFile;
379 LPSTR pDependentFiles;
380 LPSTR pMonitorName;
381 LPSTR pDefaultDataType;
382 } DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A;
383 typedef struct _DRIVER_INFO_3W {
384 DWORD cVersion;
385 LPWSTR pName;
386 LPWSTR pEnvironment;
387 LPWSTR pDriverPath;
388 LPWSTR pDataFile;
389 LPWSTR pConfigFile;
390 LPWSTR pHelpFile;
391 LPWSTR pDependentFiles;
392 LPWSTR pMonitorName;
393 LPWSTR pDefaultDataType;
394 } DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W;
395 typedef struct _DRIVER_INFO_4A {
396 DWORD cVersion; // SDK examples:
397 LPSTR pName; // QMS 810
398 LPSTR pEnvironment; // Win32 x86
399 LPSTR pDriverPath; // c:\drivers\pscript.dll
400 LPSTR pDataFile; // c:\drivers\QMS810.PPD
401 LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL
402 LPSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP
403 LPSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0
404 LPSTR pMonitorName; // "PJL monitor"
405 LPSTR pDefaultDataType; // "EMF"
406 LPSTR pszzPreviousNames; // "OldName1\0OldName2\0\0
407 } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A;
408 typedef struct _DRIVER_INFO_4W {
409 DWORD cVersion;
410 LPWSTR pName;
411 LPWSTR pEnvironment;
412 LPWSTR pDriverPath;
413 LPWSTR pDataFile;
414 LPWSTR pConfigFile;
415 LPWSTR pHelpFile;
416 LPWSTR pDependentFiles;
417 LPWSTR pMonitorName;
418 LPWSTR pDefaultDataType;
419 LPWSTR pszzPreviousNames;
420 } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W;
421 typedef struct _DRIVER_INFO_5A {
422 DWORD cVersion; // SDK examples:
423 LPSTR pName; // QMS 810
424 LPSTR pEnvironment; // Win32 x86
425 LPSTR pDriverPath; // c:\drivers\pscript.dll
426 LPSTR pDataFile; // c:\drivers\QMS810.PPD
427 LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL
428 DWORD dwDriverAttributes; // driver attributes (like UMPD/KMPD)
429 DWORD dwConfigVersion; // version number of the config file since reboot
430 DWORD dwDriverVersion; // version number of the driver file since reboot
431 } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A;
432 typedef struct _DRIVER_INFO_5W {
433 DWORD cVersion;
434 LPWSTR pName;
435 LPWSTR pEnvironment;
436 LPWSTR pDriverPath;
437 LPWSTR pDataFile;
438 LPWSTR pConfigFile;
439 DWORD dwDriverAttributes;
440 DWORD dwConfigVersion;
441 DWORD dwDriverVersion;
442 } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W;
443 typedef struct _DRIVER_INFO_6A {
444 DWORD cVersion;
445 LPSTR pName;
446 LPSTR pEnvironment;
447 LPSTR pDriverPath;
448 LPSTR pDataFile;
449 LPSTR pConfigFile;
450 LPSTR pHelpFile;
451 LPSTR pDependentFiles;
452 LPSTR pMonitorName;
453 LPSTR pDefaultDataType;
454 LPSTR pszzPreviousNames;
455 FILETIME ftDriverDate;
456 DWORDLONG dwlDriverVersion;
457 LPSTR pszMfgName;
458 LPSTR pszOEMUrl;
459 LPSTR pszHardwareID;
460 LPSTR pszProvider;
461 } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A;
462 typedef struct _DRIVER_INFO_6W {
463 DWORD cVersion;
464 LPWSTR pName;
465 LPWSTR pEnvironment;
466 LPWSTR pDriverPath;
467 LPWSTR pDataFile;
468 LPWSTR pConfigFile;
469 LPWSTR pHelpFile;
470 LPWSTR pDependentFiles;
471 LPWSTR pMonitorName;
472 LPWSTR pDefaultDataType;
473 LPWSTR pszzPreviousNames;
474 FILETIME ftDriverDate;
475 DWORDLONG dwlDriverVersion;
476 LPWSTR pszMfgName;
477 LPWSTR pszOEMUrl;
478 LPWSTR pszHardwareID;
479 LPWSTR pszProvider;
480 } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W;
481 #define PRINTER_DRIVER_PACKAGE_AWARE 0x00000001
482 typedef struct _DRIVER_INFO_8A {
483 DWORD cVersion;
484 LPSTR pName;
485 LPSTR pEnvironment;
486 LPSTR pDriverPath;
487 LPSTR pDataFile;
488 LPSTR pConfigFile;
489 LPSTR pHelpFile;
490 LPSTR pDependentFiles;
491 LPSTR pMonitorName;
492 LPSTR pDefaultDataType;
493 LPSTR pszzPreviousNames;
494 FILETIME ftDriverDate;
495 DWORDLONG dwlDriverVersion;
496 LPSTR pszMfgName;
497 LPSTR pszOEMUrl;
498 LPSTR pszHardwareID;
499 LPSTR pszProvider;
500 LPSTR pszPrintProcessor;
501 LPSTR pszVendorSetup;
502 LPSTR pszzColorProfiles;
503 LPSTR pszInfPath;
504 DWORD dwPrinterDriverAttributes;
505 LPSTR pszzCoreDriverDependencies;
506 FILETIME ftMinInboxDriverVerDate;
507 DWORDLONG dwlMinInboxDriverVerVersion;
508 } DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A;
509 typedef struct _DRIVER_INFO_8W {
510 DWORD cVersion;
511 LPWSTR pName;
512 LPWSTR pEnvironment;
513 LPWSTR pDriverPath;
514 LPWSTR pDataFile;
515 LPWSTR pConfigFile;
516 LPWSTR pHelpFile;
517 LPWSTR pDependentFiles;
518 LPWSTR pMonitorName;
519 LPWSTR pDefaultDataType;
520 LPWSTR pszzPreviousNames;
521 FILETIME ftDriverDate;
522 DWORDLONG dwlDriverVersion;
523 LPWSTR pszMfgName;
524 LPWSTR pszOEMUrl;
525 LPWSTR pszHardwareID;
526 LPWSTR pszProvider;
527 LPWSTR pszPrintProcessor;
528 LPWSTR pszVendorSetup;
529 LPWSTR pszzColorProfiles;
530 LPWSTR pszInfPath;
531 DWORD dwPrinterDriverAttributes;
532 LPWSTR pszzCoreDriverDependencies;
533 FILETIME ftMinInboxDriverVerDate;
534 DWORDLONG dwlMinInboxDriverVerVersion;
535 } DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W;
536 // FLAGS for dwDriverAttributes
537 #define DRIVER_KERNELMODE 0x00000001
538 #define DRIVER_USERMODE 0x00000002
539 // FLAGS for DeletePrinterDriverEx.
540 #define DPD_DELETE_UNUSED_FILES 0x00000001
541 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002
542 #define DPD_DELETE_ALL_FILES 0x00000004
543 // FLAGS for AddPrinterDriverEx.
544 #define APD_STRICT_UPGRADE 0x00000001
545 #define APD_STRICT_DOWNGRADE 0x00000002
546 #define APD_COPY_ALL_FILES 0x00000004
547 #define APD_COPY_NEW_FILES 0x00000008
548 #if(_WIN32_WINNT >= 0x0501)
549 #define APD_COPY_FROM_DIRECTORY 0x00000010
550 #endif
551 typedef struct _MONITOR_INFO_1A{LPSTR pName;} MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A;
552 typedef struct _MONITOR_INFO_1W{LPWSTR pName;} MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W;
553 typedef struct _PORT_INFO_1A {LPSTR pName;} PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A;
554 typedef struct _PORT_INFO_1W {LPWSTR pName;} PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W;
555 typedef struct _MONITOR_INFO_2A{
556 LPSTR pName;
557 LPSTR pEnvironment;
558 LPSTR pDLLName;
559 } MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A;
560 typedef struct _MONITOR_INFO_2W{
561 LPWSTR pName;
562 LPWSTR pEnvironment;
563 LPWSTR pDLLName;
564 } MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W;
565 typedef struct _PORT_INFO_2A {
566 LPSTR pPortName;
567 LPSTR pMonitorName;
568 LPSTR pDescription;
569 DWORD fPortType;
570 DWORD Reserved;
571 } PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A;
572 typedef struct _PORT_INFO_2W {
573 LPWSTR pPortName;
574 LPWSTR pMonitorName;
575 LPWSTR pDescription;
576 DWORD fPortType;
577 DWORD Reserved;
578 } PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W;
579 typedef struct _PORT_INFO_3A {
580 DWORD dwStatus;
581 LPSTR pszStatus;
582 DWORD dwSeverity;
583 } PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A;
584 typedef struct _PORT_INFO_3W {
585 DWORD dwStatus;
586 LPWSTR pszStatus;
587 DWORD dwSeverity;
588 } PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W;
589 typedef struct _PRINTER_INFO_1A {
590 DWORD Flags;
591 LPSTR pDescription;
592 LPSTR pName;
593 LPSTR pComment;
594 } PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A;
595 typedef struct _PRINTER_INFO_1W {
596 DWORD Flags;
597 LPWSTR pDescription;
598 LPWSTR pName;
599 LPWSTR pComment;
600 } PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W;
601 typedef struct _PRINTER_INFO_2A {
602 LPSTR pServerName;
603 LPSTR pPrinterName;
604 LPSTR pShareName;
605 LPSTR pPortName;
606 LPSTR pDriverName;
607 LPSTR pComment;
608 LPSTR pLocation;
609 LPDEVMODEA pDevMode;
610 LPSTR pSepFile;
611 LPSTR pPrintProcessor;
612 LPSTR pDatatype;
613 LPSTR pParameters;
614 PSECURITY_DESCRIPTOR pSecurityDescriptor;
615 DWORD Attributes;
616 DWORD Priority;
617 DWORD DefaultPriority;
618 DWORD StartTime;
619 DWORD UntilTime;
620 DWORD Status;
621 DWORD cJobs;
622 DWORD AveragePPM;
623 } PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A;
624 typedef struct _PRINTER_INFO_2W {
625 LPWSTR pServerName;
626 LPWSTR pPrinterName;
627 LPWSTR pShareName;
628 LPWSTR pPortName;
629 LPWSTR pDriverName;
630 LPWSTR pComment;
631 LPWSTR pLocation;
632 LPDEVMODEW pDevMode;
633 LPWSTR pSepFile;
634 LPWSTR pPrintProcessor;
635 LPWSTR pDatatype;
636 LPWSTR pParameters;
637 PSECURITY_DESCRIPTOR pSecurityDescriptor;
638 DWORD Attributes;
639 DWORD Priority;
640 DWORD DefaultPriority;
641 DWORD StartTime;
642 DWORD UntilTime;
643 DWORD Status;
644 DWORD cJobs;
645 DWORD AveragePPM;
646 } PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W;
647 typedef struct _PRINTER_INFO_3 {
648 PSECURITY_DESCRIPTOR pSecurityDescriptor;
649 } PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3;
650 typedef struct _PRINTER_INFO_4A {
651 LPSTR pPrinterName;
652 LPSTR pServerName;
653 DWORD Attributes;
654 } PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A;
655 typedef struct _PRINTER_INFO_4W {
656 LPWSTR pPrinterName;
657 LPWSTR pServerName;
658 DWORD Attributes;
659 } PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W;
660 typedef struct _PRINTER_INFO_5A {
661 LPSTR pPrinterName;
662 LPSTR pPortName;
663 DWORD Attributes;
664 DWORD DeviceNotSelectedTimeout;
665 DWORD TransmissionRetryTimeout;
666 } PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A;
667 typedef struct _PRINTER_INFO_5W {
668 LPWSTR pPrinterName;
669 LPWSTR pPortName;
670 DWORD Attributes;
671 DWORD DeviceNotSelectedTimeout;
672 DWORD TransmissionRetryTimeout;
673 } PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W;
674 typedef struct _PRINTER_INFO_6 {
675 DWORD dwStatus;
676 } PRINTER_INFO_6,*PPRINTER_INFO_6,*LPPRINTER_INFO_6;
677 typedef struct _PRINTPROCESSOR_INFO_1A {LPSTR pName;} PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A;
678 typedef struct _PRINTPROCESSOR_INFO_1W {LPWSTR pName;} PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W;
679 typedef struct _PRINTER_NOTIFY_INFO_DATA {
680 WORD Type;
681 WORD Field;
682 DWORD Reserved;
683 DWORD Id;
684 union {
685 DWORD adwData[2];
686 struct {
687 DWORD cbBuf;
688 PVOID pBuf;
689 } Data;
690 } NotifyData;
691 } PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA;
692 typedef struct _PRINTER_NOTIFY_INFO {
693 DWORD Version;
694 DWORD Flags;
695 DWORD Count;
696 PRINTER_NOTIFY_INFO_DATA aData[1];
697 } PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO;
698 typedef struct _FORM_INFO_1A {
699 DWORD Flags;
700 LPSTR pName;
701 SIZEL Size;
702 RECTL ImageableArea;
703 } FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A;
704 typedef struct _FORM_INFO_1W {
705 DWORD Flags;
706 LPWSTR pName;
707 SIZEL Size;
708 RECTL ImageableArea;
709 } FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W;
710 typedef struct _PRINTER_DEFAULTSA {
711 LPSTR pDatatype;
712 LPDEVMODE pDevMode;
713 ACCESS_MASK DesiredAccess;
714 } PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA;
715 typedef struct _PRINTER_DEFAULTSW {
716 LPWSTR pDatatype;
717 LPDEVMODE pDevMode;
718 ACCESS_MASK DesiredAccess;
719 } PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW;
720
721 typedef struct _PROVIDOR_INFO_1A{
722 LPSTR pName;
723 LPSTR pEnvironment;
724 LPSTR pDLLName;
725 } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
726 typedef struct _PROVIDOR_INFO_1W{
727 LPWSTR pName;
728 LPWSTR pEnvironment;
729 LPWSTR pDLLName;
730 } PROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
731
732 typedef struct _PROVIDOR_INFO_2A{
733 LPSTR pOrder;
734 } PROVIDOR_INFO_2A, *PPROVIDOR_INFO_2A, *LPPROVIDOR_INFO_2A;
735 typedef struct _PROVIDOR_INFO_2W{
736 LPWSTR pOrder;
737 } PROVIDOR_INFO_2W, *LPPROVIDOR_INFO_2W;
738
739 typedef struct _BINARY_CONTAINER {
740 DWORD cbBuf;
741 LPBYTE pData;
742 } BINARY_CONTAINER, *PBINARY_CONTAINER;
743
744 typedef struct _BIDI_DATA {
745 DWORD dwBidiType;
746 union
747 {
748 BOOL bData;
749 INT iData;
750 LPWSTR sData;
751 FLOAT fData;
752 BINARY_CONTAINER biData;
753 } u;
754 } BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA;
755
756 typedef struct _BIDI_REQUEST_DATA {
757 DWORD dwReqNumber;
758 LPWSTR pSchema;
759 BIDI_DATA data;
760 } BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA;
761
762 typedef struct _BIDI_REQUEST_CONTAINER {
763 DWORD Version;
764 DWORD Flags;
765 DWORD Count;
766 BIDI_REQUEST_DATA aData[1];
767 } BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER;
768
769 typedef struct _BIDI_RESPONSE_DATA {
770 DWORD dwResult;
771 DWORD dwReqNumber;
772 LPWSTR pSchema;
773 BIDI_DATA data;
774 } BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA;
775
776 typedef struct _BIDI_RESPONSE_CONTAINER {
777 DWORD Version;
778 DWORD Flags;
779 DWORD Count;
780 BIDI_RESPONSE_DATA aData[1];
781 } BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER;
782
783 BOOL WINAPI AbortPrinter(HANDLE);
784 BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE);
785 BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE);
786 BOOL WINAPI AddJobA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
787 BOOL WINAPI AddJobW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
788 BOOL WINAPI AddMonitorA(LPSTR,DWORD,PBYTE);
789 BOOL WINAPI AddMonitorW(LPWSTR,DWORD,PBYTE);
790 BOOL WINAPI AddPortA(LPSTR,HWND,LPSTR);
791 BOOL WINAPI AddPortW(LPWSTR,HWND,LPWSTR);
792 HANDLE WINAPI AddPrinterA(LPSTR,DWORD,PBYTE);
793 HANDLE WINAPI AddPrinterW(LPWSTR,DWORD,PBYTE);
794 BOOL WINAPI AddPrinterConnectionA(LPSTR);
795 BOOL WINAPI AddPrinterConnectionW(LPWSTR);
796 BOOL WINAPI AddPrinterDriverA(LPSTR,DWORD,PBYTE);
797 BOOL WINAPI AddPrinterDriverW(LPWSTR,DWORD,PBYTE);
798 BOOL WINAPI AddPrintProcessorA(LPSTR,LPSTR,LPSTR,LPSTR);
799 BOOL WINAPI AddPrintProcessorW(LPWSTR,LPWSTR,LPWSTR,LPWSTR);
800 BOOL WINAPI AddPrintProvidorA(LPSTR,DWORD,PBYTE);
801 BOOL WINAPI AddPrintProvidorW(LPWSTR,DWORD,PBYTE);
802 LONG WINAPI AdvancedDocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA);
803 LONG WINAPI AdvancedDocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEW,PDEVMODEW);
804 BOOL WINAPI ClosePrinter(HANDLE);
805 BOOL WINAPI ConfigurePortA(LPSTR,HWND,LPSTR);
806 BOOL WINAPI ConfigurePortW(LPWSTR,HWND,LPWSTR);
807 HANDLE WINAPI ConnectToPrinterDlg(HWND,DWORD);
808 BOOL WINAPI DeleteFormA(HANDLE,LPSTR);
809 BOOL WINAPI DeleteFormW(HANDLE,LPWSTR);
810 BOOL WINAPI DeleteMonitorA(LPSTR,LPSTR,LPSTR);
811 BOOL WINAPI DeleteMonitorW(LPWSTR,LPWSTR,LPWSTR);
812 BOOL WINAPI DeletePortA(LPSTR,HWND,LPSTR);
813 BOOL WINAPI DeletePortW(LPWSTR,HWND,LPWSTR);
814 BOOL WINAPI DeletePrinter(HANDLE);
815 BOOL WINAPI DeletePrinterConnectionA(LPSTR);
816 BOOL WINAPI DeletePrinterConnectionW(LPWSTR);
817 DWORD WINAPI DeletePrinterDataA(HANDLE,LPSTR);
818 DWORD WINAPI DeletePrinterDataW(HANDLE,LPWSTR);
819 BOOL WINAPI DeletePrinterDriverA(LPSTR,LPSTR,LPSTR);
820 BOOL WINAPI DeletePrinterDriverW(LPWSTR,LPWSTR,LPWSTR);
821 BOOL WINAPI DeletePrintProcessorA(LPSTR,LPSTR,LPSTR);
822 BOOL WINAPI DeletePrintProcessorW(LPWSTR,LPWSTR,LPWSTR);
823 BOOL WINAPI DeletePrintProvidorA(LPSTR,LPSTR,LPSTR);
824 BOOL WINAPI DeletePrintProvidorW(LPWSTR,LPWSTR,LPWSTR);
825 LONG WINAPI DocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA,DWORD);
826 LONG WINAPI DocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEW,PDEVMODEW,DWORD);
827 BOOL WINAPI EndDocPrinter(HANDLE);
828 BOOL WINAPI EndPagePrinter(HANDLE);
829 BOOL WINAPI EnumFormsA(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
830 BOOL WINAPI EnumFormsW(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
831 BOOL WINAPI EnumJobsA(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
832 BOOL WINAPI EnumJobsW(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
833 BOOL WINAPI EnumMonitorsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
834 BOOL WINAPI EnumMonitorsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
835 BOOL WINAPI EnumPortsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
836 BOOL WINAPI EnumPortsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
837 DWORD WINAPI EnumPrinterDataA(HANDLE,DWORD,LPSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
838 DWORD WINAPI EnumPrinterDataW(HANDLE,DWORD,LPWSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
839 BOOL WINAPI EnumPrinterDriversA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
840 BOOL WINAPI EnumPrinterDriversW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
841 BOOL WINAPI EnumPrintersA(DWORD,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
842 BOOL WINAPI EnumPrintersW(DWORD,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
843 BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
844 BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
845 BOOL WINAPI EnumPrintProcessorsA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
846 BOOL WINAPI EnumPrintProcessorsW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
847 LONG WINAPI ExtDeviceMode(HWND,HANDLE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,DWORD);
848 BOOL WINAPI FindClosePrinterChangeNotification(HANDLE);
849 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE,DWORD,DWORD,PVOID);
850 HANDLE WINAPI FindNextPrinterChangeNotification(HANDLE,PDWORD,PVOID,PVOID*);
851 BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO);
852 #if _WIN32_WINNT >= 0x0500
853 BOOL WINAPI GetDefaultPrinterA(LPSTR,LPDWORD);
854 BOOL WINAPI GetDefaultPrinterW(LPWSTR,LPDWORD);
855 #endif
856 BOOL WINAPI GetFormA(HANDLE,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
857 BOOL WINAPI GetFormW(HANDLE,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
858 BOOL WINAPI GetJobA(HANDLE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD);
859 BOOL WINAPI GetJobW(HANDLE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD);
860 BOOL WINAPI GetPrinterA(HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
861 BOOL WINAPI GetPrinterW(HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
862 DWORD WINAPI GetPrinterDataA(HANDLE,LPSTR,PDWORD,LPBYTE,DWORD,LPDWORD);
863 DWORD WINAPI GetPrinterDataW(HANDLE,LPWSTR,LPDWORD,LPBYTE,DWORD,LPDWORD);
864 BOOL WINAPI GetPrinterDriverA(HANDLE,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
865 BOOL WINAPI GetPrinterDriverW(HANDLE,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
866 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
867 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
868 BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
869 BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
870 #if NTDDI_VERSION >= NTDDI_WINXPSP2
871 BOOL WINAPI IsValidDevmodeA(PDEVMODEA,size_t);
872 BOOL WINAPI IsValidDevmodeW(PDEVMODEW,size_t);
873 #endif
874 BOOL WINAPI OpenPrinterA(LPSTR,PHANDLE,LPPRINTER_DEFAULTSA);
875 BOOL WINAPI OpenPrinterW(LPWSTR,PHANDLE,LPPRINTER_DEFAULTSW);
876 DWORD WINAPI PrinterMessageBoxA(HANDLE,DWORD,HWND,LPSTR,LPSTR,DWORD);
877 DWORD WINAPI PrinterMessageBoxW(HANDLE,DWORD,HWND,LPWSTR,LPWSTR,DWORD);
878 BOOL WINAPI PrinterProperties(HWND,HANDLE);
879 BOOL WINAPI ReadPrinter(HANDLE,PVOID,DWORD,PDWORD);
880 BOOL WINAPI ResetPrinterA(HANDLE,LPPRINTER_DEFAULTSA);
881 BOOL WINAPI ResetPrinterW(HANDLE,LPPRINTER_DEFAULTSW);
882 BOOL WINAPI ScheduleJob(HANDLE,DWORD);
883 BOOL WINAPI SetFormA(HANDLE,LPSTR,DWORD,PBYTE);
884 BOOL WINAPI SetFormW(HANDLE,LPWSTR,DWORD,PBYTE);
885 BOOL WINAPI SetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD);
886 BOOL WINAPI SetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD);
887 BOOL WINAPI SetPrinterA(HANDLE,DWORD,PBYTE,DWORD);
888 BOOL WINAPI SetPrinterW(HANDLE,DWORD,PBYTE,DWORD);
889 BOOL WINAPI SetPrinterDataA(HANDLE,LPSTR,DWORD,PBYTE,DWORD);
890 BOOL WINAPI SetPrinterDataW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD);
891 #ifdef _WINE
892 LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc);
893 LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc);
894 #define StartDocDlg WINELIB_NAME_AW(StartDocDlg)
895 #endif
896 DWORD WINAPI StartDocPrinterA(HANDLE,DWORD,PBYTE);
897 DWORD WINAPI StartDocPrinterW(HANDLE,DWORD,PBYTE);
898 BOOL WINAPI StartPagePrinter(HANDLE);
899 DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD);
900 BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD);
901 BOOL WINAPI XcvDataW(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
902
903 #ifdef UNICODE
904 typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
905 typedef JOB_INFO_2W JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
906 typedef ADDJOB_INFO_1W ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
907 typedef DATATYPES_INFO_1W DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
908 typedef MONITOR_INFO_1W MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
909 typedef MONITOR_INFO_2W MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
910 typedef DOC_INFO_1W DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
911 typedef DOC_INFO_2W DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
912 typedef PORT_INFO_1W PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
913 typedef PORT_INFO_2W PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
914 typedef PORT_INFO_3W PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
915 typedef DRIVER_INFO_2W DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
916 typedef DRIVER_INFO_4W DRIVER_INFO_4,*PDRIVER_INFO_4,*LPDRIVER_INFO_4;
917 typedef DRIVER_INFO_5W DRIVER_INFO_5,*PDRIVER_INFO_5,*LPDRIVER_INFO_5;
918 typedef DRIVER_INFO_6W DRIVER_INFO_6,*PDRIVER_INFO_6,*LPDRIVER_INFO_6;
919 typedef DRIVER_INFO_8W DRIVER_INFO_8,*PDRIVER_INFO_8,*LPDRIVER_INFO_8;
920 typedef PRINTER_INFO_1W PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
921 typedef PRINTER_INFO_2W PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
922 typedef PRINTER_INFO_4W PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
923 typedef PRINTER_INFO_5W PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
924 typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
925 typedef FORM_INFO_1W FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
926 typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
927 typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1;
928 typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1;
929 typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2;
930 typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2;
931 #define AddForm AddFormW
932 #define AddJob AddJobW
933 #define AddMonitor AddMonitorW
934 #define AddPort AddPortW
935 #define AddPrinter AddPrinterW
936 #define AddPrinterConnection AddPrinterConnectionW
937 #define AddPrinterDriver AddPrinterDriverW
938 #define AddPrintProcessor AddPrintProcessorW
939 #define AddPrintProvidor AddPrintProvidorW
940 #define AdvancedDocumentProperties AdvancedDocumentPropertiesW
941 #define ConfigurePort ConfigurePortW
942 #define DeleteForm DeleteFormW
943 #define DeleteMonitor DeleteMonitorW
944 #define DeletePort DeletePortW
945 #define DeletePrinterConnection DeletePrinterConnectionW
946 #define DeletePrinterData DeletePrinterDataW
947 #define DeletePrinterDriver DeletePrinterDriverW
948 #define DeletePrintProcessor DeletePrinterProcessorW
949 #define DeletePrintProvidor DeletePrinterProvidorW
950 #define DocumentProperties DocumentPropertiesW
951 #define EnumForms EnumFormsW
952 #define EnumJobs EnumJobsW
953 #define EnumMonitors EnumMonitorsW
954 #define EnumPorts EnumPortsW
955 #define EnumPrinterData EnumPrinterDataW
956 #define EnumPrinterDrivers EnumPrinterDriversW
957 #define EnumPrinters EnumPrintersW
958 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
959 #define EnumPrintProcessors EnumPrintProcessorsW
960 #define GetDefaultPrinter GetDefaultPrinterW
961 #define GetForm GetFormW
962 #define GetJob GetJobW
963 #define GetPrinter GetPrinterW
964 #define GetPrinterData GetPrinterDataW
965 #define GetPrinterDriver GetPrinterDriverW
966 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
967 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
968 #define IsValidDevmode IsValidDevmodeW
969 #define OpenPrinter OpenPrinterW
970 #define PrinterMessageBox PrinterMessageBoxW
971 #define ResetPrinter ResetPrinterW
972 #define SetForm SetFormW
973 #define SetJob SetJobW
974 #define SetPrinter SetPrinterW
975 #define SetPrinterData SetPrinterDataW
976 #define StartDocPrinter StartDocPrinterW
977 #else
978 typedef JOB_INFO_1A JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
979 typedef JOB_INFO_2A JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
980 typedef ADDJOB_INFO_1A ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
981 typedef DATATYPES_INFO_1A DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
982 typedef MONITOR_INFO_1A MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
983 typedef MONITOR_INFO_2A MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
984 typedef DOC_INFO_1A DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
985 typedef DOC_INFO_2A DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
986 typedef PORT_INFO_1A PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
987 typedef PORT_INFO_2A PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
988 typedef PORT_INFO_3A PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
989 typedef DRIVER_INFO_2A DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
990 typedef DRIVER_INFO_4A DRIVER_INFO_4,*PDRIVER_INFO_4,*LPDRIVER_INFO_4;
991 typedef DRIVER_INFO_5A DRIVER_INFO_5,*PDRIVER_INFO_5,*LPDRIVER_INFO_5;
992 typedef DRIVER_INFO_6A DRIVER_INFO_6,*PDRIVER_INFO_6,*LPDRIVER_INFO_6;
993 typedef DRIVER_INFO_8A DRIVER_INFO_8,*PDRIVER_INFO_8,*LPDRIVER_INFO_8;
994 typedef PRINTER_INFO_1A PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
995 typedef PRINTER_INFO_2A PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
996 typedef PRINTER_INFO_4A PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
997 typedef PRINTER_INFO_5A PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
998 typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
999 typedef FORM_INFO_1A FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
1000 typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
1001 #define AddForm AddFormA
1002 #define AddJob AddJobA
1003 #define AddMonitor AddMonitorA
1004 #define AddPort AddPortA
1005 #define AddPrinter AddPrinterA
1006 #define AddPrinterConnection AddPrinterConnectionA
1007 #define AddPrinterDriver AddPrinterDriverA
1008 #define AddPrintProcessor AddPrintProcessorA
1009 #define AddPrintProvidor AddPrintProvidorA
1010 #define AdvancedDocumentProperties AdvancedDocumentPropertiesA
1011 #define ConfigurePort ConfigurePortA
1012 #define DeleteForm DeleteFormA
1013 #define DeleteMonitor DeleteMonitorA
1014 #define DeletePort DeletePortA
1015 #define DeletePrinterConnection DeletePrinterConnectionA
1016 #define DeletePrinterData DeletePrinterDataA
1017 #define DeletePrinterDriver DeletePrinterDriverA
1018 #define DeletePrintProcessor DeletePrinterProcessorA
1019 #define DeletePrintProvidor DeletePrinterProvidorA
1020 #define DocumentProperties DocumentPropertiesA
1021 #define EnumForms EnumFormsA
1022 #define EnumJobs EnumJobsA
1023 #define EnumMonitors EnumMonitorsA
1024 #define EnumPorts EnumPortsA
1025 #define EnumPrinterData EnumPrinterDataA
1026 #define EnumPrinterDrivers EnumPrinterDriversA
1027 #define EnumPrinters EnumPrintersA
1028 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
1029 #define EnumPrintProcessors EnumPrintProcessorsA
1030 #define GetDefaultPrinter GetDefaultPrinterA
1031 #define GetForm GetFormA
1032 #define GetJob GetJobA
1033 #define GetPrinter GetPrinterA
1034 #define GetPrinterData GetPrinterDataA
1035 #define GetPrinterDriver GetPrinterDriverA
1036 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
1037 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
1038 #define IsValidDevmode IsValidDevmodeA
1039 #define OpenPrinter OpenPrinterA
1040 #define PrinterMessageBox PrinterMessageBoxA
1041 #define ResetPrinter ResetPrinterA
1042 #define SetForm SetFormA
1043 #define SetJob SetJobA
1044 #define SetPrinter SetPrinterA
1045 #define SetPrinterData SetPrinterDataA
1046 #define StartDocPrinter StartDocPrinterA
1047 #endif
1048 #endif /* RC_INVOKED */
1049 #ifdef _MSC_VER
1050 #pragma warning(pop)
1051 #endif
1052 #ifdef __cplusplus
1053 }
1054 #endif
1055 #endif