2014-12-29 45 views
4

我有一個Outlook插件。我有一個檢查器處理程序,在打開一個新窗口時調用一個方法。只有當前窗口是一個轉發消息窗口(當您單擊電子郵件中的轉發按鈕時打開的窗口),我才希望該方法執行「某事」。我目前的代碼工作,但它適用於所有新窗口,包括回覆/新電子郵件等。檢測當前Outlook窗口是否爲轉發電子郵件?

任何幫助如何檢查,看看新窗口是否是一個轉發電子郵件窗口?

我的代碼:

... 
Outlook.Inspectors olInspectors; 

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { ...... 
     olInspectors = this.Application.Inspectors; 
     olInspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(Forward_Message_Inspector); 
    } 

void Forward_Message_Inspector(Microsoft.Office.Interop.Outlook.Inspector Inspector) 
    { 
     //how do I check here if current window is a forward message window? 
      //and then do something 
    } 

預先感謝您的任何幫助。

回答

5

您可以使用電子郵件的Subject進行檢查。

void Forward_Message_Inspector(Microsoft.Office.Interop.Outlook.Inspector Inspector) 
{ 
    Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem; 
    if (mailItem != null) 
    { 
     if (mailItem.Subject.StartsWith("FW: ")) 
     { 
      //do something here 
     } 
    } 
} 

您還可以通過分析Mail Body

+0

這是一個很好的建議!有效!非常感謝! :) – Polzi

+2

我會用另一種方法建議埃裏克。主題可以由用戶修改或以編程方式修改。所以,你不能總是依賴主題。 –

3

可以當MailItem.Forward事件發生時,您的檢查處理/包裝線了,只處理窗口做到這一點 - 但你想也需要一個MailItem處理器/包裝。

另一種方法是使用PropertyAccessor對象來檢查的PR_ICON_INDEX值(將是262,用於向前)或PR_LAST_VERB_EXECUTED(104爲向前)上的MailItem

+0

太棒了!謝謝。如果我使用包裝,我會採取這條路線。 – Polzi

相關問題