comparison fuhtark_test/include/winapi/winspool.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _WINSPOOL_
7 #define _WINSPOOL_
8
9 #ifdef _WINUSER_
10 #include <prsht.h>
11 #endif
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 typedef struct _PRINTER_INFO_1A {
18 DWORD Flags;
19 LPSTR pDescription;
20 LPSTR pName;
21 LPSTR pComment;
22 } PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A;
23
24 typedef struct _PRINTER_INFO_1W {
25 DWORD Flags;
26 LPWSTR pDescription;
27 LPWSTR pName;
28 LPWSTR pComment;
29 } PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W;
30
31 #ifdef UNICODE
32 typedef PRINTER_INFO_1W PRINTER_INFO_1;
33 typedef PPRINTER_INFO_1W PPRINTER_INFO_1;
34 typedef LPPRINTER_INFO_1W LPPRINTER_INFO_1;
35 #else
36 typedef PRINTER_INFO_1A PRINTER_INFO_1;
37 typedef PPRINTER_INFO_1A PPRINTER_INFO_1;
38 typedef LPPRINTER_INFO_1A LPPRINTER_INFO_1;
39 #endif
40
41 typedef struct _PRINTER_INFO_2A {
42 LPSTR pServerName;
43 LPSTR pPrinterName;
44 LPSTR pShareName;
45 LPSTR pPortName;
46 LPSTR pDriverName;
47 LPSTR pComment;
48 LPSTR pLocation;
49 LPDEVMODEA pDevMode;
50 LPSTR pSepFile;
51 LPSTR pPrintProcessor;
52 LPSTR pDatatype;
53 LPSTR pParameters;
54 PSECURITY_DESCRIPTOR pSecurityDescriptor;
55 DWORD Attributes;
56 DWORD Priority;
57 DWORD DefaultPriority;
58 DWORD StartTime;
59 DWORD UntilTime;
60 DWORD Status;
61 DWORD cJobs;
62 DWORD AveragePPM;
63 } PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A;
64
65 typedef struct _PRINTER_INFO_2W {
66 LPWSTR pServerName;
67 LPWSTR pPrinterName;
68 LPWSTR pShareName;
69 LPWSTR pPortName;
70 LPWSTR pDriverName;
71 LPWSTR pComment;
72 LPWSTR pLocation;
73 LPDEVMODEW pDevMode;
74 LPWSTR pSepFile;
75 LPWSTR pPrintProcessor;
76 LPWSTR pDatatype;
77 LPWSTR pParameters;
78 PSECURITY_DESCRIPTOR pSecurityDescriptor;
79 DWORD Attributes;
80 DWORD Priority;
81 DWORD DefaultPriority;
82 DWORD StartTime;
83 DWORD UntilTime;
84 DWORD Status;
85 DWORD cJobs;
86 DWORD AveragePPM;
87 } PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W;
88
89 #ifdef UNICODE
90 typedef PRINTER_INFO_2W PRINTER_INFO_2;
91 typedef PPRINTER_INFO_2W PPRINTER_INFO_2;
92 typedef LPPRINTER_INFO_2W LPPRINTER_INFO_2;
93 #else
94 typedef PRINTER_INFO_2A PRINTER_INFO_2;
95 typedef PPRINTER_INFO_2A PPRINTER_INFO_2;
96 typedef LPPRINTER_INFO_2A LPPRINTER_INFO_2;
97 #endif
98
99 typedef struct _PRINTER_INFO_3 {
100 PSECURITY_DESCRIPTOR pSecurityDescriptor;
101 } PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3;
102
103 typedef struct _PRINTER_INFO_4A {
104 LPSTR pPrinterName;
105 LPSTR pServerName;
106 DWORD Attributes;
107 } PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A;
108
109 typedef struct _PRINTER_INFO_4W {
110 LPWSTR pPrinterName;
111 LPWSTR pServerName;
112 DWORD Attributes;
113 } PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W;
114
115 #ifdef UNICODE
116 typedef PRINTER_INFO_4W PRINTER_INFO_4;
117 typedef PPRINTER_INFO_4W PPRINTER_INFO_4;
118 typedef LPPRINTER_INFO_4W LPPRINTER_INFO_4;
119 #else
120 typedef PRINTER_INFO_4A PRINTER_INFO_4;
121 typedef PPRINTER_INFO_4A PPRINTER_INFO_4;
122 typedef LPPRINTER_INFO_4A LPPRINTER_INFO_4;
123 #endif
124
125 typedef struct _PRINTER_INFO_5A {
126 LPSTR pPrinterName;
127 LPSTR pPortName;
128 DWORD Attributes;
129 DWORD DeviceNotSelectedTimeout;
130 DWORD TransmissionRetryTimeout;
131 } PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A;
132
133 typedef struct _PRINTER_INFO_5W {
134 LPWSTR pPrinterName;
135 LPWSTR pPortName;
136 DWORD Attributes;
137 DWORD DeviceNotSelectedTimeout;
138 DWORD TransmissionRetryTimeout;
139 } PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W;
140
141 #ifdef UNICODE
142 typedef PRINTER_INFO_5W PRINTER_INFO_5;
143 typedef PPRINTER_INFO_5W PPRINTER_INFO_5;
144 typedef LPPRINTER_INFO_5W LPPRINTER_INFO_5;
145 #else
146 typedef PRINTER_INFO_5A PRINTER_INFO_5;
147 typedef PPRINTER_INFO_5A PPRINTER_INFO_5;
148 typedef LPPRINTER_INFO_5A LPPRINTER_INFO_5;
149 #endif
150
151 typedef struct _PRINTER_INFO_6 {
152 DWORD dwStatus;
153 } PRINTER_INFO_6,*PPRINTER_INFO_6,*LPPRINTER_INFO_6;
154
155 typedef struct _PRINTER_INFO_7A {
156 LPSTR pszObjectGUID;
157 DWORD dwAction;
158 } PRINTER_INFO_7A,*PPRINTER_INFO_7A,*LPPRINTER_INFO_7A;
159
160 typedef struct _PRINTER_INFO_7W {
161 LPWSTR pszObjectGUID;
162 DWORD dwAction;
163 } PRINTER_INFO_7W,*PPRINTER_INFO_7W,*LPPRINTER_INFO_7W;
164
165 #ifdef UNICODE
166 typedef PRINTER_INFO_7W PRINTER_INFO_7;
167 typedef PPRINTER_INFO_7W PPRINTER_INFO_7;
168 typedef LPPRINTER_INFO_7W LPPRINTER_INFO_7;
169 #else
170 typedef PRINTER_INFO_7A PRINTER_INFO_7;
171 typedef PPRINTER_INFO_7A PPRINTER_INFO_7;
172 typedef LPPRINTER_INFO_7A LPPRINTER_INFO_7;
173 #endif
174
175 #define DSPRINT_PUBLISH 0x00000001
176 #define DSPRINT_UPDATE 0x00000002
177 #define DSPRINT_UNPUBLISH 0x00000004
178 #define DSPRINT_REPUBLISH 0x00000008
179 #define DSPRINT_PENDING 0x80000000
180
181 typedef struct _PRINTER_INFO_8A {
182 LPDEVMODEA pDevMode;
183 } PRINTER_INFO_8A,*PPRINTER_INFO_8A,*LPPRINTER_INFO_8A;
184
185 typedef struct _PRINTER_INFO_8W {
186 LPDEVMODEW pDevMode;
187 } PRINTER_INFO_8W,*PPRINTER_INFO_8W,*LPPRINTER_INFO_8W;
188
189 #ifdef UNICODE
190 typedef PRINTER_INFO_8W PRINTER_INFO_8;
191 typedef PPRINTER_INFO_8W PPRINTER_INFO_8;
192 typedef LPPRINTER_INFO_8W LPPRINTER_INFO_8;
193 #else
194 typedef PRINTER_INFO_8A PRINTER_INFO_8;
195 typedef PPRINTER_INFO_8A PPRINTER_INFO_8;
196 typedef LPPRINTER_INFO_8A LPPRINTER_INFO_8;
197 #endif
198
199 typedef struct _PRINTER_INFO_9A {
200 LPDEVMODEA pDevMode;
201 } PRINTER_INFO_9A,*PPRINTER_INFO_9A,*LPPRINTER_INFO_9A;
202
203 typedef struct _PRINTER_INFO_9W {
204 LPDEVMODEW pDevMode;
205 } PRINTER_INFO_9W,*PPRINTER_INFO_9W,*LPPRINTER_INFO_9W;
206
207 #ifdef UNICODE
208 typedef PRINTER_INFO_9W PRINTER_INFO_9;
209 typedef PPRINTER_INFO_9W PPRINTER_INFO_9;
210 typedef LPPRINTER_INFO_9W LPPRINTER_INFO_9;
211 #else
212 typedef PRINTER_INFO_9A PRINTER_INFO_9;
213 typedef PPRINTER_INFO_9A PPRINTER_INFO_9;
214 typedef LPPRINTER_INFO_9A LPPRINTER_INFO_9;
215 #endif
216
217 #define PRINTER_CONTROL_PAUSE 1
218 #define PRINTER_CONTROL_RESUME 2
219 #define PRINTER_CONTROL_PURGE 3
220 #define PRINTER_CONTROL_SET_STATUS 4
221
222 #define PRINTER_STATUS_PAUSED 0x00000001
223 #define PRINTER_STATUS_ERROR 0x00000002
224 #define PRINTER_STATUS_PENDING_DELETION 0x00000004
225 #define PRINTER_STATUS_PAPER_JAM 0x00000008
226 #define PRINTER_STATUS_PAPER_OUT 0x00000010
227 #define PRINTER_STATUS_MANUAL_FEED 0x00000020
228 #define PRINTER_STATUS_PAPER_PROBLEM 0x00000040
229 #define PRINTER_STATUS_OFFLINE 0x00000080
230 #define PRINTER_STATUS_IO_ACTIVE 0x00000100
231 #define PRINTER_STATUS_BUSY 0x00000200
232 #define PRINTER_STATUS_PRINTING 0x00000400
233 #define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800
234 #define PRINTER_STATUS_NOT_AVAILABLE 0x00001000
235 #define PRINTER_STATUS_WAITING 0x00002000
236 #define PRINTER_STATUS_PROCESSING 0x00004000
237 #define PRINTER_STATUS_INITIALIZING 0x00008000
238 #define PRINTER_STATUS_WARMING_UP 0x00010000
239 #define PRINTER_STATUS_TONER_LOW 0x00020000
240 #define PRINTER_STATUS_NO_TONER 0x00040000
241 #define PRINTER_STATUS_PAGE_PUNT 0x00080000
242 #define PRINTER_STATUS_USER_INTERVENTION 0x00100000
243 #define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000
244 #define PRINTER_STATUS_DOOR_OPEN 0x00400000
245 #define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000
246 #define PRINTER_STATUS_POWER_SAVE 0x01000000
247
248 #define PRINTER_ATTRIBUTE_QUEUED 0x00000001
249 #define PRINTER_ATTRIBUTE_DIRECT 0x00000002
250 #define PRINTER_ATTRIBUTE_DEFAULT 0x00000004
251 #define PRINTER_ATTRIBUTE_SHARED 0x00000008
252 #define PRINTER_ATTRIBUTE_NETWORK 0x00000010
253 #define PRINTER_ATTRIBUTE_HIDDEN 0x00000020
254 #define PRINTER_ATTRIBUTE_LOCAL 0x00000040
255
256 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080
257 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100
258 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
259
260 #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400
261 #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800
262 #define PRINTER_ATTRIBUTE_RAW_ONLY 0x00001000
263 #define PRINTER_ATTRIBUTE_PUBLISHED 0x00002000
264 #define PRINTER_ATTRIBUTE_FAX 0x00004000
265 #define PRINTER_ATTRIBUTE_TS 0x00008000
266
267 #define NO_PRIORITY 0
268 #define MAX_PRIORITY 99
269 #define MIN_PRIORITY 1
270 #define DEF_PRIORITY 1
271
272 typedef struct _JOB_INFO_1A {
273 DWORD JobId;
274 LPSTR pPrinterName;
275 LPSTR pMachineName;
276 LPSTR pUserName;
277 LPSTR pDocument;
278 LPSTR pDatatype;
279 LPSTR pStatus;
280 DWORD Status;
281 DWORD Priority;
282 DWORD Position;
283 DWORD TotalPages;
284 DWORD PagesPrinted;
285 SYSTEMTIME Submitted;
286 } JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A;
287
288 typedef struct _JOB_INFO_1W {
289 DWORD JobId;
290 LPWSTR pPrinterName;
291 LPWSTR pMachineName;
292 LPWSTR pUserName;
293 LPWSTR pDocument;
294 LPWSTR pDatatype;
295 LPWSTR pStatus;
296 DWORD Status;
297 DWORD Priority;
298 DWORD Position;
299 DWORD TotalPages;
300 DWORD PagesPrinted;
301 SYSTEMTIME Submitted;
302 } JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W;
303
304 #ifdef UNICODE
305 typedef JOB_INFO_1W JOB_INFO_1;
306 typedef PJOB_INFO_1W PJOB_INFO_1;
307 typedef LPJOB_INFO_1W LPJOB_INFO_1;
308 #else
309 typedef JOB_INFO_1A JOB_INFO_1;
310 typedef PJOB_INFO_1A PJOB_INFO_1;
311 typedef LPJOB_INFO_1A LPJOB_INFO_1;
312 #endif
313
314 typedef struct _JOB_INFO_2A {
315 DWORD JobId;
316 LPSTR pPrinterName;
317 LPSTR pMachineName;
318 LPSTR pUserName;
319 LPSTR pDocument;
320 LPSTR pNotifyName;
321 LPSTR pDatatype;
322 LPSTR pPrintProcessor;
323 LPSTR pParameters;
324 LPSTR pDriverName;
325 LPDEVMODEA pDevMode;
326 LPSTR pStatus;
327 PSECURITY_DESCRIPTOR pSecurityDescriptor;
328 DWORD Status;
329 DWORD Priority;
330 DWORD Position;
331 DWORD StartTime;
332 DWORD UntilTime;
333 DWORD TotalPages;
334 DWORD Size;
335 SYSTEMTIME Submitted;
336 DWORD Time;
337 DWORD PagesPrinted;
338 } JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A;
339
340 typedef struct _JOB_INFO_2W {
341 DWORD JobId;
342 LPWSTR pPrinterName;
343 LPWSTR pMachineName;
344 LPWSTR pUserName;
345 LPWSTR pDocument;
346 LPWSTR pNotifyName;
347 LPWSTR pDatatype;
348 LPWSTR pPrintProcessor;
349 LPWSTR pParameters;
350 LPWSTR pDriverName;
351 LPDEVMODEW pDevMode;
352 LPWSTR pStatus;
353 PSECURITY_DESCRIPTOR pSecurityDescriptor;
354 DWORD Status;
355 DWORD Priority;
356 DWORD Position;
357 DWORD StartTime;
358 DWORD UntilTime;
359 DWORD TotalPages;
360 DWORD Size;
361 SYSTEMTIME Submitted;
362 DWORD Time;
363 DWORD PagesPrinted;
364 } JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W;
365
366 #ifdef UNICODE
367 typedef JOB_INFO_2W JOB_INFO_2;
368 typedef PJOB_INFO_2W PJOB_INFO_2;
369 typedef LPJOB_INFO_2W LPJOB_INFO_2;
370 #else
371 typedef JOB_INFO_2A JOB_INFO_2;
372 typedef PJOB_INFO_2A PJOB_INFO_2;
373 typedef LPJOB_INFO_2A LPJOB_INFO_2;
374 #endif
375
376 typedef struct _JOB_INFO_3 {
377 DWORD JobId;
378 DWORD NextJobId;
379 DWORD Reserved;
380 } JOB_INFO_3,*PJOB_INFO_3,*LPJOB_INFO_3;
381
382 #define JOB_CONTROL_PAUSE 1
383 #define JOB_CONTROL_RESUME 2
384 #define JOB_CONTROL_CANCEL 3
385 #define JOB_CONTROL_RESTART 4
386 #define JOB_CONTROL_DELETE 5
387 #define JOB_CONTROL_SENT_TO_PRINTER 6
388 #define JOB_CONTROL_LAST_PAGE_EJECTED 7
389
390 #define JOB_STATUS_PAUSED 0x00000001
391 #define JOB_STATUS_ERROR 0x00000002
392 #define JOB_STATUS_DELETING 0x00000004
393 #define JOB_STATUS_SPOOLING 0x00000008
394 #define JOB_STATUS_PRINTING 0x00000010
395 #define JOB_STATUS_OFFLINE 0x00000020
396 #define JOB_STATUS_PAPEROUT 0x00000040
397 #define JOB_STATUS_PRINTED 0x00000080
398 #define JOB_STATUS_DELETED 0x00000100
399 #define JOB_STATUS_BLOCKED_DEVQ 0x00000200
400 #define JOB_STATUS_USER_INTERVENTION 0x00000400
401 #define JOB_STATUS_RESTART 0x00000800
402 #define JOB_STATUS_COMPLETE 0x00001000
403
404 #define JOB_POSITION_UNSPECIFIED 0
405
406 typedef struct _ADDJOB_INFO_1A {
407 LPSTR Path;
408 DWORD JobId;
409 } ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A;
410
411 typedef struct _ADDJOB_INFO_1W {
412 LPWSTR Path;
413 DWORD JobId;
414 } ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W;
415
416 #ifdef UNICODE
417 typedef ADDJOB_INFO_1W ADDJOB_INFO_1;
418 typedef PADDJOB_INFO_1W PADDJOB_INFO_1;
419 typedef LPADDJOB_INFO_1W LPADDJOB_INFO_1;
420 #else
421 typedef ADDJOB_INFO_1A ADDJOB_INFO_1;
422 typedef PADDJOB_INFO_1A PADDJOB_INFO_1;
423 typedef LPADDJOB_INFO_1A LPADDJOB_INFO_1;
424 #endif
425
426 typedef struct _DRIVER_INFO_1A {
427 LPSTR pName;
428 } DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A;
429
430 typedef struct _DRIVER_INFO_1W {
431 LPWSTR pName;
432 } DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W;
433
434 #ifdef UNICODE
435 typedef DRIVER_INFO_1W DRIVER_INFO_1;
436 typedef PDRIVER_INFO_1W PDRIVER_INFO_1;
437 typedef LPDRIVER_INFO_1W LPDRIVER_INFO_1;
438 #else
439 typedef DRIVER_INFO_1A DRIVER_INFO_1;
440 typedef PDRIVER_INFO_1A PDRIVER_INFO_1;
441 typedef LPDRIVER_INFO_1A LPDRIVER_INFO_1;
442 #endif
443
444 typedef struct _DRIVER_INFO_2A {
445 DWORD cVersion;
446 LPSTR pName;
447 LPSTR pEnvironment;
448 LPSTR pDriverPath;
449 LPSTR pDataFile;
450 LPSTR pConfigFile;
451 } DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A;
452
453 typedef struct _DRIVER_INFO_2W {
454 DWORD cVersion;
455 LPWSTR pName;
456 LPWSTR pEnvironment;
457 LPWSTR pDriverPath;
458 LPWSTR pDataFile;
459 LPWSTR pConfigFile;
460 } DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W;
461
462 #ifdef UNICODE
463 typedef DRIVER_INFO_2W DRIVER_INFO_2;
464 typedef PDRIVER_INFO_2W PDRIVER_INFO_2;
465 typedef LPDRIVER_INFO_2W LPDRIVER_INFO_2;
466 #else
467 typedef DRIVER_INFO_2A DRIVER_INFO_2;
468 typedef PDRIVER_INFO_2A PDRIVER_INFO_2;
469 typedef LPDRIVER_INFO_2A LPDRIVER_INFO_2;
470 #endif
471
472 typedef struct _DRIVER_INFO_3A {
473 DWORD cVersion;
474 LPSTR pName;
475 LPSTR pEnvironment;
476 LPSTR pDriverPath;
477 LPSTR pDataFile;
478 LPSTR pConfigFile;
479 LPSTR pHelpFile;
480 LPSTR pDependentFiles;
481 LPSTR pMonitorName;
482 LPSTR pDefaultDataType;
483 } DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A;
484
485 typedef struct _DRIVER_INFO_3W {
486 DWORD cVersion;
487 LPWSTR pName;
488 LPWSTR pEnvironment;
489 LPWSTR pDriverPath;
490 LPWSTR pDataFile;
491 LPWSTR pConfigFile;
492 LPWSTR pHelpFile;
493 LPWSTR pDependentFiles;
494 LPWSTR pMonitorName;
495 LPWSTR pDefaultDataType;
496 } DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W;
497
498 #ifdef UNICODE
499 typedef DRIVER_INFO_3W DRIVER_INFO_3;
500 typedef PDRIVER_INFO_3W PDRIVER_INFO_3;
501 typedef LPDRIVER_INFO_3W LPDRIVER_INFO_3;
502 #else
503 typedef DRIVER_INFO_3A DRIVER_INFO_3;
504 typedef PDRIVER_INFO_3A PDRIVER_INFO_3;
505 typedef LPDRIVER_INFO_3A LPDRIVER_INFO_3;
506 #endif
507
508 typedef struct _DRIVER_INFO_4A {
509 DWORD cVersion;
510 LPSTR pName;
511 LPSTR pEnvironment;
512 LPSTR pDriverPath;
513 LPSTR pDataFile;
514 LPSTR pConfigFile;
515 LPSTR pHelpFile;
516 LPSTR pDependentFiles;
517 LPSTR pMonitorName;
518 LPSTR pDefaultDataType;
519 LPSTR pszzPreviousNames;
520 } DRIVER_INFO_4A,*PDRIVER_INFO_4A,*LPDRIVER_INFO_4A;
521
522 typedef struct _DRIVER_INFO_4W {
523 DWORD cVersion;
524 LPWSTR pName;
525 LPWSTR pEnvironment;
526 LPWSTR pDriverPath;
527 LPWSTR pDataFile;
528 LPWSTR pConfigFile;
529 LPWSTR pHelpFile;
530 LPWSTR pDependentFiles;
531 LPWSTR pMonitorName;
532 LPWSTR pDefaultDataType;
533 LPWSTR pszzPreviousNames;
534 } DRIVER_INFO_4W,*PDRIVER_INFO_4W,*LPDRIVER_INFO_4W;
535
536 #ifdef UNICODE
537 typedef DRIVER_INFO_4W DRIVER_INFO_4;
538 typedef PDRIVER_INFO_4W PDRIVER_INFO_4;
539 typedef LPDRIVER_INFO_4W LPDRIVER_INFO_4;
540 #else
541 typedef DRIVER_INFO_4A DRIVER_INFO_4;
542 typedef PDRIVER_INFO_4A PDRIVER_INFO_4;
543 typedef LPDRIVER_INFO_4A LPDRIVER_INFO_4;
544 #endif
545
546 typedef struct _DRIVER_INFO_5A {
547 DWORD cVersion;
548 LPSTR pName;
549 LPSTR pEnvironment;
550 LPSTR pDriverPath;
551 LPSTR pDataFile;
552 LPSTR pConfigFile;
553 DWORD dwDriverAttributes;
554 DWORD dwConfigVersion;
555 DWORD dwDriverVersion;
556 } DRIVER_INFO_5A,*PDRIVER_INFO_5A,*LPDRIVER_INFO_5A;
557
558 typedef struct _DRIVER_INFO_5W {
559 DWORD cVersion;
560 LPWSTR pName;
561 LPWSTR pEnvironment;
562 LPWSTR pDriverPath;
563 LPWSTR pDataFile;
564 LPWSTR pConfigFile;
565 DWORD dwDriverAttributes;
566 DWORD dwConfigVersion;
567 DWORD dwDriverVersion;
568 } DRIVER_INFO_5W,*PDRIVER_INFO_5W,*LPDRIVER_INFO_5W;
569
570 #ifdef UNICODE
571 typedef DRIVER_INFO_5W DRIVER_INFO_5;
572 typedef PDRIVER_INFO_5W PDRIVER_INFO_5;
573 typedef LPDRIVER_INFO_5W LPDRIVER_INFO_5;
574 #else
575 typedef DRIVER_INFO_5A DRIVER_INFO_5;
576 typedef PDRIVER_INFO_5A PDRIVER_INFO_5;
577 typedef LPDRIVER_INFO_5A LPDRIVER_INFO_5;
578 #endif
579
580 typedef struct _DRIVER_INFO_6A {
581 DWORD cVersion;
582 LPSTR pName;
583 LPSTR pEnvironment;
584 LPSTR pDriverPath;
585 LPSTR pDataFile;
586 LPSTR pConfigFile;
587 LPSTR pHelpFile;
588 LPSTR pDependentFiles;
589 LPSTR pMonitorName;
590 LPSTR pDefaultDataType;
591 LPSTR pszzPreviousNames;
592 FILETIME ftDriverDate;
593 DWORDLONG dwlDriverVersion;
594 LPSTR pszMfgName;
595 LPSTR pszOEMUrl;
596 LPSTR pszHardwareID;
597 LPSTR pszProvider;
598 } DRIVER_INFO_6A,*PDRIVER_INFO_6A,*LPDRIVER_INFO_6A;
599
600 typedef struct _DRIVER_INFO_6W {
601 DWORD cVersion;
602 LPWSTR pName;
603 LPWSTR pEnvironment;
604 LPWSTR pDriverPath;
605 LPWSTR pDataFile;
606 LPWSTR pConfigFile;
607 LPWSTR pHelpFile;
608 LPWSTR pDependentFiles;
609 LPWSTR pMonitorName;
610 LPWSTR pDefaultDataType;
611 LPWSTR pszzPreviousNames;
612 FILETIME ftDriverDate;
613 DWORDLONG dwlDriverVersion;
614 LPWSTR pszMfgName;
615 LPWSTR pszOEMUrl;
616 LPWSTR pszHardwareID;
617 LPWSTR pszProvider;
618 } DRIVER_INFO_6W,*PDRIVER_INFO_6W,*LPDRIVER_INFO_6W;
619
620 #ifdef UNICODE
621 typedef DRIVER_INFO_6W DRIVER_INFO_6;
622 typedef PDRIVER_INFO_6W PDRIVER_INFO_6;
623 typedef LPDRIVER_INFO_6W LPDRIVER_INFO_6;
624 #else
625 typedef DRIVER_INFO_6A DRIVER_INFO_6;
626 typedef PDRIVER_INFO_6A PDRIVER_INFO_6;
627 typedef LPDRIVER_INFO_6A LPDRIVER_INFO_6;
628 #endif
629
630 #define DRIVER_KERNELMODE 0x00000001
631 #define DRIVER_USERMODE 0x00000002
632
633 #define DPD_DELETE_UNUSED_FILES 0x00000001
634 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002
635 #define DPD_DELETE_ALL_FILES 0x00000004
636
637 #define APD_STRICT_UPGRADE 0x00000001
638 #define APD_STRICT_DOWNGRADE 0x00000002
639 #define APD_COPY_ALL_FILES 0x00000004
640 #define APD_COPY_NEW_FILES 0x00000008
641 #define APD_COPY_FROM_DIRECTORY 0x00000010
642
643 typedef struct _DOC_INFO_1A {
644 LPSTR pDocName;
645 LPSTR pOutputFile;
646 LPSTR pDatatype;
647 } DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A;
648
649 typedef struct _DOC_INFO_1W {
650 LPWSTR pDocName;
651 LPWSTR pOutputFile;
652 LPWSTR pDatatype;
653 } DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W;
654
655 #ifdef UNICODE
656 typedef DOC_INFO_1W DOC_INFO_1;
657 typedef PDOC_INFO_1W PDOC_INFO_1;
658 typedef LPDOC_INFO_1W LPDOC_INFO_1;
659 #else
660 typedef DOC_INFO_1A DOC_INFO_1;
661 typedef PDOC_INFO_1A PDOC_INFO_1;
662 typedef LPDOC_INFO_1A LPDOC_INFO_1;
663 #endif
664
665 typedef struct _FORM_INFO_1A {
666 DWORD Flags;
667 LPSTR pName;
668 SIZEL Size;
669 RECTL ImageableArea;
670 } FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A;
671
672 typedef struct _FORM_INFO_1W {
673 DWORD Flags;
674 LPWSTR pName;
675 SIZEL Size;
676 RECTL ImageableArea;
677 } FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W;
678
679 #ifdef UNICODE
680 typedef FORM_INFO_1W FORM_INFO_1;
681 typedef PFORM_INFO_1W PFORM_INFO_1;
682 typedef LPFORM_INFO_1W LPFORM_INFO_1;
683 #else
684 typedef FORM_INFO_1A FORM_INFO_1;
685 typedef PFORM_INFO_1A PFORM_INFO_1;
686 typedef LPFORM_INFO_1A LPFORM_INFO_1;
687 #endif
688
689 typedef struct _DOC_INFO_2A {
690 LPSTR pDocName;
691 LPSTR pOutputFile;
692 LPSTR pDatatype;
693 DWORD dwMode;
694 DWORD JobId;
695 } DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A;
696
697 typedef struct _DOC_INFO_2W {
698 LPWSTR pDocName;
699 LPWSTR pOutputFile;
700 LPWSTR pDatatype;
701 DWORD dwMode;
702 DWORD JobId;
703 } DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W;
704
705 #ifdef UNICODE
706 typedef DOC_INFO_2W DOC_INFO_2;
707 typedef PDOC_INFO_2W PDOC_INFO_2;
708 typedef LPDOC_INFO_2W LPDOC_INFO_2;
709 #else
710 typedef DOC_INFO_2A DOC_INFO_2;
711 typedef PDOC_INFO_2A PDOC_INFO_2;
712 typedef LPDOC_INFO_2A LPDOC_INFO_2;
713 #endif
714
715 #define DI_CHANNEL 1
716 #define DI_READ_SPOOL_JOB 3
717
718 typedef struct _DOC_INFO_3A {
719 LPSTR pDocName;
720 LPSTR pOutputFile;
721 LPSTR pDatatype;
722 DWORD dwFlags;
723 } DOC_INFO_3A,*PDOC_INFO_3A,*LPDOC_INFO_3A;
724
725 typedef struct _DOC_INFO_3W {
726 LPWSTR pDocName;
727 LPWSTR pOutputFile;
728 LPWSTR pDatatype;
729 DWORD dwFlags;
730 } DOC_INFO_3W,*PDOC_INFO_3W,*LPDOC_INFO_3W;
731
732 #ifdef UNICODE
733 typedef DOC_INFO_3W DOC_INFO_3;
734 typedef PDOC_INFO_3W PDOC_INFO_3;
735 typedef LPDOC_INFO_3W LPDOC_INFO_3;
736 #else
737 typedef DOC_INFO_3A DOC_INFO_3;
738 typedef PDOC_INFO_3A PDOC_INFO_3;
739 typedef LPDOC_INFO_3A LPDOC_INFO_3;
740 #endif
741
742 #define DI_MEMORYMAP_WRITE 0x00000001
743
744 #define FORM_USER 0x00000000
745 #define FORM_BUILTIN 0x00000001
746 #define FORM_PRINTER 0x00000002
747
748 typedef struct _PRINTPROCESSOR_INFO_1A {
749 LPSTR pName;
750 } PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A;
751
752 typedef struct _PRINTPROCESSOR_INFO_1W {
753 LPWSTR pName;
754 } PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W;
755
756 #ifdef UNICODE
757 typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1;
758 typedef PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1;
759 typedef LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1;
760 #else
761 typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1;
762 typedef PPRINTPROCESSOR_INFO_1A PPRINTPROCESSOR_INFO_1;
763 typedef LPPRINTPROCESSOR_INFO_1A LPPRINTPROCESSOR_INFO_1;
764 #endif
765
766 typedef struct _PRINTPROCESSOR_CAPS_1 {
767 DWORD dwLevel;
768 DWORD dwNupOptions;
769 DWORD dwPageOrderFlags;
770 DWORD dwNumberOfCopies;
771 } PRINTPROCESSOR_CAPS_1,*PPRINTPROCESSOR_CAPS_1;
772
773 #define NORMAL_PRINT 0x00000000
774 #define REVERSE_PRINT 0x00000001
775
776 typedef struct _PORT_INFO_1A {
777 LPSTR pName;
778 } PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A;
779 typedef struct _PORT_INFO_1W {
780 LPWSTR pName;
781 } PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W;
782
783 #ifdef UNICODE
784 typedef PORT_INFO_1W PORT_INFO_1;
785 typedef PPORT_INFO_1W PPORT_INFO_1;
786 typedef LPPORT_INFO_1W LPPORT_INFO_1;
787 #else
788 typedef PORT_INFO_1A PORT_INFO_1;
789 typedef PPORT_INFO_1A PPORT_INFO_1;
790 typedef LPPORT_INFO_1A LPPORT_INFO_1;
791 #endif
792
793 typedef struct _PORT_INFO_2A {
794 LPSTR pPortName;
795 LPSTR pMonitorName;
796 LPSTR pDescription;
797 DWORD fPortType;
798 DWORD Reserved;
799 } PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A;
800
801 typedef struct _PORT_INFO_2W {
802 LPWSTR pPortName;
803 LPWSTR pMonitorName;
804 LPWSTR pDescription;
805 DWORD fPortType;
806 DWORD Reserved;
807 } PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W;
808
809 #ifdef UNICODE
810 typedef PORT_INFO_2W PORT_INFO_2;
811 typedef PPORT_INFO_2W PPORT_INFO_2;
812 typedef LPPORT_INFO_2W LPPORT_INFO_2;
813 #else
814 typedef PORT_INFO_2A PORT_INFO_2;
815 typedef PPORT_INFO_2A PPORT_INFO_2;
816 typedef LPPORT_INFO_2A LPPORT_INFO_2;
817 #endif
818
819 #define PORT_TYPE_WRITE 0x0001
820 #define PORT_TYPE_READ 0x0002
821 #define PORT_TYPE_REDIRECTED 0x0004
822 #define PORT_TYPE_NET_ATTACHED 0x0008
823
824 typedef struct _PORT_INFO_3A {
825 DWORD dwStatus;
826 LPSTR pszStatus;
827 DWORD dwSeverity;
828 } PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A;
829
830 typedef struct _PORT_INFO_3W {
831 DWORD dwStatus;
832 LPWSTR pszStatus;
833 DWORD dwSeverity;
834 } PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W;
835
836 #ifdef UNICODE
837 typedef PORT_INFO_3W PORT_INFO_3;
838 typedef PPORT_INFO_3W PPORT_INFO_3;
839 typedef LPPORT_INFO_3W LPPORT_INFO_3;
840 #else
841 typedef PORT_INFO_3A PORT_INFO_3;
842 typedef PPORT_INFO_3A PPORT_INFO_3;
843 typedef LPPORT_INFO_3A LPPORT_INFO_3;
844 #endif
845
846 #define PORT_STATUS_TYPE_ERROR 1
847 #define PORT_STATUS_TYPE_WARNING 2
848 #define PORT_STATUS_TYPE_INFO 3
849
850 #define PORT_STATUS_OFFLINE 1
851 #define PORT_STATUS_PAPER_JAM 2
852 #define PORT_STATUS_PAPER_OUT 3
853 #define PORT_STATUS_OUTPUT_BIN_FULL 4
854 #define PORT_STATUS_PAPER_PROBLEM 5
855 #define PORT_STATUS_NO_TONER 6
856 #define PORT_STATUS_DOOR_OPEN 7
857 #define PORT_STATUS_USER_INTERVENTION 8
858 #define PORT_STATUS_OUT_OF_MEMORY 9
859 #define PORT_STATUS_TONER_LOW 10
860 #define PORT_STATUS_WARMING_UP 11
861 #define PORT_STATUS_POWER_SAVE 12
862
863 typedef struct _MONITOR_INFO_1A{
864 LPSTR pName;
865 } MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A;
866
867 typedef struct _MONITOR_INFO_1W{
868 LPWSTR pName;
869 } MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W;
870
871 #ifdef UNICODE
872 typedef MONITOR_INFO_1W MONITOR_INFO_1;
873 typedef PMONITOR_INFO_1W PMONITOR_INFO_1;
874 typedef LPMONITOR_INFO_1W LPMONITOR_INFO_1;
875 #else
876 typedef MONITOR_INFO_1A MONITOR_INFO_1;
877 typedef PMONITOR_INFO_1A PMONITOR_INFO_1;
878 typedef LPMONITOR_INFO_1A LPMONITOR_INFO_1;
879 #endif
880
881 typedef struct _MONITOR_INFO_2A {
882 LPSTR pName;
883 LPSTR pEnvironment;
884 LPSTR pDLLName;
885 } MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A;
886
887 typedef struct _MONITOR_INFO_2W {
888 LPWSTR pName;
889 LPWSTR pEnvironment;
890 LPWSTR pDLLName;
891 } MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W;
892
893 #ifdef UNICODE
894 typedef MONITOR_INFO_2W MONITOR_INFO_2;
895 typedef PMONITOR_INFO_2W PMONITOR_INFO_2;
896 typedef LPMONITOR_INFO_2W LPMONITOR_INFO_2;
897 #else
898 typedef MONITOR_INFO_2A MONITOR_INFO_2;
899 typedef PMONITOR_INFO_2A PMONITOR_INFO_2;
900 typedef LPMONITOR_INFO_2A LPMONITOR_INFO_2;
901 #endif
902
903 typedef struct _DATATYPES_INFO_1A {
904 LPSTR pName;
905 } DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A;
906
907 typedef struct _DATATYPES_INFO_1W {
908 LPWSTR pName;
909 } DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W;
910
911 #ifdef UNICODE
912 typedef DATATYPES_INFO_1W DATATYPES_INFO_1;
913 typedef PDATATYPES_INFO_1W PDATATYPES_INFO_1;
914 typedef LPDATATYPES_INFO_1W LPDATATYPES_INFO_1;
915 #else
916 typedef DATATYPES_INFO_1A DATATYPES_INFO_1;
917 typedef PDATATYPES_INFO_1A PDATATYPES_INFO_1;
918 typedef LPDATATYPES_INFO_1A LPDATATYPES_INFO_1;
919 #endif
920
921 typedef struct _PRINTER_DEFAULTSA {
922 LPSTR pDatatype;
923 LPDEVMODEA pDevMode;
924 ACCESS_MASK DesiredAccess;
925 } PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA;
926
927 typedef struct _PRINTER_DEFAULTSW {
928 LPWSTR pDatatype;
929 LPDEVMODEW pDevMode;
930 ACCESS_MASK DesiredAccess;
931 } PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW;
932
933 #ifdef UNICODE
934 typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS;
935 typedef PPRINTER_DEFAULTSW PPRINTER_DEFAULTS;
936 typedef LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS;
937 #else
938 typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS;
939 typedef PPRINTER_DEFAULTSA PPRINTER_DEFAULTS;
940 typedef LPPRINTER_DEFAULTSA LPPRINTER_DEFAULTS;
941 #endif
942
943 typedef struct _PRINTER_ENUM_VALUESA {
944 LPSTR pValueName;
945 DWORD cbValueName;
946 DWORD dwType;
947 LPBYTE pData;
948 DWORD cbData;
949 } PRINTER_ENUM_VALUESA,*PPRINTER_ENUM_VALUESA,*LPPRINTER_ENUM_VALUESA;
950
951 typedef struct _PRINTER_ENUM_VALUESW {
952 LPWSTR pValueName;
953 DWORD cbValueName;
954 DWORD dwType;
955 LPBYTE pData;
956 DWORD cbData;
957 } PRINTER_ENUM_VALUESW,*PPRINTER_ENUM_VALUESW,*LPPRINTER_ENUM_VALUESW;
958
959 #ifdef UNICODE
960 typedef PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES;
961 typedef PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES;
962 typedef LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES;
963 #else
964 typedef PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUES;
965 typedef PPRINTER_ENUM_VALUESA PPRINTER_ENUM_VALUES;
966 typedef LPPRINTER_ENUM_VALUESA LPPRINTER_ENUM_VALUES;
967 #endif
968
969 #ifdef UNICODE
970 #define EnumPrinters EnumPrintersW
971 #else
972 #define EnumPrinters EnumPrintersA
973 #endif
974
975 WINBOOL WINAPI EnumPrintersA(DWORD Flags,LPSTR Name,DWORD Level,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
976 WINBOOL WINAPI EnumPrintersW(DWORD Flags,LPWSTR Name,DWORD Level,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
977
978 #define PRINTER_ENUM_DEFAULT 0x00000001
979 #define PRINTER_ENUM_LOCAL 0x00000002
980 #define PRINTER_ENUM_CONNECTIONS 0x00000004
981 #define PRINTER_ENUM_FAVORITE 0x00000004
982 #define PRINTER_ENUM_NAME 0x00000008
983 #define PRINTER_ENUM_REMOTE 0x00000010
984 #define PRINTER_ENUM_SHARED 0x00000020
985 #define PRINTER_ENUM_NETWORK 0x00000040
986
987 #define PRINTER_ENUM_EXPAND 0x00004000
988 #define PRINTER_ENUM_CONTAINER 0x00008000
989
990 #define PRINTER_ENUM_ICONMASK 0x00ff0000
991 #define PRINTER_ENUM_ICON1 0x00010000
992 #define PRINTER_ENUM_ICON2 0x00020000
993 #define PRINTER_ENUM_ICON3 0x00040000
994 #define PRINTER_ENUM_ICON4 0x00080000
995 #define PRINTER_ENUM_ICON5 0x00100000
996 #define PRINTER_ENUM_ICON6 0x00200000
997 #define PRINTER_ENUM_ICON7 0x00400000
998 #define PRINTER_ENUM_ICON8 0x00800000
999 #define PRINTER_ENUM_HIDE 0x01000000
1000
1001 #define SPOOL_FILE_PERSISTENT 0x00000001
1002 #define SPOOL_FILE_TEMPORARY 0x00000002
1003
1004 #ifdef UNICODE
1005 #define OpenPrinter OpenPrinterW
1006 #define ResetPrinter ResetPrinterW
1007 #define SetJob SetJobW
1008 #define GetJob GetJobW
1009 #define EnumJobs EnumJobsW
1010 #define AddPrinter AddPrinterW
1011 #define SetPrinter SetPrinterW
1012 #define GetPrinter GetPrinterW
1013 #define AddPrinterDriver AddPrinterDriverW
1014 #define AddPrinterDriverEx AddPrinterDriverExW
1015 #define EnumPrinterDrivers EnumPrinterDriversW
1016 #define GetPrinterDriver GetPrinterDriverW
1017 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
1018 #define DeletePrinterDriver DeletePrinterDriverW
1019 #define DeletePrinterDriverEx DeletePrinterDriverExW
1020 #define AddPrintProcessor AddPrintProcessorW
1021 #define EnumPrintProcessors EnumPrintProcessorsW
1022 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
1023 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
1024 #define DeletePrintProcessor DeletePrintProcessorW
1025 #define StartDocPrinter StartDocPrinterW
1026 #define AddJob AddJobW
1027 #define DocumentProperties DocumentPropertiesW
1028 #define AdvancedDocumentProperties AdvancedDocumentPropertiesW
1029 #define GetPrinterData GetPrinterDataW
1030 #define GetPrinterDataEx GetPrinterDataExW
1031 #define EnumPrinterData EnumPrinterDataW
1032 #define EnumPrinterDataEx EnumPrinterDataExW
1033 #define EnumPrinterKey EnumPrinterKeyW
1034 #define SetPrinterData SetPrinterDataW
1035 #define SetPrinterDataEx SetPrinterDataExW
1036 #define DeletePrinterData DeletePrinterDataW
1037 #define DeletePrinterDataEx DeletePrinterDataExW
1038 #define DeletePrinterKey DeletePrinterKeyW
1039 #else
1040 #define OpenPrinter OpenPrinterA
1041 #define ResetPrinter ResetPrinterA
1042 #define SetJob SetJobA
1043 #define GetJob GetJobA
1044 #define EnumJobs EnumJobsA
1045 #define AddPrinter AddPrinterA
1046 #define SetPrinter SetPrinterA
1047 #define GetPrinter GetPrinterA
1048 #define AddPrinterDriver AddPrinterDriverA
1049 #define AddPrinterDriverEx AddPrinterDriverExA
1050 #define EnumPrinterDrivers EnumPrinterDriversA
1051 #define GetPrinterDriver GetPrinterDriverA
1052 #define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
1053 #define DeletePrinterDriver DeletePrinterDriverA
1054 #define DeletePrinterDriverEx DeletePrinterDriverExA
1055 #define AddPrintProcessor AddPrintProcessorA
1056 #define EnumPrintProcessors EnumPrintProcessorsA
1057 #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
1058 #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
1059 #define DeletePrintProcessor DeletePrintProcessorA
1060 #define StartDocPrinter StartDocPrinterA
1061 #define AddJob AddJobA
1062 #define DocumentProperties DocumentPropertiesA
1063 #define AdvancedDocumentProperties AdvancedDocumentPropertiesA
1064 #define GetPrinterData GetPrinterDataA
1065 #define GetPrinterDataEx GetPrinterDataExA
1066 #define EnumPrinterData EnumPrinterDataA
1067 #define EnumPrinterDataEx EnumPrinterDataExA
1068 #define EnumPrinterKey EnumPrinterKeyA
1069 #define SetPrinterData SetPrinterDataA
1070 #define SetPrinterDataEx SetPrinterDataExA
1071 #define DeletePrinterData DeletePrinterDataA
1072 #define DeletePrinterDataEx DeletePrinterDataExA
1073 #define DeletePrinterKey DeletePrinterKeyA
1074 #endif
1075
1076 WINBOOL WINAPI OpenPrinterA(LPSTR pPrinterName,LPHANDLE phPrinter,LPPRINTER_DEFAULTSA pDefault);
1077 WINBOOL WINAPI OpenPrinterW(LPWSTR pPrinterName,LPHANDLE phPrinter,LPPRINTER_DEFAULTSW pDefault);
1078 WINBOOL WINAPI ResetPrinterA(HANDLE hPrinter,LPPRINTER_DEFAULTSA pDefault);
1079 WINBOOL WINAPI ResetPrinterW(HANDLE hPrinter,LPPRINTER_DEFAULTSW pDefault);
1080 WINBOOL WINAPI SetJobA(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD Command);
1081 WINBOOL WINAPI SetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD Command);
1082 WINBOOL WINAPI GetJobA(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded);
1083 WINBOOL WINAPI GetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded);
1084 WINBOOL WINAPI EnumJobsA(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1085 WINBOOL WINAPI EnumJobsW(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1086 HANDLE WINAPI AddPrinterA(LPSTR pName,DWORD Level,LPBYTE pPrinter);
1087 HANDLE WINAPI AddPrinterW(LPWSTR pName,DWORD Level,LPBYTE pPrinter);
1088 WINBOOL WINAPI DeletePrinter(HANDLE hPrinter);
1089 WINBOOL WINAPI SetPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD Command);
1090 WINBOOL WINAPI SetPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD Command);
1091 WINBOOL WINAPI GetPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD cbBuf,LPDWORD pcbNeeded);
1092 WINBOOL WINAPI GetPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD cbBuf,LPDWORD pcbNeeded);
1093 WINBOOL WINAPI AddPrinterDriverA(LPSTR pName,DWORD Level,LPBYTE pDriverInfo);
1094 WINBOOL WINAPI AddPrinterDriverW(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo);
1095 WINBOOL WINAPI AddPrinterDriverExA(LPSTR pName,DWORD Level,LPBYTE pDriverInfo,DWORD dwFileCopyFlags);
1096 WINBOOL WINAPI AddPrinterDriverExW(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo,DWORD dwFileCopyFlags);
1097 WINBOOL WINAPI EnumPrinterDriversA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1098 WINBOOL WINAPI EnumPrinterDriversW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1099 WINBOOL WINAPI GetPrinterDriverA(HANDLE hPrinter,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded);
1100 WINBOOL WINAPI GetPrinterDriverW(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded);
1101 WINBOOL WINAPI GetPrinterDriverDirectoryA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverDirectory,DWORD cbBuf,LPDWORD pcbNeeded);
1102 WINBOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverDirectory,DWORD cbBuf,LPDWORD pcbNeeded);
1103 WINBOOL WINAPI DeletePrinterDriverA(LPSTR pName,LPSTR pEnvironment,LPSTR pDriverName);
1104 WINBOOL WINAPI DeletePrinterDriverW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName);
1105 WINBOOL WINAPI DeletePrinterDriverExA(LPSTR pName,LPSTR pEnvironment,LPSTR pDriverName,DWORD dwDeleteFlag,DWORD dwVersionFlag);
1106 WINBOOL WINAPI DeletePrinterDriverExW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName,DWORD dwDeleteFlag,DWORD dwVersionFlag);
1107 WINBOOL WINAPI AddPrintProcessorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPathName,LPSTR pPrintProcessorName);
1108 WINBOOL WINAPI AddPrintProcessorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPathName,LPWSTR pPrintProcessorName);
1109 WINBOOL WINAPI EnumPrintProcessorsA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1110 WINBOOL WINAPI EnumPrintProcessorsW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1111 WINBOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded);
1112 WINBOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded);
1113 WINBOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,LPSTR pPrintProcessorName,DWORD Level,LPBYTE pDatatypes,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1114 WINBOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,LPWSTR pPrintProcessorName,DWORD Level,LPBYTE pDatatypes,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1115 WINBOOL WINAPI DeletePrintProcessorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPrintProcessorName);
1116 WINBOOL WINAPI DeletePrintProcessorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPrintProcessorName);
1117 DWORD WINAPI StartDocPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pDocInfo);
1118 DWORD WINAPI StartDocPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pDocInfo);
1119 WINBOOL WINAPI StartPagePrinter(HANDLE hPrinter);
1120 WINBOOL WINAPI WritePrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pcWritten);
1121 WINBOOL WINAPI FlushPrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pcWritten,DWORD cSleep);
1122 WINBOOL WINAPI EndPagePrinter(HANDLE hPrinter);
1123 WINBOOL WINAPI AbortPrinter(HANDLE hPrinter);
1124 WINBOOL WINAPI ReadPrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pNoBytesRead);
1125 WINBOOL WINAPI EndDocPrinter(HANDLE hPrinter);
1126 WINBOOL WINAPI AddJobA(HANDLE hPrinter,DWORD Level,LPBYTE pData,DWORD cbBuf,LPDWORD pcbNeeded);
1127 WINBOOL WINAPI AddJobW(HANDLE hPrinter,DWORD Level,LPBYTE pData,DWORD cbBuf,LPDWORD pcbNeeded);
1128 WINBOOL WINAPI ScheduleJob(HANDLE hPrinter,DWORD JobId);
1129 WINBOOL WINAPI PrinterProperties(HWND hWnd,HANDLE hPrinter);
1130 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,LPSTR pDeviceName,PDEVMODEA pDevModeOutput,PDEVMODEA pDevModeInput,DWORD fMode);
1131 LONG WINAPI DocumentPropertiesW(HWND hWnd,HANDLE hPrinter,LPWSTR pDeviceName,PDEVMODEW pDevModeOutput,PDEVMODEW pDevModeInput,DWORD fMode);
1132 LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd,HANDLE hPrinter,LPSTR pDeviceName,PDEVMODEA pDevModeOutput,PDEVMODEA pDevModeInput);
1133 LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd,HANDLE hPrinter,LPWSTR pDeviceName,PDEVMODEW pDevModeOutput,PDEVMODEW pDevModeInput);
1134 LONG ExtDeviceMode(HWND hWnd,HANDLE hInst,LPDEVMODEA pDevModeOutput,LPSTR pDeviceName,LPSTR pPort,LPDEVMODEA pDevModeInput,LPSTR pProfile,DWORD fMode);
1135 DWORD WINAPI GetPrinterDataA(HANDLE hPrinter,LPSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded);
1136 DWORD WINAPI GetPrinterDataW(HANDLE hPrinter,LPWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded);
1137 DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded);
1138 DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded);
1139 DWORD WINAPI EnumPrinterDataA(HANDLE hPrinter,DWORD dwIndex,LPSTR pValueName,DWORD cbValueName,LPDWORD pcbValueName,LPDWORD pType,LPBYTE pData,DWORD cbData,LPDWORD pcbData);
1140 DWORD WINAPI EnumPrinterDataW(HANDLE hPrinter,DWORD dwIndex,LPWSTR pValueName,DWORD cbValueName,LPDWORD pcbValueName,LPDWORD pType,LPBYTE pData,DWORD cbData,LPDWORD pcbData);
1141 DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPBYTE pEnumValues,DWORD cbEnumValues,LPDWORD pcbEnumValues,LPDWORD pnEnumValues);
1142 DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPBYTE pEnumValues,DWORD cbEnumValues,LPDWORD pcbEnumValues,LPDWORD pnEnumValues);
1143 DWORD WINAPI EnumPrinterKeyA(HANDLE hPrinter,LPCSTR pKeyName,LPSTR pSubkey,DWORD cbSubkey,LPDWORD pcbSubkey);
1144 DWORD WINAPI EnumPrinterKeyW(HANDLE hPrinter,LPCWSTR pKeyName,LPWSTR pSubkey,DWORD cbSubkey,LPDWORD pcbSubkey);
1145 DWORD WINAPI SetPrinterDataA(HANDLE hPrinter,LPSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData);
1146 DWORD WINAPI SetPrinterDataW(HANDLE hPrinter,LPWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData);
1147 DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData);
1148 DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData);
1149 DWORD WINAPI DeletePrinterDataA(HANDLE hPrinter,LPSTR pValueName);
1150 DWORD WINAPI DeletePrinterDataW(HANDLE hPrinter,LPWSTR pValueName);
1151 DWORD WINAPI DeletePrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName);
1152 DWORD WINAPI DeletePrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName);
1153 DWORD WINAPI DeletePrinterKeyA(HANDLE hPrinter,LPCSTR pKeyName);
1154 DWORD WINAPI DeletePrinterKeyW(HANDLE hPrinter,LPCWSTR pKeyName);
1155
1156 #define PRINTER_NOTIFY_TYPE 0x00
1157 #define JOB_NOTIFY_TYPE 0x01
1158
1159 #define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00
1160 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01
1161 #define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02
1162 #define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03
1163 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04
1164 #define PRINTER_NOTIFY_FIELD_COMMENT 0x05
1165 #define PRINTER_NOTIFY_FIELD_LOCATION 0x06
1166 #define PRINTER_NOTIFY_FIELD_DEVMODE 0x07
1167 #define PRINTER_NOTIFY_FIELD_SEPFILE 0x08
1168 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09
1169 #define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0A
1170 #define PRINTER_NOTIFY_FIELD_DATATYPE 0x0B
1171 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C
1172 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0D
1173 #define PRINTER_NOTIFY_FIELD_PRIORITY 0x0E
1174 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0F
1175 #define PRINTER_NOTIFY_FIELD_START_TIME 0x10
1176 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11
1177 #define PRINTER_NOTIFY_FIELD_STATUS 0x12
1178 #define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13
1179 #define PRINTER_NOTIFY_FIELD_CJOBS 0x14
1180 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15
1181 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16
1182 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17
1183 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18
1184 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19
1185 #define PRINTER_NOTIFY_FIELD_OBJECT_GUID 0x1A
1186
1187 #define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00
1188 #define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01
1189 #define JOB_NOTIFY_FIELD_PORT_NAME 0x02
1190 #define JOB_NOTIFY_FIELD_USER_NAME 0x03
1191 #define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04
1192 #define JOB_NOTIFY_FIELD_DATATYPE 0x05
1193 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06
1194 #define JOB_NOTIFY_FIELD_PARAMETERS 0x07
1195 #define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08
1196 #define JOB_NOTIFY_FIELD_DEVMODE 0x09
1197 #define JOB_NOTIFY_FIELD_STATUS 0x0A
1198 #define JOB_NOTIFY_FIELD_STATUS_STRING 0x0B
1199 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C
1200 #define JOB_NOTIFY_FIELD_DOCUMENT 0x0D
1201 #define JOB_NOTIFY_FIELD_PRIORITY 0x0E
1202 #define JOB_NOTIFY_FIELD_POSITION 0x0F
1203 #define JOB_NOTIFY_FIELD_SUBMITTED 0x10
1204 #define JOB_NOTIFY_FIELD_START_TIME 0x11
1205 #define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12
1206 #define JOB_NOTIFY_FIELD_TIME 0x13
1207 #define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14
1208 #define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15
1209 #define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16
1210 #define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17
1211
1212 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
1213 WORD Type;
1214 WORD Reserved0;
1215 DWORD Reserved1;
1216 DWORD Reserved2;
1217 DWORD Count;
1218 PWORD pFields;
1219 } PRINTER_NOTIFY_OPTIONS_TYPE,*PPRINTER_NOTIFY_OPTIONS_TYPE,*LPPRINTER_NOTIFY_OPTIONS_TYPE;
1220
1221 #define PRINTER_NOTIFY_OPTIONS_REFRESH 0x01
1222
1223 typedef struct _PRINTER_NOTIFY_OPTIONS {
1224 DWORD Version;
1225 DWORD Flags;
1226 DWORD Count;
1227 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
1228 } PRINTER_NOTIFY_OPTIONS,*PPRINTER_NOTIFY_OPTIONS,*LPPRINTER_NOTIFY_OPTIONS;
1229
1230 #define PRINTER_NOTIFY_INFO_DISCARDED 0x01
1231
1232 typedef struct _PRINTER_NOTIFY_INFO_DATA {
1233 WORD Type;
1234 WORD Field;
1235 DWORD Reserved;
1236 DWORD Id;
1237 union {
1238 DWORD adwData[2];
1239 struct {
1240 DWORD cbBuf;
1241 LPVOID pBuf;
1242 } Data;
1243 } NotifyData;
1244 } PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA;
1245
1246 typedef struct _PRINTER_NOTIFY_INFO {
1247 DWORD Version;
1248 DWORD Flags;
1249 DWORD Count;
1250 PRINTER_NOTIFY_INFO_DATA aData[1];
1251 } PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO;
1252
1253 typedef struct _BINARY_CONTAINER{
1254 DWORD cbBuf;
1255 LPBYTE pData;
1256 } BINARY_CONTAINER,*PBINARY_CONTAINER;
1257
1258 typedef struct _BIDI_DATA{
1259 DWORD dwBidiType;
1260 union {
1261 WINBOOL bData;
1262 LONG iData;
1263 LPWSTR sData;
1264 FLOAT fData;
1265 BINARY_CONTAINER biData;
1266 } u;
1267 } BIDI_DATA,*PBIDI_DATA,*LPBIDI_DATA;
1268
1269 typedef struct _BIDI_REQUEST_DATA{
1270 DWORD dwReqNumber;
1271 LPWSTR pSchema;
1272 BIDI_DATA data;
1273 } BIDI_REQUEST_DATA ,*PBIDI_REQUEST_DATA ,*LPBIDI_REQUEST_DATA;
1274
1275 typedef struct _BIDI_REQUEST_CONTAINER{
1276 DWORD Version;
1277 DWORD Flags;
1278 DWORD Count;
1279 BIDI_REQUEST_DATA aData[1 ];
1280 }BIDI_REQUEST_CONTAINER,*PBIDI_REQUEST_CONTAINER,*LPBIDI_REQUEST_CONTAINER;
1281
1282 typedef struct _BIDI_RESPONSE_DATA{
1283 DWORD dwResult;
1284 DWORD dwReqNumber;
1285 LPWSTR pSchema;
1286 BIDI_DATA data;
1287 } BIDI_RESPONSE_DATA,*PBIDI_RESPONSE_DATA,*LPBIDI_RESPONSE_DATA;
1288
1289 typedef struct _BIDI_RESPONSE_CONTAINER{
1290 DWORD Version;
1291 DWORD Flags;
1292 DWORD Count;
1293 BIDI_RESPONSE_DATA aData[1 ];
1294 } BIDI_RESPONSE_CONTAINER,*PBIDI_RESPONSE_CONTAINER,*LPBIDI_RESPONSE_CONTAINER;
1295
1296 #define BIDI_ACTION_ENUM_SCHEMA L"EnumSchema"
1297 #define BIDI_ACTION_GET L"Get"
1298 #define BIDI_ACTION_SET L"Set"
1299 #define BIDI_ACTION_GET_ALL L"GetAll"
1300
1301 typedef enum {
1302 BIDI_NULL = 0,BIDI_INT = 1,BIDI_FLOAT = 2,BIDI_BOOL = 3,BIDI_STRING = 4,BIDI_TEXT = 5,BIDI_ENUM = 6,BIDI_BLOB = 7
1303 } BIDI_TYPE;
1304
1305 #define BIDI_ACCESS_ADMINISTRATOR 0x1
1306 #define BIDI_ACCESS_USER 0x2
1307
1308 #define ERROR_BIDI_STATUS_OK 0
1309 #define ERROR_BIDI_NOT_SUPPORTED ERROR_NOT_SUPPORTED
1310
1311 #define ERROR_BIDI_ERROR_BASE 13000
1312 #define ERROR_BIDI_STATUS_WARNING (ERROR_BIDI_ERROR_BASE + 1)
1313 #define ERROR_BIDI_SCHEMA_READ_ONLY (ERROR_BIDI_ERROR_BASE + 2)
1314 #define ERROR_BIDI_SERVER_OFFLINE (ERROR_BIDI_ERROR_BASE + 3)
1315 #define ERROR_BIDI_DEVICE_OFFLINE (ERROR_BIDI_ERROR_BASE + 4)
1316 #define ERROR_BIDI_SCHEMA_NOT_SUPPORTED (ERROR_BIDI_ERROR_BASE + 5)
1317
1318 DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter,DWORD Flags);
1319 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,DWORD fdwFlags,DWORD fdwOptions,LPVOID pPrinterNotifyOptions);
1320 WINBOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,PDWORD pdwChange,LPVOID pPrinterNotifyOptions,LPVOID *ppPrinterNotifyInfo);
1321 WINBOOL WINAPI FreePrinterNotifyInfo (PPRINTER_NOTIFY_INFO pPrinterNotifyInfo);
1322 WINBOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange);
1323
1324 #define PRINTER_CHANGE_ADD_PRINTER 0x00000001
1325 #define PRINTER_CHANGE_SET_PRINTER 0x00000002
1326 #define PRINTER_CHANGE_DELETE_PRINTER 0x00000004
1327 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
1328 #define PRINTER_CHANGE_PRINTER 0x000000FF
1329 #define PRINTER_CHANGE_ADD_JOB 0x00000100
1330 #define PRINTER_CHANGE_SET_JOB 0x00000200
1331 #define PRINTER_CHANGE_DELETE_JOB 0x00000400
1332 #define PRINTER_CHANGE_WRITE_JOB 0x00000800
1333 #define PRINTER_CHANGE_JOB 0x0000FF00
1334 #define PRINTER_CHANGE_ADD_FORM 0x00010000
1335 #define PRINTER_CHANGE_SET_FORM 0x00020000
1336 #define PRINTER_CHANGE_DELETE_FORM 0x00040000
1337 #define PRINTER_CHANGE_FORM 0x00070000
1338 #define PRINTER_CHANGE_ADD_PORT 0x00100000
1339 #define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000
1340 #define PRINTER_CHANGE_DELETE_PORT 0x00400000
1341 #define PRINTER_CHANGE_PORT 0x00700000
1342 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000
1343 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000
1344 #define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000
1345 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000
1346 #define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000
1347 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000
1348 #define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000
1349 #define PRINTER_CHANGE_TIMEOUT 0x80000000
1350 #define PRINTER_CHANGE_ALL 0x7777FFFF
1351
1352 #ifdef UNICODE
1353 #define PrinterMessageBox PrinterMessageBoxW
1354 #define AddForm AddFormW
1355 #define DeleteForm DeleteFormW
1356 #define GetForm GetFormW
1357 #define SetForm SetFormW
1358 #define EnumForms EnumFormsW
1359 #define EnumMonitors EnumMonitorsW
1360 #define AddMonitor AddMonitorW
1361 #define DeleteMonitor DeleteMonitorW
1362 #define EnumPorts EnumPortsW
1363 #define AddPort AddPortW
1364 #define ConfigurePort ConfigurePortW
1365 #define DeletePort DeletePortW
1366 #define GetDefaultPrinter GetDefaultPrinterW
1367 #define SetDefaultPrinter SetDefaultPrinterW
1368 #define SetPort SetPortW
1369 #define AddPrinterConnection AddPrinterConnectionW
1370 #define DeletePrinterConnection DeletePrinterConnectionW
1371 #else
1372 #define PrinterMessageBox PrinterMessageBoxA
1373 #define AddForm AddFormA
1374 #define DeleteForm DeleteFormA
1375 #define GetForm GetFormA
1376 #define SetForm SetFormA
1377 #define EnumForms EnumFormsA
1378 #define EnumMonitors EnumMonitorsA
1379 #define AddMonitor AddMonitorA
1380 #define DeleteMonitor DeleteMonitorA
1381 #define EnumPorts EnumPortsA
1382 #define AddPort AddPortA
1383 #define ConfigurePort ConfigurePortA
1384 #define DeletePort DeletePortA
1385 #define GetDefaultPrinter GetDefaultPrinterA
1386 #define SetDefaultPrinter SetDefaultPrinterA
1387 #define SetPort SetPortA
1388 #define AddPrinterConnection AddPrinterConnectionA
1389 #define DeletePrinterConnection DeletePrinterConnectionA
1390 #endif
1391
1392 DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter,DWORD Error,HWND hWnd,LPSTR pText,LPSTR pCaption,DWORD dwType);
1393 DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter,DWORD Error,HWND hWnd,LPWSTR pText,LPWSTR pCaption,DWORD dwType);
1394
1395 #define PRINTER_ERROR_INFORMATION 0x80000000
1396 #define PRINTER_ERROR_WARNING 0x40000000
1397 #define PRINTER_ERROR_SEVERE 0x20000000
1398
1399 #define PRINTER_ERROR_OUTOFPAPER 0x00000001
1400 #define PRINTER_ERROR_JAM 0x00000002
1401 #define PRINTER_ERROR_OUTOFTONER 0x00000004
1402
1403 WINBOOL WINAPI ClosePrinter(HANDLE hPrinter);
1404 WINBOOL WINAPI AddFormA(HANDLE hPrinter,DWORD Level,LPBYTE pForm);
1405 WINBOOL WINAPI AddFormW(HANDLE hPrinter,DWORD Level,LPBYTE pForm);
1406 WINBOOL WINAPI DeleteFormA(HANDLE hPrinter,LPSTR pFormName);
1407 WINBOOL WINAPI DeleteFormW(HANDLE hPrinter,LPWSTR pFormName);
1408 WINBOOL WINAPI GetFormA(HANDLE hPrinter,LPSTR pFormName,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded);
1409 WINBOOL WINAPI GetFormW(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded);
1410 WINBOOL WINAPI SetFormA(HANDLE hPrinter,LPSTR pFormName,DWORD Level,LPBYTE pForm);
1411 WINBOOL WINAPI SetFormW(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm);
1412 WINBOOL WINAPI EnumFormsA(HANDLE hPrinter,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1413 WINBOOL WINAPI EnumFormsW(HANDLE hPrinter,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1414 WINBOOL WINAPI EnumMonitorsA(LPSTR pName,DWORD Level,LPBYTE pMonitor,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1415 WINBOOL WINAPI EnumMonitorsW(LPWSTR pName,DWORD Level,LPBYTE pMonitor,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1416 WINBOOL WINAPI AddMonitorA(LPSTR pName,DWORD Level,LPBYTE pMonitorInfo);
1417 WINBOOL WINAPI AddMonitorW(LPWSTR pName,DWORD Level,LPBYTE pMonitorInfo);
1418 WINBOOL WINAPI DeleteMonitorA(LPSTR pName,LPSTR pEnvironment,LPSTR pMonitorName);
1419 WINBOOL WINAPI DeleteMonitorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pMonitorName);
1420 WINBOOL WINAPI EnumPortsA(LPSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1421 WINBOOL WINAPI EnumPortsW(LPWSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned);
1422 WINBOOL WINAPI AddPortA(LPSTR pName,HWND hWnd,LPSTR pMonitorName);
1423 WINBOOL WINAPI AddPortW(LPWSTR pName,HWND hWnd,LPWSTR pMonitorName);
1424 WINBOOL WINAPI ConfigurePortA(LPSTR pName,HWND hWnd,LPSTR pPortName);
1425 WINBOOL WINAPI ConfigurePortW(LPWSTR pName,HWND hWnd,LPWSTR pPortName);
1426 WINBOOL WINAPI DeletePortA(LPSTR pName,HWND hWnd,LPSTR pPortName);
1427 WINBOOL WINAPI DeletePortW(LPWSTR pName,HWND hWnd,LPWSTR pPortName);
1428 WINBOOL WINAPI XcvDataW(HANDLE hXcv,PCWSTR pszDataName,PBYTE pInputData,DWORD cbInputData,PBYTE pOutputData,DWORD cbOutputData,PDWORD pcbOutputNeeded,PDWORD pdwStatus);
1429
1430 #define XcvData XcvDataW
1431
1432 WINBOOL WINAPI GetDefaultPrinterA(LPSTR pszBuffer,LPDWORD pcchBuffer);
1433 WINBOOL WINAPI GetDefaultPrinterW(LPWSTR pszBuffer,LPDWORD pcchBuffer);
1434 WINBOOL WINAPI SetDefaultPrinterA(LPCSTR pszPrinter);
1435 WINBOOL WINAPI SetDefaultPrinterW(LPCWSTR pszPrinter);
1436 WINBOOL WINAPI SetPortA(LPSTR pName,LPSTR pPortName,DWORD dwLevel,LPBYTE pPortInfo);
1437 WINBOOL WINAPI SetPortW(LPWSTR pName,LPWSTR pPortName,DWORD dwLevel,LPBYTE pPortInfo);
1438 WINBOOL WINAPI AddPrinterConnectionA(LPSTR pName);
1439 WINBOOL WINAPI AddPrinterConnectionW(LPWSTR pName);
1440 WINBOOL WINAPI DeletePrinterConnectionA(LPSTR pName);
1441 WINBOOL WINAPI DeletePrinterConnectionW(LPWSTR pName);
1442 HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd,DWORD Flags);
1443
1444 typedef struct _PROVIDOR_INFO_1A{
1445 LPSTR pName;
1446 LPSTR pEnvironment;
1447 LPSTR pDLLName;
1448 } PROVIDOR_INFO_1A,*PPROVIDOR_INFO_1A,*LPPROVIDOR_INFO_1A;
1449
1450 typedef struct _PROVIDOR_INFO_1W{
1451 LPWSTR pName;
1452 LPWSTR pEnvironment;
1453 LPWSTR pDLLName;
1454 } PROVIDOR_INFO_1W,*PPROVIDOR_INFO_1W,*LPPROVIDOR_INFO_1W;
1455
1456 #ifdef UNICODE
1457 typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1;
1458 typedef PPROVIDOR_INFO_1W PPROVIDOR_INFO_1;
1459 typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1;
1460 #else
1461 typedef PROVIDOR_INFO_1A PROVIDOR_INFO_1;
1462 typedef PPROVIDOR_INFO_1A PPROVIDOR_INFO_1;
1463 typedef LPPROVIDOR_INFO_1A LPPROVIDOR_INFO_1;
1464 #endif
1465
1466 typedef struct _PROVIDOR_INFO_2A{
1467 LPSTR pOrder;
1468 } PROVIDOR_INFO_2A,*PPROVIDOR_INFO_2A,*LPPROVIDOR_INFO_2A;
1469
1470 typedef struct _PROVIDOR_INFO_2W{
1471 LPWSTR pOrder;
1472 } PROVIDOR_INFO_2W,*PPROVIDOR_INFO_2W,*LPPROVIDOR_INFO_2W;
1473
1474 #ifdef UNICODE
1475 typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2;
1476 typedef PPROVIDOR_INFO_2W PPROVIDOR_INFO_2;
1477 typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2;
1478 #else
1479 typedef PROVIDOR_INFO_2A PROVIDOR_INFO_2;
1480 typedef PPROVIDOR_INFO_2A PPROVIDOR_INFO_2;
1481 typedef LPPROVIDOR_INFO_2A LPPROVIDOR_INFO_2;
1482 #endif
1483
1484 #ifdef UNICODE
1485 #define AddPrintProvidor AddPrintProvidorW
1486 #define DeletePrintProvidor DeletePrintProvidorW
1487 #define IsValidDevmode IsValidDevmodeW
1488 #else
1489 #define AddPrintProvidor AddPrintProvidorA
1490 #define DeletePrintProvidor DeletePrintProvidorA
1491 #define IsValidDevmode IsValidDevmodeA
1492 #endif
1493
1494 WINBOOL WINAPI AddPrintProvidorA(LPSTR pName,DWORD level,LPBYTE pProvidorInfo);
1495 WINBOOL WINAPI AddPrintProvidorW(LPWSTR pName,DWORD level,LPBYTE pProvidorInfo);
1496 WINBOOL WINAPI DeletePrintProvidorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPrintProvidorName);
1497 WINBOOL WINAPI DeletePrintProvidorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPrintProvidorName);
1498 WINBOOL WINAPI IsValidDevmodeA (PDEVMODEA pDevmode,size_t DevmodeSize);
1499 WINBOOL WINAPI IsValidDevmodeW (PDEVMODEW pDevmode,size_t DevmodeSize);
1500
1501 #define SPLREG_DEFAULT_SPOOL_DIRECTORY TEXT("DefaultSpoolDirectory")
1502 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULT TEXT("PortThreadPriorityDefault")
1503 #define SPLREG_PORT_THREAD_PRIORITY TEXT("PortThreadPriority")
1504 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT TEXT("SchedulerThreadPriorityDefault")
1505 #define SPLREG_SCHEDULER_THREAD_PRIORITY TEXT("SchedulerThreadPriority")
1506 #define SPLREG_BEEP_ENABLED TEXT("BeepEnabled")
1507 #define SPLREG_NET_POPUP TEXT("NetPopup")
1508 #define SPLREG_RETRY_POPUP TEXT("RetryPopup")
1509 #define SPLREG_NET_POPUP_TO_COMPUTER TEXT("NetPopupToComputer")
1510 #define SPLREG_EVENT_LOG TEXT("EventLog")
1511 #define SPLREG_MAJOR_VERSION TEXT("MajorVersion")
1512 #define SPLREG_MINOR_VERSION TEXT("MinorVersion")
1513 #define SPLREG_ARCHITECTURE TEXT("Architecture")
1514 #define SPLREG_OS_VERSION TEXT("OSVersion")
1515 #define SPLREG_OS_VERSIONEX TEXT("OSVersionEx")
1516 #define SPLREG_DS_PRESENT TEXT("DsPresent")
1517 #define SPLREG_DS_PRESENT_FOR_USER TEXT("DsPresentForUser")
1518 #define SPLREG_REMOTE_FAX TEXT("RemoteFax")
1519 #define SPLREG_RESTART_JOB_ON_POOL_ERROR TEXT("RestartJobOnPoolError")
1520 #define SPLREG_RESTART_JOB_ON_POOL_ENABLED TEXT("RestartJobOnPoolEnabled")
1521 #define SPLREG_DNS_MACHINE_NAME TEXT("DNSMachineName")
1522 #define SPLREG_ALLOW_USER_MANAGEFORMS TEXT("AllowUserManageForms")
1523 #define SPLREG_WEBSHAREMGMT TEXT("WebShareMgmt")
1524
1525 #define SERVER_ACCESS_ADMINISTER 0x00000001
1526 #define SERVER_ACCESS_ENUMERATE 0x00000002
1527
1528 #define PRINTER_ACCESS_ADMINISTER 0x00000004
1529 #define PRINTER_ACCESS_USE 0x00000008
1530
1531 #define JOB_ACCESS_ADMINISTER 0x00000010
1532 #define JOB_ACCESS_READ 0x00000020
1533
1534 #define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
1535 #define SERVER_READ (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE)
1536 #define SERVER_WRITE (STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
1537 #define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE)
1538 #define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE)
1539 #define PRINTER_READ (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE)
1540 #define PRINTER_WRITE (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE)
1541 #define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE)
1542 #define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER | JOB_ACCESS_READ)
1543 #define JOB_READ (STANDARD_RIGHTS_READ | JOB_ACCESS_READ)
1544 #define JOB_WRITE (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER)
1545 #define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER)
1546
1547 #define SPLDS_SPOOLER_KEY TEXT("DsSpooler")
1548 #define SPLDS_DRIVER_KEY TEXT("DsDriver")
1549 #define SPLDS_USER_KEY TEXT("DsUser")
1550
1551 #define SPLDS_ASSET_NUMBER TEXT("assetNumber")
1552 #define SPLDS_BYTES_PER_MINUTE TEXT("bytesPerMinute")
1553 #define SPLDS_DESCRIPTION TEXT("description")
1554 #define SPLDS_DRIVER_NAME TEXT("driverName")
1555 #define SPLDS_DRIVER_VERSION TEXT("driverVersion")
1556 #define SPLDS_LOCATION TEXT("location")
1557 #define SPLDS_PORT_NAME TEXT("portName")
1558 #define SPLDS_PRINT_ATTRIBUTES TEXT("printAttributes")
1559 #define SPLDS_PRINT_BIN_NAMES TEXT("printBinNames")
1560 #define SPLDS_PRINT_COLLATE TEXT("printCollate")
1561 #define SPLDS_PRINT_COLOR TEXT("printColor")
1562 #define SPLDS_PRINT_DUPLEX_SUPPORTED TEXT("printDuplexSupported")
1563 #define SPLDS_PRINT_END_TIME TEXT("printEndTime")
1564 #define SPLDS_PRINTER_CLASS TEXT("printQueue")
1565 #define SPLDS_PRINTER_NAME TEXT("printerName")
1566 #define SPLDS_PRINT_KEEP_PRINTED_JOBS TEXT("printKeepPrintedJobs")
1567 #define SPLDS_PRINT_LANGUAGE TEXT("printLanguage")
1568 #define SPLDS_PRINT_MAC_ADDRESS TEXT("printMACAddress")
1569 #define SPLDS_PRINT_MAX_X_EXTENT TEXT("printMaxXExtent")
1570 #define SPLDS_PRINT_MAX_Y_EXTENT TEXT("printMaxYExtent")
1571 #define SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED TEXT("printMaxResolutionSupported")
1572 #define SPLDS_PRINT_MEDIA_READY TEXT("printMediaReady")
1573 #define SPLDS_PRINT_MEDIA_SUPPORTED TEXT("printMediaSupported")
1574 #define SPLDS_PRINT_MEMORY TEXT("printMemory")
1575 #define SPLDS_PRINT_MIN_X_EXTENT TEXT("printMinXExtent")
1576 #define SPLDS_PRINT_MIN_Y_EXTENT TEXT("printMinYExtent")
1577 #define SPLDS_PRINT_NETWORK_ADDRESS TEXT("printNetworkAddress")
1578 #define SPLDS_PRINT_NOTIFY TEXT("printNotify")
1579 #define SPLDS_PRINT_NUMBER_UP TEXT("printNumberUp")
1580 #define SPLDS_PRINT_ORIENTATIONS_SUPPORTED TEXT("printOrientationsSupported")
1581 #define SPLDS_PRINT_OWNER TEXT("printOwner")
1582 #define SPLDS_PRINT_PAGES_PER_MINUTE TEXT("printPagesPerMinute")
1583 #define SPLDS_PRINT_RATE TEXT("printRate")
1584 #define SPLDS_PRINT_RATE_UNIT TEXT("printRateUnit")
1585 #define SPLDS_PRINT_SEPARATOR_FILE TEXT("printSeparatorFile")
1586 #define SPLDS_PRINT_SHARE_NAME TEXT("printShareName")
1587 #define SPLDS_PRINT_SPOOLING TEXT("printSpooling")
1588 #define SPLDS_PRINT_STAPLING_SUPPORTED TEXT("printStaplingSupported")
1589 #define SPLDS_PRINT_START_TIME TEXT("printStartTime")
1590 #define SPLDS_PRINT_STATUS TEXT("printStatus")
1591 #define SPLDS_PRIORITY TEXT("priority")
1592 #define SPLDS_SERVER_NAME TEXT("serverName")
1593 #define SPLDS_SHORT_SERVER_NAME TEXT("shortServerName")
1594 #define SPLDS_UNC_NAME TEXT("uNCName")
1595 #define SPLDS_URL TEXT("url")
1596 #define SPLDS_FLAGS TEXT("flags")
1597 #define SPLDS_VERSION_NUMBER TEXT("versionNumber")
1598
1599 #define SPLDS_PRINTER_NAME_ALIASES TEXT("printerNameAliases")
1600 #define SPLDS_PRINTER_LOCATIONS TEXT("printerLocations")
1601 #define SPLDS_PRINTER_MODEL TEXT("printerModel")
1602
1603 #ifdef __cplusplus
1604 }
1605 #endif
1606 #endif