Home | History | Annotate | Download | only in X11
      1 /*
      2 
      3 Copyright 1996, 1998  The Open Group
      4 
      5 Permission to use, copy, modify, distribute, and sell this software and its
      6 documentation for any purpose is hereby granted without fee, provided that
      7 the above copyright notice appear in all copies and that both that
      8 copyright notice and this permission notice appear in supporting
      9 documentation.
     10 
     11 The above copyright notice and this permission notice shall be included
     12 in all copies or substantial portions of the Software.
     13 
     14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     15 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
     16 ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
     17 SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL-
     18 ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
     20 IN THE SOFTWARE.
     21 
     22 Except as contained in this notice, the name of The Open Group shall
     23 not be used in advertising or otherwise to promote the sale, use or
     24 other dealings in this Software without prior written authorization from
     25 The Open Group.
     26 
     27 */
     28 
     29 /*
     30  * This header file has the sole purpose of allowing the inclusion of
     31  * windows.h without getting any name conflicts with X headers code, by
     32  * renaming the conflicting definitions from windows.h
     33  *
     34  * Some (non-Microsoft) versions of the Windows API headers actually avoid
     35  * making the conflicting definitions if XFree86Server is defined, so we
     36  * need to remember if that was defined and undefine it during including
     37  * windows.h (so the conflicting definitions get wrapped correctly), and
     38  * then redefine it afterwards...
     39  *
     40  * There doesn't seem to be a good way to wrap the min/max macros from
     41  * windows.h, so we simply avoid defining them completely, allowing any
     42  * pre-existing definition to stand.
     43  *
     44  */
     45 
     46 #undef _XFree86Server
     47 #ifdef XFree86Server
     48 # define _XFree86Server
     49 # undef XFree86Server
     50 #endif
     51 
     52 #define NOMINMAX
     53 #define BOOL wBOOL
     54 #define INT32 wINT32
     55 #undef Status
     56 #define Status wStatus
     57 #define ATOM wATOM
     58 #define BYTE wBYTE
     59 #define FreeResource wFreeResource
     60 #include <windows.h>
     61 #undef NOMINMAX
     62 #undef Status
     63 #define Status int
     64 #undef BYTE
     65 #undef BOOL
     66 #undef INT32
     67 #undef ATOM
     68 #undef FreeResource
     69 #undef CreateWindowA
     70 
     71 #ifdef RESOURCE_H
     72 # undef RT_FONT
     73 # undef RT_CURSOR
     74 # define RT_FONT         ((RESTYPE)4)
     75 # define RT_CURSOR       ((RESTYPE)5)
     76 #endif
     77 
     78 #ifndef __CYGWIN__
     79 #define sleep(x) Sleep((x) * 1000)
     80 #endif
     81 
     82 #if defined(WIN32) && (!defined(PATH_MAX) || PATH_MAX < 1024)
     83 # undef PATH_MAX
     84 # define PATH_MAX 1024
     85 #endif
     86 
     87 #ifdef _XFree86Server
     88 # define XFree86Server
     89 # undef _XFree86Server
     90 #endif
     91 
     92