in MFCClient/WindowsVersionHelper.h [47:77]
static bool windows10orGreater()
{
static const wchar_t kernel32[] = L"\\kernel32.dll";
wchar_t path[MAX_PATH];
unsigned int n = GetSystemDirectory(path, MAX_PATH);
memcpy_s(path + n, MAX_PATH, kernel32, sizeof(kernel32));
unsigned int size = GetFileVersionInfoSize(path, NULL);
if (size == 0)
{
return false;
}
std::vector<char> verionInfo;
verionInfo.resize(size);
BOOL result = GetFileVersionInfo(path, 0, size, verionInfo.data());
if (!result || GetLastError() != S_OK)
{
return false;
}
VS_FIXEDFILEINFO *vinfo;
result = VerQueryValue(verionInfo.data(), L"\\", (LPVOID *)&vinfo, &size);
if (!result || size < sizeof(VS_FIXEDFILEINFO))
{
return false;
}
return HIWORD(vinfo->dwProductVersionMS) >= 10;
}