mxw_wotlk_azerothcore/deps/acelite/ace/config-win32-common.h

694 lines
23 KiB
C++

/* -*- C++ -*- */
#ifndef ACE_CONFIG_WIN32_COMMON_H
#define ACE_CONFIG_WIN32_COMMON_H
#include /**/ "ace/pre.h"
#ifndef ACE_CONFIG_WIN32_H
#error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
// Windows Mobile (CE) stuff is primarily further restrictions to what's
// in the rest of this file. Also, it defined ACE_HAS_WINCE, which is used
// in this file.
#if defined (_WIN32_WCE)
# include "ace/config-WinCE.h"
#endif /* _WIN32_WCE */
#if defined(__MINGW32__)
// When using the --std=c++0x option with MinGW the compiler omits defining
// the following required macros (at least with the GCC 4.6.2 version)
// So we define them ourselves here.
# if !defined(WIN32)
# define _stdcall __attribute__((__stdcall__))
# define _cdecl __attribute__((__cdecl__))
# define _thiscall __attribute__((__thiscall__))
# define _fastcall __attribute__((__fastcall__))
# define WIN32 1
# define WINNT 1
# define i386 1
# endif
#endif
// Complain if WIN32 is not already defined.
#if !defined (WIN32) && !defined (ACE_HAS_WINCE)
# error Please define WIN32 in your project settings.
#endif
#define ACE_WIN32
#if defined (_WIN64) || defined (WIN64)
# define ACE_WIN64
// MPC template adds _AMD64_ but user projects not generated using MPC
// may want to use _AMD64_ as well. Ensure it's there in all cases.
# ifndef _AMD64_
# define _AMD64_
# endif
// Use 64-bit file offsets by default in the WIN64 case, similar to
// what 64-bit UNIX systems do.
//
// Note that _FILE_OFFSET_BITS is not recognized by Windows. It is,
// however, recognized by ACE.
# ifndef _FILE_OFFSET_BITS
# define _FILE_OFFSET_BITS 64
# endif /* !_FILE_OFFSET_BITS */
#endif /* _WIN64 || WIN64 */
#if !defined (_WIN32_WINNT)
# define _WIN32_WINNT 0x0501 // pretend it's at least Windows XP or Win2003
#endif
// If the invoking procedure turned off debugging by setting NDEBUG, then
// also set ACE_NDEBUG, unless the user has already set it.
#if defined (NDEBUG)
# if !defined (ACE_NDEBUG)
# define ACE_NDEBUG
# endif /* ACE_NDEBUG */
#endif /* NDEBUG */
// Define ACE_HAS_MFC to 1, if you want ACE to use CWinThread. This should
// be defined, if your application uses MFC.
// Setting applies to : building ACE
// Runtime restrictions: MFC DLLs must be installed
// Additonal notes : If both ACE_HAS_MFC and ACE_MT_SAFE are
// defined, the MFC DLL (not the static lib)
// will be used from ACE.
#if !defined (ACE_HAS_MFC)
# define ACE_HAS_MFC 0
#endif
// ACE_USES_STATIC_MFC always implies ACE_HAS_MFC
#if defined (ACE_USES_STATIC_MFC)
# if defined (ACE_HAS_MFC)
# undef ACE_HAS_MFC
# endif
# define ACE_HAS_MFC 1
#endif /* ACE_USES_STATIC_MFC */
// Define ACE_HAS_STRICT to 1 in your config.h file if you want to use
// STRICT type checking. It is disabled by default because it will
// break existing application code. However, if ACE_HAS_MFC is turned on,
// ACE_HAS_STRICT is required by MFC.
// Setting applies to : building ACE, linking with ACE
// Runtime restrictions: -
#if !defined (ACE_HAS_STRICT)
# define ACE_HAS_STRICT 0
#endif
// MFC itself defines STRICT.
#if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
# undef ACE_HAS_STRICT
# define ACE_HAS_STRICT 1
#endif
// Turn off the following define if you want to disable threading.
// Compile using multi-thread libraries.
// Setting applies to : building ACE, linking with ACE
// Runtime restrictions: multithreaded runtime DLL must be installed
#if !defined (ACE_MT_SAFE)
# define ACE_MT_SAFE 1
#endif
// On winCE these classes do not exist. If they are
// introduced in the future, no changes need to be made
#if defined (ABOVE_NORMAL_PRIORITY_CLASS) && \
defined (BELOW_NORMAL_PRIORITY_CLASS) && \
defined (HIGH_PRIORITY_CLASS) && \
defined (IDLE_PRIORITY_CLASS) && \
defined (NORMAL_PRIORITY_CLASS) && \
defined (REALTIME_PRIORITY_CLASS)
#define ACE_HAS_WIN32_PRIORITY_CLASS
#endif
// Build ACE services as DLLs. If you write a library and want it to
// use ACE_Svc_Export, this will cause those macros to build dlls. If
// you want your ACE service to be a static library, comment out this
// line. As far as I know, the only reason to have a library be an
// ACE "service" is to leverage the ACE_Svc_Export macros. It's just
// as easy to define your own export macros.
// #if !defined (ACE_SVC_HAS_DLL)
// # define ACE_SVC_HAS_DLL 1
// #endif
// Define the special export macros needed to export symbols outside a dll
#if !defined (ACE_HAS_CUSTOM_EXPORT_MACROS) || (ACE_HAS_CUSTOM_EXPORT_MACROS == 0)
#if defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
#undef ACE_HAS_CUSTOM_EXPORT_MACROS
#endif
#define ACE_HAS_CUSTOM_EXPORT_MACROS 1
#define ACE_Proper_Export_Flag __declspec (dllexport)
#define ACE_Proper_Import_Flag __declspec (dllimport)
#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
#define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
#endif /* !__BORLANDC__ */
// Define ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not*
// want to compile with WinSock 2.0.
// Setting applies to : building ACE
// Runtime restrictions: winsock2 must be installed.
// #define ACE_HAS_WINSOCK2 0
// By default, we use non-static object manager on Win32. That is,
// the object manager is allocated in main's stack memory. If this
// does not suit your need, i.e., if your programs depend on the use
// of static object manager, you neet to disable the behavior by adding
//
// #undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
//
// in the config.h after including config-win32.h
//
// MFC users: the main function is defined within a MFC library and
// therefore, ACE won't be able to meddle with main function and
// instantiate the non-static object manager for you. To solve the
// problem, you'll need to instantiate the ACE_Object_Manager by
// either:
//
// 1. Using static object manager (as described above), however, using
// the non-static object manager is prefered, therefore,
// 2. Instantiate the non-static object manager yourself by either 1)
// call ACE::init () at the beginning and ACE::fini () at the end,
// _or_ 2) instantiate the ACE_Object_Manager in your CWinApp
// derived class.
//
// Optionally, you can #define
// ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER in your
// ace/config.h and always take care of the business by yourself.
// ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER has no effect when
// using static object managers.
#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
#define ACE_HAS_GPERF
// ---------------- platform features or lack of them -------------
// By default WIN32 has FD_SETSIZE of 64, which places the limit
// between 61 and 64 on the number of clients a server using the
// Select Reactor can support at the same time (i.e., 64 - standard in,
// out, error). Here we raise the limit to 1024. Adjust the definition
// below if you need to raise or lower it.
#if !defined (FD_SETSIZE)
#define FD_SETSIZE 1024
#endif /* FD_SETSIZE */
// Windows doesn't like 65536 ;-) If 65536 is specified, it is
// silently ignored by the OS, i.e., setsockopt does not fail, and you
// get stuck with the default size of 8k.
#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
// It seems like Win32 does not have a limit on the number of buffers
// that can be transferred by the scatter/gather type of I/O
// functions, e.g., WSASend and WSARecv. We are setting this to be 64
// for now. The typically use case is to create an I/O vector array
// of size ACE_IOV_MAX on the stack and then filled in. Note that we
// probably don't want too big a value for ACE_IOV_MAX since it may
// mostly go to waste or the size of the activation record may become
// excessively large.
#if !defined (ACE_IOV_MAX)
# define ACE_IOV_MAX 64
#endif /* ACE_IOV_MAX */
#if !defined (ACE_HAS_WINCE)
// Platform supports pread() and pwrite()
# define ACE_HAS_WTOF
#endif /* ! ACE_HAS_WINCE */
#define ACE_HAS_P_READ_WRITE
#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_DIRECT_H
# define ACE_HAS_PROCESS_H
# define ACE_HAS_IO_H
#endif /* ! ACE_HAS_WINCE */
#if !defined (__MINGW32__)
# define ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
#endif /* __MINGW32__ */
#define ACE_DEFAULT_THREAD_PRIORITY 0
#define ACE_HAS_DIRENT
#define ACE_HAS_MSG
#define ACE_HAS_RECURSIVE_MUTEXES
#define ACE_HAS_SOCKADDR_MSG_NAME
#define ACE_HAS_THREAD_SAFE_ACCEPT
/* LACKS dir-related facilities */
#define ACE_LACKS_READDIR_R
#define ACE_LACKS_REWINDDIR
#define ACE_LACKS_SEEKDIR
#define ACE_LACKS_TELLDIR
#define ACE_LACKS_CLOCKID_T
#define ACE_LACKS_CLOCK_REALTIME
#define ACE_LACKS_CLOCK_MONOTONIC
/* LACKS gid/pid/sid/uid facilities */
#define ACE_LACKS_GETPGID
#define ACE_LACKS_GETPPID
#define ACE_LACKS_SETPGID
#define ACE_LACKS_SETREGID
#define ACE_LACKS_SETREUID
#define ACE_LACKS_SETSID
#define ACE_LACKS_SETEGID
#define ACE_LACKS_SETUID
#define ACE_LACKS_SETEUID
#define ACE_LACKS_GETGID
#define ACE_LACKS_GETEGID
#define ACE_LACKS_GETUID
#define ACE_LACKS_GETEUID
#define ACE_LACKS_SETGID
/* LACKS miscellaneous */
#define ACE_LACKS_ALARM
#define ACE_LACKS_ARPA_INET_H
#define ACE_LACKS_DUP2
#define ACE_LACKS_FORK
#define ACE_LACKS_GETHOSTENT
#define ACE_LACKS_GETOPT
#define ACE_LACKS_GETIPNODEBYNAME_IPV6
#define ACE_LACKS_KILL
#define ACE_LACKS_INET_ATON
#define ACE_LACKS_MADVISE
#define ACE_LACKS_MKFIFO
#define ACE_LACKS_MODE_MASKS
#define ACE_LACKS_PTHREAD_H
#define ACE_LACKS_PWD_FUNCTIONS
#define ACE_LACKS_RAND_R
#define ACE_LACKS_READLINK
#define ACE_LACKS_RLIMIT
#define ACE_LACKS_SBRK
#define ACE_LACKS_SCHED_H
#define ACE_LACKS_SEMBUF_T
#define ACE_LACKS_SIGACTION
#define ACE_LACKS_SIGSET
#define ACE_LACKS_SIGSET_T
#define ACE_LACKS_SOCKETPAIR
#define ACE_LACKS_SUSECONDS_T
#define ACE_LACKS_USECONDS_T
#define ACE_LACKS_SYS_PARAM_H
#define ACE_LACKS_SYS_SYSCTL_H
#define ACE_LACKS_SYSCONF
#define ACE_LACKS_SYSV_SHMEM
#define ACE_LACKS_UNISTD_H
#define ACE_LACKS_UNIX_SIGNALS
#define ACE_LACKS_UNIX_SYSLOG
#define ACE_LACKS_UTSNAME_T
#define ACE_LACKS_UNAME
#define ACE_LACKS_WAIT
#define ACE_LACKS_IOVEC
#define ACE_LACKS_LOG2
#define ACE_LACKS_CADDR_T
#if !defined(__MINGW32__) && !defined (__BORLANDC__)
# define ACE_LACKS_MODE_T
#endif
#if !defined(__MINGW32__)
# define ACE_LACKS_PID_T
#endif
#if !defined (__BORLANDC__)
# define ACE_LACKS_NLINK_T
# define ACE_LACKS_UID_T
# define ACE_LACKS_GID_T
#endif
#define ACE_LACKS_SETENV
#define ACE_LACKS_UNSETENV
#define ACE_HAS_PDH_H
#define ACE_HAS_PDHMSG_H
#define ACE_HAS_VFWPRINTF
#define ACE_MKDIR_LACKS_MODE
#define ACE_SIZEOF_LONG_LONG 8
#if !defined (__MINGW32__)
#define ACE_INT64_TYPE signed __int64
#define ACE_UINT64_TYPE unsigned __int64
#endif
#if defined (__MINGW32__)
#define ACE_INT64_TYPE signed long long
#define ACE_UINT64_TYPE unsigned long long
#endif
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
// Win32 has wide-char support. Use of the compiler-defined wchar_t type
// is controlled in compiler configs since it's a compiler switch.
#define ACE_HAS_WCHAR
#define ACE_HAS_WTOI
#define ACE_HAS_WTOL
// Platform supports the rusage struct.
#define ACE_HAS_GETRUSAGE
// Platform provides ACE_TLI function prototypes.
// For Win32, this is not really true, but saves a lot of hassle!
#define ACE_HAS_TLI_PROTOTYPES
// I'm pretty sure NT lacks these
#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
// Windows NT needs readv() and writev()
#define ACE_LACKS_WRITEV
#define ACE_LACKS_READV
#if !defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE)
# define ACE_LACKS_COND_T
#endif
#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_KEY_T
// No system support for replacing any previous mappings.
#define ACE_LACKS_AUTO_MMAP_REPLACEMENT
// ACE_HAS_PENTIUM is used to optimize some CDR operations; it's used for
// some other time-related things using g++, but not for VC. Current VC
// compilers set _M_IX86 > 400 by default so if you're not using a Pentium
// class CPU, set the project code generation options appropriately.
#if !defined(ACE_HAS_PENTIUM) && (_M_IX86 > 400)
# define ACE_HAS_PENTIUM
#endif
#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
// Platform supports threads.
# define ACE_HAS_THREADS
// Platform supports Windows32 threads.
# define ACE_HAS_WTHREADS
// Compiler/platform has thread-specific storage
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
// Win32 doesn't have fcntl
#define ACE_LACKS_FCNTL
#endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
#if !defined(_DEBUG)
// If we are making a release, and the user has not specified
// inline directives, we will default to inline
# if ! defined (__ACE_INLINE__)
# define __ACE_INLINE__ 1
# endif /* __ACE_INLINE__ */
#endif
// If __ACE_INLINE__ is defined to be 0, we will undefine it
#if defined (__ACE_INLINE__) && (__ACE_INLINE__ == 0)
# undef __ACE_INLINE__
#endif /* __ACE_INLINE__ */
// We are build ACE and want to use MFC (multithreaded)
#if defined(ACE_HAS_MFC) && (ACE_HAS_MFC != 0) && defined (_MT)
# if (ACE_HAS_DLL != 0) && defined(ACE_BUILD_DLL) && !defined (_WINDLL)
// force multithreaded MFC DLL
# define _WINDLL
# endif /* _AFXDLL */
# if !defined (_AFXDLL) && !defined (ACE_USES_STATIC_MFC)
# define _AFXDLL
# endif /* _AFXDLL */
#endif
// <windows.h> and MFC's <afxwin.h> are mutually
// incompatible. <windows.h> is brain-dead about MFC; it doesn't check
// to see whether MFC stuff is anticipated or already in progress
// before doing its thing. ACE needs (practically always) <winsock.h>,
// and winsock in turn needs support either from windows.h or from
// afxwin.h. One or the other, not both.
//
// The MSVC++ V4.0 environment defines preprocessor macros that
// indicate the programmer has chosen something from the
// Build-->Settings-->General-->MFC combo-box. <afxwin.h> defines a
// macro itself to protect against double inclusion. We'll take
// advantage of all this to select the proper support for winsock. -
// trl 26-July-1996
// This is necessary since MFC users apparently can't #include
// <windows.h> directly.
#if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
# include /**/ <afxwin.h> /* He is doing MFC */
// Windows.h will be included via afxwin.h->afx.h->afx_ver_.h->afxv_w32.h
// #define _INC_WINDOWS // Prevent winsock.h from including windows.h
#elif defined (ACE_HAS_WINCE)
# include /**/ <windows.h>
#endif
#if !defined (_INC_WINDOWS) /* Already include windows.h ? */
// Must define strict before including windows.h !
# if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0) && !defined (STRICT)
# define STRICT 1
# endif /* ACE_HAS_STRICT */
# if !defined (WIN32_LEAN_AND_MEAN) && !defined (ACE_NO_WIN32_LEAN_AND_MEAN)
# define WIN32_LEAN_AND_MEAN
# endif /* WIN32_LEAN_AND_MEAN */
#endif /* !defined (_INC_WINDOWS) */
// Always use WS2 when available
#if !defined(ACE_HAS_WINSOCK2)
# define ACE_HAS_WINSOCK2 1
#endif /* !defined(ACE_HAS_WINSOCK2) */
// Not use WS1 by default
#if !defined(ACE_HAS_WINSOCK1)
# define ACE_HAS_WINSOCK1 0
#endif /* !defined(ACE_HAS_WINSOCK1) */
#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
# define ACE_HAS_ICMP_SUPPORT 1
# if !defined (_WINSOCK2API_)
// will also include windows.h, if not present
# include /**/ <winsock2.h>
// WinCE 4 doesn't define the Exxx values without the WSA prefix, so do that
// here. This is all lifted from the #if 0'd out part of winsock2.h.
# if defined (_WIN32_WCE) && (_WIN32_WCE < 0x600)
# define EWOULDBLOCK WSAEWOULDBLOCK
# define EINPROGRESS WSAEINPROGRESS
# define EALREADY WSAEALREADY
# define ENOTSOCK WSAENOTSOCK
# define EDESTADDRREQ WSAEDESTADDRREQ
# define EMSGSIZE WSAEMSGSIZE
# define EPROTOTYPE WSAEPROTOTYPE
# define ENOPROTOOPT WSAENOPROTOOPT
# define EPROTONOSUPPORT WSAEPROTONOSUPPORT
# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
# define EOPNOTSUPP WSAEOPNOTSUPP
# define EPFNOSUPPORT WSAEPFNOSUPPORT
# define EAFNOSUPPORT WSAEAFNOSUPPORT
# define EADDRINUSE WSAEADDRINUSE
# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
# define ENETDOWN WSAENETDOWN
# define ENETUNREACH WSAENETUNREACH
# define ENETRESET WSAENETRESET
# define ECONNABORTED WSAECONNABORTED
# define ECONNRESET WSAECONNRESET
# define ENOBUFS WSAENOBUFS
# define EISCONN WSAEISCONN
# define ENOTCONN WSAENOTCONN
# define ESHUTDOWN WSAESHUTDOWN
# define ETOOMANYREFS WSAETOOMANYREFS
# define ETIMEDOUT WSAETIMEDOUT
# define ECONNREFUSED WSAECONNREFUSED
# define ELOOP WSAELOOP
# define ENAMETOOLONG WSAENAMETOOLONG
# define EHOSTDOWN WSAEHOSTDOWN
# define EHOSTUNREACH WSAEHOSTUNREACH
# define ENOTEMPTY WSAENOTEMPTY
# define EPROCLIM WSAEPROCLIM
# define EUSERS WSAEUSERS
# define EDQUOT WSAEDQUOT
# define ESTALE WSAESTALE
# define EREMOTE WSAEREMOTE
# endif /* (_WIN32_WCE) && (_WIN32_WCE < 0x600) */
# endif /* _WINSOCK2API */
# if defined (ACE_HAS_FORE_ATM_WS2)
# include /**/ <ws2atm.h>
# endif /*ACE_HAS_FORE_ATM_WS2 */
// CE doesn't have Microsoft Winsock 2 extensions
# if !defined _MSWSOCK_ && !defined (ACE_HAS_WINCE)
# include /**/ <mswsock.h>
# endif /* _MSWSOCK_ */
# if defined (_MSC_VER)
# if defined (ACE_HAS_WINCE)
# pragma comment(lib, "ws2.lib")
# else
# pragma comment(lib, "ws2_32.lib")
# pragma comment(lib, "mswsock.lib")
//# if defined (ACE_HAS_IPV6)
# pragma comment(lib, "iphlpapi.lib")
//# endif
# endif /* ACE_HAS_WINCE */
# endif /* _MSC_VER */
# define ACE_WSOCK_VERSION 2, 0
#else
# if !defined (_WINSOCKAPI_)
// will also include windows.h, if not present
# include /**/ <winsock.h>
# endif /* _WINSOCKAPI */
// PharLap ETS has its own winsock lib, so don't grab the one
// supplied with the OS.
# if defined (_MSC_VER) && !defined (_WIN32_WCE) && !defined (ACE_HAS_PHARLAP)
# pragma comment(lib, "wsock32.lib")
# endif /* _MSC_VER */
// We can't use recvmsg and sendmsg unless WinSock 2 is available
# define ACE_LACKS_RECVMSG
# define ACE_LACKS_SENDMSG
// Version 1.1 of WinSock
# define ACE_WSOCK_VERSION 1, 1
#endif /* ACE_HAS_WINSOCK2 */
// Platform supports IP multicast on Winsock 2
#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
# define ACE_HAS_IP_MULTICAST
#endif /* ACE_HAS_WINSOCK2 */
#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_INTERLOCKED_EXCHANGEADD
#endif
#define ACE_HAS_WIN32_TRYLOCK
#if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
# define ACE_HAS_SIGNAL_OBJECT_AND_WAIT
// If CancelIO is undefined get the updated sp2-sdk from MS
# define ACE_HAS_CANCEL_IO
# define ACE_HAS_WIN32_OVERLAPPED_IO
# define ACE_HAS_WIN32_NAMED_PIPES
#endif /* !defined (ACE_HAS_WINCE) && !ACE_HAS_PHARLAP */
#if !defined (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION)
# define ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION EXCEPTION_CONTINUE_SEARCH
#endif /* ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION */
// ACE_HAS_QOS is defined in the qos.mpb base project.
// If qos=1 in default.features, then this macro will be defined.
#if defined (ACE_HAS_QOS) && !defined (ACE_HAS_WINSOCK2_GQOS)
# if defined (WINSOCK_VERSION)
# define ACE_HAS_WINSOCK2_GQOS 1
# endif /* WINSOCK_VERSION */
#endif /* ACE_HAS_WINSOCK2_GQOS */
// These are the defaults and can be overridden by a user's config.h
#if !defined (ACE_DEFAULT_FILE_PERMS)
# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE | \
FILE_SHARE_DELETE)
// This alternate used to be used for pre-NT4 systems; may still be needed
// by knock-offs such as CE and Pharlap.
//# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
#endif /* !defined (ACE_DEFAULT_FILE_PERMS) */
#define ACE_SIZEOF_WCHAR 2
#define ACE_HAS_MUTEX_TIMEOUTS
#define ACE_LACKS_STRUCT_DIR
#define ACE_LACKS_OPENDIR
#define ACE_LACKS_CLOSEDIR
#define ACE_LACKS_READDIR
#define ACE_LACKS_ALPHASORT
#define ACE_LACKS_MKSTEMP
#define ACE_LACKS_LSTAT
// Looks like Win32 has a non-const swab function, and it takes the
// non-standard int len (rather than ssize_t).
#define ACE_HAS_NONCONST_SWAB
#define ACE_HAS_INT_SWAB
// gethostbyaddr does not handle IPv6-mapped-IPv4 addresses
#define ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED
#if defined (ACE_WIN64)
// Data must be aligned on 8-byte boundaries, at a minimum.
# define ACE_MALLOC_ALIGN 8
// Void pointers are 8 bytes
# define ACE_SIZEOF_VOID_P 8
#endif /* ACE_WIN64 */
#if !defined (ACE_DISABLES_THREAD_LIBRARY_CALLS)
# define ACE_DISABLES_THREAD_LIBRARY_CALLS 0
#endif /* ACE_DISABLES_THREAD_LIBRARY_CALLS */
#if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
# define ACE_HAS_LOG_MSG_NT_EVENT_LOG
#endif /* !ACE_HAS_WINCE && !ACE_HAS_PHARLAP */
#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_LLSEEK
#endif /* !ACE_HAS_WINCE */
// Needed for obtaining the MAC address
// I dont believe this will work under CE, notice the
// check for ACE_HAS_WINCE.
# if !defined (ACE_HAS_WINCE)
# include <nb30.h>
# if defined (_MSC_VER)
# pragma comment(lib, "netapi32.lib") // needed for obtaing MACaddress
# endif
# endif /* !ACE_HAS_WINCE */
#if !defined (WINVER)
# define WINVER 0x0400 // pretend it's at least WinNT 4.0
#endif
///////////////////////////////////////
// windows version-specific definitions
// see: http://msdn2.microsoft.com/en-us/library/aa383745.aspx
//
// For TSS information
// see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/thread_local_storage.asp
#if (WINVER>=0x0600)
// Windows Server 2008 definitions go here
// Windows Vista defintions go here
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 1088
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#elif (WINVER>=0x0502)
// Windows Server 2003 SP1 definitions go here
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 1088
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#elif (WINVER>=0x0501)
// Windows XP definitions go here
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 1088
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#elif (WINVER>=0x0500)
// Windows 2000 definitions go here
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 1088
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#elif (WINVER>=0x0410)
// Windows 98 definitions go here
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 80
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#else
// antique windows
# if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS 64
# endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
#endif
#if !defined (ACE_DEFAULT_BACKLOG)
# define ACE_DEFAULT_BACKLOG SOMAXCONN
#endif /* ACE_DEFAULT_BACKLOG */
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_COMMON_H */