OSDN Git Service

Redo the filters based on assumptions discussed in mingw-dvlpr list.
[mingw/mingw-org-wsl.git] / include / windows.h
1 /**
2  * @file windows.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _WINDOWS_H
25 #define _WINDOWS_H
26 #pragma GCC system_header
27
28 #include <sdkddkver.h>
29
30 /* translate GCC target defines to MS equivalents. Keep this synchronized
31    with winnt.h. */
32 #if defined(__i686__) && !defined(_M_IX86)
33 #define _M_IX86 600
34 #elif defined(__i586__) && !defined(_M_IX86)
35 #define _M_IX86 500
36 #elif defined(__i486__) && !defined(_M_IX86)
37 #define _M_IX86 400
38 #elif defined(__i386__) && !defined(_M_IX86)
39 #define _M_IX86 300
40 #endif
41 #if defined(_M_IX86) && !defined(_X86_)
42 #define _X86_
43 #elif defined(_M_ALPHA) && !defined(_ALPHA_)
44 #define _ALPHA_
45 #elif defined(_M_PPC) && !defined(_PPC_)
46 #define _PPC_
47 #elif defined(_M_MRX000) && !defined(_MIPS_)
48 #define _MIPS_
49 #elif defined(_M_M68K) && !defined(_68K_)
50 #define _68K_
51 #endif
52
53 #ifdef RC_INVOKED
54 /* winresrc.h includes the necessary headers */
55 #include <winresrc.h>
56 #else
57
58 #include <stdarg.h>
59 #include <windef.h>
60 #include <wincon.h>
61 #include <winbase.h>
62 #ifndef NOGDI
63 #include <wingdi.h>
64 #endif
65 #include <winuser.h>
66 #include <winnls.h>
67 #include <winver.h>
68 #include <winnetwk.h>
69 #include <winreg.h>
70 #include <winsvc.h>
71
72 #ifndef WIN32_LEAN_AND_MEAN
73 #include <cderr.h>
74 #include <dde.h>
75 #include <ddeml.h>
76 #include <dlgs.h>
77 #include <imm.h>
78 #include <lzexpand.h>
79 #include <mmsystem.h>
80 #include <nb30.h>
81 #include <rpc.h>
82 #include <shellapi.h>
83 #include <winperf.h>
84 #ifndef NOGDI
85 #include <commdlg.h>
86 #include <winspool.h>
87 #endif
88 #if defined(Win32_Winsock)
89 #warning "The  Win32_Winsock macro name is deprecated.\
90     Please use __USE_W32_SOCKETS instead"
91 #ifndef __USE_W32_SOCKETS
92 #define __USE_W32_SOCKETS
93 #endif
94 #endif
95 #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN))
96 #if (_WIN32_WINNT >= 0x0400)
97 #include <winsock2.h>
98 /*
99  * MS likes to include mswsock.h here as well,
100  * but that can cause undefined symbols if
101  * winsock2.h is included before windows.h
102  */
103 #else
104 #include <winsock.h>
105 #endif /*  (_WIN32_WINNT >= 0x0400) */
106 #endif
107 #ifndef NOGDI
108 /* In older versions we disallowed COM declarations in __OBJC__
109    because of conflicts with @interface directive.  Define _OBJC_NO_COM
110    to keep this behaviour.  */ 
111 #if !defined (_OBJC_NO_COM) 
112 #include <ole2.h>
113 #endif /* _OBJC_NO_COM */
114 #endif
115
116 #endif /* WIN32_LEAN_AND_MEAN */
117
118 #endif /* RC_INVOKED */
119
120 #ifdef __OBJC__
121 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
122    but undefining it causes trouble as well if a file is included after
123    windows.h
124 */
125 #undef BOOL
126 #endif
127
128 #endif