2014-04-17 224 views
0

我使用VSTO for Excel 2007並使用IConnectionPointContainer管理Excel應用程序事件,而不是直接訂閱它們。現在在Office 2013之前,我沒有使用VSTO,而是實現了IExtensibility2接口。我用來獲取直接Excel應用程序對象和管理Excel事件是按以下步驟進行:VSTO Excel加載項投擲異常

IConnectionPoint _eventSourceConnectionPoint; 
ComObjLifetimeManager _eventSourceConnectionPointLifeManager; 

var _eventSource = excelApplication as IConnectionPointContainer; 
_eventSource.FindConnectionPoint(ref _xlAppEventsIID, out _eventSourceConnectionPoint); 
_eventSourceConnectionPointLifeManager = new ComObjLifetimeManager(_eventSourceConnectionPoint); 
_eventSourceConnectionPoint.Advise(this, out _connectionCookie); 

過去,這完全正常工作之前。現在我正在使用VSTO,因此調用_eventSource.FindConnectionPoint()方法時出現TargetInvocationException異常。

接口不支持後期綁定的電話,因爲它沒有從IDispatch接口派生

所有東西都是相同的,不同的是我現在從獲取Excel應用程序對象「this.Application以前「而不是通過IExtensibility2接口免費獲得。

回答