EnumJobs stub.
[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
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
28
29 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ       0x00000080
30 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS   0x00000100
31 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
32
33 #define PRINTER_ATTRIBUTE_WORK_OFFLINE   0x00000400
34 #define PRINTER_ATTRIBUTE_ENABLE_BIDI    0x00000800
35
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
44
45 #define PRINTER_ENUM_EXPAND      0x00004000
46 #define PRINTER_ENUM_CONTAINER   0x00008000
47
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
57
58 /* TYPES */
59 typedef struct _PRINTER_DEFAULTSA {
60   LPSTR        pDatatype;
61   LPDEVMODEA pDevMode;
62   ACCESS_MASK  DesiredAccess;
63 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
64
65 typedef struct _PRINTER_DEFAULTSW {
66   LPWSTR       pDatatype;
67   LPDEVMODEW pDevMode;
68   ACCESS_MASK  DesiredAccess;
69 } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
70
71 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
72 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
73
74 typedef struct _DRIVER_INFO_1A {
75   LPSTR     pName;
76 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
77
78 typedef struct _DRIVER_INFO_1W {
79   LPWSTR    pName;
80 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
81
82 DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
83 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
84 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
85
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;
94
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;
103
104 DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
105 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
106 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
107
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;
120
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;
133
134 DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
135 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
136 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
137
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;
144
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;
151
152 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
153 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
154 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
155
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
160
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;
184
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;
208
209 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
210 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
211 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
212
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;
218
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;
224
225 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
226 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
227 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
228
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;
236
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;
244
245 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
246 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
247 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
248
249 typedef struct _JOB_INFO_1A {
250   DWORD JobID;
251   LPSTR pPrinterName;
252   LPSTR pMachineName;
253   LPSTR pUserName;
254   LPSTR pDocument;
255   LPSTR pDatatype;
256   LPSTR pStatus;
257   DWORD Status;
258   DWORD Priority;
259   DWORD Position;
260   DWORD TotalPages;
261   DWORD PagesPrinted;
262   SYSTEMTIME Submitted;
263 } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
264
265 typedef struct _JOB_INFO_1W {
266   DWORD JobID;
267   LPWSTR pPrinterName;
268   LPWSTR pMachineName;
269   LPWSTR pUserName;
270   LPWSTR pDocument;
271   LPWSTR pDatatype;
272   LPWSTR pStatus;
273   DWORD Status;
274   DWORD Priority;
275   DWORD Position;
276   DWORD TotalPages;
277   DWORD PagesPrinted;
278   SYSTEMTIME Submitted;
279 } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
280
281 DECL_WINELIB_TYPE_AW(JOB_INFO_1)
282 DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
283 DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
284
285 typedef struct _JOB_INFO_2A {
286   DWORD JobID;
287   LPSTR pPrinterName;
288   LPSTR pMachineName;
289   LPSTR pUserName;
290   LPSTR pDocument;
291   LPSTR pNotifyName;
292   LPSTR pDatatype;
293   LPSTR pPrintProcessor;
294   LPSTR pParameters;
295   LPSTR pDriverName;
296   LPDEVMODEA pDevMode;
297   LPSTR pStatus;
298   PSECURITY_DESCRIPTOR pSecurityDescriptor;
299   DWORD Status;
300   DWORD Priority;
301   DWORD Position;
302   DWORD StartTime;
303   DWORD UntilTime;
304   DWORD TotalPages;
305   DWORD Size;
306   SYSTEMTIME Submitted;
307   DWORD Time;
308   DWORD PagesPrinted;
309 } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
310   
311 typedef struct _JOB_INFO_2W {
312   DWORD JobID;
313   LPWSTR pPrinterName;
314   LPWSTR pMachineName;
315   LPWSTR pUserName;
316   LPWSTR pDocument;
317   LPWSTR pNotifyName;
318   LPWSTR pDatatype;
319   LPWSTR pPrintProcessor;
320   LPWSTR pParameters;
321   LPWSTR pDriverName;
322   LPDEVMODEW pDevMode;
323   LPWSTR pStatus;
324   PSECURITY_DESCRIPTOR pSecurityDescriptor;
325   DWORD Status;
326   DWORD Priority;
327   DWORD Position;
328   DWORD StartTime;
329   DWORD UntilTime;
330   DWORD TotalPages;
331   DWORD Size;
332   SYSTEMTIME Submitted;
333   DWORD Time;
334   DWORD PagesPrinted;
335 } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
336   
337 DECL_WINELIB_TYPE_AW(JOB_INFO_2)
338 DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
339 DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
340
341
342 #endif /* Status */
343
344   
345
346 /* DECLARATIONS */
347 INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
348                                LPSTR pOutput, LPDEVMODEA pDevMode);
349 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
350                                WORD fwCapability, LPWSTR pOutput,
351                                const DEVMODEW *pDevMode);
352
353 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
354
355 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
356                                 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
357                                   LPDEVMODEA pDevModeInput,DWORD fMode );
358 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
359                                   LPWSTR pDeviceName,
360                                   LPDEVMODEW pDevModeOutput,
361                                   LPDEVMODEW pDevModeInput, DWORD fMode);
362
363 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
364
365 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
366                              LPPRINTER_DEFAULTSA pDefault);
367 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
368                              LPPRINTER_DEFAULTSW pDefault);
369
370 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
371
372 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
373
374 BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
375                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
376                       LPDWORD pcReturned);
377 BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
378                       DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
379                       LPDWORD pcReturned);
380 #define EnumJobs WINELIB_NAME_AW(EnumJobs)
381
382 BOOL  WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
383                                DWORD dwLevel, LPBYTE lpbPrinters,
384                                DWORD cbBuf, LPDWORD lpdwNeeded,
385                                LPDWORD lpdwReturned);
386 BOOL  WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
387                                DWORD dwLevel, LPBYTE lpbPrinters,
388                                DWORD cbBuf, LPDWORD lpdwNeeded,
389                                LPDWORD lpdwReturned);
390 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
391
392 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
393
394 BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
395 BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
396 #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
397
398 BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment,
399                               DWORD Level, LPBYTE pDriverInfo,
400                               DWORD cbBuf, LPDWORD pcbNeeded);
401 BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
402                               DWORD Level, LPBYTE pDriverInfo,
403                               DWORD cbBuf, LPDWORD pcbNeeded);
404 #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver)
405
406 #ifdef __cplusplus
407 } /* extern "C" */
408 #endif
409
410 #endif  /* __WINE_WINSPOOL_H */
411