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