Outlook 2010插件-NewExplorer从不启动
本文关键字:启动 -NewExplorer 2010 插件 Outlook | 更新日期: 2023-09-27 18:26:33
由于某些原因,在我的应用程序中,我的FolderSwitch在与应用程序一起打开的主资源管理器上工作,但NewExplorer事件从未启动,因此FolderSwitch事件显然不会在新的资源管理器中启动。
我不明白为什么这个活动没有启动。
private List<_Outlook.Explorer> ListOfExplorerWindows = new List<_Outlook.Explorer> { };
private _Outlook.Application Application;
public void OnConnection(object Application, Extensibility.ext_ConnectMode ConnectMode, object AddInInst, ref Array custom)
{
this.Application = (_Outlook.Application)Application;
}
public void OnStartupComplete(ref Array custom)
{
_Outlook.Explorer Explorer = this.Application.ActiveExplorer();
Explorer.FolderSwitch += new _Outlook.ExplorerEvents_10_FolderSwitchEventHandler(Explorer_FolderSwitch);
ListOfExplorerWindows.Add(Explorer);
this.Application.Explorers.NewExplorer += new _Outlook.ExplorersEvents_NewExplorerEventHandler(Explorers_NewExplorer);
}
private void Explorers_NewExplorer(_Outlook.Explorer Explorer)
{
Explorer.FolderSwitch += new _Outlook.ExplorerEvents_10_FolderSwitchEventHandler(Explorer_FolderSwitch);
ListOfExplorerWindows.Add(Explorer);
}
对于使用VSTO时要保留的任何事件,都需要保留一个类级成员(Explorer
、Application
、Inspector
、CommandBar
等),以防止GC线程删除它们。这是一个资源优化,但也可能是一个痛苦的教训。
请参阅MSDN论坛中有关活动生存期的相关帖子或类似的SO帖子。