1 /* Definitions for printing
3 * Copyright 1998 Huw Davies, Andreas Mohr
5 * Portions Copyright (c) 1999 Corel Corporation
6 * (Paul Quinn, Albert Den Haan)
8 #ifndef __WINE_WINSPOOL_H
9 #define __WINE_WINSPOOL_H
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
59 typedef struct _PRINTER_DEFAULTSA {
62 ACCESS_MASK DesiredAccess;
63 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
65 typedef struct _PRINTER_DEFAULTSW {
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 {
76 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
78 typedef struct _DRIVER_INFO_1W {
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 {
93 } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
95 typedef struct _DRIVER_INFO_2W {
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 {
116 LPSTR pDependentFiles;
118 LPSTR pDefaultDataType;
119 } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
121 typedef struct _DRIVER_INFO_3W {
129 LPWSTR pDependentFiles;
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 {
143 } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
145 typedef struct _PRINTER_INFO_1W {
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 */
161 typedef struct _PRINTER_INFO_2A {
171 LPSTR pPrintProcessor;
174 PSECURITY_DESCRIPTOR pSecurityDescriptor;
177 DWORD DefaultPriority;
183 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
185 typedef struct _PRINTER_INFO_2W {
195 LPWSTR pPrintProcessor;
198 PSECURITY_DESCRIPTOR pSecurityDescriptor;
201 DWORD DefaultPriority;
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 {
217 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
219 typedef struct _PRINTER_INFO_4W {
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 {
233 DWORD DeviceNotSelectedTimeOut;
234 DWORD TransmissionRetryTimeout;
235 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
237 typedef struct _PRINTER_INFO_5W {
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 typedef struct _JOB_INFO_1A {
262 SYSTEMTIME Submitted;
263 } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
265 typedef struct _JOB_INFO_1W {
278 SYSTEMTIME Submitted;
279 } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
281 DECL_WINELIB_TYPE_AW(JOB_INFO_1)
282 DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
283 DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
285 typedef struct _JOB_INFO_2A {
293 LPSTR pPrintProcessor;
298 PSECURITY_DESCRIPTOR pSecurityDescriptor;
306 SYSTEMTIME Submitted;
309 } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
311 typedef struct _JOB_INFO_2W {
319 LPWSTR pPrintProcessor;
324 PSECURITY_DESCRIPTOR pSecurityDescriptor;
332 SYSTEMTIME Submitted;
335 } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
337 DECL_WINELIB_TYPE_AW(JOB_INFO_2)
338 DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
339 DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
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);
353 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
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,
360 LPDEVMODEW pDevModeOutput,
361 LPDEVMODEW pDevModeInput, DWORD fMode);
363 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
365 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
366 LPPRINTER_DEFAULTSA pDefault);
367 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
368 LPPRINTER_DEFAULTSW pDefault);
370 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
372 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
374 BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
375 DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
377 BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
378 DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
380 #define EnumJobs WINELIB_NAME_AW(EnumJobs)
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)
392 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
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)
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)
410 #endif /* __WINE_WINSPOOL_H */