4

在我的 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?

编辑:

显然,从 O10 开始,shutdown 就不再被调用了,所以下面自动生成的代码确实是错误的(或者至少不完美)。由@Christian.K 提供。

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

2 回答 2

5

您使用的是Outlook 2010吗?

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

于 2012-09-07T06:25:45.783 回答
4

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

[RequireShutdownNotification]=dword:0x1

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

于 2012-09-26T08:13:52.763 回答