OSDN Git Service

Insert removed author attribution.
[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 /* Written by Anders Norlander <anorland@hem2.passagen.se> */
25 #ifndef _WINDOWS_H
26 #define _WINDOWS_H
27 #pragma GCC system_header
28 #include <_mingw.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
42 #if defined(_M_IX86) && !defined(_X86_)
43 #define _X86_
44 #elif defined(_M_ALPHA) && !defined(_ALPHA_)
45 #define _ALPHA_
46 #elif defined(_M_PPC) && !defined(_PPC_)
47 #define _PPC_
48 #elif defined(_M_MRX000) && !defined(_MIPS_)
49 #define _MIPS_
50 #elif defined(_M_M68K) && !defined(_68K_)
51 #define _68K_
52 #endif
53
54 #ifdef RC_INVOKED
55 /* winresrc.h includes the necessary headers */
56 #include <winresrc.h>
57 #else
58
59 #include <stdarg.h>
60 #include <windef.h>
61 #include <wincon.h>
62 #include <winbase.h>
63 #ifndef NOGDI
64 #include <wingdi.h>
65 #endif
66 #include <winuser.h>
67 #include <winnls.h>
68 #include <winver.h>
69 #include <winnetwk.h>
70 #include <winreg.h>
71 #include <winsvc.h>
72
73 #ifndef WIN32_LEAN_AND_MEAN
74 #include <cderr.h>
75 #include <dde.h>
76 #include <ddeml.h>
77 #include <dlgs.h>
78 #include <imm.h>
79 #include <lzexpand.h>
80 #include <mmsystem.h>
81 #include <nb30.h>
82 #include <rpc.h>
83 #include <shellapi.h>
84 #include <winperf.h>
85
86 #ifndef NOGDI
87 #include <commdlg.h>
88 #include <winspool.h>
89 #endif
90
91 /* __USE_W32_SOCKETS is a __CYGWIN__ guard */
92 #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__))
93 #include <winsock.h>
94 #endif
95
96 #ifndef NOGDI
97 /* In older versions we disallowed COM declarations in __OBJC__
98    because of conflicts with @interface directive.  Define _OBJC_NO_COM
99    to keep this behaviour.  */ 
100 #if !defined (_OBJC_NO_COM) 
101 #include <ole2.h>
102 #endif /* _OBJC_NO_COM */
103 #endif
104
105 #endif /* WIN32_LEAN_AND_MEAN */
106
107 #endif /* RC_INVOKED */
108
109 #ifdef __OBJC__
110 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
111    but undefining it causes trouble as well if a file is included after
112    windows.h
113 */
114 #undef BOOL
115 #endif
116
117 #endif