#include "wx/app.h"
#include "wx/intl.h"
#include "wx/log.h"
- #include "wx/timer.h"
#endif //WX_PRECOMP
#include "wx/msw/registry.h"
#include "wx/confbase.h" // for wxExpandEnvVars()
#include "wx/msw/private.h" // includes <windows.h>
-#include "wx/msw/missing.h" // CHARSET_HANGUL
+#include "wx/msw/missing.h" // for CHARSET_HANGUL
#if defined(__CYGWIN__)
//CYGWIN gives annoying warning about runtime stuff if we don't do this
// get full hostname (with domain name if possible)
bool wxGetFullHostName(wxChar *buf, int maxSize)
{
-#if !defined( __WXMICROWIN__) && wxUSE_DYNAMIC_LOADER && wxUSE_SOCKETS
+#if !defined( __WXMICROWIN__) && wxUSE_DYNLIB_CLASS && wxUSE_SOCKETS
// TODO should use GetComputerNameEx() when available
// we don't want to always link with Winsock DLL as we might not use it at
{
wxCHECK_MSG( buf && ( maxSize > 0 ), false,
_T("empty buffer in wxGetUserName") );
-#if defined(__WXWINCE__)
+#if defined(__WXWINCE__) && wxUSE_REGKEY
wxLogNull noLog;
wxRegKey key(wxRegKey::HKCU, wxT("ControlPanel\\Owner"));
if(!key.Open(wxRegKey::Read))
wxString& strDir = *pstr;
// first branch is for Cygwin
-#if defined(__UNIX__)
+#if defined(__UNIX__) && !defined(__WINE__)
const wxChar *szHome = wxGetenv("HOME");
if ( szHome == NULL ) {
// we're homeless...
ULARGE_INTEGER bytesFree, bytesTotal;
// may pass the path as is, GetDiskFreeSpaceEx() is smart enough
- if ( !pGetDiskFreeSpaceEx(path,
+ if ( !pGetDiskFreeSpaceEx(path.fn_str(),
&bytesFree,
&bytesTotal,
NULL) )
// FIXME: this is wrong, we should extract the root drive from path
// instead, but this is the job for wxFileName...
- if ( !::GetDiskFreeSpace(path,
+ if ( !::GetDiskFreeSpace(path.fn_str(),
&lSectorsPerCluster,
&lBytesPerSector,
&lNumberOfFreeClusters,
return false;
#else // Win32
// first get the size of the buffer
- DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
+ DWORD dwRet = ::GetEnvironmentVariable(var.wx_str(), NULL, 0);
if ( !dwRet )
{
// this means that there is no such variable
if ( value )
{
- (void)::GetEnvironmentVariable(var, wxStringBuffer(*value, dwRet),
+ (void)::GetEnvironmentVariable(var.wx_str(),
+ wxStringBuffer(*value, dwRet),
dwRet);
}
#endif // WinCE/32
}
-bool wxSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
- const wxChar *WXUNUSED_IN_WINCE(value))
+bool wxDoSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
+ const wxChar *WXUNUSED_IN_WINCE(value))
{
// some compilers have putenv() or _putenv() or _wputenv() but it's better
// to always use Win32 function directly instead of dealing with them
// no environment variables under CE
return false;
#else
- if ( !::SetEnvironmentVariable(var, value) )
+ if ( !::SetEnvironmentVariable(var.wx_str(), value) )
{
wxLogLastError(_T("SetEnvironmentVariable"));
#endif
}
+bool wxSetEnv(const wxString& variable, const wxString& value)
+{
+ return wxDoSetEnv(variable, value.wx_str());
+}
+
+bool wxUnsetEnv(const wxString& variable)
+{
+ return wxDoSetEnv(variable, NULL);
+}
+
// ----------------------------------------------------------------------------
// process management
// ----------------------------------------------------------------------------
#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;
{
#if defined(_WIN64)
return true; // 64-bit programs run only on Win64
-#else // Win32
+#elif wxUSE_DYNLIB_CLASS // 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"));
+ IsWow64Process_t pfnIsWow64Process =
+ (IsWow64Process_t)dllKernel32.RawGetSymbol(_T("IsWow64Process"));
BOOL wow64 = FALSE;
if ( pfnIsWow64Process )
{
- (*pfnIsWow64Process)(::GetCurrentProcess(), &wow64);
+ pfnIsWow64Process(::GetCurrentProcess(), &wow64);
}
//else: running under a system without Win64 support
return wow64 != FALSE;
+#else
+ return false;
#endif // Win64/Win32
}
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;
return (long) ret;
}
-extern long wxCharsetToCodepage(const wxChar *name)
+extern long wxCharsetToCodepage(const char *name)
{
// first get the font encoding for this charset
if ( !name )
#include "wx/msw/registry.h"
// this should work if Internet Exploiter is installed
-extern long wxCharsetToCodepage(const wxChar *name)
+extern long wxCharsetToCodepage(const char *name)
{
if (!name)
return GetACP();
long CP = -1;
+#if wxUSE_REGKEY
wxString path(wxT("MIME\\Database\\Charset\\"));
wxString cn(name);
!key.QueryValue(wxT("AliasForCharset"), cn))
break;
}
+#endif // wxUSE_REGKEY
return CP;
}