Could you consider adding a true Process class to launch external processes ?
Under windows you could use CreateProcess / ShellExecute or alike functions.
Under Linux/BSD you could use the classic exec / execve functions.
Currently, launching an external process must be platform specific code, which I think is bad.
Yes it does. But it doesn’t allow the process to be monitored (like checking if a process you’ve launched is ready to process messages, or is still here, what was its error return, and so on).
The Process class interface is exactly what is required, but being limited to the current process is not enough.