setupapi: Correct type to match PSDK.
[wine] / include / winspool.h
1 /* Definitions for printing
2  *
3  * Copyright 1998 Huw Davies, Andreas Mohr
4  *
5  * Portions Copyright (c) 1999 Corel Corporation
6  *                             (Paul Quinn, Albert Den Haan)
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21  */
22 #ifndef __WINE_WINSPOOL_H
23 #define __WINE_WINSPOOL_H
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 /* DEFINES */
30
31 #define PRINTER_ATTRIBUTE_QUEUED            0x00000001
32 #define PRINTER_ATTRIBUTE_DIRECT            0x00000002
33 #define PRINTER_ATTRIBUTE_DEFAULT           0x00000004
34 #define PRINTER_ATTRIBUTE_SHARED            0x00000008
35 #define PRINTER_ATTRIBUTE_NETWORK           0x00000010
36 #define PRINTER_ATTRIBUTE_HIDDEN            0x00000020
37 #define PRINTER_ATTRIBUTE_LOCAL             0x00000040
38 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ       0x00000080
39 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS   0x00000100
40 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
41 #define PRINTER_ATTRIBUTE_WORK_OFFLINE      0x00000400
42 #define PRINTER_ATTRIBUTE_ENABLE_BIDI       0x00000800
43 #define PRINTER_ATTRIBUTE_RAW_ONLY          0x00001000
44 #define PRINTER_ATTRIBUTE_PUBLISHED         0x00002000
45
46 #define PRINTER_CONTROL_PAUSE      1
47 #define PRINTER_CONTROL_RESUME     2
48 #define PRINTER_CONTROL_PURGE      3
49 #define PRINTER_CONTROL_SET_STATUS 4
50
51 #define PRINTER_ENUM_DEFAULT     0x00000001
52 #define PRINTER_ENUM_LOCAL       0x00000002
53 #define PRINTER_ENUM_CONNECTIONS 0x00000004
54 #define PRINTER_ENUM_FAVORITE    0x00000004
55 #define PRINTER_ENUM_NAME        0x00000008
56 #define PRINTER_ENUM_REMOTE      0x00000010
57 #define PRINTER_ENUM_SHARED      0x00000020
58 #define PRINTER_ENUM_NETWORK     0x00000040
59
60 #define PRINTER_ENUM_EXPAND      0x00004000
61 #define PRINTER_ENUM_CONTAINER   0x00008000
62
63 #define PRINTER_ENUM_ICONMASK    0x00ff0000
64 #define PRINTER_ENUM_ICON1       0x00010000
65 #define PRINTER_ENUM_ICON2       0x00020000
66 #define PRINTER_ENUM_ICON3       0x00040000
67 #define PRINTER_ENUM_ICON4       0x00080000
68 #define PRINTER_ENUM_ICON5       0x00100000
69 #define PRINTER_ENUM_ICON6       0x00200000
70 #define PRINTER_ENUM_ICON7       0x00400000
71 #define PRINTER_ENUM_ICON8       0x00800000
72 #define PRINTER_ENUM_HIDE        0x01000000
73
74
75 /* various printer statuses */
76 #define PRINTER_STATUS_PAUSED            0x00000001
77 #define PRINTER_STATUS_ERROR             0x00000002
78 #define PRINTER_STATUS_PENDING_DELETION  0x00000004
79 #define PRINTER_STATUS_PAPER_JAM         0x00000008
80 #define PRINTER_STATUS_PAPER_OUT         0x00000010
81 #define PRINTER_STATUS_MANUAL_FEED       0x00000020
82 #define PRINTER_STATUS_PAPER_PROBLEM     0x00000040
83 #define PRINTER_STATUS_OFFLINE           0x00000080
84 #define PRINTER_STATUS_IO_ACTIVE         0x00000100
85 #define PRINTER_STATUS_BUSY              0x00000200
86 #define PRINTER_STATUS_PRINTING          0x00000400
87 #define PRINTER_STATUS_OUTPUT_BIN_FULL   0x00000800
88 #define PRINTER_STATUS_NOT_AVAILABLE     0x00001000
89 #define PRINTER_STATUS_WAITING           0x00002000
90 #define PRINTER_STATUS_PROCESSING        0x00004000
91 #define PRINTER_STATUS_INITIALIZING      0x00008000
92 #define PRINTER_STATUS_WARMING_UP        0x00010000
93 #define PRINTER_STATUS_TONER_LOW         0x00020000
94 #define PRINTER_STATUS_NO_TONER          0x00040000
95 #define PRINTER_STATUS_PAGE_PUNT         0x00080000
96 #define PRINTER_STATUS_USER_INTERVENTION 0x00100000
97 #define PRINTER_STATUS_OUT_OF_MEMORY     0x00200000
98 #define PRINTER_STATUS_DOOR_OPEN         0x00400000
99 #define PRINTER_STATUS_SERVER_UNKNOWN    0x00800000
100 #define PRINTER_STATUS_POWER_SAVE        0x01000000
101
102 #define NO_PRIORITY  0
103 #define MAX_PRIORITY 99
104 #define MIN_PRIORITY 1
105 #define DEF_PRIORITY 1
106
107 #define JOB_CONTROL_PAUSE             1
108 #define JOB_CONTROL_RESUME            2
109 #define JOB_CONTROL_CANCEL            3
110 #define JOB_CONTROL_RESTART           4
111 #define JOB_CONTROL_DELETE            5
112 #define JOB_CONTROL_SENT_TO_PRINTER   6
113 #define JOB_CONTROL_LAST_PAGE_EJECTED 7
114
115 #define JOB_STATUS_PAUSED       0x0001
116 #define JOB_STATUS_ERROR        0x0002
117 #define JOB_STATUS_DELETING     0x0004
118 #define JOB_STATUS_SPOOLING     0x0008
119 #define JOB_STATUS_PRINTING     0x0010
120 #define JOB_STATUS_OFFLINE      0x0020
121 #define JOB_STATUS_PAPEROUT     0x0040
122 #define JOB_STATUS_PRINTED      0x0080
123 #define JOB_STATUS_DELETED      0x0100
124 #define JOB_STATUS_BLOCKED_DEVQ 0x0200
125 #define JOB_STATUS_USER_INTERVENTION 0x0400
126
127 #define JOB_POSITION_UNSPECIFIED 1
128
129 #define DI_CHANNEL 1
130 #define DI_READ_SPOOL_JOB 3
131
132 #define FORM_USER    0
133 #define FORM_BUILTIN 1
134 #define FORM_PRINTER 2
135
136 #define PORT_TYPE_WRITE        1
137 #define PORT_TYPE_READ         2
138 #define PORT_TYPE_REDIRECTED   4
139 #define PORT_TYPE_NET_ATTACHED 8
140
141 #define PORT_STATUS_TYPE_ERROR   1
142 #define PORT_STATUS_TYPE_WARNING 2
143 #define PORT_STATUS_TYPE_INFO    3
144
145 #define PORT_STATUS_OFFLINE           1
146 #define PORT_STATUS_PAPER_JAM         2
147 #define PORT_STATUS_PAPER_OUT         3
148 #define PORT_STATUS_OUTPUT_BIN_FULL   4
149 #define PORT_STATUS_PAPER_PROBLEM     5
150 #define PORT_STATUS_NO_TONER          6
151 #define PORT_STATUS_DOOR_OPEN         7
152 #define PORT_STATUS_USER_INTERVENTION 8
153 #define PORT_STATUS_OUT_OF_MEMORY     9
154 #define PORT_STATUS_TONER_LOW         10
155 #define PORT_STATUS_WARMING_UP        11
156 #define PORT_STATUS_POWER_SAVE        12
157
158 #define PRINTER_NOTIFY_TYPE 0
159 #define JOB_NOTIFY_TYPE     1
160
161 #define PRINTER_NOTIFY_FIELD_SERVER_NAME     0x00
162 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME    0x01
163 #define PRINTER_NOTIFY_FIELD_SHARE_NAME      0x02
164 #define PRINTER_NOTIFY_FIELD_PORT_NAME       0x03
165 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME     0x04
166 #define PRINTER_NOTIFY_FIELD_COMMENT         0x05
167 #define PRINTER_NOTIFY_FIELD_LOCATION        0x06
168 #define PRINTER_NOTIFY_FIELD_DEVMODE         0x07
169 #define PRINTER_NOTIFY_FIELD_SEPFILE         0x08
170 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09
171 #define PRINTER_NOTIFY_FIELD_PARAMETERS      0x0a
172 #define PRINTER_NOTIFY_FIELD_DATATYPE        0x0b
173 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
174 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES      0x0d
175 #define PRINTER_NOTIFY_FIELD_PRIORITY        0x0e
176 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f
177 #define PRINTER_NOTIFY_FIELD_START_TIME      0x10
178 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME      0x11
179 #define PRINTER_NOTIFY_FIELD_STATUS          0x12
180 #define PRINTER_NOTIFY_FIELD_STATUS_STRING   0x13
181 #define PRINTER_NOTIFY_FIELD_CJOBS           0x14
182 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM     0x15
183 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES     0x16
184 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED   0x17
185 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES     0x18
186 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED   0x19
187
188 #define JOB_NOTIFY_FIELD_PRINTER_NAME    0x00
189 #define JOB_NOTIFY_FIELD_MACHINE_NAME    0x01
190 #define JOB_NOTIFY_FIELD_PORT_NAME       0x02
191 #define JOB_NOTIFY_FIELD_USER_NAME       0x03
192 #define JOB_NOTIFY_FIELD_NOTIFY_NAME     0x04
193 #define JOB_NOTIFY_FIELD_DATATYPE        0x05
194 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06
195 #define JOB_NOTIFY_FIELD_PARAMETERS      0x07
196 #define JOB_NOTIFY_FIELD_DRIVER_NAME     0x08
197 #define JOB_NOTIFY_FIELD_DEVMODE         0x09
198 #define JOB_NOTIFY_FIELD_STATUS          0x0a
199 #define JOB_NOTIFY_FIELD_STATUS_STRING   0x0b
200 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
201 #define JOB_NOTIFY_FIELD_DOCUMENT        0x0d
202 #define JOB_NOTIFY_FIELD_PRIORITY        0x0e
203 #define JOB_NOTIFY_FIELD_POSITION        0x0f
204 #define JOB_NOTIFY_FIELD_SUBMITTED       0x10
205 #define JOB_NOTIFY_FIELD_START_TIME      0x11
206 #define JOB_NOTIFY_FIELD_UNTIL_TIME      0x12
207 #define JOB_NOTIFY_FIELD_TIME            0x13
208 #define JOB_NOTIFY_FIELD_TOTAL_PAGES     0x14
209 #define JOB_NOTIFY_FIELD_PAGES_PRINTED   0x15
210 #define JOB_NOTIFY_FIELD_TOTAL_BYTES     0x16
211 #define JOB_NOTIFY_FIELD_BYTES_PRINTED   0x17
212
213 #define PRINTER_NOTIFY_OPTIONS_REFRESH   1
214 #define PRINTER_NOTIFY_INFO_DISCARDED    1
215
216 #define PRINTER_CHANGE_ADD_PRINTER               0x00000001
217 #define PRINTER_CHANGE_SET_PRINTER               0x00000002
218 #define PRINTER_CHANGE_DELETE_PRINTER            0x00000004
219 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
220 #define PRINTER_CHANGE_PRINTER                   0x000000ff
221 #define PRINTER_CHANGE_ADD_JOB                   0x00000100
222 #define PRINTER_CHANGE_SET_JOB                   0x00000200
223 #define PRINTER_CHANGE_DELETE_JOB                0x00000400
224 #define PRINTER_CHANGE_WRITE_JOB                 0x00000800
225 #define PRINTER_CHANGE_JOB                       0x0000ff00
226 #define PRINTER_CHANGE_ADD_FORM                  0x00010000
227 #define PRINTER_CHANGE_SET_FORM                  0x00020000
228 #define PRINTER_CHANGE_DELETE_FORM               0x00040000
229 #define PRINTER_CHANGE_FORM                      0x00070000
230 #define PRINTER_CHANGE_ADD_PORT                  0x00100000
231 #define PRINTER_CHANGE_CONFIGURE_PORT            0x00200000
232 #define PRINTER_CHANGE_DELETE_PORT               0x00400000
233 #define PRINTER_CHANGE_PORT                      0x00700000
234 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR       0x01000000
235 #define PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR  0x04000000
236 #define PRINTER_CHANGE_PRINT_PROCESSOR           0x07000000
237 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER        0x10000000
238 #define PRINTER_CHANGE_SET_PRINTER_DRIVER        0x20000000
239 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER     0x40000000
240 #define PRINTER_CHANGE_PRINTER_DRIVER            0x70000000
241 #define PRINTER_CHANGE_TIMEOUT                   0x80000000
242 #define PRINTER_CHANGE_ALL                       0x7777ffff
243
244 #define PRINTER_ERROR_INFORMATION   0x80000000
245 #define PRINTER_ERROR_WARNING       0x40000000
246 #define PRINTER_ERROR_SEVERE        0x20000000
247
248 #define PRINTER_ERROR_OUTODPAPER    0x00000001
249 #define PRINTER_ERROR_JAM           0x00000002
250 #define PRINTER_ERROR_OUTOFTONER    0x00000004
251
252 /* Access Rights for Printserver, Printers and Printjobs */
253 #define SERVER_ACCESS_ADMINISTER    0x00000001
254 #define SERVER_ACCESS_ENUMERATE     0x00000002
255 #define SERVER_READ        (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE)
256 #define SERVER_WRITE       (STANDARD_RIGHTS_WRITE | \
257                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
258 #define SERVER_EXECUTE     (STANDARD_RIGHTS_EXECUTE |  SERVER_ACCESS_ENUMERATE)
259 #define SERVER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \
260                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
261
262 #define PRINTER_ACCESS_ADMINISTER   0x00000004
263 #define PRINTER_ACCESS_USE          0x00000008
264 #define PRINTER_READ        (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE)
265 #define PRINTER_WRITE       (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE)
266 #define PRINTER_EXECUTE     (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE)
267 #define PRINTER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \
268                              PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE)
269
270 #define JOB_ACCESS_ADMINISTER       0x00000010
271 #define JOB_READ            (STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER)
272 #define JOB_WRITE           (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER)
273 #define JOB_EXECUTE         (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER)
274 #define JOB_ALL_ACCESS      (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER)
275
276
277 /* Flags for printer drivers */
278 #define DRIVER_KERNELMODE       0x00000001
279 #define DRIVER_USERMODE         0x00000002
280
281 #define APD_STRICT_UPGRADE      0x00000001
282 #define APD_STRICT_DOWNGRADE    0x00000002
283 #define APD_COPY_ALL_FILES      0x00000004
284 #define APD_COPY_NEW_FILES      0x00000008
285 #define APD_COPY_FROM_DIRECTORY 0x00000010
286
287 #define DPD_DELETE_UNUSED_FILES     0x00000001
288 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002
289 #define DPD_DELETE_ALL_FILES        0x00000004
290
291
292 /* TYPES */
293 typedef struct _PRINTER_DEFAULTSA {
294   LPSTR        pDatatype;
295   LPDEVMODEA pDevMode;
296   ACCESS_MASK  DesiredAccess;
297 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
298
299 typedef struct _PRINTER_DEFAULTSW {
300   LPWSTR       pDatatype;
301   LPDEVMODEW pDevMode;
302   ACCESS_MASK  DesiredAccess;
303 } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
304
305 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
306 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
307
308 typedef struct _DRIVER_INFO_1A {
309   LPSTR     pName;
310 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
311
312 typedef struct _DRIVER_INFO_1W {
313   LPWSTR    pName;
314 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
315
316 DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
317 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
318 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
319
320 typedef struct _DRIVER_INFO_2A {
321   DWORD     cVersion;
322   LPSTR     pName;
323   LPSTR     pEnvironment;
324   LPSTR     pDriverPath;
325   LPSTR     pDataFile;
326   LPSTR     pConfigFile;
327 } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
328
329 typedef struct _DRIVER_INFO_2W {
330   DWORD     cVersion;
331   LPWSTR    pName;
332   LPWSTR    pEnvironment;
333   LPWSTR    pDriverPath;
334   LPWSTR    pDataFile;
335   LPWSTR    pConfigFile;
336 } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
337
338 DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
339 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
340 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
341
342 typedef struct _DRIVER_INFO_3A {
343   DWORD cVersion;
344   LPSTR pName;
345   LPSTR pEnvironment;
346   LPSTR pDriverPath;
347   LPSTR pDataFile;
348   LPSTR pConfigFile;
349   LPSTR pHelpFile;
350   LPSTR pDependentFiles;
351   LPSTR pMonitorName;
352   LPSTR pDefaultDataType;
353 } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
354
355 typedef struct _DRIVER_INFO_3W {
356   DWORD cVersion;
357   LPWSTR pName;
358   LPWSTR pEnvironment;
359   LPWSTR pDriverPath;
360   LPWSTR pDataFile;
361   LPWSTR pConfigFile;
362   LPWSTR pHelpFile;
363   LPWSTR pDependentFiles;
364   LPWSTR pMonitorName;
365   LPWSTR pDefaultDataType;
366 } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W;
367
368 DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
369 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
370 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
371
372 typedef struct _DRIVER_INFO_4A {
373   DWORD cVersion;
374   LPSTR pName;
375   LPSTR pEnvironment;
376   LPSTR pDriverPath;
377   LPSTR pDataFile;
378   LPSTR pConfigFile;
379   LPSTR pHelpFile;
380   LPSTR pDependentFiles;
381   LPSTR pMonitorName;
382   LPSTR pDefaultDataType;
383   LPSTR pszzPreviousNames;
384 } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A;
385
386 typedef struct _DRIVER_INFO_4W {
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   LPWSTR pszzPreviousNames;
398 } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W;
399
400 DECL_WINELIB_TYPE_AW(DRIVER_INFO_4)
401 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_4)
402 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_4)
403
404
405 typedef struct _DRIVER_INFO_5A {
406   DWORD cVersion;
407   LPSTR pName;
408   LPSTR pEnvironment;
409   LPSTR pDriverPath;
410   LPSTR pDataFile;
411   LPSTR pConfigFile;
412   DWORD dwDriverAttributes;
413   DWORD dwConfigVersion;
414   DWORD dwDriverVersion;
415 } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A;
416
417 typedef struct _DRIVER_INFO_5W {
418   DWORD  cVersion;
419   LPWSTR pName;
420   LPWSTR pEnvironment;
421   LPWSTR pDriverPath;
422   LPWSTR pDataFile;
423   LPWSTR pConfigFile;
424   DWORD  dwDriverAttributes;
425   DWORD  dwConfigVersion;
426   DWORD  dwDriverVersion;
427 } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W;
428
429 DECL_WINELIB_TYPE_AW(DRIVER_INFO_5)
430 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_5)
431 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_5)
432
433 typedef struct _DRIVER_INFO_6A {
434   DWORD     cVersion;
435   LPSTR     pName;
436   LPSTR     pEnvironment;
437   LPSTR     pDriverPath;
438   LPSTR     pDataFile;
439   LPSTR     pConfigFile;
440   LPSTR     pHelpFile;
441   LPSTR     pDependentFiles;
442   LPSTR     pMonitorName;
443   LPSTR     pDefaultDataType;
444   LPSTR     pszzPreviousNames;
445   FILETIME  ftDriverDate;
446   DWORDLONG dwlDriverVersion;
447   LPSTR     pszMfgName;
448   LPSTR     pszOEMUrl;
449   LPSTR     pszHardwareID;
450   LPSTR     pszProvider;
451 } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A;
452
453 typedef struct _DRIVER_INFO_6W {
454   DWORD     cVersion;
455   LPWSTR    pName;
456   LPWSTR    pEnvironment;
457   LPWSTR    pDriverPath;
458   LPWSTR    pDataFile;
459   LPWSTR    pConfigFile;
460   LPWSTR    pHelpFile;
461   LPWSTR    pDependentFiles;
462   LPWSTR    pMonitorName;
463   LPWSTR    pDefaultDataType;
464   LPWSTR    pszzPreviousNames;
465   FILETIME  ftDriverDate;
466   DWORDLONG dwlDriverVersion;
467   LPWSTR    pszMfgName;
468   LPWSTR    pszOEMUrl;
469   LPWSTR    pszHardwareID;
470   LPWSTR    pszProvider;
471 } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W;
472
473 DECL_WINELIB_TYPE_AW(DRIVER_INFO_6)
474 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_6)
475 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_6)
476
477 /* DRIVER_INFO_7 is not defined in native winspool.h and not found in the www */
478
479 typedef struct _DRIVER_INFO_8A {
480   DWORD     cVersion;
481   LPSTR     pName;
482   LPSTR     pEnvironment;
483   LPSTR     pDriverPath;
484   LPSTR     pDataFile;
485   LPSTR     pConfigFile;
486   LPSTR     pHelpFile;
487   LPSTR     pDependentFiles;
488   LPSTR     pMonitorName;
489   LPSTR     pDefaultDataType;
490   LPSTR     pszzPreviousNames;
491   FILETIME  ftDriverDate;
492   DWORDLONG dwlDriverVersion;
493   LPSTR     pszMfgName;
494   LPSTR     pszOEMUrl;
495   LPSTR     pszHardwareID;
496   LPSTR     pszProvider;
497   LPSTR     pszPrintProcessor;
498   LPSTR     pszVendorSetup;
499   LPSTR     pszzColorProfiles;
500   LPSTR     pszInfPath;
501   DWORD     dwPrinterDriverAttributes;
502   LPSTR     pszzCoreDriverDependencies;
503   FILETIME  ftMinInboxDriverVerDate;
504   DWORDLONG dwlMinInboxDriverVerVersion;
505 } DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A;
506
507 typedef struct _DRIVER_INFO_8W {
508   DWORD     cVersion;
509   LPWSTR    pName;
510   LPWSTR    pEnvironment;
511   LPWSTR    pDriverPath;
512   LPWSTR    pDataFile;
513   LPWSTR    pConfigFile;
514   LPWSTR    pHelpFile;
515   LPWSTR    pDependentFiles;
516   LPWSTR    pMonitorName;
517   LPWSTR    pDefaultDataType;
518   LPWSTR    pszzPreviousNames;
519   FILETIME  ftDriverDate;
520   DWORDLONG dwlDriverVersion;
521   LPWSTR    pszMfgName;
522   LPWSTR    pszOEMUrl;
523   LPWSTR    pszHardwareID;
524   LPWSTR    pszProvider;
525   LPWSTR    pszPrintProcessor;
526   LPWSTR    pszVendorSetup;
527   LPWSTR    pszzColorProfiles;
528   LPWSTR    pszInfPath;
529   DWORD     dwPrinterDriverAttributes;
530   LPWSTR    pszzCoreDriverDependencies;
531   FILETIME  ftMinInboxDriverVerDate;
532   DWORDLONG dwlMinInboxDriverVerVersion;
533 } DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W;
534
535 DECL_WINELIB_TYPE_AW(DRIVER_INFO_8)
536 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_8)
537 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_8)
538
539
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
547 typedef struct _PRINTER_INFO_1W {
548   DWORD   Flags;
549   LPWSTR  pDescription;
550   LPWSTR  pName;
551   LPWSTR  pComment;
552 } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
553
554 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
555 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
556 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
557
558 /* FIXME: winspool.h declares some structure members with the name Status.
559  * unfortunately <X11/ICE/ICElib.h> #defines Status to the type 'int'
560  * therefore the following hack */
561 #ifndef Status
562
563 typedef struct _PRINTER_INFO_2A {
564   LPSTR     pServerName;
565   LPSTR     pPrinterName;
566   LPSTR     pShareName;
567   LPSTR     pPortName;
568   LPSTR     pDriverName;
569   LPSTR     pComment;
570   LPSTR     pLocation;
571   LPDEVMODEA pDevMode;
572   LPSTR     pSepFile;
573   LPSTR     pPrintProcessor;
574   LPSTR     pDatatype;
575   LPSTR     pParameters;
576   PSECURITY_DESCRIPTOR pSecurityDescriptor;
577   DWORD   Attributes;
578   DWORD   Priority;
579   DWORD   DefaultPriority;
580   DWORD   StartTime;
581   DWORD   UntilTime;
582   DWORD   Status;
583   DWORD   cJobs;
584   DWORD   AveragePPM;
585 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
586
587 typedef struct _PRINTER_INFO_2W {
588   LPWSTR    pServerName;
589   LPWSTR    pPrinterName;
590   LPWSTR    pShareName;
591   LPWSTR    pPortName;
592   LPWSTR    pDriverName;
593   LPWSTR    pComment;
594   LPWSTR    pLocation;
595   LPDEVMODEW pDevMode;
596   LPWSTR    pSepFile;
597   LPWSTR    pPrintProcessor;
598   LPWSTR    pDatatype;
599   LPWSTR    pParameters;
600   PSECURITY_DESCRIPTOR pSecurityDescriptor;
601   DWORD   Attributes;
602   DWORD   Priority;
603   DWORD   DefaultPriority;
604   DWORD   StartTime;
605   DWORD   UntilTime;
606   DWORD   Status;
607   DWORD   cJobs;
608   DWORD   AveragePPM;
609 } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
610
611 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
612 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
613 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
614
615 typedef struct _PRINTER_INFO_3 {
616   PSECURITY_DESCRIPTOR pSecurityDescriptor;
617 } PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3;
618
619 typedef struct _PRINTER_INFO_4A {
620   LPSTR     pPrinterName;
621   LPSTR     pServerName;
622   DWORD     Attributes;
623 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
624
625 typedef struct _PRINTER_INFO_4W {
626   LPWSTR     pPrinterName;
627   LPWSTR     pServerName;
628   DWORD     Attributes;
629 } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
630
631 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
632 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
633 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
634
635 typedef struct _PRINTER_INFO_5A {
636   LPSTR     pPrinterName;
637   LPSTR     pPortName;
638   DWORD     Attributes;
639   DWORD     DeviceNotSelectedTimeout;
640   DWORD     TransmissionRetryTimeout;
641 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
642
643 typedef struct _PRINTER_INFO_5W {
644   LPWSTR    pPrinterName;
645   LPWSTR    pPortName;
646   DWORD     Attributes;
647   DWORD     DeviceNotSelectedTimeout;
648   DWORD     TransmissionRetryTimeout;
649 } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
650
651 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
652 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
653 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
654
655 typedef struct _PRINTER_INFO_6 {
656   DWORD dwStatus;
657 } PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6;
658
659 typedef struct _PRINTER_INFO_7A {
660   LPSTR     pszObjectGUID;
661   DWORD     dwAction;
662 } PRINTER_INFO_7A, *PPRINTER_INFO_7A, *LPPRINTER_INFO_7A;
663
664 typedef struct _PRINTER_INFO_7W {
665   LPWSTR    pszObjectGUID;
666   DWORD     dwAction;
667 } PRINTER_INFO_7W, *PPRINTER_INFO_7W, *LPPRINTER_INFO_7W;
668
669 DECL_WINELIB_TYPE_AW(PRINTER_INFO_7)
670 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_7)
671 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_7)
672
673 typedef struct _PRINTER_INFO_8A {
674   LPDEVMODEA pDevMode;
675 } PRINTER_INFO_8A, *PPRINTER_INFO_8A, *LPPRINTER_INFO_8A;
676
677 typedef struct _PRINTER_INFO_8W {
678   LPDEVMODEW pDevMode;
679 } PRINTER_INFO_8W, *PPRINTER_INFO_8W, *LPPRINTER_INFO_8W;
680
681 DECL_WINELIB_TYPE_AW(PRINTER_INFO_8)
682 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_8)
683 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_8)
684
685 typedef struct _PRINTER_INFO_9A {
686   LPDEVMODEA pDevMode;
687 } PRINTER_INFO_9A, *PPRINTER_INFO_9A, *LPPRINTER_INFO_9A;
688
689 typedef struct _PRINTER_INFO_9W {
690   LPDEVMODEW pDevMode;
691 } PRINTER_INFO_9W, *PPRINTER_INFO_9W, *LPPRINTER_INFO_9W;
692
693 DECL_WINELIB_TYPE_AW(PRINTER_INFO_9)
694 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_9)
695 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_9)
696
697
698 typedef struct _JOB_INFO_1A {
699   DWORD JobId;
700   LPSTR pPrinterName;
701   LPSTR pMachineName;
702   LPSTR pUserName;
703   LPSTR pDocument;
704   LPSTR pDatatype;
705   LPSTR pStatus;
706   DWORD Status;
707   DWORD Priority;
708   DWORD Position;
709   DWORD TotalPages;
710   DWORD PagesPrinted;
711   SYSTEMTIME Submitted;
712 } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
713
714 typedef struct _JOB_INFO_1W {
715   DWORD JobId;
716   LPWSTR pPrinterName;
717   LPWSTR pMachineName;
718   LPWSTR pUserName;
719   LPWSTR pDocument;
720   LPWSTR pDatatype;
721   LPWSTR pStatus;
722   DWORD Status;
723   DWORD Priority;
724   DWORD Position;
725   DWORD TotalPages;
726   DWORD PagesPrinted;
727   SYSTEMTIME Submitted;
728 } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
729
730 DECL_WINELIB_TYPE_AW(JOB_INFO_1)
731 DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
732 DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
733
734 typedef struct _JOB_INFO_2A {
735   DWORD JobId;
736   LPSTR pPrinterName;
737   LPSTR pMachineName;
738   LPSTR pUserName;
739   LPSTR pDocument;
740   LPSTR pNotifyName;
741   LPSTR pDatatype;
742   LPSTR pPrintProcessor;
743   LPSTR pParameters;
744   LPSTR pDriverName;
745   LPDEVMODEA pDevMode;
746   LPSTR pStatus;
747   PSECURITY_DESCRIPTOR pSecurityDescriptor;
748   DWORD Status;
749   DWORD Priority;
750   DWORD Position;
751   DWORD StartTime;
752   DWORD UntilTime;
753   DWORD TotalPages;
754   DWORD Size;
755   SYSTEMTIME Submitted;
756   DWORD Time;
757   DWORD PagesPrinted;
758 } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
759
760 typedef struct _JOB_INFO_2W {
761   DWORD JobId;
762   LPWSTR pPrinterName;
763   LPWSTR pMachineName;
764   LPWSTR pUserName;
765   LPWSTR pDocument;
766   LPWSTR pNotifyName;
767   LPWSTR pDatatype;
768   LPWSTR pPrintProcessor;
769   LPWSTR pParameters;
770   LPWSTR pDriverName;
771   LPDEVMODEW pDevMode;
772   LPWSTR pStatus;
773   PSECURITY_DESCRIPTOR pSecurityDescriptor;
774   DWORD Status;
775   DWORD Priority;
776   DWORD Position;
777   DWORD StartTime;
778   DWORD UntilTime;
779   DWORD TotalPages;
780   DWORD Size;
781   SYSTEMTIME Submitted;
782   DWORD Time;
783   DWORD PagesPrinted;
784 } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
785
786 DECL_WINELIB_TYPE_AW(JOB_INFO_2)
787 DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
788 DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
789
790 typedef struct _JOB_INFO_3 {
791   DWORD JobId;
792   DWORD NextJobId;
793   DWORD Reserved;
794 } JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3;
795
796 typedef struct _ADDJOB_INFO_1A {
797   LPSTR Path;
798   DWORD JobId;
799 } ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A;
800
801 typedef struct _ADDJOB_INFO_1W {
802   LPWSTR Path;
803   DWORD  JobId;
804 } ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W;
805
806 DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1)
807 DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1)
808 DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1)
809
810 typedef struct _DOC_INFO_1A {
811   LPSTR pDocName;
812   LPSTR pOutputFile;
813   LPSTR pDatatype;
814 } DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A;
815
816 typedef struct _DOC_INFO_1W {
817   LPWSTR pDocName;
818   LPWSTR pOutputFile;
819   LPWSTR pDatatype;
820 } DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W;
821
822 DECL_WINELIB_TYPE_AW(DOC_INFO_1)
823 DECL_WINELIB_TYPE_AW(PDOC_INFO_1)
824 DECL_WINELIB_TYPE_AW(LPDOC_INFO_1)
825
826 typedef struct _DOC_INFO_2A {
827   LPSTR pDocName;
828   LPSTR pOutputFile;
829   LPSTR pDatatype;
830   DWORD dwMode;
831   DWORD JobId;
832 } DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A;
833
834 typedef struct _DOC_INFO_2W {
835   LPWSTR pDocName;
836   LPWSTR pOutputFile;
837   LPWSTR pDatatype;
838   DWORD dwMode;
839   DWORD JobId;
840 } DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W;
841
842 DECL_WINELIB_TYPE_AW(DOC_INFO_2)
843 DECL_WINELIB_TYPE_AW(PDOC_INFO_2)
844 DECL_WINELIB_TYPE_AW(LPDOC_INFO_2)
845
846 typedef struct _FORM_INFO_1A {
847   DWORD Flags;
848   LPSTR pName;
849   SIZEL Size;
850   RECTL ImageableArea;
851 } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A;
852
853 typedef struct _FORM_INFO_1W {
854   DWORD Flags;
855   LPWSTR pName;
856   SIZEL Size;
857   RECTL ImageableArea;
858 } FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W;
859
860 DECL_WINELIB_TYPE_AW(FORM_INFO_1)
861 DECL_WINELIB_TYPE_AW(PFORM_INFO_1)
862 DECL_WINELIB_TYPE_AW(LPFORM_INFO_1)
863
864 typedef struct _PRINTPROCESSOR_INFO_1A {
865   LPSTR pName;
866 } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A,
867   *LPPRINTPROCESSOR_INFO_1A;
868
869 typedef struct _PRINTPROCESSOR_INFO_1W {
870   LPWSTR pName;
871 } PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W,
872   *LPPRINTPROCESSOR_INFO_1W;
873
874 DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1)
875 DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1)
876 DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1)
877
878 typedef struct _PORT_INFO_1A {
879   LPSTR pName;
880 } PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A;
881
882 typedef struct _PORT_INFO_1W {
883   LPWSTR pName;
884 } PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W;
885
886 DECL_WINELIB_TYPE_AW(PORT_INFO_1)
887 DECL_WINELIB_TYPE_AW(PPORT_INFO_1)
888 DECL_WINELIB_TYPE_AW(LPPORT_INFO_1)
889
890 typedef struct _PORT_INFO_2A {
891   LPSTR pPortName;
892   LPSTR pMonitorName;
893   LPSTR pDescription;
894   DWORD fPortType;
895   DWORD Reserved;
896 } PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A;
897
898 typedef struct _PORT_INFO_2W {
899   LPWSTR pPortName;
900   LPWSTR pMonitorName;
901   LPWSTR pDescription;
902   DWORD  fPortType;
903   DWORD  Reserved;
904 } PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W;
905
906 DECL_WINELIB_TYPE_AW(PORT_INFO_2)
907 DECL_WINELIB_TYPE_AW(PPORT_INFO_2)
908 DECL_WINELIB_TYPE_AW(LPPORT_INFO_2)
909
910 typedef struct _PORT_INFO_3A {
911   DWORD dwStatus;
912   LPSTR pszStatus;
913   DWORD dwSeverity;
914 } PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A;
915
916 typedef struct _PORT_INFO_3W {
917   DWORD  dwStatus;
918   LPWSTR pszStatus;
919   DWORD  dwSeverity;
920 } PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W;
921
922 DECL_WINELIB_TYPE_AW(PORT_INFO_3)
923 DECL_WINELIB_TYPE_AW(PPORT_INFO_3)
924 DECL_WINELIB_TYPE_AW(LPPORT_INFO_3)
925
926 typedef struct _MONITOR_INFO_1A {
927   LPSTR pName;
928 } MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A;
929
930 typedef struct _MONITOR_INFO_1W {
931   LPWSTR pName;
932 } MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W;
933
934 DECL_WINELIB_TYPE_AW(MONITOR_INFO_1)
935 DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1)
936 DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1)
937
938 #endif /* Status */
939
940
941 typedef struct _MONITOR_INFO_2A {
942   LPSTR pName;
943   LPSTR pEnvironment;
944   LPSTR pDLLName;
945 } MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A;
946
947 typedef struct _MONITOR_INFO_2W {
948   LPWSTR pName;
949   LPWSTR pEnvironment;
950   LPWSTR pDLLName;
951 } MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W;
952
953 DECL_WINELIB_TYPE_AW(MONITOR_INFO_2)
954 DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2)
955 DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2)
956
957 typedef struct _DATATYPES_INFO_1A {
958   LPSTR pName;
959 } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A;
960
961 typedef struct _DATATYPES_INFO_1W {
962   LPWSTR pName;
963 } DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W;
964
965 DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1)
966 DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1)
967 DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1)
968
969 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
970   WORD  Type;
971   WORD  Reserved0;
972   DWORD Reserved1;
973   DWORD Reserved2;
974   DWORD Count;
975   PWORD pFields;
976 } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE,
977 *LPPRINTER_NOTIFY_OPTIONS_TYPE;
978
979 typedef struct _PRINTER_NOTIFY_OPTIONS {
980   DWORD Version;
981   DWORD Flags;
982   DWORD Count;
983   PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
984 } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS;
985
986 typedef struct _PRINTER_NOTIFY_INFO_DATA {
987   WORD Type;
988   WORD Field;
989   DWORD Reserved;
990   DWORD Id;
991   union {
992     DWORD adwData[2];
993     struct {
994       DWORD cbBuf;
995       LPVOID pBuf;
996     } Data;
997   } NotifyData;
998 } PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA,
999 *LPPRINTER_NOTIFY_INFO_DATA;
1000
1001 typedef struct _PRINTER_NOTIFY_INFO {
1002   DWORD Version;
1003   DWORD Flags;
1004   DWORD Count;
1005   PRINTER_NOTIFY_INFO_DATA aData[1];
1006 } PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO;
1007
1008 typedef struct _PROVIDOR_INFO_1A {
1009   LPSTR pName;
1010   LPSTR pEnvironment;
1011   LPSTR pDLLName;
1012 } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
1013
1014 typedef struct _PROVIDOR_INFO_1W {
1015   LPWSTR pName;
1016   LPWSTR pEnvironment;
1017   LPWSTR pDLLName;
1018 } PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
1019
1020 DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1)
1021 DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1)
1022 DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1)
1023
1024 typedef struct _PRINTER_ENUM_VALUESA {
1025   LPSTR  pValueName;
1026   DWORD  cbValueName;
1027   DWORD  dwType;
1028   LPBYTE pData;
1029   DWORD  cbData;
1030 } PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA;
1031
1032 typedef struct _PRINTER_ENUM_VALUESW {
1033   LPWSTR pValueName;
1034   DWORD  cbValueName;
1035   DWORD  dwType;
1036   LPBYTE pData;
1037   DWORD  cbData;
1038 } PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW;
1039
1040 DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES)
1041 DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES)
1042
1043 typedef enum {
1044  BIDI_NULL = 0,
1045  BIDI_INT,
1046  BIDI_FLOAT,
1047  BIDI_BOOL,
1048  BIDI_STRING,
1049  BIDI_TEXT,
1050  BIDI_ENUM,
1051  BIDI_BLOB
1052 } BIDI_TYPE;
1053
1054 typedef struct _BINARY_CONTAINER {
1055  DWORD  cbBuf;
1056  LPBYTE pData;
1057 } BINARY_CONTAINER, *PBINARY_CONTAINER;
1058
1059 typedef struct _BIDI_DATA {
1060  DWORD  dwBidiType;
1061  union
1062  {
1063    BOOL             bData;
1064    INT              iData;
1065    LPWSTR           sData;
1066    FLOAT            fData;
1067    BINARY_CONTAINER biData;
1068  } u;
1069 } BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA;
1070
1071 typedef struct _BIDI_REQUEST_DATA {
1072  DWORD      dwReqNumber;
1073  LPWSTR     pSchema;
1074  BIDI_DATA  data;
1075 } BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA;
1076
1077 typedef struct _BIDI_REQUEST_CONTAINER {
1078  DWORD              Version;
1079  DWORD              Flags;
1080  DWORD              Count;
1081  BIDI_REQUEST_DATA  aData[1];
1082 } BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER;
1083
1084 typedef struct _BIDI_RESPONSE_DATA {
1085  DWORD      dwResult;
1086  DWORD      dwReqNumber;
1087  LPWSTR     pSchema;
1088  BIDI_DATA  data;
1089 } BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA;
1090
1091 typedef struct _BIDI_RESPONSE_CONTAINER {
1092  DWORD              Version;
1093  DWORD              Flags;
1094  DWORD              Count;
1095  BIDI_RESPONSE_DATA aData[1];
1096 } BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER;
1097
1098 /* DECLARATIONS */
1099 INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
1100                                LPSTR pOutput, LPDEVMODEA pDevMode);
1101 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
1102                                WORD fwCapability, LPWSTR pOutput,
1103                                const DEVMODEW *pDevMode);
1104
1105 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
1106
1107 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
1108                                 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
1109                                 LPDEVMODEA pDevModeInput,DWORD fMode );
1110 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
1111                                 LPWSTR pDeviceName,
1112                                 LPDEVMODEW pDevModeOutput,
1113                                 LPDEVMODEW pDevModeInput, DWORD fMode);
1114
1115 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
1116
1117 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
1118                              LPPRINTER_DEFAULTSA pDefault);
1119 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
1120                              LPPRINTER_DEFAULTSW pDefault);
1121
1122 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
1123
1124 BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault);
1125 BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
1126 #define ResetPrinter WINELIB_NAME_AW(ResetPrinter)
1127
1128 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
1129
1130 BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
1131                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
1132                       LPDWORD pcReturned);
1133 BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
1134                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
1135                       LPDWORD pcReturned);
1136 #define EnumJobs WINELIB_NAME_AW(EnumJobs)
1137
1138 BOOL  WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
1139                                DWORD dwLevel, LPBYTE lpbPrinters,
1140                                DWORD cbBuf, LPDWORD lpdwNeeded,
1141                                LPDWORD lpdwReturned);
1142 BOOL  WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
1143                                DWORD dwLevel, LPBYTE lpbPrinters,
1144                                DWORD cbBuf, LPDWORD lpdwNeeded,
1145                                LPDWORD lpdwReturned);
1146 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
1147
1148 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
1149
1150 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
1151 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
1152 #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
1153
1154 BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment,
1155                               DWORD Level, LPBYTE pDriverInfo,
1156                               DWORD cbBuf, LPDWORD pcbNeeded);
1157 BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
1158                               DWORD Level, LPBYTE pDriverInfo,
1159                               DWORD cbBuf, LPDWORD pcbNeeded);
1160 #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver)
1161
1162 BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1163                     DWORD Command);
1164 BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1165                     DWORD Command);
1166 #define SetJob WINELIB_NAME_AW(SetJob)
1167
1168 BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1169                     DWORD cbBuf, LPDWORD pcbNeeded);
1170 BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1171                     DWORD cbBuf, LPDWORD pcbNeeded);
1172 #define GetJob WINELIB_NAME_AW(GetJob)
1173
1174 HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter);
1175 HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
1176 #define AddPrinter WINELIB_NAME_AW(AddPrinter)
1177
1178 BOOL WINAPI DeletePrinter(HANDLE hPrinter);
1179
1180 BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1181                         DWORD Command);
1182 BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1183                         DWORD Command);
1184 #define SetPrinter WINELIB_NAME_AW(SetPrinter)
1185
1186 BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1187                         DWORD cbBuf, LPDWORD pcbNeeded);
1188 BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1189                         DWORD cbBuf, LPDWORD pcbNeeded);
1190 #define GetPrinter WINELIB_NAME_AW(GetPrinter)
1191
1192 BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo);
1193 BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
1194 #define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver)
1195
1196 BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo,
1197                                 DWORD dwFileCopyFlags);
1198 BOOL WINAPI AddPrinterDriverExW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo,
1199                                 DWORD dwFileCopyFlags);
1200 #define AddPrinterDriverEx WINELIB_NAME_AW(AddPrinterDriverEx)
1201
1202 BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level,
1203                                 LPBYTE pDriverInfo, DWORD cbBuf,
1204                                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
1205 BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level,
1206                                 LPBYTE pDriverInfo, DWORD cbBuf,
1207                                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
1208 #define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers)
1209
1210 BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize);
1211 BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize);
1212 #define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter)
1213
1214 BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment,
1215                                  LPSTR pDriverName);
1216 BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment,
1217                                  LPWSTR pDriverName);
1218 #define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver)
1219
1220 BOOL WINAPI DeletePrinterDriverExA(LPSTR pName, LPSTR pEnvironment,
1221                                    LPSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag);
1222 BOOL WINAPI DeletePrinterDriverExW(LPWSTR pName, LPWSTR pEnvironment,
1223                                    LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag);
1224 #define DeletePrinterDriverEx WINELIB_NAME_AW(DeletePrinterDriverEx)
1225
1226 BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment,
1227                                LPSTR pPathName, LPSTR pPrintProcessorName);
1228 BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
1229                                LPWSTR pPathName, LPWSTR pPrintProcessorName);
1230 #define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor)
1231
1232 BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment,
1233                                  DWORD Level, LPBYTE pPrintProcessorInfo,
1234                                  DWORD cbBuf, LPDWORD pcbNeeded,
1235                                  LPDWORD pcbReturned);
1236 BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment,
1237                                  DWORD Level, LPBYTE pPrintProcessorInfo,
1238                                  DWORD cbBuf, LPDWORD pcbNeeded,
1239                                  LPDWORD pcbReturned);
1240 #define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors)
1241
1242 BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment,
1243                                         DWORD Level,
1244                                         LPBYTE pPrintProcessorInfo,
1245                                         DWORD cbBuf, LPDWORD pcbNeeded);
1246
1247 BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment,
1248                                         DWORD Level,
1249                                         LPBYTE pPrintProcessorInfo,
1250                                         DWORD cbBuf, LPDWORD pcbNeeded);
1251 #define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory)
1252
1253 BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,
1254                                          LPSTR pPrintProcessorName,
1255                                          DWORD Level, LPBYTE pDatatypes,
1256                                          DWORD cbBuf, LPDWORD pcbNeeded,
1257                                          LPDWORD pcbReturned);
1258 BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,
1259                                          LPWSTR pPrintProcessorName,
1260                                          DWORD Level, LPBYTE pDatatypes,
1261                                          DWORD cbBuf, LPDWORD pcbNeeded,
1262                                          LPDWORD pcbReturned);
1263 #define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes)
1264
1265 BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment,
1266                                   LPSTR pPrintProcessorName);
1267 BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
1268                                   LPWSTR pPrintProcessorName);
1269 #define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor)
1270
1271 DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
1272 DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
1273 #define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter)
1274
1275 BOOL WINAPI StartPagePrinter(HANDLE hPrinter);
1276 BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
1277                          LPDWORD pcWritten);
1278 BOOL WINAPI EndPagePrinter(HANDLE hPrinter);
1279 BOOL WINAPI AbortPrinter(HANDLE hPrinter);
1280 BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
1281                         LPDWORD pNoBytesRead);
1282 BOOL WINAPI EndDocPrinter(HANDLE hPrinter);
1283
1284 BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
1285                     LPDWORD pcbNeeded);
1286 BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
1287                     LPDWORD pcbNeeded);
1288 #define AddJob WINELIB_NAME_AW(AddJob)
1289
1290 BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID);
1291
1292 LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter,
1293                                         LPSTR pDeviceName,
1294                                         PDEVMODEA pDevModeOutput,
1295                                         PDEVMODEA pDevModeInput);
1296 LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
1297                                         LPWSTR pDeviceName,
1298                                         PDEVMODEW pDevModeOutput,
1299                                         PDEVMODEW pDevModeInput);
1300 #define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties)
1301
1302 DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType,
1303                              LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1304 DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType,
1305                              LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1306 #define GetPrinterData WINELIB_NAME_AW(GetPrinterData)
1307
1308 DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1309                                LPCSTR pValueName, LPDWORD pType,
1310                                LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1311 DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1312                                LPCWSTR pValueName, LPDWORD pType,
1313                                LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1314 #define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx)
1315
1316 DWORD WINAPI DeletePrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1317                                   LPCSTR pValueName);
1318 DWORD WINAPI DeletePrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1319                                   LPCWSTR pValueName);
1320 #define DeletePrinterDataEx WINELIB_NAME_AW(DeletePrinterDataEx)
1321
1322 DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
1323                              LPBYTE pData, DWORD cbData);
1324 DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
1325                              LPBYTE pData, DWORD cbData);
1326 #define SetPrinterData WINELIB_NAME_AW(SetPrinterData)
1327
1328 DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1329                                LPCSTR pValueName, DWORD Type,
1330                                LPBYTE pData, DWORD cbData);
1331 DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1332                                LPCWSTR pValueName, DWORD Type,
1333                                LPBYTE pData, DWORD cbData);
1334 #define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx)
1335
1336 DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags);
1337 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,
1338                                                  DWORD fdwFlags,
1339                                                  DWORD fdwOptions,
1340                                                  LPVOID pPrinterNotifyOptions);
1341 BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,
1342                                               PDWORD pdwChange,
1343                                               LPVOID pvReserved,
1344                                               LPVOID *ppPrinterNotifyInfo);
1345 BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo);
1346 BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange);
1347
1348 DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd,
1349                                 LPSTR pText, LPSTR pCaption, DWORD dwType);
1350 DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd,
1351                                 LPWSTR pText, LPWSTR pCaption, DWORD dwType);
1352 #define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox)
1353
1354 BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1355 BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1356 #define AddForm WINELIB_NAME_AW(AddForm)
1357
1358 BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName);
1359 BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName);
1360 #define DeleteForm WINELIB_NAME_AW(DeleteForm)
1361
1362 BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1363                      LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1364 BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1365                      LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1366 #define GetForm WINELIB_NAME_AW(GetForm)
1367
1368 BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1369                      LPBYTE pForm);
1370 BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1371                      LPBYTE pForm);
1372 #define SetForm WINELIB_NAME_AW(SetForm)
1373
1374 BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1375                        LPDWORD pcbNeeded, LPDWORD pcReturned);
1376 BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1377                        LPDWORD pcbNeeded, LPDWORD pcReturned);
1378 #define EnumForms WINELIB_NAME_AW(EnumForms)
1379
1380 BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors,
1381                           DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1382 BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
1383                           DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1384 #define EnumMonitors WINELIB_NAME_AW(EnumMonitors)
1385
1386 DWORD WINAPI EnumPrinterDataA( HANDLE hPrinter, DWORD dwIndex, LPSTR pValueName,
1387     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
1388     DWORD cbData, LPDWORD pcbData );
1389 DWORD WINAPI EnumPrinterDataW( HANDLE hPrinter, DWORD dwIndex, LPWSTR pValueName,
1390     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
1391     DWORD cbData, LPDWORD pcbData );
1392 #define EnumPrinterData WINELIB_NAME_AW(EnumPrinterData)
1393
1394 BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors);
1395 BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
1396 #define AddMonitor WINELIB_NAME_AW(AddMonitor)
1397
1398 BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment,
1399                            LPSTR pMonitorName);
1400 BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment,
1401                            LPWSTR pMonitorName);
1402 #define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor)
1403
1404 BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts,
1405                        DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1406 BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts,
1407                        DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1408 #define EnumPorts WINELIB_NAME_AW(EnumPorts)
1409
1410 BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName);
1411 BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
1412 #define AddPort WINELIB_NAME_AW(AddPort)
1413
1414 BOOL WINAPI AddPortExA(LPSTR, DWORD, LPBYTE, LPSTR);
1415 BOOL WINAPI AddPortExW(LPWSTR, DWORD, LPBYTE, LPWSTR);
1416 #define AddPortEx WINELIB_NAME_AW(AddPortEx)
1417
1418 BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1419 BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1420 #define ConfigurePort WINELIB_NAME_AW(ConfigurePort)
1421
1422 BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1423 BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1424 #define DeletePort WINELIB_NAME_AW(DeletePort)
1425
1426 BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel,
1427                      LPBYTE pPortInfo);
1428 BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
1429                      LPBYTE pPortInfo);
1430 #define SetPort WINELIB_NAME_AW(SetPort)
1431
1432 BOOL WINAPI AddPrinterConnectionA(LPSTR pName);
1433 BOOL WINAPI AddPrinterConnectionW(LPWSTR pName);
1434 #define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection)
1435
1436 BOOL WINAPI DeletePrinterConnectionA(LPSTR pName);
1437 BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName);
1438 #define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection)
1439
1440 HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags);
1441
1442 BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1443 BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1444 #define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor)
1445
1446 BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment,
1447                                  LPSTR pPrintProvidorName);
1448 BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment,
1449                                  LPWSTR pPrintProvidorName);
1450 #define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor)
1451
1452 DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1453                                 LPBYTE pEnumValues, DWORD cbEnumValues,
1454                                 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1455 DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1456                                 LPBYTE pEnumValues, DWORD cbEnumValues,
1457                                 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1458 #define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx)
1459
1460 LONG WINAPI ExtDeviceMode( HWND hWnd, HANDLE hInst, LPDEVMODEA pDevModeOutput,
1461     LPSTR pDeviceName, LPSTR pPort, LPDEVMODEA pDevModeInput, LPSTR pProfile,
1462     DWORD fMode);
1463
1464 LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc);
1465 LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc);
1466 #define StartDocDlg WINELIB_NAME_AW(StartDocDlg)
1467
1468 BOOL WINAPI XcvDataW(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
1469     DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
1470     PDWORD pcbOutputNeeded, PDWORD pdwStatus);
1471
1472 #ifdef __cplusplus
1473 } /* extern "C" */
1474 #endif
1475
1476 #endif  /* __WINE_WINSPOOL_H */