在我的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
答案 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
密钥必须放在插件的注册表文件夹中