我们有一个托管 COM 服务器的可执行文件,例如x.exe
. COM 对象在调用站点上实例化如下:
hRes = CoCreateInstance(CLSID_InterceptX, NULL, CLSCTX_SERVER,
IID_IInterceptX, (void**)&pInterceptX);
这一切works fine when x runs as an regular application
。
我们有一个x.exe so that it runs as a service
在windows下封装的工具。在这种情况下,我们永远不会在 x.exe 中收到 COM 调用(通过日志记录验证)。这是奇怪的部分:通过记录调用站点,我可以看出 COM 对象已成功实例化,并且对接口函数的调用也不会产生错误(SUCEEDED(hres)
是真的)。
有任何想法吗?