Fixed an error and an off-by-one bug in DSA_SetItem(). This
[wine/dcerpc.git] / include / winspool.h
blobf3087523c26b415102c075e6fd0e9a502ef97ebe
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 _DRIVER_INFO_3A {
109 DWORD cVersion;
110 LPSTR pName;
111 LPSTR pEnvironment;
112 LPSTR pDriverPath;
113 LPSTR pDataFile;
114 LPSTR pConfigFile;
115 LPSTR pHelpFile;
116 LPSTR pDependentFiles;
117 LPSTR pMonitorName;
118 LPSTR pDefaultDataType;
119 } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
121 typedef struct _DRIVER_INFO_3W {
122 DWORD cVersion;
123 LPWSTR pName;
124 LPWSTR pEnvironment;
125 LPWSTR pDriverPath;
126 LPWSTR pDataFile;
127 LPWSTR pConfigFile;
128 LPWSTR pHelpFile;
129 LPWSTR pDependentFiles;
130 LPWSTR pMonitorName;
131 LPWSTR pDefaultDataType;
132 } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W;
134 DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
135 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
136 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
138 typedef struct _PRINTER_INFO_1A {
139 DWORD Flags;
140 LPSTR pDescription;
141 LPSTR pName;
142 LPSTR pComment;
143 } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
145 typedef struct _PRINTER_INFO_1W {
146 DWORD Flags;
147 LPWSTR pDescription;
148 LPWSTR pName;
149 LPWSTR pComment;
150 } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
152 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
153 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
154 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
156 /* FIXME: winspool.h declares some structure members with the name Status.
157 * unfortunatly <X11/ICE/ICElib.h> #defines Status to the type 'int'
158 * therfore the following hack */
159 #ifndef Status
161 typedef struct _PRINTER_INFO_2A {
162 LPSTR pServerName;
163 LPSTR pPrinterName;
164 LPSTR pShareName;
165 LPSTR pPortName;
166 LPSTR pDriverName;
167 LPSTR pComment;
168 LPSTR pLocation;
169 LPDEVMODEA pDevMode;
170 LPSTR pSepFile;
171 LPSTR pPrintProcessor;
172 LPSTR pDatatype;
173 LPSTR pParameters;
174 PSECURITY_DESCRIPTOR pSecurityDescriptor;
175 DWORD Attributes;
176 DWORD Priority;
177 DWORD DefaultPriority;
178 DWORD StartTime;
179 DWORD UntilTime;
180 DWORD Status;
181 DWORD cJobs;
182 DWORD AveragePPM;
183 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
185 typedef struct _PRINTER_INFO_2W {
186 LPWSTR pServerName;
187 LPWSTR pPrinterName;
188 LPWSTR pShareName;
189 LPWSTR pPortName;
190 LPWSTR pDriverName;
191 LPWSTR pComment;
192 LPWSTR pLocation;
193 LPDEVMODEW pDevMode;
194 LPWSTR pSepFile;
195 LPWSTR pPrintProcessor;
196 LPWSTR pDatatype;
197 LPWSTR pParameters;
198 PSECURITY_DESCRIPTOR pSecurityDescriptor;
199 DWORD Attributes;
200 DWORD Priority;
201 DWORD DefaultPriority;
202 DWORD StartTime;
203 DWORD UntilTime;
204 DWORD Status;
205 DWORD cJobs;
206 DWORD AveragePPM;
207 } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
209 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
210 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
211 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
213 typedef struct _PRINTER_INFO_4A {
214 LPSTR pPrinterName;
215 LPSTR pServerName;
216 DWORD Attributes;
217 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
219 typedef struct _PRINTER_INFO_4W {
220 LPWSTR pPrinterName;
221 LPWSTR pServerName;
222 DWORD Attributes;
223 } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
225 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
226 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
227 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
229 typedef struct _PRINTER_INFO_5A {
230 LPSTR pPrinterName;
231 LPSTR pPortName;
232 DWORD Attributes;
233 DWORD DeviceNotSelectedTimeOut;
234 DWORD TransmissionRetryTimeout;
235 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
237 typedef struct _PRINTER_INFO_5W {
238 LPWSTR pPrinterName;
239 LPWSTR pPortName;
240 DWORD Attributes;
241 DWORD DeviceNotSelectedTimeOut;
242 DWORD TransmissionRetryTimeout;
243 } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
245 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
246 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
247 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
249 #endif /* Status */
251 /* DECLARATIONS */
252 INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
253 LPSTR pOutput, LPDEVMODEA pDevMode);
254 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
255 WORD fwCapability, LPWSTR pOutput,
256 const DEVMODEW *pDevMode);
258 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
260 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
261 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
262 LPDEVMODEA pDevModeInput,DWORD fMode );
263 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
264 LPWSTR pDeviceName,
265 LPDEVMODEW pDevModeOutput,
266 LPDEVMODEW pDevModeInput, DWORD fMode);
268 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
270 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
271 LPPRINTER_DEFAULTSA pDefault);
272 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
273 LPPRINTER_DEFAULTSW pDefault);
275 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
277 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
279 BOOL WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
280 DWORD dwLevel, LPBYTE lpbPrinters,
281 DWORD cbBuf, LPDWORD lpdwNeeded,
282 LPDWORD lpdwReturned);
283 BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
284 DWORD dwLevel, LPBYTE lpbPrinters,
285 DWORD cbBuf, LPDWORD lpdwNeeded,
286 LPDWORD lpdwReturned);
287 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
289 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
291 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
292 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
293 #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
295 #ifdef __cplusplus
296 } /* extern "C" */
297 #endif
299 #endif /* __WINE_WINSPOOL_H */