[configure] avoid 'no symbols' warnings on darwin
[mono-project.git] / winconfig.h
blob73f67534019a237795922f6b7b855ce5e4c8a259
1 /* config.h. Generated from config.h.in by configure. */
2 /* config.h.in. Generated from configure.ac by autoheader. */
4 #ifndef _MSC_VER
5 #include "cygconfig.h"
6 #else
8 /* The architecture this is running on */
9 #if defined(_M_IA64)
10 #define MONO_ARCHITECTURE "ia64"
11 #elif defined(_M_AMD64)
12 #define MONO_ARCHITECTURE "amd64"
13 #elif defined(_M_IX86)
14 #define MONO_ARCHITECTURE "x86"
15 #else
16 #error Unknown architecture
17 #endif
19 #ifndef WINVER
20 #define WINVER 0x0A00
21 #endif
23 #include <SDKDDKVer.h>
25 #if _WIN32_WINNT < 0x0600
26 #error "Mono requires Windows Vista or later"
27 #endif /* _WIN32_WINNT < 0x0600 */
30 * Features that are not required in the Windows port
32 #define DISABLE_PORTABILITY 1
34 /* Windows does not have symlinks */
35 #define PLATFORM_NO_SYMLINKS 1
37 /* String of disabled features */
38 #define DISABLED_FEATURES "none"
40 /* Disable AOT support */
41 /* #undef DISABLE_AOT */
43 /* Disable COM support */
44 /* #undef DISABLE_COM */
46 /* Disable runtime debugging support */
47 /* #undef DISABLE_DEBUG */
49 /* Disable System.Decimal support */
50 /* #undef DISABLE_DECIMAL */
52 /* Disable generics support */
53 /* #undef DISABLE_GENERICS */
55 /* Disable support for huge assemblies */
56 /* #undef DISABLE_LARGE_CODE */
58 /* Disable support debug logging */
59 /* #undef DISABLE_LOGGING */
61 /* Disable P/Invoke support */
62 /* #undef DISABLE_PINVOKE */
64 /* Disable default profiler support */
65 /* #undef DISABLE_PROFILER */
67 /* Disable reflection emit support */
68 /* #undef DISABLE_REFLECTION_EMIT */
70 /* Disable advanced SSA JIT optimizations */
71 /* #undef DISABLE_SSA */
73 /* Enable DTrace probes */
74 /* #undef ENABLE_DTRACE */
76 /* Has the 'aintl' function */
77 /* #undef HAVE_AINTL */
79 /* Supports C99 array initialization */
80 /* #undef HAVE_ARRAY_ELEM_INIT */
82 /* Define to 1 if you have the <attr/xattr.h> header file. */
83 /* #undef HAVE_ATTR_XATTR_H */
85 /* Define to 1 if you have the `backtrace_symbols' function. */
86 /* #undef HAVE_BACKTRACE_SYMBOLS */
88 /* Define to 1 if the system has the type `blkcnt_t'. */
89 /* #undef HAVE_BLKCNT_T */
91 /* Define to 1 if the system has the type `blksize_t'. */
92 /* #undef HAVE_BLKSIZE_T */
94 /* Have Boehm GC */
95 /* #define HAVE_BOEHM_GC 1 */
97 /* Define to 1 if you have the <checklist.h> header file. */
98 /* #undef HAVE_CHECKLIST_H */
100 /* Define to 1 if you have the <complex.h> header file. */
101 #define HAVE_COMPLEX_H 1
103 /* Define to 1 if you have the `system' function. */
104 #define HAVE_SYSTEM 1
106 /* Have /dev/random */
107 #define HAVE_CRYPT_RNG 1
109 /* Define to 1 if you have the <curses.h> header file. */
110 /* #undef HAVE_CURSES_H */
112 /* Define to 1 if you have the declaration of `InterlockedAdd',
113 and to 0 if you don't. */
114 #define HAVE_DECL_INTERLOCKEDADD 1
116 /* Define to 1 if you have the declaration of `InterlockedAdd64',
117 and to 0 if you don't. */
118 #define HAVE_DECL_INTERLOCKEDADD64 1
120 /* Define to 1 if you have the declaration of `InterlockedCompareExchange64',
121 and to 0 if you don't. */
122 #define HAVE_DECL_INTERLOCKEDCOMPAREEXCHANGE64 1
124 /* Define to 1 if you have the declaration of `InterlockedDecrement64',
125 and to 0 if you don't. */
126 #define HAVE_DECL_INTERLOCKEDDECREMENT64 1
128 /* Define to 1 if you have the declaration of `InterlockedExchange64',
129 and to 0 if you don't. */
130 #define HAVE_DECL_INTERLOCKEDEXCHANGE64 1
132 /* Define to 1 if you have the declaration of `InterlockedIncrement64',
133 and to 0 if you don't. */
134 #define HAVE_DECL_INTERLOCKEDINCREMENT64 1
136 /* Define to 1 if you have the declaration of `__readfsdword',
137 and to 0 if you don't. */
138 #define HAVE_DECL___READFSDWORD 1
140 /* Define to 1 if you have the <dirent.h> header file. */
141 /* #define HAVE_DIRENT_H 1 */
143 /* Define to 1 if you have the <dlfcn.h> header file. */
144 /* #undef HAVE_DLFCN_H */
146 /* dlopen-based dynamic loader available */
147 /* #undef HAVE_DL_LOADER */
149 /* Define to 1 if you have the <elf.h> header file. */
150 /* #undef HAVE_ELF_H */
152 /* epoll supported */
153 /* #undef HAVE_EPOLL */
155 /* Define to 1 if you have the `epoll_ctl' function. */
156 /* #undef HAVE_EPOLL_CTL */
158 /* Define to 1 if you have the <execinfo.h> header file. */
159 /* #undef HAVE_EXECINFO_H */
161 /* Define to 1 if you have the `fgetgrent' function. */
162 /* #undef HAVE_FGETGRENT */
164 /* Define to 1 if you have the `fgetpwent' function. */
165 /* #undef HAVE_FGETPWENT */
167 /* Define to 1 if you have the `finite' function. */
168 /* #undef HAVE_FINITE */
170 /* Define to 1 if you have the <fstab.h> header file. */
171 /* #undef HAVE_FSTAB_H */
173 /* Define to 1 if you have the `fstatfs' function. */
174 /* #undef HAVE_FSTATFS */
176 /* Define to 1 if you have the `fstatvfs' function. */
177 /* #undef HAVE_FSTATVFS */
179 /* Define to 1 if you have the `getaddrinfo' function. */
180 #define HAVE_GETADDRINFO 1
182 /* Define to 1 if you have the `getnameinfo' function. */
183 #define HAVE_GETNAMEINFO 1
185 /* Define to 1 if you have the `getprotobyname' function. */
186 #define HAVE_GETPROTOBYNAME 1
188 /* Define to 1 if you have the `getdomainname' function. */
189 /* #undef HAVE_GETDOMAINNAME */
191 /* Define to 1 if you have the `getfsstat' function. */
192 /* #undef HAVE_GETFSSTAT */
194 /* Define to 1 if you have the `getgrgid_r' function. */
195 /* #undef HAVE_GETGRGID_R */
197 /* Define to 1 if you have the `getgrnam_r' function. */
198 /* #undef HAVE_GETGRNAM_R */
200 /* Have gethostbyname2_r */
201 /* #undef HAVE_GETHOSTBYNAME2_R */
203 /* Define to 1 if you have the `getpriority' function. */
204 /* #undef HAVE_GETPRIORITY */
206 /* Define to 1 if you have the `GetProcessId' function. */
207 #define HAVE_GETPROCESSID 1
209 /* Define to 1 if you have the `getpwnam_r' function. */
210 /* #undef HAVE_GETPWNAM_R */
212 /* Define to 1 if you have the `getpwuid_r' function. */
213 /* #undef HAVE_GETPWUID_R */
215 /* Define to 1 if you have the `getresuid' function. */
216 /* #undef HAVE_GETRESUID */
218 /* Define to 1 if you have the `getrusage' function. */
219 /* #undef HAVE_GETRUSAGE */
221 /* Define to 1 if you have the <grp.h> header file. */
222 /* #undef HAVE_GRP_H */
224 /* Define to 1 if you have the <ieeefp.h> header file. */
225 /* #undef HAVE_IEEEFP_H */
227 /* Define to 1 if you have the `inet_aton' function. */
228 /* #undef HAVE_INET_ATON */
230 /* Define to 1 if you have the `inet_pton' function. */
231 #define HAVE_INET_PTON 1
233 /* Define to 1 if you have the <inttypes.h> header file. */
234 #define HAVE_INTTYPES_H 1
236 /* Have IPV6_PKTINFO */
237 /* #undef HAVE_IPV6_PKTINFO */
239 /* Have IP_DONTFRAGMENT */
240 /* #undef HAVE_IP_DONTFRAGMENT */
242 /* Have IP_MTU_DISCOVER */
243 /* #undef HAVE_IP_MTU_DISCOVER */
245 /* Have IP_PKTINFO */
246 /* #undef HAVE_IP_PKTINFO */
248 /* Define to 1 if you have the `isfinite' function. */
249 /* #undef HAVE_ISFINITE */
251 /* isinf available */
252 #define HAVE_ISINF 1
254 /* Define to 1 if you have the `kqueue' function. */
255 /* #undef HAVE_KQUEUE */
257 /* Have __thread keyword */
258 /* #undef HAVE_KW_THREAD */
260 /* Have large file support */
261 /* #undef HAVE_LARGE_FILE_SUPPORT */
263 /* Define to 1 if you have the `unwind' library (-lunwind). */
264 /* #undef HAVE_LIBUNWIND */
266 /* Define to 1 if you have the <linux/rtc.h> header file. */
267 /* #undef HAVE_LINUX_RTC_H */
269 /* Define to 1 if you have the `lutimes' function. */
270 /* #undef HAVE_LUTIMES */
272 /* Define to 1 if you have the `madvise' function. */
273 /* #undef HAVE_MADVISE */
275 /* Define to 1 if you have the <memory.h> header file. */
276 #define HAVE_MEMORY_H 1
278 /* Define to 1 if you have the `mkstemp' function. */
279 /* #undef HAVE_MKSTEMP */
281 /* Define to 1 if you have the `mmap' function. */
282 /* #undef HAVE_MMAP */
284 /* The GC can move objects. */
285 /* #undef HAVE_MOVING_COLLECTOR */
287 /* Define to 1 if you have the `mremap' function. */
288 /* #undef HAVE_MREMAP */
290 /* Have MSG_NOSIGNAL */
291 /* #undef HAVE_MSG_NOSIGNAL */
293 /* Define to 1 if you have the <netdb.h> header file. */
294 /* #undef HAVE_NETDB_H */
296 /* Define to 1 if you have the <net/if.h> header file. */
297 /* #undef HAVE_NET_IF_H */
299 /* No GC support. */
300 /* #undef HAVE_NULL_GC */
302 /* Define to 1 if you have the `poll' function. */
303 /* #undef HAVE_POLL */
305 /* Define to 1 if you have the <poll.h> header file. */
306 /* #undef HAVE_POLL_H */
308 /* Define to 1 if you have the `posix_fadvise' function. */
309 /* #undef HAVE_POSIX_FADVISE */
311 /* Define to 1 if you have the `posix_fallocate' function. */
312 /* #undef HAVE_POSIX_FALLOCATE */
314 /* Define to 1 if you have the `posix_madvise' function. */
315 /* #undef HAVE_POSIX_MADVISE */
317 /* Define to 1 if you have the `pthread_attr_getstack' function. */
318 /* #undef HAVE_PTHREAD_ATTR_GETSTACK */
320 /* Define to 1 if you have the `pthread_attr_get_np' function. */
321 /* #undef HAVE_PTHREAD_ATTR_GET_NP */
323 /* Define to 1 if you have the `pthread_attr_setstacksize' function. */
324 /* #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE */
326 /* Define to 1 if you have the `pthread_getattr_np' function. */
327 /* #undef HAVE_PTHREAD_GETATTR_NP */
329 /* Define to 1 if you have the `pthread_get_stackaddr_np' function. */
330 /* #undef HAVE_PTHREAD_GET_STACKADDR_NP */
332 /* Define to 1 if you have the `pthread_get_stacksize_np' function. */
333 /* #undef HAVE_PTHREAD_GET_STACKSIZE_NP */
335 /* Define to 1 if you have the <pthread.h> header file. */
336 /* #undef HAVE_PTHREAD_H */
338 /* Define to 1 if you have the `pthread_mutex_timedlock' function. */
339 /* #undef HAVE_PTHREAD_MUTEX_TIMEDLOCK */
341 /* Define to 1 if you have the `remap_file_pages' function. */
342 /* #undef HAVE_REMAP_FILE_PAGES */
344 /* Define to 1 if you have the `sched_setaffinity' function. */
345 /* #undef HAVE_SCHED_SETAFFINITY */
347 /* Define to 1 if you have the <semaphore.h> header file. */
348 /* #undef HAVE_SEMAPHORE_H */
350 /* Define to 1 if you have the `sendfile' function. */
351 /* #undef HAVE_SENDFILE */
353 /* Define to 1 if you have the `setdomainname' function. */
354 /* #undef HAVE_SETDOMAINNAME */
356 /* Define to 1 if you have the `sethostid' function. */
357 /* #undef HAVE_SETHOSTID */
359 /* Define to 1 if you have the `setpriority' function. */
360 /* #undef HAVE_SETPRIORITY */
362 /* Define to 1 if you have the `setresuid' function. */
363 /* #undef HAVE_SETRESUID */
365 /* Using the simple generational GC. */
366 /* #undef HAVE_SGEN_GC */
368 /* Have signal */
369 #define HAVE_SIGNAL 1
371 /* Define to 1 if you have the <signal.h> header file. */
372 #define HAVE_SIGNAL_H 1
374 /* Have signbit */
375 /* #undef HAVE_SIGNBIT */
377 /* Can get interface list */
378 /* #undef HAVE_SIOCGIFCONF */
380 /* sockaddr_in6 has sin6_len */
381 /* #undef HAVE_SOCKADDR_IN6_SIN_LEN */
383 /* sockaddr_in has sin_len */
384 /* #undef HAVE_SOCKADDR_IN_SIN_LEN */
386 /* Have socklen_t */
387 /* #undef HAVE_SOCKLEN_T */
389 /* Have SOL_IP */
390 /* #undef HAVE_SOL_IP */
392 /* Have SOL_IPV6 */
393 /* #undef HAVE_SOL_IPV6 */
395 /* Have SOL_TCP */
396 /* #undef HAVE_SOL_TCP */
398 /* Define to 1 if you have the `statfs' function. */
399 /* #undef HAVE_STATFS */
401 /* Define to 1 if you have the `statvfs' function. */
402 /* #undef HAVE_STATVFS */
404 /* Define to 1 if you have the <stdint.h> header file. */
405 /* #define HAVE_STDINT_H 1 */
407 /* Define to 1 if you have the <stdlib.h> header file. */
408 #define HAVE_STDLIB_H 1
410 /* Define to 1 if you have the `stime' function. */
411 /* #undef HAVE_STIME */
413 /* Define to 1 if you have the `strerror_r' function. */
414 /* #undef HAVE_STRERROR_R */
416 /* Define to 1 if you have the <strings.h> header file. */
417 #define HAVE_STRINGS_H 1
419 /* Define to 1 if you have the <string.h> header file. */
420 #define HAVE_STRING_H 1
422 /* Define to 1 if `d_off' is member of `struct dirent'. */
423 /* #undef HAVE_STRUCT_DIRENT_D_OFF */
425 /* Define to 1 if `d_reclen' is member of `struct dirent'. */
426 /* #undef HAVE_STRUCT_DIRENT_D_RECLEN */
428 /* Define to 1 if `d_type' is member of `struct dirent'. */
429 /* #undef HAVE_STRUCT_DIRENT_D_TYPE */
431 /* Have struct ip_mreq */
432 #define HAVE_STRUCT_IP_MREQ 1
434 /* Have struct ip_mreqn */
435 /* #undef HAVE_STRUCT_IP_MREQN */
437 /* Define to 1 if the system has the type `struct pollfd'. */
438 /* #undef HAVE_STRUCT_POLLFD */
440 /* Define to 1 if the system has the type `struct stat'. */
441 /* #undef HAVE_STRUCT_STAT */
443 /* Define to 1 if the system has the type `struct timeval'. */
444 /* #undef HAVE_STRUCT_TIMEVAL */
446 /* Define to 1 if the system has the type `struct timezone'. */
447 /* #undef HAVE_STRUCT_TIMEZONE */
449 /* Define to 1 if the system has the type `struct utimbuf'. */
450 /* #undef HAVE_STRUCT_UTIMBUF */
452 /* Define to 1 if the system has the type `suseconds_t'. */
453 /* #undef HAVE_SUSECONDS_T */
455 /* Define to 1 if you have the <syslog.h> header file. */
456 /* #undef HAVE_SYSLOG_H */
458 /* Define to 1 if you have the <sys/epoll.h> header file. */
459 /* #undef HAVE_SYS_EPOLL_H */
461 /* Define to 1 if you have the <sys/extattr.h> header file. */
462 /* #undef HAVE_SYS_EXTATTR_H */
464 /* Define to 1 if you have the <sys/filio.h> header file. */
465 /* #undef HAVE_SYS_FILIO_H */
467 /* Define to 1 if you have the <sys/ioctl.h> header file. */
468 /* #undef HAVE_SYS_IOCTL_H */
470 /* Define to 1 if you have the <sys/mkdev.h> header file. */
471 /* #undef HAVE_SYS_MKDEV_H */
473 /* Define to 1 if you have the <sys/mman.h> header file. */
474 /* #undef HAVE_SYS_MMAN_H */
476 /* Define to 1 if you have the <sys/param.h> header file. */
477 /* #undef HAVE_SYS_PARAM_H */
479 /* Define to 1 if you have the <sys/poll.h> header file. */
480 /* #undef HAVE_SYS_POLL_H */
482 /* Define to 1 if you have the <sys/sdt.h> header file. */
483 /* #undef HAVE_SYS_SDT_H */
485 /* Define to 1 if you have the <sys/sendfile.h> header file. */
486 /* #undef HAVE_SYS_SENDFILE_H */
488 /* Define to 1 if you have the <sys/sockio.h> header file. */
489 /* #undef HAVE_SYS_SOCKIO_H */
491 /* Define to 1 if you have the <sys/statvfs.h> header file. */
492 /* #undef HAVE_SYS_STATVFS_H */
494 /* Define to 1 if you have the <sys/stat.h> header file. */
495 #define HAVE_SYS_STAT_H 1
497 /* Define to 1 if you have the <sys/syscall.h> header file. */
498 /* #undef HAVE_SYS_SYSCALL_H */
500 /* Define to 1 if you have the <sys/time.h> header file. */
501 /* #undef HAVE_SYS_TIME_H */
503 /* Define to 1 if you have the <sys/types.h> header file. */
504 #define HAVE_SYS_TYPES_H 1
506 /* Define to 1 if you have the <sys/un.h> header file. */
507 /* #undef HAVE_SYS_UN_H */
509 /* Define to 1 if you have the <sys/utime.h> header file. */
510 #define HAVE_SYS_UTIME_H 1
512 /* Define to 1 if you have the <sys/vfstab.h> header file. */
513 /* #undef HAVE_SYS_VFSTAB_H */
515 /* Define to 1 if you have the <sys/wait.h> header file. */
516 /* #undef HAVE_SYS_WAIT_H */
518 /* Define to 1 if you have the <sys/xattr.h> header file. */
519 /* #undef HAVE_SYS_XATTR_H */
521 /* Define to 1 if you have the <termios.h> header file. */
522 /* #undef HAVE_TERMIOS_H */
524 /* Define to 1 if you have the <term.h> header file. */
525 /* #undef HAVE_TERM_H */
527 /* Have timezone variable */
528 /* #undef HAVE_TIMEZONE */
530 /* tld_model available */
531 /* #undef HAVE_TLS_MODEL_ATTR */
533 /* Have tm_gmtoff */
534 /* #undef HAVE_TM_GMTOFF */
536 /* Define to 1 if you have the `trunc' function. */
537 #define HAVE_TRUNC 1
539 /* Define to 1 if you have the `ttyname_r' function. */
540 /* #undef HAVE_TTYNAME_R */
542 /* Define to 1 if you have the <unistd.h> header file. */
543 /* #define HAVE_UNISTD_H 1 */
545 /* Define to 1 if you have the <utime.h> header file. */
546 /* #define HAVE_UTIME_H 1 */
548 /* Define to 1 if you have the <valgrind/memcheck.h> header file. */
549 /* #undef HAVE_VALGRIND_MEMCHECK_H */
551 /* Support for the visibility ("hidden") attribute */
552 /* #define HAVE_VISIBILITY_HIDDEN 1 */
554 /* Define to 1 if you have the `vsnprintf' function. */
555 /* #undef HAVE_VSNPRINTF */
557 /* Define to 1 if you have the <wchar.h> header file. */
558 #define HAVE_WCHAR_H 1
560 /* Have a working sigaltstack */
561 /* #undef HAVE_WORKING_SIGALTSTACK */
563 /* The GC needs write barriers. */
564 /* #undef HAVE_WRITE_BARRIERS */
566 /* Have system zlib */
567 /* #define HAVE_ZLIB 1 */
569 /* Architecture uses registers for Parameters */
570 /* #undef MONO_ARCH_REGPARMS */
572 /* Enable the allocation and indexing of arrays greater than Int32.MaxValue */
573 /* #undef MONO_BIG_ARRAYS */
575 /* Xen-specific behaviour */
576 /* #define MONO_XEN_OPT 1 */
578 /* Length of zero length arrays */
579 #define MONO_ZERO_LEN_ARRAY 1
581 /* Name of /dev/random */
582 #define NAME_DEV_RANDOM ""
584 /* Define if Unix sockets cannot be created in an anonymous namespace */
585 /* #undef NEED_LINK_UNLINK */
587 /* Name of package */
588 #define PACKAGE "mono"
590 /* Define to the address where bug reports for this package should be sent. */
591 #define PACKAGE_BUGREPORT "Hans_Boehm@hp.com"
593 /* Define to the full name of this package. */
594 #define PACKAGE_NAME "libgc-mono"
596 /* Define to the full name and version of this package. */
597 #define PACKAGE_STRING "libgc-mono 6.6"
599 /* Define to the one symbol short name of this package. */
600 #define PACKAGE_TARNAME "libgc-mono"
602 /* Define to the version of this package. */
603 #define PACKAGE_VERSION "6.6"
605 /* Platform is Win32 */
606 #define HOST_WIN32 1
607 #define TARGET_WIN32 1
609 #ifdef _WIN64
610 #define TARGET_AMD64 1
611 #else
612 #define TARGET_X86 1
613 #endif
615 /* pthread_t is a pointer */
616 /* #undef PTHREAD_POINTER_ID */
618 /* The size of `size_t', as computed by sizeof. */
619 /* #undef SIZEOF_SIZE_T */
621 /* The size of a `void *', as computed by sizeof. */
622 #ifdef _WIN64
623 #define SIZEOF_VOID_P 8
624 #else
625 #define SIZEOF_VOID_P 4
626 #endif
628 #define SIZEOF_REGISTER SIZEOF_VOID_P
630 /* Define to 1 if you have the ANSI C header files. */
631 #define STDC_HEADERS 1
633 /* Use included libgc */
634 /* #define USE_INCLUDED_LIBGC 1 */
636 #define DEFAULT_GC_NAME "Included Boehm (with typed GC)"
638 /* ... */
639 /* #undef USE_MACH_SEMA */
641 /* Use mono_mutex_t */
642 /* #undef USE_MONO_MUTEX */
644 /* Version number of package */
645 #define VERSION "#MONO_VERSION#"
647 #ifndef HAVE_WINAPI_FAMILY_SUPPORT
649 #define HAVE_WINAPI_FAMILY_SUPPORT
651 /* WIN API Family support */
652 #include <winapifamily.h>
654 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
655 #define HAVE_CLASSIC_WINAPI_SUPPORT 1
656 #define HAVE_UWP_WINAPI_SUPPORT 0
657 #elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
658 #define HAVE_CLASSIC_WINAPI_SUPPORT 0
659 #define HAVE_UWP_WINAPI_SUPPORT 1
660 #ifndef HAVE_EXTERN_DEFINED_WINAPI_SUPPORT
661 #error Unsupported WINAPI family
662 #endif
663 #else
664 #define HAVE_CLASSIC_WINAPI_SUPPORT 0
665 #define HAVE_UWP_WINAPI_SUPPORT 0
666 #ifndef HAVE_EXTERN_DEFINED_WINAPI_SUPPORT
667 #error Unsupported WINAPI family
668 #endif
669 #endif
671 #endif
672 #endif