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