2016-02-05 66 views
0

我在vb.net中编写了一个Outlook 2010+插件,当用户将附件添加到正在编写的电子邮件时,会触发attachment_add事件。我提取此附件的临时位置,然后使用后台工作人员对其进行一些处理(这可能需要1-10秒)。我需要在用户发送电子邮件之前完成此处理,因为结果用于用户点击发送时实时运行的另一位代码。将自定义数据与Outlook mailItem/inspector窗口相关联

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

我该如何处理一次打开的多个撰写窗口,并且用户在每个附件上添加附件?

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

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

+0

向我们展示您的代码! – Enigmativity

+0

你的想法很好。您应该使用存储每个Mail-ID和处理状态对象的字典。 – etalon11

+0

是否存在与mailItem检查员一起使用的特定ID,它有可能不是唯一的或者在某个时刻发生变化?当我实施这个建议的解决方案时,会发布一些代码。 – moatak787

回答

0

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

相关问题