[PSDK][XDK] Remove DECLSPEC_* from windef.h, protect against redefinition in winnt.h
[reactos.git] / sdk / include / psdk / windef.h
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _WINDEF_
7 #define _WINDEF_
8 #pragma once
9
10 #define _WINDEF_H // wine ...
11
12 #ifdef _MSC_VER
13 #pragma warning(push)
14 #pragma warning(disable:4255)
15 #endif
16
17 #if defined(__LP64__) || (!defined(_M_AMD64) && defined(__WINESRC__))
18 #if !defined(__ROS_LONG64__)
19 #define __ROS_LONG64__
20 #endif
21 #endif
22
23 #ifndef NO_STRICT
24 #ifndef STRICT
25 #define STRICT 1
26 #endif
27 #endif
28
29 #ifndef WIN32
30 #define WIN32
31 #endif
32
33 #if defined(_MAC) && !defined(_WIN32)
34 #define _WIN32
35 #endif
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #ifndef WINVER
42 #define WINVER 0x0502
43 #endif
44
45 #ifndef BASETYPES
46 #define BASETYPES
47 #ifndef __ROS_LONG64__
48 typedef unsigned long ULONG;
49 #else
50 typedef unsigned int ULONG;
51 #endif
52 typedef ULONG *PULONG;
53 typedef unsigned short USHORT;
54 typedef USHORT *PUSHORT;
55 typedef unsigned char UCHAR;
56 typedef UCHAR *PUCHAR;
57 typedef char *PSZ;
58 typedef int INT;
59 #endif /* BASETYPES */
60
61 #undef MAX_PATH
62 #define MAX_PATH 260
63
64 #ifndef NULL
65 #ifdef __cplusplus
66 #ifndef _WIN64
67 #define NULL 0
68 #else
69 #define NULL 0LL
70 #endif /* W64 */
71 #else
72 #define NULL ((void *)0)
73 #endif
74 #endif
75
76 #ifndef FALSE
77 #define FALSE 0
78 #endif
79
80 #ifndef TRUE
81 #define TRUE 1
82 #endif
83
84 #ifndef _NO_W32_PSEUDO_MODIFIERS
85 #ifndef IN
86 #define IN
87 #endif
88 #ifndef OUT
89 #define OUT
90 #endif
91 #ifndef OPTIONAL
92 #define OPTIONAL
93 #endif
94 #endif
95
96 #ifdef __GNUC__
97 #define PACKED __attribute__((packed))
98 #ifndef __declspec
99 #define __declspec(e) __attribute__((e))
100 #endif
101 #ifndef _declspec
102 #define _declspec(e) __attribute__((e))
103 #endif
104 #elif defined(__WATCOMC__)
105 #define PACKED
106 #else
107 #define PACKED
108 #endif
109
110 #undef far
111 #undef near
112 #undef pascal
113
114 #define far
115 #define near
116 #define pascal __stdcall
117
118 #define cdecl
119 #ifndef CDECL
120 #define CDECL
121 #endif
122
123 #if !defined(__x86_64__) //defined(_STDCALL_SUPPORTED)
124 #ifndef CALLBACK
125 #define CALLBACK __stdcall
126 #endif
127 #ifndef WINAPI
128 #define WINAPI __stdcall
129 #endif
130 #define WINAPIV __cdecl
131 #define APIENTRY WINAPI
132 #define APIPRIVATE WINAPI
133 #define PASCAL WINAPI
134 #else
135 #define CALLBACK
136 #define WINAPI
137 #define WINAPIV
138 #define APIENTRY WINAPI
139 #define APIPRIVATE
140 #define PASCAL pascal
141 #endif
142
143 #undef FAR
144 #undef NEAR
145 #define FAR
146 #define NEAR
147
148 #ifndef CONST
149 #define CONST const
150 #endif
151
152 #ifndef _DEF_WINBOOL_
153 #define _DEF_WINBOOL_
154 typedef int WINBOOL;
155 #pragma push_macro("BOOL")
156 #undef BOOL
157 #if !defined(__OBJC__) && !defined(__OBJC_BOOL) && !defined(__objc_INCLUDE_GNU)
158 typedef int BOOL;
159 #endif
160 #define BOOL WINBOOL
161 typedef BOOL *PBOOL;
162 typedef BOOL *LPBOOL;
163 #pragma pop_macro("BOOL")
164 #endif /* _DEF_WINBOOL_ */
165
166 typedef unsigned char BYTE;
167 typedef unsigned short WORD;
168 #ifndef __ROS_LONG64__
169 typedef unsigned long DWORD;
170 #else
171 typedef unsigned int DWORD;
172 #endif
173 typedef float FLOAT;
174 typedef FLOAT *PFLOAT;
175 typedef BYTE *PBYTE;
176 typedef BYTE *LPBYTE;
177 typedef int *PINT;
178 typedef int *LPINT;
179 typedef WORD *PWORD;
180 typedef WORD *LPWORD;
181 #ifndef __ROS_LONG64__
182 typedef long *LPLONG;
183 #else
184 typedef int *LPLONG;
185 #endif
186 typedef DWORD *PDWORD;
187 typedef DWORD *LPDWORD;
188 typedef void *LPVOID;
189 #ifndef _LPCVOID_DEFINED
190 #define _LPCVOID_DEFINED
191 typedef CONST void *LPCVOID;
192 #endif
193 //typedef int INT;
194 typedef unsigned int UINT;
195 typedef unsigned int *PUINT;
196 typedef unsigned int *LPUINT;
197
198
199
200
201 #ifndef NT_INCLUDED
202 #include <winnt.h>
203 #endif
204
205 //#include <specstrings.h>
206
207 typedef UINT_PTR WPARAM;
208 typedef LONG_PTR LPARAM;
209 typedef LONG_PTR LRESULT;
210 #ifndef _HRESULT_DEFINED
211 typedef LONG HRESULT;
212 #define _HRESULT_DEFINED
213 #endif
214
215 #ifndef NOMINMAX
216 #ifndef max
217 #define max(a, b) (((a) > (b)) ? (a) : (b))
218 #endif
219 #ifndef min
220 #define min(a, b) (((a) < (b)) ? (a) : (b))
221 #endif
222 #endif
223
224 #define MAKEWORD(bLow, bHigh) ((WORD)(((BYTE)((DWORD_PTR)(bLow) & 0xff )) | (((WORD)((BYTE)((DWORD_PTR)(bHigh) & 0xff))) << 8 )))
225 #define MAKELONG(wLow, wHigh) ((LONG)(((WORD)((DWORD_PTR)(wLow) & 0xffff)) | (((DWORD)((WORD)((DWORD_PTR)(wHigh) & 0xffff))) << 16)))
226 #define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
227 #define HIWORD(l) ((WORD)(((DWORD_PTR)(l) >> 16) & 0xffff))
228 #define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
229 #define HIBYTE(w) ((BYTE)(((DWORD_PTR)(w) >> 8) & 0xff))
230
231 #ifndef WIN_INTERNAL
232 DECLARE_HANDLE (HWND);
233 //DECLARE_HANDLE (HHOOK);
234 #ifdef WINABLE
235 DECLARE_HANDLE (HEVENT);
236 #endif
237 #endif
238
239 typedef WORD ATOM;
240
241 typedef HANDLE *SPHANDLE;
242 typedef HANDLE *LPHANDLE;
243 typedef HANDLE HGLOBAL;
244 typedef HANDLE HLOCAL;
245 typedef HANDLE GLOBALHANDLE;
246 typedef HANDLE LOCALHANDLE;
247 #ifdef _WIN64
248 typedef INT_PTR (WINAPI *FARPROC)();
249 typedef INT_PTR (WINAPI *NEARPROC)();
250 typedef INT_PTR (WINAPI *PROC)();
251 #else
252 typedef int (WINAPI *FARPROC)();
253 typedef int (WINAPI *NEARPROC)();
254 typedef int (WINAPI *PROC)();
255 #endif
256
257 typedef void *HGDIOBJ;
258
259 DECLARE_HANDLE(HKEY);
260 typedef HKEY *PHKEY;
261
262 DECLARE_HANDLE(HACCEL);
263 DECLARE_HANDLE(HBITMAP);
264 DECLARE_HANDLE(HBRUSH);
265 DECLARE_HANDLE(HCOLORSPACE);
266 DECLARE_HANDLE(HDC);
267 DECLARE_HANDLE(HGLRC);
268 DECLARE_HANDLE(HDESK);
269 DECLARE_HANDLE(HENHMETAFILE);
270 DECLARE_HANDLE(HFONT);
271 DECLARE_HANDLE(HICON);
272 DECLARE_HANDLE(HMENU);
273 DECLARE_HANDLE(HMETAFILE);
274 DECLARE_HANDLE(HINSTANCE);
275 typedef HINSTANCE HMODULE;
276 DECLARE_HANDLE(HPALETTE);
277 DECLARE_HANDLE(HPEN);
278 DECLARE_HANDLE(HRGN);
279 DECLARE_HANDLE(HRSRC);
280 DECLARE_HANDLE(HSTR);
281 DECLARE_HANDLE(HTASK);
282 DECLARE_HANDLE(HWINSTA);
283 DECLARE_HANDLE(HKL);
284 DECLARE_HANDLE(HMONITOR);
285 DECLARE_HANDLE(HWINEVENTHOOK);
286 DECLARE_HANDLE(HUMPD);
287
288 typedef int HFILE;
289 typedef HICON HCURSOR;
290 typedef DWORD COLORREF;
291 typedef DWORD *LPCOLORREF;
292
293 #define HFILE_ERROR ((HFILE)-1)
294
295 typedef struct tagRECT {
296 LONG left;
297 LONG top;
298 LONG right;
299 LONG bottom;
300 } RECT,*PRECT,*NPRECT,*LPRECT;
301
302 typedef const RECT *LPCRECT;
303
304 typedef struct _RECTL {
305 LONG left;
306 LONG top;
307 LONG right;
308 LONG bottom;
309 } RECTL,*PRECTL,*LPRECTL;
310
311 typedef const RECTL *LPCRECTL;
312
313 typedef struct tagPOINT {
314 LONG x;
315 LONG y;
316 } POINT,*PPOINT,*NPPOINT,*LPPOINT;
317
318 typedef struct _POINTL {
319 LONG x;
320 LONG y;
321 } POINTL,*PPOINTL;
322
323 typedef struct tagSIZE {
324 LONG cx;
325 LONG cy;
326 } SIZE,*PSIZE,*LPSIZE;
327
328 typedef SIZE SIZEL;
329 typedef SIZE *PSIZEL,*LPSIZEL;
330
331 typedef struct tagPOINTS {
332 SHORT x;
333 SHORT y;
334 } POINTS,*PPOINTS,*LPPOINTS;
335
336 typedef struct _FILETIME {
337 DWORD dwLowDateTime;
338 DWORD dwHighDateTime;
339 } FILETIME,*PFILETIME,*LPFILETIME;
340 #define _FILETIME_
341
342 #define DM_UPDATE 1
343 #define DM_COPY 2
344 #define DM_PROMPT 4
345 #define DM_MODIFY 8
346
347 #define DM_IN_BUFFER DM_MODIFY
348 #define DM_IN_PROMPT DM_PROMPT
349 #define DM_OUT_BUFFER DM_COPY
350 #define DM_OUT_DEFAULT DM_UPDATE
351
352 #define DC_FIELDS 1
353 #define DC_PAPERS 2
354 #define DC_PAPERSIZE 3
355 #define DC_MINEXTENT 4
356 #define DC_MAXEXTENT 5
357 #define DC_BINS 6
358 #define DC_DUPLEX 7
359 #define DC_SIZE 8
360 #define DC_EXTRA 9
361 #define DC_VERSION 10
362 #define DC_DRIVER 11
363 #define DC_BINNAMES 12
364 #define DC_ENUMRESOLUTIONS 13
365 #define DC_FILEDEPENDENCIES 14
366 #define DC_TRUETYPE 15
367 #define DC_PAPERNAMES 16
368 #define DC_ORIENTATION 17
369 #define DC_COPIES 18
370
371 /* needed by header files generated by WIDL */
372 #ifdef __WINESRC__
373 #define WINE_NO_UNICODE_MACROS
374 #endif
375
376 #ifdef WINE_NO_UNICODE_MACROS
377 # define WINELIB_NAME_AW(func) \
378 func##_must_be_suffixed_with_W_or_A_in_this_context \
379 func##_must_be_suffixed_with_W_or_A_in_this_context
380 #else /* WINE_NO_UNICODE_MACROS */
381 # ifdef UNICODE
382 # define WINELIB_NAME_AW(func) func##W
383 # else
384 # define WINELIB_NAME_AW(func) func##A
385 # endif
386 #endif /* WINE_NO_UNICODE_MACROS */
387
388 #ifdef WINE_NO_UNICODE_MACROS
389 # define DECL_WINELIB_TYPE_AW(type) /* nothing */
390 #else
391 # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
392 #endif
393
394 #ifndef __WATCOMC__
395 #ifndef _export
396 #define _export
397 #endif
398 #ifndef __export
399 #define __export
400 #endif
401 #endif
402
403 #if 0
404 #ifdef __GNUC__
405 #define PACKED __attribute__((packed))
406 //#ifndef _fastcall
407 //#define _fastcall __attribute__((fastcall))
408 //#endif
409 //#ifndef __fastcall
410 //#define __fastcall __attribute__((fastcall))
411 //#endif
412 //#ifndef _stdcall
413 //#define _stdcall __attribute__((stdcall))
414 //#endif
415 //#ifndef __stdcall
416 //#define __stdcall __attribute__((stdcall))
417 //#endif
418 //#ifndef _cdecl
419 //#define _cdecl __attribute__((cdecl))
420 //#endif
421 //#ifndef __cdecl
422 //#define __cdecl __attribute__((cdecl))
423 //#endif
424 #ifndef __declspec
425 #define __declspec(e) __attribute__((e))
426 #endif
427 #ifndef _declspec
428 #define _declspec(e) __attribute__((e))
429 #endif
430 #elif defined(__WATCOMC__)
431 #define PACKED
432 #else
433 #define PACKED
434 #define _cdecl
435 #define __cdecl
436 #endif
437 #endif
438
439 #if 1 // needed by shlwapi.h
440 #ifndef __ms_va_list
441 # if defined(__x86_64__) && defined (__GNUC__)
442 # define __ms_va_list __builtin_ms_va_list
443 # define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
444 # define __ms_va_end(list) __builtin_ms_va_end(list)
445 # else
446 # define __ms_va_list va_list
447 # define __ms_va_start(list,arg) va_start(list,arg)
448 # define __ms_va_end(list) va_end(list)
449 # endif
450 #endif
451 #endif
452
453 #ifdef _MSC_VER
454 #pragma warning(pop)
455 #endif
456
457 #ifdef __cplusplus
458 }
459 #endif
460
461 #endif /* _WINDEF_ */
462