1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
int GetOs()
{
OSVERSIONINFOEX osvi;
BOOL bOsVersionInfoEx;
// Try calling GetVersionEx using the OSVERSIONINFOEX structure.
//
// If that fails, try using the OSVERSIONINFO structure.
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
{
// If OSVERSIONINFOEX doesn't work, try OSVERSIONINFO.
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
return DIJ_OS_INCONNU;;
}
if(osvi.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
return DIJ_OS_WINXP;
return DIJ_OS_WINNT;
}
if(osvi.dwPlatformId==VER_PLATFORM_WIN32s) return DIJ_OS_WIN31;
if(osvi.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
{
if(osvi.dwMinorVersion==0) return DIJ_OS_WIN95;
else if(osvi.dwMinorVersion>0) return DIJ_OS_WIN98;
}
return DIJ_OS_INCONNU;;
} |