1*f6dc9357SAndroid Build Coastguard Worker // Windows/NtCheck.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_WINDOWS_NT_CHECK_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_WINDOWS_NT_CHECK_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #ifdef _WIN32 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #include "../Common/MyWindows.h" 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker #if !defined(_WIN64) && !defined(UNDER_CE) 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker #if defined(_MSC_VER) && _MSC_VER >= 1900 13*f6dc9357SAndroid Build Coastguard Worker #pragma warning(push) 14*f6dc9357SAndroid Build Coastguard Worker // GetVersionExW was declared deprecated 15*f6dc9357SAndroid Build Coastguard Worker #pragma warning(disable : 4996) 16*f6dc9357SAndroid Build Coastguard Worker #endif IsItWindowsNT()17*f6dc9357SAndroid Build Coastguard Workerstatic inline bool IsItWindowsNT() 18*f6dc9357SAndroid Build Coastguard Worker { 19*f6dc9357SAndroid Build Coastguard Worker OSVERSIONINFO vi; 20*f6dc9357SAndroid Build Coastguard Worker vi.dwOSVersionInfoSize = sizeof(vi); 21*f6dc9357SAndroid Build Coastguard Worker return (::GetVersionEx(&vi) && vi.dwPlatformId == VER_PLATFORM_WIN32_NT); 22*f6dc9357SAndroid Build Coastguard Worker } 23*f6dc9357SAndroid Build Coastguard Worker #if defined(_MSC_VER) && _MSC_VER >= 1900 24*f6dc9357SAndroid Build Coastguard Worker #pragma warning(pop) 25*f6dc9357SAndroid Build Coastguard Worker #endif 26*f6dc9357SAndroid Build Coastguard Worker 27*f6dc9357SAndroid Build Coastguard Worker #endif 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker #ifndef _UNICODE 30*f6dc9357SAndroid Build Coastguard Worker extern 31*f6dc9357SAndroid Build Coastguard Worker bool g_IsNT; 32*f6dc9357SAndroid Build Coastguard Worker #if defined(_WIN64) || defined(UNDER_CE) 33*f6dc9357SAndroid Build Coastguard Worker bool g_IsNT = true; 34*f6dc9357SAndroid Build Coastguard Worker #define SET_IS_NT 35*f6dc9357SAndroid Build Coastguard Worker #else 36*f6dc9357SAndroid Build Coastguard Worker bool g_IsNT = false; 37*f6dc9357SAndroid Build Coastguard Worker #define SET_IS_NT g_IsNT = IsItWindowsNT(); 38*f6dc9357SAndroid Build Coastguard Worker #endif 39*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK_ACTION 40*f6dc9357SAndroid Build Coastguard Worker // #define NT_CHECK_ACTION { NT_CHECK_FAIL_ACTION } 41*f6dc9357SAndroid Build Coastguard Worker #else 42*f6dc9357SAndroid Build Coastguard Worker #if !defined(_WIN64) && !defined(UNDER_CE) 43*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK_ACTION if (!IsItWindowsNT()) { NT_CHECK_FAIL_ACTION } 44*f6dc9357SAndroid Build Coastguard Worker #else 45*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK_ACTION 46*f6dc9357SAndroid Build Coastguard Worker #endif 47*f6dc9357SAndroid Build Coastguard Worker #define SET_IS_NT 48*f6dc9357SAndroid Build Coastguard Worker #endif 49*f6dc9357SAndroid Build Coastguard Worker 50*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK NT_CHECK_ACTION SET_IS_NT 51*f6dc9357SAndroid Build Coastguard Worker 52*f6dc9357SAndroid Build Coastguard Worker #else 53*f6dc9357SAndroid Build Coastguard Worker 54*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK 55*f6dc9357SAndroid Build Coastguard Worker 56*f6dc9357SAndroid Build Coastguard Worker #endif 57*f6dc9357SAndroid Build Coastguard Worker 58*f6dc9357SAndroid Build Coastguard Worker #endif 59