/*
* WindowsVersion.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// 2011/09/04 Modified a member function isVista and added a new meber function isWindows7.
#pragma once
#include <sol\Object.h>
//#include <io.h>
namespace SOL {
class WindowsVersion :public Object {
private:
OSVERSIONINFOEX versionInfo;
public:
/**
* Constructor
*/
WindowsVersion() {
memset(&versionInfo, 0, sizeof(OSVERSIONINFOEX));
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
}
public:
/**
*/
bool getVersion(DWORD& dwPlatformId,
DWORD& dwMajorVersion,
DWORD& dwMinorVersion) {
bool rc = false;
memset(&versionInfo, 0, sizeof(OSVERSIONINFOEX));
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (GetVersionEx((OSVERSIONINFO*)&versionInfo) == 0) {
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx((OSVERSIONINFO*)&versionInfo);
}
dwPlatformId = versionInfo.dwPlatformId;
dwMajorVersion = versionInfo.dwMajorVersion;
dwMinorVersion = versionInfo.dwMinorVersion;
rc = true;
return rc;
}
public:
/**
*/
bool isVista() {
bool rc = false;
memset(&versionInfo, 0, sizeof(OSVERSIONINFOEX));
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (GetVersionEx((OSVERSIONINFO*)&versionInfo) == 0) {
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx((OSVERSIONINFO*)&versionInfo);
}
if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT &&
versionInfo.dwMajorVersion == 6 &&
versionInfo.dwMinorVersion == 0) {
rc = true;
}
return rc;
}
bool isWindows7() {
bool rc = false;
memset(&versionInfo, 0, sizeof(OSVERSIONINFOEX));
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (GetVersionEx((OSVERSIONINFO*)&versionInfo) == 0) {
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx((OSVERSIONINFO*)&versionInfo);
}
if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT &&
versionInfo.dwMajorVersion == 6 &&
versionInfo.dwMinorVersion == 1) {
rc = true;
}
return rc;
}
};
}
|