1/*
2
3Copyright 1996, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included
12in all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
17SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL-
18ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall
23not be used in advertising or otherwise to promote the sale, use or
24other dealings in this Software without prior written authorization from
25The Open Group.
26
27*/
28
29/*
30 * This header file has for sole purpose to allow to include winsock.h
31 * without getting any name conflicts with our code.
32 * Conflicts come from the fact that including winsock.h actually pulls
33 * in the whole Windows API...
34 */
35
36#undef _XFree86Server
37#ifdef XFree86Server
38# define _XFree86Server
39# undef XFree86Server
40#endif
41
42/*
43 * mingw-w64 headers define BOOL as a typedef, protecting against macros
44 * mingw.org headers define BOOL in terms of WINBOOL
45 * ... so try to come up with something which works with both :-)
46 */
47#define _NO_BOOL_TYPEDEF
48#define BOOL WINBOOL
49#define INT32 wINT32
50#undef Status
51#define Status wStatus
52#define ATOM wATOM
53#define BYTE wBYTE
54#define FreeResource wFreeResource
55#pragma push_macro ("ControlMask")
56#undef ControlMask
57#include <winsock2.h>
58#undef Status
59#define Status int
60#undef BYTE
61#undef BOOL
62#undef INT32
63#undef ATOM
64#undef FreeResource
65#pragma pop_macro ("ControlMask")
66#undef CreateWindowA
67#undef RT_FONT
68#undef RT_CURSOR
69
70/*
71 * Older version of this header used to name the windows API bool type wBOOL,
72 * rather than more standard name WINBOOL
73 */
74#define wBOOL WINBOOL
75
76#ifdef _XFree86Server
77# define XFree86Server
78# undef _XFree86Server
79#endif
80
81