我們有一個託管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