move crt, ddk and GL includes
[reactos.git] / reactos / include / windows.h
1 /*
2 windows.h - main header file for the Win32 API
3
4 Written by Anders Norlander <anorland@hem2.passagen.se>
5
6 This file is part of a free library for the Win32 API.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12 */
13 #ifndef _WINDOWS_H
14 #define _WINDOWS_H
15 #if __GNUC__ >=3
16 #pragma GCC system_header
17 #endif
18
19 /* translate GCC target defines to MS equivalents. Keep this synchronized
20 with winnt.h. */
21 #if defined(__i686__) && !defined(_M_IX86)
22 #define _M_IX86 600
23 #elif defined(__i586__) && !defined(_M_IX86)
24 #define _M_IX86 500
25 #elif defined(__i486__) && !defined(_M_IX86)
26 #define _M_IX86 400
27 #elif defined(__i386__) && !defined(_M_IX86)
28 #define _M_IX86 300
29 #endif
30 #if defined(_M_IX86) && !defined(_X86_)
31 #define _X86_
32 #elif defined(_M_ALPHA) && !defined(_ALPHA_)
33 #define _ALPHA_
34 #elif defined(_M_PPC) && !defined(_PPC_)
35 #define _PPC_
36 #elif defined(_M_MRX000) && !defined(_MIPS_)
37 #define _MIPS_
38 #elif defined(_M_M68K) && !defined(_68K_)
39 #define _68K_
40 #endif
41
42 #ifdef RC_INVOKED
43 /* winresrc.h includes the necessary headers */
44 #include <winresrc.h>
45 #else
46
47 #include <excpt.h>
48 #include <stdarg.h>
49 #include <windef.h>
50 #include <winbase.h>
51 #if !(defined NOGDI || defined _WINGDI_H)
52 #include <wingdi.h>
53 #endif
54 #include <wincon.h>
55 #ifndef _WINUSER_H
56 #include <winuser.h>
57 #endif
58 #ifndef _WINNLS_H
59 #include <winnls.h>
60 #endif
61 #ifndef _WINVER_H
62 #include <winver.h>
63 #endif
64 #ifndef _WINNETWK_H
65 #include <winnetwk.h>
66 #endif
67 #ifndef _WINREG_H
68 #include <winreg.h>
69 #endif
70 #ifndef _WINSVC_H
71 #include <winsvc.h>
72 #endif
73
74 #ifndef WIN32_LEAN_AND_MEAN
75 #include <cderr.h>
76 #include <dde.h>
77 #include <ddeml.h>
78 #include <dlgs.h>
79 #include <imm.h>
80 #include <lzexpand.h>
81 #include <mmsystem.h>
82 #include <nb30.h>
83 #include <rpc.h>
84 #include <shellapi.h>
85 #include <winperf.h>
86 #ifndef NOGDI
87 #include <commdlg.h>
88 #include <winspool.h>
89 #endif
90 #if defined(Win32_Winsock)
91 #warning "The Win32_Winsock macro name is deprecated.\
92 Please use __USE_W32_SOCKETS instead"
93 #ifndef __USE_W32_SOCKETS
94 #define __USE_W32_SOCKETS
95 #endif
96 #endif
97 #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN))
98 #if (_WIN32_WINNT >= 0x0400)
99 #include <winsock2.h>
100 /*
101 * MS likes to include mswsock.h here as well,
102 * but that can cause undefined symbols if
103 * winsock2.h is included before windows.h
104 */
105 #else
106 #include <winsock.h>
107 #endif /* (_WIN32_WINNT >= 0x0400) */
108 #endif
109 #ifndef NOGDI
110 #if !defined (__OBJC__)
111 #if (__GNUC__ >= 3) || defined (__WATCOMC__)
112 #include <ole2.h>
113 #endif
114 #endif /* __OBJC__ */
115 #endif
116
117 #endif /* WIN32_LEAN_AND_MEAN */
118
119 #endif /* RC_INVOKED */
120
121 #ifdef __OBJC__
122 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
123 but undefining it causes trouble as well if a file is included after
124 windows.h
125 */
126 #undef BOOL
127 #endif
128
129 #endif