2014-01-28 89 views
2

我正在爲2007+編寫一個Outlook外接程序,它偵聽屬性更改事件並向用戶顯示收件人列表。刪除收件人時Outlook 2007屬性更改未觸發

我的問題是在2007年,當消息中的收件人被刪除時,屬性更改事件不會觸發,導致加載項顯示的內容和用戶在TO/CC和BCC字段中的內容有衝突。

注意:您可以強制通過保存消息觸發屬性更改事件,但這不是一個向前推進的優雅解決方案。

問題:Outlook中是否存在此錯誤的解決方案?

+0

我在OutlookSpy中看不到該行爲 - 創建新消息,單擊OutlookSpy功能區上的CurrentItem,轉至事件選項卡。每次添加或刪除收件人時,都會激發PropertyChange(To)/ PropertyChange(CC)/ PropertyChange(BCC)事件。 –

+0

嗨德米特里, 我在我們的開發環境中運行Outlook 2007 SP3我禁用了除outlook spy之外的所有加載項,我可以重新創建問題。 你可以試試這個: 1)添加一個地址字段(確認屬性更改事件,然後清除日誌) 2)從刪除地址字段(無屬性更改觸發的事件) –

+0

此外,如果你刪除收件人後,保存消息屬性更改事件觸發! –

回答

2

經過很長時間的工作在這個問題上,我無法找到解決辦法。

PropertyChange事件在Outlook中用作更新內部收件人集合的機制,並且因爲在收件人被刪除時不會觸發,所以無法保留一致的用戶體驗並檢索更新的收件人列表Outlook對象模型。

這純粹是在Outlook 2007中的錯誤,並不會影響版本的2010和2013年

其他注意事項:保存消息,將引起的PropertyChangeEvent火災和更新的收件人。

+0

感謝您的更新,我剛剛遇到同樣的問題。 –

+0

我也在Outlook Spy中證實了這一點。刪除收件人不會更新對象模型,因此不會通知MAPI,因此您無法越過較低級別繞過Outlook。對於微軟來說,這可能從未成爲問題,因爲收件人已從用戶界面中刪除,因此很難意識到發生了這種情況。 –

相關問題