Added TEB in init_thread request.
[wine/multimedia.git] / include / winspool.h
blobcc414bf5c44733541b406e54ac7c88c59491e321
1 /* Definitions for printing
3 * Copyright 1998 Huw Davies, Andreas Mohr
5 * Portions Copyright (c) 1999 Corel Corporation
6 * (Paul Quinn, Albert Den Haan)
7 */
8 #ifndef __WINE_WINSPOOL_H
9 #define __WINE_WINSPOOL_H
11 #include "windef.h"
12 #include "winbase.h"
13 #include "wingdi.h"
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
19 /* DEFINES */
20 #define INT_PD_DEFAULT_DEVMODE 1
21 #define INT_PD_DEFAULT_MODEL 2
23 #define PRINTER_ATTRIBUTE_QUEUED 0x00000001
24 #define PRINTER_ATTRIBUTE_DIRECT 0x00000002
25 #define PRINTER_ATTRIBUTE_DEFAULT 0x00000004
26 #define PRINTER_ATTRIBUTE_SHARED 0x00000008
27 #define PRINTER_ATTRIBUTE_NETWORK 0x00000010
28 #define PRINTER_ATTRIBUTE_HIDDEN 0x00000020
29 #define PRINTER_ATTRIBUTE_LOCAL 0x00000040
31 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080
32 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100
33 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
35 #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400
36 #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800
38 #define PRINTER_ENUM_DEFAULT 0x00000001
39 #define PRINTER_ENUM_LOCAL 0x00000002
40 #define PRINTER_ENUM_CONNECTIONS 0x00000004
41 #define PRINTER_ENUM_FAVORITE 0x00000004
42 #define PRINTER_ENUM_NAME 0x00000008
43 #define PRINTER_ENUM_REMOTE 0x00000010
44 #define PRINTER_ENUM_SHARED 0x00000020
45 #define PRINTER_ENUM_NETWORK 0x00000040
47 #define PRINTER_ENUM_EXPAND 0x00004000
48 #define PRINTER_ENUM_CONTAINER 0x00008000
50 #define PRINTER_ENUM_ICONMASK 0x00ff0000
51 #define PRINTER_ENUM_ICON1 0x00010000
52 #define PRINTER_ENUM_ICON2 0x00020000
53 #define PRINTER_ENUM_ICON3 0x00040000
54 #define PRINTER_ENUM_ICON4 0x00080000
55 #define PRINTER_ENUM_ICON5 0x00100000
56 #define PRINTER_ENUM_ICON6 0x00200000
57 #define PRINTER_ENUM_ICON7 0x00400000
58 #define PRINTER_ENUM_ICON8 0x00800000
60 /* TYPES */
61 typedef struct _PRINTER_DEFAULTSA {
62 LPSTR pDatatype;
63 LPDEVMODEA pDevMode;
64 ACCESS_MASK DesiredAccess;
65 } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
67 typedef struct _PRINTER_DEFAULTSW {
68 LPWSTR pDatatype;
69 LPDEVMODEW pDevMode;
70 ACCESS_MASK DesiredAccess;
71 } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
73 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
74 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
76 typedef struct _DRIVER_INFO_1A {
77 LPSTR pName;
78 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
80 typedef struct _DRIVER_INFO_1W {
81 LPWSTR pName;
82 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
84 DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
85 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
86 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
88 typedef struct _DRIVER_INFO_2A {
89 DWORD cVersion;
90 LPSTR pName;
91 LPSTR pEnvironment;
92 LPSTR pDriverPath;
93 LPSTR pDataFile;
94 LPSTR pConfigFile;
95 } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
97 typedef struct _DRIVER_INFO_2W {
98 DWORD cVersion;
99 LPWSTR pName;
100 LPWSTR pEnvironment;
101 LPWSTR pDriverPath;
102 LPWSTR pDataFile;
103 LPWSTR pConfigFile;
104 } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
106 DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
107 DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
108 DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
110 typedef struct _PRINTER_INFO_1A {
111 DWORD Flags;
112 LPSTR pDescription;
113 LPSTR pName;
114 LPSTR pComment;
115 } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
117 typedef struct _PRINTER_INFO_1W {
118 DWORD Flags;
119 LPWSTR pDescription;
120 LPWSTR pName;
121 LPWSTR pComment;
122 } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
124 DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
125 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
126 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
128 /* FIXME: winspool.h declares some structure members with the name Status.
129 * unfortunatly <X11/ICE/ICElib.h> #defines Status to the type 'int'
130 * therfore the following hack */
131 #ifndef Status
133 typedef struct _PRINTER_INFO_2A {
134 LPSTR pServerName;
135 LPSTR pPrinterName;
136 LPSTR pShareName;
137 LPSTR pPortName;
138 LPSTR pDriverName;
139 LPSTR pComment;
140 LPSTR pLocation;
141 LPDEVMODEA pDevMode;
142 LPSTR pSepFile;
143 LPSTR pPrintProcessor;
144 LPSTR pDatatype;
145 LPSTR pParameters;
146 PSECURITY_DESCRIPTOR pSecurityDescriptor;
147 DWORD Attributes;
148 DWORD Priority;
149 DWORD DefaultPriority;
150 DWORD StartTime;
151 DWORD UntilTime;
152 DWORD Status;
153 DWORD cJobs;
154 DWORD AveragePPM;
155 } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
157 typedef struct _PRINTER_INFO_2W {
158 LPWSTR pServerName;
159 LPWSTR pPrinterName;
160 LPWSTR pShareName;
161 LPWSTR pPortName;
162 LPWSTR pDriverName;
163 LPWSTR pComment;
164 LPWSTR pLocation;
165 LPDEVMODEW pDevMode;
166 LPWSTR pSepFile;
167 LPWSTR pPrintProcessor;
168 LPWSTR pDatatype;
169 LPWSTR pParameters;
170 PSECURITY_DESCRIPTOR pSecurityDescriptor;
171 DWORD Attributes;
172 DWORD Priority;
173 DWORD DefaultPriority;
174 DWORD StartTime;
175 DWORD UntilTime;
176 DWORD Status;
177 DWORD cJobs;
178 DWORD AveragePPM;
179 } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
181 DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
182 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
183 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
185 typedef struct _PRINTER_INFO_4A {
186 LPSTR pPrinterName;
187 LPSTR pServerName;
188 DWORD Attributes;
189 } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
191 typedef struct _PRINTER_INFO_4W {
192 LPWSTR pPrinterName;
193 LPWSTR pServerName;
194 DWORD Attributes;
195 } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
197 DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
198 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
199 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
201 typedef struct _PRINTER_INFO_5A {
202 LPSTR pPrinterName;
203 LPSTR pPortName;
204 DWORD Attributes;
205 DWORD DeviceNotSelectedTimeOut;
206 DWORD TransmissionRetryTimeout;
207 } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
209 typedef struct _PRINTER_INFO_5W {
210 LPWSTR pPrinterName;
211 LPWSTR pPortName;
212 DWORD Attributes;
213 DWORD DeviceNotSelectedTimeOut;
214 DWORD TransmissionRetryTimeout;
215 } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
217 DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
218 DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
219 DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
221 #endif /* Status */
223 /* DECLARATIONS */
224 DWORD WINAPI DrvGetPrinterData16(LPSTR lpPrinter, LPSTR lpProfile,
225 LPDWORD lpType, LPBYTE lpPrinterData, int cbData, LPDWORD lpNeeded);
226 DWORD WINAPI DrvSetPrinterData16(LPSTR lpPrinter, LPSTR lpProfile,
227 DWORD lpType, LPBYTE lpPrinterData, DWORD dwSize);
228 HANDLE16 WINAPI OpenJob16(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC);
229 int WINAPI CloseJob16(HANDLE16 hJob);
230 int WINAPI WriteSpool16(HANDLE16 hJob, LPSTR lpData, WORD cch);
231 int WINAPI DeleteJob16(HANDLE16 hJob, WORD wNotUsed);
232 int WINAPI StartSpoolPage16(HANDLE16 hJob);
233 int WINAPI EndSpoolPage16(HANDLE16 hJob);
234 DWORD WINAPI GetSpoolJob16(int nOption, LONG param);
235 int WINAPI WriteDialog16(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg);
237 INT WINAPI DeviceCapabilitiesA(LPCSTR printer,LPCSTR target,WORD z,
238 LPSTR a,LPDEVMODEA b);
239 INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
240 WORD fwCapability, LPWSTR pOutput,
241 const DEVMODEW *pDevMode);
243 #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
245 LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
246 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
247 LPDEVMODEA pDevModeInput,DWORD fMode );
248 LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
249 LPWSTR pDeviceName,
250 LPDEVMODEW pDevModeOutput,
251 LPDEVMODEW pDevModeInput, DWORD fMode);
253 #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
255 BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
256 LPPRINTER_DEFAULTSA pDefault);
257 BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
258 LPPRINTER_DEFAULTSW pDefault);
260 #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
262 BOOL WINAPI ClosePrinter (HANDLE phPrinter);
264 BOOL WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
265 DWORD dwLevel, LPBYTE lpbPrinters,
266 DWORD cbBuf, LPDWORD lpdwNeeded,
267 LPDWORD lpdwReturned);
268 BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
269 DWORD dwLevel, LPBYTE lpbPrinters,
270 DWORD cbBuf, LPDWORD lpdwNeeded,
271 LPDWORD lpdwReturned);
272 #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
274 BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
276 #ifdef __cplusplus
277 } /* extern "C" */
278 #endif
280 #endif /* __WINE_WINSPOOL_H */