【发布时间】:2021-06-09 11:26:44
【问题描述】:
在我的 Outlook 插件中,我订阅了 AttachmentRemove 和 AttachmentAdd 的 MailItem。
在 Outlook 2016 中未触发删除事件时触发添加事件。Outlook 2013 两者都有效。 两个事件都以相同的时间和相同的方式订阅和取消订阅。 我很确定没有收集到会阻止引发事件的对象。
编辑(版本信息)
办公版本:
- Microsoft Outlook 2016 MSO (16.0.13801.20240) 32 位 2102(构建 13801.20294 即点即用)
- Microsoft Outlook 2016 (16.0.5113.1000) MSO (13.0.5122.1000) 32 位
安装office的两个系统都是64位系统。
编辑(代码截断)
public CommonItemInternal(object item)
{
if (item == null)
return;
this.UniqueId = GetUniqueId(item);
commonItemLookup.Add(this.UniqueId, this);
this.Item = item;
if (this.Item is MailItem)
{
var mailItem = this.Item as MailItem;
mailItem.PropertyChange += this.COM_CommonItemInternal_PropertyChange;
mailItem.AttachmentRemove += this.COM_mailItem_AttachmentRemove; // <-- Does not get called
mailItem.AttachmentAdd += this.COM_mailItem_AttachmentAdd; // <-- Get called
}
}
【问题讨论】:
-
您订阅事件的实际代码是什么?对象是如何在代码中声明的?
-
指定 Outlook 内部版本号及其位数是有意义的。
-
@EugeneAstafiev 抱歉延迟回复。我添加了版本。
-
@EugeneAstafiev 我还添加了订阅事件的代码片段。
标签: c# outlook vsto outlook-addin