Visual Studio 2008 と Win7 64 ビットを使用しています。クライアント要求 (CoCreateInstanceEx) ごとに新しいプロセス (アウトプロセス サーバー) を開始したいと考えています。私が達成するために従った手順は次のとおりです
PreMessageLoop をオーバーライドします。PreMessageLoop 関数では、クラス オブジェクトを「REGCLS_SINGLEUSE」として登録しています。RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, REGCLS_SINGLEUSE);
そのため、CoCreateInstanceEx 呼び出しごとに、新しいサーバー プロセスを開始する必要があります。ただし、次のコード スニペットの exe は 1 つしか作成していません。
for(int i=0; i < 5; i++)
{
// COSERVERINFO and MULTI_QI creation and initialization is done here.
hr = ::CoCreateInstanceEx(__uuidof(MyClass), NULL, CLSCTX_SERVER, &oServerInfo, 1, multi_qi);
_ASSERTE( SUCCEEDED(hr) );
}