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 typedef struct _DRIVER_INFO_8W { 537 DWORD cVersion; 538 LPWSTR pName; 539 LPWSTR pEnvironment; 540 LPWSTR pDriverPath; 541 LPWSTR pDataFile; 542 LPWSTR pConfigFile; 543 LPWSTR pHelpFile; 544 LPWSTR pDependentFiles; 545 LPWSTR pMonitorName; 546 LPWSTR pDefaultDataType; 547 LPWSTR pszzPreviousNames; 548 FILETIME ftDriverDate; 549 DWORDLONG dwlDriverVersion; 550 LPWSTR pszMfgName; 551 LPWSTR pszOEMUrl; 552 LPWSTR pszHardwareID; 553 LPWSTR pszProvider; 554 LPWSTR pszPrintProcessor; 555 LPWSTR pszVendorSetup; 556 LPWSTR pszzColorProfiles; 557 LPWSTR pszInfPath; 558 DWORD dwPrinterDriverAttributes; 559 LPWSTR pszzCoreDriverDependencies; 560 FILETIME ftMinInboxDriverVerDate; 561 DWORDLONG dwlMinInboxDriverVerVersion; 562 } DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W; 563 564 typedef struct _DRIVER_INFO_8A { 565 DWORD cVersion; 566 LPSTR pName; 567 LPSTR pEnvironment; 568 LPSTR pDriverPath; 569 LPSTR pDataFile; 570 LPSTR pConfigFile; 571 LPSTR pHelpFile; 572 LPSTR pDependentFiles; 573 LPSTR pMonitorName; 574 LPSTR pDefaultDataType; 575 LPSTR pszzPreviousNames; 576 FILETIME ftDriverDate; 577 DWORDLONG dwlDriverVersion; 578 LPSTR pszMfgName; 579 LPSTR pszOEMUrl; 580 LPSTR pszHardwareID; 581 LPSTR pszProvider; 582 LPSTR pszPrintProcessor; 583 LPSTR pszVendorSetup; 584 LPSTR pszzColorProfiles; 585 LPSTR pszInfPath; 586 DWORD dwPrinterDriverAttributes; 587 LPSTR pszzCoreDriverDependencies; 588 FILETIME ftMinInboxDriverVerDate; 589 DWORDLONG dwlMinInboxDriverVerVersion; 590 } DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A; 591 592 __MINGW_TYPEDEF_AW(DRIVER_INFO_8) 593 __MINGW_TYPEDEF_AW(PDRIVER_INFO_8) 594 __MINGW_TYPEDEF_AW(LPDRIVER_INFO_8) 595 596 #define DRIVER_KERNELMODE 0x00000001 597 #define DRIVER_USERMODE 0x00000002 598 599 #define DPD_DELETE_UNUSED_FILES 0x00000001 600 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002 601 #define DPD_DELETE_ALL_FILES 0x00000004 602 603 #define APD_STRICT_UPGRADE 0x00000001 604 #define APD_STRICT_DOWNGRADE 0x00000002 605 #define APD_COPY_ALL_FILES 0x00000004 606 #define APD_COPY_NEW_FILES 0x00000008 607 #define APD_COPY_FROM_DIRECTORY 0x00000010 608 609 typedef struct _DOC_INFO_1A { 610 LPSTR pDocName; 611 LPSTR pOutputFile; 612 LPSTR pDatatype; 613 } DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A; 614 615 typedef struct _DOC_INFO_1W { 616 LPWSTR pDocName; 617 LPWSTR pOutputFile; 618 LPWSTR pDatatype; 619 } DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W; 620 621 __MINGW_TYPEDEF_AW(DOC_INFO_1) 622 __MINGW_TYPEDEF_AW(PDOC_INFO_1) 623 __MINGW_TYPEDEF_AW(LPDOC_INFO_1) 624 625 typedef struct _FORM_INFO_1A { 626 DWORD Flags; 627 LPSTR pName; 628 SIZEL Size; 629 RECTL ImageableArea; 630 } FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A; 631 632 typedef struct _FORM_INFO_1W { 633 DWORD Flags; 634 LPWSTR pName; 635 SIZEL Size; 636 RECTL ImageableArea; 637 } FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W; 638 639 __MINGW_TYPEDEF_AW(FORM_INFO_1) 640 __MINGW_TYPEDEF_AW(PFORM_INFO_1) 641 __MINGW_TYPEDEF_AW(LPFORM_INFO_1) 642 643 typedef struct _FORM_INFO_2A { 644 DWORD Flags; 645 LPSTR pName; 646 SIZEL Size; 647 RECTL ImageableArea; 648 LPCSTR pKeyword; 649 DWORD StringType; 650 LPCSTR pMuiDll; 651 DWORD dwResourceId; 652 LPCSTR pDisplayName; 653 LANGID wLangId; 654 } FORM_INFO_2A, *PFORM_INFO_2A; 655 656 typedef struct _FORM_INFO_2W { 657 DWORD Flags; 658 LPWSTR pName; 659 SIZEL Size; 660 RECTL ImageableArea; 661 LPCSTR pKeyword; 662 DWORD StringType; 663 LPCWSTR pMuiDll; 664 DWORD dwResourceId; 665 LPCWSTR pDisplayName; 666 LANGID wLangId; 667 } FORM_INFO_2W, *PFORM_INFO_2W; 668 669 __MINGW_TYPEDEF_AW(FORM_INFO_2) 670 __MINGW_TYPEDEF_AW(PFORM_INFO_2) 671 672 #define STRING_NONE 0x00000001 673 #define STRING_MUIDLL 0x00000002 674 #define STRING_LANGPAIR 0x00000004 675 676 typedef struct _DOC_INFO_2A { 677 LPSTR pDocName; 678 LPSTR pOutputFile; 679 LPSTR pDatatype; 680 DWORD dwMode; 681 DWORD JobId; 682 } DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A; 683 684 typedef struct _DOC_INFO_2W { 685 LPWSTR pDocName; 686 LPWSTR pOutputFile; 687 LPWSTR pDatatype; 688 DWORD dwMode; 689 DWORD JobId; 690 } DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W; 691 692 __MINGW_TYPEDEF_AW(DOC_INFO_2) 693 __MINGW_TYPEDEF_AW(PDOC_INFO_2) 694 __MINGW_TYPEDEF_AW(LPDOC_INFO_2) 695 696 #define DI_CHANNEL 1 697 #define DI_READ_SPOOL_JOB 3 698 699 typedef struct _DOC_INFO_3A { 700 LPSTR pDocName; 701 LPSTR pOutputFile; 702 LPSTR pDatatype; 703 DWORD dwFlags; 704 } DOC_INFO_3A,*PDOC_INFO_3A,*LPDOC_INFO_3A; 705 706 typedef struct _DOC_INFO_3W { 707 LPWSTR pDocName; 708 LPWSTR pOutputFile; 709 LPWSTR pDatatype; 710 DWORD dwFlags; 711 } DOC_INFO_3W,*PDOC_INFO_3W,*LPDOC_INFO_3W; 712 713 __MINGW_TYPEDEF_AW(DOC_INFO_3) 714 __MINGW_TYPEDEF_AW(PDOC_INFO_3) 715 __MINGW_TYPEDEF_AW(LPDOC_INFO_3) 716 717 #define DI_MEMORYMAP_WRITE 0x00000001 718 719 #define FORM_USER 0x00000000 720 #define FORM_BUILTIN 0x00000001 721 #define FORM_PRINTER 0x00000002 722 723 typedef struct _PRINTPROCESSOR_INFO_1A { 724 LPSTR pName; 725 } PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A; 726 727 typedef struct _PRINTPROCESSOR_INFO_1W { 728 LPWSTR pName; 729 } PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W; 730 731 __MINGW_TYPEDEF_AW(PRINTPROCESSOR_INFO_1) 732 __MINGW_TYPEDEF_AW(PPRINTPROCESSOR_INFO_1) 733 __MINGW_TYPEDEF_AW(LPPRINTPROCESSOR_INFO_1) 734 735 typedef struct _PRINTPROCESSOR_CAPS_1 { 736 DWORD dwLevel; 737 DWORD dwNupOptions; 738 DWORD dwPageOrderFlags; 739 DWORD dwNumberOfCopies; 740 } PRINTPROCESSOR_CAPS_1,*PPRINTPROCESSOR_CAPS_1; 741 742 #define NORMAL_PRINT 0x00000000 743 #define REVERSE_PRINT 0x00000001 744 745 typedef struct _PORT_INFO_1A { 746 LPSTR pName; 747 } PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A; 748 typedef struct _PORT_INFO_1W { 749 LPWSTR pName; 750 } PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W; 751 752 __MINGW_TYPEDEF_AW(PORT_INFO_1) 753 __MINGW_TYPEDEF_AW(PPORT_INFO_1) 754 __MINGW_TYPEDEF_AW(LPPORT_INFO_1) 755 756 typedef struct _PORT_INFO_2A { 757 LPSTR pPortName; 758 LPSTR pMonitorName; 759 LPSTR pDescription; 760 DWORD fPortType; 761 DWORD Reserved; 762 } PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A; 763 764 typedef struct _PORT_INFO_2W { 765 LPWSTR pPortName; 766 LPWSTR pMonitorName; 767 LPWSTR pDescription; 768 DWORD fPortType; 769 DWORD Reserved; 770 } PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W; 771 772 __MINGW_TYPEDEF_AW(PORT_INFO_2) 773 __MINGW_TYPEDEF_AW(PPORT_INFO_2) 774 __MINGW_TYPEDEF_AW(LPPORT_INFO_2) 775 776 #define PORT_TYPE_WRITE 0x0001 777 #define PORT_TYPE_READ 0x0002 778 #define PORT_TYPE_REDIRECTED 0x0004 779 #define PORT_TYPE_NET_ATTACHED 0x0008 780 781 typedef struct _PORT_INFO_3A { 782 DWORD dwStatus; 783 LPSTR pszStatus; 784 DWORD dwSeverity; 785 } PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A; 786 787 typedef struct _PORT_INFO_3W { 788 DWORD dwStatus; 789 LPWSTR pszStatus; 790 DWORD dwSeverity; 791 } PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W; 792 793 __MINGW_TYPEDEF_AW(PORT_INFO_3) 794 __MINGW_TYPEDEF_AW(PPORT_INFO_3) 795 __MINGW_TYPEDEF_AW(LPPORT_INFO_3) 796 797 #define PORT_STATUS_TYPE_ERROR 1 798 #define PORT_STATUS_TYPE_WARNING 2 799 #define PORT_STATUS_TYPE_INFO 3 800 801 #define PORT_STATUS_OFFLINE 1 802 #define PORT_STATUS_PAPER_JAM 2 803 #define PORT_STATUS_PAPER_OUT 3 804 #define PORT_STATUS_OUTPUT_BIN_FULL 4 805 #define PORT_STATUS_PAPER_PROBLEM 5 806 #define PORT_STATUS_NO_TONER 6 807 #define PORT_STATUS_DOOR_OPEN 7 808 #define PORT_STATUS_USER_INTERVENTION 8 809 #define PORT_STATUS_OUT_OF_MEMORY 9 810 #define PORT_STATUS_TONER_LOW 10 811 #define PORT_STATUS_WARMING_UP 11 812 #define PORT_STATUS_POWER_SAVE 12 813 814 typedef struct _MONITOR_INFO_1A{ 815 LPSTR pName; 816 } MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A; 817 818 typedef struct _MONITOR_INFO_1W{ 819 LPWSTR pName; 820 } MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W; 821 822 __MINGW_TYPEDEF_AW(MONITOR_INFO_1) 823 __MINGW_TYPEDEF_AW(PMONITOR_INFO_1) 824 __MINGW_TYPEDEF_AW(LPMONITOR_INFO_1) 825 826 typedef struct _MONITOR_INFO_2A { 827 LPSTR pName; 828 LPSTR pEnvironment; 829 LPSTR pDLLName; 830 } MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A; 831 832 typedef struct _MONITOR_INFO_2W { 833 LPWSTR pName; 834 LPWSTR pEnvironment; 835 LPWSTR pDLLName; 836 } MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W; 837 838 __MINGW_TYPEDEF_AW(MONITOR_INFO_2) 839 __MINGW_TYPEDEF_AW(PMONITOR_INFO_2) 840 __MINGW_TYPEDEF_AW(LPMONITOR_INFO_2) 841 842 typedef struct _DATATYPES_INFO_1A { 843 LPSTR pName; 844 } DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A; 845 846 typedef struct _DATATYPES_INFO_1W { 847 LPWSTR pName; 848 } DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W; 849 850 __MINGW_TYPEDEF_AW(DATATYPES_INFO_1) 851 __MINGW_TYPEDEF_AW(PDATATYPES_INFO_1) 852 __MINGW_TYPEDEF_AW(LPDATATYPES_INFO_1) 853 854 typedef struct _PRINTER_DEFAULTSA { 855 LPSTR pDatatype; 856 LPDEVMODEA pDevMode; 857 ACCESS_MASK DesiredAccess; 858 } PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA; 859 860 typedef struct _PRINTER_DEFAULTSW { 861 LPWSTR pDatatype; 862 LPDEVMODEW pDevMode; 863 ACCESS_MASK DesiredAccess; 864 } PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW; 865 866 __MINGW_TYPEDEF_AW(PRINTER_DEFAULTS) 867 __MINGW_TYPEDEF_AW(PPRINTER_DEFAULTS) 868 __MINGW_TYPEDEF_AW(LPPRINTER_DEFAULTS) 869 870 typedef struct _PRINTER_ENUM_VALUESA { 871 LPSTR pValueName; 872 DWORD cbValueName; 873 DWORD dwType; 874 LPBYTE pData; 875 DWORD cbData; 876 } PRINTER_ENUM_VALUESA,*PPRINTER_ENUM_VALUESA,*LPPRINTER_ENUM_VALUESA; 877 878 typedef struct _PRINTER_ENUM_VALUESW { 879 LPWSTR pValueName; 880 DWORD cbValueName; 881 DWORD dwType; 882 LPBYTE pData; 883 DWORD cbData; 884 } PRINTER_ENUM_VALUESW,*PPRINTER_ENUM_VALUESW,*LPPRINTER_ENUM_VALUESW; 885 886 __MINGW_TYPEDEF_AW(PRINTER_ENUM_VALUES) 887 __MINGW_TYPEDEF_AW(PPRINTER_ENUM_VALUES) 888 __MINGW_TYPEDEF_AW(LPPRINTER_ENUM_VALUES) 889 890 #define EnumPrinters __MINGW_NAME_AW(EnumPrinters) 891 892 WINBOOL WINAPI EnumPrintersA(DWORD Flags,LPSTR Name,DWORD Level,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 893 WINBOOL WINAPI EnumPrintersW(DWORD Flags,LPWSTR Name,DWORD Level,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 894 895 #define PRINTER_ENUM_DEFAULT 0x00000001 896 #define PRINTER_ENUM_LOCAL 0x00000002 897 #define PRINTER_ENUM_CONNECTIONS 0x00000004 898 #define PRINTER_ENUM_FAVORITE 0x00000004 899 #define PRINTER_ENUM_NAME 0x00000008 900 #define PRINTER_ENUM_REMOTE 0x00000010 901 #define PRINTER_ENUM_SHARED 0x00000020 902 #define PRINTER_ENUM_NETWORK 0x00000040 903 904 #define PRINTER_ENUM_EXPAND 0x00004000 905 #define PRINTER_ENUM_CONTAINER 0x00008000 906 907 #define PRINTER_ENUM_ICONMASK 0x00ff0000 908 #define PRINTER_ENUM_ICON1 0x00010000 909 #define PRINTER_ENUM_ICON2 0x00020000 910 #define PRINTER_ENUM_ICON3 0x00040000 911 #define PRINTER_ENUM_ICON4 0x00080000 912 #define PRINTER_ENUM_ICON5 0x00100000 913 #define PRINTER_ENUM_ICON6 0x00200000 914 #define PRINTER_ENUM_ICON7 0x00400000 915 #define PRINTER_ENUM_ICON8 0x00800000 916 #define PRINTER_ENUM_HIDE 0x01000000 917 918 #define SPOOL_FILE_PERSISTENT 0x00000001 919 #define SPOOL_FILE_TEMPORARY 0x00000002 920 921 #define OpenPrinter __MINGW_NAME_AW(OpenPrinter) 922 #define ResetPrinter __MINGW_NAME_AW(ResetPrinter) 923 #define SetJob __MINGW_NAME_AW(SetJob) 924 #define GetJob __MINGW_NAME_AW(GetJob) 925 #define EnumJobs __MINGW_NAME_AW(EnumJobs) 926 #define AddPrinter __MINGW_NAME_AW(AddPrinter) 927 #define SetPrinter __MINGW_NAME_AW(SetPrinter) 928 #define GetPrinter __MINGW_NAME_AW(GetPrinter) 929 #define AddPrinterDriver __MINGW_NAME_AW(AddPrinterDriver) 930 #define AddPrinterDriverEx __MINGW_NAME_AW(AddPrinterDriverEx) 931 #define EnumPrinterDrivers __MINGW_NAME_AW(EnumPrinterDrivers) 932 #define GetPrinterDriver __MINGW_NAME_AW(GetPrinterDriver) 933 #define GetPrinterDriverDirectory __MINGW_NAME_AW(GetPrinterDriverDirectory) 934 #define DeletePrinterDriver __MINGW_NAME_AW(DeletePrinterDriver) 935 #define DeletePrinterDriverEx __MINGW_NAME_AW(DeletePrinterDriverEx) 936 #define AddPrintProcessor __MINGW_NAME_AW(AddPrintProcessor) 937 #define EnumPrintProcessors __MINGW_NAME_AW(EnumPrintProcessors) 938 #define GetPrintProcessorDirectory __MINGW_NAME_AW(GetPrintProcessorDirectory) 939 #define EnumPrintProcessorDatatypes __MINGW_NAME_AW(EnumPrintProcessorDatatypes) 940 #define DeletePrintProcessor __MINGW_NAME_AW(DeletePrintProcessor) 941 #define StartDocPrinter __MINGW_NAME_AW(StartDocPrinter) 942 #define AddJob __MINGW_NAME_AW(AddJob) 943 #define DocumentProperties __MINGW_NAME_AW(DocumentProperties) 944 #define AdvancedDocumentProperties __MINGW_NAME_AW(AdvancedDocumentProperties) 945 #define GetPrinterData __MINGW_NAME_AW(GetPrinterData) 946 #define GetPrinterDataEx __MINGW_NAME_AW(GetPrinterDataEx) 947 #define EnumPrinterData __MINGW_NAME_AW(EnumPrinterData) 948 #define EnumPrinterDataEx __MINGW_NAME_AW(EnumPrinterDataEx) 949 #define EnumPrinterKey __MINGW_NAME_AW(EnumPrinterKey) 950 #define SetPrinterData __MINGW_NAME_AW(SetPrinterData) 951 #define SetPrinterDataEx __MINGW_NAME_AW(SetPrinterDataEx) 952 #define DeletePrinterData __MINGW_NAME_AW(DeletePrinterData) 953 #define DeletePrinterDataEx __MINGW_NAME_AW(DeletePrinterDataEx) 954 #define DeletePrinterKey __MINGW_NAME_AW(DeletePrinterKey) 955 956 WINBOOL WINAPI OpenPrinterA(LPSTR pPrinterName,LPHANDLE phPrinter,LPPRINTER_DEFAULTSA pDefault); 957 WINBOOL WINAPI OpenPrinterW(LPWSTR pPrinterName,LPHANDLE phPrinter,LPPRINTER_DEFAULTSW pDefault); 958 WINBOOL WINAPI ResetPrinterA(HANDLE hPrinter,LPPRINTER_DEFAULTSA pDefault); 959 WINBOOL WINAPI ResetPrinterW(HANDLE hPrinter,LPPRINTER_DEFAULTSW pDefault); 960 WINBOOL WINAPI SetJobA(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD Command); 961 WINBOOL WINAPI SetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD Command); 962 WINBOOL WINAPI GetJobA(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded); 963 WINBOOL WINAPI GetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded); 964 WINBOOL WINAPI EnumJobsA(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 965 WINBOOL WINAPI EnumJobsW(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 966 HANDLE WINAPI AddPrinterA(LPSTR pName,DWORD Level,LPBYTE pPrinter); 967 HANDLE WINAPI AddPrinterW(LPWSTR pName,DWORD Level,LPBYTE pPrinter); 968 WINBOOL WINAPI DeletePrinter(HANDLE hPrinter); 969 WINBOOL WINAPI SetPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD Command); 970 WINBOOL WINAPI SetPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD Command); 971 WINBOOL WINAPI GetPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD cbBuf,LPDWORD pcbNeeded); 972 WINBOOL WINAPI GetPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD cbBuf,LPDWORD pcbNeeded); 973 WINBOOL WINAPI AddPrinterDriverA(LPSTR pName,DWORD Level,LPBYTE pDriverInfo); 974 WINBOOL WINAPI AddPrinterDriverW(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo); 975 WINBOOL WINAPI AddPrinterDriverExA(LPSTR pName,DWORD Level,LPBYTE pDriverInfo,DWORD dwFileCopyFlags); 976 WINBOOL WINAPI AddPrinterDriverExW(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo,DWORD dwFileCopyFlags); 977 WINBOOL WINAPI EnumPrinterDriversA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 978 WINBOOL WINAPI EnumPrinterDriversW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 979 WINBOOL WINAPI GetPrinterDriverA(HANDLE hPrinter,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded); 980 WINBOOL WINAPI GetPrinterDriverW(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded); 981 WINBOOL WINAPI GetPrinterDriverDirectoryA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pDriverDirectory,DWORD cbBuf,LPDWORD pcbNeeded); 982 WINBOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverDirectory,DWORD cbBuf,LPDWORD pcbNeeded); 983 WINBOOL WINAPI DeletePrinterDriverA(LPSTR pName,LPSTR pEnvironment,LPSTR pDriverName); 984 WINBOOL WINAPI DeletePrinterDriverW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName); 985 WINBOOL WINAPI DeletePrinterDriverExA(LPSTR pName,LPSTR pEnvironment,LPSTR pDriverName,DWORD dwDeleteFlag,DWORD dwVersionFlag); 986 WINBOOL WINAPI DeletePrinterDriverExW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName,DWORD dwDeleteFlag,DWORD dwVersionFlag); 987 WINBOOL WINAPI AddPrintProcessorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPathName,LPSTR pPrintProcessorName); 988 WINBOOL WINAPI AddPrintProcessorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPathName,LPWSTR pPrintProcessorName); 989 WINBOOL WINAPI EnumPrintProcessorsA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 990 WINBOOL WINAPI EnumPrintProcessorsW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 991 WINBOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName,LPSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded); 992 WINBOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded); 993 WINBOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,LPSTR pPrintProcessorName,DWORD Level,LPBYTE pDatatypes,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 994 WINBOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,LPWSTR pPrintProcessorName,DWORD Level,LPBYTE pDatatypes,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 995 WINBOOL WINAPI DeletePrintProcessorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPrintProcessorName); 996 WINBOOL WINAPI DeletePrintProcessorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPrintProcessorName); 997 DWORD WINAPI StartDocPrinterA(HANDLE hPrinter,DWORD Level,LPBYTE pDocInfo); 998 DWORD WINAPI StartDocPrinterW(HANDLE hPrinter,DWORD Level,LPBYTE pDocInfo); 999 WINBOOL WINAPI StartPagePrinter(HANDLE hPrinter); 1000 WINBOOL WINAPI WritePrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pcWritten); 1001 WINBOOL WINAPI FlushPrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pcWritten,DWORD cSleep); 1002 WINBOOL WINAPI EndPagePrinter(HANDLE hPrinter); 1003 WINBOOL WINAPI AbortPrinter(HANDLE hPrinter); 1004 WINBOOL WINAPI ReadPrinter(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pNoBytesRead); 1005 WINBOOL WINAPI EndDocPrinter(HANDLE hPrinter); 1006 WINBOOL WINAPI AddJobA(HANDLE hPrinter,DWORD Level,LPBYTE pData,DWORD cbBuf,LPDWORD pcbNeeded); 1007 WINBOOL WINAPI AddJobW(HANDLE hPrinter,DWORD Level,LPBYTE pData,DWORD cbBuf,LPDWORD pcbNeeded); 1008 WINBOOL WINAPI ScheduleJob(HANDLE hPrinter,DWORD JobId); 1009 WINBOOL WINAPI PrinterProperties(HWND hWnd,HANDLE hPrinter); 1010 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,LPSTR pDeviceName,PDEVMODEA pDevModeOutput,PDEVMODEA pDevModeInput,DWORD fMode); 1011 LONG WINAPI DocumentPropertiesW(HWND hWnd,HANDLE hPrinter,LPWSTR pDeviceName,PDEVMODEW pDevModeOutput,PDEVMODEW pDevModeInput,DWORD fMode); 1012 LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd,HANDLE hPrinter,LPSTR pDeviceName,PDEVMODEA pDevModeOutput,PDEVMODEA pDevModeInput); 1013 LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd,HANDLE hPrinter,LPWSTR pDeviceName,PDEVMODEW pDevModeOutput,PDEVMODEW pDevModeInput); 1014 LONG ExtDeviceMode(HWND hWnd,HANDLE hInst,LPDEVMODEA pDevModeOutput,LPSTR pDeviceName,LPSTR pPort,LPDEVMODEA pDevModeInput,LPSTR pProfile,DWORD fMode); 1015 DWORD WINAPI GetPrinterDataA(HANDLE hPrinter,LPSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded); 1016 DWORD WINAPI GetPrinterDataW(HANDLE hPrinter,LPWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded); 1017 DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded); 1018 DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded); 1019 DWORD WINAPI EnumPrinterDataA(HANDLE hPrinter,DWORD dwIndex,LPSTR pValueName,DWORD cbValueName,LPDWORD pcbValueName,LPDWORD pType,LPBYTE pData,DWORD cbData,LPDWORD pcbData); 1020 DWORD WINAPI EnumPrinterDataW(HANDLE hPrinter,DWORD dwIndex,LPWSTR pValueName,DWORD cbValueName,LPDWORD pcbValueName,LPDWORD pType,LPBYTE pData,DWORD cbData,LPDWORD pcbData); 1021 DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPBYTE pEnumValues,DWORD cbEnumValues,LPDWORD pcbEnumValues,LPDWORD pnEnumValues); 1022 DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPBYTE pEnumValues,DWORD cbEnumValues,LPDWORD pcbEnumValues,LPDWORD pnEnumValues); 1023 DWORD WINAPI EnumPrinterKeyA(HANDLE hPrinter,LPCSTR pKeyName,LPSTR pSubkey,DWORD cbSubkey,LPDWORD pcbSubkey); 1024 DWORD WINAPI EnumPrinterKeyW(HANDLE hPrinter,LPCWSTR pKeyName,LPWSTR pSubkey,DWORD cbSubkey,LPDWORD pcbSubkey); 1025 DWORD WINAPI SetPrinterDataA(HANDLE hPrinter,LPSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData); 1026 DWORD WINAPI SetPrinterDataW(HANDLE hPrinter,LPWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData); 1027 DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData); 1028 DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData); 1029 DWORD WINAPI DeletePrinterDataA(HANDLE hPrinter,LPSTR pValueName); 1030 DWORD WINAPI DeletePrinterDataW(HANDLE hPrinter,LPWSTR pValueName); 1031 DWORD WINAPI DeletePrinterDataExA(HANDLE hPrinter,LPCSTR pKeyName,LPCSTR pValueName); 1032 DWORD WINAPI DeletePrinterDataExW(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName); 1033 DWORD WINAPI DeletePrinterKeyA(HANDLE hPrinter,LPCSTR pKeyName); 1034 DWORD WINAPI DeletePrinterKeyW(HANDLE hPrinter,LPCWSTR pKeyName); 1035 1036 #define PRINTER_NOTIFY_TYPE 0x00 1037 #define JOB_NOTIFY_TYPE 0x01 1038 1039 #define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00 1040 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01 1041 #define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02 1042 #define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03 1043 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04 1044 #define PRINTER_NOTIFY_FIELD_COMMENT 0x05 1045 #define PRINTER_NOTIFY_FIELD_LOCATION 0x06 1046 #define PRINTER_NOTIFY_FIELD_DEVMODE 0x07 1047 #define PRINTER_NOTIFY_FIELD_SEPFILE 0x08 1048 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09 1049 #define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0A 1050 #define PRINTER_NOTIFY_FIELD_DATATYPE 0x0B 1051 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C 1052 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0D 1053 #define PRINTER_NOTIFY_FIELD_PRIORITY 0x0E 1054 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0F 1055 #define PRINTER_NOTIFY_FIELD_START_TIME 0x10 1056 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11 1057 #define PRINTER_NOTIFY_FIELD_STATUS 0x12 1058 #define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13 1059 #define PRINTER_NOTIFY_FIELD_CJOBS 0x14 1060 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15 1061 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16 1062 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17 1063 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18 1064 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19 1065 #define PRINTER_NOTIFY_FIELD_OBJECT_GUID 0x1A 1066 1067 #define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00 1068 #define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01 1069 #define JOB_NOTIFY_FIELD_PORT_NAME 0x02 1070 #define JOB_NOTIFY_FIELD_USER_NAME 0x03 1071 #define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04 1072 #define JOB_NOTIFY_FIELD_DATATYPE 0x05 1073 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06 1074 #define JOB_NOTIFY_FIELD_PARAMETERS 0x07 1075 #define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08 1076 #define JOB_NOTIFY_FIELD_DEVMODE 0x09 1077 #define JOB_NOTIFY_FIELD_STATUS 0x0A 1078 #define JOB_NOTIFY_FIELD_STATUS_STRING 0x0B 1079 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C 1080 #define JOB_NOTIFY_FIELD_DOCUMENT 0x0D 1081 #define JOB_NOTIFY_FIELD_PRIORITY 0x0E 1082 #define JOB_NOTIFY_FIELD_POSITION 0x0F 1083 #define JOB_NOTIFY_FIELD_SUBMITTED 0x10 1084 #define JOB_NOTIFY_FIELD_START_TIME 0x11 1085 #define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12 1086 #define JOB_NOTIFY_FIELD_TIME 0x13 1087 #define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14 1088 #define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15 1089 #define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16 1090 #define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17 1091 1092 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE { 1093 WORD Type; 1094 WORD Reserved0; 1095 DWORD Reserved1; 1096 DWORD Reserved2; 1097 DWORD Count; 1098 PWORD pFields; 1099 } PRINTER_NOTIFY_OPTIONS_TYPE,*PPRINTER_NOTIFY_OPTIONS_TYPE,*LPPRINTER_NOTIFY_OPTIONS_TYPE; 1100 1101 #define PRINTER_NOTIFY_OPTIONS_REFRESH 0x01 1102 1103 typedef struct _PRINTER_NOTIFY_OPTIONS { 1104 DWORD Version; 1105 DWORD Flags; 1106 DWORD Count; 1107 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; 1108 } PRINTER_NOTIFY_OPTIONS,*PPRINTER_NOTIFY_OPTIONS,*LPPRINTER_NOTIFY_OPTIONS; 1109 1110 #define PRINTER_NOTIFY_INFO_DISCARDED 0x01 1111 1112 typedef struct _PRINTER_NOTIFY_INFO_DATA { 1113 WORD Type; 1114 WORD Field; 1115 DWORD Reserved; 1116 DWORD Id; 1117 union { 1118 DWORD adwData[2]; 1119 struct { 1120 DWORD cbBuf; 1121 LPVOID pBuf; 1122 } Data; 1123 } NotifyData; 1124 } PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA; 1125 1126 typedef struct _PRINTER_NOTIFY_INFO { 1127 DWORD Version; 1128 DWORD Flags; 1129 DWORD Count; 1130 PRINTER_NOTIFY_INFO_DATA aData[1]; 1131 } PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO; 1132 1133 typedef struct _BINARY_CONTAINER{ 1134 DWORD cbBuf; 1135 LPBYTE pData; 1136 } BINARY_CONTAINER,*PBINARY_CONTAINER; 1137 1138 typedef struct _BIDI_DATA{ 1139 DWORD dwBidiType; 1140 union { 1141 WINBOOL bData; 1142 LONG iData; 1143 LPWSTR sData; 1144 FLOAT fData; 1145 BINARY_CONTAINER biData; 1146 } u; 1147 } BIDI_DATA,*PBIDI_DATA,*LPBIDI_DATA; 1148 1149 typedef struct _BIDI_REQUEST_DATA{ 1150 DWORD dwReqNumber; 1151 LPWSTR pSchema; 1152 BIDI_DATA data; 1153 } BIDI_REQUEST_DATA ,*PBIDI_REQUEST_DATA ,*LPBIDI_REQUEST_DATA; 1154 1155 typedef struct _BIDI_REQUEST_CONTAINER{ 1156 DWORD Version; 1157 DWORD Flags; 1158 DWORD Count; 1159 BIDI_REQUEST_DATA aData[1 ]; 1160 }BIDI_REQUEST_CONTAINER,*PBIDI_REQUEST_CONTAINER,*LPBIDI_REQUEST_CONTAINER; 1161 1162 typedef struct _BIDI_RESPONSE_DATA{ 1163 DWORD dwResult; 1164 DWORD dwReqNumber; 1165 LPWSTR pSchema; 1166 BIDI_DATA data; 1167 } BIDI_RESPONSE_DATA,*PBIDI_RESPONSE_DATA,*LPBIDI_RESPONSE_DATA; 1168 1169 typedef struct _BIDI_RESPONSE_CONTAINER{ 1170 DWORD Version; 1171 DWORD Flags; 1172 DWORD Count; 1173 BIDI_RESPONSE_DATA aData[1 ]; 1174 } BIDI_RESPONSE_CONTAINER,*PBIDI_RESPONSE_CONTAINER,*LPBIDI_RESPONSE_CONTAINER; 1175 1176 #define BIDI_ACTION_ENUM_SCHEMA L"EnumSchema" 1177 #define BIDI_ACTION_GET L"Get" 1178 #define BIDI_ACTION_SET L"Set" 1179 #define BIDI_ACTION_GET_ALL L"GetAll" 1180 1181 typedef enum { 1182 BIDI_NULL = 0,BIDI_INT = 1,BIDI_FLOAT = 2,BIDI_BOOL = 3,BIDI_STRING = 4,BIDI_TEXT = 5,BIDI_ENUM = 6,BIDI_BLOB = 7 1183 } BIDI_TYPE; 1184 1185 #define BIDI_ACCESS_ADMINISTRATOR 0x1 1186 #define BIDI_ACCESS_USER 0x2 1187 1188 #define ERROR_BIDI_STATUS_OK 0 1189 #define ERROR_BIDI_NOT_SUPPORTED ERROR_NOT_SUPPORTED 1190 1191 #define ERROR_BIDI_ERROR_BASE 13000 1192 #define ERROR_BIDI_STATUS_WARNING (ERROR_BIDI_ERROR_BASE + 1) 1193 #define ERROR_BIDI_SCHEMA_READ_ONLY (ERROR_BIDI_ERROR_BASE + 2) 1194 #define ERROR_BIDI_SERVER_OFFLINE (ERROR_BIDI_ERROR_BASE + 3) 1195 #define ERROR_BIDI_DEVICE_OFFLINE (ERROR_BIDI_ERROR_BASE + 4) 1196 #define ERROR_BIDI_SCHEMA_NOT_SUPPORTED (ERROR_BIDI_ERROR_BASE + 5) 1197 1198 DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter,DWORD Flags); 1199 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,DWORD fdwFlags,DWORD fdwOptions,LPVOID pPrinterNotifyOptions); 1200 WINBOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,PDWORD pdwChange,LPVOID pPrinterNotifyOptions,LPVOID *ppPrinterNotifyInfo); 1201 WINBOOL WINAPI FreePrinterNotifyInfo (PPRINTER_NOTIFY_INFO pPrinterNotifyInfo); 1202 WINBOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange); 1203 1204 #define PRINTER_CHANGE_ADD_PRINTER 0x00000001 1205 #define PRINTER_CHANGE_SET_PRINTER 0x00000002 1206 #define PRINTER_CHANGE_DELETE_PRINTER 0x00000004 1207 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008 1208 #define PRINTER_CHANGE_PRINTER 0x000000FF 1209 #define PRINTER_CHANGE_ADD_JOB 0x00000100 1210 #define PRINTER_CHANGE_SET_JOB 0x00000200 1211 #define PRINTER_CHANGE_DELETE_JOB 0x00000400 1212 #define PRINTER_CHANGE_WRITE_JOB 0x00000800 1213 #define PRINTER_CHANGE_JOB 0x0000FF00 1214 #define PRINTER_CHANGE_ADD_FORM 0x00010000 1215 #define PRINTER_CHANGE_SET_FORM 0x00020000 1216 #define PRINTER_CHANGE_DELETE_FORM 0x00040000 1217 #define PRINTER_CHANGE_FORM 0x00070000 1218 #define PRINTER_CHANGE_ADD_PORT 0x00100000 1219 #define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000 1220 #define PRINTER_CHANGE_DELETE_PORT 0x00400000 1221 #define PRINTER_CHANGE_PORT 0x00700000 1222 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000 1223 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000 1224 #define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000 1225 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000 1226 #define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000 1227 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000 1228 #define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000 1229 #define PRINTER_CHANGE_TIMEOUT 0x80000000 1230 #define PRINTER_CHANGE_ALL 0x7777FFFF 1231 1232 #define PrinterMessageBox __MINGW_NAME_AW(PrinterMessageBox) 1233 #define AddForm __MINGW_NAME_AW(AddForm) 1234 #define DeleteForm __MINGW_NAME_AW(DeleteForm) 1235 #define GetForm __MINGW_NAME_AW(GetForm) 1236 #define SetForm __MINGW_NAME_AW(SetForm) 1237 #define EnumForms __MINGW_NAME_AW(EnumForms) 1238 #define EnumMonitors __MINGW_NAME_AW(EnumMonitors) 1239 #define AddMonitor __MINGW_NAME_AW(AddMonitor) 1240 #define DeleteMonitor __MINGW_NAME_AW(DeleteMonitor) 1241 #define EnumPorts __MINGW_NAME_AW(EnumPorts) 1242 #define AddPort __MINGW_NAME_AW(AddPort) 1243 #define ConfigurePort __MINGW_NAME_AW(ConfigurePort) 1244 #define DeletePort __MINGW_NAME_AW(DeletePort) 1245 #define GetDefaultPrinter __MINGW_NAME_AW(GetDefaultPrinter) 1246 #define SetDefaultPrinter __MINGW_NAME_AW(SetDefaultPrinter) 1247 #define SetPort __MINGW_NAME_AW(SetPort) 1248 #define AddPrinterConnection __MINGW_NAME_AW(AddPrinterConnection) 1249 #define DeletePrinterConnection __MINGW_NAME_AW(DeletePrinterConnection) 1250 1251 DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter,DWORD Error,HWND hWnd,LPSTR pText,LPSTR pCaption,DWORD dwType); 1252 DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter,DWORD Error,HWND hWnd,LPWSTR pText,LPWSTR pCaption,DWORD dwType); 1253 1254 #define PRINTER_ERROR_INFORMATION 0x80000000 1255 #define PRINTER_ERROR_WARNING 0x40000000 1256 #define PRINTER_ERROR_SEVERE 0x20000000 1257 1258 #define PRINTER_ERROR_OUTOFPAPER 0x00000001 1259 #define PRINTER_ERROR_JAM 0x00000002 1260 #define PRINTER_ERROR_OUTOFTONER 0x00000004 1261 1262 WINBOOL WINAPI ClosePrinter(HANDLE hPrinter); 1263 WINBOOL WINAPI AddFormA(HANDLE hPrinter,DWORD Level,LPBYTE pForm); 1264 WINBOOL WINAPI AddFormW(HANDLE hPrinter,DWORD Level,LPBYTE pForm); 1265 WINBOOL WINAPI DeleteFormA(HANDLE hPrinter,LPSTR pFormName); 1266 WINBOOL WINAPI DeleteFormW(HANDLE hPrinter,LPWSTR pFormName); 1267 WINBOOL WINAPI GetFormA(HANDLE hPrinter,LPSTR pFormName,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded); 1268 WINBOOL WINAPI GetFormW(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded); 1269 WINBOOL WINAPI SetFormA(HANDLE hPrinter,LPSTR pFormName,DWORD Level,LPBYTE pForm); 1270 WINBOOL WINAPI SetFormW(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm); 1271 WINBOOL WINAPI EnumFormsA(HANDLE hPrinter,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1272 WINBOOL WINAPI EnumFormsW(HANDLE hPrinter,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1273 WINBOOL WINAPI EnumMonitorsA(LPSTR pName,DWORD Level,LPBYTE pMonitor,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1274 WINBOOL WINAPI EnumMonitorsW(LPWSTR pName,DWORD Level,LPBYTE pMonitor,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1275 WINBOOL WINAPI AddMonitorA(LPSTR pName,DWORD Level,LPBYTE pMonitorInfo); 1276 WINBOOL WINAPI AddMonitorW(LPWSTR pName,DWORD Level,LPBYTE pMonitorInfo); 1277 WINBOOL WINAPI DeleteMonitorA(LPSTR pName,LPSTR pEnvironment,LPSTR pMonitorName); 1278 WINBOOL WINAPI DeleteMonitorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pMonitorName); 1279 WINBOOL WINAPI EnumPortsA(LPSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1280 WINBOOL WINAPI EnumPortsW(LPWSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned); 1281 WINBOOL WINAPI AddPortA(LPSTR pName,HWND hWnd,LPSTR pMonitorName); 1282 WINBOOL WINAPI AddPortW(LPWSTR pName,HWND hWnd,LPWSTR pMonitorName); 1283 WINBOOL WINAPI ConfigurePortA(LPSTR pName,HWND hWnd,LPSTR pPortName); 1284 WINBOOL WINAPI ConfigurePortW(LPWSTR pName,HWND hWnd,LPWSTR pPortName); 1285 WINBOOL WINAPI DeletePortA(LPSTR pName,HWND hWnd,LPSTR pPortName); 1286 WINBOOL WINAPI DeletePortW(LPWSTR pName,HWND hWnd,LPWSTR pPortName); 1287 WINBOOL WINAPI XcvDataW(HANDLE hXcv,PCWSTR pszDataName,PBYTE pInputData,DWORD cbInputData,PBYTE pOutputData,DWORD cbOutputData,PDWORD pcbOutputNeeded,PDWORD pdwStatus); 1288 1289 #define XcvData XcvDataW 1290 1291 WINBOOL WINAPI GetDefaultPrinterA(LPSTR pszBuffer,LPDWORD pcchBuffer); 1292 WINBOOL WINAPI GetDefaultPrinterW(LPWSTR pszBuffer,LPDWORD pcchBuffer); 1293 WINBOOL WINAPI SetDefaultPrinterA(LPCSTR pszPrinter); 1294 WINBOOL WINAPI SetDefaultPrinterW(LPCWSTR pszPrinter); 1295 WINBOOL WINAPI SetPortA(LPSTR pName,LPSTR pPortName,DWORD dwLevel,LPBYTE pPortInfo); 1296 WINBOOL WINAPI SetPortW(LPWSTR pName,LPWSTR pPortName,DWORD dwLevel,LPBYTE pPortInfo); 1297 WINBOOL WINAPI AddPrinterConnectionA(LPSTR pName); 1298 WINBOOL WINAPI AddPrinterConnectionW(LPWSTR pName); 1299 WINBOOL WINAPI DeletePrinterConnectionA(LPSTR pName); 1300 WINBOOL WINAPI DeletePrinterConnectionW(LPWSTR pName); 1301 HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd,DWORD Flags); 1302 1303 typedef struct _PROVIDOR_INFO_1A{ 1304 LPSTR pName; 1305 LPSTR pEnvironment; 1306 LPSTR pDLLName; 1307 } PROVIDOR_INFO_1A,*PPROVIDOR_INFO_1A,*LPPROVIDOR_INFO_1A; 1308 1309 typedef struct _PROVIDOR_INFO_1W{ 1310 LPWSTR pName; 1311 LPWSTR pEnvironment; 1312 LPWSTR pDLLName; 1313 } PROVIDOR_INFO_1W,*PPROVIDOR_INFO_1W,*LPPROVIDOR_INFO_1W; 1314 1315 __MINGW_TYPEDEF_AW(PROVIDOR_INFO_1) 1316 __MINGW_TYPEDEF_AW(PPROVIDOR_INFO_1) 1317 __MINGW_TYPEDEF_AW(LPPROVIDOR_INFO_1) 1318 1319 typedef struct _PROVIDOR_INFO_2A{ 1320 LPSTR pOrder; 1321 } PROVIDOR_INFO_2A,*PPROVIDOR_INFO_2A,*LPPROVIDOR_INFO_2A; 1322 1323 typedef struct _PROVIDOR_INFO_2W{ 1324 LPWSTR pOrder; 1325 } PROVIDOR_INFO_2W,*PPROVIDOR_INFO_2W,*LPPROVIDOR_INFO_2W; 1326 1327 __MINGW_TYPEDEF_AW(PROVIDOR_INFO_2) 1328 __MINGW_TYPEDEF_AW(PPROVIDOR_INFO_2) 1329 __MINGW_TYPEDEF_AW(LPPROVIDOR_INFO_2) 1330 1331 #define AddPrintProvidor __MINGW_NAME_AW(AddPrintProvidor) 1332 #define DeletePrintProvidor __MINGW_NAME_AW(DeletePrintProvidor) 1333 #define IsValidDevmode __MINGW_NAME_AW(IsValidDevmode) 1334 1335 WINBOOL WINAPI AddPrintProvidorA(LPSTR pName,DWORD level,LPBYTE pProvidorInfo); 1336 WINBOOL WINAPI AddPrintProvidorW(LPWSTR pName,DWORD level,LPBYTE pProvidorInfo); 1337 WINBOOL WINAPI DeletePrintProvidorA(LPSTR pName,LPSTR pEnvironment,LPSTR pPrintProvidorName); 1338 WINBOOL WINAPI DeletePrintProvidorW(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPrintProvidorName); 1339 WINBOOL WINAPI IsValidDevmodeA (PDEVMODEA pDevmode,size_t DevmodeSize); 1340 WINBOOL WINAPI IsValidDevmodeW (PDEVMODEW pDevmode,size_t DevmodeSize); 1341 1342 #define SPLREG_DEFAULT_SPOOL_DIRECTORY TEXT("DefaultSpoolDirectory") 1343 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULT TEXT("PortThreadPriorityDefault") 1344 #define SPLREG_PORT_THREAD_PRIORITY TEXT("PortThreadPriority") 1345 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT TEXT("SchedulerThreadPriorityDefault") 1346 #define SPLREG_SCHEDULER_THREAD_PRIORITY TEXT("SchedulerThreadPriority") 1347 #define SPLREG_BEEP_ENABLED TEXT("BeepEnabled") 1348 #define SPLREG_NET_POPUP TEXT("NetPopup") 1349 #define SPLREG_RETRY_POPUP TEXT("RetryPopup") 1350 #define SPLREG_NET_POPUP_TO_COMPUTER TEXT("NetPopupToComputer") 1351 #define SPLREG_EVENT_LOG TEXT("EventLog") 1352 #define SPLREG_MAJOR_VERSION TEXT("MajorVersion") 1353 #define SPLREG_MINOR_VERSION TEXT("MinorVersion") 1354 #define SPLREG_ARCHITECTURE TEXT("Architecture") 1355 #define SPLREG_OS_VERSION TEXT("OSVersion") 1356 #define SPLREG_OS_VERSIONEX TEXT("OSVersionEx") 1357 #define SPLREG_DS_PRESENT TEXT("DsPresent") 1358 #define SPLREG_DS_PRESENT_FOR_USER TEXT("DsPresentForUser") 1359 #define SPLREG_REMOTE_FAX TEXT("RemoteFax") 1360 #define SPLREG_RESTART_JOB_ON_POOL_ERROR TEXT("RestartJobOnPoolError") 1361 #define SPLREG_RESTART_JOB_ON_POOL_ENABLED TEXT("RestartJobOnPoolEnabled") 1362 #define SPLREG_DNS_MACHINE_NAME TEXT("DNSMachineName") 1363 #define SPLREG_ALLOW_USER_MANAGEFORMS TEXT("AllowUserManageForms") 1364 #define SPLREG_WEBSHAREMGMT TEXT("WebShareMgmt") 1365 1366 #define SERVER_ACCESS_ADMINISTER 0x00000001 1367 #define SERVER_ACCESS_ENUMERATE 0x00000002 1368 1369 #define PRINTER_ACCESS_ADMINISTER 0x00000004 1370 #define PRINTER_ACCESS_USE 0x00000008 1371 1372 #define JOB_ACCESS_ADMINISTER 0x00000010 1373 #define JOB_ACCESS_READ 0x00000020 1374 1375 #define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) 1376 #define SERVER_READ (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE) 1377 #define SERVER_WRITE (STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) 1378 #define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE) 1379 #define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE) 1380 #define PRINTER_READ (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE) 1381 #define PRINTER_WRITE (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE) 1382 #define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE) 1383 #define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER | JOB_ACCESS_READ) 1384 #define JOB_READ (STANDARD_RIGHTS_READ | JOB_ACCESS_READ) 1385 #define JOB_WRITE (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER) 1386 #define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER) 1387 1388 #define SPLDS_SPOOLER_KEY TEXT("DsSpooler") 1389 #define SPLDS_DRIVER_KEY TEXT("DsDriver") 1390 #define SPLDS_USER_KEY TEXT("DsUser") 1391 1392 #define SPLDS_ASSET_NUMBER TEXT("assetNumber") 1393 #define SPLDS_BYTES_PER_MINUTE TEXT("bytesPerMinute") 1394 #define SPLDS_DESCRIPTION TEXT("description") 1395 #define SPLDS_DRIVER_NAME TEXT("driverName") 1396 #define SPLDS_DRIVER_VERSION TEXT("driverVersion") 1397 #define SPLDS_LOCATION TEXT("location") 1398 #define SPLDS_PORT_NAME TEXT("portName") 1399 #define SPLDS_PRINT_ATTRIBUTES TEXT("printAttributes") 1400 #define SPLDS_PRINT_BIN_NAMES TEXT("printBinNames") 1401 #define SPLDS_PRINT_COLLATE TEXT("printCollate") 1402 #define SPLDS_PRINT_COLOR TEXT("printColor") 1403 #define SPLDS_PRINT_DUPLEX_SUPPORTED TEXT("printDuplexSupported") 1404 #define SPLDS_PRINT_END_TIME TEXT("printEndTime") 1405 #define SPLDS_PRINTER_CLASS TEXT("printQueue") 1406 #define SPLDS_PRINTER_NAME TEXT("printerName") 1407 #define SPLDS_PRINT_KEEP_PRINTED_JOBS TEXT("printKeepPrintedJobs") 1408 #define SPLDS_PRINT_LANGUAGE TEXT("printLanguage") 1409 #define SPLDS_PRINT_MAC_ADDRESS TEXT("printMACAddress") 1410 #define SPLDS_PRINT_MAX_X_EXTENT TEXT("printMaxXExtent") 1411 #define SPLDS_PRINT_MAX_Y_EXTENT TEXT("printMaxYExtent") 1412 #define SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED TEXT("printMaxResolutionSupported") 1413 #define SPLDS_PRINT_MEDIA_READY TEXT("printMediaReady") 1414 #define SPLDS_PRINT_MEDIA_SUPPORTED TEXT("printMediaSupported") 1415 #define SPLDS_PRINT_MEMORY TEXT("printMemory") 1416 #define SPLDS_PRINT_MIN_X_EXTENT TEXT("printMinXExtent") 1417 #define SPLDS_PRINT_MIN_Y_EXTENT TEXT("printMinYExtent") 1418 #define SPLDS_PRINT_NETWORK_ADDRESS TEXT("printNetworkAddress") 1419 #define SPLDS_PRINT_NOTIFY TEXT("printNotify") 1420 #define SPLDS_PRINT_NUMBER_UP TEXT("printNumberUp") 1421 #define SPLDS_PRINT_ORIENTATIONS_SUPPORTED TEXT("printOrientationsSupported") 1422 #define SPLDS_PRINT_OWNER TEXT("printOwner") 1423 #define SPLDS_PRINT_PAGES_PER_MINUTE TEXT("printPagesPerMinute") 1424 #define SPLDS_PRINT_RATE TEXT("printRate") 1425 #define SPLDS_PRINT_RATE_UNIT TEXT("printRateUnit") 1426 #define SPLDS_PRINT_SEPARATOR_FILE TEXT("printSeparatorFile") 1427 #define SPLDS_PRINT_SHARE_NAME TEXT("printShareName") 1428 #define SPLDS_PRINT_SPOOLING TEXT("printSpooling") 1429 #define SPLDS_PRINT_STAPLING_SUPPORTED TEXT("printStaplingSupported") 1430 #define SPLDS_PRINT_START_TIME TEXT("printStartTime") 1431 #define SPLDS_PRINT_STATUS TEXT("printStatus") 1432 #define SPLDS_PRIORITY TEXT("priority") 1433 #define SPLDS_SERVER_NAME TEXT("serverName") 1434 #define SPLDS_SHORT_SERVER_NAME TEXT("shortServerName") 1435 #define SPLDS_UNC_NAME TEXT("uNCName") 1436 #define SPLDS_URL TEXT("url") 1437 #define SPLDS_FLAGS TEXT("flags") 1438 #define SPLDS_VERSION_NUMBER TEXT("versionNumber") 1439 1440 #define SPLDS_PRINTER_NAME_ALIASES TEXT("printerNameAliases") 1441 #define SPLDS_PRINTER_LOCATIONS TEXT("printerLocations") 1442 #define SPLDS_PRINTER_MODEL TEXT("printerModel") 1443 1444 #if (_WIN32_WINNT >= 0x0600) 1445 #define AddPrinterConnection2 __MINGW_NAME_AW(AddPrinterConnection2) 1446 #define DeletePrinterDriverPackage __MINGW_NAME_AW(DeletePrinterDriverPackage) 1447 #define DocumentEvent __MINGW_NAME_AW(DocumentEvent) 1448 1449 #define PRINTER_CONNECTION_MISMATCH 0x00000020 1450 #define PRINTER_CONNECTION_NO_UI 0x00000040 1451 1452 typedef enum tagPRINTER_OPTION_FLAGS { 1453 PRINTER_OPTION_NO_CACHE, 1454 PRINTER_OPTION_CACHE, 1455 PRINTER_OPTION_CLIENT_CHANGE 1456 } PRINTER_OPTION_FLAGS; 1457 1458 typedef enum tagEPrintXPSJobOperation { 1459 kJobProduction, 1460 kJobConsumption 1461 } EPrintXPSJobOperation; 1462 1463 typedef enum tagEPrintXPSJobProgress { 1464 kAddingDocumentSequence, 1465 kDocumentSequenceAdded, 1466 kAddingFixedDocument, 1467 kFixedDocumentAdded, 1468 kAddingFixedPage, 1469 kFixedPageAdded, 1470 kResourceAdded, 1471 kFontAdded, 1472 kImageAdded, 1473 kXpsDocumentCommitted 1474 } EPrintXPSJobProgress; 1475 1476 typedef struct _PRINTER_CONNECTION_INFO_1 { 1477 DWORD dwFlags; 1478 LPTSTR pszDriverName; 1479 } PRINTER_CONNECTION_INFO_1, *PPRINTER_CONNECTION_INFO_1; 1480 1481 WINBOOL AddPrinterConnection2W(HWND hWnd,LPCWSTR pszName,DWORD dwLevel,PVOID pConnectionInfo); 1482 WINBOOL AddPrinterConnection2A(HWND hWnd,LPCSTR pszName,DWORD dwLevel,PVOID pConnectionInfo); /*Not supported and returns ERROR_NOT_SUPPORTED.*/ 1483 1484 HRESULT WINAPI DeletePrinterDriverPackageA( 1485 LPCSTR pszServer, 1486 LPCSTR pszInfPath, 1487 LPCSTR pszEnvironment 1488 ); 1489 1490 HRESULT WINAPI DeletePrinterDriverPackageW( 1491 LPCWSTR pszServer, 1492 LPCWSTR pszInfPath, 1493 LPCWSTR pszEnvironment 1494 ); 1495 1496 HRESULT DocumentEventA( 1497 HANDLE hPrinter, 1498 HDC hdc, 1499 INT iEsc, 1500 ULONG cbIn, 1501 PVOID pvIn, 1502 ULONG cbOut, 1503 PVOID pvOut 1504 ); 1505 1506 HRESULT DocumentEventW( 1507 HANDLE hPrinter, 1508 HDC hdc, 1509 INT iEsc, 1510 ULONG cbIn, 1511 PVOID pvIn, 1512 ULONG cbOut, 1513 PVOID pvOut 1514 ); 1515 1516 typedef struct _PRINTPROCESSOR_CAPS_2 { 1517 DWORD dwLevel; 1518 DWORD dwNupOptions; 1519 DWORD dwPageOrderFlags; 1520 DWORD dwNumberOfCopies; 1521 DWORD dwNupDirectionCaps; 1522 DWORD dwNupBorderCaps; 1523 DWORD dwBookletHandlingCaps; 1524 DWORD dwDuplexHandlingCaps; 1525 DWORD dwScalingCaps; 1526 } PRINTPROCESSOR_CAPS_2, *PPRINTPROCESSOR_CAPS_2; 1527 1528 HRESULT ReportJobProcessingProgress( 1529 HANDLE printerHandle, 1530 ULONG jobId, 1531 EPrintXPSJobOperation jobOperation, 1532 EPrintXPSJobProgress jobProgress 1533 ); 1534 1535 typedef struct _CORE_PRINTER_DRIVERA { 1536 GUID CoreDriverGUID; 1537 FILETIME ftDriverDate; 1538 DWORDLONG dwlDriverVersion; 1539 CHAR szPackageID[MAX_PATH]; 1540 } CORE_PRINTER_DRIVERA, *PCORE_PRINTER_DRIVERA; 1541 1542 typedef struct _CORE_PRINTER_DRIVERW { 1543 GUID CoreDriverGUID; 1544 FILETIME ftDriverDate; 1545 DWORDLONG dwlDriverVersion; 1546 WCHAR szPackageID[MAX_PATH]; 1547 } CORE_PRINTER_DRIVERW, *PCORE_PRINTER_DRIVERW; 1548 1549 typedef struct _PRINTER_OPTIONS { 1550 UINT cbSize; 1551 DWORD dwFlags; 1552 } PRINTER_OPTIONS, *PPRINTER_OPTIONS; 1553 1554 __MINGW_TYPEDEF_AW(CORE_PRINTER_DRIVER) 1555 __MINGW_TYPEDEF_AW(PCORE_PRINTER_DRIVER) 1556 #define GetCorePrinterDrivers __MINGW_NAME_AW(GetCorePrinterDrivers) 1557 #define GetPrinterDriver2 __MINGW_NAME_AW(GetPrinterDriver2) 1558 #define GetPrinterDriverPackagePath __MINGW_NAME_AW(GetPrinterDriverPackagePath) 1559 #define GetSpoolFileHandle __MINGW_NAME_AW(GetSpoolFileHandle) 1560 1561 HRESULT WINAPI GetCorePrinterDriversA( 1562 LPCSTR pszServer, 1563 LPCSTR pszEnvironment, 1564 LPCSTR pszzCoreDriverDependencies, 1565 DWORD cCorePrinterDrivers, 1566 PCORE_PRINTER_DRIVERA pCorePrinterDrivers 1567 ); 1568 1569 HRESULT WINAPI GetCorePrinterDriversW( 1570 LPCWSTR pszServer, 1571 LPCWSTR pszEnvironment, 1572 LPCWSTR pszzCoreDriverDependencies, 1573 DWORD cCorePrinterDrivers, 1574 PCORE_PRINTER_DRIVERW pCorePrinterDrivers 1575 ); 1576 1577 /*Unsupported*/ 1578 WINBOOL WINAPI GetPrinterDriver2A( 1579 HWND hWnd, 1580 HANDLE hPrinter, 1581 LPSTR pEnvironment, 1582 DWORD Level, 1583 LPBYTE pDriverInfo, 1584 DWORD cbBuf, 1585 LPDWORD pcbNeeded 1586 ); 1587 1588 WINBOOL WINAPI GetPrinterDriver2W( 1589 HWND hWnd, 1590 HANDLE hPrinter, 1591 LPWSTR pEnvironment, 1592 DWORD Level, 1593 LPBYTE pDriverInfo, 1594 DWORD cbBuf, 1595 LPDWORD pcbNeeded 1596 ); 1597 1598 HRESULT WINAPI GetPrinterDriverPackagePathA( 1599 LPCSTR pszServer, 1600 LPCSTR pszEnvironment, 1601 LPCSTR pszLanguage, 1602 LPCSTR pszPackageID, 1603 LPSTR pszDriverPackageCab, 1604 DWORD cchDriverPackageCab, 1605 LPDWORD pcchRequiredSize 1606 ); 1607 1608 HRESULT WINAPI GetPrinterDriverPackagePathW( 1609 LPCWSTR pszServer, 1610 LPCWSTR pszEnvironment, 1611 LPCWSTR pszLanguage, 1612 LPCWSTR pszPackageID, 1613 LPWSTR pszDriverPackageCab, 1614 DWORD cchDriverPackageCab, 1615 LPDWORD pcchRequiredSize 1616 ); 1617 1618 HANDLE WINAPI GetSpoolFileHandleA( 1619 HANDLE hPrinter 1620 ); 1621 1622 HANDLE WINAPI GetSpoolFileHandleW( 1623 HANDLE hPrinter 1624 ); 1625 1626 HANDLE WINAPI CommitSpoolData( 1627 HANDLE hPrinter, 1628 HANDLE hSpoolFile, 1629 DWORD cbCommit 1630 ); 1631 1632 WINBOOL WINAPI CloseSpoolFileHandle( 1633 HANDLE hPrinter, 1634 HANDLE hSpoolFile 1635 ); 1636 1637 WINBOOL WINAPI OpenPrinter2A( 1638 LPCSTR pPrinterName, 1639 LPHANDLE phPrinter, 1640 LPPRINTER_DEFAULTS pDefault, 1641 PPRINTER_OPTIONS pOptions 1642 ); 1643 1644 WINBOOL WINAPI OpenPrinter2W( 1645 LPCWSTR pPrinterName, 1646 LPHANDLE phPrinter, 1647 LPPRINTER_DEFAULTS pDefault, 1648 PPRINTER_OPTIONS pOptions 1649 ); 1650 1651 #define OpenPrinter2 __MINGW_NAME_AW(OpenPrinter2) 1652 1653 HRESULT WINAPI UploadPrinterDriverPackageA( 1654 LPCSTR pszServer, 1655 LPCSTR pszInfPath, 1656 LPCSTR pszEnvironment, 1657 DWORD dwFlags, 1658 HWND hwnd, 1659 LPSTR pszDestInfPath, 1660 PULONG pcchDestInfPath 1661 ); 1662 1663 HRESULT WINAPI UploadPrinterDriverPackageW( 1664 LPCWSTR pszServer, 1665 LPCWSTR pszInfPath, 1666 LPCWSTR pszEnvironment, 1667 DWORD dwFlags, 1668 HWND hwnd, 1669 LPWSTR pszDestInfPath, 1670 PULONG pcchDestInfPath 1671 ); 1672 1673 #define UploadPrinterDriverPackage __MINGW_NAME_AW(UploadPrinterDriverPackage) 1674 1675 #endif /*(_WIN32_WINNT >= 0x0600)*/ 1676 1677 #ifdef __cplusplus 1678 } 1679 #endif 1680 #endif 1681