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 _PRINTER_INFO_1A
{
113 } PRINTER_INFO_1A
, *PPRINTER_INFO_1A
, *LPPRINTER_INFO_1A
;
115 typedef struct _PRINTER_INFO_1W
{
120 } PRINTER_INFO_1W
, *PPRINTER_INFO_1W
, *LPPRINTER_INFO_1W
;
122 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1
)
123 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1
)
124 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1
)
126 /* FIXME: winspool.h declares some structure members with the name Status.
127 * unfortunatly <X11/ICE/ICElib.h> #defines Status to the type 'int'
128 * therfore the following hack */
131 typedef struct _PRINTER_INFO_2A
{
141 LPSTR pPrintProcessor
;
144 PSECURITY_DESCRIPTOR pSecurityDescriptor
;
147 DWORD DefaultPriority
;
153 } PRINTER_INFO_2A
, *PPRINTER_INFO_2A
, *LPPRINTER_INFO_2A
;
155 typedef struct _PRINTER_INFO_2W
{
165 LPWSTR pPrintProcessor
;
168 PSECURITY_DESCRIPTOR pSecurityDescriptor
;
171 DWORD DefaultPriority
;
177 } PRINTER_INFO_2W
, *PPRINTER_INFO_2W
, *LPPRINTER_INFO_2W
;
179 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2
)
180 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2
)
181 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2
)
183 typedef struct _PRINTER_INFO_4A
{
187 } PRINTER_INFO_4A
, *PPRINTER_INFO_4A
, *LPPRINTER_INFO_4A
;
189 typedef struct _PRINTER_INFO_4W
{
193 } PRINTER_INFO_4W
, *PPRINTER_INFO_4W
, *LPPRINTER_INFO_4W
;
195 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4
)
196 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4
)
197 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4
)
199 typedef struct _PRINTER_INFO_5A
{
203 DWORD DeviceNotSelectedTimeOut
;
204 DWORD TransmissionRetryTimeout
;
205 } PRINTER_INFO_5A
, *PPRINTER_INFO_5A
, *LPPRINTER_INFO_5A
;
207 typedef struct _PRINTER_INFO_5W
{
211 DWORD DeviceNotSelectedTimeOut
;
212 DWORD TransmissionRetryTimeout
;
213 } PRINTER_INFO_5W
, *PPRINTER_INFO_5W
, *LPPRINTER_INFO_5W
;
215 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5
)
216 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5
)
217 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5
)
222 DWORD WINAPI
DrvGetPrinterData16(LPSTR lpPrinter
, LPSTR lpProfile
,
223 LPDWORD lpType
, LPBYTE lpPrinterData
, int cbData
, LPDWORD lpNeeded
);
224 DWORD WINAPI
DrvSetPrinterData16(LPSTR lpPrinter
, LPSTR lpProfile
,
225 DWORD lpType
, LPBYTE lpPrinterData
, DWORD dwSize
);
226 HANDLE16 WINAPI
OpenJob16(LPSTR lpOutput
, LPSTR lpTitle
, HDC16 hDC
);
227 int WINAPI
CloseJob16(HANDLE16 hJob
);
228 int WINAPI
WriteSpool16(HANDLE16 hJob
, LPSTR lpData
, WORD cch
);
229 int WINAPI
DeleteJob16(HANDLE16 hJob
, WORD wNotUsed
);
230 int WINAPI
StartSpoolPage16(HANDLE16 hJob
);
231 int WINAPI
EndSpoolPage16(HANDLE16 hJob
);
232 DWORD WINAPI
GetSpoolJob16(int nOption
, LONG param
);
233 int WINAPI
WriteDialog16(HANDLE16 hJob
, LPSTR lpMsg
, WORD cchMsg
);
235 INT WINAPI
DeviceCapabilitiesA(LPCSTR pDevice
,LPCSTR pPort
,WORD fwCapability
,
236 LPSTR pOutput
, LPDEVMODEA pDevMode
);
237 INT WINAPI
DeviceCapabilitiesW(LPCWSTR pDevice
, LPCWSTR pPort
,
238 WORD fwCapability
, LPWSTR pOutput
,
239 const DEVMODEW
*pDevMode
);
241 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
243 LONG WINAPI
DocumentPropertiesA(HWND hWnd
,HANDLE hPrinter
,
244 LPSTR pDeviceName
, LPDEVMODEA pDevModeOutput
,
245 LPDEVMODEA pDevModeInput
,DWORD fMode
);
246 LONG WINAPI
DocumentPropertiesW(HWND hWnd
, HANDLE hPrinter
,
248 LPDEVMODEW pDevModeOutput
,
249 LPDEVMODEW pDevModeInput
, DWORD fMode
);
251 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
253 BOOL WINAPI
OpenPrinterA(LPSTR lpPrinterName
,HANDLE
*phPrinter
,
254 LPPRINTER_DEFAULTSA pDefault
);
255 BOOL WINAPI
OpenPrinterW(LPWSTR lpPrinterName
,HANDLE
*phPrinter
,
256 LPPRINTER_DEFAULTSW pDefault
);
258 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
260 BOOL WINAPI
ClosePrinter (HANDLE phPrinter
);
262 BOOL WINAPI
EnumPrintersA(DWORD dwType
, LPSTR lpszName
,
263 DWORD dwLevel
, LPBYTE lpbPrinters
,
264 DWORD cbBuf
, LPDWORD lpdwNeeded
,
265 LPDWORD lpdwReturned
);
266 BOOL WINAPI
EnumPrintersW(DWORD dwType
, LPWSTR lpszName
,
267 DWORD dwLevel
, LPBYTE lpbPrinters
,
268 DWORD cbBuf
, LPDWORD lpdwNeeded
,
269 LPDWORD lpdwReturned
);
270 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
272 BOOL WINAPI
PrinterProperties(HWND hWnd
, HANDLE hPrinter
);
278 #endif /* __WINE_WINSPOOL_H */