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 */