Use VerifyVersionInfo instead of GetVersionEx

The GetVersionEx function has been deprecated since Windows 8.1.
VerifyVersionInfo exists at least since Windows 2000.

This fixes warnings about use of deprecated functions in MSVC.
This commit is contained in:
Martin Storsjö
2015-01-16 11:07:14 +02:00
parent 4f33b38ac1
commit 9e00bf89aa

View File

@@ -605,23 +605,17 @@ int CUtils::CheckOS() {
OSVERSIONINFOEX osvi;
ZeroMemory (&osvi, sizeof (OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
osvi.dwPlatformId = VER_PLATFORM_WIN32_NT;
osvi.dwMajorVersion = 6; // Vista
DWORDLONG condmask = VerSetConditionMask (VerSetConditionMask (0, VER_MAJORVERSION, VER_GREATER_EQUAL),
VER_PLATFORMID, VER_EQUAL);
if (!GetVersionEx ((OSVERSIONINFO*) &osvi)) {
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
if (! GetVersionEx ((OSVERSIONINFO*) &osvi))
return iType;
}
switch (osvi.dwPlatformId) {
case VER_PLATFORM_WIN32_NT:
if (osvi.dwMajorVersion >= 6)
iType = OS_VISTA_UPPER;
else if (osvi.dwMajorVersion == 5)
if (VerifyVersionInfo (&osvi, VER_MAJORVERSION | VER_PLATFORMID, condmask)) {
iType = OS_VISTA_UPPER;
} else {
osvi.dwMajorVersion = 5; // XP/2000
if (VerifyVersionInfo (&osvi, VER_MAJORVERSION | VER_PLATFORMID, condmask))
iType = OS_XP;
break;
default:
break;
}
#endif