SOL9 2.0 Class: WindowsVersion

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * 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;
    }

};

}


Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.