// Windows/NtCheck.h | |
#ifndef __WINDOWS_NT_CHECK_H | |
#define __WINDOWS_NT_CHECK_H | |
#ifdef _WIN32 | |
#if !defined(_WIN64) && !defined(UNDER_CE) | |
static inline bool IsItWindowsNT() | |
{ | |
OSVERSIONINFO vi; | |
vi.dwOSVersionInfoSize = sizeof(vi); | |
return (::GetVersionEx(&vi) && vi.dwPlatformId == VER_PLATFORM_WIN32_NT); | |
} | |
#endif | |
#ifndef _UNICODE | |
#if defined(_WIN64) || defined(UNDER_CE) | |
bool g_IsNT = true; | |
#define SET_IS_NT | |
#else | |
bool g_IsNT = false; | |
#define SET_IS_NT g_IsNT = IsItWindowsNT(); | |
#endif | |
#define NT_CHECK_ACTION | |
// #define NT_CHECK_ACTION { NT_CHECK_FAIL_ACTION } | |
#else | |
#if !defined(_WIN64) && !defined(UNDER_CE) | |
#define NT_CHECK_ACTION if (!IsItWindowsNT()) { NT_CHECK_FAIL_ACTION } | |
#else | |
#define NT_CHECK_ACTION | |
#endif | |
#define SET_IS_NT | |
#endif | |
#define NT_CHECK NT_CHECK_ACTION SET_IS_NT | |
#else | |
#define NT_CHECK | |
#endif | |
#endif |