+
+#if wxUSE_STREAMS
+ // these streams are connected to stdout, stderr and stdin of the child
+ // process respectively (yes, m_inputStream corresponds to stdout -- very
+ // confusing but too late to change now)
+ wxInputStream *m_inputStream,
+ *m_errorStream;
+ wxOutputStream *m_outputStream;
+#endif // wxUSE_STREAMS
+
+ bool m_redirect;
+
+ DECLARE_DYNAMIC_CLASS(wxProcess)
+ DECLARE_NO_COPY_CLASS(wxProcess)
+};
+
+// ----------------------------------------------------------------------------
+// wxProcess events
+// ----------------------------------------------------------------------------
+
+BEGIN_DECLARE_EVENT_TYPES()
+ DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_END_PROCESS, 440)
+END_DECLARE_EVENT_TYPES()
+
+class WXDLLIMPEXP_BASE wxProcessEvent : public wxEvent
+{
+public:
+ wxProcessEvent(int nId = 0, int pid = 0, int exitcode = 0) : wxEvent(nId)
+ {
+ m_eventType = wxEVT_END_PROCESS;
+ m_pid = pid;
+ m_exitcode = exitcode;
+ }
+
+ // accessors
+ // PID of process which terminated
+ int GetPid() { return m_pid; }
+
+ // the exit code
+ int GetExitCode() { return m_exitcode; }
+
+ // implement the base class pure virtual
+ virtual wxEvent *Clone() const { return new wxProcessEvent(*this); }
+
+public:
+ int m_pid,
+ m_exitcode;
+
+ DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxProcessEvent)