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