/////////////////////////////////////////////////////////////////////////////
-// Name: msw/utilsexec.cpp
+// Name: src/msw/utilsexc.cpp
// Purpose: wxExecute implementation for MSW
// Author: Julian Smart
// Modified by:
#include "wx/app.h"
#include "wx/intl.h"
#include "wx/log.h"
+ #if wxUSE_STREAMS
+ #include "wx/stream.h"
+ #endif
+ #include "wx/module.h"
#endif
-#include "wx/stream.h"
#include "wx/process.h"
#include "wx/apptrait.h"
-#include "wx/module.h"
#include "wx/msw/private.h"
#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;
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__)
return wxExecute(command, flags, handler);
}
-