]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utils.cpp
Some improvements to accessibility behaviour
[wxWidgets.git] / src / msw / utils.cpp
index 707c1d4664cb6da77bd7367b5814f1e6888ce172..986e6602bfc713e5e4e46590a338429b4e75c68d 100644 (file)
 #endif
 #endif  //WX_PRECOMP
 
 #endif
 #endif  //WX_PRECOMP
 
-// In some mingws there is a missing extern "C" int the winsock header,
-// so we put it here just to be safe. Note that this must appear _before_
-// #include "wx/msw/private.h" which itself includes <windows.h>, as this
-// one in turn includes <winsock.h> unless we define WIN32_LEAN_AND_MEAN.
-//
-#if defined(__WIN32__) && !defined(__TWIN32__) && !defined(__WXMICROWIN__) && ! (defined(__GNUWIN32__) && !defined(__MINGW32__))
-extern "C" {
-    #include <winsock.h>    // we use socket functions in wxGetFullHostName()
-}
-#endif
-
 #include "wx/msw/private.h"     // includes <windows.h>
 
 #include "wx/msw/private.h"     // includes <windows.h>
 
+#ifdef __GNUWIN32_OLD__
+    // apparently we need to include winsock.h to get WSADATA and other stuff
+    // used in wxGetFullHostName() with the old mingw32 versions
+    #include <winsock.h>
+#endif
+
 #include "wx/timer.h"
 
 #include "wx/timer.h"
 
-#if !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__)
+#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__)
     #include <direct.h>
 
     #ifndef __MWERKS__
     #include <direct.h>
 
     #ifndef __MWERKS__
@@ -83,8 +78,10 @@ extern "C" {
     #include <lm.h>
 #endif // USE_NET_API
 
     #include <lm.h>
 #endif // USE_NET_API
 
-#if defined(__WIN32__) && !defined(__WXWINE__) && !defined(__WXMICROWIN__)
-    #include <io.h>
+#if defined(__WIN32__) && !defined(__WXMICROWIN__)
+    #ifndef __UNIX__
+        #include <io.h>
+    #endif
 
     #ifndef __GNUWIN32__
         #include <shellapi.h>
 
     #ifndef __GNUWIN32__
         #include <shellapi.h>
@@ -199,12 +196,12 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
                 if ( pHostEnt )
                 {
                     // Windows will use DNS internally now
                 if ( pHostEnt )
                 {
                     // Windows will use DNS internally now
-                    pHostEnt = gethostbyaddr(pHostEnt->h_addr, 4, PF_INET);
+                    pHostEnt = gethostbyaddr(pHostEnt->h_addr, 4, AF_INET);
                 }
 
                 if ( pHostEnt )
                 {
                 }
 
                 if ( pHostEnt )
                 {
-                    host = pHostEnt->h_name;
+                    host = wxString::FromAscii(pHostEnt->h_name);
                 }
             }
         }
                 }
             }
         }
@@ -605,14 +602,16 @@ bool wxGetEnv(const wxString& var, wxString *value)
 {
 #ifdef __WIN16__
     const wxChar* ret = wxGetenv(var);
 {
 #ifdef __WIN16__
     const wxChar* ret = wxGetenv(var);
-    if (ret)
+    if ( !ret )
+        return FALSE;
+
+    if ( value )
     {
         *value = ret;
     {
         *value = ret;
-        return TRUE;
     }
     }
-    else
-        return FALSE;
-#else
+
+    return TRUE;
+#else // Win32
     // first get the size of the buffer
     DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
     if ( !dwRet )
     // first get the size of the buffer
     DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
     if ( !dwRet )
@@ -628,7 +627,7 @@ bool wxGetEnv(const wxString& var, wxString *value)
     }
 
     return TRUE;
     }
 
     return TRUE;
-#endif
+#endif // Win16/32
 }
 
 bool wxSetEnv(const wxString& var, const wxChar *value)
 }
 
 bool wxSetEnv(const wxString& var, const wxChar *value)
@@ -665,6 +664,8 @@ struct wxFindByPidParams
 
     // the PID we're looking from
     DWORD pid;
 
     // the PID we're looking from
     DWORD pid;
+
+    DECLARE_NO_COPY_CLASS(wxFindByPidParams)
 };
 
 // wxKill helper: EnumWindows() callback which is used to find the first (top
 };
 
 // wxKill helper: EnumWindows() callback which is used to find the first (top
@@ -872,7 +873,7 @@ bool wxShell(const wxString& command)
         cmd.Printf(wxT("%s /c %s"), shell, command.c_str());
     }
 
         cmd.Printf(wxT("%s /c %s"), shell, command.c_str());
     }
 
-    return wxExecute(cmd, TRUE /* sync */) != 0;
+    return wxExecute(cmd, wxEXEC_SYNC) == 0;
 }
 
 // Shutdown or reboot the PC 
 }
 
 // Shutdown or reboot the PC 
@@ -952,6 +953,15 @@ long wxGetFreeMemory()
 #endif
 }
 
 #endif
 }
 
+unsigned long wxGetProcessId()
+{
+#ifdef __WIN32__
+    return ::GetCurrentProcessId();
+#else
+    return 0;
+#endif
+}
+
 // Emit a beeeeeep
 void wxBell()
 {
 // Emit a beeeeeep
 void wxBell()
 {