2010-02-11 50 views
6

當我試圖掛鉤到COM對象上的事件時,我收到COM異常。這是我正在執行的代碼。 2當C#掛接到事件時發生COMException

COMClass a = IComClass as ComClass;
a.SomeEvent += new SomeEvent_EventHandler(MethodNameHere);

線拋出型收到COMException的帶有以下信息的異常:

System.Runtime.InteropServices.COMException被抓住

消息= 「從HRESULT異常:0x80040202」

Source =「mscorlib」

ErrorCode = -2147220990

堆棧跟蹤: 在System.Runtime.InteropServices.ComTypes.IConnectionPoint.Advise(對象pUnkSink,的Int32 & pdwCookie)

有沒有人有,爲什麼我無法掛接到一個COM事件或是否有任何想法一個解決方案掛鉤到COM事件?

克里斯

回答

3

你得到的錯誤代碼是CONNECT_E_CANNOTCONNECT,一些谷歌好。它表明COM服務器對您嘗試訂閱事件處理程序不滿意。爲什麼它不是你需要找到的東西。幾乎總是需要從組件作者或供應商處獲得幫助。

你可以嘗試的一件事是用Oleview.exe來查看類型庫,並確定你試圖訂閱的事件是否在標記爲默認源接口的調度接口上。如果不是,請嘗試將對象轉換爲調度接口類型,然後訂閱其事件。

4

問題是事件的界面沒有註冊。一旦我爲事件接口添加了註冊表項,就解決了這個問題。我能夠使用OLEViewer.exe獲取界面ID信息。

相關問題