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)
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,
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)
299 #endif /* __WINE_WINSPOOL_H */