]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utilsexc.cpp
defs.h doubled include fixed.
[wxWidgets.git] / src / msw / utilsexc.cpp
index 53c3b2f5f5ee56091930c7a9b6a73ad23ca0d956..accecb36450b28f5e5a538eaea40995bfdde25e2 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msw/utilsexec.cpp
+// Name:        src/msw/utilsexc.cpp
 // Purpose:     wxExecute implementation for MSW
 // Author:      Julian Smart
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -487,16 +483,16 @@ size_t wxPipeOutputStream::OnSysWrite(const void *buffer, size_t len)
 #if wxUSE_IPC
 
 // connect to the given server via DDE and ask it to execute the command
-static bool wxExecuteDDE(const wxString& ddeServer,
-                         const wxString& ddeTopic,
-                         const wxString& ddeCommand)
+bool
+wxExecuteDDE(const wxString& ddeServer,
+             const wxString& ddeTopic,
+             const wxString& ddeCommand)
 {
     bool ok wxDUMMY_INITIALIZE(false);
 
     wxDDEClient client;
-    wxConnectionBase *conn = client.MakeConnection(wxEmptyString,
-                                                   ddeServer,
-                                                   ddeTopic);
+    wxConnectionBase *
+        conn = client.MakeConnection(wxEmptyString, ddeServer, ddeTopic);
     if ( !conn )
     {
         ok = false;
@@ -710,23 +706,37 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
 
     PROCESS_INFORMATION pi;
     DWORD dwFlags = CREATE_SUSPENDED;
+
 #ifndef __WXWINCE__
     dwFlags |= CREATE_DEFAULT_ERROR_MODE ;
+#else
+    // we are assuming commands without spaces for now
+    wxString moduleName = command.BeforeFirst(wxT(' '));
+    wxString arguments = command.AfterFirst(wxT(' '));
 #endif
 
     bool ok = ::CreateProcess
                 (
-                 NULL,              // application name (use only cmd line)
+                    // WinCE requires appname to be non null
+                    // Win32 allows for null
+#ifdef __WXWINCE__
+                 (wxChar *)
+                 moduleName.c_str(), // application name
                  (wxChar *)
-                 command.c_str(),   // full command line
-                 NULL,              // security attributes: defaults for both
-                 NULL,              //   the process and its main thread
-                 redirect,          // inherit handles if we use pipes
-                 dwFlags,           // process creation flags
-                 NULL,              // environment (use the same)
-                 NULL,              // current directory (use the same)
-                 &si,               // startup info (unused here)
-                 &pi                // process info
+                 arguments.c_str(),  // arguments
+#else
+                 NULL,               // application name (use only cmd line)
+                 (wxChar *)
+                 command.c_str(),    // full command line
+#endif
+                 NULL,               // security attributes: defaults for both
+                 NULL,               //   the process and its main thread
+                 redirect,           // inherit handles if we use pipes
+                 dwFlags,            // process creation flags
+                 NULL,               // environment (use the same)
+                 NULL,               // current directory (use the same)
+                 &si,                // startup info (unused here)
+                 &pi                 // process info
                 ) != 0;
 
 #if wxUSE_STREAMS && !defined(__WXWINCE__)
@@ -942,4 +952,3 @@ long wxExecute(wxChar **argv, int flags, wxProcess *handler)
 
     return wxExecute(command, flags, handler);
 }
-