Home | History | Annotate | Download | only in Windows
      1 // Windows/NtCheck.h
      2 
      3 #ifndef __WINDOWS_NT_CHECK_H
      4 #define __WINDOWS_NT_CHECK_H
      5 
      6 #ifdef _WIN32
      7 
      8 #if !defined(_WIN64) && !defined(UNDER_CE)
      9 static inline bool IsItWindowsNT()
     10 {
     11   OSVERSIONINFO vi;
     12   vi.dwOSVersionInfoSize = sizeof(vi);
     13   return (::GetVersionEx(&vi) && vi.dwPlatformId == VER_PLATFORM_WIN32_NT);
     14 }
     15 #endif
     16 
     17 #ifndef _UNICODE
     18   #if defined(_WIN64) || defined(UNDER_CE)
     19     bool g_IsNT = true;
     20     #define SET_IS_NT
     21   #else
     22     bool g_IsNT = false;
     23     #define SET_IS_NT g_IsNT = IsItWindowsNT();
     24   #endif
     25   #define NT_CHECK_ACTION
     26   // #define NT_CHECK_ACTION { NT_CHECK_FAIL_ACTION }
     27 #else
     28   #if !defined(_WIN64) && !defined(UNDER_CE)
     29     #define NT_CHECK_ACTION if (!IsItWindowsNT()) { NT_CHECK_FAIL_ACTION }
     30   #else
     31     #define NT_CHECK_ACTION
     32   #endif
     33   #define SET_IS_NT
     34 #endif
     35 
     36 #define NT_CHECK  NT_CHECK_ACTION SET_IS_NT
     37 
     38 #else
     39 
     40 #define NT_CHECK
     41 
     42 #endif
     43 
     44 #endif
     45