ReactOS 0.4.15-dev-7918-g2a2556c
windows.h
Go to the documentation of this file.
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