【问题标题】:Outlook 2007 Property Change not firing when removing recipients删除收件人时未触发 Outlook 2007 属性更改
【发布时间】:2014-01-30 06:12:46
【问题描述】:

我正在为 2007+ 编写一个 Outlook 加载项,它侦听属性更改事件并向用户显示收件人列表。

我的问题是在 2007 年,当从消息中删除收件人时,不会触发属性更改事件,这会导致加载项显示的内容与用户在 TO/CC 和 BCC 字段中的内容发生冲突。

注意:您可以通过保存消息来强制触发属性更改事件,但这并不是一个优雅的解决方案。

问题:Outlook 中的这个错误是否有解决方案?

【问题讨论】:

  • 我在 OutlookSpy 中看不到该行为 - 创建新邮件,单击 OutlookSpy 功能区上的 CurrentItem,转到“事件”选项卡。每次添加或删除收件人时,都会触发 PropertyChange(To)/PropertyChange(CC)/PropertyChange(BCC) 事件。
  • 嗨 Dmitry,我在我们的开发环境中运行 Outlook 2007 SP3 我已禁用除 Outlook spy 之外的所有加载项,我可以重新创建问题。你可以试试这个:1)在 TO 字段中添加一个地址(验证属性更改事件然后清除日志)2)从 TO 字段中删除地址(没有触发属性更改事件)
  • 此外,如果您在删除收件人后保存消息,则会触发属性更改事件!
  • 嗯.. 我手边没有 Outlook 2007(只有 2010 和 2013)。您是否只在 Outlook 2007 中看到此内容?
  • 是的,这只是 Outlook 2007 中的一个问题。2010 和 2013 在删除收件人时会触发属性更改事件。您能否建议我可以用来访问邮件收件人的另一种方法?删除收件人时属性更改事件未触发的主要问题是 Outlook 似乎将此事件用作更新底层收件人对象的机制,这意味着我不能简单地定期轮询邮件项目以进行更改,因为列表仍然包含已删除的收件人。

标签: vsto outlook-addin


【解决方案1】:

在解决这个问题很长时间后,我找不到解决方法。

PropertyChange 事件在 Outlook 中用作更新内部收件人集合的机制,因为在删除收件人时不会触发此事件,因此无法保持一致的用户体验并使用 Outlook 检索更新的收件人列表对象模型。

这纯粹是 Outlook 2007 中的一个错误,不影响 2010 和 2013 版本。

附加说明:保存消息将导致 PropertyChangeEvent 触发并更新收件人。

【讨论】:

  • 我也在 Outlook Spy 中确认了这一点。删除收件人不会更新对象模型,因此不会通知 MAPI,因此您无法通过较低级别绕过 Outlook。这对 Microsoft 来说可能从来都不是问题,因为收件人已从 UI 中删除,因此很难意识到它正在发生。
猜你喜欢
  • 2011-02-08
  • 2018-03-25
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多