【发布时间】:2021-06-16 12:49:25
【问题描述】:
我正在编写一个 Outlook 加载项,并且正在连接到 mailItem 的 AttachmentAdd 事件。当撰写一封电子邮件但同时撰写多封电子邮件时,它按预期工作,似乎 AttachmentAdd 事件仅针对添加附件的第一封电子邮件触发。
我不确定这是否与 RCW 超出范围有关。
如果有帮助,我正在使用 Outlook 365 64 位。
代码如下:
public partial class MyAddIn
{
private void OutlookAddIn_Startup(object sender, System.EventArgs e)
{
Application.ItemLoad += NewItem_Load;
}
private void NewItem_Load(object item)
{
Outlook.MailItem newMailItem = null;
newMailItem = item as Outlook.MailItem;
if (newMailItem != null)
{
newMailItem.AttachmentAdd -= MailItem_AttachmentAdd;
newMailItem.AttachmentAdd += MailItem_AttachmentAdd;
}
}
// This gets called only for one email.
private void MailItem_AttachmentAdd(Outlook.Attachment attachment)
{
// Do some stuff here.
}
private void OutlookAddIn_Shutdown(object sender, System.EventArgs e)
{
Application.ItemLoad -= NewItem_Load;
// Log
}
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new MyRibbon(this);
}
#region VSTO generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(OutlookAddIn_Startup);
this.Shutdown += new System.EventHandler(OutlookAddIn_Shutdown);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}
}
【问题讨论】:
标签: c# events event-handling vsto outlook-addin