1 /* 2 windows.h - main header file for the Win32 API 3 4 Written by Anders Norlander <anorland@hem2.passagen.se> 5 6 This file is part of a free library for the Win32 API. 7 8 This library is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 12 */ 13 #ifndef _WINDOWS_H 14 #define _WINDOWS_H 15 16 #ifdef __GNUC__ 17 #include <msvctarget.h> 18 #endif 19 20 #if !defined(_X86_) && !defined(_AMD64_) && !defined(_IA64_) && !defined(_ALPHA_) && \ 21 !defined(_ARM_) && !defined(_ARM64_) && !defined(_PPC_) && !defined(_MIPS_) && !defined(_68K_) && !defined(_SH_) 22 23 #if defined(_M_AMD64) || defined(__x86_64__) 24 #define _AMD64_ 25 #elif defined(_M_IX86) || defined(__i386__) 26 #define _X86_ 27 #elif defined(_M_IA64) || defined(__ia64__) 28 #define _IA64_ 29 #elif defined(_M_ALPHA) || defined(__alpha__) 30 #define _ALPHA_ 31 #elif defined(_M_ARM) || defined(__arm__) 32 #define _ARM_ 33 #elif defined(_M_ARM64) || defined(__arm64__) || defined(__aarch64__) 34 #define _ARM64_ 35 #elif defined(_M_PPC) || defined(__powerpc__) 36 #define _PPC_ 37 #elif defined(_M_MRX000) || defined(__mips__) 38 #define _MIPS_ 39 #elif defined(_M_M68K) || defined(__68k__) 40 #define _68K_ 41 #elif defined(_SHX_) || defined(__sh__) 42 #define _SH_ 43 #endif 44 45 #endif 46 47 #ifdef RC_INVOKED 48 /* winresrc.h includes the necessary headers */ 49 #include <winresrc.h> 50 #else 51 52 #include <excpt.h> 53 #include <stdarg.h> 54 #include <windef.h> 55 #include <winbase.h> 56 #include <wingdi.h> 57 #include <winuser.h> 58 #include <wincon.h> 59 #include <winnls.h> 60 #include <winver.h> 61 #include <winnetwk.h> 62 #include <winreg.h> 63 #include <winsvc.h> 64 65 #ifndef WIN32_LEAN_AND_MEAN 66 #include <cderr.h> 67 #include <dde.h> 68 #include <ddeml.h> 69 #include <dlgs.h> 70 #include <imm.h> 71 #include <lzexpand.h> 72 #include <mmsystem.h> 73 #include <nb30.h> 74 #include <rpc.h> 75 #include <shellapi.h> 76 #include <winperf.h> 77 #ifndef NOCRYPT 78 #include <wincrypt.h> 79 #include <winefs.h> 80 #include <winscard.h> 81 #endif 82 #ifndef NOGDI 83 #include <commdlg.h> 84 #include <winspool.h> 85 #endif 86 #if defined(Win32_Winsock) 87 #warning "The Win32_Winsock macro name is deprecated.\ 88 Please use __USE_W32_SOCKETS instead" 89 #ifndef __USE_W32_SOCKETS 90 #define __USE_W32_SOCKETS 91 #endif 92 #endif 93 #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN)) 94 #if (_WIN32_WINNT >= 0x0400) 95 #include <winsock2.h> 96 /* 97 * MS likes to include mswsock.h here as well, 98 * but that can cause undefined symbols if 99 * winsock2.h is included before windows.h 100 */ 101 #else 102 #include <winsock.h> 103 #endif /* (_WIN32_WINNT >= 0x0400) */ 104 #endif 105 #ifndef NOGDI 106 #if !defined (__OBJC__) 107 #if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined (__WATCOMC__) || defined(_MSC_VER) 108 #include <ole2.h> 109 #endif 110 #endif /* __OBJC__ */ 111 #endif 112 113 #endif /* WIN32_LEAN_AND_MEAN */ 114 115 #endif /* RC_INVOKED */ 116 117 #ifdef __OBJC__ 118 /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int), 119 but undefining it causes trouble as well if a file is included after 120 windows.h 121 */ 122 #undef BOOL 123 #endif 124 125 #endif 126