将自定义数据与Outlook mailItem / inspector窗口相关联

时间:2016-02-05 10:36:03

标签: c# vb.net backgroundworker outlook-addin email-attachments

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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