ThisAddIn_ShutDown不会执行

时间:2012-09-07 06:09:27

标签: c# vsto outlook-addin

在我的Outlook加载项中,我有以下几行。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
  MessageBox.Show("Hazaa!");            
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
  MessageBox.Show("Shazoo...");
}

虽然Outlook用一个很酷的“Hazaa”来迎接我!一开始,当我'关闭它时,它拒绝对我说“Sahzoo ......”。这两种方法都使用默认的自动生成代码以相同的方式注册,因此我不怀疑那里有任何错误。我能想到的另一个解释是,当应用程序已经离开GUI并且隐藏了shazooing时,将执行关闭过程。

是这样吗?如果没有,我怎么能让Outlook shazoo我?如果是这样,我怎么能直观地通知用户这样的shazoo?

编辑:

显然,由于O10,关闭不再被调用,因此下面的自动生成代码确实是错误的(或者至少不完美)。感谢@ Christian.K。

#region VSTO generated code
private void InternalStartup()
{
  this.Startup += new System.EventHandler(ThisAddIn_Startup);
  this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion

2 个答案:

答案 0 :(得分:5)

您使用的是Outlook 2010吗?

  

从Outlook 2010开始,默认情况下,Outlook不会发出加载项信号   它正在关闭。具体来说,Outlook不再调用   IDTExtensibility2的OnBeginShutdown和OnDisconnection方法   快速关机期间的界面。同样,一个Outlook加载项编写   使用Microsoft Visual Studio Tools for Office不再调用   Outlook正在关闭时的此Add_hutdown方法。

答案 1 :(得分:4)

如果您使用的是Outlook 2010,则可以要求Outlook在关闭时通知您的插件。

[RequireShutdownNotification]=dword:0x1

密钥必须放在插件的注册表文件夹中