#endif
#ifndef WX_PRECOMP
+ #include "wx/msw/missing.h" // CHARSET_HANGUL
#include "wx/utils.h"
#include "wx/app.h"
#include "wx/intl.h"
#include "wx/confbase.h" // for wxExpandEnvVars()
#include "wx/msw/private.h" // includes <windows.h>
-#include "wx/msw/missing.h" // CHARSET_HANGUL
#if defined(__CYGWIN__)
//CYGWIN gives annoying warning about runtime stuff if we don't do this
#elif defined(__WIN32__)
bool bOK = true;
- if ( wxGetOsVersion(NULL, NULL) == wxWINDOWS_NT ) // if is NT or 2K
+ if ( wxGetOsVersion(NULL, NULL) == wxOS_WINDOWS_NT ) // if is NT or 2K
{
// Get a token for this process.
HANDLE hToken;
return str;
}
-// taken from http://blogs.msdn.com/oldnewthing/archive/2005/02/01/364563.aspx
bool wxIsPlatform64Bit()
{
#if defined(_WIN64)
return true; // 64-bit programs run only on Win64
-#elif defined(_WIN32)
- // 32-bit programs run on both 32-bit and 64-bit Windows
- // so must sniff
- BOOL f64 = FALSE;
- return IsWow64Process(GetCurrentProcess(), &f64) && f64;
-#else
- return false; // Win64 does not support Win16
-#endif
+#else // Win32
+ // 32-bit programs run on both 32-bit and 64-bit Windows so check
+ typedef BOOL (WINAPI *IsWow64Process_t)(HANDLE, BOOL *);
+
+ wxDynamicLibrary dllKernel32(_T("kernel32.dll"));
+ IsWow64Process_t pfnIsWow64Process =
+ (IsWow64Process_t)dllKernel32.RawGetSymbol(_T("IsWow64Process"));
+
+ BOOL wow64 = FALSE;
+ if ( pfnIsWow64Process )
+ {
+ pfnIsWow64Process(::GetCurrentProcess(), &wow64);
+ }
+ //else: running under a system without Win64 support
+
+ return wow64 != FALSE;
+#endif // Win64/Win32
}
wxOperatingSystemId wxGetOsVersion(int *verMaj, int *verMin)
if (verMin) *verMin = info.dwMinorVersion;
}
-#if defined(__WXHANDHELD__) || defined( __WXWINCE__ )
- return wxOS_WINDOWS_WINCE;
+#if defined( __WXWINCE__ )
+ return wxOS_WINDOWS_CE;
#elif defined( __WXMICROWIN__ )
return wxOS_WINDOWS_MICRO;
#else
verMin;
switch ( wxGetOsVersion(&verMaj, &verMin) )
{
- case wxWIN95:
+ case wxOS_WINDOWS_9X:
if ( verMaj == 4 )
{
switch ( verMin )
}
break;
- case wxWINDOWS_NT:
+ case wxOS_WINDOWS_NT:
switch ( verMaj )
{
case 3:
}
break;
+ default:
+ // Do nothing just to silence GCC warning
+ break;
}
return wxWinVersion_Unknown;
case wxFONTENCODING_ISO8859_8: ret = 28598; break;
case wxFONTENCODING_ISO8859_9: ret = 28599; break;
case wxFONTENCODING_ISO8859_10: ret = 28600; break;
- case wxFONTENCODING_ISO8859_11: ret = 28601; break;
+ case wxFONTENCODING_ISO8859_11: ret = 874; break;
// case wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
case wxFONTENCODING_ISO8859_13: ret = 28603; break;
- case wxFONTENCODING_ISO8859_14: ret = 28604; break;
+ // case wxFONTENCODING_ISO8859_14: ret = 28604; break; // no correspondence on Windows
case wxFONTENCODING_ISO8859_15: ret = 28605; break;
case wxFONTENCODING_KOI8: ret = 20866; break;
case wxFONTENCODING_KOI8_U: ret = 21866; break;