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