X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7eb872f4d67141f723745f04b478dda03907d4b6..df1f4832e5e08438255594172b4c2b31b34f6453:/src/msw/utils.cpp diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index eb91843d61..736a8c90af 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -94,11 +94,6 @@ #endif #endif -// 260 was taken from windef.h -#ifndef MAX_PATH - #define MAX_PATH 260 -#endif - // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -434,12 +429,8 @@ const wxChar* wxGetHomeDir(wxString *pstr) } else // fall back to the program directory { - wxString strPath; - ::GetModuleFileName(::GetModuleHandle(NULL), - wxStringBuffer(strPath, MAX_PATH), MAX_PATH); - - // extract the dir name - wxSplitPath(strPath, &strDir, NULL, NULL); + // extract the directory component of the program file name + wxSplitPath(wxGetFullModuleName(), &strDir, NULL, NULL); } #endif // UNIX/Win @@ -946,8 +937,39 @@ wxString wxGetOsDescription() break; case VER_PLATFORM_WIN32_WINDOWS: - str.Printf(_("Windows 9%c"), - info.dwMinorVersion == 0 ? _T('5') : _T('8')); + switch (info.dwMinorVersion) + { + case 0: + if ( info.szCSDVersion[1] == 'B' || + info.szCSDVersion[1] == 'C' ) + { + str = _("Windows 95 OSR2"); + } + else + { + str = _("Windows 95"); + } + break; + case 10: + if ( info.szCSDVersion[1] == 'B' || + info.szCSDVersion[1] == 'C' ) + { + str = _("Windows 98 SE"); + } + else + { + str = _("Windows 98"); + } + break; + case 90: + str = _("Windows ME"); + break; + default: + str.Printf(_("Windows 9x (%d.%d)"), + info.dwMajorVersion, + info.dwMinorVersion); + break; + } if ( !wxIsEmpty(info.szCSDVersion) ) { str << _T(" (") << info.szCSDVersion << _T(')'); @@ -955,10 +977,31 @@ wxString wxGetOsDescription() break; case VER_PLATFORM_WIN32_NT: - str.Printf(_T("Windows NT %lu.%lu (build %lu"), + if ( info.dwMajorVersion == 5 ) + { + switch ( info.dwMinorVersion ) + { + case 0: + str.Printf(_("Windows 2000 (build %lu"), + info.dwBuildNumber); + break; + case 1: + str.Printf(_("Windows XP (build %lu"), + info.dwBuildNumber); + break; + case 2: + str.Printf(_("Windows Server 2003 (build %lu"), + info.dwBuildNumber); + break; + } + } + if ( wxIsEmpty(str) ) + { + str.Printf(_("Windows NT %lu.%lu (build %lu"), info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber); + } if ( !wxIsEmpty(info.szCSDVersion) ) { str << _T(", ") << info.szCSDVersion;