cache return value of wxGetOsVersion

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2002-02-17 23:28:16 +00:00
parent 0c9a1c3279
commit 6af638ed35

View File

@@ -914,31 +914,43 @@ wxString wxGetOsDescription()
int wxGetOsVersion(int *majorVsn, int *minorVsn) int wxGetOsVersion(int *majorVsn, int *minorVsn)
{ {
#if defined(__WIN32__) && !defined(__SC__) #if defined(__WIN32__) && !defined(__SC__)
OSVERSIONINFO info; static int ver = -1, major = -1, minor = -1;
wxZeroMemory(info);
if ( ver == -1 )
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if ( ::GetVersionEx(&info) )
{ {
if (majorVsn) OSVERSIONINFO info;
*majorVsn = info.dwMajorVersion; wxZeroMemory(info);
if (minorVsn)
*minorVsn = info.dwMinorVersion;
switch ( info.dwPlatformId ) ver = wxWINDOWS;
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if ( ::GetVersionEx(&info) )
{ {
case VER_PLATFORM_WIN32s: major = info.dwMajorVersion;
return wxWIN32S; minor = info.dwMinorVersion;
case VER_PLATFORM_WIN32_WINDOWS: switch ( info.dwPlatformId )
return wxWIN95; {
case VER_PLATFORM_WIN32s:
ver = wxWIN32S;
break;
case VER_PLATFORM_WIN32_NT: case VER_PLATFORM_WIN32_WINDOWS:
return wxWINDOWS_NT; ver = wxWIN95;
break;
case VER_PLATFORM_WIN32_NT:
ver = wxWINDOWS_NT;
break;
}
} }
} }
return wxWINDOWS; // error if we get here, return generic value if (majorVsn && major != -1)
*majorVsn = major;
if (minorVsn && minor != -1)
*minorVsn = minor;
return ver;
#else // Win16 #else // Win16
int retValue = wxWINDOWS; int retValue = wxWINDOWS;
#ifdef __WINDOWS_386__ #ifdef __WINDOWS_386__