]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utils.cpp
SWIGged updates for wxMSW
[wxWidgets.git] / src / msw / utils.cpp
index d2b2ce1f501eb223a132b25e266fb1793a72af60..0ae445411ba2ce39758939c434d7c7fb5092a325 100644 (file)
@@ -914,31 +914,43 @@ wxString wxGetOsDescription()
 int wxGetOsVersion(int *majorVsn, int *minorVsn)
 {
 #if defined(__WIN32__) && !defined(__SC__)
-    OSVERSIONINFO info;
-    wxZeroMemory(info);
-
-    info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    if ( ::GetVersionEx(&info) )
+    static int ver = -1, major = -1, minor = -1;
+    
+    if ( ver == -1 )
     {
-        if (majorVsn)
-            *majorVsn = info.dwMajorVersion;
-        if (minorVsn)
-            *minorVsn = info.dwMinorVersion;
+        OSVERSIONINFO info;
+        wxZeroMemory(info);
 
-        switch ( info.dwPlatformId )
+        ver = wxWINDOWS;
+        info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+        if ( ::GetVersionEx(&info) )
         {
-            case VER_PLATFORM_WIN32s:
-                return wxWIN32S;
+            major = info.dwMajorVersion;
+            minor = info.dwMinorVersion;
 
-            case VER_PLATFORM_WIN32_WINDOWS:
-                return wxWIN95;
+            switch ( info.dwPlatformId )
+            {
+                case VER_PLATFORM_WIN32s:
+                    ver = wxWIN32S;
+                    break;
 
-            case VER_PLATFORM_WIN32_NT:
-                return wxWINDOWS_NT;
+                case VER_PLATFORM_WIN32_WINDOWS:
+                    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
     int retValue = wxWINDOWS;
     #ifdef __WINDOWS_386__
@@ -1047,7 +1059,7 @@ void wxSleep(int nSecs)
 // deprecated (in favour of wxLog) log functions
 // ----------------------------------------------------------------------------
 
-#if wxUSE_GUI
+#if WXWIN_COMPATIBILITY_2_2
 
 // Output a debug mess., in a system dependent fashion.
 #ifndef __WXMICROWIN__
@@ -1084,6 +1096,10 @@ void wxFatalError(const wxString& msg, const wxString& title)
 }
 #endif // __WXMICROWIN__
 
+#endif // WXWIN_COMPATIBILITY_2_2
+
+#if wxUSE_GUI
+
 // ----------------------------------------------------------------------------
 // functions to work with .INI files
 // ----------------------------------------------------------------------------
@@ -1456,10 +1472,6 @@ WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd)
 #endif // Win16/32
 }
 
-#endif // wxUSE_GUI
-
-#if wxUSE_GUI
-
 // ----------------------------------------------------------------------------
 // Metafile helpers
 // ----------------------------------------------------------------------------