Aaron -
the TestStand automation manager allows you to pass a interface between two processes without having to pass it via a function call to another "client" process. In a TestStand application you could call RegisterInterface to register the engine, and the client application could call AcquireInterface to get the engine. The key is that one of the applications should call UnregisterInterface when the client has gotten the interface or the client no longer should be able to get it. I am not sure what the effects during shutdown are of having an external process hold onto a reference to the engine.
There is a set of dispatch functions also.
The create functions are there so that an application can request that the shared object be created in the automation managers process instead of in the requesting application's process.
Note that this is an internal TestStand component, so there is no documentation and support is limited.
Scott Richardson
https://testeract.com