2016-02-05 39 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集合。因此,與檢查員窗口關聯的每個項目都將獲得自己的一組數據。

相關問題