ReactOS  0.4.15-dev-1397-g19779b3
windows.h
Go to the documentation of this file.
1 /* @(#)windows.h 1.4 13/10/26 Copyright 2011-2013 J. Schilling */
2 /*
3  * Definitions for windows.h
4  *
5  * Copyright (c) 2011-2013 J. Schilling
6  */
7 /*
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License, Version 1.0 only
10  * (the "License"). You may not use this file except in compliance
11  * with the License.
12  *
13  * See the file CDDL.Schily.txt in this distribution for details.
14  * A copy of the CDDL is also available via the Internet at
15  * http://www.opensource.org/licenses/cddl1.txt
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file CDDL.Schily.txt from this distribution.
19  */
20 
21 #ifndef _SCHILY_WINDOWS_H
22 #define _SCHILY_WINDOWS_H
23 
24 #ifndef _SCHILY_MCONFIG_H
25 #include <schily/mconfig.h>
26 #endif
27 
28 #ifdef HAVE_WINDOWS_H
29 #ifndef _INCL_WINDOWS_H
30 
31 /*
32  * configure believes they are missing and #define's them:
33  */
34 #if defined(_MSC_VER) || defined(__MINGW32__)
35 /* BEGIN CSTYLED */
36 #undef u_char
37 #undef u_short
38 #undef u_int
39 #undef u_long
40 /* END CSTYLED */
41 #endif
42 
43 #if defined(__CYGWIN32__) || defined(__CYGWIN__)
44 
45 /*
46  * Cygwin-1.7.17 (Autumn 2012) makes life hard as it prevents to rename
47  * the Cygwin BOOL definition. Note that we have our own BOOL definition
48  * in schily/standard.h that exists since 1982 which happened before Microsoft
49  * introduced their BOOL.
50  *
51  * Previous Cygwin versions have been compatible to the original MS include
52  * files and allowed to rename the BOOL from windows.h (windef.h) by just using
53  * #define BOOL WBOOL before #include <windows.h>.
54  *
55  * Recent Cygwin version are unfriendly to us and prevent this.
56  * We now need a two level #define to redirect the BOOL from windows.h to the
57  * Cygwin specific WINBOOL typedef.
58  *
59  * If we do not include schily/standard.h with newer Cygwin, we cannot get
60  * working typedefs for "PBOOL" and "LPBOOL".
61  */
62 #include <schily/standard.h> /* Get our BOOL typedef */
63 
64 #define _NO_BOOL_TYPEDEF /* Avoid 2nd BOOL typedef on Cygwin-1.7.17 */
65 
66 #define WBOOL WINBOOL /* Cygwin-1.7.17 prevents to avoid BOOL */
67 #endif /* defined(__CYGWIN32__) || defined(__CYGWIN__) */
68 
69 
70 #define BOOL WBOOL /* This is the Win BOOL */
71 #define format __ms_format /* Avoid format parameter hides global ... */
72 
73 #ifdef timerclear /* struct timeval has already been declared */
74 #define timeval __ms_timeval
75 #endif
76 
77 #include <windows.h>
78 
79 #undef BOOL /* MS Code uses WBOOL or #define BOOL WBOOL */
80 #undef format /* Return to previous definition */
81 #undef timeval
82 
83 #define _INCL_WINDOWS_H
84 #endif
85 
86 #endif /* HAVE_WINDOWS_H */
87 
88 #endif /* _SCHILY_WINDOWS_H */