X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e3be693d0e18531299c8f45d27d79f23f948eba..1dde66dda68a3d712d2f4de0388c4bb3a3375b36:/src/msw/utils.cpp diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index ce67545bdb..4ba9ff2a28 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -34,8 +34,9 @@ #include "wx/apptrait.h" #include "wx/msw/private.h" // includes +#include "wx/msw/missing.h" // CHARSET_HANGUL -#ifdef __GNUWIN32_OLD__ +#if defined(__GNUWIN32_OLD__) || defined(__WXWINCE__) // apparently we need to include winsock.h to get WSADATA and other stuff // used in wxGetFullHostName() with the old mingw32 versions #include @@ -43,7 +44,7 @@ #include "wx/timer.h" -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__) +#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__) && !defined(__WXWINCE__) #include #ifndef __MWERKS__ @@ -73,7 +74,7 @@ #include #endif // USE_NET_API -#if defined(__WIN32__) && !defined(__WXMICROWIN__) +#if defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXWINCE__) #ifndef __UNIX__ #include #endif @@ -89,14 +90,6 @@ #endif #endif -// ---------------------------------------------------------------------------- -// module globals -// ---------------------------------------------------------------------------- - -#if wxUSE_ON_FATAL_EXCEPTION - static bool gs_handleExceptions = FALSE; -#endif - // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -122,7 +115,9 @@ static const wxChar eUSERID[] = wxT("UserId"); // Get hostname only (without domain name) bool wxGetHostName(wxChar *buf, int maxSize) { -#if defined(__WIN32__) && !defined(__WXMICROWIN__) +#if defined(__WXWINCE__) + return FALSE; +#elif defined(__WIN32__) && !defined(__WXMICROWIN__) DWORD nSize = maxSize; if ( !::GetComputerName(buf, &nSize) ) { @@ -155,7 +150,6 @@ bool wxGetFullHostName(wxChar *buf, int maxSize) // shouldn't use winsock.dll (a.k.a. ws2_32.dll) at all so only use this // code if we link with it anyhow #if wxUSE_SOCKETS - WSADATA wsa; if ( WSAStartup(MAKEWORD(1, 1), &wsa) == 0 ) { @@ -202,7 +196,9 @@ bool wxGetFullHostName(wxChar *buf, int maxSize) // Get user ID e.g. jacs bool wxGetUserId(wxChar *buf, int maxSize) { -#if defined(__WIN32__) && !defined(__win32s__) && !defined(__WXMICROWIN__) +#if defined(__WXWINCE__) + return FALSE; +#elif defined(__WIN32__) && !defined(__win32s__) && !defined(__WXMICROWIN__) DWORD nSize = maxSize; if ( ::GetUserName(buf, &nSize) == 0 ) { @@ -240,7 +236,9 @@ bool wxGetUserId(wxChar *buf, int maxSize) // Get user name e.g. Julian Smart bool wxGetUserName(wxChar *buf, int maxSize) { -#ifdef USE_NET_API +#if defined(__WXWINCE__) + return FALSE; +#elif defined(USE_NET_API) CHAR szUserName[256]; if ( !wxGetUserId(szUserName, WXSIZEOF(szUserName)) ) return FALSE; @@ -309,7 +307,7 @@ error: #else // !USE_NET_API // Could use NIS, MS-Mail or other site specific programs // Use wxWindows configuration data - bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxT(""), buf, maxSize - 1) != 0; + bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxEmptyString, buf, maxSize - 1) != 0; if ( !ok ) { ok = wxGetUserId(buf, maxSize); @@ -328,7 +326,7 @@ const wxChar* wxGetHomeDir(wxString *pstr) { wxString& strDir = *pstr; - #if defined(__UNIX__) +#if defined(__UNIX__) const wxChar *szHome = wxGetenv("HOME"); if ( szHome == NULL ) { // we're homeless... @@ -348,7 +346,9 @@ const wxChar* wxGetHomeDir(wxString *pstr) cygwin_conv_to_full_win32_path(strDir, windowsPath); strDir = windowsPath; #endif - #else // Windows +#elif defined(__WXWINCE__) + // Nothing +#else #ifdef __WIN32__ strDir.clear(); @@ -408,13 +408,12 @@ const wxChar* wxGetHomeDir(wxString *pstr) wxString strPath; ::GetModuleFileName(::GetModuleHandle(NULL), - strPath.GetWriteBuf(MAX_PATH), MAX_PATH); - strPath.UngetWriteBuf(); + wxStringBuffer(strPath, MAX_PATH), MAX_PATH); // extract the dir name wxSplitPath(strPath, &strDir, NULL, NULL); - #endif // UNIX/Win +#endif // UNIX/Win return strDir.c_str(); } @@ -457,6 +456,9 @@ bool wxDirExists(const wxString& dir) bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) { +#ifdef __WXWINCE__ + return FALSE; +#else if ( path.empty() ) return FALSE; @@ -556,6 +558,8 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) } return TRUE; +#endif + // __WXWINCE__ } // ---------------------------------------------------------------------------- @@ -564,7 +568,9 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) bool wxGetEnv(const wxString& var, wxString *value) { -#ifdef __WIN16__ +#ifdef __WXWINCE__ + return FALSE; +#elif defined(__WIN16__) const wxChar* ret = wxGetenv(var); if ( !ret ) return FALSE; @@ -586,8 +592,8 @@ bool wxGetEnv(const wxString& var, wxString *value) if ( value ) { - (void)::GetEnvironmentVariable(var, value->GetWriteBuf(dwRet), dwRet); - value->UngetWriteBuf(); + (void)::GetEnvironmentVariable(var, wxStringBuffer(*value, dwRet), + dwRet); } return TRUE; @@ -598,7 +604,7 @@ bool wxSetEnv(const wxString& var, const wxChar *value) { // some compilers have putenv() or _putenv() or _wputenv() but it's better // to always use Win32 function directly instead of dealing with them -#if defined(__WIN32__) +#if defined(__WIN32__) && !defined(__WXWINCE__) if ( !::SetEnvironmentVariable(var, value) ) { wxLogLastError(_T("SetEnvironmentVariable")); @@ -810,6 +816,9 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc) // Execute a program in an Interactive Shell bool wxShell(const wxString& command) { +#ifdef __WXWINCE__ + return FALSE; +#else wxChar *shell = wxGetenv(wxT("COMSPEC")); if ( !shell ) shell = (wxChar*) wxT("\\COMMAND.COM"); @@ -827,12 +836,15 @@ bool wxShell(const wxString& command) } return wxExecute(cmd, wxEXEC_SYNC) == 0; +#endif } // Shutdown or reboot the PC bool wxShutdown(wxShutdownFlags wFlags) { -#ifdef __WIN32__ +#ifdef __WXWINCE__ + return FALSE; +#elif defined(__WIN32__) bool bOK = TRUE; if ( wxGetOsVersion(NULL, NULL) == wxWINDOWS_NT ) // if is NT or 2K @@ -1006,6 +1018,11 @@ int wxAppTraits::GetOSVersion(int *verMaj, int *verMin) case VER_PLATFORM_WIN32_NT: s_ver = wxWINDOWS_NT; break; +#ifdef __WXWINCE__ + case VER_PLATFORM_WIN32_CE: + s_ver = wxWINDOWS_CE; + break; +#endif } } } @@ -1185,40 +1202,3 @@ extern long wxCharsetToCodepage(const wxChar *name) #endif // wxUSE_FONTMAP/!wxUSE_FONTMAP -// ---------------------------------------------------------------------------- -// wxApp::OnFatalException() support -// ---------------------------------------------------------------------------- - -bool wxHandleFatalExceptions(bool doit) -{ -#if wxUSE_ON_FATAL_EXCEPTION - // assume this can only be called from the main thread - gs_handleExceptions = doit; - - return TRUE; -#else - wxFAIL_MSG(_T("set wxUSE_ON_FATAL_EXCEPTION to 1 to use this function")); - - (void)doit; - return FALSE; -#endif -} - -#if wxUSE_ON_FATAL_EXCEPTION - -extern unsigned long wxGlobalSEHandler() -{ - if ( gs_handleExceptions && wxTheApp ) - { - // give the user a chance to do something special about this - wxTheApp->OnFatalException(); - - // this will execute our handler and terminate the process - return EXCEPTION_EXECUTE_HANDLER; - } - - return EXCEPTION_CONTINUE_SEARCH; -} - -#endif // wxUSE_ON_FATAL_EXCEPTION -