具有“REGCLS_SINGLEUSE”的RegisterClassObjects不会为每个CoCreateInstanceEx调用启动多个进程(out-proc服务器)

时间:2013-01-09 06:20:01

标签: c++ com atl dcom

我使用的是Visual Studio 2008和Win7 64位 我想为每个客户端请求(CoCreateInstanceEx)启动一个新进程(out-proc服务器)。我要遵循的步骤是

覆盖PreMessageLoop。 在PreMessageLoop函数中,我将我的类对象注册为“REGCLS_SINGLEUSE”。 RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER,REGCLS_SINGLEUSE);

因此,对于每个CoCreateInstanceEx调用,应启动一个新的服务器进程。但它只为以下代码片段创建了一个exe。

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) );
}

0 个答案:

没有答案