Supporto Win 8

git-svn-id: svn://10.65.10.50/branches/R_10_00@22772 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-12-21 06:57:39 +00:00
parent 948465ced7
commit 6c3e262edd
3 changed files with 29 additions and 95 deletions

View File

@ -44,16 +44,6 @@ static LONG GetNextNameValue(HKEY key, LPCTSTR subkey, LPTSTR szName, LPTSTR szD
// defines used by GetWinVer()
#define WUNKNOWNSTR _T("unknown Windows version")
#define W95STR _T("Windows 95")
#define W95SP1STR _T("Windows 95 SP1")
#define W95OSR2STR _T("Windows 95 OSR2")
#define W98STR _T("Windows 98")
#define W98SP1STR _T("Windows 98 SP1")
#define W98SESTR _T("Windows 98 SE")
#define WMESTR _T("Windows ME")
#define WNT351STR _T("Windows NT 3.51")
#define WNT4STR _T("Windows NT 4")
#define W2KSTR _T("Windows 2000")
#define WXPSTR _T("Windows XP")
#define W2003STR _T("Windows Server 2003")
@ -61,9 +51,8 @@ static LONG GetNextNameValue(HKEY key, LPCTSTR subkey, LPTSTR szName, LPTSTR szD
#define W2008STR _T("Windows Server 2008")
#define W2008R2STR _T("Windows Server 2008 R2")
#define W7STR _T("Windows 7")
#define WCESTR _T("Windows CE")
#define W2012STR _T("Windows Server 2012")
#define W8STR _T("Windows 8")
#define WUNKNOWN 0
@ -87,6 +76,8 @@ static LONG GetNextNameValue(HKEY key, LPCTSTR subkey, LPTSTR szName, LPTSTR szD
#define W2008 107
#define W2008R2 108
#define W7 109
#define W2012 110
#define W8 111
#define WNTLAST 199
#define WCEFIRST 201
@ -616,59 +607,9 @@ bool GetWinVer(LPTSTR lpszVersion, int nVersionSize, int *pnVersion)
DWORD dwBuildNumber = osinfo.dwBuildNumber & 0xFFFF; // Win 95 needs this
TRACE(_T("%d: %d.%d.%d\n"), dwPlatformId, dwMajorVersion, dwMinorVersion, dwBuildNumber);
if ((dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) && (dwMajorVersion == 4))
if (dwPlatformId == VER_PLATFORM_WIN32_NT)
{
if ((dwMinorVersion < 10) && (dwBuildNumber == 950))
{
cp = W95STR;
nVersion = W95;
}
else if ((dwMinorVersion < 10) &&
((dwBuildNumber > 950) && (dwBuildNumber <= 1080)))
{
cp = W95SP1STR;
nVersion = W95SP1;
}
else if ((dwMinorVersion < 10) && (dwBuildNumber > 1080))
{
cp = W95OSR2STR;
nVersion = W95OSR2;
}
else if ((dwMinorVersion == 10) && (dwBuildNumber == 1998))
{
cp = W98STR;
nVersion = W98;
}
else if ((dwMinorVersion == 10) &&
((dwBuildNumber > 1998) && (dwBuildNumber < 2183)))
{
cp = W98SP1STR;
nVersion = W98SP1;
}
else if ((dwMinorVersion == 10) && (dwBuildNumber >= 2183))
{
cp = W98SESTR;
nVersion = W98SE;
}
else if (dwMinorVersion == 90)
{
cp = WMESTR;
nVersion = WME;
}
}
else if (dwPlatformId == VER_PLATFORM_WIN32_NT)
{
if (dwMajorVersion == 3)
{
cp = WNT351STR;
nVersion = WNT351;
}
else if (dwMajorVersion == 4)
{
cp = WNT4STR;
nVersion = WNT4;
}
else if (dwMajorVersion == 5)
if (dwMajorVersion <= 5)
{
switch (dwMinorVersion)
{
@ -689,21 +630,21 @@ bool GetWinVer(LPTSTR lpszVersion, int nVersionSize, int *pnVersion)
else
{ cp = WVISTASTR; nVersion = WVISTA; }
break;
default:
case 1:
if (bServer)
{ cp = W2008R2STR; nVersion = W2008R2; }
else
{ cp = W7STR; nVersion = W7; }
break;
default:
if (bServer)
{ cp = W2012STR; nVersion = W2012; }
else
{ cp = W8STR; nVersion = W8; }
break;
}
// TBI: Windows 2008 Server
}
}
else if (dwPlatformId == VER_PLATFORM_WIN32_CE)
{
cp = WCESTR;
nVersion = WCE;
}
}
if (lpszVersion != NULL && nVersionSize > 0)

View File

@ -3666,32 +3666,25 @@ unsigned long xvt_sys_get_free_memory_kb()
int xvt_sys_get_os_version()
{
int os = 0;
#ifdef __WXMSW__
int nVersion = 0;
::GetWinVer(NULL, 0, &nVersion);
::GetWinVer(NULL, 0, &nVersion); // Implemented in XFont.cpp, not a Win32 API
switch (nVersion)
{
case 1:
case 2:
case 3: os = XVT_WS_WIN_95; break;
case 4:
case 5:
case 6: os = XVT_WS_WIN_98; break;
case 7: os = XVT_WS_WIN_ME; break;
case 101:
case 102: os = XVT_WS_WIN_NT; break;
case 103: os = XVT_WS_WIN_2000; break;
case 104: os = XVT_WS_WIN_XP; break;
case 105: os = XVT_WS_WIN_2003; break;
case 106: os = XVT_WS_WIN_VISTA; break;
case 107: os = XVT_WS_WIN_2008; break;
case 102: os = XVT_WS_WIN_NT; break;
case 103: os = XVT_WS_WIN_2000; break;
case 104: os = XVT_WS_WIN_XP; break;
case 105: os = XVT_WS_WIN_2003; break;
case 106: os = XVT_WS_WIN_VISTA; break;
case 107: os = XVT_WS_WIN_2008; break;
case 108: os = XVT_WS_WIN_2008R2; break;
case 109:
default : os = XVT_WS_WIN_7; break;
case 109: os = XVT_WS_WIN_7; break;
case 110: os = XVT_WS_WIN_2012; break;
case 111:
default : os = XVT_WS_WIN_8; break;
}
#else
os = XVT_WS_LINUX;
#endif
return os;
}
@ -3713,12 +3706,10 @@ int xvt_sys_get_version(char* os_version, char* ptk_version, int maxsize)
const int version = xvt_sys_get_os_version();
if (os_version && maxsize >= 8)
{
#ifdef __WXMSW__
if (version >= XVT_WS_WIN_VISTA) // wxWidgets non sa descrivere i moderni sistemi Microsoft
::GetWinVer(os_version, maxsize, NULL);
else
#endif
wxStrncpy(os_version, wxGetOsDescription(), maxsize);
wxStrncpy(os_version, wxGetOsDescription(), maxsize);
}
if (ptk_version && maxsize >= 8)
wxStrncpy(ptk_version, wxVERSION_STRING, maxsize);

View File

@ -21,6 +21,8 @@
#define XVT_WS_WIN_2008 309
#define XVT_WS_WIN_2008R2 310
#define XVT_WS_WIN_7 311
#define XVT_WS_WIN_2012 312
#define XVT_WS_WIN_8 313
#define XVT_WS_UNKNOWN 0
#define MACWS 100 /* Apple Macintosh */