[7297] Fixed profession spells sorting in trainer spell list at client.
[getmangos.git] / dep / ACE_wrappers / ace / config-win32-common.h
blob837f9ce4d21fe45b9779e370fc84decdbe6afdbb
1 /* -*- C++ -*- */
2 // $Id: config-win32-common.h 82316 2008-07-15 01:28:39Z johnnyw $
5 #ifndef ACE_CONFIG_WIN32_COMMON_H
6 #define ACE_CONFIG_WIN32_COMMON_H
7 #include /**/ "ace/pre.h"
9 #ifndef ACE_CONFIG_WIN32_H
10 #error Use config-win32.h in config.h instead of this header
11 #endif /* ACE_CONFIG_WIN32_H */
14 // Windows Mobile (CE) stuff is primarily further restrictions to what's
15 // in the rest of this file. Also, it defined ACE_HAS_WINCE, which is used
16 // in this file.
17 #if defined (_WIN32_WCE)
18 # include "ace/config-WinCE.h"
19 #endif /* _WIN32_WCE */
21 // Complain if WIN32 is not already defined.
22 #if !defined (WIN32) && !defined (ACE_HAS_WINCE)
23 # error Please define WIN32 in your project settings.
24 #endif
26 #define ACE_WIN32
27 #if defined (_WIN64) || defined (WIN64)
28 # define ACE_WIN64
30 // Use 64-bit file offsets by default in the WIN64 case, similar to
31 // what 64-bit UNIX systems do.
33 // Note that _FILE_OFFSET_BITS is not recognized by Windows. It is,
34 // however, recognized by ACE.
35 # ifndef _FILE_OFFSET_BITS
36 # define _FILE_OFFSET_BITS 64
37 # endif /* !_FILE_OFFSET_BITS */
38 #endif /* _WIN64 || WIN64 */
40 #if !defined (_WIN32_WINNT)
41 # define _WIN32_WINNT 0x0501 // pretend it's at least Windows XP or Win2003
42 #endif
44 // If the invoking procedure turned off debugging by setting NDEBUG, then
45 // also set ACE_NDEBUG, unless the user has already set it.
46 #if defined (NDEBUG)
47 # if !defined (ACE_NDEBUG)
48 # define ACE_NDEBUG
49 # endif /* ACE_NDEBUG */
50 #endif /* NDEBUG */
52 // Define ACE_HAS_MFC to 1, if you want ACE to use CWinThread. This should
53 // be defined, if your application uses MFC.
54 // Setting applies to : building ACE
55 // Runtime restrictions: MFC DLLs must be installed
56 // Additonal notes : If both ACE_HAS_MFC and ACE_MT_SAFE are
57 // defined, the MFC DLL (not the static lib)
58 // will be used from ACE.
59 #if !defined (ACE_HAS_MFC)
60 # define ACE_HAS_MFC 0
61 #endif
63 // ACE_USES_STATIC_MFC always implies ACE_HAS_MFC
64 #if defined (ACE_USES_STATIC_MFC)
65 # if defined (ACE_HAS_MFC)
66 # undef ACE_HAS_MFC
67 # endif
68 # define ACE_HAS_MFC 1
69 #endif /* ACE_USES_STATIC_MFC */
71 // Define ACE_HAS_STRICT to 1 in your config.h file if you want to use
72 // STRICT type checking. It is disabled by default because it will
73 // break existing application code. However, if ACE_HAS_MFC is turned on,
74 // ACE_HAS_STRICT is required by MFC.
75 // Setting applies to : building ACE, linking with ACE
76 // Runtime restrictions: -
77 #if !defined (ACE_HAS_STRICT)
78 # define ACE_HAS_STRICT 0
79 #endif
81 // MFC itself defines STRICT.
82 #if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
83 # undef ACE_HAS_STRICT
84 # define ACE_HAS_STRICT 1
85 #endif
87 // Turn off the following define if you want to disable threading.
88 // Compile using multi-thread libraries.
89 // Setting applies to : building ACE, linking with ACE
90 // Runtime restrictions: multithreaded runtime DLL must be installed
91 #if !defined (ACE_MT_SAFE)
92 # define ACE_MT_SAFE 1
93 #endif
95 // Build ACE services as DLLs. If you write a library and want it to
96 // use ACE_Svc_Export, this will cause those macros to build dlls. If
97 // you want your ACE service to be a static library, comment out this
98 // line. As far as I know, the only reason to have a library be an
99 // ACE "service" is to leverage the ACE_Svc_Export macros. It's just
100 // as easy to define your own export macros.
101 // #if !defined (ACE_SVC_HAS_DLL)
102 // # define ACE_SVC_HAS_DLL 1
103 // #endif
105 // Define the special export macros needed to export symbols outside a dll
106 #if !defined(__BORLANDC__)
107 #define ACE_HAS_CUSTOM_EXPORT_MACROS 1
108 #define ACE_Proper_Export_Flag __declspec (dllexport)
109 #define ACE_Proper_Import_Flag __declspec (dllimport)
110 #define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
111 #define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
112 #define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
113 #define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
114 #endif /* !__BORLANDC__ */
116 // Define ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not*
117 // want to compile with WinSock 2.0.
118 // Setting applies to : building ACE
119 // Runtime restrictions: winsock2 must be installed.
120 // #define ACE_HAS_WINSOCK2 0
122 // By default, we use non-static object manager on Win32. That is,
123 // the object manager is allocated in main's stack memory. If this
124 // does not suit your need, i.e., if your programs depend on the use
125 // of static object manager, you neet to disable the behavior by adding
127 // #undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
129 // in the config.h after including config-win32.h
131 // MFC users: the main function is defined within a MFC library and
132 // therefore, ACE won't be able to meddle with main function and
133 // instantiate the non-static object manager for you. To solve the
134 // problem, you'll need to instantiate the ACE_Object_Manager by
135 // either:
137 // 1. Using static object manager (as described above), however, using
138 // the non-static object manager is prefered, therefore,
139 // 2. Instantiate the non-static object manager yourself by either 1)
140 // call ACE::init () at the beginning and ACE::fini () at the end,
141 // _or_ 2) instantiate the ACE_Object_Manager in your CWinApp
142 // derived class.
144 // Optionally, you can #define
145 // ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER in your
146 // ace/config.h and always take care of the business by yourself.
147 // ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER has no effect when
148 // using static object managers.
149 #if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
150 # define ACE_HAS_NONSTATIC_OBJECT_MANAGER
151 #elif (ACE_HAS_NONSTATIC_OBJECT_MANAGER == 0)
152 # undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
153 #endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
155 #define ACE_HAS_GPERF
157 // By default, don't include RCS Id strings in object code.
158 #if !defined (ACE_USE_RCSID)
159 # define ACE_USE_RCSID 0
160 #endif /* ! ACE_USE_RCSID */
162 // ---------------- platform features or lack of them -------------
164 // By default WIN32 has FD_SETSIZE of 64, which places the limit
165 // between 61 and 64 on the number of clients a server using the
166 // Select Reactor can support at the same time (i.e., 64 - standard in,
167 // out, error). Here we raise the limit to 1024. Adjust the definition
168 // below if you need to raise or lower it.
170 #if !defined (FD_SETSIZE)
171 #define FD_SETSIZE 1024
172 #endif /* FD_SETSIZE */
175 // Windows doesn't like 65536 ;-) If 65536 is specified, it is
176 // silently ignored by the OS, i.e., setsockopt does not fail, and you
177 // get stuck with the default size of 8k.
178 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
180 // It seems like Win32 does not have a limit on the number of buffers
181 // that can be transferred by the scatter/gather type of I/O
182 // functions, e.g., WSASend and WSARecv. We are setting this to be 64
183 // for now. The typically use case is to create an I/O vector array
184 // of size ACE_IOV_MAX on the stack and then filled in. Note that we
185 // probably don't want too big a value for ACE_IOV_MAX since it may
186 // mostly go to waste or the size of the activation record may become
187 // excessively large.
188 #if !defined (ACE_IOV_MAX)
189 # define ACE_IOV_MAX 64
190 #endif /* ACE_IOV_MAX */
192 #if !defined (ACE_HAS_WINCE)
193 // Platform supports pread() and pwrite()
194 # define ACE_HAS_P_READ_WRITE
195 #endif /* ! ACE_HAS_WINCE */
197 #if !defined (__MINGW32__)
198 # define ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
199 #endif /* __MINGW32__ */
201 #define ACE_DEFAULT_THREAD_PRIORITY 0
203 #define ACE_HAS_DIRENT
204 #define ACE_HAS_MSG
205 #define ACE_HAS_RECURSIVE_MUTEXES
206 #define ACE_HAS_SOCKADDR_MSG_NAME
207 #define ACE_HAS_THREAD_SAFE_ACCEPT
209 /* LACKS dir-related facilities */
210 #define ACE_LACKS_READDIR_R
211 #define ACE_LACKS_REWINDDIR
212 #define ACE_LACKS_SEEKDIR
213 #define ACE_LACKS_TELLDIR
215 /* LACKS gid/pid/sid/uid facilities */
216 #define ACE_LACKS_GETPGID
217 #define ACE_LACKS_GETPPID
218 #define ACE_LACKS_SETPGID
219 #define ACE_LACKS_SETREGID
220 #define ACE_LACKS_SETREUID
221 #define ACE_LACKS_SETSID
222 #define ACE_LACKS_SETEGID
223 #define ACE_LACKS_SETUID
224 #define ACE_LACKS_SETEUID
225 #define ACE_LACKS_GETGID
226 #define ACE_LACKS_GETEGID
227 #define ACE_LACKS_GETUID
228 #define ACE_LACKS_GETEUID
229 #define ACE_LACKS_SETGID
231 /* LACKS miscellaneous */
232 #define ACE_LACKS_ALARM
233 #define ACE_LACKS_ARPA_INET_H
234 #define ACE_LACKS_DUP2
235 #define ACE_LACKS_FORK
236 #define ACE_LACKS_GETHOSTENT
237 #define ACE_LACKS_GETOPT
238 #define ACE_LACKS_GETIPNODEBYNAME_IPV6
239 #define ACE_LACKS_KILL
240 #define ACE_LACKS_INET_ATON
241 #define ACE_LACKS_MADVISE
242 #define ACE_LACKS_MKFIFO
243 #define ACE_LACKS_MODE_MASKS
244 #define ACE_LACKS_PTHREAD_H
245 #define ACE_LACKS_PWD_FUNCTIONS
246 #define ACE_LACKS_READLINK
247 #define ACE_LACKS_RLIMIT
248 #define ACE_LACKS_SBRK
249 #define ACE_LACKS_SCHED_H
250 #define ACE_LACKS_SEMBUF_T
251 #define ACE_LACKS_SIGACTION
252 #define ACE_LACKS_SIGSET
253 #define ACE_LACKS_SOCKETPAIR
254 #define ACE_LACKS_SUSECONDS_T
255 #define ACE_LACKS_USECONDS_T
256 #define ACE_LACKS_SYS_PARAM_H
257 #define ACE_LACKS_SYS_SYSCTL_H
258 #define ACE_LACKS_SYSCONF
259 #define ACE_LACKS_SYSV_SHMEM
260 #define ACE_LACKS_UNISTD_H
261 #define ACE_LACKS_UNIX_SIGNALS
262 #define ACE_LACKS_UNIX_SYSLOG
263 #define ACE_LACKS_UTSNAME_T
264 #define ACE_LACKS_UNAME
265 #define ACE_LACKS_WAIT
266 #define ACE_LACKS_IOVEC
267 #define ACE_LACKS_LOG2
269 #define ACE_HAS_PDH_H
270 #define ACE_HAS_PDHMSG_H
272 #define ACE_HAS_VFWPRINTF
274 #define ACE_MKDIR_LACKS_MODE
276 #define ACE_SIZEOF_LONG_LONG 8
277 // Green Hills Native x86 does not support __int64 keyword
278 // Neither does mingw32.
279 #if !defined (ACE_LACKS_LONGLONG_T) && !defined (__MINGW32__)
280 #define ACE_INT64_TYPE signed __int64
281 #define ACE_UINT64_TYPE unsigned __int64
282 #endif /* (ghs) */
284 #if defined (__MINGW32__)
285 #define ACE_INT64_TYPE signed long long
286 #define ACE_UINT64_TYPE unsigned long long
287 #endif
289 // Optimize ACE_Handle_Set for select().
290 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
292 // Win32 has wide-char support. Use of the compiler-defined wchar_t type
293 // is controlled in compiler configs since it's a compiler switch.
294 #define ACE_HAS_WCHAR
296 // Compiler/platform correctly calls init()/fini() for shared
297 // libraries. - applied for DLLs ?
298 //define ACE_HAS_AUTOMATIC_INIT_FINI
300 // Platform supports POSIX O_NONBLOCK semantics.
301 //define ACE_HAS_POSIX_NONBLOCK
303 // Platform contains <poll.h>.
304 //define ACE_HAS_POLL
306 // Platform supports the /proc file system.
307 //define ACE_HAS_PROC_FS
309 // Platform supports the rusage struct.
310 #define ACE_HAS_GETRUSAGE
312 // Compiler/platform supports SVR4 signal typedef.
313 //define ACE_HAS_SVR4_SIGNAL_T
315 // Platform provides <sys/filio.h> header.
316 //define ACE_HAS_SYS_FILIO_H
318 // Compiler/platform supports sys_siglist array.
319 //define ACE_HAS_SYS_SIGLIST
321 // Platform supports ACE_TLI timod STREAMS module.
322 //define ACE_HAS_TIMOD_H
324 // Platform supports ACE_TLI tiuser header.
325 //define ACE_HAS_TIUSER_H
327 // Platform provides ACE_TLI function prototypes.
328 // For Win32, this is not really true, but saves a lot of hassle!
329 #define ACE_HAS_TLI_PROTOTYPES
331 // Platform supports ACE_TLI.
332 //define ACE_HAS_TLI
334 // I'm pretty sure NT lacks these
335 #define ACE_LACKS_UNIX_DOMAIN_SOCKETS
337 // Windows NT needs readv() and writev()
338 #define ACE_LACKS_WRITEV
339 #define ACE_LACKS_READV
341 #define ACE_LACKS_COND_T
342 #define ACE_LACKS_RWLOCK_T
344 #define ACE_LACKS_KEY_T
346 // No system support for replacing any previous mappings.
347 #define ACE_LACKS_AUTO_MMAP_REPLACEMENT
349 // ACE_HAS_PENTIUM is used to optimize some CDR operations; it's used for
350 // some other time-related things using g++, but not for VC. Current VC
351 // compilers set _M_IX86 > 400 by default so if you're not using a Pentium
352 // class CPU, set the project code generation options appropriately.
353 #if !defined(ACE_HAS_PENTIUM) && (_M_IX86 > 400)
354 # define ACE_HAS_PENTIUM
355 #endif
357 #if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
358 // Platform supports threads.
359 # define ACE_HAS_THREADS
361 // Platform supports Windows32 threads.
362 # define ACE_HAS_WTHREADS
364 // Compiler/platform has thread-specific storage
365 # define ACE_HAS_THREAD_SPECIFIC_STORAGE
367 // Win32 doesn't have fcntl
368 #define ACE_LACKS_FCNTL
370 #endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
372 #if !defined(_DEBUG)
373 // If we are making a release, and the user has not specified
374 // inline directives, we will default to inline
375 # if ! defined (__ACE_INLINE__)
376 # define __ACE_INLINE__ 1
377 # endif /* __ACE_INLINE__ */
378 #endif
380 // If __ACE_INLINE__ is defined to be 0, we will undefine it
381 #if defined (__ACE_INLINE__) && (__ACE_INLINE__ == 0)
382 # undef __ACE_INLINE__
383 #endif /* __ACE_INLINE__ */
385 // We are build ACE and want to use MFC (multithreaded)
386 #if defined(ACE_HAS_MFC) && (ACE_HAS_MFC != 0) && defined (_MT)
387 # if (ACE_HAS_DLL != 0) && defined(ACE_BUILD_DLL) && !defined (_WINDLL)
388 // force multithreaded MFC DLL
389 # define _WINDLL
390 # endif /* _AFXDLL */
391 # if !defined (_AFXDLL) && !defined (ACE_USES_STATIC_MFC)
392 # define _AFXDLL
393 # endif /* _AFXDLL */
394 #endif
396 // <windows.h> and MFC's <afxwin.h> are mutually
397 // incompatible. <windows.h> is brain-dead about MFC; it doesn't check
398 // to see whether MFC stuff is anticipated or already in progress
399 // before doing its thing. ACE needs (practically always) <winsock.h>,
400 // and winsock in turn needs support either from windows.h or from
401 // afxwin.h. One or the other, not both.
403 // The MSVC++ V4.0 environment defines preprocessor macros that
404 // indicate the programmer has chosen something from the
405 // Build-->Settings-->General-->MFC combo-box. <afxwin.h> defines a
406 // macro itself to protect against double inclusion. We'll take
407 // advantage of all this to select the proper support for winsock. -
408 // trl 26-July-1996
410 // This is necessary since MFC users apparently can't #include
411 // <windows.h> directly.
412 #if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
413 # include /**/ <afxwin.h> /* He is doing MFC */
414 // Windows.h will be included via afxwin.h->afx.h->afx_ver_.h->afxv_w32.h
415 // #define _INC_WINDOWS // Prevent winsock.h from including windows.h
416 #elif defined (ACE_HAS_WINCE)
417 # include /**/ <windows.h>
418 #endif
420 #if !defined (_INC_WINDOWS) /* Already include windows.h ? */
421 // Must define strict before including windows.h !
422 # if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0) && !defined (STRICT)
423 # define STRICT 1
424 # endif /* ACE_HAS_STRICT */
426 # if !defined (WIN32_LEAN_AND_MEAN) && !defined (ACE_NO_WIN32_LEAN_AND_MEAN)
427 # define WIN32_LEAN_AND_MEAN
428 # endif /* WIN32_LEAN_AND_MEAN */
430 #endif /* !defined (_INC_WINDOWS) */
432 // Always use WS2 when available
433 #if !defined(ACE_HAS_WINSOCK2)
434 # define ACE_HAS_WINSOCK2 1
435 #endif /* !defined(ACE_HAS_WINSOCK2) */
438 #if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
439 # if !defined (_WINSOCK2API_)
440 // will also include windows.h, if not present
441 # include /**/ <winsock2.h>
442 // WinCE 4 doesn't define the Exxx values without the WSA prefix, so do that
443 // here. This is all lifted from the #if 0'd out part of winsock2.h.
444 # if defined (UNDER_CE)
445 # define EWOULDBLOCK WSAEWOULDBLOCK
446 # define EINPROGRESS WSAEINPROGRESS
447 # define EALREADY WSAEALREADY
448 # define ENOTSOCK WSAENOTSOCK
449 # define EDESTADDRREQ WSAEDESTADDRREQ
450 # define EMSGSIZE WSAEMSGSIZE
451 # define EPROTOTYPE WSAEPROTOTYPE
452 # define ENOPROTOOPT WSAENOPROTOOPT
453 # define EPROTONOSUPPORT WSAEPROTONOSUPPORT
454 # define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
455 # define EOPNOTSUPP WSAEOPNOTSUPP
456 # define EPFNOSUPPORT WSAEPFNOSUPPORT
457 # define EAFNOSUPPORT WSAEAFNOSUPPORT
458 # define EADDRINUSE WSAEADDRINUSE
459 # define EADDRNOTAVAIL WSAEADDRNOTAVAIL
460 # define ENETDOWN WSAENETDOWN
461 # define ENETUNREACH WSAENETUNREACH
462 # define ENETRESET WSAENETRESET
463 # define ECONNABORTED WSAECONNABORTED
464 # define ECONNRESET WSAECONNRESET
465 # define ENOBUFS WSAENOBUFS
466 # define EISCONN WSAEISCONN
467 # define ENOTCONN WSAENOTCONN
468 # define ESHUTDOWN WSAESHUTDOWN
469 # define ETOOMANYREFS WSAETOOMANYREFS
470 # define ETIMEDOUT WSAETIMEDOUT
471 # define ECONNREFUSED WSAECONNREFUSED
472 # define ELOOP WSAELOOP
473 # define ENAMETOOLONG WSAENAMETOOLONG
474 # define EHOSTDOWN WSAEHOSTDOWN
475 # define EHOSTUNREACH WSAEHOSTUNREACH
476 # define ENOTEMPTY WSAENOTEMPTY
477 # define EPROCLIM WSAEPROCLIM
478 # define EUSERS WSAEUSERS
479 # define EDQUOT WSAEDQUOT
480 # define ESTALE WSAESTALE
481 # define EREMOTE WSAEREMOTE
482 # endif /* UNDER_CE */
483 # endif /* _WINSOCK2API */
485 # if defined (ACE_HAS_FORE_ATM_WS2)
486 # include /**/ <ws2atm.h>
487 # endif /*ACE_HAS_FORE_ATM_WS2 */
489 // CE doesn't have Microsoft Winsock 2 extensions
490 # if !defined _MSWSOCK_ && !defined (ACE_HAS_WINCE)
491 # include /**/ <mswsock.h>
492 # endif /* _MSWSOCK_ */
494 # if defined (_MSC_VER)
495 # if defined (ACE_HAS_WINCE)
496 # pragma comment(lib, "ws2.lib")
497 # else
498 # pragma comment(lib, "ws2_32.lib")
499 # pragma comment(lib, "mswsock.lib")
500 # if defined (ACE_HAS_IPV6)
501 # pragma comment(lib, "iphlpapi.lib")
502 # endif
503 # endif /* ACE_HAS_WINCE */
504 # endif /* _MSC_VER */
506 # define ACE_WSOCK_VERSION 2, 0
507 #else
508 # if !defined (_WINSOCKAPI_)
509 // will also include windows.h, if not present
510 # include /**/ <winsock.h>
511 # endif /* _WINSOCKAPI */
513 // PharLap ETS has its own winsock lib, so don't grab the one
514 // supplied with the OS.
515 # if defined (_MSC_VER) && !defined (UNDER_CE) && !defined (ACE_HAS_PHARLAP)
516 # pragma comment(lib, "wsock32.lib")
517 # endif /* _MSC_VER */
519 // We can't use recvmsg and sendmsg unless WinSock 2 is available
520 # define ACE_LACKS_RECVMSG
521 # define ACE_LACKS_SENDMSG
523 // Version 1.1 of WinSock
524 # define ACE_WSOCK_VERSION 1, 1
525 #endif /* ACE_HAS_WINSOCK2 */
527 // Platform supports IP multicast on Winsock 2
528 #if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
529 # define ACE_HAS_IP_MULTICAST
530 #endif /* ACE_HAS_WINSOCK2 */
532 #if !defined (ACE_HAS_WINCE) || defined (PPC) /* CE only on some CPUs */
533 # define ACE_HAS_INTERLOCKED_EXCHANGEADD
534 #endif
535 #define ACE_HAS_WIN32_TRYLOCK
537 #if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
538 # define ACE_HAS_SIGNAL_OBJECT_AND_WAIT
540 // If CancelIO is undefined get the updated sp2-sdk from MS
541 # define ACE_HAS_CANCEL_IO
542 # define ACE_HAS_WIN32_OVERLAPPED_IO
543 # define ACE_HAS_WIN32_NAMED_PIPES
544 #endif /* !defined (ACE_USES_WINCE_SEMA_SIMULATION) && !ACE_HAS_PHARLAP */
546 #if !defined (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION)
547 # define ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION EXCEPTION_CONTINUE_SEARCH
548 #endif /* ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION */
550 // ACE_HAS_QOS is defined in the qos.mpb base project.
551 // If qos=1 in default.features, then this macro will be defined.
552 #if defined (ACE_HAS_QOS) && !defined (ACE_HAS_WINSOCK2_GQOS)
553 # if defined (WINSOCK_VERSION)
554 # define ACE_HAS_WINSOCK2_GQOS 1
555 # endif /* WINSOCK_VERSION */
556 #endif /* ACE_HAS_WINSOCK2_GQOS */
558 // These are the defaults and can be overridden by a user's config.h
559 #if !defined (ACE_DEFAULT_FILE_PERMS)
560 # define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE | \
561 FILE_SHARE_DELETE)
562 // This alternate used to be used for pre-NT4 systems; may still be needed
563 // by knock-offs such as CE and Pharlap.
564 //# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
565 #endif /* !defined (ACE_DEFAULT_FILE_PERMS) */
567 #define ACE_SIZEOF_WCHAR 2
568 #define ACE_HAS_MUTEX_TIMEOUTS
569 #define ACE_LACKS_STRUCT_DIR
570 #define ACE_LACKS_OPENDIR
571 #define ACE_LACKS_CLOSEDIR
572 #define ACE_LACKS_READDIR
573 #define ACE_LACKS_ALPHASORT
574 #define ACE_LACKS_MKSTEMP
575 #define ACE_LACKS_LSTAT
576 // Looks like Win32 has a non-const swab function
577 #define ACE_HAS_NONCONST_SWAB
579 // If we are using winsock2 then the SO_REUSEADDR feature is broken
580 // SO_REUSEADDR=1 behaves like SO_REUSEPORT=1. (SO_REUSEPORT is an
581 // extension to sockets on some platforms)
582 // We define SO_REUSEPORT here so that ACE_OS::setsockopt() can still
583 // allow the user to specify that a socketaddr can *always* be reused.
584 #if defined (ACE_HAS_WINSOCK2) && ACE_HAS_WINSOCK2 != 0 && ! defined(SO_REUSEPORT)
585 #define SO_REUSEPORT 0x0400 // We just have to pick a value that won't conflict
586 #endif
588 #if defined (ACE_WIN64)
589 // Data must be aligned on 8-byte boundaries, at a minimum.
590 # define ACE_MALLOC_ALIGN 8
591 // Void pointers are 8 bytes
592 # define ACE_SIZEOF_VOID_P 8
593 #endif /* ACE_WIN64 */
595 #if !defined (ACE_DISABLES_THREAD_LIBRARY_CALLS)
596 # define ACE_DISABLES_THREAD_LIBRARY_CALLS 0
597 #endif /* ACE_DISABLES_THREAD_LIBRARY_CALLS */
599 #if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
600 # define ACE_HAS_LOG_MSG_NT_EVENT_LOG
601 #endif /* !ACE_HAS_WINCE && !ACE_HAS_PHARLAP */
603 #if !defined (ACE_HAS_WINCE)
604 # define ACE_HAS_LLSEEK
605 #endif /* !ACE_HAS_WINCE */
607 // Needed for obtaining the MAC address
608 // I dont believe this will work under CE, notice the
609 // check for ACE_HAS_WINCE.
610 # if !defined (ACE_HAS_WINCE)
611 # include <nb30.h>
612 # if defined (_MSC_VER)
613 # pragma comment(lib, "netapi32.lib") // needed for obtaing MACaddress
614 # endif
615 # endif /* !ACE_HAS_WINCE */
617 #if !defined (WINVER)
618 # define WINVER 0x0400 // pretend it's at least WinNT 4.0
619 #endif
621 ///////////////////////////////////////
622 // windows version-specific definitions
623 // see: http://msdn2.microsoft.com/en-us/library/aa383745.aspx
625 // For TSS information
626 // see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/thread_local_storage.asp
628 #if (WINVER>=0x0600)
629 // Windows Server 2008 definitions go here
630 // Windows Vista defintions go here
631 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
632 # define ACE_DEFAULT_THREAD_KEYS 1088
633 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
634 #elif (WINVER>=0x0502)
635 // Windows Server 2003 SP1 definitions go here
636 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
637 # define ACE_DEFAULT_THREAD_KEYS 1088
638 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
639 #elif (WINVER>=0x0501)
640 // Windows XP definitions go here
641 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
642 # define ACE_DEFAULT_THREAD_KEYS 1088
643 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
644 #elif (WINVER>=0x0500)
645 // Windows 2000 definitions go here
646 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
647 # define ACE_DEFAULT_THREAD_KEYS 1088
648 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
649 #elif (WINVER>=0x0410)
650 // Windows 98 definitions go here
651 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
652 # define ACE_DEFAULT_THREAD_KEYS 80
653 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
654 #else
655 // antique windows
656 # if ! defined(ACE_DEFAULT_THREAD_KEYS)
657 # define ACE_DEFAULT_THREAD_KEYS 64
658 # endif // ! defined(ACE_DEFAULT_THREAD_KEYS)
659 #endif
661 #if !defined (ACE_DEFAULT_BACKLOG)
662 # define ACE_DEFAULT_BACKLOG SOMAXCONN
663 #endif /* ACE_DEFAULT_BACKLOG */
665 #include /**/ "ace/post.h"
666 #endif /* ACE_CONFIG_WIN32_COMMON_H */