将自定义数据与 Outlook 邮件项目/检查器窗口相关联

本文关键字:检查 窗口 关联 项目 数据 自定义 Outlook | 更新日期: 2023-09-27 18:33:18

我有一个用 vb.net 编写的 Outlook 2010+ 插件,当用户将附件添加到他们正在编写的电子邮件时,它会在 attachment_add 事件中触发。 我提取此附件的临时位置,然后使用后台工作线程对其进行一些处理(这可能需要 1-10 秒(。 我需要在用户发送电子邮件之前完成此处理,因为结果用于用户点击发送时实时运行的另一段代码中。

我有一个全局布尔is_processing,它在扫描过程中切换到 true,在scan_complete事件运行时切换到 false。 在电子邮件的发送事件中,我有一个 while 循环,在继续执行其余代码之前检查此布尔值是否为 false。

如何处理同时打开多个撰写窗口以及用户在每个窗口上添加附件?

理想情况下,我需要一种方法将单独的is_processing布尔值关联到每个撰写窗口,并且还需要一种存储每个窗口的处理结果的方法,以便我知道哪些附件数据属于哪个电子邮件。

一个

想法是保留一个单独的列表,其中包含每封电子邮件和所有已添加附件的唯一 ID,并在每个附件完成后更改其各自的处理状态。当用户单击"发送"时,我会检查具有该撰写窗口 ID 的所有附件,并且它们的所有状态是否为"完成"。

将自定义数据与 Outlook 邮件项目/检查器窗口相关联

您可以考虑使用用户属性。Outlook 项提供"用户属性"属性,该属性返回表示 Outlook 项的所有用户属性的用户属性的"用户属性"集合。因此,与检查器窗口关联的每个项目都将获得自己的数据集。