Differences From Artifact [cc2fc3e0b2848583]:
- File        
src/win32/winspool.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [fa72ba923e60f447]:
- File        
src/win32/winspool.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
                                                                                        >     1  /***********************************************************************\
                                                                                        >     2  *                              winspool.d                               *
                                                                                        >     3  *                                                                       *
                                                                                        >     4  *                       Windows API header module                       *
                                                                                        >     5  *                                                                       *
                                                                                        >     6  *                 Translated from MinGW Windows headers                 *
                                                                                        >     7  *                                                                       *
                                                                                        >     8  *                       Placed into public domain                       *
                                                                                        >     9  \***********************************************************************/
    1  module win32.winspool;                                                                10  module win32.winspool;
                                                                                        >    11  pragma(lib, "winspool.lib");
    2                                                                                   |    12  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    <
    4  // by Y.Tomino                                                                   |    13  private import win32.w32api, win32.windef, win32.wingdi;
                                                                                        >    14  private import win32.winbase; // for SYSTEMTIME
    5                                                                                   |    15  
    6  import win32.windef;                                                             <
    7  import win32.winbase;                                                            |    16  // FIXME: clean up Windows version support
    8  import win32.wingdi;                                                             <
    9                                                                                   |    17  
                                                                                        >    18  const DI_CHANNEL=1;
   10  // #ifndef _WINSPOOL_                                                            |    19  const DI_CHANNEL_WRITE=2;
   11  // #define _WINSPOOL_                                                            |    20  const DI_READ_SPOOL_JOB=3;
   12                                                                                   |    21  
   13  // #ifdef _WINUSER_                                                              |    22  const FORM_BUILTIN=1;
   14  // #...                                                                          <
   15  // #endif                                                                        <
   16                                                                                   |    23  
                                                                                        >    24  const JOB_CONTROL_PAUSE=1;
                                                                                        >    25  const JOB_CONTROL_RESUME=2;
   17  // #ifdef __cplusplus                                                            |    26  const JOB_CONTROL_CANCEL=3;
   18  // extern "C" {                                                                  |    27  const JOB_CONTROL_RESTART=4;
   19  // #endif                                                                        |    28  const JOB_CONTROL_DELETE=5;
                                                                                        >    29  const JOB_STATUS_PAUSED=1;
                                                                                        >    30  const JOB_STATUS_ERROR=2;
                                                                                        >    31  const JOB_STATUS_DELETING=4;
                                                                                        >    32  const JOB_STATUS_SPOOLING=8;
                                                                                        >    33  const JOB_STATUS_PRINTING=16;
                                                                                        >    34  const JOB_STATUS_OFFLINE=32;
                                                                                        >    35  const JOB_STATUS_PAPEROUT=0x40;
                                                                                        >    36  const JOB_STATUS_PRINTED=0x80;
                                                                                        >    37  const JOB_STATUS_DELETED=0x100;
                                                                                        >    38  const JOB_STATUS_BLOCKED_DEVQ=0x200;
                                                                                        >    39  const JOB_STATUS_USER_INTERVENTION=0x400;
   20                                                                                   |    40  
                                                                                        >    41  const JOB_POSITION_UNSPECIFIED=0;
                                                                                        >    42  
                                                                                        >    43  const JOB_NOTIFY_TYPE=1;
                                                                                        >    44  
                                                                                        >    45  const JOB_NOTIFY_FIELD_PRINTER_NAME=0;
                                                                                        >    46  const JOB_NOTIFY_FIELD_MACHINE_NAME=1;
                                                                                        >    47  const JOB_NOTIFY_FIELD_PORT_NAME=2;
                                                                                        >    48  const JOB_NOTIFY_FIELD_USER_NAME=3;
                                                                                        >    49  const JOB_NOTIFY_FIELD_NOTIFY_NAME=4;
                                                                                        >    50  const JOB_NOTIFY_FIELD_DATATYPE=5;
                                                                                        >    51  const JOB_NOTIFY_FIELD_PRINT_PROCESSOR=6;
                                                                                        >    52  const JOB_NOTIFY_FIELD_PARAMETERS=7;
                                                                                        >    53  const JOB_NOTIFY_FIELD_DRIVER_NAME=8;
                                                                                        >    54  const JOB_NOTIFY_FIELD_DEVMODE=9;
                                                                                        >    55  const JOB_NOTIFY_FIELD_STATUS=10;
                                                                                        >    56  const JOB_NOTIFY_FIELD_STATUS_STRING=11;
                                                                                        >    57  const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=12;
                                                                                        >    58  const JOB_NOTIFY_FIELD_DOCUMENT=13;
                                                                                        >    59  const JOB_NOTIFY_FIELD_PRIORITY=14;
                                                                                        >    60  const JOB_NOTIFY_FIELD_POSITION=15;
                                                                                        >    61  const JOB_NOTIFY_FIELD_SUBMITTED=16;
                                                                                        >    62  const JOB_NOTIFY_FIELD_START_TIME=17;
                                                                                        >    63  const JOB_NOTIFY_FIELD_UNTIL_TIME=18;
                                                                                        >    64  const JOB_NOTIFY_FIELD_TIME=19;
                                                                                        >    65  const JOB_NOTIFY_FIELD_TOTAL_PAGES=20;
                                                                                        >    66  const JOB_NOTIFY_FIELD_PAGES_PRINTED=21;
                                                                                        >    67  const JOB_NOTIFY_FIELD_TOTAL_BYTES=22;
                                                                                        >    68  const JOB_NOTIFY_FIELD_BYTES_PRINTED=23;
                                                                                        >    69  
                                                                                        >    70  const JOB_ACCESS_ADMINISTER = 16;
                                                                                        >    71  const JOB_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER;
                                                                                        >    72  const JOB_READ       = STANDARD_RIGHTS_READ     | JOB_ACCESS_ADMINISTER;
                                                                                        >    73  const JOB_WRITE      = STANDARD_RIGHTS_WRITE    | JOB_ACCESS_ADMINISTER;
                                                                                        >    74  const JOB_EXECUTE    = STANDARD_RIGHTS_EXECUTE  | JOB_ACCESS_ADMINISTER;
                                                                                        >    75  
                                                                                        >    76  const PRINTER_NOTIFY_OPTIONS_REFRESH=1;
                                                                                        >    77  const PRINTER_ACCESS_ADMINISTER=4;
                                                                                        >    78  const PRINTER_ACCESS_USE=8;
                                                                                        >    79  
                                                                                        >    80  const PRINTER_ERROR_INFORMATION=0x80000000;
                                                                                        >    81  const PRINTER_ERROR_WARNING=0x40000000;
                                                                                        >    82  const PRINTER_ERROR_SEVERE=0x20000000;
                                                                                        >    83  const PRINTER_ERROR_OUTOFPAPER=1;
                                                                                        >    84  const PRINTER_ERROR_JAM=2;
                                                                                        >    85  const PRINTER_ERROR_OUTOFTONER=4;
                                                                                        >    86  
                                                                                        >    87  const PRINTER_CONTROL_PAUSE=1;
                                                                                        >    88  const PRINTER_CONTROL_RESUME=2;
                                                                                        >    89  const PRINTER_CONTROL_PURGE=3;
                                                                                        >    90  const PRINTER_CONTROL_SET_STATUS=4;
                                                                                        >    91  
                                                                                        >    92  const PRINTER_STATUS_PAUSED = 1;
                                                                                        >    93  const PRINTER_STATUS_ERROR = 2;
                                                                                        >    94  const PRINTER_STATUS_PENDING_DELETION = 4;
                                                                                        >    95  const PRINTER_STATUS_PAPER_JAM = 8;
                                                                                        >    96  const PRINTER_STATUS_PAPER_OUT = 0x10;
                                                                                        >    97  const PRINTER_STATUS_MANUAL_FEED = 0x20;
                                                                                        >    98  const PRINTER_STATUS_PAPER_PROBLEM = 0x40;
                                                                                        >    99  const PRINTER_STATUS_OFFLINE = 0x80;
                                                                                        >   100  const PRINTER_STATUS_IO_ACTIVE = 0x100;
                                                                                        >   101  const PRINTER_STATUS_BUSY = 0x200;
                                                                                        >   102  const PRINTER_STATUS_PRINTING = 0x400;
                                                                                        >   103  const PRINTER_STATUS_OUTPUT_BIN_FULL = 0x800;
                                                                                        >   104  const PRINTER_STATUS_NOT_AVAILABLE = 0x1000;
                                                                                        >   105  const PRINTER_STATUS_WAITING = 0x2000;
                                                                                        >   106  const PRINTER_STATUS_PROCESSING = 0x4000;
                                                                                        >   107  const PRINTER_STATUS_INITIALIZING = 0x8000;
                                                                                        >   108  const PRINTER_STATUS_WARMING_UP = 0x10000;
                                                                                        >   109  const PRINTER_STATUS_TONER_LOW = 0x20000;
                                                                                        >   110  const PRINTER_STATUS_NO_TONER = 0x40000;
                                                                                        >   111  const PRINTER_STATUS_PAGE_PUNT = 0x80000;
                                                                                        >   112  const PRINTER_STATUS_USER_INTERVENTION = 0x100000;
                                                                                        >   113  const PRINTER_STATUS_OUT_OF_MEMORY = 0x200000;
                                                                                        >   114  const PRINTER_STATUS_DOOR_OPEN = 0x400000;
                                                                                        >   115  const PRINTER_STATUS_SERVER_UNKNOWN = 0x800000;
                                                                                        >   116  const PRINTER_STATUS_POWER_SAVE = 0x1000000;
                                                                                        >   117  
                                                                                        >   118  const PRINTER_ATTRIBUTE_QUEUED=1;
                                                                                        >   119  const PRINTER_ATTRIBUTE_DIRECT=2;
                                                                                        >   120  const PRINTER_ATTRIBUTE_DEFAULT=4;
                                                                                        >   121  const PRINTER_ATTRIBUTE_SHARED=8;
                                                                                        >   122  const PRINTER_ATTRIBUTE_NETWORK=0x10;
                                                                                        >   123  const PRINTER_ATTRIBUTE_HIDDEN=0x20;
                                                                                        >   124  const PRINTER_ATTRIBUTE_LOCAL=0x40;
                                                                                        >   125  const PRINTER_ATTRIBUTE_ENABLE_DEVQ=0x80;
                                                                                        >   126  const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS=0x100;
                                                                                        >   127  const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST=0x200;
                                                                                        >   128  const PRINTER_ATTRIBUTE_WORK_OFFLINE=0x400;
                                                                                        >   129  const PRINTER_ATTRIBUTE_ENABLE_BIDI=0x800;
                                                                                        >   130  const PRINTER_ATTRIBUTE_RAW_ONLY=0x1000;
                                                                                        >   131  const PRINTER_ATTRIBUTE_PUBLISHED=0x2000;
                                                                                        >   132  
                                                                                        >   133  const PRINTER_ENUM_DEFAULT=1;
                                                                                        >   134  const PRINTER_ENUM_LOCAL=2;
                                                                                        >   135  const PRINTER_ENUM_CONNECTIONS=4;
                                                                                        >   136  const PRINTER_ENUM_FAVORITE=4;
                                                                                        >   137  const PRINTER_ENUM_NAME=8;
                                                                                        >   138  const PRINTER_ENUM_REMOTE=16;
                                                                                        >   139  const PRINTER_ENUM_SHARED=32;
                                                                                        >   140  const PRINTER_ENUM_NETWORK=0x40;
                                                                                        >   141  const PRINTER_ENUM_EXPAND=0x4000;
                                                                                        >   142  const PRINTER_ENUM_CONTAINER=0x8000;
                                                                                        >   143  const PRINTER_ENUM_ICONMASK=0xff0000;
                                                                                        >   144  const PRINTER_ENUM_ICON1=0x10000;
                                                                                        >   145  const PRINTER_ENUM_ICON2=0x20000;
                                                                                        >   146  const PRINTER_ENUM_ICON3=0x40000;
                                                                                        >   147  const PRINTER_ENUM_ICON4=0x80000;
                                                                                        >   148  const PRINTER_ENUM_ICON5=0x100000;
                                                                                        >   149  const PRINTER_ENUM_ICON6=0x200000;
                                                                                        >   150  const PRINTER_ENUM_ICON7=0x400000;
                                                                                        >   151  const PRINTER_ENUM_ICON8=0x800000;
                                                                                        >   152  
                                                                                        >   153  const PRINTER_NOTIFY_TYPE=0;
                                                                                        >   154  
                                                                                        >   155  const PRINTER_NOTIFY_FIELD_SERVER_NAME=0;
                                                                                        >   156  const PRINTER_NOTIFY_FIELD_PRINTER_NAME=1;
                                                                                        >   157  const PRINTER_NOTIFY_FIELD_SHARE_NAME=2;
                                                                                        >   158  const PRINTER_NOTIFY_FIELD_PORT_NAME=3;
                                                                                        >   159  const PRINTER_NOTIFY_FIELD_DRIVER_NAME=4;
                                                                                        >   160  const PRINTER_NOTIFY_FIELD_COMMENT=5;
                                                                                        >   161  const PRINTER_NOTIFY_FIELD_LOCATION=6;
                                                                                        >   162  const PRINTER_NOTIFY_FIELD_DEVMODE=7;
                                                                                        >   163  const PRINTER_NOTIFY_FIELD_SEPFILE=8;
                                                                                        >   164  const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=9;
                                                                                        >   165  const PRINTER_NOTIFY_FIELD_PARAMETERS=10;
                                                                                        >   166  const PRINTER_NOTIFY_FIELD_DATATYPE=11;
                                                                                        >   167  const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=12;
                                                                                        >   168  const PRINTER_NOTIFY_FIELD_ATTRIBUTES=13;
                                                                                        >   169  const PRINTER_NOTIFY_FIELD_PRIORITY=14;
                                                                                        >   170  const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=15;
                                                                                        >   171  const PRINTER_NOTIFY_FIELD_START_TIME=16;
                                                                                        >   172  const PRINTER_NOTIFY_FIELD_UNTIL_TIME=17;
                                                                                        >   173  const PRINTER_NOTIFY_FIELD_STATUS=18;
                                                                                        >   174  const PRINTER_NOTIFY_FIELD_STATUS_STRING=19;
                                                                                        >   175  const PRINTER_NOTIFY_FIELD_CJOBS=20;
                                                                                        >   176  const PRINTER_NOTIFY_FIELD_AVERAGE_PPM=21;
                                                                                        >   177  const PRINTER_NOTIFY_FIELD_TOTAL_PAGES=22;
                                                                                        >   178  const PRINTER_NOTIFY_FIELD_PAGES_PRINTED=23;
                                                                                        >   179  const PRINTER_NOTIFY_FIELD_TOTAL_BYTES=24;
                                                                                        >   180  const PRINTER_NOTIFY_FIELD_BYTES_PRINTED=25;
                                                                                        >   181  
                                                                                        >   182  const PRINTER_CHANGE_ADD_PRINTER=1;
                                                                                        >   183  const PRINTER_CHANGE_SET_PRINTER=2;
                                                                                        >   184  const PRINTER_CHANGE_DELETE_PRINTER=4;
                                                                                        >   185  const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER=8;
                                                                                        >   186  const PRINTER_CHANGE_PRINTER=0xFF;
                                                                                        >   187  const PRINTER_CHANGE_ADD_JOB=0x100;
                                                                                        >   188  const PRINTER_CHANGE_SET_JOB=0x200;
                                                                                        >   189  const PRINTER_CHANGE_DELETE_JOB=0x400;
                                                                                        >   190  const PRINTER_CHANGE_WRITE_JOB=0x800;
                                                                                        >   191  const PRINTER_CHANGE_JOB=0xFF00;
                                                                                        >   192  const PRINTER_CHANGE_ADD_FORM=0x10000;
                                                                                        >   193  const PRINTER_CHANGE_SET_FORM=0x20000;
                                                                                        >   194  const PRINTER_CHANGE_DELETE_FORM=0x40000;
                                                                                        >   195  const PRINTER_CHANGE_FORM=0x70000;
                                                                                        >   196  const PRINTER_CHANGE_ADD_PORT=0x100000;
                                                                                        >   197  const PRINTER_CHANGE_CONFIGURE_PORT=0x200000;
                                                                                        >   198  const PRINTER_CHANGE_DELETE_PORT=0x400000;
                                                                                        >   199  const PRINTER_CHANGE_PORT=0x700000;
                                                                                        >   200  const PRINTER_CHANGE_ADD_PRINT_PROCESSOR=0x1000000;
                                                                                        >   201  const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR=0x4000000;
                                                                                        >   202  const PRINTER_CHANGE_PRINT_PROCESSOR=0x7000000;
                                                                                        >   203  const PRINTER_CHANGE_ADD_PRINTER_DRIVER=0x10000000;
                                                                                        >   204  const PRINTER_CHANGE_SET_PRINTER_DRIVER=0x20000000;
                                                                                        >   205  const PRINTER_CHANGE_DELETE_PRINTER_DRIVER=0x40000000;
                                                                                        >   206  const PRINTER_CHANGE_PRINTER_DRIVER=0x70000000;
                                                                                        >   207  const PRINTER_CHANGE_TIMEOUT=0x80000000;
                                                                                        >   208  const PRINTER_CHANGE_ALL=0x7777FFFF;
                                                                                        >   209  
                                                                                        >   210  const PRINTER_NOTIFY_INFO_DISCARDED=1;
                                                                                        >   211  const PRINTER_ALL_ACCESS=(STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRI
                                                                                        >   212  const PRINTER_READ=(STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE);
                                                                                        >   213  const PRINTER_WRITE=(STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE);
                                                                                        >   214  const PRINTER_EXECUTE=(STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE);
                                                                                        >   215  const NO_PRIORITY=0;
                                                                                        >   216  const MAX_PRIORITY=99;
                                                                                        >   217  const MIN_PRIORITY=1;
                                                                                        >   218  const DEF_PRIORITY=1;
                                                                                        >   219  const PORT_TYPE_WRITE=1;
                                                                                        >   220  const PORT_TYPE_READ=2;
                                                                                        >   221  const PORT_TYPE_REDIRECTED=4;
                                                                                        >   222  const PORT_TYPE_NET_ATTACHED=8;
                                                                                        >   223  const SERVER_ACCESS_ADMINISTER=1;
                                                                                        >   224  const SERVER_ACCESS_ENUMERATE=2;
                                                                                        >   225  
                                                                                        >   226  const SERVER_ALL_ACCESS=(STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVE
                                                                                        >   227  const SERVER_READ=(STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE);
                                                                                        >   228  const SERVER_WRITE=(STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS
                                                                                        >   229  const SERVER_EXECUTE=(STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE);
                                                                                        >   230  
                                                                                        >   231  const PORT_STATUS_TYPE_ERROR=1;
                                                                                        >   232  const PORT_STATUS_TYPE_WARNING=2;
                                                                                        >   233  const PORT_STATUS_TYPE_INFO=3;
                                                                                        >   234  
                                                                                        >   235  const PORT_STATUS_OFFLINE=1;
                                                                                        >   236  const PORT_STATUS_PAPER_JAM=2;
                                                                                        >   237  const PORT_STATUS_PAPER_OUT=3;
                                                                                        >   238  const PORT_STATUS_OUTPUT_BIN_FULL=4;
                                                                                        >   239  const PORT_STATUS_PAPER_PROBLEM=5;
                                                                                        >   240  const PORT_STATUS_NO_TONER=6;
                                                                                        >   241  const PORT_STATUS_DOOR_OPEN=7;
                                                                                        >   242  const PORT_STATUS_USER_INTERVENTION=8;
                                                                                        >   243  const PORT_STATUS_OUT_OF_MEMORY=9;
                                                                                        >   244  const PORT_STATUS_TONER_LOW=10;
                                                                                        >   245  const PORT_STATUS_WARMING_UP=11;
                                                                                        >   246  const PORT_STATUS_POWER_SAVE=12;
                                                                                        >   247  
                                                                                        >   248  struct ADDJOB_INFO_1A {
                                                                                        >   249          LPSTR Path;
                                                                                        >   250          DWORD JobId;
                                                                                        >   251  }
                                                                                        >   252  alias ADDJOB_INFO_1A* PADDJOB_INFO_1A, LPADDJOB_INFO_1A;
                                                                                        >   253  
                                                                                        >   254  struct ADDJOB_INFO_1W {
                                                                                        >   255          LPWSTR Path;
                                                                                        >   256          DWORD JobId;
                                                                                        >   257  }
                                                                                        >   258  alias ADDJOB_INFO_1W* PADDJOB_INFO_1W, LPADDJOB_INFO_1W;
                                                                                        >   259  
                                                                                        >   260  struct DATATYPES_INFO_1A {
                                                                                        >   261          LPSTR pName;
                                                                                        >   262  }
                                                                                        >   263  alias DATATYPES_INFO_1A* PDATATYPES_INFO_1A, LPDATATYPES_INFO_1A;
                                                                                        >   264  
                                                                                        >   265  struct DATATYPES_INFO_1W {
                                                                                        >   266          LPWSTR pName;
                                                                                        >   267  }
                                                                                        >   268  alias DATATYPES_INFO_1W* PDATATYPES_INFO_1W, LPDATATYPES_INFO_1W;
                                                                                        >   269  
                                                                                        >   270  struct JOB_INFO_1A {
                                                                                        >   271          DWORD JobId;
                                                                                        >   272          LPSTR pPrinterName;
                                                                                        >   273          LPSTR pMachineName;
                                                                                        >   274          LPSTR pUserName;
                                                                                        >   275          LPSTR pDocument;
                                                                                        >   276          LPSTR pDatatype;
                                                                                        >   277          LPSTR pStatus;
                                                                                        >   278          DWORD Status;
                                                                                        >   279          DWORD Priority;
                                                                                        >   280          DWORD Position;
                                                                                        >   281          DWORD TotalPages;
                                                                                        >   282          DWORD PagesPrinted;
                                                                                        >   283          SYSTEMTIME Submitted;
                                                                                        >   284  }
                                                                                        >   285  alias JOB_INFO_1A* PJOB_INFO_1A, LPJOB_INFO_1A;
                                                                                        >   286  
                                                                                        >   287  struct JOB_INFO_1W {
                                                                                        >   288          DWORD JobId;
                                                                                        >   289          LPWSTR pPrinterName;
                                                                                        >   290          LPWSTR pMachineName;
                                                                                        >   291          LPWSTR pUserName;
                                                                                        >   292          LPWSTR pDocument;
                                                                                        >   293          LPWSTR pDatatype;
                                                                                        >   294          LPWSTR pStatus;
                                                                                        >   295          DWORD Status;
                                                                                        >   296          DWORD Priority;
                                                                                        >   297          DWORD Position;
                                                                                        >   298          DWORD TotalPages;
                                                                                        >   299          DWORD PagesPrinted;
                                                                                        >   300          SYSTEMTIME Submitted;
                                                                                        >   301  }
                                                                                        >   302  alias JOB_INFO_1W* PJOB_INFO_1W, LPJOB_INFO_1W;
                                                                                        >   303  
                                                                                        >   304  struct JOB_INFO_2A {
                                                                                        >   305          DWORD JobId;
                                                                                        >   306          LPSTR pPrinterName;
                                                                                        >   307          LPSTR pMachineName;
                                                                                        >   308          LPSTR pUserName;
                                                                                        >   309          LPSTR pDocument;
                                                                                        >   310          LPSTR pNotifyName;
                                                                                        >   311          LPSTR pDatatype;
                                                                                        >   312          LPSTR pPrintProcessor;
                                                                                        >   313          LPSTR pParameters;
                                                                                        >   314          LPSTR pDriverName;
                                                                                        >   315          LPDEVMODEA pDevMode;
                                                                                        >   316          LPSTR pStatus;
                                                                                        >   317          PSECURITY_DESCRIPTOR pSecurityDescriptor;
                                                                                        >   318          DWORD Status;
                                                                                        >   319          DWORD Priority;
                                                                                        >   320          DWORD Position;
                                                                                        >   321          DWORD StartTime;
                                                                                        >   322          DWORD UntilTime;
                                                                                        >   323          DWORD TotalPages;
                                                                                        >   324          DWORD Size;
                                                                                        >   325          SYSTEMTIME Submitted;
                                                                                        >   326          DWORD Time;
                                                                                        >   327          DWORD PagesPrinted;
                                                                                        >   328  }
                                                                                        >   329  alias JOB_INFO_2A* PJOB_INFO_2A, LPJOB_INFO_2A;
                                                                                        >   330  
                                                                                        >   331  struct JOB_INFO_2W {
                                                                                        >   332          DWORD JobId;
                                                                                        >   333          LPWSTR pPrinterName;
                                                                                        >   334          LPWSTR pMachineName;
                                                                                        >   335          LPWSTR pUserName;
                                                                                        >   336          LPWSTR pDocument;
                                                                                        >   337          LPWSTR pNotifyName;
                                                                                        >   338          LPWSTR pDatatype;
                                                                                        >   339          LPWSTR pPrintProcessor;
                                                                                        >   340          LPWSTR pParameters;
                                                                                        >   341          LPWSTR pDriverName;
                                                                                        >   342          LPDEVMODEW pDevMode;
                                                                                        >   343          LPWSTR pStatus;
                                                                                        >   344          PSECURITY_DESCRIPTOR pSecurityDescriptor;
                                                                                        >   345          DWORD Status;
                                                                                        >   346          DWORD Priority;
                                                                                        >   347          DWORD Position;
                                                                                        >   348          DWORD StartTime;
                                                                                        >   349          DWORD UntilTime;
                                                                                        >   350          DWORD TotalPages;
                                                                                        >   351          DWORD Size;
                                                                                        >   352          SYSTEMTIME Submitted;
                                                                                        >   353          DWORD Time;
                                                                                        >   354          DWORD PagesPrinted;
                                                                                        >   355  }
                                                                                        >   356  alias JOB_INFO_2W* PJOB_INFO_2W, LPJOB_INFO_2W;
                                                                                        >   357  
                                                                                        >   358  struct DOC_INFO_1A {
                                                                                        >   359          LPSTR pDocName;
                                                                                        >   360          LPSTR pOutputFile;
                                                                                        >   361          LPSTR pDatatype;
                                                                                        >   362  }
                                                                                        >   363  alias DOC_INFO_1A* PDOC_INFO_1A, LPDOC_INFO_1A;
                                                                                        >   364  
                                                                                        >   365  struct DOC_INFO_1W {
                                                                                        >   366          LPWSTR pDocName;
                                                                                        >   367          LPWSTR pOutputFile;
                                                                                        >   368          LPWSTR pDatatype;
                                                                                        >   369  }
                                                                                        >   370  alias DOC_INFO_1W* PDOC_INFO_1W, LPDOC_INFO_1W;
                                                                                        >   371  
                                                                                        >   372  struct DOC_INFO_2A {
                                                                                        >   373          LPSTR pDocName;
                                                                                        >   374          LPSTR pOutputFile;
                                                                                        >   375          LPSTR pDatatype;
                                                                                        >   376          DWORD dwMode;
                                                                                        >   377          DWORD JobId;
                                                                                        >   378  }
                                                                                        >   379  alias DOC_INFO_2A* PDOC_INFO_2A, LPDOC_INFO_2A;
                                                                                        >   380  
                                                                                        >   381  struct DOC_INFO_2W {
                                                                                        >   382          LPWSTR pDocName;
                                                                                        >   383          LPWSTR pOutputFile;
                                                                                        >   384          LPWSTR pDatatype;
                                                                                        >   385          DWORD  dwMode;
                                                                                        >   386          DWORD  JobId;
                                                                                        >   387  }
                                                                                        >   388  alias DOC_INFO_2W* PDOC_INFO_2W, LPDOC_INFO_2W;
                                                                                        >   389  
                                                                                        >   390  struct DRIVER_INFO_1A {
                                                                                        >   391          LPSTR pName;
                                                                                        >   392  }
                                                                                        >   393  alias DRIVER_INFO_1A* PDRIVER_INFO_1A, LPDRIVER_INFO_1A;
                                                                                        >   394  
                                                                                        >   395  struct DRIVER_INFO_1W {
                                                                                        >   396          LPWSTR pName;
                                                                                        >   397  }
                                                                                        >   398  alias DRIVER_INFO_1W* PDRIVER_INFO_1W, LPDRIVER_INFO_1W;
                                                                                        >   399  
                                                                                        >   400  struct DRIVER_INFO_2A {
                                                                                        >   401          DWORD cVersion;
                                                                                        >   402          LPSTR pName;
                                                                                        >   403          LPSTR pEnvironment;
                                                                                        >   404          LPSTR pDriverPath;
                                                                                        >   405          LPSTR pDataFile;
                                                                                        >   406          LPSTR pConfigFile;
                                                                                        >   407  }
                                                                                        >   408  alias DRIVER_INFO_2A* PDRIVER_INFO_2A, LPDRIVER_INFO_2A;
                                                                                        >   409  
                                                                                        >   410  struct DRIVER_INFO_2W {
                                                                                        >   411          DWORD  cVersion;
                                                                                        >   412          LPWSTR pName;
                                                                                        >   413          LPWSTR pEnvironment;
                                                                                        >   414          LPWSTR pDriverPath;
                                                                                        >   415          LPWSTR pDataFile;
                                                                                        >   416          LPWSTR pConfigFile;
                                                                                        >   417  }
                                                                                        >   418  alias DRIVER_INFO_2W* PDRIVER_INFO_2W, LPDRIVER_INFO_2W;
                                                                                        >   419  
                                                                                        >   420  struct DRIVER_INFO_3A {
                                                                                        >   421          DWORD cVersion;
                                                                                        >   422          LPSTR pName;
                                                                                        >   423          LPSTR pEnvironment;
                                                                                        >   424          LPSTR pDriverPath;
                                                                                        >   425          LPSTR pDataFile;
                                                                                        >   426          LPSTR pConfigFile;
                                                                                        >   427          LPSTR pHelpFile;
                                                                                        >   428          LPSTR pDependentFiles;
                                                                                        >   429          LPSTR pMonitorName;
                                                                                        >   430          LPSTR pDefaultDataType;
                                                                                        >   431  }
                                                                                        >   432  alias DRIVER_INFO_3A* PDRIVER_INFO_3A, LPDRIVER_INFO_3A;
                                                                                        >   433  
                                                                                        >   434  struct DRIVER_INFO_3W {
                                                                                        >   435          DWORD  cVersion;
                                                                                        >   436          LPWSTR pName;
                                                                                        >   437          LPWSTR pEnvironment;
                                                                                        >   438          LPWSTR pDriverPath;
                                                                                        >   439          LPWSTR pDataFile;
                                                                                        >   440          LPWSTR pConfigFile;
                                                                                        >   441          LPWSTR pHelpFile;
                                                                                        >   442          LPWSTR pDependentFiles;
                                                                                        >   443          LPWSTR pMonitorName;
                                                                                        >   444          LPWSTR pDefaultDataType;
                                                                                        >   445  }
                                                                                        >   446  alias DRIVER_INFO_3W* PDRIVER_INFO_3W, LPDRIVER_INFO_3W;
                                                                                        >   447  
                                                                                        >   448  struct MONITOR_INFO_1A {
                                                                                        >   449          LPSTR pName;
                                                                                        >   450  }
                                                                                        >   451  alias MONITOR_INFO_1A* PMONITOR_INFO_1A, LPMONITOR_INFO_1A;
                                                                                        >   452  
                                                                                        >   453  struct MONITOR_INFO_1W {
                                                                                        >   454          LPWSTR pName;
                                                                                        >   455  }
                                                                                        >   456  alias MONITOR_INFO_1W* PMONITOR_INFO_1W, LPMONITOR_INFO_1W;
                                                                                        >   457  
                                                                                        >   458  struct PORT_INFO_1A {
                                                                                        >   459          LPSTR pName;
                                                                                        >   460  }
                                                                                        >   461  alias PORT_INFO_1A* PPORT_INFO_1A, LPPORT_INFO_1A;
                                                                                        >   462  
                                                                                        >   463  struct PORT_INFO_1W {
                                                                                        >   464          LPWSTR pName;
                                                                                        >   465  }
                                                                                        >   466  alias PORT_INFO_1W* PPORT_INFO_1W, LPPORT_INFO_1W;
                                                                                        >   467  
                                                                                        >   468  struct MONITOR_INFO_2A {
                                                                                        >   469          LPSTR pName;
                                                                                        >   470          LPSTR pEnvironment;
                                                                                        >   471          LPSTR pDLLName;
                                                                                        >   472  }
                                                                                        >   473  alias MONITOR_INFO_2A* PMONITOR_INFO_2A, LPMONITOR_INFO_2A;
                                                                                        >   474  
                                                                                        >   475  struct MONITOR_INFO_2W {
                                                                                        >   476          LPWSTR pName;
                                                                                        >   477          LPWSTR pEnvironment;
                                                                                        >   478          LPWSTR pDLLName;
                                                                                        >   479  }
                                                                                        >   480  alias MONITOR_INFO_2W* PMONITOR_INFO_2W, LPMONITOR_INFO_2W;
                                                                                        >   481  
                                                                                        >   482  struct PORT_INFO_2A {
                                                                                        >   483          LPSTR pPortName;
                                                                                        >   484          LPSTR pMonitorName;
                                                                                        >   485          LPSTR pDescription;
                                                                                        >   486          DWORD fPortType;
                                                                                        >   487          DWORD Reserved;
                                                                                        >   488  }
                                                                                        >   489  alias PORT_INFO_2A* PPORT_INFO_2A, LPPORT_INFO_2A;
                                                                                        >   490  
                                                                                        >   491  struct PORT_INFO_2W {
                                                                                        >   492          LPWSTR pPortName;
                                                                                        >   493          LPWSTR pMonitorName;
                                                                                        >   494          LPWSTR pDescription;
                                                                                        >   495          DWORD fPortType;
                                                                                        >   496          DWORD Reserved;
                                                                                        >   497  }
                                                                                        >   498  alias PORT_INFO_2W* PPORT_INFO_2W, LPPORT_INFO_2W;
                                                                                        >   499  
                                                                                        >   500  struct PORT_INFO_3A {
                                                                                        >   501          DWORD dwStatus;
                                                                                        >   502          LPSTR pszStatus;
                                                                                        >   503          DWORD dwSeverity;
                                                                                        >   504  }
                                                                                        >   505  alias PORT_INFO_3A* PPORT_INFO_3A, LPPORT_INFO_3A;
                                                                                        >   506  
                                                                                        >   507  struct PORT_INFO_3W {
                                                                                        >   508          DWORD dwStatus;
                                                                                        >   509          LPWSTR pszStatus;
                                                                                        >   510          DWORD dwSeverity;
                                                                                        >   511  }
                                                                                        >   512  alias PORT_INFO_3W* PPORT_INFO_3W, LPPORT_INFO_3W;
                                                                                        >   513  
   21  struct _PRINTER_INFO_1A {                                                        |   514  struct PRINTER_INFO_1A {
   22    DWORD Flags;                                                                   |   515          DWORD Flags;
   23    LPSTR pDescription;                                                            |   516          LPSTR pDescription;
   24    LPSTR pName;                                                                   |   517          LPSTR pName;
   25    LPSTR pComment;                                                                |   518          LPSTR pComment;
                                                                                        >   519  }
                                                                                        >   520  alias PRINTER_INFO_1A* PPRINTER_INFO_1A, LPPRINTER_INFO_1A;
                                                                                        >   521  
                                                                                        >   522  struct PRINTER_INFO_1W {
                                                                                        >   523          DWORD  Flags;
                                                                                        >   524          LPWSTR pDescription;
                                                                                        >   525          LPWSTR pName;
                                                                                        >   526          LPWSTR pComment;
                                                                                        >   527  }
                                                                                        >   528  alias PRINTER_INFO_1W* PPRINTER_INFO_1W, LPPRINTER_INFO_1W;
                                                                                        >   529  
                                                                                        >   530  struct PRINTER_INFO_2A {
                                                                                        >   531          LPSTR pServerName;
                                                                                        >   532          LPSTR pPrinterName;
                                                                                        >   533          LPSTR pShareName;
                                                                                        >   534          LPSTR pPortName;
                                                                                        >   535          LPSTR pDriverName;
                                                                                        >   536          LPSTR pComment;
                                                                                        >   537          LPSTR pLocation;
                                                                                        >   538          LPDEVMODEA pDevMode;
                                                                                        >   539          LPSTR pSepFile;
                                                                                        >   540          LPSTR pPrintProcessor;
                                                                                        >   541          LPSTR pDatatype;
                                                                                        >   542          LPSTR pParameters;
                                                                                        >   543          PSECURITY_DESCRIPTOR pSecurityDescriptor;
                                                                                        >   544          DWORD Attributes;
                                                                                        >   545          DWORD Priority;
                                                                                        >   546          DWORD DefaultPriority;
                                                                                        >   547          DWORD StartTime;
                                                                                        >   548          DWORD UntilTime;
                                                                                        >   549          DWORD Status;
                                                                                        >   550          DWORD cJobs;
                                                                                        >   551          DWORD AveragePPM;
                                                                                        >   552  }
                                                                                        >   553  alias PRINTER_INFO_2A* PPRINTER_INFO_2A, LPPRINTER_INFO_2A;
                                                                                        >   554  
                                                                                        >   555  struct PRINTER_INFO_2W {
                                                                                        >   556          LPWSTR pServerName;
                                                                                        >   557          LPWSTR pPrinterName;
                                                                                        >   558          LPWSTR pShareName;
                                                                                        >   559          LPWSTR pPortName;
                                                                                        >   560          LPWSTR pDriverName;
                                                                                        >   561          LPWSTR pComment;
                                                                                        >   562          LPWSTR pLocation;
                                                                                        >   563          LPDEVMODEW pDevMode;
                                                                                        >   564          LPWSTR pSepFile;
                                                                                        >   565          LPWSTR pPrintProcessor;
                                                                                        >   566          LPWSTR pDatatype;
                                                                                        >   567          LPWSTR pParameters;
                                                                                        >   568          PSECURITY_DESCRIPTOR pSecurityDescriptor;
                                                                                        >   569          DWORD Attributes;
                                                                                        >   570          DWORD Priority;
                                                                                        >   571          DWORD DefaultPriority;
                                                                                        >   572          DWORD StartTime;
                                                                                        >   573          DWORD UntilTime;
                                                                                        >   574          DWORD Status;
                                                                                        >   575          DWORD cJobs;
                                                                                        >   576          DWORD AveragePPM;
                                                                                        >   577  }
                                                                                        >   578  alias PRINTER_INFO_2W* PPRINTER_INFO_2W, LPPRINTER_INFO_2W;
                                                                                        >   579  
                                                                                        >   580  struct PRINTER_INFO_3 {
                                                                                        >   581          PSECURITY_DESCRIPTOR pSecurityDescriptor;
                                                                                        >   582  }
                                                                                        >   583  alias PRINTER_INFO_3* PPRINTER_INFO_3, LPPRINTER_INFO_3;
                                                                                        >   584  
                                                                                        >   585  struct PRINTER_INFO_4A {
                                                                                        >   586          LPSTR pPrinterName;
                                                                                        >   587          LPSTR pServerName;
                                                                                        >   588          DWORD Attributes;
                                                                                        >   589  }
                                                                                        >   590  alias PRINTER_INFO_4A* PPRINTER_INFO_4A, LPPRINTER_INFO_4A;
                                                                                        >   591  
                                                                                        >   592  struct PRINTER_INFO_4W {
                                                                                        >   593          LPWSTR pPrinterName;
                                                                                        >   594          LPWSTR pServerName;
                                                                                        >   595          DWORD Attributes;
                                                                                        >   596  }
                                                                                        >   597  alias PRINTER_INFO_4W* PPRINTER_INFO_4W, LPPRINTER_INFO_4W;
                                                                                        >   598  
                                                                                        >   599  struct PRINTER_INFO_5A {
                                                                                        >   600          LPSTR pPrinterName;
                                                                                        >   601          LPSTR pPortName;
                                                                                        >   602          DWORD Attributes;
                                                                                        >   603          DWORD DeviceNotSelectedTimeout;
                                                                                        >   604          DWORD TransmissionRetryTimeout;
                                                                                        >   605  }
                                                                                        >   606  alias PRINTER_INFO_5A* PPRINTER_INFO_5A, LPPRINTER_INFO_5A;
                                                                                        >   607  
                                                                                        >   608  struct PRINTER_INFO_5W {
                                                                                        >   609          LPWSTR pPrinterName;
                                                                                        >   610          LPWSTR pPortName;
                                                                                        >   611          DWORD Attributes;
                                                                                        >   612          DWORD DeviceNotSelectedTimeout;
                                                                                        >   613          DWORD TransmissionRetryTimeout;
                                                                                        >   614  }
                                                                                        >   615  alias PRINTER_INFO_5W* PPRINTER_INFO_5W, LPPRINTER_INFO_5W;
                                                                                        >   616  
                                                                                        >   617  struct PRINTER_INFO_6 {
                                                                                        >   618          DWORD dwStatus;
                                                                                        >   619  }
                                                                                        >   620  alias PRINTER_INFO_6* PPRINTER_INFO_6, LPPRINTER_INFO_6;
                                                                                        >   621  
                                                                                        >   622  struct PRINTPROCESSOR_INFO_1A {
                                                                                        >   623          LPSTR pName;
                                                                                        >   624  }
                                                                                        >   625  alias PRINTPROCESSOR_INFO_1A* PPRINTPROCESSOR_INFO_1A, LPPRINTPROCESSOR_INFO_1A;
                                                                                        >   626  
                                                                                        >   627  struct PRINTPROCESSOR_INFO_1W {
                                                                                        >   628          LPWSTR pName;
                                                                                        >   629  }
                                                                                        >   630  alias PRINTPROCESSOR_INFO_1W* PPRINTPROCESSOR_INFO_1W, LPPRINTPROCESSOR_INFO_1W;
                                                                                        >   631  
                                                                                        >   632  struct PRINTER_NOTIFY_INFO_DATA {
                                                                                        >   633          WORD  Type;
                                                                                        >   634          WORD  Field;
                                                                                        >   635          DWORD Reserved;
                                                                                        >   636          DWORD Id;
                                                                                        >   637          union _NotifyData {
                                                                                        >   638                  DWORD adwData[2];
                                                                                        >   639                  struct Data {
                                                                                        >   640                          DWORD cbBuf;
                                                                                        >   641                          PVOID pBuf;
                                                                                        >   642                  }
                                                                                        >   643          }
                                                                                        >   644          _NotifyData NotifyData;
                                                                                        >   645  }
                                                                                        >   646  alias PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA, LPPRINTER_NOTIFY_INFO
                                                                                        >   647  
                                                                                        >   648  struct PRINTER_NOTIFY_INFO {
                                                                                        >   649          DWORD Version;
                                                                                        >   650          DWORD Flags;
                                                                                        >   651          DWORD Count;
                                                                                        >   652          PRINTER_NOTIFY_INFO_DATA aData[1];
   26  }                                                                                    653  }
   27  alias _PRINTER_INFO_1A PRINTER_INFO_1A;                                          |   654  alias PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO, LPPRINTER_NOTIFY_INFO;
   28  alias _PRINTER_INFO_1A* PPRINTER_INFO_1A;                                        <
   29  alias _PRINTER_INFO_1A* LPPRINTER_INFO_1A;                                       <
   30                                                                                       655  
   31  struct _PRINTER_INFO_1W {                                                        |   656  struct FORM_INFO_1A {
   32    DWORD Flags;                                                                   |   657          DWORD Flags;
   33    LPWSTR pDescription;                                                           <
   34    LPWSTR pName;                                                                  |   658          LPSTR pName;
                                                                                        >   659          SIZEL Size;
   35    LPWSTR pComment;                                                               |   660          RECTL ImageableArea;
   36  }                                                                                    661  }
   37  alias _PRINTER_INFO_1W PRINTER_INFO_1W;                                          |   662  alias FORM_INFO_1A* PFORM_INFO_1A, LPFORM_INFO_1A;
   38  alias _PRINTER_INFO_1W* PPRINTER_INFO_1W;                                        <
   39  alias _PRINTER_INFO_1W* LPPRINTER_INFO_1W;                                       <
   40                                                                                       663  
   41  // #ifdef UNICODE                                                                |   664  struct FORM_INFO_1W {
   42  alias PRINTER_INFO_1W PRINTER_INFO_1;                                            <
   43  alias PPRINTER_INFO_1W PPRINTER_INFO_1;                                          <
   44  alias LPPRINTER_INFO_1W LPPRINTER_INFO_1;                                        <
   45  // #else                                                                         <
   46  // ...                                                                           <
   47  // #endif // UNICODE                                                             <
   48                                                                                   <
   49  struct _PRINTER_INFO_2A {                                                        <
   50    LPSTR pServerName;                                                             <
   51    LPSTR pPrinterName;                                                            <
   52    LPSTR pShareName;                                                              <
   53    LPSTR pPortName;                                                               <
   54    LPSTR pDriverName;                                                             <
   55    LPSTR pComment;                                                                <
   56    LPSTR pLocation;                                                               <
   57    LPDEVMODEA pDevMode;                                                           <
   58    LPSTR pSepFile;                                                                <
   59    LPSTR pPrintProcessor;                                                         <
   60    LPSTR pDatatype;                                                               <
   61    LPSTR pParameters;                                                             <
   62    PSECURITY_DESCRIPTOR pSecurityDescriptor;                                      <
   63    DWORD Attributes;                                                              <
   64    DWORD Priority;                                                                <
   65    DWORD DefaultPriority;                                                         <
   66    DWORD StartTime;                                                               <
   67    DWORD UntilTime;                                                               <
   68    DWORD Status;                                                                  <
   69    DWORD cJobs;                                                                   |   665          DWORD  Flags;
   70    DWORD AveragePPM;                                                              <
                                                                                        >   666          LPWSTR pName;
                                                                                        >   667          SIZEL  Size;
                                                                                        >   668          RECTL  ImageableArea;
   71  }                                                                                    669  }
   72  alias _PRINTER_INFO_2A PRINTER_INFO_2A;                                          |   670  alias FORM_INFO_1W* PFORM_INFO_1W, LPFORM_INFO_1W;
   73  alias _PRINTER_INFO_2A* PPRINTER_INFO_2A;                                        <
   74  alias _PRINTER_INFO_2A* LPPRINTER_INFO_2A;                                       <
   75                                                                                       671  
   76  struct _PRINTER_INFO_2W {                                                        |   672  struct PRINTER_DEFAULTSA {
   77    LPWSTR pServerName;                                                            |   673          LPSTR       pDatatype;
   78    LPWSTR pPrinterName;                                                           <
   79    LPWSTR pShareName;                                                             <
   80    LPWSTR pPortName;                                                              <
   81    LPWSTR pDriverName;                                                            <
   82    LPWSTR pComment;                                                               <
   83    LPWSTR pLocation;                                                              <
   84    LPDEVMODEW pDevMode;                                                           |   674          LPDEVMODE   pDevMode;
   85    LPWSTR pSepFile;                                                               <
   86    LPWSTR pPrintProcessor;                                                        <
   87    LPWSTR pDatatype;                                                              <
   88    LPWSTR pParameters;                                                            <
   89    PSECURITY_DESCRIPTOR pSecurityDescriptor;                                      <
   90    DWORD Attributes;                                                              <
   91    DWORD Priority;                                                                <
   92    DWORD DefaultPriority;                                                         <
   93    DWORD StartTime;                                                               <
   94    DWORD UntilTime;                                                               <
   95    DWORD Status;                                                                  <
   96    DWORD cJobs;                                                                   <
   97    DWORD AveragePPM;                                                              <
   98  }                                                                                <
   99  alias _PRINTER_INFO_2W PRINTER_INFO_2W;                                          <
  100  alias _PRINTER_INFO_2W* PPRINTER_INFO_2W;                                        <
  101  alias _PRINTER_INFO_2W* LPPRINTER_INFO_2W;                                       <
  102                                                                                   <
  103  // #ifdef UNICODE                                                                <
  104  alias PRINTER_INFO_2W PRINTER_INFO_2;                                            <
  105  alias PPRINTER_INFO_2W PPRINTER_INFO_2;                                          <
  106  alias LPPRINTER_INFO_2W LPPRINTER_INFO_2;                                        <
  107  // #else                                                                         <
  108  // ...                                                                           <
  109  // #endif // UNICODE                                                             <
  110                                                                                   <
  111  struct _PRINTER_INFO_3 {                                                         <
  112    PSECURITY_DESCRIPTOR pSecurityDescriptor;                                      <
  113  }                                                                                <
  114  alias _PRINTER_INFO_3 PRINTER_INFO_3;                                            <
  115  alias _PRINTER_INFO_3* PPRINTER_INFO_3;                                          <
  116  alias _PRINTER_INFO_3* LPPRINTER_INFO_3;                                         <
  117                                                                                   <
  118  struct _PRINTER_INFO_4A {                                                        <
  119    LPSTR pPrinterName;                                                            <
  120    LPSTR pServerName;                                                             <
  121    DWORD Attributes;                                                              <
                                                                                        >   675          ACCESS_MASK DesiredAccess;
  122  }                                                                                    676  }
  123  alias _PRINTER_INFO_4A PRINTER_INFO_4A;                                          |   677  alias PRINTER_DEFAULTSA* PPRINTER_DEFAULTSA, LPPRINTER_DEFAULTSA;
  124  alias _PRINTER_INFO_4A* PPRINTER_INFO_4A;                                        <
  125  alias _PRINTER_INFO_4A* LPPRINTER_INFO_4A;                                       <
  126                                                                                   |   678  
  127  struct _PRINTER_INFO_4W {                                                        <
  128    LPWSTR pPrinterName;                                                           <
  129    LPWSTR pServerName;                                                            <
  130    DWORD Attributes;                                                              <
  131  }                                                                                <
  132  alias _PRINTER_INFO_4W PRINTER_INFO_4W;                                          <
  133  alias _PRINTER_INFO_4W* PPRINTER_INFO_4W;                                        <
  134  alias _PRINTER_INFO_4W* LPPRINTER_INFO_4W;                                       <
  135                                                                                   <
  136  // #ifdef UNICODE                                                                <
  137  alias PRINTER_INFO_4W PRINTER_INFO_4;                                            <
  138  alias PPRINTER_INFO_4W PPRINTER_INFO_4;                                          <
  139  alias LPPRINTER_INFO_4W LPPRINTER_INFO_4;                                        <
  140  // #else                                                                         <
  141  // ...                                                                           <
  142  // #endif // UNICODE                                                             <
  143                                                                                   <
  144  struct _PRINTER_INFO_5A {                                                        <
  145    LPSTR pPrinterName;                                                            <
  146    LPSTR pPortName;                                                               <
  147    DWORD Attributes;                                                              <
  148    DWORD DeviceNotSelectedTimeout;                                                <
  149    DWORD TransmissionRetryTimeout;                                                <
  150  }                                                                                <
  151  alias _PRINTER_INFO_5A PRINTER_INFO_5A;                                          <
  152  alias _PRINTER_INFO_5A* PPRINTER_INFO_5A;                                        <
  153  alias _PRINTER_INFO_5A* LPPRINTER_INFO_5A;                                       <
  154                                                                                   <
  155  struct _PRINTER_INFO_5W {                                                        <
  156    LPWSTR pPrinterName;                                                           <
                                                                                        >   679  struct PRINTER_DEFAULTSW {
  157    LPWSTR pPortName;                                                              |   680          LPWSTR pDatatype;
  158    DWORD Attributes;                                                              <
  159    DWORD DeviceNotSelectedTimeout;                                                <
  160    DWORD TransmissionRetryTimeout;                                                <
  161  }                                                                                <
  162  alias _PRINTER_INFO_5W PRINTER_INFO_5W;                                          <
  163  alias _PRINTER_INFO_5W* PPRINTER_INFO_5W;                                        <
  164  alias _PRINTER_INFO_5W* LPPRINTER_INFO_5W;                                       <
  165                                                                                   <
  166  // #ifdef UNICODE                                                                <
  167  alias PRINTER_INFO_5W PRINTER_INFO_5;                                            <
  168  alias PPRINTER_INFO_5W PPRINTER_INFO_5;                                          <
  169  alias LPPRINTER_INFO_5W LPPRINTER_INFO_5;                                        <
  170  // #else                                                                         <
  171  // ...                                                                           <
  172  // #endif // UNICODE                                                             <
  173                                                                                   <
  174  struct _PRINTER_INFO_6 {                                                         <
  175    DWORD dwStatus;                                                                <
  176  }                                                                                <
  177  alias _PRINTER_INFO_6 PRINTER_INFO_6;                                            <
  178  alias _PRINTER_INFO_6* PPRINTER_INFO_6;                                          <
  179  alias _PRINTER_INFO_6* LPPRINTER_INFO_6;                                         <
  180                                                                                   <
  181  struct _PRINTER_INFO_7A {                                                        <
  182    LPSTR pszObjectGUID;                                                           <
  183    DWORD dwAction;                                                                <
  184  }                                                                                <
  185  alias _PRINTER_INFO_7A PRINTER_INFO_7A;                                          <
  186  alias _PRINTER_INFO_7A* PPRINTER_INFO_7A;                                        <
  187  alias _PRINTER_INFO_7A* LPPRINTER_INFO_7A;                                       <
  188                                                                                   <
  189  struct _PRINTER_INFO_7W {                                                        <
  190    LPWSTR pszObjectGUID;                                                          <
  191    DWORD dwAction;                                                                <
  192  }                                                                                <
  193  alias _PRINTER_INFO_7W PRINTER_INFO_7W;                                          <
  194  alias _PRINTER_INFO_7W* PPRINTER_INFO_7W;                                        <
  195  alias _PRINTER_INFO_7W* LPPRINTER_INFO_7W;                                       <
  196                                                                                   <
  197  // #ifdef UNICODE                                                                <
  198  alias PRINTER_INFO_7W PRINTER_INFO_7;                                            <
  199  alias PPRINTER_INFO_7W PPRINTER_INFO_7;                                          <
  200  alias LPPRINTER_INFO_7W LPPRINTER_INFO_7;                                        <
  201  // #else                                                                         <
  202  // ...                                                                           <
  203  // #endif // UNICODE                                                             <
  204                                                                                   <
  205  enum : uint { DSPRINT_PUBLISH = 0x00000001 }                                     <
  206  enum : uint { DSPRINT_UPDATE = 0x00000002 }                                      <
  207  enum : uint { DSPRINT_UNPUBLISH = 0x00000004 }                                   <
  208  enum : uint { DSPRINT_REPUBLISH = 0x00000008 }                                   <
  209  enum : uint { DSPRINT_PENDING = 0x80000000 }                                     <
  210                                                                                   <
  211  struct _PRINTER_INFO_8A {                                                        <
  212    LPDEVMODEA pDevMode;                                                           |   681          LPDEVMODE pDevMode;
                                                                                        >   682          ACCESS_MASK DesiredAccess;
  213  }                                                                                    683  }
  214  alias _PRINTER_INFO_8A PRINTER_INFO_8A;                                          |   684  alias PRINTER_DEFAULTSW* PPRINTER_DEFAULTSW, LPPRINTER_DEFAULTSW;
  215  alias _PRINTER_INFO_8A* PPRINTER_INFO_8A;                                        <
  216  alias _PRINTER_INFO_8A* LPPRINTER_INFO_8A;                                       <
  217                                                                                   |   685  
                                                                                        >   686  extern (Windows):
                                                                                        >   687  BOOL AbortPrinter(HANDLE);
  218  struct _PRINTER_INFO_8W {                                                        |   688  BOOL AddFormA(HANDLE, DWORD, PBYTE);
  219    LPDEVMODEW pDevMode;                                                           |   689  BOOL AddFormW(HANDLE, DWORD, PBYTE);
  220  }                                                                                <
                                                                                        >   690  BOOL AddJobA(HANDLE, DWORD, PBYTE, DWORD, PDWORD);
  221  alias _PRINTER_INFO_8W PRINTER_INFO_8W;                                          |   691  BOOL AddJobW(HANDLE, DWORD, PBYTE, DWORD, PDWORD);
  222  alias _PRINTER_INFO_8W* PPRINTER_INFO_8W;                                        |   692  BOOL AddMonitorA(LPSTR, DWORD, PBYTE);
  223  alias _PRINTER_INFO_8W* LPPRINTER_INFO_8W;                                       |   693  BOOL AddMonitorW(LPWSTR, DWORD, PBYTE);
  224                                                                                   <
                                                                                        >   694  BOOL AddPortA(LPSTR, HWND, LPSTR);
  225  // #ifdef UNICODE                                                                |   695  BOOL AddPortW(LPWSTR, HWND, LPWSTR);
  226  alias PRINTER_INFO_8W PRINTER_INFO_8;                                            |   696  HANDLE AddPrinterA(LPSTR, DWORD, PBYTE);
  227  alias PPRINTER_INFO_8W PPRINTER_INFO_8;                                          |   697  HANDLE AddPrinterW(LPWSTR, DWORD, PBYTE);
  228  alias LPPRINTER_INFO_8W LPPRINTER_INFO_8;                                        |   698  BOOL AddPrinterConnectionA(LPSTR);
  229  // #else                                                                         |   699  BOOL AddPrinterConnectionW(LPWSTR);
  230  // ...                                                                           |   700  BOOL AddPrinterDriverA(LPSTR, DWORD, PBYTE);
  231  // #endif // UNICODE                                                             |   701  BOOL AddPrinterDriverW(LPWSTR, DWORD, PBYTE);
  232                                                                                   <
                                                                                        >   702  BOOL AddPrintProcessorA(LPSTR, LPSTR, LPSTR, LPSTR);
  233  struct _PRINTER_INFO_9A {                                                        |   703  BOOL AddPrintProcessorW(LPWSTR, LPWSTR, LPWSTR, LPWSTR);
  234    LPDEVMODEA pDevMode;                                                           |   704  BOOL AddPrintProvidorA(LPSTR, DWORD, PBYTE);
  235  }                                                                                <
                                                                                        >   705  BOOL AddPrintProvidorW(LPWSTR, DWORD, PBYTE);
  236  alias _PRINTER_INFO_9A PRINTER_INFO_9A;                                          |   706  LONG AdvancedDocumentPropertiesA(HWND, HANDLE, LPSTR, PDEVMODE, PDEVMODEA);
  237  alias _PRINTER_INFO_9A* PPRINTER_INFO_9A;                                        |   707  LONG AdvancedDocumentPropertiesW(HWND, HANDLE, LPWSTR, PDEVMODE, PDEVMODEW);
  238  alias _PRINTER_INFO_9A* LPPRINTER_INFO_9A;                                       |   708  BOOL ClosePrinter(HANDLE);
  239                                                                                   <
                                                                                        >   709  BOOL ConfigurePortA(LPSTR, HWND, LPSTR);
  240  struct _PRINTER_INFO_9W {                                                        |   710  BOOL ConfigurePortW(LPWSTR, HWND, LPWSTR);
  241    LPDEVMODEW pDevMode;                                                           |   711  HANDLE ConnectToPrinterDlg(HWND, DWORD);
  242  }                                                                                <
                                                                                        >   712  BOOL DeleteFormA(HANDLE, LPSTR);
  243  alias _PRINTER_INFO_9W PRINTER_INFO_9W;                                          |   713  BOOL DeleteFormW(HANDLE, LPWSTR);
  244  alias _PRINTER_INFO_9W* PPRINTER_INFO_9W;                                        |   714  BOOL DeleteMonitorA(LPSTR, LPSTR, LPSTR);
  245  alias _PRINTER_INFO_9W* LPPRINTER_INFO_9W;                                       |   715  BOOL DeleteMonitorW(LPWSTR, LPWSTR, LPWSTR);
  246                                                                                   <
                                                                                        >   716  BOOL DeletePortA(LPSTR, HWND, LPSTR);
  247  // #ifdef UNICODE                                                                |   717  BOOL DeletePortW(LPWSTR, HWND, LPWSTR);
  248  alias PRINTER_INFO_9W PRINTER_INFO_9;                                            |   718  BOOL DeletePrinter(HANDLE);
  249  alias PPRINTER_INFO_9W PPRINTER_INFO_9;                                          |   719  BOOL DeletePrinterConnectionA(LPSTR);
  250  alias LPPRINTER_INFO_9W LPPRINTER_INFO_9;                                        |   720  BOOL DeletePrinterConnectionW(LPWSTR);
  251  // #else                                                                         |   721  DWORD DeletePrinterDataA(HANDLE, LPSTR);
  252  // ...                                                                           |   722  DWORD DeletePrinterDataW(HANDLE, LPWSTR);
  253  // #endif // UNICODE                                                             |   723  BOOL DeletePrinterDriverA(LPSTR, LPSTR, LPSTR);
  254                                                                                   <
                                                                                        >   724  BOOL DeletePrinterDriverW(LPWSTR, LPWSTR, LPWSTR);
  255  enum : uint { PRINTER_CONTROL_PAUSE = 1 }                                        |   725  BOOL DeletePrintProcessorA(LPSTR, LPSTR, LPSTR);
  256  enum : uint { PRINTER_CONTROL_RESUME = 2 }                                       |   726  BOOL DeletePrintProcessorW(LPWSTR, LPWSTR, LPWSTR);
  257  enum : uint { PRINTER_CONTROL_PURGE = 3 }                                        |   727  BOOL DeletePrintProvidorA(LPSTR, LPSTR, LPSTR);
  258  enum : uint { PRINTER_CONTROL_SET_STATUS = 4 }                                   |   728  BOOL DeletePrintProvidorW(LPWSTR, LPWSTR, LPWSTR);
  259                                                                                   <
                                                                                        >   729  LONG DocumentPropertiesA(HWND, HANDLE, LPSTR, PDEVMODEA, PDEVMODEA, DWORD);
  260  enum : uint { PRINTER_STATUS_PAUSED = 0x00000001 }                               |   730  LONG DocumentPropertiesW(HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW, DWORD);
  261  enum : uint { PRINTER_STATUS_ERROR = 0x00000002 }                                |   731  BOOL EndDocPrinter(HANDLE);
  262  enum : uint { PRINTER_STATUS_PENDING_DELETION = 0x00000004 }                     |   732  BOOL EndPagePrinter(HANDLE);
  263  enum : uint { PRINTER_STATUS_PAPER_JAM = 0x00000008 }                            |   733  BOOL EnumFormsA(HANDLE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  264  enum : uint { PRINTER_STATUS_PAPER_OUT = 0x00000010 }                            |   734  BOOL EnumFormsW(HANDLE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  265  enum : uint { PRINTER_STATUS_MANUAL_FEED = 0x00000020 }                          |   735  BOOL EnumJobsA(HANDLE, DWORD, DWORD, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  266  enum : uint { PRINTER_STATUS_PAPER_PROBLEM = 0x00000040 }                        |   736  BOOL EnumJobsW(HANDLE, DWORD, DWORD, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  267  enum : uint { PRINTER_STATUS_OFFLINE = 0x00000080 }                              |   737  BOOL EnumMonitorsA(LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  268  enum : uint { PRINTER_STATUS_IO_ACTIVE = 0x00000100 }                            |   738  BOOL EnumMonitorsW(LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  269  enum : uint { PRINTER_STATUS_BUSY = 0x00000200 }                                 |   739  BOOL EnumPortsA(LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  270  enum : uint { PRINTER_STATUS_PRINTING = 0x00000400 }                             |   740  BOOL EnumPortsW(LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  271  enum : uint { PRINTER_STATUS_OUTPUT_BIN_FULL = 0x00000800 }                      |   741  DWORD EnumPrinterDataA(HANDLE, DWORD, LPSTR, DWORD, PDWORD, PDWORD, PBYTE, DWORD
  272  enum : uint { PRINTER_STATUS_NOT_AVAILABLE = 0x00001000 }                        |   742  DWORD EnumPrinterDataW(HANDLE, DWORD, LPWSTR, DWORD, PDWORD, PDWORD, PBYTE, DWOR
  273  enum : uint { PRINTER_STATUS_WAITING = 0x00002000 }                              |   743  BOOL EnumPrinterDriversA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  274  enum : uint { PRINTER_STATUS_PROCESSING = 0x00004000 }                           |   744  BOOL EnumPrinterDriversW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  275  enum : uint { PRINTER_STATUS_INITIALIZING = 0x00008000 }                         |   745  BOOL EnumPrintersA(DWORD, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  276  enum : uint { PRINTER_STATUS_WARMING_UP = 0x00010000 }                           |   746  BOOL EnumPrintersW(DWORD, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  277  enum : uint { PRINTER_STATUS_TONER_LOW = 0x00020000 }                            |   747  BOOL EnumPrintProcessorDatatypesA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDW
  278  enum : uint { PRINTER_STATUS_NO_TONER = 0x00040000 }                             |   748  BOOL EnumPrintProcessorDatatypesW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, P
  279  enum : uint { PRINTER_STATUS_PAGE_PUNT = 0x00080000 }                            |   749  BOOL EnumPrintProcessorsA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  280  enum : uint { PRINTER_STATUS_USER_INTERVENTION = 0x00100000 }                    |   750  BOOL EnumPrintProcessorsW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
  281  enum : uint { PRINTER_STATUS_OUT_OF_MEMORY = 0x00200000 }                        |   751  BOOL FindClosePrinterChangeNotification(HANDLE);
  282  enum : uint { PRINTER_STATUS_DOOR_OPEN = 0x00400000 }                            |   752  HANDLE FindFirstPrinterChangeNotification(HANDLE, DWORD, DWORD, PVOID);
  283  enum : uint { PRINTER_STATUS_SERVER_UNKNOWN = 0x00800000 }                       |   753  HANDLE FindNextPrinterChangeNotification(HANDLE, PDWORD, PVOID, PVOID*);
  284  enum : uint { PRINTER_STATUS_POWER_SAVE = 0x01000000 }                           |   754  BOOL FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO);
  285                                                                                   |   755  
  286  enum : uint { PRINTER_ATTRIBUTE_QUEUED = 0x00000001 }                            |   756  static if (_WIN32_WINNT >= 0x0500) {
  287  enum : uint { PRINTER_ATTRIBUTE_DIRECT = 0x00000002 }                            |   757  BOOL GetDefaultPrinterA(LPSTR, LPDWORD);
  288  enum : uint { PRINTER_ATTRIBUTE_DEFAULT = 0x00000004 }                           |   758  BOOL GetDefaultPrinterW(LPWSTR, LPDWORD);
  289  enum : uint { PRINTER_ATTRIBUTE_SHARED = 0x00000008 }                            <
  290  enum : uint { PRINTER_ATTRIBUTE_NETWORK = 0x00000010 }                           <
  291  enum : uint { PRINTER_ATTRIBUTE_HIDDEN = 0x00000020 }                            <
  292  enum : uint { PRINTER_ATTRIBUTE_LOCAL = 0x00000040 }                             <
  293                                                                                   <
  294  enum : uint { PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080 }                       <
  295  enum : uint { PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100 }                   <
  296  enum : uint { PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200 }                 <
  297                                                                                   <
  298  enum : uint { PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400 }                      <
  299  enum : uint { PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800 }                       <
  300  enum : uint { PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000 }                          <
  301  enum : uint { PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000 }                         <
  302  enum : uint { PRINTER_ATTRIBUTE_FAX = 0x00004000 }                               <
  303                                                                                   <
  304  enum : uint { NO_PRIORITY = 0 }                                                  <
  305  enum : uint { MAX_PRIORITY = 99 }                                                <
  306  enum : uint { MIN_PRIORITY = 1 }                                                 <
  307  enum : uint { DEF_PRIORITY = 1 }                                                 <
  308                                                                                   <
  309  struct _JOB_INFO_1A {                                                            <
  310    DWORD JobId;                                                                   <
  311    LPSTR pPrinterName;                                                            <
  312    LPSTR pMachineName;                                                            <
  313    LPSTR pUserName;                                                               <
  314    LPSTR pDocument;                                                               <
  315    LPSTR pDatatype;                                                               <
  316    LPSTR pStatus;                                                                 <
  317    DWORD Status;                                                                  <
  318    DWORD Priority;                                                                <
  319    DWORD Position;                                                                <
  320    DWORD TotalPages;                                                              <
  321    DWORD PagesPrinted;                                                            <
  322    SYSTEMTIME Submitted;                                                          <
  323  }                                                                                <
  324  alias _JOB_INFO_1A JOB_INFO_1A;                                                  <
  325  alias _JOB_INFO_1A* PJOB_INFO_1A;                                                <
  326  alias _JOB_INFO_1A* LPJOB_INFO_1A;                                               <
  327                                                                                   <
  328  struct _JOB_INFO_1W {                                                            <
  329    DWORD JobId;                                                                   <
  330    LPWSTR pPrinterName;                                                           <
  331    LPWSTR pMachineName;                                                           <
  332    LPWSTR pUserName;                                                              <
  333    LPWSTR pDocument;                                                              <
  334    LPWSTR pDatatype;                                                              <
  335    LPWSTR pStatus;                                                                <
  336    DWORD Status;                                                                  <
  337    DWORD Priority;                                                                <
  338    DWORD Position;                                                                <
  339    DWORD TotalPages;                                                              <
  340    DWORD PagesPrinted;                                                            <
  341    SYSTEMTIME Submitted;                                                          <
  342  }                                                                                <
  343  alias _JOB_INFO_1W JOB_INFO_1W;                                                  <
  344  alias _JOB_INFO_1W* PJOB_INFO_1W;                                                <
  345  alias _JOB_INFO_1W* LPJOB_INFO_1W;                                               <
  346                                                                                   <
  347  // #ifdef UNICODE                                                                <
  348  alias JOB_INFO_1W JOB_INFO_1;                                                    <
  349  alias PJOB_INFO_1W PJOB_INFO_1;                                                  <
  350  alias LPJOB_INFO_1W LPJOB_INFO_1;                                                <
  351  // #else                                                                         <
  352  // ...                                                                           <
  353  // #endif // UNICODE                                                             <
  354                                                                                   <
  355  struct _JOB_INFO_2A {                                                            <
  356    DWORD JobId;                                                                   <
  357    LPSTR pPrinterName;                                                            <
  358    LPSTR pMachineName;                                                            <
  359    LPSTR pUserName;                                                               <
  360    LPSTR pDocument;                                                               <
  361    LPSTR pNotifyName;                                                             <
  362    LPSTR pDatatype;                                                               <
  363    LPSTR pPrintProcessor;                                                         <
  364    LPSTR pParameters;                                                             <
  365    LPSTR pDriverName;                                                             <
  366    LPDEVMODEA pDevMode;                                                           <
  367    LPSTR pStatus;                                                                 <
  368    PSECURITY_DESCRIPTOR pSecurityDescriptor;                                      <
  369    DWORD Status;                                                                  <
  370    DWORD Priority;                                                                <
  371    DWORD Position;                                                                <
  372    DWORD StartTime;                                                               <
  373    DWORD UntilTime;                                                               <
  374    DWORD TotalPages;                                                              <
  375    DWORD Size;                                                                    <
  376    SYSTEMTIME Submitted;                                                          <
  377    DWORD Time;                                                                    <
  378    DWORD PagesPrinted;                                                            <
  379  }                                                                                    759  }
  380  alias _JOB_INFO_2A JOB_INFO_2A;                                                  <
  381  alias _JOB_INFO_2A* PJOB_INFO_2A;                                                <
  382  alias _JOB_INFO_2A* LPJOB_INFO_2A;                                               <
  383                                                                                       760  
  384  struct _JOB_INFO_2W {                                                            |   761  BOOL GetFormA(HANDLE, LPSTR, DWORD, PBYTE, DWORD, PDWORD);
  385    DWORD JobId;                                                                   |   762  BOOL GetFormW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD, PDWORD);
  386    LPWSTR pPrinterName;                                                           |   763  BOOL GetJobA(HANDLE, DWORD, DWORD, PBYTE, DWORD, PDWORD);
  387    LPWSTR pMachineName;                                                           |   764  BOOL GetJobW(HANDLE, DWORD, DWORD, PBYTE, DWORD, PDWORD);
  388    LPWSTR pUserName;                                                              |   765  BOOL GetPrinterA(HANDLE, DWORD, PBYTE, DWORD, PDWORD);
  389    LPWSTR pDocument;                                                              |   766  BOOL GetPrinterW(HANDLE, DWORD, PBYTE, DWORD, PDWORD);
  390    LPWSTR pNotifyName;                                                            |   767  DWORD GetPrinterDataA(HANDLE, LPSTR, PDWORD, PBYTE, DWORD, PDWORD);
  391    LPWSTR pDatatype;                                                              |   768  DWORD GetPrinterDataW(HANDLE, LPWSTR, PDWORD, PBYTE, DWORD, PDWORD);
  392    LPWSTR pPrintProcessor;                                                        |   769  DWORD GetPrinterDriverA(HANDLE, LPSTR, DWORD, PBYTE, DWORD, PDWORD);
  393    LPWSTR pParameters;                                                            |   770  DWORD GetPrinterDriverW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD, PDWORD);
  394    LPWSTR pDriverName;                                                            |   771  DWORD GetPrinterDriverDirectoryA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD);
  395    LPDEVMODEW pDevMode;                                                           |   772  DWORD GetPrinterDriverDirectoryW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD);
  396    LPWSTR pStatus;                                                                |   773  DWORD GetPrintProcessorDirectoryA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD);
  397    PSECURITY_DESCRIPTOR pSecurityDescriptor;                                      |   774  DWORD GetPrintProcessorDirectoryW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD);
  398    DWORD Status;                                                                  |   775  BOOL OpenPrinterA(LPSTR, PHANDLE, LPPRINTER_DEFAULTSA);
  399    DWORD Priority;                                                                |   776  BOOL OpenPrinterW(LPWSTR, PHANDLE, LPPRINTER_DEFAULTSW);
  400    DWORD Position;                                                                |   777  DWORD PrinterMessageBoxA(HANDLE, DWORD, HWND, LPSTR, LPSTR, DWORD);
  401    DWORD StartTime;                                                               |   778  DWORD PrinterMessageBoxW(HANDLE, DWORD, HWND, LPWSTR, LPWSTR, DWORD);
  402    DWORD UntilTime;                                                               |   779  BOOL PrinterProperties(HWND, HANDLE);
  403    DWORD TotalPages;                                                              |   780  BOOL ReadPrinter(HANDLE, PVOID, DWORD, PDWORD);
  404    DWORD Size;                                                                    |   781  BOOL ResetPrinterA(HANDLE, LPPRINTER_DEFAULTSA);
  405    SYSTEMTIME Submitted;                                                          |   782  BOOL ResetPrinterW(HANDLE, LPPRINTER_DEFAULTSW);
  406    DWORD Time;                                                                    |   783  BOOL ScheduleJob(HANDLE, DWORD);
  407    DWORD PagesPrinted;                                                            |   784  BOOL SetFormA(HANDLE, LPSTR, DWORD, PBYTE);
  408  }                                                                                <
                                                                                        >   785  BOOL SetFormW(HANDLE, LPWSTR, DWORD, PBYTE);
  409  alias _JOB_INFO_2W JOB_INFO_2W;                                                  |   786  BOOL SetJobA(HANDLE, DWORD, DWORD, PBYTE, DWORD);
  410  alias _JOB_INFO_2W* PJOB_INFO_2W;                                                |   787  BOOL SetJobW(HANDLE, DWORD, DWORD, PBYTE, DWORD);
  411  alias _JOB_INFO_2W* LPJOB_INFO_2W;                                               |   788  BOOL SetPrinterA(HANDLE, DWORD, PBYTE, DWORD);
                                                                                        >   789  BOOL SetPrinterW(HANDLE, DWORD, PBYTE, DWORD);
                                                                                        >   790  BOOL SetPrinterDataA(HANDLE, LPSTR, DWORD, PBYTE, DWORD);
                                                                                        >   791  BOOL SetPrinterDataW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD);
                                                                                        >   792  DWORD StartDocPrinterA(HANDLE, DWORD, PBYTE);
                                                                                        >   793  DWORD StartDocPrinterW(HANDLE, DWORD, PBYTE);
                                                                                        >   794  BOOL StartPagePrinter(HANDLE);
                                                                                        >   795  DWORD WaitForPrinterChange(HANDLE, DWORD);
                                                                                        >   796  BOOL WritePrinter(HANDLE, PVOID, DWORD, PDWORD);
  412                                                                                       797  
  413  // #ifdef UNICODE                                                                |   798  version(Unicode) {
  414  alias JOB_INFO_2W JOB_INFO_2;                                                    <
  415  alias PJOB_INFO_2W PJOB_INFO_2;                                                  <
  416  alias LPJOB_INFO_2W LPJOB_INFO_2;                                                <
  417  // #else                                                                         <
  418  // ...                                                                           <
  419  // #endif // UNICODE                                                             <
  420                                                                                       799  
  421  struct _JOB_INFO_3 {                                                             <
  422    DWORD JobId;                                                                   <
  423    DWORD NextJobId;                                                               <
  424    DWORD Reserved;                                                                <
  425  }                                                                                <
  426  alias _JOB_INFO_3 JOB_INFO_3;                                                    <
  427  alias _JOB_INFO_3* PJOB_INFO_3;                                                  <
  428  alias _JOB_INFO_3* LPJOB_INFO_3;                                                 <
  429                                                                                   <
  430  enum : uint { JOB_CONTROL_PAUSE = 1 }                                            <
  431  enum : uint { JOB_CONTROL_RESUME = 2 }                                           <
  432  enum : uint { JOB_CONTROL_CANCEL = 3 }                                           <
  433  enum : uint { JOB_CONTROL_RESTART = 4 }                                          <
  434  enum : uint { JOB_CONTROL_DELETE = 5 }                                           <
  435  enum : uint { JOB_CONTROL_SENT_TO_PRINTER = 6 }                                  <
  436  enum : uint { JOB_CONTROL_LAST_PAGE_EJECTED = 7 }                                <
  437                                                                                   <
  438  enum : uint { JOB_STATUS_PAUSED = 0x00000001 }                                   <
  439  enum : uint { JOB_STATUS_ERROR = 0x00000002 }                                    <
  440  enum : uint { JOB_STATUS_DELETING = 0x00000004 }                                 <
  441  enum : uint { JOB_STATUS_SPOOLING = 0x00000008 }                                 <
  442  enum : uint { JOB_STATUS_PRINTING = 0x00000010 }                                 <
  443  enum : uint { JOB_STATUS_OFFLINE = 0x00000020 }                                  <
  444  enum : uint { JOB_STATUS_PAPEROUT = 0x00000040 }                                 <
  445  enum : uint { JOB_STATUS_PRINTED = 0x00000080 }                                  <
  446  enum : uint { JOB_STATUS_DELETED = 0x00000100 }                                  <
  447  enum : uint { JOB_STATUS_BLOCKED_DEVQ = 0x00000200 }                             <
  448  enum : uint { JOB_STATUS_USER_INTERVENTION = 0x00000400 }                        <
  449  enum : uint { JOB_STATUS_RESTART = 0x00000800 }                                  <
  450  enum : uint { JOB_STATUS_COMPLETE = 0x00001000 }                                 <
  451                                                                                   <
  452  enum : uint { JOB_POSITION_UNSPECIFIED = 0 }                                     <
  453                                                                                   <
  454  struct _ADDJOB_INFO_1A {                                                         |   800  alias JOB_INFO_1W JOB_INFO_1;
  455    LPSTR Path;                                                                    <
  456    DWORD JobId;                                                                   <
  457  }                                                                                <
  458  alias _ADDJOB_INFO_1A ADDJOB_INFO_1A;                                            <
  459  alias _ADDJOB_INFO_1A* PADDJOB_INFO_1A;                                          <
  460  alias _ADDJOB_INFO_1A* LPADDJOB_INFO_1A;                                         <
  461                                                                                   <
  462  struct _ADDJOB_INFO_1W {                                                         |   801  alias JOB_INFO_2W JOB_INFO_2;
  463    LPWSTR Path;                                                                   <
  464    DWORD JobId;                                                                   <
  465  }                                                                                <
  466  alias _ADDJOB_INFO_1W ADDJOB_INFO_1W;                                            <
  467  alias _ADDJOB_INFO_1W* PADDJOB_INFO_1W;                                          <
  468  alias _ADDJOB_INFO_1W* LPADDJOB_INFO_1W;                                         <
  469                                                                                   <
  470  // #ifdef UNICODE                                                                <
  471  alias ADDJOB_INFO_1W ADDJOB_INFO_1;                                                  802  alias ADDJOB_INFO_1W ADDJOB_INFO_1;
  472  alias PADDJOB_INFO_1W PADDJOB_INFO_1;                                            |   803  alias DATATYPES_INFO_1W DATATYPES_INFO_1;
  473  alias LPADDJOB_INFO_1W LPADDJOB_INFO_1;                                          |   804  alias MONITOR_INFO_1W MONITOR_INFO_1;
  474  // #else                                                                         |   805  alias MONITOR_INFO_2W MONITOR_INFO_2;
  475  // ...                                                                           <
  476  // #endif // UNICODE                                                             <
  477                                                                                   <
  478  struct _DRIVER_INFO_1A {                                                         <
  479    LPSTR pName;                                                                   <
  480  }                                                                                <
  481  alias _DRIVER_INFO_1A DRIVER_INFO_1A;                                            <
  482  alias _DRIVER_INFO_1A* PDRIVER_INFO_1A;                                          <
  483  alias _DRIVER_INFO_1A* LPDRIVER_INFO_1A;                                         <
  484                                                                                   <
  485  struct _DRIVER_INFO_1W {                                                         <
  486    LPWSTR pName;                                                                  <
  487  }                                                                                <
  488  alias _DRIVER_INFO_1W DRIVER_INFO_1W;                                            <
  489  alias _DRIVER_INFO_1W* PDRIVER_INFO_1W;                                          <
  490  alias _DRIVER_INFO_1W* LPDRIVER_INFO_1W;                                         <
  491                                                                                   <
  492  // #ifdef UNICODE                                                                <
  493  alias DRIVER_INFO_1W DRIVER_INFO_1;                                              <
  494  alias PDRIVER_INFO_1W PDRIVER_INFO_1;                                            <
  495  alias LPDRIVER_INFO_1W LPDRIVER_INFO_1;                                          <
  496  // #else                                                                         <
  497  // ...                                                                           <
  498  // #endif // UNICODE                                                             <
  499                                                                                   <
  500  struct _DRIVER_INFO_2A {                                                         <
  501    DWORD cVersion;                                                                <
  502    LPSTR pName;                                                                   <
  503    LPSTR pEnvironment;                                                            <
  504    LPSTR pDriverPath;                                                             <
  505    LPSTR pDataFile;                                                               <
  506    LPSTR pConfigFile;                                                             <
  507  }                                                                                <
  508  alias _DRIVER_INFO_2A DRIVER_INFO_2A;                                            <
  509  alias _DRIVER_INFO_2A* PDRIVER_INFO_2A;                                          <
  510  alias _DRIVER_INFO_2A* LPDRIVER_INFO_2A;                                         <
  511                                                                                   <
  512  struct _DRIVER_INFO_2W {                                                         <
  513    DWORD cVersion;                                                                <
  514    LPWSTR pName;                                                                  <
  515    LPWSTR pEnvironment;                                                           <
  516    LPWSTR pDriverPath;                                                            <
  517    LPWSTR pDataFile;                                                              <
  518    LPWSTR pConfigFile;                                                            <
  519  }                                                                                <
  520  alias _DRIVER_INFO_2W DRIVER_INFO_2W;                                            <
  521  alias _DRIVER_INFO_2W* PDRIVER_INFO_2W;                                          <
  522  alias _DRIVER_INFO_2W* LPDRIVER_INFO_2W;                                         <
  523                                                                                   <
  524  // #ifdef UNICODE                                                                <
  525  alias DRIVER_INFO_2W DRIVER_INFO_2;                                              <
  526  alias PDRIVER_INFO_2W PDRIVER_INFO_2;                                            <
  527  alias LPDRIVER_INFO_2W LPDRIVER_INFO_2;                                          <
  528  // #else                                                                         <
  529  // ...                                                                           <
  530  // #endif // UNICODE                                                             <
  531                                                                                   <
  532  struct _DRIVER_INFO_3A {                                                         <
  533    DWORD cVersion;                                                                <
  534    LPSTR pName;                                                                   <
  535    LPSTR pEnvironment;                                                            <
  536    LPSTR pDriverPath;                                                             <
  537    LPSTR pDataFile;                                                               <
  538    LPSTR pConfigFile;                                                             <
  539    LPSTR pHelpFile;                                                               <
  540    LPSTR pDependentFiles;                                                         <
  541    LPSTR pMonitorName;                                                            <
  542    LPSTR pDefaultDataType;                                                        <
  543  }                                                                                <
  544  alias _DRIVER_INFO_3A DRIVER_INFO_3A;                                            <
  545  alias _DRIVER_INFO_3A* PDRIVER_INFO_3A;                                          <
  546  alias _DRIVER_INFO_3A* LPDRIVER_INFO_3A;                                         <
  547                                                                                   <
  548  struct _DRIVER_INFO_3W {                                                         <
  549    DWORD cVersion;                                                                <
  550    LPWSTR pName;                                                                  <
  551    LPWSTR pEnvironment;                                                           <
  552    LPWSTR pDriverPath;                                                            <
  553    LPWSTR pDataFile;                                                              <
  554    LPWSTR pConfigFile;                                                            <
  555    LPWSTR pHelpFile;                                                              <
  556    LPWSTR pDependentFiles;                                                        <
  557    LPWSTR pMonitorName;                                                           <
  558    LPWSTR pDefaultDataType;                                                       <
  559  }                                                                                <
  560  alias _DRIVER_INFO_3W DRIVER_INFO_3W;                                            <
  561  alias _DRIVER_INFO_3W* PDRIVER_INFO_3W;                                          <
  562  alias _DRIVER_INFO_3W* LPDRIVER_INFO_3W;                                         <
  563                                                                                   <
  564  // #ifdef UNICODE                                                                <
  565  alias DRIVER_INFO_3W DRIVER_INFO_3;                                              <
  566  alias PDRIVER_INFO_3W PDRIVER_INFO_3;                                            <
  567  alias LPDRIVER_INFO_3W LPDRIVER_INFO_3;                                          <
  568  // #else                                                                         <
  569  // ...                                                                           <
  570  // #endif // UNICODE                                                             <
  571                                                                                   <
  572  struct _DRIVER_INFO_4A {                                                         <
  573    DWORD cVersion;                                                                <
  574    LPSTR pName;                                                                   <
  575    LPSTR pEnvironment;                                                            <
  576    LPSTR pDriverPath;                                                             <
  577    LPSTR pDataFile;                                                               <
  578    LPSTR pConfigFile;                                                             <
  579    LPSTR pHelpFile;                                                               <
  580    LPSTR pDependentFiles;                                                         <
  581    LPSTR pMonitorName;                                                            <
  582    LPSTR pDefaultDataType;                                                        <
  583    LPSTR pszzPreviousNames;                                                       <
  584  }                                                                                <
  585  alias _DRIVER_INFO_4A DRIVER_INFO_4A;                                            <
  586  alias _DRIVER_INFO_4A* PDRIVER_INFO_4A;                                          <
  587  alias _DRIVER_INFO_4A* LPDRIVER_INFO_4A;                                         <
  588                                                                                   <
  589  struct _DRIVER_INFO_4W {                                                         <
  590    DWORD cVersion;                                                                <
  591    LPWSTR pName;                                                                  <
  592    LPWSTR pEnvironment;                                                           <
  593    LPWSTR pDriverPath;                                                            <
  594    LPWSTR pDataFile;                                                              <
  595    LPWSTR pConfigFile;                                                            <
  596    LPWSTR pHelpFile;                                                              <
  597    LPWSTR pDependentFiles;                                                        <
  598    LPWSTR pMonitorName;                                                           <
  599    LPWSTR pDefaultDataType;                                                       <
  600    LPWSTR pszzPreviousNames;                                                      <
  601  }                                                                                <
  602  alias _DRIVER_INFO_4W DRIVER_INFO_4W;                                            <
  603  alias _DRIVER_INFO_4W* PDRIVER_INFO_4W;                                          <
  604  alias _DRIVER_INFO_4W* LPDRIVER_INFO_4W;                                         <
  605                                                                                   <
  606  // #ifdef UNICODE                                                                <
  607  alias DRIVER_INFO_4W DRIVER_INFO_4;                                              <
  608  alias PDRIVER_INFO_4W PDRIVER_INFO_4;                                            <
  609  alias LPDRIVER_INFO_4W LPDRIVER_INFO_4;                                          <
  610  // #else                                                                         <
  611  // ...                                                                           <
  612  // #endif // UNICODE                                                             <
  613                                                                                   <
  614  struct _DRIVER_INFO_5A {                                                         <
  615    DWORD cVersion;                                                                <
  616    LPSTR pName;                                                                   <
  617    LPSTR pEnvironment;                                                            <
  618    LPSTR pDriverPath;                                                             <
  619    LPSTR pDataFile;                                                               <
  620    LPSTR pConfigFile;                                                             <
  621    DWORD dwDriverAttributes;                                                      <
  622    DWORD dwConfigVersion;                                                         <
  623    DWORD dwDriverVersion;                                                         <
  624  }                                                                                <
  625  alias _DRIVER_INFO_5A DRIVER_INFO_5A;                                            <
  626  alias _DRIVER_INFO_5A* PDRIVER_INFO_5A;                                          <
  627  alias _DRIVER_INFO_5A* LPDRIVER_INFO_5A;                                         <
  628                                                                                   <
  629  struct _DRIVER_INFO_5W {                                                         <
  630    DWORD cVersion;                                                                <
  631    LPWSTR pName;                                                                  <
  632    LPWSTR pEnvironment;                                                           <
  633    LPWSTR pDriverPath;                                                            <
  634    LPWSTR pDataFile;                                                              <
  635    LPWSTR pConfigFile;                                                            <
  636    DWORD dwDriverAttributes;                                                      <
  637    DWORD dwConfigVersion;                                                         <
  638    DWORD dwDriverVersion;                                                         <
  639  }                                                                                <
  640  alias _DRIVER_INFO_5W DRIVER_INFO_5W;                                            <
  641  alias _DRIVER_INFO_5W* PDRIVER_INFO_5W;                                          <
  642  alias _DRIVER_INFO_5W* LPDRIVER_INFO_5W;                                         <
  643                                                                                   <
  644  // #ifdef UNICODE                                                                <
  645  alias DRIVER_INFO_5W DRIVER_INFO_5;                                              <
  646  alias PDRIVER_INFO_5W PDRIVER_INFO_5;                                            <
  647  alias LPDRIVER_INFO_5W LPDRIVER_INFO_5;                                          <
  648  // #else                                                                         <
  649  // ...                                                                           <
  650  // #endif // UNICODE                                                             <
  651                                                                                   <
  652  struct _DRIVER_INFO_6A {                                                         <
  653    DWORD cVersion;                                                                <
  654    LPSTR pName;                                                                   <
  655    LPSTR pEnvironment;                                                            <
  656    LPSTR pDriverPath;                                                             <
  657    LPSTR pDataFile;                                                               <
  658    LPSTR pConfigFile;                                                             <
  659    LPSTR pHelpFile;                                                               <
  660    LPSTR pDependentFiles;                                                         <
  661    LPSTR pMonitorName;                                                            <
  662    LPSTR pDefaultDataType;                                                        <
  663    LPSTR pszzPreviousNames;                                                       <
  664    FILETIME ftDriverDate;                                                         <
  665    DWORDLONG dwlDriverVersion;                                                    <
  666    LPSTR pszMfgName;                                                              <
  667    LPSTR pszOEMUrl;                                                               <
  668    LPSTR pszHardwareID;                                                           <
  669    LPSTR pszProvider;                                                             <
  670  }                                                                                <
  671  alias _DRIVER_INFO_6A DRIVER_INFO_6A;                                            <
  672  alias _DRIVER_INFO_6A* PDRIVER_INFO_6A;                                          <
  673  alias _DRIVER_INFO_6A* LPDRIVER_INFO_6A;                                         <
  674                                                                                   <
  675  struct _DRIVER_INFO_6W {                                                         <
  676    DWORD cVersion;                                                                <
  677    LPWSTR pName;                                                                  <
  678    LPWSTR pEnvironment;                                                           <
  679    LPWSTR pDriverPath;                                                            <
  680    LPWSTR pDataFile;                                                              <
  681    LPWSTR pConfigFile;                                                            <
  682    LPWSTR pHelpFile;                                                              <
  683    LPWSTR pDependentFiles;                                                        <
  684    LPWSTR pMonitorName;                                                           <
  685    LPWSTR pDefaultDataType;                                                       <
  686    LPWSTR pszzPreviousNames;                                                      <
  687    FILETIME ftDriverDate;                                                         <
  688    DWORDLONG dwlDriverVersion;                                                    <
  689    LPWSTR pszMfgName;                                                             <
  690    LPWSTR pszOEMUrl;                                                              <
  691    LPWSTR pszHardwareID;                                                          <
  692    LPWSTR pszProvider;                                                            <
  693  }                                                                                <
  694  alias _DRIVER_INFO_6W DRIVER_INFO_6W;                                            <
  695  alias _DRIVER_INFO_6W* PDRIVER_INFO_6W;                                          <
  696  alias _DRIVER_INFO_6W* LPDRIVER_INFO_6W;                                         <
  697                                                                                   <
  698  // #ifdef UNICODE                                                                <
  699  alias DRIVER_INFO_6W DRIVER_INFO_6;                                              <
  700  alias PDRIVER_INFO_6W PDRIVER_INFO_6;                                            <
  701  alias LPDRIVER_INFO_6W LPDRIVER_INFO_6;                                          <
  702  // #else                                                                         <
  703  // ...                                                                           <
  704  // #endif // UNICODE                                                             <
  705                                                                                   <
  706  enum : uint { DRIVER_KERNELMODE = 0x00000001 }                                   <
  707  enum : uint { DRIVER_USERMODE = 0x00000002 }                                     <
  708                                                                                   <
  709  enum : uint { DPD_DELETE_UNUSED_FILES = 0x00000001 }                             <
  710  enum : uint { DPD_DELETE_SPECIFIC_VERSION = 0x00000002 }                         <
  711  enum : uint { DPD_DELETE_ALL_FILES = 0x00000004 }                                <
  712                                                                                   <
  713  enum : uint { APD_STRICT_UPGRADE = 0x00000001 }                                  <
  714  enum : uint { APD_STRICT_DOWNGRADE = 0x00000002 }                                <
  715  enum : uint { APD_COPY_ALL_FILES = 0x00000004 }                                  <
  716  enum : uint { APD_COPY_NEW_FILES = 0x00000008 }                                  <
  717  enum : uint { APD_COPY_FROM_DIRECTORY = 0x00000010 }                             <
  718                                                                                   <
  719  struct _DOC_INFO_1A {                                                            <
  720    LPSTR pDocName;                                                                <
  721    LPSTR pOutputFile;                                                             <
  722    LPSTR pDatatype;                                                               <
  723  }                                                                                <
  724  alias _DOC_INFO_1A DOC_INFO_1A;                                                  <
  725  alias _DOC_INFO_1A* PDOC_INFO_1A;                                                <
  726  alias _DOC_INFO_1A* LPDOC_INFO_1A;                                               <
  727                                                                                   <
  728  struct _DOC_INFO_1W {                                                            <
  729    LPWSTR pDocName;                                                               <
  730    LPWSTR pOutputFile;                                                            <
  731    LPWSTR pDatatype;                                                              <
  732  }                                                                                <
  733  alias _DOC_INFO_1W DOC_INFO_1W;                                                  <
  734  alias _DOC_INFO_1W* PDOC_INFO_1W;                                                <
  735  alias _DOC_INFO_1W* LPDOC_INFO_1W;                                               <
  736                                                                                   <
  737  // #ifdef UNICODE                                                                <
  738  alias DOC_INFO_1W DOC_INFO_1;                                                        806  alias DOC_INFO_1W DOC_INFO_1;
  739  alias PDOC_INFO_1W PDOC_INFO_1;                                                  |   807  alias DOC_INFO_2W DOC_INFO_2;
  740  alias LPDOC_INFO_1W LPDOC_INFO_1;                                                |   808  alias PORT_INFO_1W PORT_INFO_1;
  741  // #else                                                                         |   809  alias PORT_INFO_2W PORT_INFO_2;
  742  // ...                                                                           |   810  alias PORT_INFO_3W PORT_INFO_3;
  743  // #endif // UNICODE                                                             |   811  alias DRIVER_INFO_2W DRIVER_INFO_2;
  744                                                                                   <
                                                                                        >   812  alias PRINTER_INFO_1W PRINTER_INFO_1;
  745  struct _FORM_INFO_1A {                                                           |   813  alias PRINTER_INFO_2W PRINTER_INFO_2;
  746    DWORD Flags;                                                                   |   814  alias PRINTER_INFO_4W PRINTER_INFO_4;
  747    LPSTR pName;                                                                   |   815  alias PRINTER_INFO_5W PRINTER_INFO_5;
  748    SIZEL Size;                                                                    |   816  alias PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1;
  749    RECTL ImageableArea;                                                           <
  750  }                                                                                <
  751  alias _FORM_INFO_1A FORM_INFO_1A;                                                |   817  alias FORM_INFO_1W FORM_INFO_1;
  752  alias _FORM_INFO_1A* PFORM_INFO_1A;                                              <
  753  alias _FORM_INFO_1A* LPFORM_INFO_1A;                                             <
                                                                                        >   818  alias PRINTER_DEFAULTSW PRINTER_DEFAULTS;
  754                                                                                       819  
  755  struct _FORM_INFO_1W {                                                           |   820  alias AddFormW AddForm;
  756    DWORD Flags;                                                                   |   821  alias AddJobW AddJob;
  757    LPWSTR pName;                                                                  |   822  alias AddMonitorW AddMonitor;
  758    SIZEL Size;                                                                    |   823  alias AddPortW AddPort;
  759    RECTL ImageableArea;                                                           |   824  alias AddPrinterW AddPrinter;
  760  }                                                                                <
                                                                                        >   825  alias AddPrinterConnectionW AddPrinterConnection;
  761  alias _FORM_INFO_1W FORM_INFO_1W;                                                |   826  alias AddPrinterDriverW AddPrinterDriver;
  762  alias _FORM_INFO_1W* PFORM_INFO_1W;                                              |   827  alias AddPrintProcessorW AddPrintProcessor;
  763  alias _FORM_INFO_1W* LPFORM_INFO_1W;                                             |   828  alias AddPrintProvidorW AddPrintProvidor;
  764                                                                                   <
                                                                                        >   829  alias AdvancedDocumentPropertiesW AdvancedDocumentProperties;
  765  // #ifdef UNICODE                                                                |   830  alias ConfigurePortW ConfigurePort;
  766  alias FORM_INFO_1W FORM_INFO_1;                                                  |   831  alias DeleteFormW DeleteForm;
  767  alias PFORM_INFO_1W PFORM_INFO_1;                                                |   832  alias DeleteMonitorW DeleteMonitor;
  768  alias LPFORM_INFO_1W LPFORM_INFO_1;                                              |   833  alias DeletePortW DeletePort;
  769  // #else                                                                         |   834  alias DeletePrinterConnectionW DeletePrinterConnection;
  770  // ...                                                                           |   835  alias DeletePrinterDataW DeletePrinterData;
  771  // #endif // UNICODE                                                             |   836  alias DeletePrinterDriverW DeletePrinterDriver;
                                                                                        >   837  alias DeletePrintProcessorW DeletePrintProcessor;
                                                                                        >   838  alias DeletePrintProvidorW DeletePrintProvidor;
                                                                                        >   839  alias DocumentPropertiesW DocumentProperties;
                                                                                        >   840  alias EnumFormsW EnumForms;
                                                                                        >   841  alias EnumJobsW EnumJobs;
                                                                                        >   842  alias EnumMonitorsW EnumMonitors;
                                                                                        >   843  alias EnumPortsW EnumPorts;
                                                                                        >   844  alias EnumPrinterDataW EnumPrinterData;
                                                                                        >   845  alias EnumPrinterDriversW EnumPrinterDrivers;
                                                                                        >   846  alias EnumPrintersW EnumPrinters;
                                                                                        >   847  alias EnumPrintProcessorDatatypesW EnumPrintProcessorDatatypes;
                                                                                        >   848  alias EnumPrintProcessorsW EnumPrintProcessors;
  772                                                                                       849  
  773  struct _DOC_INFO_2A {                                                            |   850  static if (_WIN32_WINNT >= 0x0500) {
  774    LPSTR pDocName;                                                                |   851  alias GetDefaultPrinterW GetDefaultPrinter;
  775    LPSTR pOutputFile;                                                             <
  776    LPSTR pDatatype;                                                               <
  777    DWORD dwMode;                                                                  <
  778    DWORD JobId;                                                                   <
  779  }                                                                                <
  780  alias _DOC_INFO_2A DOC_INFO_2A;                                                  <
  781  alias _DOC_INFO_2A* PDOC_INFO_2A;                                                <
  782  alias _DOC_INFO_2A* LPDOC_INFO_2A;                                               <
  783                                                                                   <
  784  struct _DOC_INFO_2W {                                                            <
  785    LPWSTR pDocName;                                                               <
  786    LPWSTR pOutputFile;                                                            <
  787    LPWSTR pDatatype;                                                              <
  788    DWORD dwMode;                                                                  <
  789    DWORD JobId;                                                                   <
  790  }                                                                                    852  }
  791  alias _DOC_INFO_2W DOC_INFO_2W;                                                  <
  792  alias _DOC_INFO_2W* PDOC_INFO_2W;                                                <
  793  alias _DOC_INFO_2W* LPDOC_INFO_2W;                                               <
  794                                                                                       853  
  795  // #ifdef UNICODE                                                                |   854  alias GetFormW GetForm;
  796  alias DOC_INFO_2W DOC_INFO_2;                                                    |   855  alias GetJobW GetJob;
  797  alias PDOC_INFO_2W PDOC_INFO_2;                                                  |   856  alias GetPrinterW GetPrinter;
  798  alias LPDOC_INFO_2W LPDOC_INFO_2;                                                |   857  alias GetPrinterDataW GetPrinterData;
  799  // #else                                                                         |   858  alias GetPrinterDriverW GetPrinterDriver;
  800  // ...                                                                           |   859  alias GetPrinterDriverDirectoryW GetPrinterDriverDirectory;
  801  // #endif // UNICODE                                                             |   860  alias GetPrintProcessorDirectoryW GetPrintProcessorDirectory;
                                                                                        >   861  alias OpenPrinterW OpenPrinter;
                                                                                        >   862  alias PrinterMessageBoxW PrinterMessageBox;
                                                                                        >   863  alias ResetPrinterW ResetPrinter;
                                                                                        >   864  alias SetFormW SetForm;
                                                                                        >   865  alias SetJobW SetJob;
                                                                                        >   866  alias SetPrinterW SetPrinter;
                                                                                        >   867  alias SetPrinterDataW SetPrinterData;
                                                                                        >   868  alias StartDocPrinterW StartDocPrinter;
  802                                                                                       869  
  803  enum : uint { DI_CHANNEL = 1 }                                                   |   870  } else {
  804                                                                                       871  
  805  enum : uint { DI_READ_SPOOL_JOB = 3 }                                            |   872  alias JOB_INFO_1A JOB_INFO_1;
  806                                                                                   <
                                                                                        >   873  alias JOB_INFO_2A JOB_INFO_2;
  807  struct _DOC_INFO_3A {                                                            |   874  alias ADDJOB_INFO_1A ADDJOB_INFO_1;
  808    LPSTR pDocName;                                                                |   875  alias DATATYPES_INFO_1A DATATYPES_INFO_1;
  809    LPSTR pOutputFile;                                                             |   876  alias MONITOR_INFO_1A MONITOR_INFO_1;
  810    LPSTR pDatatype;                                                               |   877  alias MONITOR_INFO_2A MONITOR_INFO_2;
  811    DWORD dwFlags;                                                                 |   878  alias DOC_INFO_1A DOC_INFO_1;
  812  }                                                                                <
  813  alias _DOC_INFO_3A DOC_INFO_3A;                                                  |   879  alias DOC_INFO_2A DOC_INFO_2;
                                                                                        >   880  alias PORT_INFO_1A PORT_INFO_1;
  814  alias _DOC_INFO_3A* PDOC_INFO_3A;                                                |   881  alias PORT_INFO_2A PORT_INFO_2;
  815  alias _DOC_INFO_3A* LPDOC_INFO_3A;                                               |   882  alias PORT_INFO_3A PORT_INFO_3;
                                                                                        >   883  alias DRIVER_INFO_2A DRIVER_INFO_2;
                                                                                        >   884  alias PRINTER_INFO_1A PRINTER_INFO_1;
                                                                                        >   885  alias PRINTER_INFO_2A PRINTER_INFO_2;
                                                                                        >   886  alias PRINTER_INFO_4A PRINTER_INFO_4;
                                                                                        >   887  alias PRINTER_INFO_5A PRINTER_INFO_5;
                                                                                        >   888  alias PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1;
                                                                                        >   889  alias FORM_INFO_1A FORM_INFO_1;
                                                                                        >   890  alias PRINTER_DEFAULTSA PRINTER_DEFAULTS;
  816                                                                                       891  
  817  struct _DOC_INFO_3W {                                                            |   892  alias AddFormA AddForm;
  818    LPWSTR pDocName;                                                               |   893  alias AddJobA AddJob;
  819    LPWSTR pOutputFile;                                                            |   894  alias AddMonitorA AddMonitor;
  820    LPWSTR pDatatype;                                                              |   895  alias AddPortA AddPort;
  821    DWORD dwFlags;                                                                 |   896  alias AddPrinterA AddPrinter;
  822  }                                                                                <
                                                                                        >   897  alias AddPrinterConnectionA AddPrinterConnection;
  823  alias _DOC_INFO_3W DOC_INFO_3W;                                                  |   898  alias AddPrinterDriverA AddPrinterDriver;
  824  alias _DOC_INFO_3W* PDOC_INFO_3W;                                                |   899  alias AddPrintProcessorA AddPrintProcessor;
  825  alias _DOC_INFO_3W* LPDOC_INFO_3W;                                               |   900  alias AddPrintProvidorA AddPrintProvidor;
  826                                                                                   <
                                                                                        >   901  alias AdvancedDocumentPropertiesA AdvancedDocumentProperties;
  827  // #ifdef UNICODE                                                                |   902  alias ConfigurePortA ConfigurePort;
  828  alias DOC_INFO_3W DOC_INFO_3;                                                    |   903  alias DeleteFormA DeleteForm;
  829  alias PDOC_INFO_3W PDOC_INFO_3;                                                  |   904  alias DeleteMonitorA DeleteMonitor;
  830  alias LPDOC_INFO_3W LPDOC_INFO_3;                                                |   905  alias DeletePortA DeletePort;
  831  // #else                                                                         |   906  alias DeletePrinterConnectionA DeletePrinterConnection;
  832  // ...                                                                           |   907  alias DeletePrinterDataA DeletePrinterData;
  833  // #endif // UNICODE                                                             |   908  alias DeletePrinterDriverA DeletePrinterDriver;
                                                                                        >   909  alias DeletePrintProcessorA DeletePrintProcessor;
                                                                                        >   910  alias DeletePrintProvidorA DeletePrintProvidor;
                                                                                        >   911  alias DocumentPropertiesA DocumentProperties;
                                                                                        >   912  alias EnumFormsA EnumForms;
                                                                                        >   913  alias EnumJobsA EnumJobs;
                                                                                        >   914  alias EnumMonitorsA EnumMonitors;
                                                                                        >   915  alias EnumPortsA EnumPorts;
                                                                                        >   916  alias EnumPrinterDataA EnumPrinterData;
                                                                                        >   917  alias EnumPrinterDriversA EnumPrinterDrivers;
                                                                                        >   918  alias EnumPrintersA EnumPrinters;
                                                                                        >   919  alias EnumPrintProcessorDatatypesA EnumPrintProcessorDatatypes;
                                                                                        >   920  alias EnumPrintProcessorsA EnumPrintProcessors;
  834                                                                                       921  
  835  enum : uint { DI_MEMORYMAP_WRITE = 0x00000001 }                                  |   922  static if (_WIN32_WINNT >= 0x0500) {
  836                                                                                   <
  837  enum : uint { FORM_USER = 0x00000000 }                                           <
  838  enum : uint { FORM_BUILTIN = 0x00000001 }                                        <
  839  enum : uint { FORM_PRINTER = 0x00000002 }                                        <
  840                                                                                   <
  841  struct _PRINTPROCESSOR_INFO_1A {                                                 <
  842    LPSTR pName;                                                                   <
  843  }                                                                                <
  844  alias _PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1A;                            <
  845  alias _PRINTPROCESSOR_INFO_1A* PPRINTPROCESSOR_INFO_1A;                          <
  846  alias _PRINTPROCESSOR_INFO_1A* LPPRINTPROCESSOR_INFO_1A;                         <
  847                                                                                   <
  848  struct _PRINTPROCESSOR_INFO_1W {                                                 <
  849    LPWSTR pName;                                                                  <
                                                                                        >   923  alias GetDefaultPrinterA GetDefaultPrinter;
  850  }                                                                                    924  }
  851  alias _PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1W;                            <
  852  alias _PRINTPROCESSOR_INFO_1W* PPRINTPROCESSOR_INFO_1W;                          <
  853  alias _PRINTPROCESSOR_INFO_1W* LPPRINTPROCESSOR_INFO_1W;                         <
  854                                                                                       925  
  855  // #ifdef UNICODE                                                                |   926  alias GetFormA GetForm;
  856  alias PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1;                              |   927  alias GetJobA GetJob;
  857  alias PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1;                            |   928  alias GetPrinterA GetPrinter;
  858  alias LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1;                          |   929  alias GetPrinterDataA GetPrinterData;
  859  // #else                                                                         |   930  alias GetPrinterDriverA GetPrinterDriver;
  860  // ...                                                                           |   931  alias GetPrinterDriverDirectoryA GetPrinterDriverDirectory;
  861  // #endif // UNICODE                                                             |   932  alias GetPrintProcessorDirectoryA GetPrintProcessorDirectory;
  862                                                                                   <
                                                                                        >   933  alias OpenPrinterA OpenPrinter;
  863  struct _PRINTPROCESSOR_CAPS_1 {                                                  |   934  alias PrinterMessageBoxA PrinterMessageBox;
  864    DWORD dwLevel;                                                                 |   935  alias ResetPrinterA ResetPrinter;
  865    DWORD dwNupOptions;                                                            |   936  alias SetFormA SetForm;
  866    DWORD dwPageOrderFlags;                                                        |   937  alias SetJobA SetJob;
  867    DWORD dwNumberOfCopies;                                                        |   938  alias SetPrinterA SetPrinter;
  868  }                                                                                <
                                                                                        >   939  alias SetPrinterDataA SetPrinterData;
  869  alias _PRINTPROCESSOR_CAPS_1 PRINTPROCESSOR_CAPS_1;                              |   940  alias StartDocPrinterA StartDocPrinter;
  870  alias _PRINTPROCESSOR_CAPS_1* PPRINTPROCESSOR_CAPS_1;                            <
  871                                                                                   |   941  }
  872  enum : uint { NORMAL_PRINT = 0x00000000 }                                        <
  873  enum : uint { REVERSE_PRINT = 0x00000001 }                                       <
  874                                                                                   <
  875  struct _PORT_INFO_1A {                                                           <
  876    LPSTR pName;                                                                   <
  877  }                                                                                <
  878  alias _PORT_INFO_1A PORT_INFO_1A;                                                <
  879  alias _PORT_INFO_1A* PPORT_INFO_1A;                                              <
  880  alias _PORT_INFO_1A* LPPORT_INFO_1A;                                             <
  881                                                                                   <
  882  struct _PORT_INFO_1W {                                                           <
  883    LPWSTR pName;                                                                  <
  884  }                                                                                <
  885  alias _PORT_INFO_1W PORT_INFO_1W;                                                <
  886  alias _PORT_INFO_1W* PPORT_INFO_1W;                                              <
  887  alias _PORT_INFO_1W* LPPORT_INFO_1W;                                             <
  888                                                                                   <
  889  // #ifdef UNICODE                                                                <
  890  alias PORT_INFO_1W PORT_INFO_1;                                                  <
  891  alias PPORT_INFO_1W PPORT_INFO_1;                                                <
  892  alias LPPORT_INFO_1W LPPORT_INFO_1;                                              <
  893  // #else                                                                         <
  894  // ...                                                                           <
  895  // #endif // UNICODE                                                             <
  896                                                                                   <
  897  struct _PORT_INFO_2A {                                                           <
  898    LPSTR pPortName;                                                               <
  899    LPSTR pMonitorName;                                                            <
  900    LPSTR pDescription;                                                            <
  901    DWORD fPortType;                                                               <
  902    DWORD Reserved;                                                                <
  903  }                                                                                <
  904  alias _PORT_INFO_2A PORT_INFO_2A;                                                <
  905  alias _PORT_INFO_2A* PPORT_INFO_2A;                                              <
  906  alias _PORT_INFO_2A* LPPORT_INFO_2A;                                             <
  907                                                                                   <
  908  struct _PORT_INFO_2W {                                                           <
  909    LPWSTR pPortName;                                                              <
  910    LPWSTR pMonitorName;                                                           <
  911    LPWSTR pDescription;                                                           <
  912    DWORD fPortType;                                                               <
  913    DWORD Reserved;                                                                <
  914  }                                                                                <
  915  alias _PORT_INFO_2W PORT_INFO_2W;                                                <
  916  alias _PORT_INFO_2W* PPORT_INFO_2W;                                              <
  917  alias _PORT_INFO_2W* LPPORT_INFO_2W;                                             <
  918                                                                                   <
  919  // #ifdef UNICODE                                                                <
  920  alias PORT_INFO_2W PORT_INFO_2;                                                  <
  921  alias PPORT_INFO_2W PPORT_INFO_2;                                                <
  922  alias LPPORT_INFO_2W LPPORT_INFO_2;                                              <
  923  // #else                                                                         <
  924  // ...                                                                           <
  925  // #endif // UNICODE                                                             <
  926                                                                                   <
  927  enum : uint { PORT_TYPE_WRITE = 0x0001 }                                         <
  928  enum : uint { PORT_TYPE_READ = 0x0002 }                                          <
  929  enum : uint { PORT_TYPE_REDIRECTED = 0x0004 }                                    <
  930  enum : uint { PORT_TYPE_NET_ATTACHED = 0x0008 }                                  <
  931                                                                                   <
  932  struct _PORT_INFO_3A {                                                           <
  933    DWORD dwStatus;                                                                <
  934    LPSTR pszStatus;                                                               <
  935    DWORD dwSeverity;                                                              <
  936  }                                                                                <
  937  alias _PORT_INFO_3A PORT_INFO_3A;                                                <
  938  alias _PORT_INFO_3A* PPORT_INFO_3A;                                              <
  939  alias _PORT_INFO_3A* LPPORT_INFO_3A;                                             <
  940                                                                                   <
  941  struct _PORT_INFO_3W {                                                           <
  942    DWORD dwStatus;                                                                <
  943    LPWSTR pszStatus;                                                              <
  944    DWORD dwSeverity;                                                              <
  945  }                                                                                <
  946  alias _PORT_INFO_3W PORT_INFO_3W;                                                <
  947  alias _PORT_INFO_3W* PPORT_INFO_3W;                                              <
  948  alias _PORT_INFO_3W* LPPORT_INFO_3W;                                             <
  949                                                                                   <
  950  // #ifdef UNICODE                                                                <
  951  alias PORT_INFO_3W PORT_INFO_3;                                                  <
  952  alias PPORT_INFO_3W PPORT_INFO_3;                                                <
  953  alias LPPORT_INFO_3W LPPORT_INFO_3;                                              <
  954  // #else                                                                         <
  955  // ...                                                                           <
  956  // #endif // UNICODE                                                             <
  957                                                                                       942  
  958  enum : uint { PORT_STATUS_TYPE_ERROR = 1 }                                       |   943  alias JOB_INFO_1* PJOB_INFO_1, LPJOB_INFO_1;
  959  enum : uint { PORT_STATUS_TYPE_WARNING = 2 }                                     |   944  alias JOB_INFO_2* PJOB_INFO_2, LPJOB_INFO_2;
  960  enum : uint { PORT_STATUS_TYPE_INFO = 3 }                                        |   945  alias ADDJOB_INFO_1* PADDJOB_INFO_1, LPADDJOB_INFO_1;
  961                                                                                   <
                                                                                        >   946  alias DATATYPES_INFO_1* PDATATYPES_INFO_1, LPDATATYPES_INFO_1;
  962  enum : uint { PORT_STATUS_OFFLINE = 1 }                                          |   947  alias MONITOR_INFO_1* PMONITOR_INFO_1, LPMONITOR_INFO_1;
  963  enum : uint { PORT_STATUS_PAPER_JAM = 2 }                                        |   948  alias MONITOR_INFO_2* PMONITOR_INFO_2, LPMONITOR_INFO_2;
  964  enum : uint { PORT_STATUS_PAPER_OUT = 3 }                                        |   949  alias DOC_INFO_1* PDOC_INFO_1, LPDOC_INFO_1;
  965  enum : uint { PORT_STATUS_OUTPUT_BIN_FULL = 4 }                                  |   950  alias DOC_INFO_2* PDOC_INFO_2, LPDOC_INFO_2;
  966  enum : uint { PORT_STATUS_PAPER_PROBLEM = 5 }                                    |   951  alias PORT_INFO_1* PPORT_INFO_1, LPPORT_INFO_1;
  967  enum : uint { PORT_STATUS_NO_TONER = 6 }                                         |   952  alias PORT_INFO_2* PPORT_INFO_2, LPPORT_INFO_2;
  968  enum : uint { PORT_STATUS_DOOR_OPEN = 7 }                                        |   953  alias PORT_INFO_3* PPORT_INFO_3, LPPORT_INFO_3;
  969  enum : uint { PORT_STATUS_USER_INTERVENTION = 8 }                                |   954  alias DRIVER_INFO_2* PDRIVER_INFO_2, LPDRIVER_INFO_2;
  970  enum : uint { PORT_STATUS_OUT_OF_MEMORY = 9 }                                    |   955  alias PRINTER_INFO_1* PPRINTER_INFO_1, LPPRINTER_INFO_1;
  971                                                                                   <
                                                                                        >   956  alias PRINTER_INFO_2* PPRINTER_INFO_2, LPPRINTER_INFO_2;
  972  enum : uint { PORT_STATUS_TONER_LOW = 10 }                                       |   957  alias PRINTER_INFO_4* PPRINTER_INFO_4, LPPRINTER_INFO_4;
  973                                                                                   <
                                                                                        >   958  alias PRINTER_INFO_5* PPRINTER_INFO_5, LPPRINTER_INFO_5;
  974  enum : uint { PORT_STATUS_WARMING_UP = 11 }                                      |   959  alias PRINTPROCESSOR_INFO_1* PPRINTPROCESSOR_INFO_1, LPPRINTPROCESSOR_INFO_1;
  975  enum : uint { PORT_STATUS_POWER_SAVE = 12 }                                      |   960  alias FORM_INFO_1* PFORM_INFO_1, LPFORM_INFO_1;
  976                                                                                   <
  977  struct _MONITOR_INFO_1A {                                                        <
  978    LPSTR pName;                                                                   <
  979  }                                                                                <
  980  alias _MONITOR_INFO_1A MONITOR_INFO_1A;                                          <
  981  alias _MONITOR_INFO_1A* PMONITOR_INFO_1A;                                        <
  982  alias _MONITOR_INFO_1A* LPMONITOR_INFO_1A;                                       <
  983                                                                                   <
  984  struct _MONITOR_INFO_1W {                                                        <
  985    LPWSTR pName;                                                                  <
  986  }                                                                                <
  987  alias _MONITOR_INFO_1W MONITOR_INFO_1W;                                          <
  988  alias _MONITOR_INFO_1W* PMONITOR_INFO_1W;                                        <
  989  alias _MONITOR_INFO_1W* LPMONITOR_INFO_1W;                                       <
  990                                                                                   <
  991  // #ifdef UNICODE                                                                <
  992  alias MONITOR_INFO_1W MONITOR_INFO_1;                                            <
  993  alias PMONITOR_INFO_1W PMONITOR_INFO_1;                                          <
  994  alias LPMONITOR_INFO_1W LPMONITOR_INFO_1;                                        <
  995  // #else                                                                         <
  996  // ...                                                                           <
  997  // #endif // UNICODE                                                             <
  998                                                                                   <
  999  struct _MONITOR_INFO_2A {                                                        <
 1000    LPSTR pName;                                                                   <
 1001    LPSTR pEnvironment;                                                            <
 1002    LPSTR pDLLName;                                                                <
 1003  }                                                                                <
 1004  alias _MONITOR_INFO_2A MONITOR_INFO_2A;                                          <
 1005  alias _MONITOR_INFO_2A* PMONITOR_INFO_2A;                                        <
 1006  alias _MONITOR_INFO_2A* LPMONITOR_INFO_2A;                                       <
 1007                                                                                   <
 1008  struct _MONITOR_INFO_2W {                                                        <
 1009    LPWSTR pName;                                                                  <
 1010    LPWSTR pEnvironment;                                                           <
 1011    LPWSTR pDLLName;                                                               <
 1012  }                                                                                <
 1013  alias _MONITOR_INFO_2W MONITOR_INFO_2W;                                          <
 1014  alias _MONITOR_INFO_2W* PMONITOR_INFO_2W;                                        <
 1015  alias _MONITOR_INFO_2W* LPMONITOR_INFO_2W;                                       <
 1016                                                                                   <
 1017  // #ifdef UNICODE                                                                <
 1018  alias MONITOR_INFO_2W MONITOR_INFO_2;                                            <
 1019  alias PMONITOR_INFO_2W PMONITOR_INFO_2;                                          <
 1020  alias LPMONITOR_INFO_2W LPMONITOR_INFO_2;                                        <
 1021  // #else                                                                         <
 1022  // ...                                                                           <
 1023  // #endif // UNICODE                                                             <
 1024                                                                                   <
 1025  struct _DATATYPES_INFO_1A {                                                      <
 1026    LPSTR pName;                                                                   <
 1027  }                                                                                <
 1028  alias _DATATYPES_INFO_1A DATATYPES_INFO_1A;                                      <
 1029  alias _DATATYPES_INFO_1A* PDATATYPES_INFO_1A;                                    <
 1030  alias _DATATYPES_INFO_1A* LPDATATYPES_INFO_1A;                                   <
 1031                                                                                   <
 1032  struct _DATATYPES_INFO_1W {                                                      <
 1033    LPWSTR pName;                                                                  <
 1034  }                                                                                <
 1035  alias _DATATYPES_INFO_1W DATATYPES_INFO_1W;                                      <
 1036  alias _DATATYPES_INFO_1W* PDATATYPES_INFO_1W;                                    <
 1037  alias _DATATYPES_INFO_1W* LPDATATYPES_INFO_1W;                                   <
 1038                                                                                   <
 1039  // #ifdef UNICODE                                                                <
 1040  alias DATATYPES_INFO_1W DATATYPES_INFO_1;                                        <
 1041  alias PDATATYPES_INFO_1W PDATATYPES_INFO_1;                                      <
 1042  alias LPDATATYPES_INFO_1W LPDATATYPES_INFO_1;                                    <
 1043  // #else                                                                         <
 1044  // ...                                                                           <
 1045  // #endif // UNICODE                                                             <
 1046                                                                                   <
 1047  struct _PRINTER_DEFAULTSA {                                                      <
 1048    LPSTR pDatatype;                                                               <
 1049    LPDEVMODEA pDevMode;                                                           <
 1050    ACCESS_MASK DesiredAccess;                                                     <
 1051  }                                                                                <
 1052  alias _PRINTER_DEFAULTSA PRINTER_DEFAULTSA;                                      <
 1053  alias _PRINTER_DEFAULTSA* PPRINTER_DEFAULTSA;                                    <
 1054  alias _PRINTER_DEFAULTSA* LPPRINTER_DEFAULTSA;                                   <
 1055                                                                                   <
 1056  struct _PRINTER_DEFAULTSW {                                                      <
 1057    LPWSTR pDatatype;                                                              <
 1058    LPDEVMODEW pDevMode;                                                           <
 1059    ACCESS_MASK DesiredAccess;                                                     <
 1060  }                                                                                <
 1061  alias _PRINTER_DEFAULTSW PRINTER_DEFAULTSW;                                      <
 1062  alias _PRINTER_DEFAULTSW* PPRINTER_DEFAULTSW;                                    <
 1063  alias _PRINTER_DEFAULTSW* LPPRINTER_DEFAULTSW;                                   <
 1064                                                                                   <
 1065  // #ifdef UNICODE                                                                <
 1066  alias PRINTER_DEFAULTSW PRINTER_DEFAULTS;                                        |   961  alias PRINTER_DEFAULTS* PPRINTER_DEFAULTS, LPPRINTER_DEFAULTS;
 1067  alias PPRINTER_DEFAULTSW PPRINTER_DEFAULTS;                                      <
 1068  alias LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS;                                    <
 1069  // #else                                                                         <
 1070  // ...                                                                           <
 1071  // #endif // UNICODE                                                             <
 1072                                                                                   <
 1073  struct _PRINTER_ENUM_VALUESA {                                                   <
 1074    LPSTR pValueName;                                                              <
 1075    DWORD cbValueName;                                                             <
 1076    DWORD dwType;                                                                  <
 1077    LPBYTE pData;                                                                  <
 1078    DWORD cbData;                                                                  <
 1079  }                                                                                <
 1080  alias _PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUESA;                                <
 1081  alias _PRINTER_ENUM_VALUESA* PPRINTER_ENUM_VALUESA;                              <
 1082  alias _PRINTER_ENUM_VALUESA* LPPRINTER_ENUM_VALUESA;                             <
 1083                                                                                   <
 1084  struct _PRINTER_ENUM_VALUESW {                                                   <
 1085    LPWSTR pValueName;                                                             <
 1086    DWORD cbValueName;                                                             <
 1087    DWORD dwType;                                                                  <
 1088    LPBYTE pData;                                                                  <
 1089    DWORD cbData;                                                                  <
 1090  }                                                                                <
 1091  alias _PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUESW;                                <
 1092  alias _PRINTER_ENUM_VALUESW* PPRINTER_ENUM_VALUESW;                              <
 1093  alias _PRINTER_ENUM_VALUESW* LPPRINTER_ENUM_VALUESW;                             <
 1094                                                                                   <
 1095  // #ifdef UNICODE                                                                <
 1096  alias PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES;                                  <
 1097  alias PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES;                                <
 1098  alias LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES;                              <
 1099  // #else                                                                         <
 1100  // ...                                                                           <
 1101  // #endif // UNICODE                                                             <
 1102                                                                                   <
 1103  extern(Windows) export BOOL EnumPrintersA(                                       <
 1104       DWORD   Flags,                                                              <
 1105       LPSTR Name,                                                                 <
 1106       DWORD   Level,                                                              <
 1107       LPBYTE  pPrinterEnum,                                                       <
 1108       DWORD   cbBuf,                                                              <
 1109       LPDWORD pcbNeeded,                                                          <
 1110       LPDWORD pcReturned                                                          <
 1111  );                                                                               <
 1112  extern(Windows) export BOOL EnumPrintersW(                                       <
 1113       DWORD   Flags,                                                              <
 1114       LPWSTR Name,                                                                <
 1115       DWORD   Level,                                                              <
 1116       LPBYTE  pPrinterEnum,                                                       <
 1117       DWORD   cbBuf,                                                              <
 1118       LPDWORD pcbNeeded,                                                          <
 1119       LPDWORD pcReturned                                                          <
 1120  );                                                                               <
 1121  // #ifdef UNICODE                                                                <
 1122  alias EnumPrintersW EnumPrinters;                                                <
 1123  // #else                                                                         <
 1124  // #...                                                                          <
 1125  // #endif // !UNICODE                                                            <
 1126                                                                                   <
 1127  enum : uint { PRINTER_ENUM_DEFAULT = 0x00000001 }                                <
 1128  enum : uint { PRINTER_ENUM_LOCAL = 0x00000002 }                                  <
 1129  enum : uint { PRINTER_ENUM_CONNECTIONS = 0x00000004 }                            <
 1130  enum : uint { PRINTER_ENUM_FAVORITE = 0x00000004 }                               <
 1131  enum : uint { PRINTER_ENUM_NAME = 0x00000008 }                                   <
 1132  enum : uint { PRINTER_ENUM_REMOTE = 0x00000010 }                                 <
 1133  enum : uint { PRINTER_ENUM_SHARED = 0x00000020 }                                 <
 1134  enum : uint { PRINTER_ENUM_NETWORK = 0x00000040 }                                <
 1135                                                                                   <
 1136  enum : uint { PRINTER_ENUM_EXPAND = 0x00004000 }                                 <
 1137  enum : uint { PRINTER_ENUM_CONTAINER = 0x00008000 }                              <
 1138                                                                                   <
 1139  enum : uint { PRINTER_ENUM_ICONMASK = 0x00ff0000 }                               <
 1140  enum : uint { PRINTER_ENUM_ICON1 = 0x00010000 }                                  <
 1141  enum : uint { PRINTER_ENUM_ICON2 = 0x00020000 }                                  <
 1142  enum : uint { PRINTER_ENUM_ICON3 = 0x00040000 }                                  <
 1143  enum : uint { PRINTER_ENUM_ICON4 = 0x00080000 }                                  <
 1144  enum : uint { PRINTER_ENUM_ICON5 = 0x00100000 }                                  <
 1145  enum : uint { PRINTER_ENUM_ICON6 = 0x00200000 }                                  <
 1146  enum : uint { PRINTER_ENUM_ICON7 = 0x00400000 }                                  <
 1147  enum : uint { PRINTER_ENUM_ICON8 = 0x00800000 }                                  <
 1148  enum : uint { PRINTER_ENUM_HIDE = 0x01000000 }                                   <
 1149                                                                                   <
 1150  enum : uint { SPOOL_FILE_PERSISTENT = 0x00000001 }                               <
 1151  enum : uint { SPOOL_FILE_TEMPORARY = 0x00000002 }                                <
 1152                                                                                   <
 1153  extern(Windows) export BOOL OpenPrinterA(                                        <
 1154      LPSTR    pPrinterName,                                                       <
 1155      LPHANDLE phPrinter,                                                          <
 1156      LPPRINTER_DEFAULTSA pDefault                                                 <
 1157  );                                                                               <
 1158  extern(Windows) export BOOL OpenPrinterW(                                        <
 1159      LPWSTR    pPrinterName,                                                      <
 1160      LPHANDLE phPrinter,                                                          <
 1161      LPPRINTER_DEFAULTSW pDefault                                                 <
 1162  );                                                                               <
 1163  // #ifdef UNICODE                                                                <
 1164  alias OpenPrinterW OpenPrinter;                                                  <
 1165  // #else                                                                         <
 1166  // #...                                                                          <
 1167  // #endif // !UNICODE                                                            <
 1168                                                                                   <
 1169  extern(Windows) export BOOL ResetPrinterA(                                       <
 1170      HANDLE   hPrinter,                                                           <
 1171      LPPRINTER_DEFAULTSA pDefault                                                 <
 1172  );                                                                               <
 1173  extern(Windows) export BOOL ResetPrinterW(                                       <
 1174      HANDLE   hPrinter,                                                           <
 1175      LPPRINTER_DEFAULTSW pDefault                                                 <
 1176  );                                                                               <
 1177  // #ifdef UNICODE                                                                <
 1178  alias ResetPrinterW ResetPrinter;                                                <
 1179  // #else                                                                         <
 1180  // #...                                                                          <
 1181  // #endif // !UNICODE                                                            <
 1182                                                                                   <
 1183  extern(Windows) export BOOL SetJobA(                                             <
 1184       HANDLE  hPrinter,                                                           <
 1185       DWORD   JobId,                                                              <
 1186       DWORD   Level,                                                              <
 1187       LPBYTE  pJob,                                                               <
 1188       DWORD   Command                                                             <
 1189  );                                                                               <
 1190  extern(Windows) export BOOL SetJobW(                                             <
 1191       HANDLE  hPrinter,                                                           <
 1192       DWORD   JobId,                                                              <
 1193       DWORD   Level,                                                              <
 1194       LPBYTE  pJob,                                                               <
 1195       DWORD   Command                                                             <
 1196  );                                                                               <
 1197  // #ifdef UNICODE                                                                <
 1198  alias SetJobW SetJob;                                                            <
 1199  // #else                                                                         <
 1200  // #...                                                                          <
 1201  // #endif // !UNICODE                                                            <
 1202                                                                                   <
 1203  extern(Windows) export BOOL GetJobA(                                             <
 1204      HANDLE   hPrinter,                                                           <
 1205      DWORD    JobId,                                                              <
 1206      DWORD    Level,                                                              <
 1207      LPBYTE   pJob,                                                               <
 1208      DWORD    cbBuf,                                                              <
 1209      LPDWORD  pcbNeeded                                                           <
 1210  );                                                                               <
 1211  extern(Windows) export BOOL GetJobW(                                             <
 1212      HANDLE   hPrinter,                                                           <
 1213      DWORD    JobId,                                                              <
 1214      DWORD    Level,                                                              <
 1215      LPBYTE   pJob,                                                               <
 1216      DWORD    cbBuf,                                                              <
 1217      LPDWORD  pcbNeeded                                                           <
 1218  );                                                                               <
 1219  // #ifdef UNICODE                                                                <
 1220  alias GetJobW GetJob;                                                            <
 1221  // #else                                                                         <
 1222  // #...                                                                          <
 1223  // #endif // !UNICODE                                                            <
 1224                                                                                   <
 1225  extern(Windows) export BOOL EnumJobsA(                                           <
 1226       HANDLE  hPrinter,                                                           <
 1227       DWORD   FirstJob,                                                           <
 1228       DWORD   NoJobs,                                                             <
 1229       DWORD   Level,                                                              <
 1230       LPBYTE  pJob,                                                               <
 1231       DWORD   cbBuf,                                                              <
 1232       LPDWORD pcbNeeded,                                                          <
 1233       LPDWORD pcReturned                                                          <
 1234  );                                                                               <
 1235  extern(Windows) export BOOL EnumJobsW(                                           <
 1236       HANDLE  hPrinter,                                                           <
 1237       DWORD   FirstJob,                                                           <
 1238       DWORD   NoJobs,                                                             <
 1239       DWORD   Level,                                                              <
 1240       LPBYTE  pJob,                                                               <
 1241       DWORD   cbBuf,                                                              <
 1242       LPDWORD pcbNeeded,                                                          <
 1243       LPDWORD pcReturned                                                          <
 1244  );                                                                               <
 1245  // #ifdef UNICODE                                                                <
 1246  alias EnumJobsW EnumJobs;                                                        <
 1247  // #else                                                                         <
 1248  // #...                                                                          <
 1249  // #endif // !UNICODE                                                            <
 1250                                                                                   <
 1251  extern(Windows) export HANDLE AddPrinterA(                                       <
 1252       LPSTR   pName,                                                              <
 1253       DWORD   Level,                                                              <
 1254       LPBYTE  pPrinter                                                            <
 1255  );                                                                               <
 1256  extern(Windows) export HANDLE AddPrinterW(                                       <
 1257       LPWSTR   pName,                                                             <
 1258       DWORD   Level,                                                              <
 1259       LPBYTE  pPrinter                                                            <
 1260  );                                                                               <
 1261  // #ifdef UNICODE                                                                <
 1262  alias AddPrinterW AddPrinter;                                                    <
 1263  // #else                                                                         <
 1264  // #...                                                                          <
 1265  // #endif // !UNICODE                                                            <
 1266                                                                                   <
 1267  extern(Windows) export BOOL DeletePrinter(                                       <
 1268       HANDLE   hPrinter                                                           <
 1269  );                                                                               <
 1270                                                                                   <
 1271  extern(Windows) export BOOL SetPrinterA(                                         <
 1272       HANDLE  hPrinter,                                                           <
 1273       DWORD   Level,                                                              <
 1274       LPBYTE  pPrinter,                                                           <
 1275       DWORD   Command                                                             <
 1276  );                                                                               <
 1277  extern(Windows) export BOOL SetPrinterW(                                         <
 1278       HANDLE  hPrinter,                                                           <
 1279       DWORD   Level,                                                              <
 1280       LPBYTE  pPrinter,                                                           <
 1281       DWORD   Command                                                             <
 1282  );                                                                               <
 1283  // #ifdef UNICODE                                                                <
 1284  alias SetPrinterW SetPrinter;                                                    <
 1285  // #else                                                                         <
 1286  // #...                                                                          <
 1287  // #endif // !UNICODE                                                            <
 1288                                                                                   <
 1289  extern(Windows) export BOOL GetPrinterA(                                         <
 1290       HANDLE  hPrinter,                                                           <
 1291       DWORD   Level,                                                              <
 1292       LPBYTE  pPrinter,                                                           <
 1293       DWORD   cbBuf,                                                              <
 1294       LPDWORD pcbNeeded                                                           <
 1295  );                                                                               <
 1296  extern(Windows) export BOOL GetPrinterW(                                         <
 1297       HANDLE  hPrinter,                                                           <
 1298       DWORD   Level,                                                              <
 1299       LPBYTE  pPrinter,                                                           <
 1300       DWORD   cbBuf,                                                              <
 1301       LPDWORD pcbNeeded                                                           <
 1302  );                                                                               <
 1303  // #ifdef UNICODE                                                                <
 1304  alias GetPrinterW GetPrinter;                                                    <
 1305  // #else                                                                         <
 1306  // #...                                                                          <
 1307  // #endif // !UNICODE                                                            <
 1308                                                                                   <
 1309  extern(Windows) export BOOL AddPrinterDriverA(                                   <
 1310       LPSTR   pName,                                                              <
 1311        DWORD   Level,                                                             <
 1312       LPBYTE  pDriverInfo                                                         <
 1313  );                                                                               <
 1314  extern(Windows) export BOOL AddPrinterDriverW(                                   <
 1315       LPWSTR   pName,                                                             <
 1316        DWORD   Level,                                                             <
 1317       LPBYTE  pDriverInfo                                                         <
 1318  );                                                                               <
 1319  // #ifdef UNICODE                                                                <
 1320  alias AddPrinterDriverW AddPrinterDriver;                                        <
 1321  // #else                                                                         <
 1322  // #...                                                                          <
 1323  // #endif // !UNICODE                                                            <
 1324                                                                                   <
 1325  extern(Windows) export BOOL AddPrinterDriverExA(                                 <
 1326       LPSTR   pName,                                                              <
 1327       DWORD     Level,                                                            <
 1328        LPBYTE pDriverInfo,                                                        <
 1329       DWORD     dwFileCopyFlags                                                   <
 1330  );                                                                               <
 1331  extern(Windows) export BOOL AddPrinterDriverExW(                                 <
 1332       LPWSTR   pName,                                                             <
 1333       DWORD     Level,                                                            <
 1334        LPBYTE pDriverInfo,                                                        <
 1335       DWORD     dwFileCopyFlags                                                   <
 1336  );                                                                               <
 1337  // #ifdef UNICODE                                                                <
 1338  alias AddPrinterDriverExW AddPrinterDriverEx;                                    <
 1339  // #else                                                                         <
 1340  // #...                                                                          <
 1341  // #endif // !UNICODE                                                            <
 1342                                                                                   <
 1343  extern(Windows) export BOOL EnumPrinterDriversA(                                 <
 1344       LPSTR   pName,                                                              <
 1345       LPSTR   pEnvironment,                                                       <
 1346       DWORD   Level,                                                              <
 1347       LPBYTE  pDriverInfo,                                                        <
 1348       DWORD   cbBuf,                                                              <
 1349       LPDWORD pcbNeeded,                                                          <
 1350       LPDWORD pcReturned                                                          <
 1351  );                                                                               <
 1352  extern(Windows) export BOOL EnumPrinterDriversW(                                 <
 1353       LPWSTR   pName,                                                             <
 1354       LPWSTR   pEnvironment,                                                      <
 1355       DWORD   Level,                                                              <
 1356       LPBYTE  pDriverInfo,                                                        <
 1357       DWORD   cbBuf,                                                              <
 1358       LPDWORD pcbNeeded,                                                          <
 1359       LPDWORD pcReturned                                                          <
 1360  );                                                                               <
 1361  // #ifdef UNICODE                                                                <
 1362  alias EnumPrinterDriversW EnumPrinterDrivers;                                    <
 1363  // #else                                                                         <
 1364  // #...                                                                          <
 1365  // #endif // !UNICODE                                                            <
 1366                                                                                   <
 1367  extern(Windows) export BOOL GetPrinterDriverA(                                   <
 1368       HANDLE  hPrinter,                                                           <
 1369       LPSTR   pEnvironment,                                                       <
 1370       DWORD   Level,                                                              <
 1371       LPBYTE  pDriverInfo,                                                        <
 1372       DWORD   cbBuf,                                                              <
 1373       LPDWORD pcbNeeded                                                           <
 1374  );                                                                               <
 1375  extern(Windows) export BOOL GetPrinterDriverW(                                   <
 1376       HANDLE  hPrinter,                                                           <
 1377       LPWSTR   pEnvironment,                                                      <
 1378       DWORD   Level,                                                              <
 1379       LPBYTE  pDriverInfo,                                                        <
 1380       DWORD   cbBuf,                                                              <
 1381       LPDWORD pcbNeeded                                                           <
 1382  );                                                                               <
 1383  // #ifdef UNICODE                                                                <
 1384  alias GetPrinterDriverW GetPrinterDriver;                                        <
 1385  // #else                                                                         <
 1386  // #...                                                                          <
 1387  // #endif // !UNICODE                                                            <
 1388                                                                                   <
 1389  extern(Windows) export BOOL GetPrinterDriverDirectoryA(                          <
 1390       LPSTR   pName,                                                              <
 1391       LPSTR   pEnvironment,                                                       <
 1392       DWORD   Level,                                                              <
 1393       LPBYTE  pDriverDirectory,                                                   <
 1394       DWORD   cbBuf,                                                              <
 1395       LPDWORD pcbNeeded                                                           <
 1396  );                                                                               <
 1397  extern(Windows) export BOOL GetPrinterDriverDirectoryW(                          <
 1398       LPWSTR   pName,                                                             <
 1399       LPWSTR   pEnvironment,                                                      <
 1400       DWORD   Level,                                                              <
 1401       LPBYTE  pDriverDirectory,                                                   <
 1402       DWORD   cbBuf,                                                              <
 1403       LPDWORD pcbNeeded                                                           <
 1404  );                                                                               <
 1405  // #ifdef UNICODE                                                                <
 1406  alias GetPrinterDriverDirectoryW GetPrinterDriverDirectory;                      <
 1407  // #else                                                                         <
 1408  // #...                                                                          <
 1409  // #endif // !UNICODE                                                            <
 1410                                                                                   <
 1411  extern(Windows) export BOOL DeletePrinterDriverA(                                <
 1412      LPSTR    pName,                                                              <
 1413      LPSTR    pEnvironment,                                                       <
 1414      LPSTR    pDriverName                                                         <
 1415  );                                                                               <
 1416  extern(Windows) export BOOL DeletePrinterDriverW(                                <
 1417      LPWSTR    pName,                                                             <
 1418      LPWSTR    pEnvironment,                                                      <
 1419      LPWSTR    pDriverName                                                        <
 1420  );                                                                               <
 1421  // #ifdef UNICODE                                                                <
 1422  alias DeletePrinterDriverW DeletePrinterDriver;                                  <
 1423  // #else                                                                         <
 1424  // #...                                                                          <
 1425  // #endif // !UNICODE                                                            <
 1426                                                                                   <
 1427  extern(Windows) export BOOL DeletePrinterDriverExA(                              <
 1428      LPSTR    pName,                                                              <
 1429      LPSTR    pEnvironment,                                                       <
 1430      LPSTR    pDriverName,                                                        <
 1431      DWORD      dwDeleteFlag,                                                     <
 1432      DWORD      dwVersionFlag                                                     <
 1433  );                                                                               <
 1434  extern(Windows) export BOOL DeletePrinterDriverExW(                              <
 1435      LPWSTR    pName,                                                             <
 1436      LPWSTR    pEnvironment,                                                      <
 1437      LPWSTR    pDriverName,                                                       <
 1438      DWORD      dwDeleteFlag,                                                     <
 1439      DWORD      dwVersionFlag                                                     <
 1440  );                                                                               <
 1441  // #ifdef UNICODE                                                                <
 1442  alias DeletePrinterDriverExW DeletePrinterDriverEx;                              <
 1443  // #else                                                                         <
 1444  // #...                                                                          <
 1445  // #endif // !UNICODE                                                            <
 1446                                                                                   <
 1447  extern(Windows) export BOOL AddPrintProcessorA(                                  <
 1448       LPSTR   pName,                                                              <
 1449       LPSTR   pEnvironment,                                                       <
 1450       LPSTR   pPathName,                                                          <
 1451       LPSTR   pPrintProcessorName                                                 <
 1452  );                                                                               <
 1453  extern(Windows) export BOOL AddPrintProcessorW(                                  <
 1454       LPWSTR   pName,                                                             <
 1455       LPWSTR   pEnvironment,                                                      <
 1456       LPWSTR   pPathName,                                                         <
 1457       LPWSTR   pPrintProcessorName                                                <
 1458  );                                                                               <
 1459  // #ifdef UNICODE                                                                <
 1460  alias AddPrintProcessorW AddPrintProcessor;                                      <
 1461  // #else                                                                         <
 1462  // #...                                                                          <
 1463  // #endif // !UNICODE                                                            <
 1464                                                                                   <
 1465  extern(Windows) export BOOL EnumPrintProcessorsA(                                <
 1466       LPSTR   pName,                                                              <
 1467       LPSTR   pEnvironment,                                                       <
 1468       DWORD   Level,                                                              <
 1469       LPBYTE  pPrintProcessorInfo,                                                <
 1470       DWORD   cbBuf,                                                              <
 1471       LPDWORD pcbNeeded,                                                          <
 1472       LPDWORD pcReturned                                                          <
 1473  );                                                                               <
 1474  extern(Windows) export BOOL EnumPrintProcessorsW(                                <
 1475       LPWSTR   pName,                                                             <
 1476       LPWSTR   pEnvironment,                                                      <
 1477       DWORD   Level,                                                              <
 1478       LPBYTE  pPrintProcessorInfo,                                                <
 1479       DWORD   cbBuf,                                                              <
 1480       LPDWORD pcbNeeded,                                                          <
 1481       LPDWORD pcReturned                                                          <
 1482  );                                                                               <
 1483  // #ifdef UNICODE                                                                <
 1484  alias EnumPrintProcessorsW EnumPrintProcessors;                                  <
 1485  // #else                                                                         <
 1486  // #...                                                                          <
 1487  // #endif // !UNICODE                                                            <
 1488                                                                                   <
 1489  extern(Windows) export BOOL GetPrintProcessorDirectoryA(                         <
 1490       LPSTR   pName,                                                              <
 1491       LPSTR   pEnvironment,                                                       <
 1492       DWORD   Level,                                                              <
 1493       LPBYTE  pPrintProcessorInfo,                                                <
 1494       DWORD   cbBuf,                                                              <
 1495       LPDWORD pcbNeeded                                                           <
 1496  );                                                                               <
 1497  extern(Windows) export BOOL GetPrintProcessorDirectoryW(                         <
 1498       LPWSTR   pName,                                                             <
 1499       LPWSTR   pEnvironment,                                                      <
 1500       DWORD   Level,                                                              <
 1501       LPBYTE  pPrintProcessorInfo,                                                <
 1502       DWORD   cbBuf,                                                              <
 1503       LPDWORD pcbNeeded                                                           <
 1504  );                                                                               <
 1505  // #ifdef UNICODE                                                                <
 1506  alias GetPrintProcessorDirectoryW GetPrintProcessorDirectory;                    <
 1507  // #else                                                                         <
 1508  // #...                                                                          <
 1509  // #endif // !UNICODE                                                            <
 1510                                                                                   <
 1511  extern(Windows) export BOOL EnumPrintProcessorDatatypesA(                        <
 1512       LPSTR   pName,                                                              <
 1513       LPSTR   pPrintProcessorName,                                                <
 1514       DWORD   Level,                                                              <
 1515       LPBYTE  pDatatypes,                                                         <
 1516       DWORD   cbBuf,                                                              <
 1517       LPDWORD pcbNeeded,                                                          <
 1518       LPDWORD pcReturned                                                          <
 1519  );                                                                               <
 1520  extern(Windows) export BOOL EnumPrintProcessorDatatypesW(                        <
 1521       LPWSTR   pName,                                                             <
 1522       LPWSTR   pPrintProcessorName,                                               <
 1523       DWORD   Level,                                                              <
 1524       LPBYTE  pDatatypes,                                                         <
 1525       DWORD   cbBuf,                                                              <
 1526       LPDWORD pcbNeeded,                                                          <
 1527       LPDWORD pcReturned                                                          <
 1528  );                                                                               <
 1529  // #ifdef UNICODE                                                                <
 1530  alias EnumPrintProcessorDatatypesW EnumPrintProcessorDatatypes;                  <
 1531  // #else                                                                         <
 1532  // #...                                                                          <
 1533  // #endif // !UNICODE                                                            <
 1534                                                                                   <
 1535  extern(Windows) export BOOL DeletePrintProcessorA(                               <
 1536       LPSTR   pName,                                                              <
 1537       LPSTR   pEnvironment,                                                       <
 1538       LPSTR   pPrintProcessorName                                                 <
 1539  );                                                                               <
 1540  extern(Windows) export BOOL DeletePrintProcessorW(                               <
 1541       LPWSTR   pName,                                                             <
 1542       LPWSTR   pEnvironment,                                                      <
 1543       LPWSTR   pPrintProcessorName                                                <
 1544  );                                                                               <
 1545  // #ifdef UNICODE                                                                <
 1546  alias DeletePrintProcessorW DeletePrintProcessor;                                <
 1547  // #else                                                                         <
 1548  // #...                                                                          <
 1549  // #endif // !UNICODE                                                            <
 1550                                                                                   <
 1551  extern(Windows) export DWORD StartDocPrinterA(                                   <
 1552       HANDLE  hPrinter,                                                           <
 1553       DWORD   Level,                                                              <
 1554       LPBYTE  pDocInfo                                                            <
 1555  );                                                                               <
 1556  extern(Windows) export DWORD StartDocPrinterW(                                   <
 1557       HANDLE  hPrinter,                                                           <
 1558       DWORD   Level,                                                              <
 1559       LPBYTE  pDocInfo                                                            <
 1560  );                                                                               <
 1561  // #ifdef UNICODE                                                                <
 1562  alias StartDocPrinterW StartDocPrinter;                                          <
 1563  // #else                                                                         <
 1564  // #...                                                                          <
 1565  // #endif // !UNICODE                                                            <
 1566                                                                                   <
 1567  extern(Windows) export BOOL StartPagePrinter(                                    <
 1568       HANDLE  hPrinter                                                            <
 1569  );                                                                               <
 1570                                                                                   <
 1571  extern(Windows) export BOOL WritePrinter(                                        <
 1572       HANDLE  hPrinter,                                                           <
 1573       LPVOID  pBuf,                                                               <
 1574       DWORD   cbBuf,                                                              <
 1575       LPDWORD pcWritten                                                           <
 1576  );                                                                               <
 1577                                                                                   <
 1578  extern(Windows) export BOOL FlushPrinter(                                        <
 1579       HANDLE   hPrinter,                                                          <
 1580       LPVOID   pBuf,                                                              <
 1581       DWORD    cbBuf,                                                             <
 1582       LPDWORD pcWritten,                                                          <
 1583       DWORD    cSleep                                                             <
 1584  );                                                                               <
 1585                                                                                   <
 1586  extern(Windows) export BOOL EndPagePrinter(                                      <
 1587      HANDLE   hPrinter                                                            <
 1588  );                                                                               <
 1589                                                                                   <
 1590  extern(Windows) export BOOL AbortPrinter(                                        <
 1591      HANDLE   hPrinter                                                            <
 1592  );                                                                               <
 1593                                                                                   <
 1594  extern(Windows) export BOOL ReadPrinter(                                         <
 1595       HANDLE  hPrinter,                                                           <
 1596       LPVOID  pBuf,                                                               <
 1597       DWORD   cbBuf,                                                              <
 1598       LPDWORD pNoBytesRead                                                        <
 1599  );                                                                               <
 1600                                                                                   <
 1601  extern(Windows) export BOOL EndDocPrinter(                                       <
 1602      HANDLE   hPrinter                                                            <
 1603  );                                                                               <
 1604                                                                                   <
 1605  extern(Windows) export BOOL AddJobA(                                             <
 1606       HANDLE  hPrinter,                                                           <
 1607       DWORD   Level,                                                              <
 1608       LPBYTE  pData,                                                              <
 1609       DWORD   cbBuf,                                                              <
 1610       LPDWORD pcbNeeded                                                           <
 1611  );                                                                               <
 1612  extern(Windows) export BOOL AddJobW(                                             <
 1613       HANDLE  hPrinter,                                                           <
 1614       DWORD   Level,                                                              <
 1615       LPBYTE  pData,                                                              <
 1616       DWORD   cbBuf,                                                              <
 1617       LPDWORD pcbNeeded                                                           <
 1618  );                                                                               <
 1619  // #ifdef UNICODE                                                                <
 1620  alias AddJobW AddJob;                                                            <
 1621  // #else                                                                         <
 1622  // #...                                                                          <
 1623  // #endif // !UNICODE                                                            <
 1624                                                                                   <
 1625  extern(Windows) export BOOL ScheduleJob(                                         <
 1626       HANDLE  hPrinter,                                                           <
 1627       DWORD   JobId                                                               <
 1628  );                                                                               <
 1629                                                                                   <
 1630  extern(Windows) export BOOL PrinterProperties(                                   <
 1631       HWND    hWnd,                                                               <
 1632       HANDLE  hPrinter                                                            <
 1633  );                                                                               <
 1634                                                                                   <
 1635  extern(Windows) export LONG DocumentPropertiesA(                                 <
 1636       HWND      hWnd,                                                             <
 1637       HANDLE    hPrinter,                                                         <
 1638       LPSTR   pDeviceName,                                                        <
 1639       PDEVMODEA pDevModeOutput,                                                   <
 1640       PDEVMODEA pDevModeInput,                                                    <
 1641       DWORD     fMode                                                             <
 1642  );                                                                               <
 1643  extern(Windows) export LONG DocumentPropertiesW(                                 <
 1644       HWND      hWnd,                                                             <
 1645       HANDLE    hPrinter,                                                         <
 1646       LPWSTR   pDeviceName,                                                       <
 1647       PDEVMODEW pDevModeOutput,                                                   <
 1648       PDEVMODEW pDevModeInput,                                                    <
 1649       DWORD     fMode                                                             <
 1650  );                                                                               <
 1651  // #ifdef UNICODE                                                                <
 1652  alias DocumentPropertiesW DocumentProperties;                                    <
 1653  // #else                                                                         <
 1654  // #...                                                                          <
 1655  // #endif // !UNICODE                                                            <
 1656                                                                                   <
 1657  extern(Windows) export LONG AdvancedDocumentPropertiesA(                         <
 1658       HWND    hWnd,                                                               <
 1659       HANDLE  hPrinter,                                                           <
 1660       LPSTR   pDeviceName,                                                        <
 1661       PDEVMODEA pDevModeOutput,                                                   <
 1662       PDEVMODEA pDevModeInput                                                     <
 1663  );                                                                               <
 1664  extern(Windows) export LONG AdvancedDocumentPropertiesW(                         <
 1665       HWND    hWnd,                                                               <
 1666       HANDLE  hPrinter,                                                           <
 1667       LPWSTR   pDeviceName,                                                       <
 1668       PDEVMODEW pDevModeOutput,                                                   <
 1669       PDEVMODEW pDevModeInput                                                     <
 1670  );                                                                               <
 1671  // #ifdef UNICODE                                                                <
 1672  alias AdvancedDocumentPropertiesW AdvancedDocumentProperties;                    <
 1673  // #else                                                                         <
 1674  // #...                                                                          <
 1675  // #endif // !UNICODE                                                            <
 1676                                                                                   <
 1677  extern(Windows) export DWORD GetPrinterDataA(                                    <
 1678       HANDLE   hPrinter,                                                          <
 1679       LPSTR  pValueName,                                                          <
 1680       LPDWORD  pType,                                                             <
 1681       LPBYTE   pData,                                                             <
 1682       DWORD    nSize,                                                             <
 1683       LPDWORD  pcbNeeded                                                          <
 1684  );                                                                               <
 1685  extern(Windows) export DWORD GetPrinterDataW(                                    <
 1686       HANDLE   hPrinter,                                                          <
 1687       LPWSTR  pValueName,                                                         <
 1688       LPDWORD  pType,                                                             <
 1689       LPBYTE   pData,                                                             <
 1690       DWORD    nSize,                                                             <
 1691       LPDWORD  pcbNeeded                                                          <
 1692  );                                                                               <
 1693  // #ifdef UNICODE                                                                <
 1694  alias GetPrinterDataW GetPrinterData;                                            <
 1695  // #else                                                                         <
 1696  // #...                                                                          <
 1697  // #endif // !UNICODE                                                            <
 1698                                                                                   <
 1699  extern(Windows) export DWORD GetPrinterDataExA(                                  <
 1700       HANDLE   hPrinter,                                                          <
 1701       LPCSTR pKeyName,                                                            <
 1702       LPCSTR pValueName,                                                          <
 1703       LPDWORD  pType,                                                             <
 1704       LPBYTE   pData,                                                             <
 1705       DWORD    nSize,                                                             <
 1706       LPDWORD  pcbNeeded                                                          <
 1707  );                                                                               <
 1708  extern(Windows) export DWORD GetPrinterDataExW(                                  <
 1709       HANDLE   hPrinter,                                                          <
 1710       LPCWSTR pKeyName,                                                           <
 1711       LPCWSTR pValueName,                                                         <
 1712       LPDWORD  pType,                                                             <
 1713       LPBYTE   pData,                                                             <
 1714       DWORD    nSize,                                                             <
 1715       LPDWORD  pcbNeeded                                                          <
 1716  );                                                                               <
 1717  // #ifdef UNICODE                                                                <
 1718  alias GetPrinterDataExW GetPrinterDataEx;                                        <
 1719  // #else                                                                         <
 1720  // #...                                                                          <
 1721  // #endif // !UNICODE                                                            <
 1722                                                                                   <
 1723  extern(Windows) export DWORD EnumPrinterDataA(                                   <
 1724       HANDLE   hPrinter,                                                          <
 1725       DWORD    dwIndex,                                                           <
 1726       LPSTR  pValueName,                                                          <
 1727       DWORD    cbValueName,                                                       <
 1728       LPDWORD  pcbValueName,                                                      <
 1729       LPDWORD  pType,                                                             <
 1730       LPBYTE   pData,                                                             <
 1731       DWORD    cbData,                                                            <
 1732       LPDWORD  pcbData                                                            <
 1733  );                                                                               <
 1734  extern(Windows) export DWORD EnumPrinterDataW(                                   <
 1735       HANDLE   hPrinter,                                                          <
 1736       DWORD    dwIndex,                                                           <
 1737       LPWSTR  pValueName,                                                         <
 1738       DWORD    cbValueName,                                                       <
 1739       LPDWORD  pcbValueName,                                                      <
 1740       LPDWORD  pType,                                                             <
 1741       LPBYTE   pData,                                                             <
 1742       DWORD    cbData,                                                            <
 1743       LPDWORD  pcbData                                                            <
 1744  );                                                                               <
 1745  // #ifdef UNICODE                                                                <
 1746  alias EnumPrinterDataW EnumPrinterData;                                          <
 1747  // #else                                                                         <
 1748  // #...                                                                          <
 1749  // #endif // !UNICODE                                                            <
 1750                                                                                   <
 1751  extern(Windows) export DWORD EnumPrinterDataExA(                                 <
 1752       HANDLE   hPrinter,                                                          <
 1753       LPCSTR pKeyName,                                                            <
 1754       LPBYTE   pEnumValues,                                                       <
 1755       DWORD    cbEnumValues,                                                      <
 1756       LPDWORD  pcbEnumValues,                                                     <
 1757       LPDWORD  pnEnumValues                                                       <
 1758  );                                                                               <
 1759  extern(Windows) export DWORD EnumPrinterDataExW(                                 <
 1760       HANDLE   hPrinter,                                                          <
 1761       LPCWSTR pKeyName,                                                           <
 1762       LPBYTE   pEnumValues,                                                       <
 1763       DWORD    cbEnumValues,                                                      <
 1764       LPDWORD  pcbEnumValues,                                                     <
 1765       LPDWORD  pnEnumValues                                                       <
 1766  );                                                                               <
 1767  // #ifdef UNICODE                                                                <
 1768  alias EnumPrinterDataExW EnumPrinterDataEx;                                      <
 1769  // #else                                                                         <
 1770  // #...                                                                          <
 1771  // #endif // !UNICODE                                                            <
 1772                                                                                   <
 1773  extern(Windows) export DWORD EnumPrinterKeyA(                                    <
 1774       HANDLE   hPrinter,                                                          <
 1775       LPCSTR pKeyName,                                                            <
 1776       LPSTR  pSubkey,                                                             <
 1777       DWORD    cbSubkey,                                                          <
 1778       LPDWORD  pcbSubkey                                                          <
 1779  );                                                                               <
 1780  extern(Windows) export DWORD EnumPrinterKeyW(                                    <
 1781       HANDLE   hPrinter,                                                          <
 1782       LPCWSTR pKeyName,                                                           <
 1783       LPWSTR  pSubkey,                                                            <
 1784       DWORD    cbSubkey,                                                          <
 1785       LPDWORD  pcbSubkey                                                          <
 1786  );                                                                               <
 1787  // #ifdef UNICODE                                                                <
 1788  alias EnumPrinterKeyW EnumPrinterKey;                                            <
 1789  // #else                                                                         <
 1790  // #...                                                                          <
 1791  // #endif // !UNICODE                                                            <
 1792                                                                                   <
 1793  extern(Windows) export DWORD SetPrinterDataA(                                    <
 1794       HANDLE  hPrinter,                                                           <
 1795       LPSTR pValueName,                                                           <
 1796       DWORD   Type,                                                               <
 1797       LPBYTE  pData,                                                              <
 1798       DWORD   cbData                                                              <
 1799  );                                                                               <
 1800  extern(Windows) export DWORD SetPrinterDataW(                                    <
 1801       HANDLE  hPrinter,                                                           <
 1802       LPWSTR pValueName,                                                          <
 1803       DWORD   Type,                                                               <
 1804       LPBYTE  pData,                                                              <
 1805       DWORD   cbData                                                              <
 1806  );                                                                               <
 1807  // #ifdef UNICODE                                                                <
 1808  alias SetPrinterDataW SetPrinterData;                                            <
 1809  // #else                                                                         <
 1810  // #...                                                                          <
 1811  // #endif // !UNICODE                                                            <
 1812                                                                                   <
 1813  extern(Windows) export DWORD SetPrinterDataExA(                                  <
 1814       HANDLE   hPrinter,                                                          <
 1815       LPCSTR pKeyName,                                                            <
 1816       LPCSTR pValueName,                                                          <
 1817       DWORD    Type,                                                              <
 1818       LPBYTE   pData,                                                             <
 1819       DWORD    cbData                                                             <
 1820  );                                                                               <
 1821  extern(Windows) export DWORD SetPrinterDataExW(                                  <
 1822       HANDLE   hPrinter,                                                          <
 1823       LPCWSTR pKeyName,                                                           <
 1824       LPCWSTR pValueName,                                                         <
 1825       DWORD    Type,                                                              <
 1826       LPBYTE   pData,                                                             <
 1827       DWORD    cbData                                                             <
 1828  );                                                                               <
 1829  // #ifdef UNICODE                                                                <
 1830  alias SetPrinterDataExW SetPrinterDataEx;                                        <
 1831  // #else                                                                         <
 1832  // #...                                                                          <
 1833  // #endif // !UNICODE                                                            <
 1834                                                                                   <
 1835  extern(Windows) export DWORD DeletePrinterDataA(                                 <
 1836       HANDLE  hPrinter,                                                           <
 1837       LPSTR pValueName                                                            <
 1838  );                                                                               <
 1839  extern(Windows) export DWORD DeletePrinterDataW(                                 <
 1840       HANDLE  hPrinter,                                                           <
 1841       LPWSTR pValueName                                                           <
 1842  );                                                                               <
 1843  // #ifdef UNICODE                                                                <
 1844  alias DeletePrinterDataW DeletePrinterData;                                      <
 1845  // #else                                                                         <
 1846  // #...                                                                          <
 1847  // #endif // !UNICODE                                                            <
 1848                                                                                   <
 1849  extern(Windows) export DWORD DeletePrinterDataExA(                               <
 1850       HANDLE   hPrinter,                                                          <
 1851       LPCSTR pKeyName,                                                            <
 1852       LPCSTR pValueName                                                           <
 1853  );                                                                               <
 1854  extern(Windows) export DWORD DeletePrinterDataExW(                               <
 1855       HANDLE   hPrinter,                                                          <
 1856       LPCWSTR pKeyName,                                                           <
 1857       LPCWSTR pValueName                                                          <
 1858  );                                                                               <
 1859  // #ifdef UNICODE                                                                <
 1860  alias DeletePrinterDataExW DeletePrinterDataEx;                                  <
 1861  // #else                                                                         <
 1862  // #...                                                                          <
 1863  // #endif // !UNICODE                                                            <
 1864                                                                                   <
 1865  extern(Windows) export DWORD DeletePrinterKeyA(                                  <
 1866       HANDLE   hPrinter,                                                          <
 1867       LPCSTR pKeyName                                                             <
 1868  );                                                                               <
 1869  extern(Windows) export DWORD DeletePrinterKeyW(                                  <
 1870       HANDLE   hPrinter,                                                          <
 1871       LPCWSTR pKeyName                                                            <
 1872  );                                                                               <
 1873  // #ifdef UNICODE                                                                <
 1874  alias DeletePrinterKeyW DeletePrinterKey;                                        <
 1875  // #else                                                                         <
 1876  // #...                                                                          <
 1877  // #endif // !UNICODE                                                            <
 1878                                                                                   <
 1879  enum : uint { PRINTER_NOTIFY_TYPE = 0x00 }                                       <
 1880  enum : uint { JOB_NOTIFY_TYPE = 0x01 }                                           <
 1881                                                                                   <
 1882  enum : uint { PRINTER_NOTIFY_FIELD_SERVER_NAME = 0x00 }                          <
 1883  enum : uint { PRINTER_NOTIFY_FIELD_PRINTER_NAME = 0x01 }                         <
 1884  enum : uint { PRINTER_NOTIFY_FIELD_SHARE_NAME = 0x02 }                           <
 1885  enum : uint { PRINTER_NOTIFY_FIELD_PORT_NAME = 0x03 }                            <
 1886  enum : uint { PRINTER_NOTIFY_FIELD_DRIVER_NAME = 0x04 }                          <
 1887  enum : uint { PRINTER_NOTIFY_FIELD_COMMENT = 0x05 }                              <
 1888  enum : uint { PRINTER_NOTIFY_FIELD_LOCATION = 0x06 }                             <
 1889  enum : uint { PRINTER_NOTIFY_FIELD_DEVMODE = 0x07 }                              <
 1890  enum : uint { PRINTER_NOTIFY_FIELD_SEPFILE = 0x08 }                              <
 1891  enum : uint { PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR = 0x09 }                      <
 1892  enum : uint { PRINTER_NOTIFY_FIELD_PARAMETERS = 0x0A }                           <
 1893  enum : uint { PRINTER_NOTIFY_FIELD_DATATYPE = 0x0B }                             <
 1894  enum : uint { PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C }                  <
 1895  enum : uint { PRINTER_NOTIFY_FIELD_ATTRIBUTES = 0x0D }                           <
 1896  enum : uint { PRINTER_NOTIFY_FIELD_PRIORITY = 0x0E }                             <
 1897  enum : uint { PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY = 0x0F }                     <
 1898  enum : uint { PRINTER_NOTIFY_FIELD_START_TIME = 0x10 }                           <
 1899  enum : uint { PRINTER_NOTIFY_FIELD_UNTIL_TIME = 0x11 }                           <
 1900  enum : uint { PRINTER_NOTIFY_FIELD_STATUS = 0x12 }                               <
 1901  enum : uint { PRINTER_NOTIFY_FIELD_STATUS_STRING = 0x13 }                        <
 1902  enum : uint { PRINTER_NOTIFY_FIELD_CJOBS = 0x14 }                                <
 1903  enum : uint { PRINTER_NOTIFY_FIELD_AVERAGE_PPM = 0x15 }                          <
 1904  enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_PAGES = 0x16 }                          <
 1905  enum : uint { PRINTER_NOTIFY_FIELD_PAGES_PRINTED = 0x17 }                        <
 1906  enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_BYTES = 0x18 }                          <
 1907  enum : uint { PRINTER_NOTIFY_FIELD_BYTES_PRINTED = 0x19 }                        <
 1908  enum : uint { PRINTER_NOTIFY_FIELD_OBJECT_GUID = 0x1A }                          <
 1909                                                                                   <
 1910  enum : uint { JOB_NOTIFY_FIELD_PRINTER_NAME = 0x00 }                             <
 1911  enum : uint { JOB_NOTIFY_FIELD_MACHINE_NAME = 0x01 }                             <
 1912  enum : uint { JOB_NOTIFY_FIELD_PORT_NAME = 0x02 }                                <
 1913  enum : uint { JOB_NOTIFY_FIELD_USER_NAME = 0x03 }                                <
 1914  enum : uint { JOB_NOTIFY_FIELD_NOTIFY_NAME = 0x04 }                              <
 1915  enum : uint { JOB_NOTIFY_FIELD_DATATYPE = 0x05 }                                 <
 1916  enum : uint { JOB_NOTIFY_FIELD_PRINT_PROCESSOR = 0x06 }                          <
 1917  enum : uint { JOB_NOTIFY_FIELD_PARAMETERS = 0x07 }                               <
 1918  enum : uint { JOB_NOTIFY_FIELD_DRIVER_NAME = 0x08 }                              <
 1919  enum : uint { JOB_NOTIFY_FIELD_DEVMODE = 0x09 }                                  <
 1920  enum : uint { JOB_NOTIFY_FIELD_STATUS = 0x0A }                                   <
 1921  enum : uint { JOB_NOTIFY_FIELD_STATUS_STRING = 0x0B }                            <
 1922  enum : uint { JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C }                      <
 1923  enum : uint { JOB_NOTIFY_FIELD_DOCUMENT = 0x0D }                                 <
 1924  enum : uint { JOB_NOTIFY_FIELD_PRIORITY = 0x0E }                                 <
 1925  enum : uint { JOB_NOTIFY_FIELD_POSITION = 0x0F }                                 <
 1926  enum : uint { JOB_NOTIFY_FIELD_SUBMITTED = 0x10 }                                <
 1927  enum : uint { JOB_NOTIFY_FIELD_START_TIME = 0x11 }                               <
 1928  enum : uint { JOB_NOTIFY_FIELD_UNTIL_TIME = 0x12 }                               <
 1929  enum : uint { JOB_NOTIFY_FIELD_TIME = 0x13 }                                     <
 1930  enum : uint { JOB_NOTIFY_FIELD_TOTAL_PAGES = 0x14 }                              <
 1931  enum : uint { JOB_NOTIFY_FIELD_PAGES_PRINTED = 0x15 }                            <
 1932  enum : uint { JOB_NOTIFY_FIELD_TOTAL_BYTES = 0x16 }                              <
 1933  enum : uint { JOB_NOTIFY_FIELD_BYTES_PRINTED = 0x17 }                            <
 1934                                                                                   <
 1935  struct _PRINTER_NOTIFY_OPTIONS_TYPE {                                            <
 1936    WORD Type;                                                                     <
 1937    WORD Reserved0;                                                                <
 1938    DWORD Reserved1;                                                               <
 1939    DWORD Reserved2;                                                               <
 1940    DWORD Count;                                                                   <
 1941    PWORD pFields;                                                                 <
 1942  }                                                                                <
 1943  alias _PRINTER_NOTIFY_OPTIONS_TYPE PRINTER_NOTIFY_OPTIONS_TYPE;                  <
 1944  alias _PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTER_NOTIFY_OPTIONS_TYPE;                <
 1945  alias _PRINTER_NOTIFY_OPTIONS_TYPE* LPPRINTER_NOTIFY_OPTIONS_TYPE;               <
 1946                                                                                   <
 1947  enum : uint { PRINTER_NOTIFY_OPTIONS_REFRESH = 0x01 }                            <
 1948                                                                                   <
 1949  struct _PRINTER_NOTIFY_OPTIONS {                                                 <
 1950    DWORD Version;                                                                 <
 1951    DWORD Flags;                                                                   <
 1952    DWORD Count;                                                                   <
 1953    PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;                                           <
 1954  }                                                                                <
 1955  alias _PRINTER_NOTIFY_OPTIONS PRINTER_NOTIFY_OPTIONS;                            <
 1956  alias _PRINTER_NOTIFY_OPTIONS* PPRINTER_NOTIFY_OPTIONS;                          <
 1957  alias _PRINTER_NOTIFY_OPTIONS* LPPRINTER_NOTIFY_OPTIONS;                         <
 1958                                                                                   <
 1959  enum : uint { PRINTER_NOTIFY_INFO_DISCARDED = 0x01 }                             <
 1960                                                                                   <
 1961  struct _PRINTER_NOTIFY_INFO_DATA {                                               <
 1962    WORD Type;                                                                     <
 1963    WORD Field;                                                                    <
 1964    DWORD Reserved;                                                                <
 1965    DWORD Id;                                                                      <
 1966  union {                                                                          <
 1967    DWORD adwData[2];                                                              <
 1968  struct {                                                                         <
 1969    DWORD cbBuf;                                                                   <
 1970    LPVOID pBuf;                                                                   <
 1971  }                                                                                <
 1972                                                                                   <
 1973  }                                                                                <
 1974                                                                                   <
 1975  }                                                                                <
 1976  alias _PRINTER_NOTIFY_INFO_DATA PRINTER_NOTIFY_INFO_DATA;                        <
 1977  alias _PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA;                      <
 1978  alias _PRINTER_NOTIFY_INFO_DATA* LPPRINTER_NOTIFY_INFO_DATA;                     <
 1979                                                                                   <
 1980  struct _PRINTER_NOTIFY_INFO {                                                    <
 1981    DWORD Version;                                                                 <
 1982    DWORD Flags;                                                                   <
 1983    DWORD Count;                                                                   <
 1984    PRINTER_NOTIFY_INFO_DATA aData[1];                                             <
 1985  }                                                                                <
 1986  alias _PRINTER_NOTIFY_INFO PRINTER_NOTIFY_INFO;                                  <
 1987  alias _PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO;                                <
 1988  alias _PRINTER_NOTIFY_INFO* LPPRINTER_NOTIFY_INFO;                               <
 1989                                                                                   <
 1990  struct _BINARY_CONTAINER {                                                       <
 1991    DWORD cbBuf;                                                                   <
 1992    LPBYTE pData;                                                                  <
 1993  }                                                                                <
 1994  alias _BINARY_CONTAINER BINARY_CONTAINER;                                        <
 1995  alias _BINARY_CONTAINER* PBINARY_CONTAINER;                                      <
 1996                                                                                   <
 1997  struct _BIDI_DATA {                                                              <
 1998    DWORD dwBidiType;                                                              <
 1999  union {                                                                          <
 2000    BOOL bData;                                                                    <
 2001    LONG iData;                                                                    <
 2002    LPWSTR sData;                                                                  <
 2003    FLOAT fData;                                                                   <
 2004    BINARY_CONTAINER biData;                                                       <
 2005  }                                                                                <
 2006                                                                                   <
 2007  }                                                                                <
 2008  alias _BIDI_DATA BIDI_DATA;                                                      <
 2009  alias _BIDI_DATA* PBIDI_DATA;                                                    <
 2010  alias _BIDI_DATA* LPBIDI_DATA;                                                   <
 2011                                                                                   <
 2012  struct _BIDI_REQUEST_DATA {                                                      <
 2013    DWORD dwReqNumber;                                                             <
 2014    LPWSTR pSchema;                                                                <
 2015    BIDI_DATA data;                                                                <
 2016  }                                                                                <
 2017  alias _BIDI_REQUEST_DATA BIDI_REQUEST_DATA;                                      <
 2018  alias _BIDI_REQUEST_DATA* PBIDI_REQUEST_DATA;                                    <
 2019  alias _BIDI_REQUEST_DATA* LPBIDI_REQUEST_DATA;                                   <
 2020                                                                                   <
 2021  struct _BIDI_REQUEST_CONTAINER {                                                 <
 2022    DWORD Version;                                                                 <
 2023    DWORD Flags;                                                                   <
 2024    DWORD Count;                                                                   <
 2025    BIDI_REQUEST_DATA aData[ 1 ];                                                  <
 2026  }                                                                                <
 2027  alias _BIDI_REQUEST_CONTAINER BIDI_REQUEST_CONTAINER;                            <
 2028  alias _BIDI_REQUEST_CONTAINER* PBIDI_REQUEST_CONTAINER;                          <
 2029  alias _BIDI_REQUEST_CONTAINER* LPBIDI_REQUEST_CONTAINER;                         <
 2030                                                                                   <
 2031  struct _BIDI_RESPONSE_DATA {                                                     <
 2032    DWORD dwResult;                                                                <
 2033    DWORD dwReqNumber;                                                             <
 2034    LPWSTR pSchema;                                                                <
 2035    BIDI_DATA data;                                                                <
 2036  }                                                                                <
 2037  alias _BIDI_RESPONSE_DATA BIDI_RESPONSE_DATA;                                    <
 2038  alias _BIDI_RESPONSE_DATA* PBIDI_RESPONSE_DATA;                                  <
 2039  alias _BIDI_RESPONSE_DATA* LPBIDI_RESPONSE_DATA;                                 <
 2040                                                                                   <
 2041  struct _BIDI_RESPONSE_CONTAINER {                                                <
 2042    DWORD Version;                                                                 <
 2043    DWORD Flags;                                                                   <
 2044    DWORD Count;                                                                   <
 2045    BIDI_RESPONSE_DATA aData[ 1 ];                                                 <
 2046  }                                                                                <
 2047  alias _BIDI_RESPONSE_CONTAINER BIDI_RESPONSE_CONTAINER;                          <
 2048  alias _BIDI_RESPONSE_CONTAINER* PBIDI_RESPONSE_CONTAINER;                        <
 2049  alias _BIDI_RESPONSE_CONTAINER* LPBIDI_RESPONSE_CONTAINER;                       <
 2050                                                                                   <
 2051  const wchar[] BIDI_ACTION_ENUM_SCHEMA = "EnumSchema";                            <
 2052  const wchar[] BIDI_ACTION_GET = "Get";                                           <
 2053  const wchar[] BIDI_ACTION_SET = "Set";                                           <
 2054  const wchar[] BIDI_ACTION_GET_ALL = "GetAll";                                    <
 2055                                                                                   <
 2056  enum _0 {                                                                        <
 2057    BIDI_NULL = 0,                                                                 <
 2058    BIDI_INT = 1,                                                                  <
 2059    BIDI_FLOAT = 2,                                                                <
 2060    BIDI_BOOL = 3,                                                                 <
 2061    BIDI_STRING = 4,                                                               <
 2062    BIDI_TEXT = 5,                                                                 <
 2063    BIDI_ENUM = 6,                                                                 <
 2064    BIDI_BLOB = 7,                                                                 <
 2065  }                                                                                <
 2066  alias _0 BIDI_TYPE;                                                              <
 2067                                                                                   <
 2068  enum : uint { BIDI_ACCESS_ADMINISTRATOR = 0x1 }                                  <
 2069  enum : uint { BIDI_ACCESS_USER = 0x2 }                                           <
 2070                                                                                   <
 2071  enum : uint { ERROR_BIDI_STATUS_OK = 0 }                                         <
 2072  alias ERROR_NOT_SUPPORTED ERROR_BIDI_NOT_SUPPORTED;                              <
 2073                                                                                   <
 2074  enum : uint { ERROR_BIDI_ERROR_BASE = 13000 }                                    <
 2075  const uint ERROR_BIDI_STATUS_WARNING = ERROR_BIDI_ERROR_BASE + 1;                <
 2076  const uint ERROR_BIDI_SCHEMA_READ_ONLY = ERROR_BIDI_ERROR_BASE + 2;              <
 2077  const uint ERROR_BIDI_SERVER_OFFLINE = ERROR_BIDI_ERROR_BASE + 3;                <
 2078  const uint ERROR_BIDI_DEVICE_OFFLINE = ERROR_BIDI_ERROR_BASE + 4;                <
 2079  const uint ERROR_BIDI_SCHEMA_NOT_SUPPORTED = ERROR_BIDI_ERROR_BASE + 5;          <
 2080                                                                                   <
 2081  extern(Windows) export DWORD WaitForPrinterChange(                               <
 2082       HANDLE  hPrinter,                                                           <
 2083       DWORD   Flags                                                               <
 2084  );                                                                               <
 2085                                                                                   <
 2086  extern(Windows) export HANDLE FindFirstPrinterChangeNotification(                <
 2087       HANDLE  hPrinter,                                                           <
 2088       DWORD   fdwFlags,                                                           <
 2089       DWORD   fdwOptions,                                                         <
 2090       LPVOID  pPrinterNotifyOptions                                               <
 2091  );                                                                               <
 2092                                                                                   <
 2093  extern(Windows) export BOOL FindNextPrinterChangeNotification(                   <
 2094       HANDLE hChange,                                                             <
 2095       PDWORD pdwChange,                                                           <
 2096       LPVOID pvReserved,                                                          <
 2097       LPVOID *ppPrinterNotifyInfo                                                 <
 2098  );                                                                               <
 2099                                                                                   <
 2100  extern(Windows) export BOOL FreePrinterNotifyInfo(                               <
 2101       PPRINTER_NOTIFY_INFO pPrinterNotifyInfo                                     <
 2102  );                                                                               <
 2103                                                                                   <
 2104  extern(Windows) export BOOL FindClosePrinterChangeNotification(                  <
 2105       HANDLE hChange                                                              <
 2106  );                                                                               <
 2107                                                                                   <
 2108  enum : uint { PRINTER_CHANGE_ADD_PRINTER = 0x00000001 }                          <
 2109  enum : uint { PRINTER_CHANGE_SET_PRINTER = 0x00000002 }                          <
 2110  enum : uint { PRINTER_CHANGE_DELETE_PRINTER = 0x00000004 }                       <
 2111  enum : uint { PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = 0x00000008 }            <
 2112  enum : uint { PRINTER_CHANGE_PRINTER = 0x000000FF }                              <
 2113  enum : uint { PRINTER_CHANGE_ADD_JOB = 0x00000100 }                              <
 2114  enum : uint { PRINTER_CHANGE_SET_JOB = 0x00000200 }                              <
 2115  enum : uint { PRINTER_CHANGE_DELETE_JOB = 0x00000400 }                           <
 2116  enum : uint { PRINTER_CHANGE_WRITE_JOB = 0x00000800 }                            <
 2117  enum : uint { PRINTER_CHANGE_JOB = 0x0000FF00 }                                  <
 2118  enum : uint { PRINTER_CHANGE_ADD_FORM = 0x00010000 }                             <
 2119  enum : uint { PRINTER_CHANGE_SET_FORM = 0x00020000 }                             <
 2120  enum : uint { PRINTER_CHANGE_DELETE_FORM = 0x00040000 }                          <
 2121  enum : uint { PRINTER_CHANGE_FORM = 0x00070000 }                                 <
 2122  enum : uint { PRINTER_CHANGE_ADD_PORT = 0x00100000 }                             <
 2123  enum : uint { PRINTER_CHANGE_CONFIGURE_PORT = 0x00200000 }                       <
 2124  enum : uint { PRINTER_CHANGE_DELETE_PORT = 0x00400000 }                          <
 2125  enum : uint { PRINTER_CHANGE_PORT = 0x00700000 }                                 <
 2126  enum : uint { PRINTER_CHANGE_ADD_PRINT_PROCESSOR = 0x01000000 }                  <
 2127  enum : uint { PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = 0x04000000 }               <
 2128  enum : uint { PRINTER_CHANGE_PRINT_PROCESSOR = 0x07000000 }                      <
 2129  enum : uint { PRINTER_CHANGE_ADD_PRINTER_DRIVER = 0x10000000 }                   <
 2130  enum : uint { PRINTER_CHANGE_SET_PRINTER_DRIVER = 0x20000000 }                   <
 2131  enum : uint { PRINTER_CHANGE_DELETE_PRINTER_DRIVER = 0x40000000 }                <
 2132  enum : uint { PRINTER_CHANGE_PRINTER_DRIVER = 0x70000000 }                       <
 2133  enum : uint { PRINTER_CHANGE_TIMEOUT = 0x80000000 }                              <
 2134  enum : uint { PRINTER_CHANGE_ALL = 0x7777FFFF }                                  <
 2135                                                                                   <
 2136  extern(Windows) export DWORD PrinterMessageBoxA(                                 <
 2137       HANDLE  hPrinter,                                                           <
 2138       DWORD   Error,                                                              <
 2139       HWND    hWnd,                                                               <
 2140       LPSTR   pText,                                                              <
 2141       LPSTR   pCaption,                                                           <
 2142       DWORD   dwType                                                              <
 2143  );                                                                               <
 2144  extern(Windows) export DWORD PrinterMessageBoxW(                                 <
 2145       HANDLE  hPrinter,                                                           <
 2146       DWORD   Error,                                                              <
 2147       HWND    hWnd,                                                               <
 2148       LPWSTR   pText,                                                             <
 2149       LPWSTR   pCaption,                                                          <
 2150       DWORD   dwType                                                              <
 2151  );                                                                               <
 2152  // #ifdef UNICODE                                                                <
 2153  alias PrinterMessageBoxW PrinterMessageBox;                                      <
 2154  // #else                                                                         <
 2155  // #...                                                                          <
 2156  // #endif // !UNICODE                                                            <
 2157                                                                                   <
 2158  enum : uint { PRINTER_ERROR_INFORMATION = 0x80000000 }                           <
 2159  enum : uint { PRINTER_ERROR_WARNING = 0x40000000 }                               <
 2160  enum : uint { PRINTER_ERROR_SEVERE = 0x20000000 }                                <
 2161                                                                                   <
 2162  enum : uint { PRINTER_ERROR_OUTOFPAPER = 0x00000001 }                            <
 2163  enum : uint { PRINTER_ERROR_JAM = 0x00000002 }                                   <
 2164  enum : uint { PRINTER_ERROR_OUTOFTONER = 0x00000004 }                            <
 2165                                                                                   <
 2166  extern(Windows) export BOOL ClosePrinter(                                        <
 2167       HANDLE hPrinter                                                             <
 2168  );                                                                               <
 2169                                                                                   <
 2170  extern(Windows) export BOOL AddFormA(                                            <
 2171       HANDLE  hPrinter,                                                           <
 2172       DWORD   Level,                                                              <
 2173       LPBYTE  pForm                                                               <
 2174  );                                                                               <
 2175  extern(Windows) export BOOL AddFormW(                                            <
 2176       HANDLE  hPrinter,                                                           <
 2177       DWORD   Level,                                                              <
 2178       LPBYTE  pForm                                                               <
 2179  );                                                                               <
 2180  // #ifdef UNICODE                                                                <
 2181  alias AddFormW AddForm;                                                          <
 2182  // #else                                                                         <
 2183  // #...                                                                          <
 2184  // #endif // !UNICODE                                                            <
 2185                                                                                   <
 2186  extern(Windows) export BOOL DeleteFormA(                                         <
 2187       HANDLE  hPrinter,                                                           <
 2188       LPSTR   pFormName                                                           <
 2189  );                                                                               <
 2190  extern(Windows) export BOOL DeleteFormW(                                         <
 2191       HANDLE  hPrinter,                                                           <
 2192       LPWSTR   pFormName                                                          <
 2193  );                                                                               <
 2194  // #ifdef UNICODE                                                                <
 2195  alias DeleteFormW DeleteForm;                                                    <
 2196  // #else                                                                         <
 2197  // #...                                                                          <
 2198  // #endif // !UNICODE                                                            <
 2199                                                                                   <
 2200  extern(Windows) export BOOL GetFormA(                                            <
 2201       HANDLE  hPrinter,                                                           <
 2202       LPSTR   pFormName,                                                          <
 2203       DWORD   Level,                                                              <
 2204       LPBYTE  pForm,                                                              <
 2205       DWORD   cbBuf,                                                              <
 2206       LPDWORD pcbNeeded                                                           <
 2207  );                                                                               <
 2208  extern(Windows) export BOOL GetFormW(                                            <
 2209       HANDLE  hPrinter,                                                           <
 2210       LPWSTR   pFormName,                                                         <
 2211       DWORD   Level,                                                              <
 2212       LPBYTE  pForm,                                                              <
 2213       DWORD   cbBuf,                                                              <
 2214       LPDWORD pcbNeeded                                                           <
 2215  );                                                                               <
 2216  // #ifdef UNICODE                                                                <
 2217  alias GetFormW GetForm;                                                          <
 2218  // #else                                                                         <
 2219  // #...                                                                          <
 2220  // #endif // !UNICODE                                                            <
 2221                                                                                   <
 2222  extern(Windows) export BOOL SetFormA(                                            <
 2223       HANDLE  hPrinter,                                                           <
 2224       LPSTR   pFormName,                                                          <
 2225       DWORD   Level,                                                              <
 2226       LPBYTE  pForm                                                               <
 2227  );                                                                               <
 2228  extern(Windows) export BOOL SetFormW(                                            <
 2229       HANDLE  hPrinter,                                                           <
 2230       LPWSTR   pFormName,                                                         <
 2231       DWORD   Level,                                                              <
 2232       LPBYTE  pForm                                                               <
 2233  );                                                                               <
 2234  // #ifdef UNICODE                                                                <
 2235  alias SetFormW SetForm;                                                          <
 2236  // #else                                                                         <
 2237  // #...                                                                          <
 2238  // #endif // !UNICODE                                                            <
 2239                                                                                   <
 2240  extern(Windows) export BOOL EnumFormsA(                                          <
 2241       HANDLE  hPrinter,                                                           <
 2242       DWORD   Level,                                                              <
 2243       LPBYTE  pForm,                                                              <
 2244       DWORD   cbBuf,                                                              <
 2245       LPDWORD pcbNeeded,                                                          <
 2246       LPDWORD pcReturned                                                          <
 2247  );                                                                               <
 2248  extern(Windows) export BOOL EnumFormsW(                                          <
 2249       HANDLE  hPrinter,                                                           <
 2250       DWORD   Level,                                                              <
 2251       LPBYTE  pForm,                                                              <
 2252       DWORD   cbBuf,                                                              <
 2253       LPDWORD pcbNeeded,                                                          <
 2254       LPDWORD pcReturned                                                          <
 2255  );                                                                               <
 2256  // #ifdef UNICODE                                                                <
 2257  alias EnumFormsW EnumForms;                                                      <
 2258  // #else                                                                         <
 2259  // #...                                                                          <
 2260  // #endif // !UNICODE                                                            <
 2261                                                                                   <
 2262  extern(Windows) export BOOL EnumMonitorsA(                                       <
 2263       LPSTR   pName,                                                              <
 2264       DWORD   Level,                                                              <
 2265       LPBYTE  pMonitors,                                                          <
 2266       DWORD   cbBuf,                                                              <
 2267       LPDWORD pcbNeeded,                                                          <
 2268       LPDWORD pcReturned                                                          <
 2269  );                                                                               <
 2270  extern(Windows) export BOOL EnumMonitorsW(                                       <
 2271       LPWSTR   pName,                                                             <
 2272       DWORD   Level,                                                              <
 2273       LPBYTE  pMonitors,                                                          <
 2274       DWORD   cbBuf,                                                              <
 2275       LPDWORD pcbNeeded,                                                          <
 2276       LPDWORD pcReturned                                                          <
 2277  );                                                                               <
 2278  // #ifdef UNICODE                                                                <
 2279  alias EnumMonitorsW EnumMonitors;                                                <
 2280  // #else                                                                         <
 2281  // #...                                                                          <
 2282  // #endif // !UNICODE                                                            <
 2283                                                                                   <
 2284  extern(Windows) export BOOL AddMonitorA(                                         <
 2285       LPSTR   pName,                                                              <
 2286       DWORD   Level,                                                              <
 2287       LPBYTE  pMonitors                                                           <
 2288  );                                                                               <
 2289  extern(Windows) export BOOL AddMonitorW(                                         <
 2290       LPWSTR   pName,                                                             <
 2291       DWORD   Level,                                                              <
 2292       LPBYTE  pMonitors                                                           <
 2293  );                                                                               <
 2294  // #ifdef UNICODE                                                                <
 2295  alias AddMonitorW AddMonitor;                                                    <
 2296  // #else                                                                         <
 2297  // #...                                                                          <
 2298  // #endif // !UNICODE                                                            <
 2299                                                                                   <
 2300  extern(Windows) export BOOL DeleteMonitorA(                                      <
 2301       LPSTR   pName,                                                              <
 2302       LPSTR   pEnvironment,                                                       <
 2303       LPSTR   pMonitorName                                                        <
 2304  );                                                                               <
 2305  extern(Windows) export BOOL DeleteMonitorW(                                      <
 2306       LPWSTR   pName,                                                             <
 2307       LPWSTR   pEnvironment,                                                      <
 2308       LPWSTR   pMonitorName                                                       <
 2309  );                                                                               <
 2310  // #ifdef UNICODE                                                                <
 2311  alias DeleteMonitorW DeleteMonitor;                                              <
 2312  // #else                                                                         <
 2313  // #...                                                                          <
 2314  // #endif // !UNICODE                                                            <
 2315                                                                                   <
 2316  extern(Windows) export BOOL EnumPortsA(                                          <
 2317       LPSTR   pName,                                                              <
 2318       DWORD   Level,                                                              <
 2319       LPBYTE  pPorts,                                                             <
 2320       DWORD   cbBuf,                                                              <
 2321       LPDWORD pcbNeeded,                                                          <
 2322       LPDWORD pcReturned                                                          <
 2323  );                                                                               <
 2324  extern(Windows) export BOOL EnumPortsW(                                          <
 2325       LPWSTR   pName,                                                             <
 2326       DWORD   Level,                                                              <
 2327       LPBYTE  pPorts,                                                             <
 2328       DWORD   cbBuf,                                                              <
 2329       LPDWORD pcbNeeded,                                                          <
 2330       LPDWORD pcReturned                                                          <
 2331  );                                                                               <
 2332  // #ifdef UNICODE                                                                <
 2333  alias EnumPortsW EnumPorts;                                                      <
 2334  // #else                                                                         <
 2335  // #...                                                                          <
 2336  // #endif // !UNICODE                                                            <
 2337                                                                                   <
 2338  extern(Windows) export BOOL AddPortA(                                            <
 2339       LPSTR   pName,                                                              <
 2340       HWND    hWnd,                                                               <
 2341       LPSTR   pMonitorName                                                        <
 2342  );                                                                               <
 2343  extern(Windows) export BOOL AddPortW(                                            <
 2344       LPWSTR   pName,                                                             <
 2345       HWND    hWnd,                                                               <
 2346       LPWSTR   pMonitorName                                                       <
 2347  );                                                                               <
 2348  // #ifdef UNICODE                                                                <
 2349  alias AddPortW AddPort;                                                          <
 2350  // #else                                                                         <
 2351  // #...                                                                          <
 2352  // #endif // !UNICODE                                                            <
 2353                                                                                   <
 2354  extern(Windows) export BOOL ConfigurePortA(                                      <
 2355       LPSTR   pName,                                                              <
 2356       HWND    hWnd,                                                               <
 2357       LPSTR   pPortName                                                           <
 2358  );                                                                               <
 2359  extern(Windows) export BOOL ConfigurePortW(                                      <
 2360       LPWSTR   pName,                                                             <
 2361       HWND    hWnd,                                                               <
 2362       LPWSTR   pPortName                                                          <
 2363  );                                                                               <
 2364  // #ifdef UNICODE                                                                <
 2365  alias ConfigurePortW ConfigurePort;                                              <
 2366  // #else                                                                         <
 2367  // #...                                                                          <
 2368  // #endif // !UNICODE                                                            <
 2369                                                                                   <
 2370  extern(Windows) export BOOL DeletePortA(                                         <
 2371       LPSTR pName,                                                                <
 2372       HWND    hWnd,                                                               <
 2373       LPSTR pPortName                                                             <
 2374  );                                                                               <
 2375  extern(Windows) export BOOL DeletePortW(                                         <
 2376       LPWSTR pName,                                                               <
 2377       HWND    hWnd,                                                               <
 2378       LPWSTR pPortName                                                            <
 2379  );                                                                               <
 2380  // #ifdef UNICODE                                                                <
 2381  alias DeletePortW DeletePort;                                                    <
 2382  // #else                                                                         <
 2383  // #...                                                                          <
 2384  // #endif // !UNICODE                                                            <
 2385                                                                                   <
 2386  extern(Windows) export BOOL XcvDataW(                                            <
 2387       HANDLE  hXcv,                                                               <
 2388       PCWSTR  pszDataName,                                                        <
 2389       PBYTE   pInputData,                                                         <
 2390       DWORD   cbInputData,                                                        <
 2391       PBYTE   pOutputData,                                                        <
 2392       DWORD   cbOutputData,                                                       <
 2393       PDWORD  pcbOutputNeeded,                                                    <
 2394       PDWORD  pdwStatus                                                           <
 2395  );                                                                               <
 2396  alias XcvDataW XcvData;                                                          <
 2397                                                                                   <
 2398  extern(Windows) export BOOL GetDefaultPrinterA(                                  <
 2399       LPSTR   pszBuffer,                                                          <
 2400       LPDWORD  pcchBuffer                                                         <
 2401      );                                                                           <
 2402  extern(Windows) export BOOL GetDefaultPrinterW(                                  <
 2403       LPWSTR   pszBuffer,                                                         <
 2404       LPDWORD  pcchBuffer                                                         <
 2405      );                                                                           <
 2406  // #ifdef UNICODE                                                                <
 2407  alias GetDefaultPrinterW GetDefaultPrinter;                                      <
 2408  // #else                                                                         <
 2409  // #...                                                                          <
 2410  // #endif // !UNICODE                                                            <
 2411                                                                                   <
 2412  extern(Windows) export BOOL SetDefaultPrinterA(                                  <
 2413       LPCSTR pszPrinter                                                           <
 2414      );                                                                           <
 2415  extern(Windows) export BOOL SetDefaultPrinterW(                                  <
 2416       LPCWSTR pszPrinter                                                          <
 2417      );                                                                           <
 2418  // #ifdef UNICODE                                                                <
 2419  alias SetDefaultPrinterW SetDefaultPrinter;                                      <
 2420  // #else                                                                         <
 2421  // #...                                                                          <
 2422  // #endif // !UNICODE                                                            <
 2423                                                                                   <
 2424  extern(Windows) export BOOL SetPortA(                                            <
 2425       LPSTR     pName,                                                            <
 2426       LPSTR     pPortName,                                                        <
 2427       DWORD       dwLevel,                                                        <
 2428       LPBYTE      pPortInfo                                                       <
 2429  );                                                                               <
 2430  extern(Windows) export BOOL SetPortW(                                            <
 2431       LPWSTR     pName,                                                           <
 2432       LPWSTR     pPortName,                                                       <
 2433       DWORD       dwLevel,                                                        <
 2434       LPBYTE      pPortInfo                                                       <
 2435  );                                                                               <
 2436  // #ifdef UNICODE                                                                <
 2437  alias SetPortW SetPort;                                                          <
 2438  // #else                                                                         <
 2439  // #...                                                                          <
 2440  // #endif // !UNICODE                                                            <
 2441                                                                                   <
 2442  extern(Windows) export BOOL AddPrinterConnectionA(                               <
 2443       LPSTR   pName                                                               <
 2444  );                                                                               <
 2445  extern(Windows) export BOOL AddPrinterConnectionW(                               <
 2446       LPWSTR   pName                                                              <
 2447  );                                                                               <
 2448  // #ifdef UNICODE                                                                <
 2449  alias AddPrinterConnectionW AddPrinterConnection;                                <
 2450  // #else                                                                         <
 2451  // #...                                                                          <
 2452  // #endif // !UNICODE                                                            <
 2453                                                                                   <
 2454  extern(Windows) export BOOL DeletePrinterConnectionA(                            <
 2455       LPSTR   pName                                                               <
 2456  );                                                                               <
 2457  extern(Windows) export BOOL DeletePrinterConnectionW(                            <
 2458       LPWSTR   pName                                                              <
 2459  );                                                                               <
 2460  // #ifdef UNICODE                                                                <
 2461  alias DeletePrinterConnectionW DeletePrinterConnection;                          <
 2462  // #else                                                                         <
 2463  // #...                                                                          <
 2464  // #endif // !UNICODE                                                            <
 2465                                                                                   <
 2466  extern(Windows) export HANDLE ConnectToPrinterDlg(                               <
 2467       HWND    hwnd,                                                               <
 2468       DWORD   Flags                                                               <
 2469  );                                                                               <
 2470                                                                                   <
 2471  struct _PROVIDOR_INFO_1A {                                                       <
 2472    LPSTR pName;                                                                   <
 2473    LPSTR pEnvironment;                                                            <
 2474    LPSTR pDLLName;                                                                <
 2475  }                                                                                <
 2476  alias _PROVIDOR_INFO_1A PROVIDOR_INFO_1A;                                        <
 2477  alias _PROVIDOR_INFO_1A* PPROVIDOR_INFO_1A;                                      <
 2478  alias _PROVIDOR_INFO_1A* LPPROVIDOR_INFO_1A;                                     <
 2479                                                                                   <
 2480  struct _PROVIDOR_INFO_1W {                                                       <
 2481    LPWSTR pName;                                                                  <
 2482    LPWSTR pEnvironment;                                                           <
 2483    LPWSTR pDLLName;                                                               <
 2484  }                                                                                <
 2485  alias _PROVIDOR_INFO_1W PROVIDOR_INFO_1W;                                        <
 2486  alias _PROVIDOR_INFO_1W* PPROVIDOR_INFO_1W;                                      <
 2487  alias _PROVIDOR_INFO_1W* LPPROVIDOR_INFO_1W;                                     <
 2488                                                                                   <
 2489  // #ifdef UNICODE                                                                <
 2490  alias PROVIDOR_INFO_1W PROVIDOR_INFO_1;                                          <
 2491  alias PPROVIDOR_INFO_1W PPROVIDOR_INFO_1;                                        <
 2492  alias LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1;                                      <
 2493  // #else                                                                         <
 2494  // ...                                                                           <
 2495  // #endif // UNICODE                                                             <
 2496                                                                                   <
 2497  struct _PROVIDOR_INFO_2A {                                                       <
 2498    LPSTR pOrder;                                                                  <
 2499  }                                                                                <
 2500  alias _PROVIDOR_INFO_2A PROVIDOR_INFO_2A;                                        <
 2501  alias _PROVIDOR_INFO_2A* PPROVIDOR_INFO_2A;                                      <
 2502  alias _PROVIDOR_INFO_2A* LPPROVIDOR_INFO_2A;                                     <
 2503                                                                                   <
 2504  struct _PROVIDOR_INFO_2W {                                                       <
 2505    LPWSTR pOrder;                                                                 <
 2506  }                                                                                <
 2507  alias _PROVIDOR_INFO_2W PROVIDOR_INFO_2W;                                        <
 2508  alias _PROVIDOR_INFO_2W* PPROVIDOR_INFO_2W;                                      <
 2509  alias _PROVIDOR_INFO_2W* LPPROVIDOR_INFO_2W;                                     <
 2510                                                                                   <
 2511  // #ifdef UNICODE                                                                <
 2512  alias PROVIDOR_INFO_2W PROVIDOR_INFO_2;                                          <
 2513  alias PPROVIDOR_INFO_2W PPROVIDOR_INFO_2;                                        <
 2514  alias LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2;                                      <
 2515  // #else                                                                         <
 2516  // ...                                                                           <
 2517  // #endif // UNICODE                                                             <
 2518                                                                                   <
 2519  extern(Windows) export BOOL AddPrintProvidorA(                                   <
 2520       LPSTR  pName,                                                               <
 2521       DWORD    level,                                                             <
 2522       LPBYTE   pProvidorInfo                                                      <
 2523  );                                                                               <
 2524  extern(Windows) export BOOL AddPrintProvidorW(                                   <
 2525       LPWSTR  pName,                                                              <
 2526       DWORD    level,                                                             <
 2527       LPBYTE   pProvidorInfo                                                      <
 2528  );                                                                               <
 2529  // #ifdef UNICODE                                                                <
 2530  alias AddPrintProvidorW AddPrintProvidor;                                        <
 2531  // #else                                                                         <
 2532  // #...                                                                          <
 2533  // #endif // !UNICODE                                                            <
 2534                                                                                   <
 2535  extern(Windows) export BOOL DeletePrintProvidorA(                                <
 2536       LPSTR   pName,                                                              <
 2537       LPSTR   pEnvironment,                                                       <
 2538       LPSTR   pPrintProvidorName                                                  <
 2539  );                                                                               <
 2540  extern(Windows) export BOOL DeletePrintProvidorW(                                <
 2541       LPWSTR   pName,                                                             <
 2542       LPWSTR   pEnvironment,                                                      <
 2543       LPWSTR   pPrintProvidorName                                                 <
 2544  );                                                                               <
 2545  // #ifdef UNICODE                                                                <
 2546  alias DeletePrintProvidorW DeletePrintProvidor;                                  <
 2547  // #else                                                                         <
 2548  // #...                                                                          <
 2549  // #endif // !UNICODE                                                            <
 2550                                                                                   <
 2551  const TCHAR[] SPLREG_DEFAULT_SPOOL_DIRECTORY = "DefaultSpoolDirectory";          <
 2552  const TCHAR[] SPLREG_PORT_THREAD_PRIORITY_DEFAULT = "PortThreadPriorityDefault"; <
 2553  const TCHAR[] SPLREG_PORT_THREAD_PRIORITY = "PortThreadPriority";                <
 2554  const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT = "SchedulerThreadPriorit <
 2555  const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY = "SchedulerThreadPriority";      <
 2556  const TCHAR[] SPLREG_BEEP_ENABLED = "BeepEnabled";                               <
 2557  const TCHAR[] SPLREG_NET_POPUP = "NetPopup";                                     <
 2558  const TCHAR[] SPLREG_RETRY_POPUP = "RetryPopup";                                 <
 2559  const TCHAR[] SPLREG_NET_POPUP_TO_COMPUTER = "NetPopupToComputer";               <
 2560  const TCHAR[] SPLREG_EVENT_LOG = "EventLog";                                     <
 2561  const TCHAR[] SPLREG_MAJOR_VERSION = "MajorVersion";                             <
 2562  const TCHAR[] SPLREG_MINOR_VERSION = "MinorVersion";                             <
 2563  const TCHAR[] SPLREG_ARCHITECTURE = "Architecture";                              <
 2564  const TCHAR[] SPLREG_OS_VERSION = "OSVersion";                                   <
 2565  const TCHAR[] SPLREG_OS_VERSIONEX = "OSVersionEx";                               <
 2566  const TCHAR[] SPLREG_DS_PRESENT = "DsPresent";                                   <
 2567  const TCHAR[] SPLREG_DS_PRESENT_FOR_USER = "DsPresentForUser";                   <
 2568  const TCHAR[] SPLREG_REMOTE_FAX = "RemoteFax";                                   <
 2569  const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ERROR = "RestartJobOnPoolError";        <
 2570  const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ENABLED = "RestartJobOnPoolEnabled";    <
 2571  const TCHAR[] SPLREG_DNS_MACHINE_NAME = "DNSMachineName";                        <
 2572                                                                                   <
 2573  enum : uint { SERVER_ACCESS_ADMINISTER = 0x00000001 }                            <
 2574  enum : uint { SERVER_ACCESS_ENUMERATE = 0x00000002 }                             <
 2575                                                                                   <
 2576  enum : uint { PRINTER_ACCESS_ADMINISTER = 0x00000004 }                           <
 2577  enum : uint { PRINTER_ACCESS_USE = 0x00000008 }                                  <
 2578                                                                                   <
 2579  enum : uint { JOB_ACCESS_ADMINISTER = 0x00000010 }                               <
 2580                                                                                   <
 2581  const uint SERVER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINIST <
 2582                                                                                   <
 2583  const uint SERVER_READ = STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE;         <
 2584                                                                                   <
 2585  const uint SERVER_WRITE = STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SER <
 2586                                                                                   <
 2587  const uint SERVER_EXECUTE = STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE;   <
 2588                                                                                   <
 2589  const uint PRINTER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINI <
 2590                                                                                   <
 2591  const uint PRINTER_READ = STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE;             <
 2592                                                                                   <
 2593  const uint PRINTER_WRITE = STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE;           <
 2594                                                                                   <
 2595  const uint PRINTER_EXECUTE = STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE;       <
 2596                                                                                   <
 2597  const uint JOB_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER;    <
 2598                                                                                   <
 2599  const uint JOB_READ = STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER;              <
 2600                                                                                   <
 2601  const uint JOB_WRITE = STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER;            <
 2602                                                                                   <
 2603  const uint JOB_EXECUTE = STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER;        <
 2604                                                                                   <
 2605  const TCHAR[] SPLDS_SPOOLER_KEY = "DsSpooler";                                   <
 2606  const TCHAR[] SPLDS_DRIVER_KEY = "DsDriver";                                     <
 2607  const TCHAR[] SPLDS_USER_KEY = "DsUser";                                         <
 2608                                                                                   <
 2609  const TCHAR[] SPLDS_ASSET_NUMBER = "assetNumber";                                <
 2610  const TCHAR[] SPLDS_BYTES_PER_MINUTE = "bytesPerMinute";                         <
 2611  const TCHAR[] SPLDS_DESCRIPTION = "description";                                 <
 2612  const TCHAR[] SPLDS_DRIVER_NAME = "driverName";                                  <
 2613  const TCHAR[] SPLDS_DRIVER_VERSION = "driverVersion";                            <
 2614  const TCHAR[] SPLDS_LOCATION = "location";                                       <
 2615  const TCHAR[] SPLDS_PORT_NAME = "portName";                                      <
 2616  const TCHAR[] SPLDS_PRINT_ATTRIBUTES = "printAttributes";                        <
 2617  const TCHAR[] SPLDS_PRINT_BIN_NAMES = "printBinNames";                           <
 2618  const TCHAR[] SPLDS_PRINT_COLLATE = "printCollate";                              <
 2619  const TCHAR[] SPLDS_PRINT_COLOR = "printColor";                                  <
 2620  const TCHAR[] SPLDS_PRINT_DUPLEX_SUPPORTED = "printDuplexSupported";             <
 2621  const TCHAR[] SPLDS_PRINT_END_TIME = "printEndTime";                             <
 2622  const TCHAR[] SPLDS_PRINTER_CLASS = "printQueue";                                <
 2623  const TCHAR[] SPLDS_PRINTER_NAME = "printerName";                                <
 2624  const TCHAR[] SPLDS_PRINT_KEEP_PRINTED_JOBS = "printKeepPrintedJobs";            <
 2625  const TCHAR[] SPLDS_PRINT_LANGUAGE = "printLanguage";                            <
 2626  const TCHAR[] SPLDS_PRINT_MAC_ADDRESS = "printMACAddress";                       <
 2627  const TCHAR[] SPLDS_PRINT_MAX_X_EXTENT = "printMaxXExtent";                      <
 2628  const TCHAR[] SPLDS_PRINT_MAX_Y_EXTENT = "printMaxYExtent";                      <
 2629  const TCHAR[] SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED = "printMaxResolutionSupporte <
 2630  const TCHAR[] SPLDS_PRINT_MEDIA_READY = "printMediaReady";                       <
 2631  const TCHAR[] SPLDS_PRINT_MEDIA_SUPPORTED = "printMediaSupported";               <
 2632  const TCHAR[] SPLDS_PRINT_MEMORY = "printMemory";                                <
 2633  const TCHAR[] SPLDS_PRINT_MIN_X_EXTENT = "printMinXExtent";                      <
 2634  const TCHAR[] SPLDS_PRINT_MIN_Y_EXTENT = "printMinYExtent";                      <
 2635  const TCHAR[] SPLDS_PRINT_NETWORK_ADDRESS = "printNetworkAddress";               <
 2636  const TCHAR[] SPLDS_PRINT_NOTIFY = "printNotify";                                <
 2637  const TCHAR[] SPLDS_PRINT_NUMBER_UP = "printNumberUp";                           <
 2638  const TCHAR[] SPLDS_PRINT_ORIENTATIONS_SUPPORTED = "printOrientationsSupported"; <
 2639  const TCHAR[] SPLDS_PRINT_OWNER = "printOwner";                                  <
 2640  const TCHAR[] SPLDS_PRINT_PAGES_PER_MINUTE = "printPagesPerMinute";              <
 2641  const TCHAR[] SPLDS_PRINT_RATE = "printRate";                                    <
 2642  const TCHAR[] SPLDS_PRINT_RATE_UNIT = "printRateUnit";                           <
 2643  const TCHAR[] SPLDS_PRINT_SEPARATOR_FILE = "printSeparatorFile";                 <
 2644  const TCHAR[] SPLDS_PRINT_SHARE_NAME = "printShareName";                         <
 2645  const TCHAR[] SPLDS_PRINT_SPOOLING = "printSpooling";                            <
 2646  const TCHAR[] SPLDS_PRINT_STAPLING_SUPPORTED = "printStaplingSupported";         <
 2647  const TCHAR[] SPLDS_PRINT_START_TIME = "printStartTime";                         <
 2648  const TCHAR[] SPLDS_PRINT_STATUS = "printStatus";                                <
 2649  const TCHAR[] SPLDS_PRIORITY = "priority";                                       <
 2650  const TCHAR[] SPLDS_SERVER_NAME = "serverName";                                  <
 2651  const TCHAR[] SPLDS_SHORT_SERVER_NAME = "shortServerName";                       <
 2652  const TCHAR[] SPLDS_UNC_NAME = "uNCName";                                        <
 2653  const TCHAR[] SPLDS_URL = "url";                                                 <
 2654  const TCHAR[] SPLDS_FLAGS = "flags";                                             <
 2655  const TCHAR[] SPLDS_VERSION_NUMBER = "versionNumber";                            <
 2656                                                                                   <
 2657  const TCHAR[] SPLDS_PRINTER_NAME_ALIASES = "printerNameAliases";                 <
 2658  const TCHAR[] SPLDS_PRINTER_LOCATIONS = "printerLocations";                      <
 2659  const TCHAR[] SPLDS_PRINTER_MODEL = "printerModel";                              <
 2660                                                                                   <
 2661  // #ifdef __cplusplus                                                            <
 2662  // }                                                                             <
 2663  // #endif                                                                        <
 2664                                                                                   <
 2665  // #endif // _WINSPOOL_                                                          <