1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Winspool header file
7 use shared
::guiddef
::GUID
;
8 use shared
::minwindef
::{
9 BOOL
, BYTE
, DWORD
, FILETIME
, FLOAT
, LPBYTE
, LPDWORD
, LPHANDLE
, LPVOID
, MAX_PATH
, PBYTE
, PDWORD
,
10 PULONG
, PWORD
, UINT
, ULONG
, WORD
,
12 use shared
::windef
::{HWND, RECTL, SIZEL}
;
13 use shared
::winerror
::ERROR_NOT_SUPPORTED
;
14 use um
::minwinbase
::SYSTEMTIME
;
15 use um
::wingdi
::{LPDEVMODEA, LPDEVMODEW, PDEVMODEA, PDEVMODEW}
;
17 ACCESS_MASK
, CHAR
, DWORDLONG
, HANDLE
, HRESULT
, LANGID
, LONG
, LONGLONG
, LPCSTR
, LPCWSTR
, LPSTR
,
18 LPWSTR
, PCWSTR
, PSECURITY_DESCRIPTOR
, PVOID
, PWSTR
, STANDARD_RIGHTS_EXECUTE
,
19 STANDARD_RIGHTS_READ
, STANDARD_RIGHTS_REQUIRED
, STANDARD_RIGHTS_WRITE
, WCHAR
,
21 use vc
::vcruntime
::size_t
;
22 STRUCT
!{struct PRINTER_INFO_1A
{
28 pub type PPRINTER_INFO_1A
= *mut PRINTER_INFO_1A
;
29 pub type LPPRINTER_INFO_1A
= *mut PRINTER_INFO_1A
;
30 STRUCT
!{struct PRINTER_INFO_1W
{
36 pub type PPRINTER_INFO_1W
= *mut PRINTER_INFO_1W
;
37 pub type LPPRINTER_INFO_1W
= *mut PRINTER_INFO_1W
;
38 STRUCT
!{struct PRINTER_INFO_2A
{
48 pPrintProcessor
: LPSTR
,
51 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
54 DefaultPriority
: DWORD
,
61 pub type PPRINTER_INFO_2A
= *mut PRINTER_INFO_2A
;
62 pub type LPPRINTER_INFO_2A
= *mut PRINTER_INFO_2A
;
63 STRUCT
!{struct PRINTER_INFO_2W
{
73 pPrintProcessor
: LPWSTR
,
76 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
79 DefaultPriority
: DWORD
,
86 pub type PPRINTER_INFO_2W
= *mut PRINTER_INFO_2W
;
87 pub type LPPRINTER_INFO_2W
= *mut PRINTER_INFO_2W
;
88 STRUCT
!{struct PRINTER_INFO_3
{
89 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
91 pub type PPRINTER_INFO_3
= *mut PRINTER_INFO_3
;
92 pub type LPPRINTER_INFO_3
= *mut PRINTER_INFO_3
;
93 STRUCT
!{struct PRINTER_INFO_4A
{
98 pub type PPRINTER_INFO_4A
= *mut PRINTER_INFO_4A
;
99 pub type LPPRINTER_INFO_4A
= *mut PRINTER_INFO_4A
;
100 STRUCT
!{struct PRINTER_INFO_4W
{
101 pPrinterName
: LPWSTR
,
105 pub type PPRINTER_INFO_4W
= *mut PRINTER_INFO_4W
;
106 pub type LPPRINTER_INFO_4W
= *mut PRINTER_INFO_4W
;
107 STRUCT
!{struct PRINTER_INFO_5A
{
111 DeviceNotSelectedTimeout
: DWORD
,
112 TransmissionRetryTimeout
: DWORD
,
114 pub type PPRINTER_INFO_5A
= *mut PRINTER_INFO_5A
;
115 pub type LPPRINTER_INFO_5A
= *mut PRINTER_INFO_5A
;
116 STRUCT
!{struct PRINTER_INFO_5W
{
117 pPrinterName
: LPWSTR
,
120 DeviceNotSelectedTimeout
: DWORD
,
121 TransmissionRetryTimeout
: DWORD
,
123 pub type PPRINTER_INFO_5W
= *mut PRINTER_INFO_5W
;
124 pub type LPPRINTER_INFO_5W
= *mut PRINTER_INFO_5W
;
125 STRUCT
!{struct PRINTER_INFO_6
{
128 pub type PPRINTER_INFO_6
= *mut PRINTER_INFO_6
;
129 pub type LPPRINTER_INFO_6
= *mut PRINTER_INFO_6
;
130 STRUCT
!{struct PRINTER_INFO_7A
{
131 pszObjectGUID
: LPSTR
,
134 pub type PPRINTER_INFO_7A
= *mut PRINTER_INFO_7A
;
135 pub type LPPRINTER_INFO_7A
= *mut PRINTER_INFO_7A
;
136 STRUCT
!{struct PRINTER_INFO_7W
{
137 pszObjectGUID
: LPWSTR
,
140 pub type PPRINTER_INFO_7W
= *mut PRINTER_INFO_7W
;
141 pub type LPPRINTER_INFO_7W
= *mut PRINTER_INFO_7W
;
142 pub const DSPRINT_PUBLISH
: DWORD
= 0x00000001;
143 pub const DSPRINT_UPDATE
: DWORD
= 0x00000002;
144 pub const DSPRINT_UNPUBLISH
: DWORD
= 0x00000004;
145 pub const DSPRINT_REPUBLISH
: DWORD
= 0x00000008;
146 pub const DSPRINT_PENDING
: DWORD
= 0x80000000;
147 STRUCT
!{struct PRINTER_INFO_8A
{
148 pDevMode
: LPDEVMODEA
,
150 pub type PPRINTER_INFO_8A
= *mut PRINTER_INFO_8A
;
151 pub type LPPRINTER_INFO_8A
= *mut PRINTER_INFO_8A
;
152 STRUCT
!{struct PRINTER_INFO_8W
{
153 pDevMode
: LPDEVMODEW
,
155 pub type PPRINTER_INFO_8W
= *mut PRINTER_INFO_8W
;
156 pub type LPPRINTER_INFO_8W
= *mut PRINTER_INFO_8W
;
157 STRUCT
!{struct PRINTER_INFO_9A
{
158 pDevMode
: LPDEVMODEA
,
160 pub type PPRINTER_INFO_9A
= *mut PRINTER_INFO_9A
;
161 pub type LPPRINTER_INFO_9A
= *mut PRINTER_INFO_9A
;
162 STRUCT
!{struct PRINTER_INFO_9W
{
163 pDevMode
: LPDEVMODEA
,
165 pub type PPRINTER_INFO_9W
= *mut PRINTER_INFO_9W
;
166 pub type LPPRINTER_INFO_9W
= *mut PRINTER_INFO_9W
;
167 pub const PRINTER_CONTROL_PAUSE
: DWORD
= 1;
168 pub const PRINTER_CONTROL_RESUME
: DWORD
= 2;
169 pub const PRINTER_CONTROL_PURGE
: DWORD
= 3;
170 pub const PRINTER_CONTROL_SET_STATUS
: DWORD
= 4;
171 pub const PRINTER_STATUS_PAUSED
: DWORD
= 0x00000001;
172 pub const PRINTER_STATUS_ERROR
: DWORD
= 0x00000002;
173 pub const PRINTER_STATUS_PENDING_DELETION
: DWORD
= 0x00000004;
174 pub const PRINTER_STATUS_PAPER_JAM
: DWORD
= 0x00000008;
175 pub const PRINTER_STATUS_PAPER_OUT
: DWORD
= 0x00000010;
176 pub const PRINTER_STATUS_MANUAL_FEED
: DWORD
= 0x00000020;
177 pub const PRINTER_STATUS_PAPER_PROBLEM
: DWORD
= 0x00000040;
178 pub const PRINTER_STATUS_OFFLINE
: DWORD
= 0x00000080;
179 pub const PRINTER_STATUS_IO_ACTIVE
: DWORD
= 0x00000100;
180 pub const PRINTER_STATUS_BUSY
: DWORD
= 0x00000200;
181 pub const PRINTER_STATUS_PRINTING
: DWORD
= 0x00000400;
182 pub const PRINTER_STATUS_OUTPUT_BIN_FULL
: DWORD
= 0x00000800;
183 pub const PRINTER_STATUS_NOT_AVAILABLE
: DWORD
= 0x00001000;
184 pub const PRINTER_STATUS_WAITING
: DWORD
= 0x00002000;
185 pub const PRINTER_STATUS_PROCESSING
: DWORD
= 0x00004000;
186 pub const PRINTER_STATUS_INITIALIZING
: DWORD
= 0x00008000;
187 pub const PRINTER_STATUS_WARMING_UP
: DWORD
= 0x00010000;
188 pub const PRINTER_STATUS_TONER_LOW
: DWORD
= 0x00020000;
189 pub const PRINTER_STATUS_NO_TONER
: DWORD
= 0x00040000;
190 pub const PRINTER_STATUS_PAGE_PUNT
: DWORD
= 0x00080000;
191 pub const PRINTER_STATUS_USER_INTERVENTION
: DWORD
= 0x00100000;
192 pub const PRINTER_STATUS_OUT_OF_MEMORY
: DWORD
= 0x00200000;
193 pub const PRINTER_STATUS_DOOR_OPEN
: DWORD
= 0x00400000;
194 pub const PRINTER_STATUS_SERVER_UNKNOWN
: DWORD
= 0x00800000;
195 pub const PRINTER_STATUS_POWER_SAVE
: DWORD
= 0x01000000;
196 pub const PRINTER_STATUS_SERVER_OFFLINE
: DWORD
= 0x02000000;
197 pub const PRINTER_STATUS_DRIVER_UPDATE_NEEDED
: DWORD
= 0x04000000;
198 pub const PRINTER_ATTRIBUTE_QUEUED
: DWORD
= 0x00000001;
199 pub const PRINTER_ATTRIBUTE_DIRECT
: DWORD
= 0x00000002;
200 pub const PRINTER_ATTRIBUTE_DEFAULT
: DWORD
= 0x00000004;
201 pub const PRINTER_ATTRIBUTE_SHARED
: DWORD
= 0x00000008;
202 pub const PRINTER_ATTRIBUTE_NETWORK
: DWORD
= 0x00000010;
203 pub const PRINTER_ATTRIBUTE_HIDDEN
: DWORD
= 0x00000020;
204 pub const PRINTER_ATTRIBUTE_LOCAL
: DWORD
= 0x00000040;
205 pub const PRINTER_ATTRIBUTE_ENABLE_DEVQ
: DWORD
= 0x00000080;
206 pub const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
: DWORD
= 0x00000100;
207 pub const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
: DWORD
= 0x00000200;
208 pub const PRINTER_ATTRIBUTE_WORK_OFFLINE
: DWORD
= 0x00000400;
209 pub const PRINTER_ATTRIBUTE_ENABLE_BIDI
: DWORD
= 0x00000800;
210 pub const PRINTER_ATTRIBUTE_RAW_ONLY
: DWORD
= 0x00001000;
211 pub const PRINTER_ATTRIBUTE_PUBLISHED
: DWORD
= 0x00002000;
212 pub const PRINTER_ATTRIBUTE_FAX
: DWORD
= 0x00004000;
213 pub const PRINTER_ATTRIBUTE_TS
: DWORD
= 0x00008000;
214 pub const PRINTER_ATTRIBUTE_PUSHED_USER
: DWORD
= 0x00020000;
215 pub const PRINTER_ATTRIBUTE_PUSHED_MACHINE
: DWORD
= 0x00040000;
216 pub const PRINTER_ATTRIBUTE_MACHINE
: DWORD
= 0x00080000;
217 pub const PRINTER_ATTRIBUTE_FRIENDLY_NAME
: DWORD
= 0x00100000;
218 pub const PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER
: DWORD
= 0x00200000;
219 pub const PRINTER_ATTRIBUTE_PER_USER
: DWORD
= 0x00400000;
220 pub const PRINTER_ATTRIBUTE_ENTERPRISE_CLOUD
: DWORD
= 0x00800000;
221 pub const NO_PRIORITY
: DWORD
= 0;
222 pub const MAX_PRIORITY
: DWORD
= 99;
223 pub const MIN_PRIORITY
: DWORD
= 1;
224 pub const DEF_PRIORITY
: DWORD
= 1;
225 STRUCT
!{struct JOB_INFO_1A
{
238 Submitted
: SYSTEMTIME
,
240 pub type PJOB_INFO_1A
= *mut JOB_INFO_1A
;
241 pub type LPJOB_INFO_1A
= *mut JOB_INFO_1A
;
242 STRUCT
!{struct JOB_INFO_1W
{
244 pPrinterName
: LPWSTR
,
245 pMachineName
: LPWSTR
,
255 Submitted
: SYSTEMTIME
,
257 pub type PJOB_INFO_1W
= *mut JOB_INFO_1W
;
258 pub type LPJOB_INFO_1W
= *mut JOB_INFO_1W
;
259 STRUCT
!{struct JOB_INFO_2A
{
267 pPrintProcessor
: LPSTR
,
270 pDevMode
: LPDEVMODEA
,
272 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
280 Submitted
: SYSTEMTIME
,
284 pub type PJOB_INFO_2A
= *mut JOB_INFO_2A
;
285 pub type LPJOB_INFO_2A
= *mut JOB_INFO_2A
;
286 STRUCT
!{struct JOB_INFO_2W
{
288 pPrinterName
: LPWSTR
,
289 pMachineName
: LPWSTR
,
294 pPrintProcessor
: LPWSTR
,
297 pDevMode
: LPDEVMODEW
,
299 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
307 Submitted
: SYSTEMTIME
,
311 pub type PJOB_INFO_2W
= *mut JOB_INFO_2W
;
312 pub type LPJOB_INFO_2W
= *mut JOB_INFO_2W
;
313 STRUCT
!{struct JOB_INFO_3
{
318 pub type PJOB_INFO_3
= *mut JOB_INFO_3
;
319 pub type LPJOB_INFO_3
= *mut JOB_INFO_3
;
320 STRUCT
!{struct JOB_INFO_4A
{
328 pPrintProcessor
: LPSTR
,
331 pDevMode
: LPDEVMODEA
,
333 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
341 Submitted
: SYSTEMTIME
,
346 pub type PJOB_INFO_4A
= *mut JOB_INFO_4A
;
347 pub type LPJOB_INFO_4A
= *mut JOB_INFO_4A
;
348 STRUCT
!{struct JOB_INFO_4W
{
350 pPrinterName
: LPWSTR
,
351 pMachineName
: LPWSTR
,
356 pPrintProcessor
: LPWSTR
,
359 pDevMode
: LPDEVMODEW
,
361 pSecurityDescriptor
: PSECURITY_DESCRIPTOR
,
369 Submitted
: SYSTEMTIME
,
374 pub type PJOB_INFO_4W
= *mut JOB_INFO_4W
;
375 pub type LPJOB_INFO_4W
= *mut JOB_INFO_4W
;
376 pub const JOB_CONTROL_PAUSE
: DWORD
= 1;
377 pub const JOB_CONTROL_RESUME
: DWORD
= 2;
378 pub const JOB_CONTROL_CANCEL
: DWORD
= 3;
379 pub const JOB_CONTROL_RESTART
: DWORD
= 4;
380 pub const JOB_CONTROL_DELETE
: DWORD
= 5;
381 pub const JOB_CONTROL_SENT_TO_PRINTER
: DWORD
= 6;
382 pub const JOB_CONTROL_LAST_PAGE_EJECTED
: DWORD
= 7;
383 pub const JOB_STATUS_PAUSED
: DWORD
= 0x00000001;
384 pub const JOB_STATUS_ERROR
: DWORD
= 0x00000002;
385 pub const JOB_STATUS_DELETING
: DWORD
= 0x00000004;
386 pub const JOB_STATUS_SPOOLING
: DWORD
= 0x00000008;
387 pub const JOB_STATUS_PRINTING
: DWORD
= 0x00000010;
388 pub const JOB_STATUS_OFFLINE
: DWORD
= 0x00000020;
389 pub const JOB_STATUS_PAPEROUT
: DWORD
= 0x00000040;
390 pub const JOB_STATUS_PRINTED
: DWORD
= 0x00000080;
391 pub const JOB_STATUS_DELETED
: DWORD
= 0x00000100;
392 pub const JOB_STATUS_BLOCKED_DEVQ
: DWORD
= 0x00000200;
393 pub const JOB_STATUS_USER_INTERVENTION
: DWORD
= 0x00000400;
394 pub const JOB_STATUS_RESTART
: DWORD
= 0x00000800;
395 pub const JOB_POSITION_UNSPECIFIED
: DWORD
= 0;
396 STRUCT
!{struct ADDJOB_INFO_1A
{
400 pub type PADDJOB_INFO_1A
= *mut ADDJOB_INFO_1A
;
401 pub type LPADDJOB_INFO_1A
= *mut ADDJOB_INFO_1A
;
402 STRUCT
!{struct ADDJOB_INFO_1W
{
406 pub type PADDJOB_INFO_1W
= *mut ADDJOB_INFO_1W
;
407 pub type LPADDJOB_INFO_1W
= *mut ADDJOB_INFO_1W
;
408 STRUCT
!{struct DRIVER_INFO_1A
{
411 pub type PDRIVER_INFO_1A
= *mut DRIVER_INFO_1A
;
412 pub type LPDRIVER_INFO_1A
= *mut DRIVER_INFO_1A
;
413 STRUCT
!{struct DRIVER_INFO_1W
{
416 pub type PDRIVER_INFO_1W
= *mut DRIVER_INFO_1W
;
417 pub type LPDRIVER_INFO_1W
= *mut DRIVER_INFO_1W
;
418 STRUCT
!{struct DRIVER_INFO_2A
{
426 pub type PDRIVER_INFO_2A
= *mut DRIVER_INFO_2A
;
427 pub type LPDRIVER_INFO_2A
= *mut DRIVER_INFO_2A
;
428 STRUCT
!{struct DRIVER_INFO_2W
{
431 pEnvironment
: LPWSTR
,
436 pub type PDRIVER_INFO_2W
= *mut DRIVER_INFO_2W
;
437 pub type LPDRIVER_INFO_2W
= *mut DRIVER_INFO_2W
;
438 STRUCT
!{struct DRIVER_INFO_3A
{
446 pDependentFiles
: LPSTR
,
448 pDefaultDataType
: LPSTR
,
450 pub type PDRIVER_INFO_3A
= *mut DRIVER_INFO_3A
;
451 pub type LPDRIVER_INFO_3A
= *mut DRIVER_INFO_3A
;
452 STRUCT
!{struct DRIVER_INFO_3W
{
455 pEnvironment
: LPWSTR
,
460 pDependentFiles
: LPWSTR
,
461 pMonitorName
: LPWSTR
,
462 pDefaultDataType
: LPWSTR
,
464 pub type PDRIVER_INFO_3W
= *mut DRIVER_INFO_3W
;
465 pub type LPDRIVER_INFO_3W
= *mut DRIVER_INFO_3W
;
466 STRUCT
!{struct DRIVER_INFO_4A
{
474 pDependentFiles
: LPSTR
,
476 pDefaultDataType
: LPSTR
,
477 pszzPreviousNames
: LPSTR
,
479 pub type PDRIVER_INFO_4A
= *mut DRIVER_INFO_4A
;
480 pub type LPDRIVER_INFO_4A
= *mut DRIVER_INFO_4A
;
481 STRUCT
!{struct DRIVER_INFO_4W
{
484 pEnvironment
: LPWSTR
,
489 pDependentFiles
: LPWSTR
,
490 pMonitorName
: LPWSTR
,
491 pDefaultDataType
: LPWSTR
,
492 pszzPreviousNames
: LPWSTR
,
494 pub type PDRIVER_INFO_4W
= *mut DRIVER_INFO_4W
;
495 pub type LPDRIVER_INFO_4W
= *mut DRIVER_INFO_4W
;
496 STRUCT
!{struct DRIVER_INFO_5A
{
503 dwDriverAttributes
: DWORD
,
504 dwConfigVersion
: DWORD
,
505 dwDriverVersion
: DWORD
,
507 pub type PDRIVER_INFO_5A
= *mut DRIVER_INFO_5A
;
508 pub type LPDRIVER_INFO_5A
= *mut DRIVER_INFO_5A
;
509 STRUCT
!{struct DRIVER_INFO_5W
{
512 pEnvironment
: LPWSTR
,
516 dwDriverAttributes
: DWORD
,
517 dwConfigVersion
: DWORD
,
518 dwDriverVersion
: DWORD
,
520 pub type PDRIVER_INFO_5W
= *mut DRIVER_INFO_5W
;
521 pub type LPDRIVER_INFO_5W
= *mut DRIVER_INFO_5W
;
522 STRUCT
!{struct DRIVER_INFO_6A
{
530 pDependentFiles
: LPSTR
,
532 pDefaultDataType
: LPSTR
,
533 pszzPreviousNames
: LPSTR
,
534 ftDriverDate
: FILETIME
,
535 dwlDriverVersion
: DWORDLONG
,
538 pszHardwareID
: LPSTR
,
541 pub type PDRIVER_INFO_6A
= *mut DRIVER_INFO_6A
;
542 pub type LPDRIVER_INFO_6A
= *mut DRIVER_INFO_6A
;
543 STRUCT
!{struct DRIVER_INFO_6W
{
546 pEnvironment
: LPWSTR
,
551 pDependentFiles
: LPWSTR
,
552 pMonitorName
: LPWSTR
,
553 pDefaultDataType
: LPWSTR
,
554 pszzPreviousNames
: LPWSTR
,
555 ftDriverDate
: FILETIME
,
556 dwlDriverVersion
: DWORDLONG
,
559 pszHardwareID
: LPWSTR
,
562 pub type PDRIVER_INFO_6W
= *mut DRIVER_INFO_6W
;
563 pub type LPDRIVER_INFO_6W
= *mut DRIVER_INFO_6W
;
564 pub const PRINTER_DRIVER_PACKAGE_AWARE
: DWORD
= 0x00000001;
565 pub const PRINTER_DRIVER_XPS
: DWORD
= 0x00000002;
566 pub const PRINTER_DRIVER_SANDBOX_ENABLED
: DWORD
= 0x00000004;
567 pub const PRINTER_DRIVER_CLASS
: DWORD
= 0x00000008;
568 pub const PRINTER_DRIVER_DERIVED
: DWORD
= 0x00000010;
569 pub const PRINTER_DRIVER_NOT_SHAREABLE
: DWORD
= 0x00000020;
570 pub const PRINTER_DRIVER_CATEGORY_FAX
: DWORD
= 0x00000040;
571 pub const PRINTER_DRIVER_CATEGORY_FILE
: DWORD
= 0x00000080;
572 pub const PRINTER_DRIVER_CATEGORY_VIRTUAL
: DWORD
= 0x00000100;
573 pub const PRINTER_DRIVER_CATEGORY_SERVICE
: DWORD
= 0x00000200;
574 pub const PRINTER_DRIVER_SOFT_RESET_REQUIRED
: DWORD
= 0x00000400;
575 pub const PRINTER_DRIVER_SANDBOX_DISABLED
: DWORD
= 0x00000800;
576 pub const PRINTER_DRIVER_CATEGORY_3D
: DWORD
= 0x00001000;
577 pub const PRINTER_DRIVER_CATEGORY_CLOUD
: DWORD
= 0x00002000;
578 STRUCT
!{struct DRIVER_INFO_8A
{
586 pDependentFiles
: LPSTR
,
588 pDefaultDataType
: LPSTR
,
589 pszzPreviousNames
: LPSTR
,
590 ftDriverDate
: FILETIME
,
591 dwlDriverVersion
: DWORDLONG
,
594 pszHardwareID
: LPSTR
,
596 pszPrintProcessor
: LPSTR
,
597 pszVendorSetup
: LPSTR
,
598 pszzColorProfiles
: LPSTR
,
600 dwPrinterDriverAttributes
: DWORD
,
601 pszzCoreDriverDependencies
: LPSTR
,
602 ftMinInboxDriverVerDate
: FILETIME
,
603 dwlMinInboxDriverVerVersion
: DWORDLONG
,
605 pub type PDRIVER_INFO_8A
= *mut DRIVER_INFO_8A
;
606 pub type LPDRIVER_INFO_8A
= *mut DRIVER_INFO_8A
;
607 STRUCT
!{struct DRIVER_INFO_8W
{
610 pEnvironment
: LPWSTR
,
615 pDependentFiles
: LPWSTR
,
616 pMonitorName
: LPWSTR
,
617 pDefaultDataType
: LPWSTR
,
618 pszzPreviousNames
: LPWSTR
,
619 ftDriverDate
: FILETIME
,
620 dwlDriverVersion
: DWORDLONG
,
623 pszHardwareID
: LPWSTR
,
625 pszPrintProcessor
: LPWSTR
,
626 pszVendorSetup
: LPWSTR
,
627 pszzColorProfiles
: LPWSTR
,
629 dwPrinterDriverAttributes
: DWORD
,
630 pszzCoreDriverDependencies
: LPWSTR
,
631 ftMinInboxDriverVerDate
: FILETIME
,
632 dwlMinInboxDriverVerVersion
: DWORDLONG
,
634 pub type PDRIVER_INFO_8W
= *mut DRIVER_INFO_8W
;
635 pub type LPDRIVER_INFO_8W
= *mut DRIVER_INFO_8W
;
636 pub const DRIVER_KERNELMODE
: DWORD
= 0x00000001;
637 pub const DRIVER_USERMODE
: DWORD
= 0x00000002;
638 pub const DPD_DELETE_UNUSED_FILES
: DWORD
= 0x00000001;
639 pub const DPD_DELETE_SPECIFIC_VERSION
: DWORD
= 0x00000002;
640 pub const DPD_DELETE_ALL_FILES
: DWORD
= 0x00000004;
641 pub const APD_STRICT_UPGRADE
: DWORD
= 0x00000001;
642 pub const APD_STRICT_DOWNGRADE
: DWORD
= 0x00000002;
643 pub const APD_COPY_ALL_FILES
: DWORD
= 0x00000004;
644 pub const APD_COPY_NEW_FILES
: DWORD
= 0x00000008;
645 pub const APD_COPY_FROM_DIRECTORY
: DWORD
= 0x00000010;
646 STRUCT
!{struct DOC_INFO_1A
{
651 pub type PDOC_INFO_1A
= *mut DOC_INFO_1A
;
652 pub type LPDOC_INFO_1A
= *mut DOC_INFO_1A
;
653 STRUCT
!{struct DOC_INFO_1W
{
658 pub type PDOC_INFO_1W
= *mut DOC_INFO_1W
;
659 pub type LPDOC_INFO_1W
= *mut DOC_INFO_1W
;
660 STRUCT
!{struct FORM_INFO_1A
{
664 ImageableArea
: RECTL
,
666 pub type PFORM_INFO_1A
= *mut FORM_INFO_1A
;
667 pub type LPFORM_INFO_1A
= *mut FORM_INFO_1A
;
668 STRUCT
!{struct FORM_INFO_1W
{
672 ImageableArea
: RECTL
,
674 pub type PFORM_INFO_1W
= *mut FORM_INFO_1W
;
675 pub type LPFORM_INFO_1W
= *mut FORM_INFO_1W
;
676 pub const STRING_NONE
: DWORD
= 0x00000001;
677 pub const STRING_MUIDLL
: DWORD
= 0x00000002;
678 pub const STRING_LANGPAIR
: DWORD
= 0x00000004;
679 pub const MAX_FORM_KEYWORD_LENGTH
: usize = 63 + 1;
680 STRUCT
!{struct FORM_INFO_2A
{
684 ImageableArea
: RECTL
,
689 pDisplayName
: LPCSTR
,
692 pub type PFORM_INFO_2A
= *mut FORM_INFO_2A
;
693 pub type LPFORM_INFO_2A
= *mut FORM_INFO_2A
;
694 STRUCT
!{struct FORM_INFO_2W
{
698 ImageableArea
: RECTL
,
703 pDisplayName
: LPCWSTR
,
706 pub type PFORM_INFO_2W
= *mut FORM_INFO_2W
;
707 pub type LPFORM_INFO_2W
= *mut FORM_INFO_2W
;
708 STRUCT
!{struct DOC_INFO_2A
{
715 pub type PDOC_INFO_2A
= *mut DOC_INFO_2A
;
716 pub type LPDOC_INFO_2A
= *mut DOC_INFO_2A
;
717 STRUCT
!{struct DOC_INFO_2W
{
724 pub type PDOC_INFO_2W
= *mut DOC_INFO_2W
;
725 pub type LPDOC_INFO_2W
= *mut DOC_INFO_2W
;
726 pub const DI_CHANNEL
: DWORD
= 1;
727 pub const DI_READ_SPOOL_JOB
: DWORD
= 3;
728 STRUCT
!{struct DOC_INFO_3A
{
734 pub type PDOC_INFO_3A
= *mut DOC_INFO_3A
;
735 pub type LPDOC_INFO_3A
= *mut DOC_INFO_3A
;
736 STRUCT
!{struct DOC_INFO_3W
{
742 pub type PDOC_INFO_3W
= *mut DOC_INFO_3W
;
743 pub type LPDOC_INFO_3W
= *mut DOC_INFO_3W
;
744 pub const DI_MEMORYMAP_WRITE
: DWORD
= 0x00000001;
745 pub const FORM_USER
: DWORD
= 0x00000000;
746 pub const FORM_BUILTIN
: DWORD
= 0x00000001;
747 pub const FORM_PRINTER
: DWORD
= 0x00000002;
748 STRUCT
!{struct PRINTPROCESSOR_INFO_1A
{
751 pub type PPRINTPROCESSOR_INFO_1A
= *mut PRINTPROCESSOR_INFO_1A
;
752 pub type LPPRINTPROCESSOR_INFO_1A
= *mut PRINTPROCESSOR_INFO_1A
;
753 STRUCT
!{struct PRINTPROCESSOR_INFO_1W
{
756 pub type PPRINTPROCESSOR_INFO_1W
= *mut PRINTPROCESSOR_INFO_1W
;
757 pub type LPPRINTPROCESSOR_INFO_1W
= *mut PRINTPROCESSOR_INFO_1W
;
758 STRUCT
!{struct PRINTPROCESSOR_CAPS_1
{
761 dwPageOrderFlags
: DWORD
,
762 dwNumberOfCopies
: DWORD
,
764 pub type PPRINTPROCESSOR_CAPS_1
= *mut PRINTPROCESSOR_CAPS_1
;
765 STRUCT
!{struct PRINTPROCESSOR_CAPS_2
{
768 dwPageOrderFlags
: DWORD
,
769 dwNumberOfCopies
: DWORD
,
770 dwDuplexHandlingCaps
: DWORD
,
771 dwNupDirectionCaps
: DWORD
,
772 dwNupBorderCaps
: DWORD
,
773 dwBookletHandlingCaps
: DWORD
,
774 dwScalingCaps
: DWORD
,
776 pub type PPRINTPROCESSOR_CAPS_2
= *mut PRINTPROCESSOR_CAPS_2
;
777 pub const PPCAPS_RIGHT_THEN_DOWN
: DWORD
= 0x00000001;
778 pub const PPCAPS_DOWN_THEN_RIGHT
: DWORD
= 0x00000001 << 1;
779 pub const PPCAPS_LEFT_THEN_DOWN
: DWORD
= 0x00000001 << 2;
780 pub const PPCAPS_DOWN_THEN_LEFT
: DWORD
= 0x00000001 << 3;
781 pub const PPCAPS_BORDER_PRINT
: DWORD
= 0x00000001;
782 pub const PPCAPS_BOOKLET_EDGE
: DWORD
= 0x00000001;
783 pub const PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX
: DWORD
= 0x00000001;
784 pub const PPCAPS_DONT_SEND_EXTRA_PAGES_FOR_DUPLEX
: DWORD
= 0x00000001 << 1;
785 pub const PPCAPS_SQUARE_SCALING
: DWORD
= 0x00000001;
786 STRUCT
!{struct PORT_INFO_1A
{
789 pub type PPORT_INFO_1A
= *mut PORT_INFO_1A
;
790 pub type LPPORT_INFO_1A
= *mut PORT_INFO_1A
;
791 STRUCT
!{struct PORT_INFO_1W
{
794 pub type PPORT_INFO_1W
= *mut PORT_INFO_1W
;
795 pub type LPPORT_INFO_1W
= *mut PORT_INFO_1W
;
796 STRUCT
!{struct PORT_INFO_2A
{
803 pub type PPORT_INFO_2A
= *mut PORT_INFO_2A
;
804 pub type LPPORT_INFO_2A
= *mut PORT_INFO_2A
;
805 STRUCT
!{struct PORT_INFO_2W
{
807 pMonitorName
: LPWSTR
,
808 pDescription
: LPWSTR
,
812 pub type PPORT_INFO_2W
= *mut PORT_INFO_2W
;
813 pub type LPPORT_INFO_2W
= *mut PORT_INFO_2W
;
814 pub const PORT_TYPE_WRITE
: DWORD
= 0x0001;
815 pub const PORT_TYPE_READ
: DWORD
= 0x0002;
816 pub const PORT_TYPE_REDIRECTED
: DWORD
= 0x0004;
817 pub const PORT_TYPE_NET_ATTACHED
: DWORD
= 0x0008;
818 STRUCT
!{struct PORT_INFO_3A
{
823 pub type PPORT_INFO_3A
= *mut PORT_INFO_3A
;
824 pub type LPPORT_INFO_3A
= *mut PORT_INFO_3A
;
825 STRUCT
!{struct PORT_INFO_3W
{
830 pub type PPORT_INFO_3W
= *mut PORT_INFO_3W
;
831 pub type LPPORT_INFO_3W
= *mut PORT_INFO_3W
;
832 pub const PORT_STATUS_TYPE_ERROR
: DWORD
= 1;
833 pub const PORT_STATUS_TYPE_WARNING
: DWORD
= 2;
834 pub const PORT_STATUS_TYPE_INFO
: DWORD
= 3;
835 pub const PORT_STATUS_OFFLINE
: DWORD
= 1;
836 pub const PORT_STATUS_PAPER_JAM
: DWORD
= 2;
837 pub const PORT_STATUS_PAPER_OUT
: DWORD
= 3;
838 pub const PORT_STATUS_OUTPUT_BIN_FULL
: DWORD
= 4;
839 pub const PORT_STATUS_PAPER_PROBLEM
: DWORD
= 5;
840 pub const PORT_STATUS_NO_TONER
: DWORD
= 6;
841 pub const PORT_STATUS_DOOR_OPEN
: DWORD
= 7;
842 pub const PORT_STATUS_USER_INTERVENTION
: DWORD
= 8;
843 pub const PORT_STATUS_OUT_OF_MEMORY
: DWORD
= 9;
844 pub const PORT_STATUS_TONER_LOW
: DWORD
= 10;
845 pub const PORT_STATUS_WARMING_UP
: DWORD
= 11;
846 pub const PORT_STATUS_POWER_SAVE
: DWORD
= 12;
847 STRUCT
!{struct MONITOR_INFO_1A
{
850 pub type PMONITOR_INFO_1A
= *mut MONITOR_INFO_1A
;
851 pub type LPMONITOR_INFO_1A
= *mut MONITOR_INFO_1A
;
852 STRUCT
!{struct MONITOR_INFO_1W
{
855 pub type PMONITOR_INFO_1W
= *mut MONITOR_INFO_1W
;
856 pub type LPMONITOR_INFO_1W
= *mut MONITOR_INFO_1W
;
857 STRUCT
!{struct MONITOR_INFO_2A
{
862 pub type PMONITOR_INFO_2A
= *mut MONITOR_INFO_2A
;
863 pub type LPMONITOR_INFO_2A
= *mut MONITOR_INFO_2A
;
864 STRUCT
!{struct MONITOR_INFO_2W
{
866 pEnvironment
: LPWSTR
,
869 pub type PMONITOR_INFO_2W
= *mut MONITOR_INFO_2W
;
870 pub type LPMONITOR_INFO_2W
= *mut MONITOR_INFO_2W
;
871 STRUCT
!{struct DATATYPES_INFO_1A
{
874 pub type PDATATYPES_INFO_1A
= *mut DATATYPES_INFO_1A
;
875 pub type LPDATATYPES_INFO_1A
= *mut DATATYPES_INFO_1A
;
876 STRUCT
!{struct DATATYPES_INFO_1W
{
879 pub type PDATATYPES_INFO_1W
= *mut DATATYPES_INFO_1W
;
880 pub type LPDATATYPES_INFO_1W
= *mut DATATYPES_INFO_1W
;
881 STRUCT
!{struct PRINTER_DEFAULTSA
{
883 pDevMode
: LPDEVMODEA
,
884 DesiredAccess
: ACCESS_MASK
,
886 pub type PPRINTER_DEFAULTSA
= *mut PRINTER_DEFAULTSA
;
887 pub type LPPRINTER_DEFAULTSA
= *mut PRINTER_DEFAULTSA
;
888 STRUCT
!{struct PRINTER_DEFAULTSW
{
890 pDevMode
: LPDEVMODEW
,
891 DesiredAccess
: ACCESS_MASK
,
893 pub type PPRINTER_DEFAULTSW
= *mut PRINTER_DEFAULTSW
;
894 pub type LPPRINTER_DEFAULTSW
= *mut PRINTER_DEFAULTSW
;
895 STRUCT
!{struct PRINTER_ENUM_VALUESA
{
902 pub type PPRINTER_ENUM_VALUESA
= *mut PRINTER_ENUM_VALUESA
;
903 pub type LPPRINTER_ENUM_VALUESA
= *mut PRINTER_ENUM_VALUESA
;
904 STRUCT
!{struct PRINTER_ENUM_VALUESW
{
911 pub type PPRINTER_ENUM_VALUESW
= *mut PRINTER_ENUM_VALUESW
;
912 pub type LPPRINTER_ENUM_VALUESW
= *mut PRINTER_ENUM_VALUESW
;
914 pub fn EnumPrintersA(
918 pPrinterEnum
: LPBYTE
,
923 pub fn EnumPrintersW(
927 pPrinterEnum
: LPBYTE
,
933 pub const PRINTER_ENUM_DEFAULT
: DWORD
= 0x00000001;
934 pub const PRINTER_ENUM_LOCAL
: DWORD
= 0x00000002;
935 pub const PRINTER_ENUM_CONNECTIONS
: DWORD
= 0x00000004;
936 pub const PRINTER_ENUM_FAVORITE
: DWORD
= 0x00000004;
937 pub const PRINTER_ENUM_NAME
: DWORD
= 0x00000008;
938 pub const PRINTER_ENUM_REMOTE
: DWORD
= 0x00000010;
939 pub const PRINTER_ENUM_SHARED
: DWORD
= 0x00000020;
940 pub const PRINTER_ENUM_NETWORK
: DWORD
= 0x00000040;
941 pub const PRINTER_ENUM_EXPAND
: DWORD
= 0x00004000;
942 pub const PRINTER_ENUM_CONTAINER
: DWORD
= 0x00008000;
943 pub const PRINTER_ENUM_ICONMASK
: DWORD
= 0x00ff0000;
944 pub const PRINTER_ENUM_ICON1
: DWORD
= 0x00010000;
945 pub const PRINTER_ENUM_ICON2
: DWORD
= 0x00020000;
946 pub const PRINTER_ENUM_ICON3
: DWORD
= 0x00040000;
947 pub const PRINTER_ENUM_ICON4
: DWORD
= 0x00080000;
948 pub const PRINTER_ENUM_ICON5
: DWORD
= 0x00100000;
949 pub const PRINTER_ENUM_ICON6
: DWORD
= 0x00200000;
950 pub const PRINTER_ENUM_ICON7
: DWORD
= 0x00400000;
951 pub const PRINTER_ENUM_ICON8
: DWORD
= 0x00800000;
952 pub const PRINTER_ENUM_HIDE
: DWORD
= 0x01000000;
953 pub const PRINTER_ENUM_CATEGORY_ALL
: DWORD
= 0x02000000;
954 pub const PRINTER_ENUM_CATEGORY_3D
: DWORD
= 0x04000000;
955 pub const SPOOL_FILE_PERSISTENT
: DWORD
= 0x00000001;
956 pub const SPOOL_FILE_TEMPORARY
: DWORD
= 0x00000002;
958 pub fn GetSpoolFileHandle(
961 pub fn CommitSpoolData(
966 pub fn CloseSpoolFileHandle(
973 pDefault
: LPPRINTER_DEFAULTSA
,
976 pPrinterName
: LPWSTR
,
978 pDefault
: LPPRINTER_DEFAULTSW
,
980 pub fn ResetPrinterA(
982 pDefault
: LPPRINTER_DEFAULTSA
,
984 pub fn ResetPrinterW(
986 pDefault
: LPPRINTER_DEFAULTSW
,
1026 pcReturned
: LPDWORD
,
1036 pcReturned
: LPDWORD
,
1048 pub fn DeletePrinter(
1077 pub fn AddPrinterDriverA(
1080 pDriverInfo
: LPBYTE
,
1082 pub fn AddPrinterDriverW(
1085 pDriverInfo
: LPBYTE
,
1087 pub fn AddPrinterDriverExA(
1091 dwFileCopyFlags
: DWORD
,
1093 pub fn AddPrinterDriverExW(
1097 dwFileCopyFlags
: DWORD
,
1099 pub fn EnumPrinterDriversA(
1101 pEnvironment
: LPSTR
,
1103 pDriverInfo
: LPBYTE
,
1106 pcReturned
: LPDWORD
,
1108 pub fn EnumPrinterDriversW(
1110 pEnvironment
: LPWSTR
,
1112 pDriverInfo
: LPBYTE
,
1115 pcReturned
: LPDWORD
,
1117 pub fn GetPrinterDriverA(
1119 pEnvironment
: LPSTR
,
1121 pDriverInfo
: LPBYTE
,
1125 pub fn GetPrinterDriverW(
1127 pEnvironment
: LPWSTR
,
1129 pDriverInfo
: LPBYTE
,
1133 pub fn GetPrinterDriverDirectoryA(
1135 pEnvironment
: LPSTR
,
1137 pDriverDirectory
: LPBYTE
,
1141 pub fn GetPrinterDriverDirectoryW(
1143 pEnvironment
: LPWSTR
,
1145 pDriverDirectory
: LPBYTE
,
1149 pub fn DeletePrinterDriverA(
1151 pEnvironment
: LPSTR
,
1154 pub fn DeletePrinterDriverW(
1156 pEnvironment
: LPWSTR
,
1157 pDriverName
: LPWSTR
,
1159 pub fn DeletePrinterDriverExA(
1161 pEnvironment
: LPSTR
,
1163 dwDeleteFlag
: DWORD
,
1164 dwVersionFlag
: DWORD
,
1166 pub fn DeletePrinterDriverExW(
1168 pEnvironment
: LPWSTR
,
1169 pDriverName
: LPWSTR
,
1170 dwDeleteFlag
: DWORD
,
1171 dwVersionFlag
: DWORD
,
1173 pub fn AddPrintProcessorA(
1175 pEnvironment
: LPSTR
,
1177 pPrintProcessorName
: LPSTR
,
1179 pub fn AddPrintProcessorW(
1181 pEnvironment
: LPWSTR
,
1183 pPrintProcessorName
: LPWSTR
,
1185 pub fn EnumPrintProcessorsA(
1187 pEnvironment
: LPSTR
,
1189 pPrintProcessorInfo
: LPBYTE
,
1192 pcReturned
: LPDWORD
,
1194 pub fn EnumPrintProcessorsW(
1196 pEnvironment
: LPWSTR
,
1198 pPrintProcessorInfo
: LPBYTE
,
1201 pcReturned
: LPDWORD
,
1203 pub fn GetPrintProcessorDirectoryA(
1205 pEnvironment
: LPSTR
,
1207 pPrintProcessorInfo
: LPBYTE
,
1211 pub fn GetPrintProcessorDirectoryW(
1213 pEnvironment
: LPWSTR
,
1215 pPrintProcessorInfo
: LPBYTE
,
1219 pub fn EnumPrintProcessorDatatypesA(
1221 pPrintProcessorName
: LPSTR
,
1226 pcReturned
: LPDWORD
,
1228 pub fn EnumPrintProcessorDatatypesW(
1230 pPrintProcessorName
: LPWSTR
,
1235 pcReturned
: LPDWORD
,
1237 pub fn DeletePrintProcessorA(
1239 pEnvironment
: LPSTR
,
1240 pPrintProcessorName
: LPSTR
,
1242 pub fn DeletePrintProcessorW(
1244 pEnvironment
: LPWSTR
,
1245 pPrintProcessorName
: LPWSTR
,
1247 pub fn StartDocPrinterA(
1252 pub fn StartDocPrinterW(
1257 pub fn StartPagePrinter(
1260 pub fn WritePrinter(
1266 pub fn FlushPrinter(
1273 pub fn EndPagePrinter(
1276 pub fn AbortPrinter(
1283 pNoBytesRead
: LPDWORD
,
1285 pub fn EndDocPrinter(
1306 pub fn PrinterProperties(
1310 pub fn DocumentPropertiesA(
1314 pDevModeOutput
: PDEVMODEA
,
1315 pDevModeInput
: PDEVMODEA
,
1318 pub fn DocumentPropertiesW(
1321 pDeviceName
: LPWSTR
,
1322 pDevModeOutput
: PDEVMODEW
,
1323 pDevModeInput
: PDEVMODEW
,
1326 pub fn AdvancedDocumentPropertiesA(
1330 pDevModeOutput
: PDEVMODEA
,
1331 pDevModeInput
: PDEVMODEA
,
1333 pub fn AdvancedDocumentPropertiesW(
1336 pDeviceName
: LPWSTR
,
1337 pDevModeOutput
: PDEVMODEW
,
1338 pDevModeInput
: PDEVMODEW
,
1340 pub fn ExtDeviceMode(
1343 pDevModeOutput
: LPDEVMODEA
,
1346 pDevModeInput
: LPDEVMODEA
,
1350 pub fn GetPrinterDataA(
1358 pub fn GetPrinterDataW(
1366 pub fn GetPrinterDataExA(
1375 pub fn GetPrinterDataExW(
1378 pValueName
: LPCWSTR
,
1384 pub fn EnumPrinterDataA(
1389 pcbValueName
: LPDWORD
,
1395 pub fn EnumPrinterDataW(
1400 pcbValueName
: LPDWORD
,
1406 pub fn EnumPrinterDataExA(
1409 pEnumValues
: LPBYTE
,
1410 cbEnumValues
: DWORD
,
1411 pcbEnumValues
: LPDWORD
,
1412 pnEnumValues
: LPDWORD
,
1414 pub fn EnumPrinterDataExW(
1417 pEnumValues
: LPBYTE
,
1418 cbEnumValues
: DWORD
,
1419 pcbEnumValues
: LPDWORD
,
1420 pnEnumValues
: LPDWORD
,
1422 pub fn EnumPrinterKeyA(
1429 pub fn EnumPrinterKeyW(
1436 pub fn SetPrinterDataA(
1443 pub fn SetPrinterDataW(
1450 pub fn SetPrinterDataExA(
1458 pub fn SetPrinterDataExW(
1461 pValueName
: LPCWSTR
,
1466 pub fn DeletePrinterDataA(
1470 pub fn DeletePrinterDataW(
1474 pub fn DeletePrinterDataExA(
1479 pub fn DeletePrinterDataExW(
1482 pValueName
: LPCWSTR
,
1484 pub fn DeletePrinterKeyA(
1488 pub fn DeletePrinterKeyW(
1493 pub const PRINTER_NOTIFY_TYPE
: DWORD
= 0x00;
1494 pub const JOB_NOTIFY_TYPE
: DWORD
= 0x01;
1495 pub const SERVER_NOTIFY_TYPE
: DWORD
= 0x02;
1496 pub const PRINTER_NOTIFY_FIELD_SERVER_NAME
: DWORD
= 0x00;
1497 pub const PRINTER_NOTIFY_FIELD_PRINTER_NAME
: DWORD
= 0x01;
1498 pub const PRINTER_NOTIFY_FIELD_SHARE_NAME
: DWORD
= 0x02;
1499 pub const PRINTER_NOTIFY_FIELD_PORT_NAME
: DWORD
= 0x03;
1500 pub const PRINTER_NOTIFY_FIELD_DRIVER_NAME
: DWORD
= 0x04;
1501 pub const PRINTER_NOTIFY_FIELD_COMMENT
: DWORD
= 0x05;
1502 pub const PRINTER_NOTIFY_FIELD_LOCATION
: DWORD
= 0x06;
1503 pub const PRINTER_NOTIFY_FIELD_DEVMODE
: DWORD
= 0x07;
1504 pub const PRINTER_NOTIFY_FIELD_SEPFILE
: DWORD
= 0x08;
1505 pub const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: DWORD
= 0x09;
1506 pub const PRINTER_NOTIFY_FIELD_PARAMETERS
: DWORD
= 0x0A;
1507 pub const PRINTER_NOTIFY_FIELD_DATATYPE
: DWORD
= 0x0B;
1508 pub const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: DWORD
= 0x0C;
1509 pub const PRINTER_NOTIFY_FIELD_ATTRIBUTES
: DWORD
= 0x0D;
1510 pub const PRINTER_NOTIFY_FIELD_PRIORITY
: DWORD
= 0x0E;
1511 pub const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: DWORD
= 0x0F;
1512 pub const PRINTER_NOTIFY_FIELD_START_TIME
: DWORD
= 0x10;
1513 pub const PRINTER_NOTIFY_FIELD_UNTIL_TIME
: DWORD
= 0x11;
1514 pub const PRINTER_NOTIFY_FIELD_STATUS
: DWORD
= 0x12;
1515 pub const PRINTER_NOTIFY_FIELD_STATUS_STRING
: DWORD
= 0x13;
1516 pub const PRINTER_NOTIFY_FIELD_CJOBS
: DWORD
= 0x14;
1517 pub const PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: DWORD
= 0x15;
1518 pub const PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: DWORD
= 0x16;
1519 pub const PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: DWORD
= 0x17;
1520 pub const PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: DWORD
= 0x18;
1521 pub const PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: DWORD
= 0x19;
1522 pub const PRINTER_NOTIFY_FIELD_OBJECT_GUID
: DWORD
= 0x1A;
1523 pub const PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: DWORD
= 0x1B;
1524 pub const PRINTER_NOTIFY_FIELD_BRANCH_OFFICE_PRINTING
: DWORD
= 0x1C;
1525 pub const JOB_NOTIFY_FIELD_PRINTER_NAME
: DWORD
= 0x00;
1526 pub const JOB_NOTIFY_FIELD_MACHINE_NAME
: DWORD
= 0x01;
1527 pub const JOB_NOTIFY_FIELD_PORT_NAME
: DWORD
= 0x02;
1528 pub const JOB_NOTIFY_FIELD_USER_NAME
: DWORD
= 0x03;
1529 pub const JOB_NOTIFY_FIELD_NOTIFY_NAME
: DWORD
= 0x04;
1530 pub const JOB_NOTIFY_FIELD_DATATYPE
: DWORD
= 0x05;
1531 pub const JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: DWORD
= 0x06;
1532 pub const JOB_NOTIFY_FIELD_PARAMETERS
: DWORD
= 0x07;
1533 pub const JOB_NOTIFY_FIELD_DRIVER_NAME
: DWORD
= 0x08;
1534 pub const JOB_NOTIFY_FIELD_DEVMODE
: DWORD
= 0x09;
1535 pub const JOB_NOTIFY_FIELD_STATUS
: DWORD
= 0x0A;
1536 pub const JOB_NOTIFY_FIELD_STATUS_STRING
: DWORD
= 0x0B;
1537 pub const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: DWORD
= 0x0C;
1538 pub const JOB_NOTIFY_FIELD_DOCUMENT
: DWORD
= 0x0D;
1539 pub const JOB_NOTIFY_FIELD_PRIORITY
: DWORD
= 0x0E;
1540 pub const JOB_NOTIFY_FIELD_POSITION
: DWORD
= 0x0F;
1541 pub const JOB_NOTIFY_FIELD_SUBMITTED
: DWORD
= 0x10;
1542 pub const JOB_NOTIFY_FIELD_START_TIME
: DWORD
= 0x11;
1543 pub const JOB_NOTIFY_FIELD_UNTIL_TIME
: DWORD
= 0x12;
1544 pub const JOB_NOTIFY_FIELD_TIME
: DWORD
= 0x13;
1545 pub const JOB_NOTIFY_FIELD_TOTAL_PAGES
: DWORD
= 0x14;
1546 pub const JOB_NOTIFY_FIELD_PAGES_PRINTED
: DWORD
= 0x15;
1547 pub const JOB_NOTIFY_FIELD_TOTAL_BYTES
: DWORD
= 0x16;
1548 pub const JOB_NOTIFY_FIELD_BYTES_PRINTED
: DWORD
= 0x17;
1549 pub const JOB_NOTIFY_FIELD_REMOTE_JOB_ID
: DWORD
= 0x18;
1550 pub const SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP
: DWORD
= 0x00;
1551 pub const PRINTER_NOTIFY_CATEGORY_ALL
: DWORD
= 0x001000;
1552 pub const PRINTER_NOTIFY_CATEGORY_3D
: DWORD
= 0x002000;
1553 STRUCT
!{struct PRINTER_NOTIFY_OPTIONS_TYPE
{
1561 pub type PPRINTER_NOTIFY_OPTIONS_TYPE
= *mut PRINTER_NOTIFY_OPTIONS_TYPE
;
1562 pub type LPPRINTER_NOTIFY_OPTIONS_TYPE
= *mut PRINTER_NOTIFY_OPTIONS_TYPE
;
1563 pub const PRINTER_NOTIFY_OPTIONS_REFRESH
: DWORD
= 0x01;
1564 STRUCT
!{struct PRINTER_NOTIFY_OPTIONS
{
1568 pTypes
: PPRINTER_NOTIFY_OPTIONS_TYPE
,
1570 pub type PPRINTER_NOTIFY_OPTIONS
= *mut PRINTER_NOTIFY_OPTIONS
;
1571 pub type LPPRINTER_NOTIFY_OPTIONS
= *mut PRINTER_NOTIFY_OPTIONS
;
1572 pub const PRINTER_NOTIFY_INFO_DISCARDED
: DWORD
= 0x01;
1573 STRUCT
!{struct PRINTER_NOTIFY_INFO_DATA_NotifyData_Data
{
1577 UNION
!{union PRINTER_NOTIFY_INFO_DATA_NotifyData
{
1579 adwData adwData_mut
: [DWORD
; 2],
1580 Data Data_mut
: PRINTER_NOTIFY_INFO_DATA_NotifyData_Data
,
1582 STRUCT
!{struct PRINTER_NOTIFY_INFO_DATA
{
1587 NotifyData
: PRINTER_NOTIFY_INFO_DATA_NotifyData
,
1589 pub type PPRINTER_NOTIFY_INFO_DATA
= *mut PRINTER_NOTIFY_INFO_DATA
;
1590 pub type LPPRINTER_NOTIFY_INFO_DATA
= *mut PRINTER_NOTIFY_INFO_DATA
;
1591 STRUCT
!{struct PRINTER_NOTIFY_INFO
{
1595 aData
: [PRINTER_NOTIFY_INFO_DATA
; 1],
1597 pub type PPRINTER_NOTIFY_INFO
= *mut PRINTER_NOTIFY_INFO
;
1598 pub type LPPRINTER_NOTIFY_INFO
= *mut PRINTER_NOTIFY_INFO
;
1599 STRUCT
!{struct BINARY_CONTAINER
{
1603 pub type PBINARY_CONTAINER
= *mut BINARY_CONTAINER
;
1604 UNION
!{union BIDI_DATA_u
{
1606 bData bData_mut
: BOOL
,
1607 iData iData_mut
: LONG
,
1608 sData sData_mut
: LPWSTR
,
1609 fData fData_mut
: FLOAT
,
1610 biData biData_mut
: BINARY_CONTAINER
,
1612 STRUCT
!{struct BIDI_DATA
{
1616 pub type PBIDI_DATA
= *mut BIDI_DATA
;
1617 pub type LPBIDI_DATA
= *mut BIDI_DATA
;
1618 STRUCT
!{struct BIDI_REQUEST_DATA
{
1623 pub type PBIDI_REQUEST_DATA
= *mut BIDI_REQUEST_DATA
;
1624 pub type LPBIDI_REQUEST_DATA
= *mut BIDI_REQUEST_DATA
;
1625 STRUCT
!{struct BIDI_REQUEST_CONTAINER
{
1629 aData
: [BIDI_REQUEST_DATA
; 1],
1631 pub type PBIDI_REQUEST_CONTAINER
= *mut BIDI_REQUEST_CONTAINER
;
1632 pub type LPBIDI_REQUEST_CONTAINER
= *mut BIDI_REQUEST_CONTAINER
;
1633 STRUCT
!{struct BIDI_RESPONSE_DATA
{
1639 pub type PBIDI_RESPONSE_DATA
= *mut BIDI_RESPONSE_DATA
;
1640 pub type LPBIDI_RESPONSE_DATA
= *mut BIDI_RESPONSE_DATA
;
1641 STRUCT
!{struct BIDI_RESPONSE_CONTAINER
{
1645 aData
: [BIDI_RESPONSE_DATA
; 1],
1647 pub type PBIDI_RESPONSE_CONTAINER
= *mut BIDI_RESPONSE_CONTAINER
;
1648 pub type LPBIDI_RESPONSE_CONTAINER
= *mut BIDI_RESPONSE_CONTAINER
;
1649 pub const BIDI_ACTION_ENUM_SCHEMA
: &'
static str = "EnumSchema";
1650 pub const BIDI_ACTION_GET
: &'
static str = "Get";
1651 pub const BIDI_ACTION_SET
: &'
static str = "Set";
1652 pub const BIDI_ACTION_GET_ALL
: &'
static str = "GetAll";
1653 pub const BIDI_ACTION_GET_WITH_ARGUMENT
: &'
static str = "GetWithArgument";
1654 ENUM
!{enum BIDI_TYPE
{
1664 pub const BIDI_ACCESS_ADMINISTRATOR
: DWORD
= 0x1;
1665 pub const BIDI_ACCESS_USER
: DWORD
= 0x2;
1666 pub const ERROR_BIDI_STATUS_OK
: DWORD
= 0;
1667 pub const ERROR_BIDI_NOT_SUPPORTED
: DWORD
= ERROR_NOT_SUPPORTED
;
1668 pub const ERROR_BIDI_ERROR_BASE
: DWORD
= 13000;
1669 pub const ERROR_BIDI_STATUS_WARNING
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 1;
1670 pub const ERROR_BIDI_SCHEMA_READ_ONLY
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 2;
1671 pub const ERROR_BIDI_SERVER_OFFLINE
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 3;
1672 pub const ERROR_BIDI_DEVICE_OFFLINE
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 4;
1673 pub const ERROR_BIDI_SCHEMA_NOT_SUPPORTED
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 5;
1674 pub const ERROR_BIDI_SET_DIFFERENT_TYPE
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 6;
1675 pub const ERROR_BIDI_SET_MULTIPLE_SCHEMAPATH
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 7;
1676 pub const ERROR_BIDI_SET_INVALID_SCHEMAPATH
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 8;
1677 pub const ERROR_BIDI_SET_UNKNOWN_FAILURE
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 9;
1678 pub const ERROR_BIDI_SCHEMA_WRITE_ONLY
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 10;
1679 pub const ERROR_BIDI_GET_REQUIRES_ARGUMENT
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 11;
1680 pub const ERROR_BIDI_GET_ARGUMENT_NOT_SUPPORTED
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 12;
1681 pub const ERROR_BIDI_GET_MISSING_ARGUMENT
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 13;
1682 pub const ERROR_BIDI_DEVICE_CONFIG_UNCHANGED
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 14;
1683 pub const ERROR_BIDI_NO_LOCALIZED_RESOURCES
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 15;
1684 pub const ERROR_BIDI_NO_BIDI_SCHEMA_EXTENSIONS
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 16;
1685 pub const ERROR_BIDI_UNSUPPORTED_CLIENT_LANGUAGE
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 17;
1686 pub const ERROR_BIDI_UNSUPPORTED_RESOURCE_FORMAT
: DWORD
= ERROR_BIDI_ERROR_BASE
+ 18;
1688 pub fn WaitForPrinterChange(
1692 pub fn FindFirstPrinterChangeNotification(
1696 pPrinterNotifyOptions
: LPVOID
,
1698 pub fn FindNextPrinterChangeNotification(
1701 pPrinterNotifyOptions
: LPVOID
,
1702 ppPrinterNotifyInfo
: *mut LPVOID
,
1704 pub fn FreePrinterNotifyInfo(
1705 pPrinterNotifyInfo
: PPRINTER_NOTIFY_INFO
,
1707 pub fn FindClosePrinterChangeNotification(
1711 pub const PRINTER_CHANGE_ADD_PRINTER
: DWORD
= 0x00000001;
1712 pub const PRINTER_CHANGE_SET_PRINTER
: DWORD
= 0x00000002;
1713 pub const PRINTER_CHANGE_DELETE_PRINTER
: DWORD
= 0x00000004;
1714 pub const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
: DWORD
= 0x00000008;
1715 pub const PRINTER_CHANGE_PRINTER
: DWORD
= 0x000000FF;
1716 pub const PRINTER_CHANGE_ADD_JOB
: DWORD
= 0x00000100;
1717 pub const PRINTER_CHANGE_SET_JOB
: DWORD
= 0x00000200;
1718 pub const PRINTER_CHANGE_DELETE_JOB
: DWORD
= 0x00000400;
1719 pub const PRINTER_CHANGE_WRITE_JOB
: DWORD
= 0x00000800;
1720 pub const PRINTER_CHANGE_JOB
: DWORD
= 0x0000FF00;
1721 pub const PRINTER_CHANGE_ADD_FORM
: DWORD
= 0x00010000;
1722 pub const PRINTER_CHANGE_SET_FORM
: DWORD
= 0x00020000;
1723 pub const PRINTER_CHANGE_DELETE_FORM
: DWORD
= 0x00040000;
1724 pub const PRINTER_CHANGE_FORM
: DWORD
= 0x00070000;
1725 pub const PRINTER_CHANGE_ADD_PORT
: DWORD
= 0x00100000;
1726 pub const PRINTER_CHANGE_CONFIGURE_PORT
: DWORD
= 0x00200000;
1727 pub const PRINTER_CHANGE_DELETE_PORT
: DWORD
= 0x00400000;
1728 pub const PRINTER_CHANGE_PORT
: DWORD
= 0x00700000;
1729 pub const PRINTER_CHANGE_ADD_PRINT_PROCESSOR
: DWORD
= 0x01000000;
1730 pub const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
: DWORD
= 0x04000000;
1731 pub const PRINTER_CHANGE_PRINT_PROCESSOR
: DWORD
= 0x07000000;
1732 pub const PRINTER_CHANGE_SERVER
: DWORD
= 0x08000000;
1733 pub const PRINTER_CHANGE_ADD_PRINTER_DRIVER
: DWORD
= 0x10000000;
1734 pub const PRINTER_CHANGE_SET_PRINTER_DRIVER
: DWORD
= 0x20000000;
1735 pub const PRINTER_CHANGE_DELETE_PRINTER_DRIVER
: DWORD
= 0x40000000;
1736 pub const PRINTER_CHANGE_PRINTER_DRIVER
: DWORD
= 0x70000000;
1737 pub const PRINTER_CHANGE_TIMEOUT
: DWORD
= 0x80000000;
1738 pub const PRINTER_CHANGE_ALL
: DWORD
= 0x7F77FFFF;
1740 pub fn PrinterMessageBoxA(
1748 pub fn PrinterMessageBoxW(
1757 pub const PRINTER_ERROR_INFORMATION
: DWORD
= 0x80000000;
1758 pub const PRINTER_ERROR_WARNING
: DWORD
= 0x40000000;
1759 pub const PRINTER_ERROR_SEVERE
: DWORD
= 0x20000000;
1760 pub const PRINTER_ERROR_OUTOFPAPER
: DWORD
= 0x00000001;
1761 pub const PRINTER_ERROR_JAM
: DWORD
= 0x00000002;
1762 pub const PRINTER_ERROR_OUTOFTONER
: DWORD
= 0x00000004;
1764 pub fn ClosePrinter(
1819 pcReturned
: LPDWORD
,
1827 pcReturned
: LPDWORD
,
1829 pub fn EnumMonitorsA(
1835 pcReturned
: LPDWORD
,
1837 pub fn EnumMonitorsW(
1843 pcReturned
: LPDWORD
,
1855 pub fn DeleteMonitorA(
1857 pEnvironment
: LPSTR
,
1858 pMonitorName
: LPSTR
,
1860 pub fn DeleteMonitorW(
1862 pEnvironment
: LPWSTR
,
1863 pMonitorName
: LPWSTR
,
1871 pcReturned
: LPDWORD
,
1879 pcReturned
: LPDWORD
,
1884 pMonitorName
: LPSTR
,
1889 pMonitorName
: LPWSTR
,
1891 pub fn ConfigurePortA(
1896 pub fn ConfigurePortW(
1913 pszDataName
: PCWSTR
,
1917 cbOutputData
: DWORD
,
1918 pcbOutputNeeded
: PDWORD
,
1921 pub fn GetDefaultPrinterA(
1923 pcchBuffer
: LPDWORD
,
1925 pub fn GetDefaultPrinterW(
1927 pcchBuffer
: LPDWORD
,
1929 pub fn SetDefaultPrinterA(
1932 pub fn SetDefaultPrinterW(
1933 pszPrinter
: LPCWSTR
,
1941 pub fn SetPortW(pName
: LPWSTR
,
1946 pub fn AddPrinterConnectionA(
1949 pub fn AddPrinterConnectionW(
1952 pub fn DeletePrinterConnectionA(
1955 pub fn DeletePrinterConnectionW(
1958 pub fn ConnectToPrinterDlg(
1963 STRUCT
!{struct PROVIDOR_INFO_1A
{
1965 pEnvironment
: LPSTR
,
1968 pub type PPROVIDOR_INFO_1A
= *mut PROVIDOR_INFO_1A
;
1969 pub type LPPROVIDOR_INFO_1A
= *mut PROVIDOR_INFO_1A
;
1970 STRUCT
!{struct PROVIDOR_INFO_1W
{
1972 pEnvironment
: LPWSTR
,
1975 pub type PPROVIDOR_INFO_1W
= *mut PROVIDOR_INFO_1W
;
1976 pub type LPPROVIDOR_INFO_1W
= *mut PROVIDOR_INFO_1W
;
1977 STRUCT
!{struct PROVIDOR_INFO_2A
{
1980 pub type PPROVIDOR_INFO_2A
= *mut PROVIDOR_INFO_2A
;
1981 pub type LPPROVIDOR_INFO_2A
= *mut PROVIDOR_INFO_2A
;
1982 STRUCT
!{struct PROVIDOR_INFO_2W
{
1985 pub type PPROVIDOR_INFO_2W
= *mut PROVIDOR_INFO_2W
;
1986 pub type LPPROVIDOR_INFO_2W
= *mut PROVIDOR_INFO_2W
;
1988 pub fn AddPrintProvidorA(
1991 pProvidorInfo
: LPBYTE
,
1993 pub fn AddPrintProvidorW(
1996 pProvidorInfo
: LPBYTE
,
1998 pub fn DeletePrintProvidorA(
2000 pEnvironment
: LPSTR
,
2001 pPrintProvidorName
: LPSTR
,
2003 pub fn DeletePrintProvidorW(
2005 pEnvironment
: LPWSTR
,
2006 pPrintProvidorName
: LPWSTR
,
2008 pub fn IsValidDevmodeA(
2009 pDevmode
: PDEVMODEA
,
2010 DevmodeSize
: size_t
,
2012 pub fn IsValidDevmodeW(
2013 pDevmode
: PDEVMODEW
,
2014 DevmodeSize
: size_t
,
2017 pub const SPLREG_DEFAULT_SPOOL_DIRECTORY
: &'
static str = "DefaultSpoolDirectory";
2018 pub const SPLREG_PORT_THREAD_PRIORITY_DEFAULT
: &'
static str = "PortThreadPriorityDefault";
2019 pub const SPLREG_PORT_THREAD_PRIORITY
: &'
static str = "PortThreadPriority";
2020 pub const SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT
: &'
static str
2021 = "SchedulerThreadPriorityDefault";
2022 pub const SPLREG_SCHEDULER_THREAD_PRIORITY
: &'
static str = "SchedulerThreadPriority";
2023 pub const SPLREG_BEEP_ENABLED
: &'
static str = "BeepEnabled";
2024 pub const SPLREG_NET_POPUP
: &'
static str = "NetPopup";
2025 pub const SPLREG_RETRY_POPUP
: &'
static str = "RetryPopup";
2026 pub const SPLREG_NET_POPUP_TO_COMPUTER
: &'
static str = "NetPopupToComputer";
2027 pub const SPLREG_EVENT_LOG
: &'
static str = "EventLog";
2028 pub const SPLREG_MAJOR_VERSION
: &'
static str = "MajorVersion";
2029 pub const SPLREG_MINOR_VERSION
: &'
static str = "MinorVersion";
2030 pub const SPLREG_ARCHITECTURE
: &'
static str = "Architecture";
2031 pub const SPLREG_OS_VERSION
: &'
static str = "OSVersion";
2032 pub const SPLREG_OS_VERSIONEX
: &'
static str = "OSVersionEx";
2033 pub const SPLREG_DS_PRESENT
: &'
static str = "DsPresent";
2034 pub const SPLREG_DS_PRESENT_FOR_USER
: &'
static str = "DsPresentForUser";
2035 pub const SPLREG_REMOTE_FAX
: &'
static str = "RemoteFax";
2036 pub const SPLREG_RESTART_JOB_ON_POOL_ERROR
: &'
static str = "RestartJobOnPoolError";
2037 pub const SPLREG_RESTART_JOB_ON_POOL_ENABLED
: &'
static str = "RestartJobOnPoolEnabled";
2038 pub const SPLREG_DNS_MACHINE_NAME
: &'
static str = "DNSMachineName";
2039 pub const SPLREG_ALLOW_USER_MANAGEFORMS
: &'
static str = "AllowUserManageForms";
2040 pub const SPLREG_WEBSHAREMGMT
: &'
static str = "WebShareMgmt";
2041 pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR
: &'
static str = "\\";
2042 pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS
: &'
static str = "PrintDriverIsolationGroups";
2043 pub const SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE
: &'
static str
2044 = "PrintDriverIsolationTimeBeforeRecycle";
2045 pub const SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE
: &'
static str
2046 = "PrintDriverIsolationMaxobjsBeforeRecycle";
2047 pub const SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT
: &'
static str
2048 = "PrintDriverIsolationIdleTimeout";
2049 pub const SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY
: &'
static str
2050 = "PrintDriverIsolationExecutionPolicy";
2051 pub const SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY
: &'
static str
2052 = "PrintDriverIsolationOverrideCompat";
2053 pub const SPLREG_PRINT_QUEUE_V4_DRIVER_DIRECTORY
: &'
static str = "PrintQueueV4DriverDirectory";
2054 pub const SERVER_ACCESS_ADMINISTER
: DWORD
= 0x00000001;
2055 pub const SERVER_ACCESS_ENUMERATE
: DWORD
= 0x00000002;
2056 pub const PRINTER_ACCESS_ADMINISTER
: DWORD
= 0x00000004;
2057 pub const PRINTER_ACCESS_USE
: DWORD
= 0x00000008;
2058 pub const JOB_ACCESS_ADMINISTER
: DWORD
= 0x00000010;
2059 pub const JOB_ACCESS_READ
: DWORD
= 0x00000020;
2060 pub const PRINTER_ACCESS_MANAGE_LIMITED
: DWORD
= 0x00000040;
2061 pub const SERVER_ALL_ACCESS
: DWORD
= STANDARD_RIGHTS_REQUIRED
| SERVER_ACCESS_ADMINISTER
2062 | SERVER_ACCESS_ENUMERATE
;
2063 pub const SERVER_READ
: DWORD
= STANDARD_RIGHTS_READ
| SERVER_ACCESS_ENUMERATE
;
2064 pub const SERVER_WRITE
: DWORD
= STANDARD_RIGHTS_WRITE
| SERVER_ACCESS_ADMINISTER
2065 | SERVER_ACCESS_ENUMERATE
;
2066 pub const SERVER_EXECUTE
: DWORD
= STANDARD_RIGHTS_EXECUTE
| SERVER_ACCESS_ENUMERATE
;
2067 pub const PRINTER_ALL_ACCESS
: DWORD
= STANDARD_RIGHTS_REQUIRED
| PRINTER_ACCESS_ADMINISTER
2068 | PRINTER_ACCESS_USE
;
2069 pub const PRINTER_READ
: DWORD
= STANDARD_RIGHTS_READ
| PRINTER_ACCESS_USE
;
2070 pub const PRINTER_WRITE
: DWORD
= STANDARD_RIGHTS_WRITE
| PRINTER_ACCESS_USE
;
2071 pub const PRINTER_EXECUTE
: DWORD
= STANDARD_RIGHTS_EXECUTE
| PRINTER_ACCESS_USE
;
2072 pub const JOB_ALL_ACCESS
: DWORD
= STANDARD_RIGHTS_REQUIRED
| JOB_ACCESS_ADMINISTER
2074 pub const JOB_READ
: DWORD
= STANDARD_RIGHTS_READ
| JOB_ACCESS_READ
;
2075 pub const JOB_WRITE
: DWORD
= STANDARD_RIGHTS_WRITE
| JOB_ACCESS_ADMINISTER
;
2076 pub const JOB_EXECUTE
: DWORD
= STANDARD_RIGHTS_EXECUTE
| JOB_ACCESS_ADMINISTER
;
2077 pub const SPLDS_SPOOLER_KEY
: &'
static str = "DsSpooler";
2078 pub const SPLDS_DRIVER_KEY
: &'
static str = "DsDriver";
2079 pub const SPLDS_USER_KEY
: &'
static str = "DsUser";
2080 pub const SPLDS_ASSET_NUMBER
: &'
static str = "assetNumber";
2081 pub const SPLDS_BYTES_PER_MINUTE
: &'
static str = "bytesPerMinute";
2082 pub const SPLDS_DESCRIPTION
: &'
static str = "description";
2083 pub const SPLDS_DRIVER_NAME
: &'
static str = "driverName";
2084 pub const SPLDS_DRIVER_VERSION
: &'
static str = "driverVersion";
2085 pub const SPLDS_LOCATION
: &'
static str = "location";
2086 pub const SPLDS_PORT_NAME
: &'
static str = "portName";
2087 pub const SPLDS_PRINT_ATTRIBUTES
: &'
static str = "printAttributes";
2088 pub const SPLDS_PRINT_BIN_NAMES
: &'
static str = "printBinNames";
2089 pub const SPLDS_PRINT_COLLATE
: &'
static str = "printCollate";
2090 pub const SPLDS_PRINT_COLOR
: &'
static str = "printColor";
2091 pub const SPLDS_PRINT_DUPLEX_SUPPORTED
: &'
static str = "printDuplexSupported";
2092 pub const SPLDS_PRINT_END_TIME
: &'
static str = "printEndTime";
2093 pub const SPLDS_PRINTER_CLASS
: &'
static str = "printQueue";
2094 pub const SPLDS_PRINTER_NAME
: &'
static str = "printerName";
2095 pub const SPLDS_PRINT_KEEP_PRINTED_JOBS
: &'
static str = "printKeepPrintedJobs";
2096 pub const SPLDS_PRINT_LANGUAGE
: &'
static str = "printLanguage";
2097 pub const SPLDS_PRINT_MAC_ADDRESS
: &'
static str = "printMACAddress";
2098 pub const SPLDS_PRINT_MAX_X_EXTENT
: &'
static str = "printMaxXExtent";
2099 pub const SPLDS_PRINT_MAX_Y_EXTENT
: &'
static str = "printMaxYExtent";
2100 pub const SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED
: &'
static str = "printMaxResolutionSupported";
2101 pub const SPLDS_PRINT_MEDIA_READY
: &'
static str = "printMediaReady";
2102 pub const SPLDS_PRINT_MEDIA_SUPPORTED
: &'
static str = "printMediaSupported";
2103 pub const SPLDS_PRINT_MEMORY
: &'
static str = "printMemory";
2104 pub const SPLDS_PRINT_MIN_X_EXTENT
: &'
static str = "printMinXExtent";
2105 pub const SPLDS_PRINT_MIN_Y_EXTENT
: &'
static str = "printMinYExtent";
2106 pub const SPLDS_PRINT_NETWORK_ADDRESS
: &'
static str = "printNetworkAddress";
2107 pub const SPLDS_PRINT_NOTIFY
: &'
static str = "printNotify";
2108 pub const SPLDS_PRINT_NUMBER_UP
: &'
static str = "printNumberUp";
2109 pub const SPLDS_PRINT_ORIENTATIONS_SUPPORTED
: &'
static str = "printOrientationsSupported";
2110 pub const SPLDS_PRINT_OWNER
: &'
static str = "printOwner";
2111 pub const SPLDS_PRINT_PAGES_PER_MINUTE
: &'
static str = "printPagesPerMinute";
2112 pub const SPLDS_PRINT_RATE
: &'
static str = "printRate";
2113 pub const SPLDS_PRINT_RATE_UNIT
: &'
static str = "printRateUnit";
2114 pub const SPLDS_PRINT_SEPARATOR_FILE
: &'
static str = "printSeparatorFile";
2115 pub const SPLDS_PRINT_SHARE_NAME
: &'
static str = "printShareName";
2116 pub const SPLDS_PRINT_SPOOLING
: &'
static str = "printSpooling";
2117 pub const SPLDS_PRINT_STAPLING_SUPPORTED
: &'
static str = "printStaplingSupported";
2118 pub const SPLDS_PRINT_START_TIME
: &'
static str = "printStartTime";
2119 pub const SPLDS_PRINT_STATUS
: &'
static str = "printStatus";
2120 pub const SPLDS_PRIORITY
: &'
static str = "priority";
2121 pub const SPLDS_SERVER_NAME
: &'
static str = "serverName";
2122 pub const SPLDS_SHORT_SERVER_NAME
: &'
static str = "shortServerName";
2123 pub const SPLDS_UNC_NAME
: &'
static str = "uNCName";
2124 pub const SPLDS_URL
: &'
static str = "url";
2125 pub const SPLDS_FLAGS
: &'
static str = "flags";
2126 pub const SPLDS_VERSION_NUMBER
: &'
static str = "versionNumber";
2127 pub const SPLDS_PRINTER_NAME_ALIASES
: &'
static str = "printerNameAliases";
2128 pub const SPLDS_PRINTER_LOCATIONS
: &'
static str = "printerLocations";
2129 pub const SPLDS_PRINTER_MODEL
: &'
static str = "printerModel";
2130 ENUM
!{enum PRINTER_OPTION_FLAGS
{
2131 PRINTER_OPTION_NO_CACHE
= 1 << 0,
2132 PRINTER_OPTION_CACHE
= 1 << 1,
2133 PRINTER_OPTION_CLIENT_CHANGE
= 1 << 2,
2134 PRINTER_OPTION_NO_CLIENT_DATA
= 1 << 3,
2136 STRUCT
!{struct PRINTER_OPTIONSA
{
2140 pub type PPRINTER_OPTIONSA
= *mut PRINTER_OPTIONSA
;
2141 pub type LPPRINTER_OPTIONSA
= *mut PRINTER_OPTIONSA
;
2142 STRUCT
!{struct PRINTER_OPTIONSW
{
2146 pub type PPRINTER_OPTIONSW
= *mut PRINTER_OPTIONSW
;
2147 pub type LPPRINTER_OPTIONSW
= *mut PRINTER_OPTIONSW
;
2149 pub fn OpenPrinter2A(
2150 pPrinterName
: LPCSTR
,
2151 phPrinter
: LPHANDLE
,
2152 pDefault
: PPRINTER_DEFAULTSA
,
2153 pOptions
: PPRINTER_OPTIONSA
,
2155 pub fn OpenPrinter2W(
2156 pPrinterName
: LPCWSTR
,
2157 phPrinter
: LPHANDLE
,
2158 pDefault
: PPRINTER_DEFAULTSW
,
2159 pOptions
: PPRINTER_OPTIONSW
,
2162 pub const PRINTER_CONNECTION_MISMATCH
: DWORD
= 0x00000020;
2163 pub const PRINTER_CONNECTION_NO_UI
: DWORD
= 0x00000040;
2164 STRUCT
!{struct PRINTER_CONNECTION_INFO_1A
{
2166 pszDriverName
: LPSTR
,
2168 pub type PPRINTER_CONNECTION_INFO_1A
= *mut PRINTER_CONNECTION_INFO_1A
;
2169 pub type LPPRINTER_CONNECTION_INFO_1A
= *mut PRINTER_CONNECTION_INFO_1A
;
2170 STRUCT
!{struct PRINTER_CONNECTION_INFO_1W
{
2172 pszDriverName
: LPWSTR
,
2174 pub type PPRINTER_CONNECTION_INFO_1W
= *mut PRINTER_CONNECTION_INFO_1W
;
2175 pub type LPPRINTER_CONNECTION_INFO_1W
= *mut PRINTER_CONNECTION_INFO_1W
;
2177 pub fn AddPrinterConnection2A(
2181 pConnectionInfo
: PVOID
,
2183 pub fn AddPrinterConnection2W(
2187 pConnectionInfo
: PVOID
,
2190 pub const IPDFP_COPY_ALL_FILES
: DWORD
= 0x00000001;
2192 pub fn InstallPrinterDriverFromPackageA(
2195 pszDriverName
: LPCSTR
,
2196 pszEnvironment
: LPCSTR
,
2199 pub fn InstallPrinterDriverFromPackageW(
2201 pszInfPath
: LPCWSTR
,
2202 pszDriverName
: LPCWSTR
,
2203 pszEnvironment
: LPCWSTR
,
2207 pub const UPDP_SILENT_UPLOAD
: DWORD
= 0x00000001;
2208 pub const UPDP_UPLOAD_ALWAYS
: DWORD
= 0x00000002;
2209 pub const UPDP_CHECK_DRIVERSTORE
: DWORD
= 0x00000004;
2211 pub fn UploadPrinterDriverPackageA(
2214 pszEnvironment
: LPCSTR
,
2217 pszDestInfPath
: LPSTR
,
2218 pcchDestInfPath
: PULONG
,
2220 pub fn UploadPrinterDriverPackageW(
2222 pszInfPath
: LPCWSTR
,
2223 pszEnvironment
: LPCWSTR
,
2226 pszDestInfPath
: LPWSTR
,
2227 pcchDestInfPath
: PULONG
,
2230 STRUCT
!{struct CORE_PRINTER_DRIVERA
{
2231 CoreDriverGUID
: GUID
,
2232 ftDriverDate
: FILETIME
,
2233 dwlDriverVersion
: DWORDLONG
,
2234 szPackageID
: [CHAR
; MAX_PATH
],
2236 pub type PCORE_PRINTER_DRIVERA
= *mut CORE_PRINTER_DRIVERA
;
2237 STRUCT
!{struct CORE_PRINTER_DRIVERW
{
2238 CoreDriverGUID
: GUID
,
2239 ftDriverDate
: FILETIME
,
2240 dwlDriverVersion
: DWORDLONG
,
2241 szPackageID
: [WCHAR
; MAX_PATH
],
2243 pub type PCORE_PRINTER_DRIVERW
= *mut CORE_PRINTER_DRIVERW
;
2245 pub fn GetCorePrinterDriversA(
2247 pszEnvironment
: LPCSTR
,
2248 pszzCoreDriverDependencies
: LPCSTR
,
2249 cCorePrinterDrivers
: DWORD
,
2250 pCorePrinterDrivers
: PCORE_PRINTER_DRIVERA
,
2252 pub fn GetCorePrinterDriversW(
2254 pszEnvironment
: LPCWSTR
,
2255 pszzCoreDriverDependencies
: LPCWSTR
,
2256 cCorePrinterDrivers
: DWORD
,
2257 pCorePrinterDrivers
: PCORE_PRINTER_DRIVERW
,
2259 pub fn CorePrinterDriverInstalledA(
2261 pszEnvironment
: LPCSTR
,
2262 CoreDriverGUID
: GUID
,
2263 ftDriverDate
: FILETIME
,
2264 dwlDriverVersion
: DWORDLONG
,
2265 pbDriverInstalled
: *mut BOOL
,
2267 pub fn CorePrinterDriverInstalledW(
2269 pszEnvironment
: LPCWSTR
,
2270 CoreDriverGUID
: GUID
,
2271 ftDriverDate
: FILETIME
,
2272 dwlDriverVersion
: DWORDLONG
,
2273 pbDriverInstalled
: *mut BOOL
,
2275 pub fn GetPrinterDriverPackagePathA(
2277 pszEnvironment
: LPCSTR
,
2278 pszLanguage
: LPCSTR
,
2279 pszPackageID
: LPCSTR
,
2280 pszDriverPackageCab
: LPSTR
,
2281 cchDriverPackageCab
: DWORD
,
2282 pcchRequiredSize
: LPDWORD
,
2284 pub fn GetPrinterDriverPackagePathW(
2286 pszEnvironment
: LPCWSTR
,
2287 pszLanguage
: LPCWSTR
,
2288 pszPackageID
: LPCWSTR
,
2289 pszDriverPackageCab
: LPWSTR
,
2290 cchDriverPackageCab
: DWORD
,
2291 pcchRequiredSize
: LPDWORD
,
2293 pub fn DeletePrinterDriverPackageA(
2296 pszEnvironment
: LPCSTR
,
2298 pub fn DeletePrinterDriverPackageW(
2300 pszInfPath
: LPCWSTR
,
2301 pszEnvironment
: LPCWSTR
,
2304 ENUM
!{enum EPrintPropertyType
{
2305 kPropertyTypeString
= 1,
2310 kPropertyTypeDevMode
,
2312 kPropertyTypeNotificationReply
,
2313 kPropertyTypeNotificationOptions
,
2314 kPropertyTypeBuffer
,
2316 ENUM
!{enum EPrintXPSJobProgress
{
2317 kAddingDocumentSequence
= 0,
2318 kDocumentSequenceAdded
= 1,
2319 kAddingFixedDocument
= 2,
2320 kFixedDocumentAdded
= 3,
2321 kAddingFixedPage
= 4,
2322 kFixedPageAdded
= 5,
2326 kXpsDocumentCommitted
= 9,
2328 ENUM
!{enum EPrintXPSJobOperation
{
2332 STRUCT
!{struct PrintPropertyValue_value_propertyBlob
{
2336 UNION
!{union PrintPropertyValue_value
{
2338 propertyByte propertyByte_mut
: BYTE
,
2339 propertyString propertyString_mut
: PWSTR
,
2340 propertyInt32 propertyInt32_mut
: LONG
,
2341 propertyInt64 propertyInt64_mut
: LONGLONG
,
2342 propertyBlob propertyBlob_mut
: PrintPropertyValue_value_propertyBlob
,
2344 STRUCT
!{struct PrintPropertyValue
{
2345 ePropertyType
: EPrintPropertyType
,
2346 value
: PrintPropertyValue_value
,
2348 STRUCT
!{struct PrintNamedProperty
{
2349 propertyName
: *mut WCHAR
,
2350 propertyValue
: PrintPropertyValue
,
2352 STRUCT
!{struct PrintPropertiesCollection
{
2353 numberOfProperties
: ULONG
,
2354 propertiesCollection
: *mut PrintNamedProperty
,
2357 pub fn ReportJobProcessingProgress(
2358 printerHandle
: HANDLE
,
2360 jobOperation
: EPrintXPSJobOperation
,
2361 jobProgress
: EPrintXPSJobProgress
,
2363 pub fn GetPrinterDriver2A(
2366 pEnvironment
: LPSTR
,
2368 pDriverInfo
: LPBYTE
,
2372 pub fn GetPrinterDriver2W(
2375 pEnvironment
: LPWSTR
,
2377 pDriverInfo
: LPBYTE
,
2382 ENUM
!{enum PRINT_EXECUTION_CONTEXT
{
2383 PRINT_EXECUTION_CONTEXT_APPLICATION
= 0,
2384 PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE
= 1,
2385 PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST
= 2,
2386 PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE
= 3,
2387 PRINT_EXECUTION_CONTEXT_WOW64
= 4,
2389 STRUCT
!{struct PRINT_EXECUTION_DATA
{
2390 context
: PRINT_EXECUTION_CONTEXT
,
2391 clientAppPID
: DWORD
,
2394 pub fn GetPrintExecutionData(
2395 pData
: *mut PRINT_EXECUTION_DATA
,
2397 pub fn GetJobNamedPropertyValue(
2401 pValue
: *mut PrintPropertyValue
,
2403 pub fn FreePrintPropertyValue(
2404 pValue
: *mut PrintPropertyValue
,
2406 pub fn FreePrintNamedPropertyArray(
2408 ppProperties
: *mut *mut PrintNamedProperty
,
2410 pub fn SetJobNamedProperty(
2413 pProperty
: *const PrintNamedProperty
,
2415 pub fn DeleteJobNamedProperty(
2420 pub fn EnumJobNamedProperties(
2423 pcProperties
: *mut DWORD
,
2424 ppProperties
: *mut *mut PrintNamedProperty
,
2426 pub fn GetPrintOutputInfo(
2429 phFile
: *mut HANDLE
,
2430 ppszOutputFile
: *mut PWSTR
,
2433 pub const MS_PRINT_JOB_OUTPUT_FILE
: &'
static str = "MsPrintJobOutputFile";