propsys: Implement prop variant integer conversions with tests.
[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 #define PRINTER_STATUS_SERVER_OFFLINE    0x02000000
102 #define PRINTER_STATUS_DRIVER_UPDATE_NEEDED 0x04000000
103
104 #define NO_PRIORITY  0
105 #define MAX_PRIORITY 99
106 #define MIN_PRIORITY 1
107 #define DEF_PRIORITY 1
108
109 #define JOB_CONTROL_PAUSE             1
110 #define JOB_CONTROL_RESUME            2
111 #define JOB_CONTROL_CANCEL            3
112 #define JOB_CONTROL_RESTART           4
113 #define JOB_CONTROL_DELETE            5
114 #define JOB_CONTROL_SENT_TO_PRINTER   6
115 #define JOB_CONTROL_LAST_PAGE_EJECTED 7
116
117 #define JOB_STATUS_PAUSED       0x0001
118 #define JOB_STATUS_ERROR        0x0002
119 #define JOB_STATUS_DELETING     0x0004
120 #define JOB_STATUS_SPOOLING     0x0008
121 #define JOB_STATUS_PRINTING     0x0010
122 #define JOB_STATUS_OFFLINE      0x0020
123 #define JOB_STATUS_PAPEROUT     0x0040
124 #define JOB_STATUS_PRINTED      0x0080
125 #define JOB_STATUS_DELETED      0x0100
126 #define JOB_STATUS_BLOCKED_DEVQ 0x0200
127 #define JOB_STATUS_USER_INTERVENTION 0x0400
128
129 #define JOB_POSITION_UNSPECIFIED 1
130
131 #define DI_CHANNEL 1
132 #define DI_READ_SPOOL_JOB 3
133
134 #define FORM_USER    0
135 #define FORM_BUILTIN 1
136 #define FORM_PRINTER 2
137
138 #define PORT_TYPE_WRITE        1
139 #define PORT_TYPE_READ         2
140 #define PORT_TYPE_REDIRECTED   4
141 #define PORT_TYPE_NET_ATTACHED 8
142
143 #define PORT_STATUS_TYPE_ERROR   1
144 #define PORT_STATUS_TYPE_WARNING 2
145 #define PORT_STATUS_TYPE_INFO    3
146
147 #define PORT_STATUS_OFFLINE           1
148 #define PORT_STATUS_PAPER_JAM         2
149 #define PORT_STATUS_PAPER_OUT         3
150 #define PORT_STATUS_OUTPUT_BIN_FULL   4
151 #define PORT_STATUS_PAPER_PROBLEM     5
152 #define PORT_STATUS_NO_TONER          6
153 #define PORT_STATUS_DOOR_OPEN         7
154 #define PORT_STATUS_USER_INTERVENTION 8
155 #define PORT_STATUS_OUT_OF_MEMORY     9
156 #define PORT_STATUS_TONER_LOW         10
157 #define PORT_STATUS_WARMING_UP        11
158 #define PORT_STATUS_POWER_SAVE        12
159
160 #define PRINTER_NOTIFY_TYPE 0
161 #define JOB_NOTIFY_TYPE     1
162
163 #define PRINTER_NOTIFY_FIELD_SERVER_NAME     0x00
164 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME    0x01
165 #define PRINTER_NOTIFY_FIELD_SHARE_NAME      0x02
166 #define PRINTER_NOTIFY_FIELD_PORT_NAME       0x03
167 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME     0x04
168 #define PRINTER_NOTIFY_FIELD_COMMENT         0x05
169 #define PRINTER_NOTIFY_FIELD_LOCATION        0x06
170 #define PRINTER_NOTIFY_FIELD_DEVMODE         0x07
171 #define PRINTER_NOTIFY_FIELD_SEPFILE         0x08
172 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09
173 #define PRINTER_NOTIFY_FIELD_PARAMETERS      0x0a
174 #define PRINTER_NOTIFY_FIELD_DATATYPE        0x0b
175 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
176 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES      0x0d
177 #define PRINTER_NOTIFY_FIELD_PRIORITY        0x0e
178 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f
179 #define PRINTER_NOTIFY_FIELD_START_TIME      0x10
180 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME      0x11
181 #define PRINTER_NOTIFY_FIELD_STATUS          0x12
182 #define PRINTER_NOTIFY_FIELD_STATUS_STRING   0x13
183 #define PRINTER_NOTIFY_FIELD_CJOBS           0x14
184 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM     0x15
185 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES     0x16
186 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED   0x17
187 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES     0x18
188 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED   0x19
189
190 #define JOB_NOTIFY_FIELD_PRINTER_NAME    0x00
191 #define JOB_NOTIFY_FIELD_MACHINE_NAME    0x01
192 #define JOB_NOTIFY_FIELD_PORT_NAME       0x02
193 #define JOB_NOTIFY_FIELD_USER_NAME       0x03
194 #define JOB_NOTIFY_FIELD_NOTIFY_NAME     0x04
195 #define JOB_NOTIFY_FIELD_DATATYPE        0x05
196 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06
197 #define JOB_NOTIFY_FIELD_PARAMETERS      0x07
198 #define JOB_NOTIFY_FIELD_DRIVER_NAME     0x08
199 #define JOB_NOTIFY_FIELD_DEVMODE         0x09
200 #define JOB_NOTIFY_FIELD_STATUS          0x0a
201 #define JOB_NOTIFY_FIELD_STATUS_STRING   0x0b
202 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
203 #define JOB_NOTIFY_FIELD_DOCUMENT        0x0d
204 #define JOB_NOTIFY_FIELD_PRIORITY        0x0e
205 #define JOB_NOTIFY_FIELD_POSITION        0x0f
206 #define JOB_NOTIFY_FIELD_SUBMITTED       0x10
207 #define JOB_NOTIFY_FIELD_START_TIME      0x11
208 #define JOB_NOTIFY_FIELD_UNTIL_TIME      0x12
209 #define JOB_NOTIFY_FIELD_TIME            0x13
210 #define JOB_NOTIFY_FIELD_TOTAL_PAGES     0x14
211 #define JOB_NOTIFY_FIELD_PAGES_PRINTED   0x15
212 #define JOB_NOTIFY_FIELD_TOTAL_BYTES     0x16
213 #define JOB_NOTIFY_FIELD_BYTES_PRINTED   0x17
214
215 #define PRINTER_NOTIFY_OPTIONS_REFRESH   1
216 #define PRINTER_NOTIFY_INFO_DISCARDED    1
217
218 #define PRINTER_CHANGE_ADD_PRINTER               0x00000001
219 #define PRINTER_CHANGE_SET_PRINTER               0x00000002
220 #define PRINTER_CHANGE_DELETE_PRINTER            0x00000004
221 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
222 #define PRINTER_CHANGE_PRINTER                   0x000000ff
223 #define PRINTER_CHANGE_ADD_JOB                   0x00000100
224 #define PRINTER_CHANGE_SET_JOB                   0x00000200
225 #define PRINTER_CHANGE_DELETE_JOB                0x00000400
226 #define PRINTER_CHANGE_WRITE_JOB                 0x00000800
227 #define PRINTER_CHANGE_JOB                       0x0000ff00
228 #define PRINTER_CHANGE_ADD_FORM                  0x00010000
229 #define PRINTER_CHANGE_SET_FORM                  0x00020000
230 #define PRINTER_CHANGE_DELETE_FORM               0x00040000
231 #define PRINTER_CHANGE_FORM                      0x00070000
232 #define PRINTER_CHANGE_ADD_PORT                  0x00100000
233 #define PRINTER_CHANGE_CONFIGURE_PORT            0x00200000
234 #define PRINTER_CHANGE_DELETE_PORT               0x00400000
235 #define PRINTER_CHANGE_PORT                      0x00700000
236 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR       0x01000000
237 #define PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR  0x04000000
238 #define PRINTER_CHANGE_PRINT_PROCESSOR           0x07000000
239 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER        0x10000000
240 #define PRINTER_CHANGE_SET_PRINTER_DRIVER        0x20000000
241 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER     0x40000000
242 #define PRINTER_CHANGE_PRINTER_DRIVER            0x70000000
243 #define PRINTER_CHANGE_TIMEOUT                   0x80000000
244 #define PRINTER_CHANGE_ALL                       0x7777ffff
245
246 #define PRINTER_ERROR_INFORMATION   0x80000000
247 #define PRINTER_ERROR_WARNING       0x40000000
248 #define PRINTER_ERROR_SEVERE        0x20000000
249
250 #define PRINTER_ERROR_OUTODPAPER    0x00000001
251 #define PRINTER_ERROR_JAM           0x00000002
252 #define PRINTER_ERROR_OUTOFTONER    0x00000004
253
254 /* Access Rights for Printserver, Printers and Printjobs */
255 #define SERVER_ACCESS_ADMINISTER    0x00000001
256 #define SERVER_ACCESS_ENUMERATE     0x00000002
257 #define SERVER_READ        (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE)
258 #define SERVER_WRITE       (STANDARD_RIGHTS_WRITE | \
259                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
260 #define SERVER_EXECUTE     (STANDARD_RIGHTS_EXECUTE |  SERVER_ACCESS_ENUMERATE)
261 #define SERVER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \
262                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
263
264 #define PRINTER_ACCESS_ADMINISTER   0x00000004
265 #define PRINTER_ACCESS_USE          0x00000008
266 #define PRINTER_READ        (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE)
267 #define PRINTER_WRITE       (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE)
268 #define PRINTER_EXECUTE     (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE)
269 #define PRINTER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \
270                              PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE)
271
272 #define JOB_ACCESS_ADMINISTER       0x00000010
273 #define JOB_READ            (STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER)
274 #define JOB_WRITE           (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER)
275 #define JOB_EXECUTE         (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER)
276 #define JOB_ALL_ACCESS      (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER)
277
278
279 /* Flags for printer drivers */
280 #define DRIVER_KERNELMODE       0x00000001
281 #define DRIVER_USERMODE         0x00000002
282
283 #define APD_STRICT_UPGRADE      0x00000001
284 #define APD_STRICT_DOWNGRADE    0x00000002
285 #define APD_COPY_ALL_FILES      0x00000004
286 #define APD_COPY_NEW_FILES      0x00000008
287 #define APD_COPY_FROM_DIRECTORY 0x00000010
288
289 #define DPD_DELETE_UNUSED_FILES     0x00000001
290 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002
291 #define DPD_DELETE_ALL_FILES        0x00000004
292
293 /* dwAction for PRINTER_INFO_7 */
294 #define DSPRINT_PUBLISH     0x00000001
295 #define DSPRINT_UPDATE      0x00000002
296 #define DSPRINT_UNPUBLISH   0x00000004
297 #define DSPRINT_REPUBLISH   0x00000008
298 #define DSPRINT_PENDING     0x80000000
299
300 /* ##################################### */
301
302 /* TYPES */
303 typedef struct _PRINTER_DEFAULTSA {
304   LPSTR        pDatatype;
305   LPDEVMODEA pDevMode;
306   ACCESS_MASK  DesiredAccess;
307 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
308
309 typedef struct _PRINTER_DEFAULTSW {
310   LPWSTR       pDatatype;
311   LPDEVMODEW pDevMode;
312   ACCESS_MASK  DesiredAccess;
313 } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
314
315 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
316 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
317
318 typedef struct _DRIVER_INFO_1A {
319   LPSTR     pName;
320 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
321
322 typedef struct _DRIVER_INFO_1W {
323   LPWSTR    pName;
324 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
325
326 DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
327 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
328 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
329
330 typedef struct _DRIVER_INFO_2A {
331   DWORD     cVersion;
332   LPSTR     pName;
333   LPSTR     pEnvironment;
334   LPSTR     pDriverPath;
335   LPSTR     pDataFile;
336   LPSTR     pConfigFile;
337 } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
338
339 typedef struct _DRIVER_INFO_2W {
340   DWORD     cVersion;
341   LPWSTR    pName;
342   LPWSTR    pEnvironment;
343   LPWSTR    pDriverPath;
344   LPWSTR    pDataFile;
345   LPWSTR    pConfigFile;
346 } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
347
348 DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
349 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
350 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
351
352 typedef struct _DRIVER_INFO_3A {
353   DWORD cVersion;
354   LPSTR pName;
355   LPSTR pEnvironment;
356   LPSTR pDriverPath;
357   LPSTR pDataFile;
358   LPSTR pConfigFile;
359   LPSTR pHelpFile;
360   LPSTR pDependentFiles;
361   LPSTR pMonitorName;
362   LPSTR pDefaultDataType;
363 } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
364
365 typedef struct _DRIVER_INFO_3W {
366   DWORD cVersion;
367   LPWSTR pName;
368   LPWSTR pEnvironment;
369   LPWSTR pDriverPath;
370   LPWSTR pDataFile;
371   LPWSTR pConfigFile;
372   LPWSTR pHelpFile;
373   LPWSTR pDependentFiles;
374   LPWSTR pMonitorName;
375   LPWSTR pDefaultDataType;
376 } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W;
377
378 DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
379 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
380 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
381
382 typedef struct _DRIVER_INFO_4A {
383   DWORD cVersion;
384   LPSTR pName;
385   LPSTR pEnvironment;
386   LPSTR pDriverPath;
387   LPSTR pDataFile;
388   LPSTR pConfigFile;
389   LPSTR pHelpFile;
390   LPSTR pDependentFiles;
391   LPSTR pMonitorName;
392   LPSTR pDefaultDataType;
393   LPSTR pszzPreviousNames;
394 } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A;
395
396 typedef struct _DRIVER_INFO_4W {
397   DWORD cVersion;
398   LPWSTR pName;
399   LPWSTR pEnvironment;
400   LPWSTR pDriverPath;
401   LPWSTR pDataFile;
402   LPWSTR pConfigFile;
403   LPWSTR pHelpFile;
404   LPWSTR pDependentFiles;
405   LPWSTR pMonitorName;
406   LPWSTR pDefaultDataType;
407   LPWSTR pszzPreviousNames;
408 } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W;
409
410 DECL_WINELIB_TYPE_AW(DRIVER_INFO_4)
411 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_4)
412 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_4)
413
414
415 typedef struct _DRIVER_INFO_5A {
416   DWORD cVersion;
417   LPSTR pName;
418   LPSTR pEnvironment;
419   LPSTR pDriverPath;
420   LPSTR pDataFile;
421   LPSTR pConfigFile;
422   DWORD dwDriverAttributes;
423   DWORD dwConfigVersion;
424   DWORD dwDriverVersion;
425 } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A;
426
427 typedef struct _DRIVER_INFO_5W {
428   DWORD  cVersion;
429   LPWSTR pName;
430   LPWSTR pEnvironment;
431   LPWSTR pDriverPath;
432   LPWSTR pDataFile;
433   LPWSTR pConfigFile;
434   DWORD  dwDriverAttributes;
435   DWORD  dwConfigVersion;
436   DWORD  dwDriverVersion;
437 } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W;
438
439 DECL_WINELIB_TYPE_AW(DRIVER_INFO_5)
440 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_5)
441 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_5)
442
443 typedef struct _DRIVER_INFO_6A {
444   DWORD     cVersion;
445   LPSTR     pName;
446   LPSTR     pEnvironment;
447   LPSTR     pDriverPath;
448   LPSTR     pDataFile;
449   LPSTR     pConfigFile;
450   LPSTR     pHelpFile;
451   LPSTR     pDependentFiles;
452   LPSTR     pMonitorName;
453   LPSTR     pDefaultDataType;
454   LPSTR     pszzPreviousNames;
455   FILETIME  ftDriverDate;
456   DWORDLONG dwlDriverVersion;
457   LPSTR     pszMfgName;
458   LPSTR     pszOEMUrl;
459   LPSTR     pszHardwareID;
460   LPSTR     pszProvider;
461 } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A;
462
463 typedef struct _DRIVER_INFO_6W {
464   DWORD     cVersion;
465   LPWSTR    pName;
466   LPWSTR    pEnvironment;
467   LPWSTR    pDriverPath;
468   LPWSTR    pDataFile;
469   LPWSTR    pConfigFile;
470   LPWSTR    pHelpFile;
471   LPWSTR    pDependentFiles;
472   LPWSTR    pMonitorName;
473   LPWSTR    pDefaultDataType;
474   LPWSTR    pszzPreviousNames;
475   FILETIME  ftDriverDate;
476   DWORDLONG dwlDriverVersion;
477   LPWSTR    pszMfgName;
478   LPWSTR    pszOEMUrl;
479   LPWSTR    pszHardwareID;
480   LPWSTR    pszProvider;
481 } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W;
482
483 DECL_WINELIB_TYPE_AW(DRIVER_INFO_6)
484 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_6)
485 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_6)
486
487 /* DRIVER_INFO_7 is not defined in native winspool.h and not found in the www */
488
489 typedef struct _DRIVER_INFO_8A {
490   DWORD     cVersion;
491   LPSTR     pName;
492   LPSTR     pEnvironment;
493   LPSTR     pDriverPath;
494   LPSTR     pDataFile;
495   LPSTR     pConfigFile;
496   LPSTR     pHelpFile;
497   LPSTR     pDependentFiles;
498   LPSTR     pMonitorName;
499   LPSTR     pDefaultDataType;
500   LPSTR     pszzPreviousNames;
501   FILETIME  ftDriverDate;
502   DWORDLONG dwlDriverVersion;
503   LPSTR     pszMfgName;
504   LPSTR     pszOEMUrl;
505   LPSTR     pszHardwareID;
506   LPSTR     pszProvider;
507   LPSTR     pszPrintProcessor;
508   LPSTR     pszVendorSetup;
509   LPSTR     pszzColorProfiles;
510   LPSTR     pszInfPath;
511   DWORD     dwPrinterDriverAttributes;
512   LPSTR     pszzCoreDriverDependencies;
513   FILETIME  ftMinInboxDriverVerDate;
514   DWORDLONG dwlMinInboxDriverVerVersion;
515 } DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A;
516
517 typedef struct _DRIVER_INFO_8W {
518   DWORD     cVersion;
519   LPWSTR    pName;
520   LPWSTR    pEnvironment;
521   LPWSTR    pDriverPath;
522   LPWSTR    pDataFile;
523   LPWSTR    pConfigFile;
524   LPWSTR    pHelpFile;
525   LPWSTR    pDependentFiles;
526   LPWSTR    pMonitorName;
527   LPWSTR    pDefaultDataType;
528   LPWSTR    pszzPreviousNames;
529   FILETIME  ftDriverDate;
530   DWORDLONG dwlDriverVersion;
531   LPWSTR    pszMfgName;
532   LPWSTR    pszOEMUrl;
533   LPWSTR    pszHardwareID;
534   LPWSTR    pszProvider;
535   LPWSTR    pszPrintProcessor;
536   LPWSTR    pszVendorSetup;
537   LPWSTR    pszzColorProfiles;
538   LPWSTR    pszInfPath;
539   DWORD     dwPrinterDriverAttributes;
540   LPWSTR    pszzCoreDriverDependencies;
541   FILETIME  ftMinInboxDriverVerDate;
542   DWORDLONG dwlMinInboxDriverVerVersion;
543 } DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W;
544
545 DECL_WINELIB_TYPE_AW(DRIVER_INFO_8)
546 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_8)
547 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_8)
548
549
550 typedef struct _PRINTER_INFO_1A {
551   DWORD   Flags;
552   LPSTR   pDescription;
553   LPSTR   pName;
554   LPSTR   pComment;
555 } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
556
557 typedef struct _PRINTER_INFO_1W {
558   DWORD   Flags;
559   LPWSTR  pDescription;
560   LPWSTR  pName;
561   LPWSTR  pComment;
562 } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
563
564 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
565 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
566 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
567
568 /* FIXME: winspool.h declares some structure members with the name Status.
569  * unfortunately <X11/ICE/ICElib.h> #defines Status to the type 'int'
570  * therefore the following hack */
571 #ifndef Status
572
573 typedef struct _PRINTER_INFO_2A {
574   LPSTR     pServerName;
575   LPSTR     pPrinterName;
576   LPSTR     pShareName;
577   LPSTR     pPortName;
578   LPSTR     pDriverName;
579   LPSTR     pComment;
580   LPSTR     pLocation;
581   LPDEVMODEA pDevMode;
582   LPSTR     pSepFile;
583   LPSTR     pPrintProcessor;
584   LPSTR     pDatatype;
585   LPSTR     pParameters;
586   PSECURITY_DESCRIPTOR pSecurityDescriptor;
587   DWORD   Attributes;
588   DWORD   Priority;
589   DWORD   DefaultPriority;
590   DWORD   StartTime;
591   DWORD   UntilTime;
592   DWORD   Status;
593   DWORD   cJobs;
594   DWORD   AveragePPM;
595 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
596
597 typedef struct _PRINTER_INFO_2W {
598   LPWSTR    pServerName;
599   LPWSTR    pPrinterName;
600   LPWSTR    pShareName;
601   LPWSTR    pPortName;
602   LPWSTR    pDriverName;
603   LPWSTR    pComment;
604   LPWSTR    pLocation;
605   LPDEVMODEW pDevMode;
606   LPWSTR    pSepFile;
607   LPWSTR    pPrintProcessor;
608   LPWSTR    pDatatype;
609   LPWSTR    pParameters;
610   PSECURITY_DESCRIPTOR pSecurityDescriptor;
611   DWORD   Attributes;
612   DWORD   Priority;
613   DWORD   DefaultPriority;
614   DWORD   StartTime;
615   DWORD   UntilTime;
616   DWORD   Status;
617   DWORD   cJobs;
618   DWORD   AveragePPM;
619 } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
620
621 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
622 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
623 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
624
625 typedef struct _PRINTER_INFO_3 {
626   PSECURITY_DESCRIPTOR pSecurityDescriptor;
627 } PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3;
628
629 typedef struct _PRINTER_INFO_4A {
630   LPSTR     pPrinterName;
631   LPSTR     pServerName;
632   DWORD     Attributes;
633 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
634
635 typedef struct _PRINTER_INFO_4W {
636   LPWSTR     pPrinterName;
637   LPWSTR     pServerName;
638   DWORD     Attributes;
639 } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
640
641 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
642 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
643 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
644
645 typedef struct _PRINTER_INFO_5A {
646   LPSTR     pPrinterName;
647   LPSTR     pPortName;
648   DWORD     Attributes;
649   DWORD     DeviceNotSelectedTimeout;
650   DWORD     TransmissionRetryTimeout;
651 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
652
653 typedef struct _PRINTER_INFO_5W {
654   LPWSTR    pPrinterName;
655   LPWSTR    pPortName;
656   DWORD     Attributes;
657   DWORD     DeviceNotSelectedTimeout;
658   DWORD     TransmissionRetryTimeout;
659 } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
660
661 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
662 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
663 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
664
665 typedef struct _PRINTER_INFO_6 {
666   DWORD dwStatus;
667 } PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6;
668
669 typedef struct _PRINTER_INFO_7A {
670   LPSTR     pszObjectGUID;
671   DWORD     dwAction;
672 } PRINTER_INFO_7A, *PPRINTER_INFO_7A, *LPPRINTER_INFO_7A;
673
674 typedef struct _PRINTER_INFO_7W {
675   LPWSTR    pszObjectGUID;
676   DWORD     dwAction;
677 } PRINTER_INFO_7W, *PPRINTER_INFO_7W, *LPPRINTER_INFO_7W;
678
679 DECL_WINELIB_TYPE_AW(PRINTER_INFO_7)
680 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_7)
681 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_7)
682
683 typedef struct _PRINTER_INFO_8A {
684   LPDEVMODEA pDevMode;
685 } PRINTER_INFO_8A, *PPRINTER_INFO_8A, *LPPRINTER_INFO_8A;
686
687 typedef struct _PRINTER_INFO_8W {
688   LPDEVMODEW pDevMode;
689 } PRINTER_INFO_8W, *PPRINTER_INFO_8W, *LPPRINTER_INFO_8W;
690
691 DECL_WINELIB_TYPE_AW(PRINTER_INFO_8)
692 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_8)
693 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_8)
694
695 typedef struct _PRINTER_INFO_9A {
696   LPDEVMODEA pDevMode;
697 } PRINTER_INFO_9A, *PPRINTER_INFO_9A, *LPPRINTER_INFO_9A;
698
699 typedef struct _PRINTER_INFO_9W {
700   LPDEVMODEW pDevMode;
701 } PRINTER_INFO_9W, *PPRINTER_INFO_9W, *LPPRINTER_INFO_9W;
702
703 DECL_WINELIB_TYPE_AW(PRINTER_INFO_9)
704 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_9)
705 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_9)
706
707
708 typedef struct _JOB_INFO_1A {
709   DWORD JobId;
710   LPSTR pPrinterName;
711   LPSTR pMachineName;
712   LPSTR pUserName;
713   LPSTR pDocument;
714   LPSTR pDatatype;
715   LPSTR pStatus;
716   DWORD Status;
717   DWORD Priority;
718   DWORD Position;
719   DWORD TotalPages;
720   DWORD PagesPrinted;
721   SYSTEMTIME Submitted;
722 } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
723
724 typedef struct _JOB_INFO_1W {
725   DWORD JobId;
726   LPWSTR pPrinterName;
727   LPWSTR pMachineName;
728   LPWSTR pUserName;
729   LPWSTR pDocument;
730   LPWSTR pDatatype;
731   LPWSTR pStatus;
732   DWORD Status;
733   DWORD Priority;
734   DWORD Position;
735   DWORD TotalPages;
736   DWORD PagesPrinted;
737   SYSTEMTIME Submitted;
738 } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
739
740 DECL_WINELIB_TYPE_AW(JOB_INFO_1)
741 DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
742 DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
743
744 typedef struct _JOB_INFO_2A {
745   DWORD JobId;
746   LPSTR pPrinterName;
747   LPSTR pMachineName;
748   LPSTR pUserName;
749   LPSTR pDocument;
750   LPSTR pNotifyName;
751   LPSTR pDatatype;
752   LPSTR pPrintProcessor;
753   LPSTR pParameters;
754   LPSTR pDriverName;
755   LPDEVMODEA pDevMode;
756   LPSTR pStatus;
757   PSECURITY_DESCRIPTOR pSecurityDescriptor;
758   DWORD Status;
759   DWORD Priority;
760   DWORD Position;
761   DWORD StartTime;
762   DWORD UntilTime;
763   DWORD TotalPages;
764   DWORD Size;
765   SYSTEMTIME Submitted;
766   DWORD Time;
767   DWORD PagesPrinted;
768 } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
769
770 typedef struct _JOB_INFO_2W {
771   DWORD JobId;
772   LPWSTR pPrinterName;
773   LPWSTR pMachineName;
774   LPWSTR pUserName;
775   LPWSTR pDocument;
776   LPWSTR pNotifyName;
777   LPWSTR pDatatype;
778   LPWSTR pPrintProcessor;
779   LPWSTR pParameters;
780   LPWSTR pDriverName;
781   LPDEVMODEW pDevMode;
782   LPWSTR pStatus;
783   PSECURITY_DESCRIPTOR pSecurityDescriptor;
784   DWORD Status;
785   DWORD Priority;
786   DWORD Position;
787   DWORD StartTime;
788   DWORD UntilTime;
789   DWORD TotalPages;
790   DWORD Size;
791   SYSTEMTIME Submitted;
792   DWORD Time;
793   DWORD PagesPrinted;
794 } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
795
796 DECL_WINELIB_TYPE_AW(JOB_INFO_2)
797 DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
798 DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
799
800 typedef struct _JOB_INFO_3 {
801   DWORD JobId;
802   DWORD NextJobId;
803   DWORD Reserved;
804 } JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3;
805
806 typedef struct _ADDJOB_INFO_1A {
807   LPSTR Path;
808   DWORD JobId;
809 } ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A;
810
811 typedef struct _ADDJOB_INFO_1W {
812   LPWSTR Path;
813   DWORD  JobId;
814 } ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W;
815
816 DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1)
817 DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1)
818 DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1)
819
820 typedef struct _DOC_INFO_1A {
821   LPSTR pDocName;
822   LPSTR pOutputFile;
823   LPSTR pDatatype;
824 } DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A;
825
826 typedef struct _DOC_INFO_1W {
827   LPWSTR pDocName;
828   LPWSTR pOutputFile;
829   LPWSTR pDatatype;
830 } DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W;
831
832 DECL_WINELIB_TYPE_AW(DOC_INFO_1)
833 DECL_WINELIB_TYPE_AW(PDOC_INFO_1)
834 DECL_WINELIB_TYPE_AW(LPDOC_INFO_1)
835
836 typedef struct _DOC_INFO_2A {
837   LPSTR pDocName;
838   LPSTR pOutputFile;
839   LPSTR pDatatype;
840   DWORD dwMode;
841   DWORD JobId;
842 } DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A;
843
844 typedef struct _DOC_INFO_2W {
845   LPWSTR pDocName;
846   LPWSTR pOutputFile;
847   LPWSTR pDatatype;
848   DWORD dwMode;
849   DWORD JobId;
850 } DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W;
851
852 DECL_WINELIB_TYPE_AW(DOC_INFO_2)
853 DECL_WINELIB_TYPE_AW(PDOC_INFO_2)
854 DECL_WINELIB_TYPE_AW(LPDOC_INFO_2)
855
856 typedef struct _FORM_INFO_1A {
857   DWORD Flags;
858   LPSTR pName;
859   SIZEL Size;
860   RECTL ImageableArea;
861 } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A;
862
863 typedef struct _FORM_INFO_1W {
864   DWORD Flags;
865   LPWSTR pName;
866   SIZEL Size;
867   RECTL ImageableArea;
868 } FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W;
869
870 DECL_WINELIB_TYPE_AW(FORM_INFO_1)
871 DECL_WINELIB_TYPE_AW(PFORM_INFO_1)
872 DECL_WINELIB_TYPE_AW(LPFORM_INFO_1)
873
874 typedef struct _FORM_INFO_2A {
875   DWORD  Flags;
876   LPSTR  pName;
877   SIZEL  Size;
878   RECTL  ImageableArea;
879   LPCSTR pKeyword;
880   DWORD  StringType;
881   LPSTR  pMuiDll;
882   DWORD  dwResourceId;
883   LPSTR  pDisplayName;
884   LANGID wLangId;
885 } FORM_INFO_2A, *PFORM_INFO_2A, *LPFORM_INFO_2A;
886
887 typedef struct _FORM_INFO_2W {
888   DWORD  Flags;
889   LPWSTR pName;
890   SIZEL  Size;
891   RECTL  ImageableArea;
892   LPCSTR pKeyword;
893   DWORD  StringType;
894   LPWSTR pMuiDll;
895   DWORD  dwResourceId;
896   LPWSTR pDisplayName;
897   LANGID wLangId;
898 } FORM_INFO_2W, *PFORM_INFO_2W, *LPFORM_INFO_2W;
899
900 DECL_WINELIB_TYPE_AW(FORM_INFO_2)
901 DECL_WINELIB_TYPE_AW(PFORM_INFO_2)
902 DECL_WINELIB_TYPE_AW(LPFORM_INFO_2)
903
904 typedef struct _PRINTPROCESSOR_INFO_1A {
905   LPSTR pName;
906 } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A,
907   *LPPRINTPROCESSOR_INFO_1A;
908
909 typedef struct _PRINTPROCESSOR_INFO_1W {
910   LPWSTR pName;
911 } PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W,
912   *LPPRINTPROCESSOR_INFO_1W;
913
914 DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1)
915 DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1)
916 DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1)
917
918 typedef struct _PORT_INFO_1A {
919   LPSTR pName;
920 } PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A;
921
922 typedef struct _PORT_INFO_1W {
923   LPWSTR pName;
924 } PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W;
925
926 DECL_WINELIB_TYPE_AW(PORT_INFO_1)
927 DECL_WINELIB_TYPE_AW(PPORT_INFO_1)
928 DECL_WINELIB_TYPE_AW(LPPORT_INFO_1)
929
930 typedef struct _PORT_INFO_2A {
931   LPSTR pPortName;
932   LPSTR pMonitorName;
933   LPSTR pDescription;
934   DWORD fPortType;
935   DWORD Reserved;
936 } PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A;
937
938 typedef struct _PORT_INFO_2W {
939   LPWSTR pPortName;
940   LPWSTR pMonitorName;
941   LPWSTR pDescription;
942   DWORD  fPortType;
943   DWORD  Reserved;
944 } PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W;
945
946 DECL_WINELIB_TYPE_AW(PORT_INFO_2)
947 DECL_WINELIB_TYPE_AW(PPORT_INFO_2)
948 DECL_WINELIB_TYPE_AW(LPPORT_INFO_2)
949
950 typedef struct _PORT_INFO_3A {
951   DWORD dwStatus;
952   LPSTR pszStatus;
953   DWORD dwSeverity;
954 } PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A;
955
956 typedef struct _PORT_INFO_3W {
957   DWORD  dwStatus;
958   LPWSTR pszStatus;
959   DWORD  dwSeverity;
960 } PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W;
961
962 DECL_WINELIB_TYPE_AW(PORT_INFO_3)
963 DECL_WINELIB_TYPE_AW(PPORT_INFO_3)
964 DECL_WINELIB_TYPE_AW(LPPORT_INFO_3)
965
966 typedef struct _MONITOR_INFO_1A {
967   LPSTR pName;
968 } MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A;
969
970 typedef struct _MONITOR_INFO_1W {
971   LPWSTR pName;
972 } MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W;
973
974 DECL_WINELIB_TYPE_AW(MONITOR_INFO_1)
975 DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1)
976 DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1)
977
978 #endif /* Status */
979
980
981 typedef struct _MONITOR_INFO_2A {
982   LPSTR pName;
983   LPSTR pEnvironment;
984   LPSTR pDLLName;
985 } MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A;
986
987 typedef struct _MONITOR_INFO_2W {
988   LPWSTR pName;
989   LPWSTR pEnvironment;
990   LPWSTR pDLLName;
991 } MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W;
992
993 DECL_WINELIB_TYPE_AW(MONITOR_INFO_2)
994 DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2)
995 DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2)
996
997 typedef struct _DATATYPES_INFO_1A {
998   LPSTR pName;
999 } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A;
1000
1001 typedef struct _DATATYPES_INFO_1W {
1002   LPWSTR pName;
1003 } DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W;
1004
1005 DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1)
1006 DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1)
1007 DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1)
1008
1009 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
1010   WORD  Type;
1011   WORD  Reserved0;
1012   DWORD Reserved1;
1013   DWORD Reserved2;
1014   DWORD Count;
1015   PWORD pFields;
1016 } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE,
1017 *LPPRINTER_NOTIFY_OPTIONS_TYPE;
1018
1019 typedef struct _PRINTER_NOTIFY_OPTIONS {
1020   DWORD Version;
1021   DWORD Flags;
1022   DWORD Count;
1023   PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
1024 } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS;
1025
1026 typedef struct _PRINTER_NOTIFY_INFO_DATA {
1027   WORD Type;
1028   WORD Field;
1029   DWORD Reserved;
1030   DWORD Id;
1031   union {
1032     DWORD adwData[2];
1033     struct {
1034       DWORD cbBuf;
1035       LPVOID pBuf;
1036     } Data;
1037   } NotifyData;
1038 } PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA,
1039 *LPPRINTER_NOTIFY_INFO_DATA;
1040
1041 typedef struct _PRINTER_NOTIFY_INFO {
1042   DWORD Version;
1043   DWORD Flags;
1044   DWORD Count;
1045   PRINTER_NOTIFY_INFO_DATA aData[1];
1046 } PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO;
1047
1048 typedef struct _PROVIDOR_INFO_1A {
1049   LPSTR pName;
1050   LPSTR pEnvironment;
1051   LPSTR pDLLName;
1052 } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
1053
1054 typedef struct _PROVIDOR_INFO_1W {
1055   LPWSTR pName;
1056   LPWSTR pEnvironment;
1057   LPWSTR pDLLName;
1058 } PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
1059
1060 DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1)
1061 DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1)
1062 DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1)
1063
1064 typedef struct _PRINTER_ENUM_VALUESA {
1065   LPSTR  pValueName;
1066   DWORD  cbValueName;
1067   DWORD  dwType;
1068   LPBYTE pData;
1069   DWORD  cbData;
1070 } PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA;
1071
1072 typedef struct _PRINTER_ENUM_VALUESW {
1073   LPWSTR pValueName;
1074   DWORD  cbValueName;
1075   DWORD  dwType;
1076   LPBYTE pData;
1077   DWORD  cbData;
1078 } PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW;
1079
1080 DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES)
1081 DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES)
1082
1083 typedef enum {
1084  BIDI_NULL = 0,
1085  BIDI_INT,
1086  BIDI_FLOAT,
1087  BIDI_BOOL,
1088  BIDI_STRING,
1089  BIDI_TEXT,
1090  BIDI_ENUM,
1091  BIDI_BLOB
1092 } BIDI_TYPE;
1093
1094 typedef struct _BINARY_CONTAINER {
1095  DWORD  cbBuf;
1096  LPBYTE pData;
1097 } BINARY_CONTAINER, *PBINARY_CONTAINER;
1098
1099 typedef struct _BIDI_DATA {
1100  DWORD  dwBidiType;
1101  union
1102  {
1103    BOOL             bData;
1104    INT              iData;
1105    LPWSTR           sData;
1106    FLOAT            fData;
1107    BINARY_CONTAINER biData;
1108  } u;
1109 } BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA;
1110
1111 typedef struct _BIDI_REQUEST_DATA {
1112  DWORD      dwReqNumber;
1113  LPWSTR     pSchema;
1114  BIDI_DATA  data;
1115 } BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA;
1116
1117 typedef struct _BIDI_REQUEST_CONTAINER {
1118  DWORD              Version;
1119  DWORD              Flags;
1120  DWORD              Count;
1121  BIDI_REQUEST_DATA  aData[1];
1122 } BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER;
1123
1124 typedef struct _BIDI_RESPONSE_DATA {
1125  DWORD      dwResult;
1126  DWORD      dwReqNumber;
1127  LPWSTR     pSchema;
1128  BIDI_DATA  data;
1129 } BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA;
1130
1131 typedef struct _BIDI_RESPONSE_CONTAINER {
1132  DWORD              Version;
1133  DWORD              Flags;
1134  DWORD              Count;
1135  BIDI_RESPONSE_DATA aData[1];
1136 } BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER;
1137
1138 /* string constants */
1139
1140 #define SPLREG_DEFAULT_SPOOL_DIRECTORYA "DefaultSpoolDirectory"
1141 #ifdef _MSC_VER
1142 #define SPLREG_DEFAULT_SPOOL_DIRECTORYW L"DefaultSpoolDirectory"
1143 #elif defined(__GNUC__)
1144 #define SPLREG_DEFAULT_SPOOL_DIRECTORYW (const WCHAR[]){'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0}
1145 #else
1146 static const WCHAR SPLREG_DEFAULT_SPOOL_DIRECTORYW[] = {'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0};
1147 #endif
1148 #define SPLREG_DEFAULT_SPOOL_DIRECTORY WINELIB_NAME_AW(SPLREG_DEFAULT_SPOOL_DIRECTORY)
1149
1150 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULTA "PortThreadPriorityDefault"
1151 #ifdef _MSC_VER
1152 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW L"PortThreadPriorityDefault"
1153 #elif defined(__GNUC__)
1154 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}
1155 #else
1156 static const WCHAR SPLREG_PORT_THREAD_PRIORITY_DEFAULTW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0};
1157 #endif
1158 #define SPLREG_PORT_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY_DEFAULT)
1159
1160 #define SPLREG_PORT_THREAD_PRIORITYA "PortThreadPriority"
1161 #ifdef _MSC_VER
1162 #define SPLREG_PORT_THREAD_PRIORITYW L"PortThreadPriority"
1163 #elif defined(__GNUC__)
1164 #define SPLREG_PORT_THREAD_PRIORITYW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}
1165 #else
1166 static const WCHAR SPLREG_PORT_THREAD_PRIORITYW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0};
1167 #endif
1168 #define SPLREG_PORT_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY)
1169
1170 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTA "SchedulerThreadPriorityDefault"
1171 #ifdef _MSC_VER
1172 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW L"SchedulerThreadPriorityDefault"
1173 #elif defined(__GNUC__)
1174 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}
1175 #else
1176 static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0};
1177 #endif
1178 #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT)
1179
1180 #define SPLREG_SCHEDULER_THREAD_PRIORITYA "SchedulerThreadPriority"
1181 #ifdef _MSC_VER
1182 #define SPLREG_SCHEDULER_THREAD_PRIORITYW L"SchedulerThreadPriority"
1183 #elif defined(__GNUC__)
1184 #define SPLREG_SCHEDULER_THREAD_PRIORITYW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}
1185 #else
1186 static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITYW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0};
1187 #endif
1188 #define SPLREG_SCHEDULER_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY)
1189
1190 #define SPLREG_BEEP_ENABLEDA "BeepEnabled"
1191 #ifdef _MSC_VER
1192 #define SPLREG_BEEP_ENABLEDW L"BeepEnabled"
1193 #elif defined(__GNUC__)
1194 #define SPLREG_BEEP_ENABLEDW (const WCHAR[]){'B','e','e','p','E','n','a','b','l','e','d',0}
1195 #else
1196 static const WCHAR SPLREG_BEEP_ENABLEDW[] = {'B','e','e','p','E','n','a','b','l','e','d',0};
1197 #endif
1198 #define SPLREG_BEEP_ENABLED WINELIB_NAME_AW(SPLREG_BEEP_ENABLED)
1199
1200 #define SPLREG_NET_POPUPA "NetPopup"
1201 #ifdef _MSC_VER
1202 #define SPLREG_NET_POPUPW L"NetPopup"
1203 #elif defined(__GNUC__)
1204 #define SPLREG_NET_POPUPW (const WCHAR[]){'N','e','t','P','o','p','u','p',0}
1205 #else
1206 static const WCHAR SPLREG_NET_POPUPW[] = {'N','e','t','P','o','p','u','p',0};
1207 #endif
1208 #define SPLREG_NET_POPUP WINELIB_NAME_AW(SPLREG_NET_POPUP)
1209
1210 #define SPLREG_RETRY_POPUPA "RetryPopup"
1211 #ifdef _MSC_VER
1212 #define SPLREG_RETRY_POPUPW L"RetryPopup"
1213 #elif defined(__GNUC__)
1214 #define SPLREG_RETRY_POPUPW (const WCHAR[]){'R','e','t','r','y','P','o','p','u','p',0}
1215 #else
1216 static const WCHAR SPLREG_RETRY_POPUPW[] = {'R','e','t','r','y','P','o','p','u','p',0};
1217 #endif
1218 #define SPLREG_RETRY_POPUP WINELIB_NAME_AW(SPLREG_RETRY_POPUP)
1219
1220 #define SPLREG_NET_POPUP_TO_COMPUTERA "NetPopupToComputer"
1221 #ifdef _MSC_VER
1222 #define SPLREG_NET_POPUP_TO_COMPUTERW L"NetPopupToComputer"
1223 #elif defined(__GNUC__)
1224 #define SPLREG_NET_POPUP_TO_COMPUTERW (const WCHAR[]){'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0}
1225 #else
1226 static const WCHAR SPLREG_NET_POPUP_TO_COMPUTERW[] = {'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0};
1227 #endif
1228 #define SPLREG_NET_POPUP_TO_COMPUTER WINELIB_NAME_AW(SPLREG_NET_POPUP_TO_COMPUTER)
1229
1230 #define SPLREG_EVENT_LOGA "EventLog"
1231 #ifdef _MSC_VER
1232 #define SPLREG_EVENT_LOGW L"EventLog"
1233 #elif defined(__GNUC__)
1234 #define SPLREG_EVENT_LOGW (const WCHAR[]){'E','v','e','n','t','L','o','g',0}
1235 #else
1236 static const WCHAR SPLREG_EVENT_LOGW[] = {'E','v','e','n','t','L','o','g',0};
1237 #endif
1238 #define SPLREG_EVENT_LOG WINELIB_NAME_AW(SPLREG_EVENT_LOG)
1239
1240 #define SPLREG_MAJOR_VERSIONA "MajorVersion"
1241 #ifdef _MSC_VER
1242 #define SPLREG_MAJOR_VERSIONW L"MajorVersion"
1243 #elif defined(__GNUC__)
1244 #define SPLREG_MAJOR_VERSIONW (const WCHAR[]){'M','a','j','o','r','V','e','r','s','i','o','n',0}
1245 #else
1246 static const WCHAR SPLREG_MAJOR_VERSIONW[] = {'M','a','j','o','r','V','e','r','s','i','o','n',0};
1247 #endif
1248 #define SPLREG_MAJOR_VERSION WINELIB_NAME_AW(SPLREG_MAJOR_VERSION)
1249
1250 #define SPLREG_MINOR_VERSIONA "MinorVersion"
1251 #ifdef _MSC_VER
1252 #define SPLREG_MINOR_VERSIONW L"MinorVersion"
1253 #elif defined(__GNUC__)
1254 #define SPLREG_MINOR_VERSIONW (const WCHAR[]){'M','i','n','o','r','V','e','r','s','i','o','n',0}
1255 #else
1256 static const WCHAR SPLREG_MINOR_VERSIONW[] = {'M','i','n','o','r','V','e','r','s','i','o','n',0};
1257 #endif
1258 #define SPLREG_MINOR_VERSION WINELIB_NAME_AW(SPLREG_MINOR_VERSION)
1259
1260 #define SPLREG_ARCHITECTUREA "Architecture"
1261 #ifdef _MSC_VER
1262 #define SPLREG_ARCHITECTUREW L"Architecture"
1263 #elif defined(__GNUC__)
1264 #define SPLREG_ARCHITECTUREW (const WCHAR[]){'A','r','c','h','i','t','e','c','t','u','r','e',0}
1265 #else
1266 static const WCHAR SPLREG_ARCHITECTUREW[] = {'A','r','c','h','i','t','e','c','t','u','r','e',0};
1267 #endif
1268 #define SPLREG_ARCHITECTURE WINELIB_NAME_AW(SPLREG_ARCHITECTURE)
1269
1270 #define SPLREG_OS_VERSIONA "OSVersion"
1271 #ifdef _MSC_VER
1272 #define SPLREG_OS_VERSIONW L"OSVersion"
1273 #elif defined(__GNUC__)
1274 #define SPLREG_OS_VERSIONW (const WCHAR[]){'O','S','V','e','r','s','i','o','n',0}
1275 #else
1276 static const WCHAR SPLREG_OS_VERSIONW[] = {'O','S','V','e','r','s','i','o','n',0};
1277 #endif
1278 #define SPLREG_OS_VERSION WINELIB_NAME_AW(SPLREG_OS_VERSION)
1279
1280 #define SPLREG_OS_VERSIONEXA "OSVersionEx"
1281 #ifdef _MSC_VER
1282 #define SPLREG_OS_VERSIONEXW L"OSVersionEx"
1283 #elif defined(__GNUC__)
1284 #define SPLREG_OS_VERSIONEXW (const WCHAR[]){'O','S','V','e','r','s','i','o','n','E','x',0}
1285 #else
1286 static const WCHAR SPLREG_OS_VERSIONEXW[] = {'O','S','V','e','r','s','i','o','n','E','x',0};
1287 #endif
1288 #define SPLREG_OS_VERSIONEX WINELIB_NAME_AW(SPLREG_OS_VERSIONEX)
1289
1290 #define SPLREG_DS_PRESENTA "DsPresent"
1291 #ifdef _MSC_VER
1292 #define SPLREG_DS_PRESENTW L"DsPresent"
1293 #elif defined(__GNUC__)
1294 #define SPLREG_DS_PRESENTW (const WCHAR[]){'D','s','P','r','e','s','e','n','t',0}
1295 #else
1296 static const WCHAR SPLREG_DS_PRESENTW[] = {'D','s','P','r','e','s','e','n','t',0};
1297 #endif
1298 #define SPLREG_DS_PRESENT WINELIB_NAME_AW(SPLREG_DS_PRESENT)
1299
1300 #define SPLREG_DS_PRESENT_FOR_USERA "DsPresentForUser"
1301 #ifdef _MSC_VER
1302 #define SPLREG_DS_PRESENT_FOR_USERW L"DsPresentForUser"
1303 #elif defined(__GNUC__)
1304 #define SPLREG_DS_PRESENT_FOR_USERW (const WCHAR[]){'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0}
1305 #else
1306 static const WCHAR SPLREG_DS_PRESENT_FOR_USERW[] = {'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0};
1307 #endif
1308 #define SPLREG_DS_PRESENT_FOR_USER WINELIB_NAME_AW(SPLREG_DS_PRESENT_FOR_USER)
1309
1310 #define SPLREG_REMOTE_FAXA "RemoteFax"
1311 #ifdef _MSC_VER
1312 #define SPLREG_REMOTE_FAXW L"RemoteFax"
1313 #elif defined(__GNUC__)
1314 #define SPLREG_REMOTE_FAXW (const WCHAR[]){'R','e','m','o','t','e','F','a','x',0}
1315 #else
1316 static const WCHAR SPLREG_REMOTE_FAXW[] = {'R','e','m','o','t','e','F','a','x',0};
1317 #endif
1318 #define SPLREG_REMOTE_FAX WINELIB_NAME_AW(SPLREG_REMOTE_FAX)
1319
1320 #define SPLREG_RESTART_JOB_ON_POOL_ERRORA "RestartJobOnPoolError"
1321 #ifdef _MSC_VER
1322 #define SPLREG_RESTART_JOB_ON_POOL_ERRORW L"RestartJobOnPoolError"
1323 #elif defined(__GNUC__)
1324 #define SPLREG_RESTART_JOB_ON_POOL_ERRORW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0}
1325 #else
1326 static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ERRORW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0};
1327 #endif
1328 #define SPLREG_RESTART_JOB_ON_POOL_ERROR WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ERROR)
1329
1330 #define SPLREG_RESTART_JOB_ON_POOL_ENABLEDA "RestartJobOnPoolEnabled"
1331 #ifdef _MSC_VER
1332 #define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW L"RestartJobOnPoolEnabled"
1333 #elif defined(__GNUC__)
1334 #define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0}
1335 #else
1336 static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ENABLEDW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0};
1337 #endif
1338 #define SPLREG_RESTART_JOB_ON_POOL_ENABLED WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ENABLED)
1339
1340 #define SPLREG_DNS_MACHINE_NAMEA "DNSMachineName"
1341 #ifdef _MSC_VER
1342 #define SPLREG_DNS_MACHINE_NAMEW L"DNSMachineName"
1343 #elif defined(__GNUC__)
1344 #define SPLREG_DNS_MACHINE_NAMEW (const WCHAR[]){'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0}
1345 #else
1346 static const WCHAR SPLREG_DNS_MACHINE_NAMEW[] = {'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0};
1347 #endif
1348 #define SPLREG_DNS_MACHINE_NAME WINELIB_NAME_AW(SPLREG_DNS_MACHINE_NAME)
1349
1350 #define SPLREG_ALLOW_USER_MANAGEFORMSA "AllowUserManageForms"
1351 #ifdef _MSC_VER
1352 #define SPLREG_ALLOW_USER_MANAGEFORMSW L"AllowUserManageForms"
1353 #elif defined(__GNUC__)
1354 #define SPLREG_ALLOW_USER_MANAGEFORMSW (const WCHAR[]){'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0}
1355 #else
1356 static const WCHAR SPLREG_ALLOW_USER_MANAGEFORMSW[] = {'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0};
1357 #endif
1358 #define SPLREG_ALLOW_USER_MANAGEFORMS WINELIB_NAME_AW(SPLREG_ALLOW_USER_MANAGEFORMS)
1359
1360 #define SPLREG_WEBSHAREMGMTA "WebShareMgmt"
1361 #ifdef _MSC_VER
1362 #define SPLREG_WEBSHAREMGMTW L"WebShareMgmt"
1363 #elif defined(__GNUC__)
1364 #define SPLREG_WEBSHAREMGMTW (const WCHAR[]){'W','e','b','S','h','a','r','e','M','g','m','t',0}
1365 #else
1366 static const WCHAR SPLREG_WEBSHAREMGMTW[] = {'W','e','b','S','h','a','r','e','M','g','m','t',0};
1367 #endif
1368 #define SPLREG_WEBSHAREMGMT WINELIB_NAME_AW(SPLREG_WEBSHAREMGMT)
1369
1370 #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSA "PrintDriverIsolationGroups"
1371 #ifdef _MSC_VER
1372 #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW L"PrintDriverIsolationGroups"
1373 #elif defined(__GNUC__)
1374 #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0}
1375 #else
1376 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0};
1377 #endif
1378 #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPS WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_GROUPS)
1379
1380 #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEA "PrintDriverIsolationTimeBeforeRecycle"
1381 #ifdef _MSC_VER
1382 #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW L"PrintDriverIsolationTimeBeforeRecycle"
1383 #elif defined(__GNUC__)
1384 #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0}
1385 #else
1386 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0};
1387 #endif
1388 #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE)
1389
1390 #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEA "PrintDriverIsolationMaxobjsBeforeRecycle"
1391 #ifdef _MSC_VER
1392 #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW L"PrintDriverIsolationMaxobjsBeforeRecycle"
1393 #elif defined(__GNUC__)
1394 #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0}
1395 #else
1396 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0};
1397 #endif
1398 #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE)
1399
1400 #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTA "PrintDriverIsolationIdleTimeout"
1401 #ifdef _MSC_VER
1402 #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW L"PrintDriverIsolationIdleTimeout"
1403 #elif defined(__GNUC__)
1404 #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0}
1405 #else
1406 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0};
1407 #endif
1408 #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT)
1409
1410 #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYA "PrintDriverIsolationExecutionPolicy"
1411 #ifdef _MSC_VER
1412 #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW L"PrintDriverIsolationExecutionPolicy"
1413 #elif defined(__GNUC__)
1414 #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0}
1415 #else
1416 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0};
1417 #endif
1418 #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY)
1419
1420 #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYA "PrintDriverIsolationOverrideCompat"
1421 #ifdef _MSC_VER
1422 #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW L"PrintDriverIsolationOverrideCompat"
1423 #elif defined(__GNUC__)
1424 #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0}
1425 #else
1426 static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0};
1427 #endif
1428 #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY)
1429
1430 /* DECLARATIONS */
1431 INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
1432                                LPSTR pOutput, LPDEVMODEA pDevMode);
1433 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
1434                                WORD fwCapability, LPWSTR pOutput,
1435                                const DEVMODEW *pDevMode);
1436
1437 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
1438
1439 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
1440                                 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
1441                                 LPDEVMODEA pDevModeInput,DWORD fMode );
1442 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
1443                                 LPWSTR pDeviceName,
1444                                 LPDEVMODEW pDevModeOutput,
1445                                 LPDEVMODEW pDevModeInput, DWORD fMode);
1446
1447 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
1448
1449 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
1450                              LPPRINTER_DEFAULTSA pDefault);
1451 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
1452                              LPPRINTER_DEFAULTSW pDefault);
1453
1454 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
1455
1456 BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault);
1457 BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
1458 #define ResetPrinter WINELIB_NAME_AW(ResetPrinter)
1459
1460 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
1461
1462 BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
1463                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
1464                       LPDWORD pcReturned);
1465 BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
1466                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
1467                       LPDWORD pcReturned);
1468 #define EnumJobs WINELIB_NAME_AW(EnumJobs)
1469
1470 BOOL  WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
1471                                DWORD dwLevel, LPBYTE lpbPrinters,
1472                                DWORD cbBuf, LPDWORD lpdwNeeded,
1473                                LPDWORD lpdwReturned);
1474 BOOL  WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
1475                                DWORD dwLevel, LPBYTE lpbPrinters,
1476                                DWORD cbBuf, LPDWORD lpdwNeeded,
1477                                LPDWORD lpdwReturned);
1478 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
1479
1480 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
1481
1482 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
1483 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
1484 #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
1485
1486 BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment,
1487                               DWORD Level, LPBYTE pDriverInfo,
1488                               DWORD cbBuf, LPDWORD pcbNeeded);
1489 BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
1490                               DWORD Level, LPBYTE pDriverInfo,
1491                               DWORD cbBuf, LPDWORD pcbNeeded);
1492 #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver)
1493
1494 BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1495                     DWORD Command);
1496 BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1497                     DWORD Command);
1498 #define SetJob WINELIB_NAME_AW(SetJob)
1499
1500 BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1501                     DWORD cbBuf, LPDWORD pcbNeeded);
1502 BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
1503                     DWORD cbBuf, LPDWORD pcbNeeded);
1504 #define GetJob WINELIB_NAME_AW(GetJob)
1505
1506 HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter);
1507 HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
1508 #define AddPrinter WINELIB_NAME_AW(AddPrinter)
1509
1510 BOOL WINAPI DeletePrinter(HANDLE hPrinter);
1511
1512 BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1513                         DWORD Command);
1514 BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1515                         DWORD Command);
1516 #define SetPrinter WINELIB_NAME_AW(SetPrinter)
1517
1518 BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1519                         DWORD cbBuf, LPDWORD pcbNeeded);
1520 BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
1521                         DWORD cbBuf, LPDWORD pcbNeeded);
1522 #define GetPrinter WINELIB_NAME_AW(GetPrinter)
1523
1524 BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo);
1525 BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
1526 #define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver)
1527
1528 BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo,
1529                                 DWORD dwFileCopyFlags);
1530 BOOL WINAPI AddPrinterDriverExW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo,
1531                                 DWORD dwFileCopyFlags);
1532 #define AddPrinterDriverEx WINELIB_NAME_AW(AddPrinterDriverEx)
1533
1534 BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level,
1535                                 LPBYTE pDriverInfo, DWORD cbBuf,
1536                                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
1537 BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level,
1538                                 LPBYTE pDriverInfo, DWORD cbBuf,
1539                                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
1540 #define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers)
1541
1542 BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize);
1543 BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize);
1544 #define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter)
1545
1546 BOOL WINAPI SetDefaultPrinterA(LPCSTR);
1547 BOOL WINAPI SetDefaultPrinterW(LPCWSTR);
1548 #define SetDefaultPrinter WINELIB_NAME_AW(SetDefaultPrinter)
1549
1550 BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment,
1551                                  LPSTR pDriverName);
1552 BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment,
1553                                  LPWSTR pDriverName);
1554 #define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver)
1555
1556 BOOL WINAPI DeletePrinterDriverExA(LPSTR pName, LPSTR pEnvironment,
1557                                    LPSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag);
1558 BOOL WINAPI DeletePrinterDriverExW(LPWSTR pName, LPWSTR pEnvironment,
1559                                    LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag);
1560 #define DeletePrinterDriverEx WINELIB_NAME_AW(DeletePrinterDriverEx)
1561
1562 BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment,
1563                                LPSTR pPathName, LPSTR pPrintProcessorName);
1564 BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
1565                                LPWSTR pPathName, LPWSTR pPrintProcessorName);
1566 #define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor)
1567
1568 BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment,
1569                                  DWORD Level, LPBYTE pPrintProcessorInfo,
1570                                  DWORD cbBuf, LPDWORD pcbNeeded,
1571                                  LPDWORD pcbReturned);
1572 BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment,
1573                                  DWORD Level, LPBYTE pPrintProcessorInfo,
1574                                  DWORD cbBuf, LPDWORD pcbNeeded,
1575                                  LPDWORD pcbReturned);
1576 #define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors)
1577
1578 BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment,
1579                                         DWORD Level,
1580                                         LPBYTE pPrintProcessorInfo,
1581                                         DWORD cbBuf, LPDWORD pcbNeeded);
1582
1583 BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment,
1584                                         DWORD Level,
1585                                         LPBYTE pPrintProcessorInfo,
1586                                         DWORD cbBuf, LPDWORD pcbNeeded);
1587 #define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory)
1588
1589 BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,
1590                                          LPSTR pPrintProcessorName,
1591                                          DWORD Level, LPBYTE pDatatypes,
1592                                          DWORD cbBuf, LPDWORD pcbNeeded,
1593                                          LPDWORD pcbReturned);
1594 BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,
1595                                          LPWSTR pPrintProcessorName,
1596                                          DWORD Level, LPBYTE pDatatypes,
1597                                          DWORD cbBuf, LPDWORD pcbNeeded,
1598                                          LPDWORD pcbReturned);
1599 #define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes)
1600
1601 BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment,
1602                                   LPSTR pPrintProcessorName);
1603 BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
1604                                   LPWSTR pPrintProcessorName);
1605 #define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor)
1606
1607 DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
1608 DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
1609 #define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter)
1610
1611 BOOL WINAPI StartPagePrinter(HANDLE hPrinter);
1612 BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
1613                          LPDWORD pcWritten);
1614 BOOL WINAPI EndPagePrinter(HANDLE hPrinter);
1615 BOOL WINAPI AbortPrinter(HANDLE hPrinter);
1616 BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
1617                         LPDWORD pNoBytesRead);
1618 BOOL WINAPI EndDocPrinter(HANDLE hPrinter);
1619
1620 BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
1621                     LPDWORD pcbNeeded);
1622 BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
1623                     LPDWORD pcbNeeded);
1624 #define AddJob WINELIB_NAME_AW(AddJob)
1625
1626 BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID);
1627
1628 LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter,
1629                                         LPSTR pDeviceName,
1630                                         PDEVMODEA pDevModeOutput,
1631                                         PDEVMODEA pDevModeInput);
1632 LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
1633                                         LPWSTR pDeviceName,
1634                                         PDEVMODEW pDevModeOutput,
1635                                         PDEVMODEW pDevModeInput);
1636 #define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties)
1637
1638 DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType,
1639                              LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1640 DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType,
1641                              LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1642 #define GetPrinterData WINELIB_NAME_AW(GetPrinterData)
1643
1644 DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1645                                LPCSTR pValueName, LPDWORD pType,
1646                                LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1647 DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1648                                LPCWSTR pValueName, LPDWORD pType,
1649                                LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1650 #define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx)
1651
1652 DWORD WINAPI DeletePrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1653                                   LPCSTR pValueName);
1654 DWORD WINAPI DeletePrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1655                                   LPCWSTR pValueName);
1656 #define DeletePrinterDataEx WINELIB_NAME_AW(DeletePrinterDataEx)
1657
1658 DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
1659                              LPBYTE pData, DWORD cbData);
1660 DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
1661                              LPBYTE pData, DWORD cbData);
1662 #define SetPrinterData WINELIB_NAME_AW(SetPrinterData)
1663
1664 DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1665                                LPCSTR pValueName, DWORD Type,
1666                                LPBYTE pData, DWORD cbData);
1667 DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1668                                LPCWSTR pValueName, DWORD Type,
1669                                LPBYTE pData, DWORD cbData);
1670 #define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx)
1671
1672 DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags);
1673 HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,
1674                                                  DWORD fdwFlags,
1675                                                  DWORD fdwOptions,
1676                                                  LPVOID pPrinterNotifyOptions);
1677 BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,
1678                                               PDWORD pdwChange,
1679                                               LPVOID pvReserved,
1680                                               LPVOID *ppPrinterNotifyInfo);
1681 BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo);
1682 BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange);
1683
1684 DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd,
1685                                 LPSTR pText, LPSTR pCaption, DWORD dwType);
1686 DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd,
1687                                 LPWSTR pText, LPWSTR pCaption, DWORD dwType);
1688 #define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox)
1689
1690 BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1691 BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1692 #define AddForm WINELIB_NAME_AW(AddForm)
1693
1694 BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName);
1695 BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName);
1696 #define DeleteForm WINELIB_NAME_AW(DeleteForm)
1697
1698 BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1699                      LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1700 BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1701                      LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1702 #define GetForm WINELIB_NAME_AW(GetForm)
1703
1704 BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1705                      LPBYTE pForm);
1706 BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1707                      LPBYTE pForm);
1708 #define SetForm WINELIB_NAME_AW(SetForm)
1709
1710 BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1711                        LPDWORD pcbNeeded, LPDWORD pcReturned);
1712 BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1713                        LPDWORD pcbNeeded, LPDWORD pcReturned);
1714 #define EnumForms WINELIB_NAME_AW(EnumForms)
1715
1716 BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors,
1717                           DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1718 BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
1719                           DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1720 #define EnumMonitors WINELIB_NAME_AW(EnumMonitors)
1721
1722 DWORD WINAPI EnumPrinterDataA( HANDLE hPrinter, DWORD dwIndex, LPSTR pValueName,
1723     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
1724     DWORD cbData, LPDWORD pcbData );
1725 DWORD WINAPI EnumPrinterDataW( HANDLE hPrinter, DWORD dwIndex, LPWSTR pValueName,
1726     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
1727     DWORD cbData, LPDWORD pcbData );
1728 #define EnumPrinterData WINELIB_NAME_AW(EnumPrinterData)
1729
1730 BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors);
1731 BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
1732 #define AddMonitor WINELIB_NAME_AW(AddMonitor)
1733
1734 BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment,
1735                            LPSTR pMonitorName);
1736 BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment,
1737                            LPWSTR pMonitorName);
1738 #define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor)
1739
1740 BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts,
1741                        DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1742 BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts,
1743                        DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1744 #define EnumPorts WINELIB_NAME_AW(EnumPorts)
1745
1746 BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName);
1747 BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
1748 #define AddPort WINELIB_NAME_AW(AddPort)
1749
1750 BOOL WINAPI AddPortExA(LPSTR, DWORD, LPBYTE, LPSTR);
1751 BOOL WINAPI AddPortExW(LPWSTR, DWORD, LPBYTE, LPWSTR);
1752 #define AddPortEx WINELIB_NAME_AW(AddPortEx)
1753
1754 BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1755 BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1756 #define ConfigurePort WINELIB_NAME_AW(ConfigurePort)
1757
1758 BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1759 BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1760 #define DeletePort WINELIB_NAME_AW(DeletePort)
1761
1762 BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel,
1763                      LPBYTE pPortInfo);
1764 BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
1765                      LPBYTE pPortInfo);
1766 #define SetPort WINELIB_NAME_AW(SetPort)
1767
1768 BOOL WINAPI AddPrinterConnectionA(LPSTR pName);
1769 BOOL WINAPI AddPrinterConnectionW(LPWSTR pName);
1770 #define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection)
1771
1772 BOOL WINAPI DeletePrinterConnectionA(LPSTR pName);
1773 BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName);
1774 #define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection)
1775
1776 HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags);
1777
1778 BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1779 BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1780 #define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor)
1781
1782 BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment,
1783                                  LPSTR pPrintProvidorName);
1784 BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment,
1785                                  LPWSTR pPrintProvidorName);
1786 #define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor)
1787
1788 DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1789                                 LPBYTE pEnumValues, DWORD cbEnumValues,
1790                                 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1791 DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1792                                 LPBYTE pEnumValues, DWORD cbEnumValues,
1793                                 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1794 #define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx)
1795
1796 LONG WINAPI ExtDeviceMode( HWND hWnd, HANDLE hInst, LPDEVMODEA pDevModeOutput,
1797     LPSTR pDeviceName, LPSTR pPort, LPDEVMODEA pDevModeInput, LPSTR pProfile,
1798     DWORD fMode);
1799
1800 LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc);
1801 LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc);
1802 #define StartDocDlg WINELIB_NAME_AW(StartDocDlg)
1803
1804 BOOL WINAPI XcvDataW(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
1805     DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
1806     PDWORD pcbOutputNeeded, PDWORD pdwStatus);
1807
1808 #ifdef __cplusplus
1809 } /* extern "C" */
1810 #endif
1811
1812 #endif  /* __WINE_WINSPOOL_H */