Changeset 6d4f438cf832…
Parent 969f02582917…
by
Changes to 4 files · Browse files at 6d4f438cf832 Showing diff from parent 969f02582917 Diff from another changeset...
@@ -25,7 +25,7 @@ CIconBitmapUtils::CIconBitmapUtils() :
m_hUxTheme(NULL)
{
- if (CSysInfo::Instance().IsVistaOrLater())
+ if (CSysInfo::IsVistaOrLater())
{
m_hUxTheme = ::LoadLibrary(_T("UXTHEME.DLL"));
|
@@ -19,16 +19,13 @@
#include "SysInfo.h"
+CSysInfo CSysInfo::m_inst;
+
CSysInfo::CSysInfo(void)
{
- ::SecureZeroMemory(&inf, sizeof(OSVERSIONINFOEX));
- inf.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
- ::GetVersionEx((OSVERSIONINFO *)&inf);
+ OSVERSIONINFO osvi;
+ memset(&osvi, 0, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ ::GetVersionEx(&osvi);
+ m_dwFullVersion = (DWORD)MAKEWORD(osvi.dwMinorVersion, osvi.dwMajorVersion);
}
-
-const CSysInfo& CSysInfo::Instance()
-{
- static CSysInfo instance;
- return instance;
-}
-
|
@@ -17,26 +17,21 @@
#pragma once
-
-/**
- * \ingroup Utils
- * This singleton class handles system information
- */
+// This class handles system information.
class CSysInfo
{
private:
CSysInfo();
public:
- static const CSysInfo& Instance();
-
- DWORD GetFullVersion() const { return MAKEWORD(inf.dwMinorVersion, inf.dwMajorVersion); }
- bool IsXP() const { return (GetFullVersion() < 0x0600); } // cover Win5.1 and 5.2 alike
- bool IsVista() const { return (GetFullVersion() == 0x0600); }
- bool IsVistaOrLater() const { return (GetFullVersion() >= 0x0600); }
- bool IsWin7() const { return (GetFullVersion() == 0x0601); }
- bool IsWin7OrLater() const { return (GetFullVersion() >= 0x0601); }
+ static DWORD GetFullVersion() { return m_inst.m_dwFullVersion; }
+ static bool IsXP() { return (GetFullVersion() < 0x0600); } // cover Win5.1 and 5.2 alike
+ static bool IsVista() { return (GetFullVersion() == 0x0600); }
+ static bool IsVistaOrLater() { return (GetFullVersion() >= 0x0600); }
+ static bool IsWin7() { return (GetFullVersion() == 0x0601); }
+ static bool IsWin7OrLater() { return (GetFullVersion() >= 0x0601); }
private:
- OSVERSIONINFOEX inf;
+ static CSysInfo m_inst;
+ DWORD m_dwFullVersion;
};
|
@@ -215,7 +215,7 @@ mii.cch = strMenuText.GetLength();
mii.wID = idCmd;
- if (CSysInfo::Instance().IsVistaOrLater())
+ if (CSysInfo::IsVistaOrLater())
{
HBITMAP hBitmap = GetTortoiseIconBitmap(strIconName);
if (hBitmap)
@@ -264,7 +264,7 @@ mii.wID = idCmd;
mii.hSubMenu = hSubMenu;
- if (CSysInfo::Instance().IsVistaOrLater())
+ if (CSysInfo::IsVistaOrLater())
{
HBITMAP hBitmap = GetTortoiseIconBitmap(strIconName);
if (hBitmap)
@@ -383,7 +383,7 @@
void CTortoiseHgCmenuBase::TweakMenuForVista(HMENU hMenu)
{
- if (!CSysInfo::Instance().IsVistaOrLater())
+ if (!CSysInfo::IsVistaOrLater())
return;
MENUINFO mi;
|
Loading...