我们有一个托管COM服务器的可执行文件,例如x.exe
。在呼叫站点上COM对象的实例化如下:将可执行文件作为服务运行时,COM调用不起作用
hRes = CoCreateInstance(CLSID_InterceptX, NULL, CLSCTX_SERVER,
IID_IInterceptX, (void**)&pInterceptX);
全是works fine when x runs as an regular application
。
我们有一个在Windows下封装x.exe so that it runs as a service
的工具。在这种情况下,我们永远不会收到x.exe中的COM调用(由日志记录验证)。这是一个奇怪的部分:从记录调用网站,我可以告诉COM对象已成功实例化,并且对接口函数的调用不会产生错误(SUCEEDED(hres)
为真)。
任何想法?
您是否试过Process Monitor? – sharptooth 2010-06-03 13:00:02
很难与HRESULT争论。听起来问题在于你的日志代码。 – 2010-06-03 13:55:29