Added USER32.UserSignalProc to Callout table.
[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 #ifndef __WINE_WINSPOOL_H
9 #define __WINE_WINSPOOL_H
10
11 #include "windef.h"
12 #include "winbase.h"
13 #include "wingdi.h"
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 /* DEFINES */
20 #define INT_PD_DEFAULT_DEVMODE  1
21 #define INT_PD_DEFAULT_MODEL    2
22
23 #define PRINTER_ATTRIBUTE_QUEUED         0x00000001
24 #define PRINTER_ATTRIBUTE_DIRECT         0x00000002
25 #define PRINTER_ATTRIBUTE_DEFAULT        0x00000004
26 #define PRINTER_ATTRIBUTE_SHARED         0x00000008
27 #define PRINTER_ATTRIBUTE_NETWORK        0x00000010
28 #define PRINTER_ATTRIBUTE_HIDDEN         0x00000020
29 #define PRINTER_ATTRIBUTE_LOCAL          0x00000040
30
31 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ       0x00000080
32 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS   0x00000100
33 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
34
35 #define PRINTER_ATTRIBUTE_WORK_OFFLINE   0x00000400
36 #define PRINTER_ATTRIBUTE_ENABLE_BIDI    0x00000800
37
38 #define PRINTER_ENUM_DEFAULT     0x00000001
39 #define PRINTER_ENUM_LOCAL       0x00000002
40 #define PRINTER_ENUM_CONNECTIONS 0x00000004
41 #define PRINTER_ENUM_FAVORITE    0x00000004
42 #define PRINTER_ENUM_NAME        0x00000008
43 #define PRINTER_ENUM_REMOTE      0x00000010
44 #define PRINTER_ENUM_SHARED      0x00000020
45 #define PRINTER_ENUM_NETWORK     0x00000040
46
47 #define PRINTER_ENUM_EXPAND      0x00004000
48 #define PRINTER_ENUM_CONTAINER   0x00008000
49
50 #define PRINTER_ENUM_ICONMASK    0x00ff0000
51 #define PRINTER_ENUM_ICON1       0x00010000
52 #define PRINTER_ENUM_ICON2       0x00020000
53 #define PRINTER_ENUM_ICON3       0x00040000
54 #define PRINTER_ENUM_ICON4       0x00080000
55 #define PRINTER_ENUM_ICON5       0x00100000
56 #define PRINTER_ENUM_ICON6       0x00200000
57 #define PRINTER_ENUM_ICON7       0x00400000
58 #define PRINTER_ENUM_ICON8       0x00800000
59
60 /* TYPES */
61 typedef struct _PRINTER_DEFAULTSA {
62   LPSTR        pDatatype;
63   LPDEVMODEA pDevMode;
64   ACCESS_MASK  DesiredAccess;
65 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
66
67 typedef struct _PRINTER_DEFAULTSW {
68   LPWSTR       pDatatype;
69   LPDEVMODEW pDevMode;
70   ACCESS_MASK  DesiredAccess;
71 } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
72
73 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
74 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
75
76 typedef struct _DRIVER_INFO_1A {
77   LPSTR     pName;
78 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
79
80 typedef struct _DRIVER_INFO_1W {
81   LPWSTR    pName;
82 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
83
84 DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
85 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
86 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
87
88 typedef struct _DRIVER_INFO_2A {
89   DWORD   cVersion;
90   LPSTR     pName;
91   LPSTR     pEnvironment;
92   LPSTR     pDriverPath;
93   LPSTR     pDataFile; 
94   LPSTR     pConfigFile;
95 } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
96
97 typedef struct _DRIVER_INFO_2W {
98   DWORD   cVersion;
99   LPWSTR    pName;     
100   LPWSTR    pEnvironment;
101   LPWSTR    pDriverPath;
102   LPWSTR    pDataFile; 
103   LPWSTR    pConfigFile;
104 } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
105
106 DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
107 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
108 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
109
110 typedef struct _PRINTER_INFO_1A {
111   DWORD   Flags;
112   LPSTR   pDescription;
113   LPSTR   pName;
114   LPSTR   pComment;
115 } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
116
117 typedef struct _PRINTER_INFO_1W {
118   DWORD   Flags;
119   LPWSTR  pDescription;
120   LPWSTR  pName;
121   LPWSTR  pComment;
122 } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
123
124 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
125 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
126 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
127
128 /* FIXME: winspool.h declares some structure members with the name Status.
129  * unfortunatly <X11/ICE/ICElib.h> #defines Status to the type 'int' 
130  * therfore the following hack */
131 #ifndef Status
132
133 typedef struct _PRINTER_INFO_2A {
134   LPSTR     pServerName;
135   LPSTR     pPrinterName;
136   LPSTR     pShareName;
137   LPSTR     pPortName;
138   LPSTR     pDriverName;
139   LPSTR     pComment;
140   LPSTR     pLocation;
141   LPDEVMODEA pDevMode;
142   LPSTR     pSepFile;
143   LPSTR     pPrintProcessor;
144   LPSTR     pDatatype;
145   LPSTR     pParameters;
146   PSECURITY_DESCRIPTOR pSecurityDescriptor;
147   DWORD   Attributes;
148   DWORD   Priority;
149   DWORD   DefaultPriority;
150   DWORD   StartTime;
151   DWORD   UntilTime;
152   DWORD   Status;
153   DWORD   cJobs;
154   DWORD   AveragePPM;
155 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
156
157 typedef struct _PRINTER_INFO_2W {
158   LPWSTR    pServerName;
159   LPWSTR    pPrinterName;
160   LPWSTR    pShareName;
161   LPWSTR    pPortName;
162   LPWSTR    pDriverName;
163   LPWSTR    pComment;
164   LPWSTR    pLocation;
165   LPDEVMODEW pDevMode;
166   LPWSTR    pSepFile;
167   LPWSTR    pPrintProcessor;
168   LPWSTR    pDatatype;
169   LPWSTR    pParameters;
170   PSECURITY_DESCRIPTOR pSecurityDescriptor;
171   DWORD   Attributes;
172   DWORD   Priority;
173   DWORD   DefaultPriority;
174   DWORD   StartTime;
175   DWORD   UntilTime;
176   DWORD   Status;
177   DWORD   cJobs;
178   DWORD   AveragePPM;
179 } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
180
181 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
182 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
183 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
184
185 typedef struct _PRINTER_INFO_4A {
186   LPSTR     pPrinterName;
187   LPSTR     pServerName;
188   DWORD     Attributes;
189 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
190
191 typedef struct _PRINTER_INFO_4W {
192   LPWSTR     pPrinterName;
193   LPWSTR     pServerName;
194   DWORD     Attributes;
195 } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
196
197 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
198 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
199 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
200
201 typedef struct _PRINTER_INFO_5A {
202   LPSTR     pPrinterName;
203   LPSTR     pPortName;
204   DWORD     Attributes;
205   DWORD     DeviceNotSelectedTimeOut;
206   DWORD     TransmissionRetryTimeout;
207 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
208
209 typedef struct _PRINTER_INFO_5W {
210   LPWSTR    pPrinterName;
211   LPWSTR    pPortName;
212   DWORD     Attributes;
213   DWORD     DeviceNotSelectedTimeOut;
214   DWORD     TransmissionRetryTimeout;
215 } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
216
217 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
218 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
219 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
220
221 #endif /* Status */
222
223 /* DECLARATIONS */
224 DWORD WINAPI DrvGetPrinterData16(LPSTR lpPrinter, LPSTR lpProfile,
225           LPDWORD lpType, LPBYTE lpPrinterData, int cbData, LPDWORD lpNeeded);
226 DWORD WINAPI DrvSetPrinterData16(LPSTR lpPrinter, LPSTR lpProfile,
227           DWORD lpType, LPBYTE lpPrinterData, DWORD dwSize);
228 HANDLE16 WINAPI OpenJob16(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC);
229 int WINAPI CloseJob16(HANDLE16 hJob);
230 int WINAPI WriteSpool16(HANDLE16 hJob, LPSTR lpData, WORD cch);
231 int WINAPI DeleteJob16(HANDLE16 hJob, WORD wNotUsed);
232 int WINAPI StartSpoolPage16(HANDLE16 hJob);
233 int WINAPI EndSpoolPage16(HANDLE16 hJob);
234 DWORD WINAPI GetSpoolJob16(int nOption, LONG param);
235 int WINAPI WriteDialog16(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg);
236
237 INT WINAPI DeviceCapabilitiesA(LPCSTR printer,LPCSTR target,WORD z,
238                                    LPSTR a,LPDEVMODEA b);
239 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
240                                    WORD fwCapability, LPWSTR pOutput,
241                                    const DEVMODEW *pDevMode);
242
243 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
244
245 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
246                                 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
247                                   LPDEVMODEA pDevModeInput,DWORD fMode );
248 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
249                                   LPWSTR pDeviceName,
250                                   LPDEVMODEW pDevModeOutput,
251                                   LPDEVMODEW pDevModeInput, DWORD fMode);
252
253 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
254
255 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
256                              LPPRINTER_DEFAULTSA pDefault);
257 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
258                              LPPRINTER_DEFAULTSW pDefault);
259
260 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
261
262 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
263
264 BOOL  WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
265                                DWORD dwLevel, LPBYTE lpbPrinters,
266                                DWORD cbBuf, LPDWORD lpdwNeeded,
267                                LPDWORD lpdwReturned);
268 BOOL  WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
269                                DWORD dwLevel, LPBYTE lpbPrinters,
270                                DWORD cbBuf, LPDWORD lpdwNeeded,
271                                LPDWORD lpdwReturned);
272 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
273
274
275
276 #ifdef __cplusplus
277 } // extern "C"
278 #endif
279
280 #endif  /* __WINE_WINSPOOL_H */
281