Windows provides the WinExec and LoadModule functions, which you can use in your application to run another application. LoadModule runs Windows applications only, but WinExec runs both Windows and non-Windows applications. Your application should call these functions instead of the C run-time exec and spawn family of functions. Like the spawn function family, WinExec and LoadModule are nonpreemptive; that is, they allow your application to continue running while the spawned application runs.
WinExec provides a simple interface for spawning a child process. LoadModule is more difficult to use because it requires a parameter block for the application you are running, but this also allows you greater control over the environment in which the application runs.