OSDN Git Service

Implement [#2072], [#2088], [#2089], [#2090], [#2091], [#2092] and [#2093].
[mingw/mingw-org-wsl.git] / include / windows.h
1 /**
2  * @file windows.h
3  * Copyright 2012, 2013 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 #ifdef RC_INVOKED && !defined(NOWINRES)
31 /* winresrc.h includes the necessary headers */
32 #include <winresrc.h>
33 #else
34 #ifdef RC_INVOKED
35 #define NOATOM
36 #define NOCOMM
37 #define NOCRYPT
38 #define NOGDI
39 #define NOGDICAPMASKS
40 #define NOKANJI
41 #define NOMCX
42 #define NOMETAFILE
43 #define NOMINMAX
44 #define NOMSG
45 #define NOOPENFILE
46 #define NOWH
47 #define NORASTEROPS
48 #define NOSCROLL
49 #define NOSOUND
50 #define NOSYSMETRICS
51 #define NOTEXTMETRIC
52 #endif /* def RC_INVOKED */
53 #endif /* def RC_INVOKED && !defined(NOWINRES) */
54
55 #ifndef RC_INVOKED
56 #include <excpt.h>
57 #include <stdarg.h>
58 #endif /* ndef RC_INVOKED */
59
60 #include <windef.h>
61 #include <winbase.h>
62 #include <wingdi.h>
63 #include <winuser.h>
64 #include <winnls.h>
65 #include <wincon.h>
66 #include <winver.h>
67 #include <winreg.h>
68 #include <winnetwk.h>
69
70 #ifndef WIN32_LEAN_AND_MEAN
71 #include <cderr.h>
72 #include <dde.h>
73 #include <ddeml.h>
74 #include <dlgs.h>
75 #include <lzexpand.h>
76 #include <mmsystem.h>
77 #include <nb30.h>
78 #include <rpc.h>
79 #include <basetyps.h>
80 #include <shellapi.h>
81 #include <winperf.h>
82 #include <winsock.h>
83
84 #ifndef NOCRYPT
85 #include <wincrypt.h>
86 #include <winefs.h>
87 #include <winscard.h>
88 #endif /* ndef NOCRYPT */
89
90 #ifndef NOGDI
91 #include <winspool.h>
92
93 /* In older versions we disallowed COM declarations in __OBJC__
94    because of conflicts with @interface directive.  Define _OBJC_NO_COM
95    to keep this behaviour.  */ 
96 #ifndef _OBJC_NO_COM
97
98 #ifdef INC_OLE1
99 #include <ole.h>
100 #else /* ndef INC_OLE1 */
101
102 #include <ole2.h>
103 #endif /* def INC_OLE1 */
104
105 #endif /* ndef _OBJC_NO_COM */
106
107 #include <commdlg.h>
108 #endif /* ndef NOGDI */
109
110 #endif /* WIN32_LEAN_AND_MEAN */
111
112 #include <stralign.h>
113
114 #ifdef INC_OLE2
115 #include <ole2.h>
116 #endif /* def INC_OLE2 */
117
118 #ifndef NOSERVICE
119 #include <winsvc.h>
120 #endif /* ndef NOSERVICE */
121
122 #ifndef NOMCX
123 #include <mcx.h>
124 #endif /* ndef NOMCX */
125
126 #ifndef NOIME
127 #include <imm.h>
128 #endif /* ndef NOIME */
129
130 #ifdef __OBJC__
131 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
132    but undefining it causes trouble as well if a file is included after
133    windows.h
134 */
135 #undef BOOL
136 #endif
137
138 #endif