blob: 1fece024ae0162efbcc2ed84b5b326ef71ea6279 [file] [log] [blame]
Alexandre Julliard59545601999-02-10 06:52:57 +00001/* 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)
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00007 *
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Alexandre Julliard59545601999-02-10 06:52:57 +000021 */
22#ifndef __WINE_WINSPOOL_H
23#define __WINE_WINSPOOL_H
24
Jim Aston2e1cafa1999-03-14 16:35:05 +000025#include "windef.h"
Marcus Meissner317af321999-02-17 13:51:06 +000026#include "winbase.h"
27#include "wingdi.h"
Alexandre Julliard59545601999-02-10 06:52:57 +000028
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/* DEFINES */
Alexandre Julliard59545601999-02-10 06:52:57 +000034
35#define PRINTER_ATTRIBUTE_QUEUED 0x00000001
36#define PRINTER_ATTRIBUTE_DIRECT 0x00000002
37#define PRINTER_ATTRIBUTE_DEFAULT 0x00000004
38#define PRINTER_ATTRIBUTE_SHARED 0x00000008
39#define PRINTER_ATTRIBUTE_NETWORK 0x00000010
40#define PRINTER_ATTRIBUTE_HIDDEN 0x00000020
41#define PRINTER_ATTRIBUTE_LOCAL 0x00000040
42
43#define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080
44#define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100
45#define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
46
47#define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400
48#define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800
49
Huw D M Davies685fa2d1999-09-04 14:30:33 +000050#define PRINTER_CONTROL_PAUSE 1
51#define PRINTER_CONTROL_RESUME 2
52#define PRINTER_CONTROL_PURGE 3
53#define PRINTER_CONTROL_SET_STATUS 4
54
Alexandre Julliard59545601999-02-10 06:52:57 +000055#define PRINTER_ENUM_DEFAULT 0x00000001
56#define PRINTER_ENUM_LOCAL 0x00000002
57#define PRINTER_ENUM_CONNECTIONS 0x00000004
58#define PRINTER_ENUM_FAVORITE 0x00000004
59#define PRINTER_ENUM_NAME 0x00000008
60#define PRINTER_ENUM_REMOTE 0x00000010
61#define PRINTER_ENUM_SHARED 0x00000020
62#define PRINTER_ENUM_NETWORK 0x00000040
63
64#define PRINTER_ENUM_EXPAND 0x00004000
65#define PRINTER_ENUM_CONTAINER 0x00008000
66
67#define PRINTER_ENUM_ICONMASK 0x00ff0000
68#define PRINTER_ENUM_ICON1 0x00010000
69#define PRINTER_ENUM_ICON2 0x00020000
70#define PRINTER_ENUM_ICON3 0x00040000
71#define PRINTER_ENUM_ICON4 0x00080000
72#define PRINTER_ENUM_ICON5 0x00100000
73#define PRINTER_ENUM_ICON6 0x00200000
74#define PRINTER_ENUM_ICON7 0x00400000
75#define PRINTER_ENUM_ICON8 0x00800000
76
Klaas van Gend43ac3d61999-07-30 18:10:21 +000077
78/* various printer statuses */
79#define PRINTER_STATUS_PAUSED 0x00000001
80#define PRINTER_STATUS_ERROR 0x00000002
81#define PRINTER_STATUS_PENDING_DELETION 0x00000004
82#define PRINTER_STATUS_PAPER_JAM 0x00000008
83#define PRINTER_STATUS_PAPER_OUT 0x00000010
84#define PRINTER_STATUS_MANUAL_FEED 0x00000020
85#define PRINTER_STATUS_PAPER_PROBLEM 0x00000040
86#define PRINTER_STATUS_OFFLINE 0x00000080
87#define PRINTER_STATUS_IO_ACTIVE 0x00000100
88#define PRINTER_STATUS_BUSY 0x00000200
89#define PRINTER_STATUS_PRINTING 0x00000400
90#define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800
91#define PRINTER_STATUS_NOT_AVAILABLE 0x00001000
92#define PRINTER_STATUS_WAITING 0x00002000
93#define PRINTER_STATUS_PROCESSING 0x00004000
94#define PRINTER_STATUS_INITIALIZING 0x00008000
95#define PRINTER_STATUS_WARMING_UP 0x00010000
96#define PRINTER_STATUS_TONER_LOW 0x00020000
97#define PRINTER_STATUS_NO_TONER 0x00040000
98#define PRINTER_STATUS_PAGE_PUNT 0x00080000
99#define PRINTER_STATUS_USER_INTERVENTION 0x00100000
100#define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000
101#define PRINTER_STATUS_DOOR_OPEN 0x00400000
102#define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000
103#define PRINTER_STATUS_POWER_SAVE 0x01000000
104
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000105#define NO_PRIORITY 0
106#define MAX_PRIORITY 99
107#define MIN_PRIORITY 1
108#define DEF_PRIORITY 1
109
110#define JOB_CONTROL_PAUSE 1
111#define JOB_CONTROL_RESUME 2
112#define JOB_CONTROL_CANCEL 3
113#define JOB_CONTROL_RESTART 4
114#define JOB_CONTROL_DELETE 5
115#define JOB_CONTROL_SENT_TO_PRINTER 6
116#define JOB_CONTROL_LAST_PAGE_EJECTED 7
117
118#define JOB_STATUS_PAUSED 0x0001
119#define JOB_STATUS_ERROR 0x0002
120#define JOB_STATUS_DELETING 0x0004
121#define JOB_STATUS_SPOOLING 0x0008
122#define JOB_STATUS_PRINTING 0x0010
123#define JOB_STATUS_OFFLINE 0x0020
124#define JOB_STATUS_PAPEROUT 0x0040
125#define JOB_STATUS_PRINTED 0x0080
126#define JOB_STATUS_DELETED 0x0100
127#define JOB_STATUS_BLOCKED_DEVQ 0x0200
128#define JOB_STATUS_USER_INTERVENTION 0x0400
129
130#define JOB_POSITION_UNSPECIFIED 1
131
132#define DI_CHANNEL 1
133#define DI_READ_SPOOL_JOB 3
134
135#define FORM_USER 0
136#define FORM_BUILTIN 1
137#define FORM_PRINTER 2
138
139#define PORT_TYPE_WRITE 1
140#define PORT_TYPE_READ 2
141#define PORT_TYPE_REDIRECTED 4
142#define PORT_TYPE_NET_ATTACHED 8
143
144#define PORT_STATUS_TYPE_ERROR 1
145#define PORT_STATUS_TYPE_WARNING 2
146#define PORT_STATUS_TYPE_INFO 3
147
148#define PORT_STATUS_OFFLINE 1
149#define PORT_STATUS_PAPER_JAM 2
150#define PORT_STATUS_PAPER_OUT 3
151#define PORT_STATUS_OUTPUT_BIN_FULL 4
152#define PORT_STATUS_PAPER_PROBLEM 5
153#define PORT_STATUS_NO_TONER 6
154#define PORT_STATUS_DOOR_OPEN 7
155#define PORT_STATUS_USER_INTERVENTION 8
156#define PORT_STATUS_OUT_OF_MEMORY 9
157#define PORT_STATUS_TONER_LOW 10
158#define PORT_STATUS_WARMING_UP 11
159#define PORT_STATUS_POWER_SAVE 12
160
161#define PRINTER_NOTIFY_TYPE 0
162#define JOB_NOTIFY_TYPE 1
163
164#define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00
165#define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01
166#define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02
167#define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03
168#define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04
169#define PRINTER_NOTIFY_FIELD_COMMENT 0x05
170#define PRINTER_NOTIFY_FIELD_LOCATION 0x06
171#define PRINTER_NOTIFY_FIELD_DEVMODE 0x07
172#define PRINTER_NOTIFY_FIELD_SEPFILE 0x08
173#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09
174#define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0a
175#define PRINTER_NOTIFY_FIELD_DATATYPE 0x0b
176#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
177#define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0d
178#define PRINTER_NOTIFY_FIELD_PRIORITY 0x0e
179#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f
180#define PRINTER_NOTIFY_FIELD_START_TIME 0x10
181#define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11
182#define PRINTER_NOTIFY_FIELD_STATUS 0x12
183#define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13
184#define PRINTER_NOTIFY_FIELD_CJOBS 0x14
185#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15
186#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16
187#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17
188#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18
189#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19
190
191#define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00
192#define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01
193#define JOB_NOTIFY_FIELD_PORT_NAME 0x02
194#define JOB_NOTIFY_FIELD_USER_NAME 0x03
195#define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04
196#define JOB_NOTIFY_FIELD_DATATYPE 0x05
197#define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06
198#define JOB_NOTIFY_FIELD_PARAMETERS 0x07
199#define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08
200#define JOB_NOTIFY_FIELD_DEVMODE 0x09
201#define JOB_NOTIFY_FIELD_STATUS 0x0a
202#define JOB_NOTIFY_FIELD_STATUS_STRING 0x0b
203#define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
204#define JOB_NOTIFY_FIELD_DOCUMENT 0x0d
205#define JOB_NOTIFY_FIELD_PRIORITY 0x0e
206#define JOB_NOTIFY_FIELD_POSITION 0x0f
207#define JOB_NOTIFY_FIELD_SUBMITTED 0x10
208#define JOB_NOTIFY_FIELD_START_TIME 0x11
209#define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12
210#define JOB_NOTIFY_FIELD_TIME 0x13
211#define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14
212#define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15
213#define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16
214#define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17
215
216#define PRINTER_NOTIFY_OPTIONS_REFRESH 1
217#define PRINTER_NOTIFY_INFO_DISCARDED 1
218
219#define PRINTER_CHANGE_ADD_PRINTER 0x00000001
220#define PRINTER_CHANGE_SET_PRINTER 0x00000002
221#define PRINTER_CHANGE_DELETE_PRINTER 0x00000004
222#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
223#define PRINTER_CHANGE_PRINTER 0x000000ff
224#define PRINTER_CHANGE_ADD_JOB 0x00000100
225#define PRINTER_CHANGE_SET_JOB 0x00000200
226#define PRINTER_CHANGE_DELETE_JOB 0x00000400
227#define PRINTER_CHANGE_WRITE_JOB 0x00000800
228#define PRINTER_CHANGE_JOB 0x0000ff00
229#define PRINTER_CHANGE_ADD_FORM 0x00010000
230#define PRINTER_CHANGE_SET_FORM 0x00020000
231#define PRINTER_CHANGE_DELETE_FORM 0x00040000
232#define PRINTER_CHANGE_FORM 0x00070000
233#define PRINTER_CHANGE_ADD_PORT 0x00100000
234#define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000
235#define PRINTER_CHANGE_DELETE_PORT 0x00400000
236#define PRINTER_CHANGE_PORT 0x00700000
237#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000
238#define PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR 0x04000000
239#define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000
240#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000
241#define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000
242#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000
243#define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000
244#define PRINTER_CHANGE_TIMEOUT 0x80000000
245#define PRINTER_CHANGE_ALL 0x7777ffff
246
247#define PRINTER_ERROR_INFORMATION 0x80000000
248#define PRINTER_ERROR_WARNING 0x40000000
249#define PRINTER_ERROR_SEVERE 0x20000000
250
251#define PRINTER_ERROR_OUTODPAPER 0x00000001
252#define PRINTER_ERROR_JAM 0x00000002
253#define PRINTER_ERROR_OUTOFTONER 0x00000004
254
Alexandre Julliard59545601999-02-10 06:52:57 +0000255/* TYPES */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000256typedef struct _PRINTER_DEFAULTSA {
Alexandre Julliard59545601999-02-10 06:52:57 +0000257 LPSTR pDatatype;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000258 LPDEVMODEA pDevMode;
Alexandre Julliard59545601999-02-10 06:52:57 +0000259 ACCESS_MASK DesiredAccess;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000260} PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
Alexandre Julliard59545601999-02-10 06:52:57 +0000261
Alexandre Julliarda3960291999-02-26 11:11:13 +0000262typedef struct _PRINTER_DEFAULTSW {
Alexandre Julliard59545601999-02-10 06:52:57 +0000263 LPWSTR pDatatype;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000264 LPDEVMODEW pDevMode;
Alexandre Julliard59545601999-02-10 06:52:57 +0000265 ACCESS_MASK DesiredAccess;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000266} PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
Alexandre Julliard59545601999-02-10 06:52:57 +0000267
268DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
269DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
270
Alexandre Julliarda3960291999-02-26 11:11:13 +0000271typedef struct _DRIVER_INFO_1A {
Alexandre Julliard59545601999-02-10 06:52:57 +0000272 LPSTR pName;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000273} DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
Alexandre Julliard59545601999-02-10 06:52:57 +0000274
Alexandre Julliarda3960291999-02-26 11:11:13 +0000275typedef struct _DRIVER_INFO_1W {
Alexandre Julliard59545601999-02-10 06:52:57 +0000276 LPWSTR pName;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000277} DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
Alexandre Julliard59545601999-02-10 06:52:57 +0000278
279DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
280DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
281DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
282
Alexandre Julliarda3960291999-02-26 11:11:13 +0000283typedef struct _DRIVER_INFO_2A {
Alexandre Julliard59545601999-02-10 06:52:57 +0000284 DWORD cVersion;
285 LPSTR pName;
286 LPSTR pEnvironment;
287 LPSTR pDriverPath;
288 LPSTR pDataFile;
289 LPSTR pConfigFile;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000290} DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
Alexandre Julliard59545601999-02-10 06:52:57 +0000291
Alexandre Julliarda3960291999-02-26 11:11:13 +0000292typedef struct _DRIVER_INFO_2W {
Alexandre Julliard59545601999-02-10 06:52:57 +0000293 DWORD cVersion;
294 LPWSTR pName;
295 LPWSTR pEnvironment;
296 LPWSTR pDriverPath;
297 LPWSTR pDataFile;
298 LPWSTR pConfigFile;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000299} DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
Alexandre Julliard59545601999-02-10 06:52:57 +0000300
301DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
302DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
303DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
304
Huw D M Daviesee2d9d51999-05-22 18:53:56 +0000305typedef struct _DRIVER_INFO_3A {
306 DWORD cVersion;
307 LPSTR pName;
308 LPSTR pEnvironment;
309 LPSTR pDriverPath;
310 LPSTR pDataFile;
311 LPSTR pConfigFile;
312 LPSTR pHelpFile;
313 LPSTR pDependentFiles;
314 LPSTR pMonitorName;
315 LPSTR pDefaultDataType;
316} DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
317
318typedef struct _DRIVER_INFO_3W {
319 DWORD cVersion;
320 LPWSTR pName;
321 LPWSTR pEnvironment;
322 LPWSTR pDriverPath;
323 LPWSTR pDataFile;
324 LPWSTR pConfigFile;
325 LPWSTR pHelpFile;
326 LPWSTR pDependentFiles;
327 LPWSTR pMonitorName;
328 LPWSTR pDefaultDataType;
329} DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W;
330
331DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
332DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
333DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
334
Alexandre Julliarda3960291999-02-26 11:11:13 +0000335typedef struct _PRINTER_INFO_1A {
Alexandre Julliard59545601999-02-10 06:52:57 +0000336 DWORD Flags;
337 LPSTR pDescription;
338 LPSTR pName;
339 LPSTR pComment;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000340} PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
Alexandre Julliard59545601999-02-10 06:52:57 +0000341
Alexandre Julliarda3960291999-02-26 11:11:13 +0000342typedef struct _PRINTER_INFO_1W {
Alexandre Julliard59545601999-02-10 06:52:57 +0000343 DWORD Flags;
344 LPWSTR pDescription;
345 LPWSTR pName;
346 LPWSTR pComment;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000347} PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
Alexandre Julliard59545601999-02-10 06:52:57 +0000348
349DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
350DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
351DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
352
353/* FIXME: winspool.h declares some structure members with the name Status.
354 * unfortunatly <X11/ICE/ICElib.h> #defines Status to the type 'int'
355 * therfore the following hack */
356#ifndef Status
357
Alexandre Julliarda3960291999-02-26 11:11:13 +0000358typedef struct _PRINTER_INFO_2A {
Alexandre Julliard59545601999-02-10 06:52:57 +0000359 LPSTR pServerName;
360 LPSTR pPrinterName;
361 LPSTR pShareName;
362 LPSTR pPortName;
363 LPSTR pDriverName;
364 LPSTR pComment;
365 LPSTR pLocation;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000366 LPDEVMODEA pDevMode;
Alexandre Julliard59545601999-02-10 06:52:57 +0000367 LPSTR pSepFile;
368 LPSTR pPrintProcessor;
369 LPSTR pDatatype;
370 LPSTR pParameters;
371 PSECURITY_DESCRIPTOR pSecurityDescriptor;
372 DWORD Attributes;
373 DWORD Priority;
374 DWORD DefaultPriority;
375 DWORD StartTime;
376 DWORD UntilTime;
377 DWORD Status;
378 DWORD cJobs;
379 DWORD AveragePPM;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000380} PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
Alexandre Julliard59545601999-02-10 06:52:57 +0000381
Alexandre Julliarda3960291999-02-26 11:11:13 +0000382typedef struct _PRINTER_INFO_2W {
Alexandre Julliard59545601999-02-10 06:52:57 +0000383 LPWSTR pServerName;
384 LPWSTR pPrinterName;
385 LPWSTR pShareName;
386 LPWSTR pPortName;
387 LPWSTR pDriverName;
388 LPWSTR pComment;
389 LPWSTR pLocation;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000390 LPDEVMODEW pDevMode;
Alexandre Julliard59545601999-02-10 06:52:57 +0000391 LPWSTR pSepFile;
392 LPWSTR pPrintProcessor;
393 LPWSTR pDatatype;
394 LPWSTR pParameters;
395 PSECURITY_DESCRIPTOR pSecurityDescriptor;
396 DWORD Attributes;
397 DWORD Priority;
398 DWORD DefaultPriority;
399 DWORD StartTime;
400 DWORD UntilTime;
401 DWORD Status;
402 DWORD cJobs;
403 DWORD AveragePPM;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000404} PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
Alexandre Julliard59545601999-02-10 06:52:57 +0000405
406DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
407DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
408DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
409
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000410typedef struct _PRINTER_INFO_3 {
411 PSECURITY_DESCRIPTOR pSecurityDescriptor;
412} PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3;
413
Klaas van Gendfdedc341999-03-22 12:40:24 +0000414typedef struct _PRINTER_INFO_4A {
415 LPSTR pPrinterName;
416 LPSTR pServerName;
417 DWORD Attributes;
418} PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
419
420typedef struct _PRINTER_INFO_4W {
421 LPWSTR pPrinterName;
422 LPWSTR pServerName;
423 DWORD Attributes;
424} PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
425
426DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
427DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
428DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
429
430typedef struct _PRINTER_INFO_5A {
431 LPSTR pPrinterName;
432 LPSTR pPortName;
433 DWORD Attributes;
Huw D M Davies7aaabc32000-05-25 23:02:46 +0000434 DWORD DeviceNotSelectedTimeout;
Klaas van Gendfdedc341999-03-22 12:40:24 +0000435 DWORD TransmissionRetryTimeout;
436} PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
437
438typedef struct _PRINTER_INFO_5W {
439 LPWSTR pPrinterName;
440 LPWSTR pPortName;
441 DWORD Attributes;
Huw D M Davies7aaabc32000-05-25 23:02:46 +0000442 DWORD DeviceNotSelectedTimeout;
Klaas van Gendfdedc341999-03-22 12:40:24 +0000443 DWORD TransmissionRetryTimeout;
444} PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
445
446DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
447DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
448DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
449
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000450typedef struct _PRINTER_INFO_6 {
451 DWORD dwStatus;
452} PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6;
453
Huw D M Daviesbb140561999-07-23 19:23:49 +0000454typedef struct _JOB_INFO_1A {
455 DWORD JobID;
456 LPSTR pPrinterName;
457 LPSTR pMachineName;
458 LPSTR pUserName;
459 LPSTR pDocument;
460 LPSTR pDatatype;
461 LPSTR pStatus;
462 DWORD Status;
463 DWORD Priority;
464 DWORD Position;
465 DWORD TotalPages;
466 DWORD PagesPrinted;
467 SYSTEMTIME Submitted;
468} JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
469
470typedef struct _JOB_INFO_1W {
471 DWORD JobID;
472 LPWSTR pPrinterName;
473 LPWSTR pMachineName;
474 LPWSTR pUserName;
475 LPWSTR pDocument;
476 LPWSTR pDatatype;
477 LPWSTR pStatus;
478 DWORD Status;
479 DWORD Priority;
480 DWORD Position;
481 DWORD TotalPages;
482 DWORD PagesPrinted;
483 SYSTEMTIME Submitted;
484} JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
485
486DECL_WINELIB_TYPE_AW(JOB_INFO_1)
487DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
488DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
489
490typedef struct _JOB_INFO_2A {
491 DWORD JobID;
492 LPSTR pPrinterName;
493 LPSTR pMachineName;
494 LPSTR pUserName;
495 LPSTR pDocument;
496 LPSTR pNotifyName;
497 LPSTR pDatatype;
498 LPSTR pPrintProcessor;
499 LPSTR pParameters;
500 LPSTR pDriverName;
501 LPDEVMODEA pDevMode;
502 LPSTR pStatus;
503 PSECURITY_DESCRIPTOR pSecurityDescriptor;
504 DWORD Status;
505 DWORD Priority;
506 DWORD Position;
507 DWORD StartTime;
508 DWORD UntilTime;
509 DWORD TotalPages;
510 DWORD Size;
511 SYSTEMTIME Submitted;
512 DWORD Time;
513 DWORD PagesPrinted;
514} JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
515
516typedef struct _JOB_INFO_2W {
517 DWORD JobID;
518 LPWSTR pPrinterName;
519 LPWSTR pMachineName;
520 LPWSTR pUserName;
521 LPWSTR pDocument;
522 LPWSTR pNotifyName;
523 LPWSTR pDatatype;
524 LPWSTR pPrintProcessor;
525 LPWSTR pParameters;
526 LPWSTR pDriverName;
527 LPDEVMODEW pDevMode;
528 LPWSTR pStatus;
529 PSECURITY_DESCRIPTOR pSecurityDescriptor;
530 DWORD Status;
531 DWORD Priority;
532 DWORD Position;
533 DWORD StartTime;
534 DWORD UntilTime;
535 DWORD TotalPages;
536 DWORD Size;
537 SYSTEMTIME Submitted;
538 DWORD Time;
539 DWORD PagesPrinted;
540} JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
541
542DECL_WINELIB_TYPE_AW(JOB_INFO_2)
543DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
544DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
545
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000546typedef struct _JOB_INFO_3 {
547 DWORD JobID;
548 DWORD NextJobID;
549 DWORD Reserved;
550} JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3;
551
552typedef struct _ADDJOB_INFO_1A {
553 LPSTR Path;
554 DWORD JobID;
555} ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A;
556
557typedef struct _ADDJOB_INFO_1W {
558 LPWSTR Path;
559 DWORD JobID;
560} ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W;
561
562DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1)
563DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1)
564DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1)
565
566typedef struct _DOC_INFO_1A {
567 LPSTR pDocName;
568 LPSTR pOutputFile;
569 LPSTR pDatatype;
570} DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A;
571
572typedef struct _DOC_INFO_1W {
573 LPWSTR pDocName;
574 LPWSTR pOutputFile;
575 LPWSTR pDatatype;
576} DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W;
577
578DECL_WINELIB_TYPE_AW(DOC_INFO_1)
579DECL_WINELIB_TYPE_AW(PDOC_INFO_1)
580DECL_WINELIB_TYPE_AW(LPDOC_INFO_1)
581
582typedef struct _DOC_INFO_2A {
583 LPSTR pDocName;
584 LPSTR pOutputFile;
585 LPSTR pDatatype;
586 DWORD dwMode;
587 DWORD JobID;
588} DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A;
589
590typedef struct _DOC_INFO_2W {
591 LPWSTR pDocName;
592 LPWSTR pOutputFile;
593 LPWSTR pDatatype;
594 DWORD dwMode;
595 DWORD JobID;
596} DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W;
597
598DECL_WINELIB_TYPE_AW(DOC_INFO_2)
599DECL_WINELIB_TYPE_AW(PDOC_INFO_2)
600DECL_WINELIB_TYPE_AW(LPDOC_INFO_2)
601
602typedef struct _FORM_INFO_1A {
603 DWORD Flags;
604 LPSTR pName;
605 SIZEL Size;
606 RECTL ImageableArea;
607} FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A;
608
609typedef struct _FORM_INFO_1W {
610 DWORD Flags;
611 LPWSTR pName;
612 SIZEL Size;
613 RECTL ImageableArea;
614} FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W;
615
616DECL_WINELIB_TYPE_AW(FORM_INFO_1)
617DECL_WINELIB_TYPE_AW(PFORM_INFO_1)
618DECL_WINELIB_TYPE_AW(LPFORM_INFO_1)
619
620typedef struct _PRINTPROCESSOR_INFO_1A {
621 LPSTR pName;
Patrik Stridvallfeb94cb1999-10-24 21:48:50 +0000622} PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A,
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000623 *LPPRINTPROCESSOR_INFO_1A;
624
625typedef struct _PRINTPROCESSOR_INFO_1W {
626 LPWSTR pName;
Patrik Stridvallfeb94cb1999-10-24 21:48:50 +0000627} PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W,
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000628 *LPPRINTPROCESSOR_INFO_1W;
629
630DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1)
631DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1)
632DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1)
633
634typedef struct _PORT_INFO_1A {
635 LPSTR pName;
636} PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A;
637
638typedef struct _PORT_INFO_1W {
639 LPWSTR pName;
640} PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W;
641
642DECL_WINELIB_TYPE_AW(PORT_INFO_1)
643DECL_WINELIB_TYPE_AW(PPORT_INFO_1)
644DECL_WINELIB_TYPE_AW(LPPORT_INFO_1)
645
646typedef struct _PORT_INFO_2A {
647 LPSTR pPortName;
648 LPSTR pMonitorName;
649 LPSTR pDescription;
650 DWORD fPortType;
651 DWORD Reserved;
652} PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A;
653
654typedef struct _PORT_INFO_2W {
655 LPWSTR pPortName;
656 LPWSTR pMonitorName;
657 LPWSTR pDescription;
658 DWORD fPortType;
659 DWORD Reserved;
660} PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W;
661
662DECL_WINELIB_TYPE_AW(PORT_INFO_2)
663DECL_WINELIB_TYPE_AW(PPORT_INFO_2)
664DECL_WINELIB_TYPE_AW(LPPORT_INFO_2)
665
666typedef struct _PORT_INFO_3A {
667 DWORD dwStatus;
668 LPSTR pszStatus;
669 DWORD dwSeverity;
670} PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A;
671
672typedef struct _PORT_INFO_3W {
673 DWORD dwStatus;
674 LPWSTR pszStatus;
675 DWORD dwSeverity;
676} PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W;
677
678DECL_WINELIB_TYPE_AW(PORT_INFO_3)
679DECL_WINELIB_TYPE_AW(PPORT_INFO_3)
680DECL_WINELIB_TYPE_AW(LPPORT_INFO_3)
681
682typedef struct _MONITOR_INFO_1A {
683 LPSTR pName;
684} MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A;
685
686typedef struct _MONITOR_INFO_1W {
687 LPWSTR pName;
688} MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W;
689
690DECL_WINELIB_TYPE_AW(MONITOR_INFO_1)
691DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1)
692DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1)
693
Ove Kaaven7200dc82000-07-23 13:38:08 +0000694#endif /* Status */
695
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000696
697typedef struct _MONITOR_INFO_2A {
698 LPSTR pName;
699 LPSTR pEnvironment;
700 LPSTR pDLLName;
701} MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A;
702
703typedef struct _MONITOR_INFO_2W {
704 LPWSTR pName;
705 LPWSTR pEnvironment;
706 LPWSTR pDLLName;
707} MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W;
708
709DECL_WINELIB_TYPE_AW(MONITOR_INFO_2)
710DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2)
711DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2)
712
713typedef struct _DATATYPES_INFO_1A {
714 LPSTR pName;
715} DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A;
716
717typedef struct _DATATYPES_INFO_1W {
718 LPWSTR pName;
719} DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W;
720
721DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1)
722DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1)
723DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1)
724
725typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
726 WORD Type;
727 WORD Reserved0;
728 DWORD Reserved1;
729 DWORD Reserved2;
730 DWORD Count;
731 PWORD pFields;
732} PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE,
733*LPPRINTER_NOTIFY_OPTIONS_TYPE;
734
735typedef struct _PRINTER_NOTIFY_OPTIONS {
736 DWORD Version;
737 DWORD Flags;
738 DWORD Count;
739 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
740} PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS;
741
742typedef struct _PRINTER_NOTIFY_INFO_DATA {
743 WORD Type;
744 WORD Field;
745 DWORD Reserved;
746 DWORD Id;
747 union {
748 DWORD adwData[2];
749 struct {
750 DWORD cbBuf;
751 LPVOID pBuf;
752 } Data;
753 } NotifyData;
754} PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA,
755*LPPRINTER_NOTIFY_INFO_DATA;
756
757typedef struct _PRINTER_NOTIFY_INFO {
758 DWORD Version;
759 DWORD Flags;
760 DWORD Count;
761 PRINTER_NOTIFY_INFO_DATA aData[1];
762} PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO;
763
764typedef struct _PROVIDOR_INFO_1A {
765 LPSTR pName;
766 LPSTR pEnvironment;
767 LPSTR pDLLName;
768} PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
769
770typedef struct _PROVIDOR_INFO_1W {
771 LPWSTR pName;
772 LPWSTR pEnvironment;
773 LPWSTR pDLLName;
774} PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
775
776DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1)
777DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1)
778DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1)
Huw D M Daviesbb140561999-07-23 19:23:49 +0000779
Ian Pilcherccfe6e92001-02-21 04:00:40 +0000780typedef struct _PRINTER_ENUM_VALUESA {
781 LPSTR pValueName;
782 DWORD cbValueName;
783 DWORD dwType;
784 LPBYTE pData;
785 DWORD cbData;
786} PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA;
787
788typedef struct _PRINTER_ENUM_VALUESW {
789 LPWSTR pValueName;
790 DWORD cbValueName;
791 DWORD dwType;
792 LPBYTE pData;
793 DWORD cbData;
794} PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW;
795
796DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES)
797DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES)
798
Alexandre Julliard59545601999-02-10 06:52:57 +0000799/* DECLARATIONS */
Huw D M Daviese39b6761999-05-17 16:20:51 +0000800INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
801 LPSTR pOutput, LPDEVMODEA pDevMode);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000802INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
Huw D M Daviese39b6761999-05-17 16:20:51 +0000803 WORD fwCapability, LPWSTR pOutput,
804 const DEVMODEW *pDevMode);
Alexandre Julliard59545601999-02-10 06:52:57 +0000805
806#define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
807
Alexandre Julliarda3960291999-02-26 11:11:13 +0000808LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
809 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000810 LPDEVMODEA pDevModeInput,DWORD fMode );
Alexandre Julliarda3960291999-02-26 11:11:13 +0000811LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000812 LPWSTR pDeviceName,
813 LPDEVMODEW pDevModeOutput,
814 LPDEVMODEW pDevModeInput, DWORD fMode);
Alexandre Julliard59545601999-02-10 06:52:57 +0000815
816#define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
817
Alexandre Julliarda3960291999-02-26 11:11:13 +0000818BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
819 LPPRINTER_DEFAULTSA pDefault);
820BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
821 LPPRINTER_DEFAULTSW pDefault);
Alexandre Julliard59545601999-02-10 06:52:57 +0000822
823#define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
824
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000825BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault);
826BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
827#define ResetPrinter WINELIB_NAME_AW(ResetPrinter)
828
Alexandre Julliarda3960291999-02-26 11:11:13 +0000829BOOL WINAPI ClosePrinter (HANDLE phPrinter);
Alexandre Julliard59545601999-02-10 06:52:57 +0000830
Huw D M Daviesbb140561999-07-23 19:23:49 +0000831BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
832 DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
833 LPDWORD pcReturned);
834BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
835 DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
836 LPDWORD pcReturned);
837#define EnumJobs WINELIB_NAME_AW(EnumJobs)
838
Klaas van Gendfdedc341999-03-22 12:40:24 +0000839BOOL WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
840 DWORD dwLevel, LPBYTE lpbPrinters,
841 DWORD cbBuf, LPDWORD lpdwNeeded,
842 LPDWORD lpdwReturned);
843BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
844 DWORD dwLevel, LPBYTE lpbPrinters,
845 DWORD cbBuf, LPDWORD lpdwNeeded,
846 LPDWORD lpdwReturned);
847#define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
848
Klaas van Gendf66bf561999-04-11 14:56:45 +0000849BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
Alexandre Julliard59545601999-02-10 06:52:57 +0000850
Huw D M Daviesee2d9d51999-05-22 18:53:56 +0000851BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
852BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
853#define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
854
Huw D M Davies450270b1999-07-10 11:58:50 +0000855BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment,
856 DWORD Level, LPBYTE pDriverInfo,
857 DWORD cbBuf, LPDWORD pcbNeeded);
858BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
859 DWORD Level, LPBYTE pDriverInfo,
860 DWORD cbBuf, LPDWORD pcbNeeded);
861#define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver)
862
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000863BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
864 DWORD Command);
865BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
866 DWORD Command);
867#define SetJob WINELIB_NAME_AW(SetJob)
868
869BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
870 DWORD cbBuf, LPDWORD pcbNeeded);
871BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
872 DWORD cbBuf, LPDWORD pcbNeeded);
873#define GetJob WINELIB_NAME_AW(GetJob)
874
875HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter);
876HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
877#define AddPrinter WINELIB_NAME_AW(AddPrinter)
878
879BOOL WINAPI DeletePrinter(HANDLE hPrinter);
880
881BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
882 DWORD Command);
883BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
884 DWORD Command);
885#define SetPrinter WINELIB_NAME_AW(SetPrinter)
886
887BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
888 DWORD cbBuf, LPDWORD pcbNeeded);
889BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
890 DWORD cbBuf, LPDWORD pcbNeeded);
891#define GetPrinter WINELIB_NAME_AW(GetPrinter)
892
893BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo);
894BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
895#define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver)
896
897BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level,
898 LPBYTE pDriverInfo, DWORD cbBuf,
899 LPDWORD pcbNeeded, LPDWORD pcbReturned);
900BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level,
901 LPBYTE pDriverInfo, DWORD cbBuf,
902 LPDWORD pcbNeeded, LPDWORD pcbReturned);
903#define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers)
904
Mark G. Adamsa0324f72002-01-22 00:49:24 +0000905BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize);
906BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize);
907#define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter)
908
Huw D M Davies685fa2d1999-09-04 14:30:33 +0000909BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment,
910 LPSTR pDriverName);
911BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment,
912 LPWSTR pDriverName);
913#define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver)
914
915BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment,
916 LPSTR pPathName, LPSTR pPrintProcessorName);
917BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
918 LPWSTR pPathName, LPWSTR pPrintProcessorName);
919#define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor)
920
921BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment,
922 DWORD Level, LPBYTE pPrintProcessorInfo,
923 DWORD cbBuf, LPDWORD pcbNeeded,
924 LPDWORD pcbReturned);
925BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment,
926 DWORD Level, LPBYTE pPrintProcessorInfo,
927 DWORD cbBuf, LPDWORD pcbNeeded,
928 LPDWORD pcbReturned);
929#define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors)
930
931BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment,
932 DWORD Level,
933 LPBYTE pPrintProcessorInfo,
934 DWORD cbBuf, LPDWORD pcbNeeded);
935
936BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment,
937 DWORD Level,
938 LPBYTE pPrintProcessorInfo,
939 DWORD cbBuf, LPDWORD pcbNeeded);
940#define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory)
941
942BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,
943 LPSTR pPrintProcessorName,
944 DWORD Level, LPBYTE pDatatypes,
945 DWORD cbBuf, LPDWORD pcbNeeded,
946 LPDWORD pcbReturned);
947BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,
948 LPWSTR pPrintProcessorName,
949 DWORD Level, LPBYTE pDatatypes,
950 DWORD cbBuf, LPDWORD pcbNeeded,
951 LPDWORD pcbReturned);
952#define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes)
953
954BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment,
955 LPSTR pPrintProcessorName);
956BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
957 LPWSTR pPrintProcessorName);
958#define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor)
959
960DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
961DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
962#define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter)
963
964BOOL WINAPI StartPagePrinter(HANDLE hPrinter);
965BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
966 LPDWORD pcWritten);
967BOOL WINAPI EndPagePrinter(HANDLE hPrinter);
968BOOL WINAPI AbortPrinter(HANDLE hPrinter);
969BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
970 LPDWORD pNoBytesRead);
971BOOL WINAPI EndDocPrinter(HANDLE hPrinter);
972
973BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
974 LPDWORD pcbNeeded);
975BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
976 LPDWORD pcbNeeded);
977#define AddJob WINELIB_NAME_AW(AddJob)
978
979BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID);
980
981LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter,
982 LPSTR pDeviceName,
983 PDEVMODEA pDevModeOutput,
984 PDEVMODEA pDevModeInput);
985LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
986 LPWSTR pDeviceName,
987 PDEVMODEW pDevModeOutput,
988 PDEVMODEW pDevModeInput);
989#define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties)
990
991DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType,
992 LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
993DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType,
994 LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
995#define GetPrinterData WINELIB_NAME_AW(GetPrinterData)
996
Huw D M Daviesd2b850e2001-02-12 01:26:47 +0000997DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
998 LPSTR pValueName, LPDWORD pType,
999 LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1000DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
1001 LPWSTR pValueName, LPDWORD pType,
1002 LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
1003#define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx)
1004
Huw D M Davies685fa2d1999-09-04 14:30:33 +00001005DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
1006 LPBYTE pData, DWORD cbData);
1007DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
1008 LPBYTE pData, DWORD cbData);
1009#define SetPrinterData WINELIB_NAME_AW(SetPrinterData)
1010
Huw D M Daviesd2b850e2001-02-12 01:26:47 +00001011DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
1012 LPSTR pValueName, DWORD Type,
1013 LPBYTE pData, DWORD cbData);
1014DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
1015 LPWSTR pValueName, DWORD Type,
1016 LPBYTE pData, DWORD cbData);
1017#define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx)
1018
Huw D M Davies685fa2d1999-09-04 14:30:33 +00001019DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags);
1020HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,
1021 DWORD fdwFlags,
1022 DWORD fdwOptions,
1023 LPVOID pPrinterNotifyOptions);
1024BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,
1025 PDWORD pdwChange,
1026 LPVOID pvReserved,
1027 LPVOID *ppPrinterNotifyInfo);
Francois Gouget091dc852000-06-11 20:06:12 +00001028BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo);
Huw D M Davies685fa2d1999-09-04 14:30:33 +00001029BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange);
1030
1031DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd,
1032 LPSTR pText, LPSTR pCaption, DWORD dwType);
1033DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd,
1034 LPWSTR pText, LPWSTR pCaption, DWORD dwType);
1035#define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox)
1036
1037BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1038BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
1039#define AddForm WINELIB_NAME_AW(AddForm)
1040
1041BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName);
1042BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName);
1043#define DeleteForm WINELIB_NAME_AW(DeleteForm)
1044
1045BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1046 LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1047BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1048 LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
1049#define GetForm WINELIB_NAME_AW(GetForm)
1050
1051BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
1052 LPBYTE pForm);
1053BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
1054 LPBYTE pForm);
1055#define SetForm WINELIB_NAME_AW(SetForm)
1056
1057BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1058 LPDWORD pcbNeeded, LPDWORD pcReturned);
1059BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
1060 LPDWORD pcbNeeded, LPDWORD pcReturned);
1061#define EnumForms WINELIB_NAME_AW(EnumForms)
1062
1063BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors,
1064 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1065BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
1066 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1067#define EnumMonitors WINELIB_NAME_AW(EnumMonitors)
1068
1069BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors);
1070BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
1071#define AddMonitor WINELIB_NAME_AW(AddMonitor)
1072
1073BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment,
1074 LPSTR pMonitorName);
1075BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment,
1076 LPWSTR pMonitorName);
1077#define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor)
1078
1079BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts,
1080 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1081BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts,
1082 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
1083#define EnumPorts WINELIB_NAME_AW(EnumPorts)
1084
1085BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName);
1086BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
1087#define AddPort WINELIB_NAME_AW(AddPort)
1088
1089BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1090BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1091#define ConfigurePort WINELIB_NAME_AW(ConfigurePort)
1092
1093BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
1094BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
1095#define DeletePort WINELIB_NAME_AW(DeletePort)
1096
1097BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel,
1098 LPBYTE pPortInfo);
1099BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
1100 LPBYTE pPortInfo);
1101#define SetPort WINELIB_NAME_AW(SetPort)
1102
1103BOOL WINAPI AddPrinterConnectionA(LPSTR pName);
1104BOOL WINAPI AddPrinterConnectionW(LPWSTR pName);
1105#define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection)
1106
1107BOOL WINAPI DeletePrinterConnectionA(LPSTR pName);
1108BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName);
1109#define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection)
1110
1111HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags);
1112
1113BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1114BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo);
1115#define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor)
1116
1117BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment,
1118 LPSTR pPrintProvidorName);
1119BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment,
1120 LPWSTR pPrintProvidorName);
1121#define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor)
1122
Ian Pilcherccfe6e92001-02-21 04:00:40 +00001123DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
1124 LPBYTE pEnumValues, DWORD cbEnumValues,
1125 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1126DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
1127 LPBYTE pEnumValues, DWORD cbEnumValues,
1128 LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
1129#define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx)
1130
Huw D M Davies685fa2d1999-09-04 14:30:33 +00001131
1132
Alexandre Julliard59545601999-02-10 06:52:57 +00001133#ifdef __cplusplus
Patrik Stridvalla9a671d1999-04-25 19:01:52 +00001134} /* extern "C" */
Alexandre Julliard59545601999-02-10 06:52:57 +00001135#endif
1136
1137#endif /* __WINE_WINSPOOL_H */
1138
Huw D M Davies685fa2d1999-09-04 14:30:33 +00001139
1140
1141
1142
1143
1144