xref: /reactos/sdk/include/psdk/windows.h (revision a1faa1cc)
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 
16 #ifdef __GNUC__
17 #include <msvctarget.h>
18 #endif
19 
20 #if !defined(_X86_) && !defined(_AMD64_) && !defined(_IA64_) && !defined(_ALPHA_) && \
21     !defined(_ARM_) && !defined(_ARM64_) && !defined(_PPC_) && !defined(_MIPS_) && !defined(_68K_) && !defined(_SH_)
22 
23 #if defined(_M_AMD64) || defined(__x86_64__)
24 #define _AMD64_
25 #elif defined(_M_IX86) || defined(__i386__)
26 #define _X86_
27 #elif defined(_M_IA64) || defined(__ia64__)
28 #define _IA64_
29 #elif defined(_M_ALPHA) || defined(__alpha__)
30 #define _ALPHA_
31 #elif defined(_M_ARM) || defined(__arm__)
32 #define _ARM_
33 #elif defined(_M_ARM64) || defined(__arm64__) || defined(__aarch64__)
34 #define _ARM64_
35 #elif defined(_M_PPC) || defined(__powerpc__)
36 #define _PPC_
37 #elif defined(_M_MRX000) || defined(__mips__)
38 #define _MIPS_
39 #elif defined(_M_M68K) || defined(__68k__)
40 #define _68K_
41 #elif defined(_SHX_) || defined(__sh__)
42 #define _SH_
43 #endif
44 
45 #endif
46 
47 #ifdef RC_INVOKED
48 /* winresrc.h includes the necessary headers */
49 #include <winresrc.h>
50 #else
51 
52 #include <excpt.h>
53 #include <stdarg.h>
54 #include <windef.h>
55 #include <winbase.h>
56 #include <wingdi.h>
57 #include <winuser.h>
58 #include <wincon.h>
59 #include <winnls.h>
60 #include <winver.h>
61 #include <winnetwk.h>
62 #include <winreg.h>
63 #include <winsvc.h>
64 
65 #ifndef WIN32_LEAN_AND_MEAN
66 #include <cderr.h>
67 #include <dde.h>
68 #include <ddeml.h>
69 #include <dlgs.h>
70 #include <imm.h>
71 #include <lzexpand.h>
72 #include <mmsystem.h>
73 #include <nb30.h>
74 #include <rpc.h>
75 #include <shellapi.h>
76 #include <winperf.h>
77 #ifndef NOCRYPT
78 #include <wincrypt.h>
79 #include <winefs.h>
80 #include <winscard.h>
81 #endif
82 #ifndef NOGDI
83 #include <commdlg.h>
84 #include <winspool.h>
85 #endif
86 #if defined(Win32_Winsock)
87 #warning "The  Win32_Winsock macro name is deprecated.\
88     Please use __USE_W32_SOCKETS instead"
89 #ifndef __USE_W32_SOCKETS
90 #define __USE_W32_SOCKETS
91 #endif
92 #endif
93 #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN))
94 #if (_WIN32_WINNT >= 0x0400)
95 #include <winsock2.h>
96 /*
97  * MS likes to include mswsock.h here as well,
98  * but that can cause undefined symbols if
99  * winsock2.h is included before windows.h
100  */
101 #else
102 #include <winsock.h>
103 #endif /*  (_WIN32_WINNT >= 0x0400) */
104 #endif
105 #ifndef NOGDI
106 #if !defined (__OBJC__)
107 #if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined (__WATCOMC__) || defined(_MSC_VER)
108 #include <ole2.h>
109 #endif
110 #endif /* __OBJC__ */
111 #endif
112 
113 #endif /* WIN32_LEAN_AND_MEAN */
114 
115 #endif /* RC_INVOKED */
116 
117 #ifdef __OBJC__
118 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
119    but undefining it causes trouble as well if a file is included after
120    windows.h
121 */
122 #undef BOOL
123 #endif
124 
125 #endif
126