2011-11-01 87 views
2

正在開發Outlook的VSTO,VS 2010和Outlook 2010解決方案。覆蓋Outlook的默認發送功能

我想覆蓋Outlook的發送行爲的默認功能。

這是要求。

當用戶點擊發送按鈕,我必須檢查它是否是一個短信 - 「IPM.Note.Mobile.SMS」。如果這是一個短信,那麼我必須給我的自定義實施發送。如果它不是SMS,則默認發送行爲。

對於自定義發送部分,我必須使用我自己的Web服務並處理它。

我想要的是一種方法/方法來覆蓋Outlook 2010中的默認發送功能

我已經閱讀了MSDN上的幾篇文章,檢查器包裝和執行自定義業務規則,但我沒有得到我想要的。我想要一個純粹的C#解決方案而不是第三方的dll像贖回。我嘗試儘可能我可以,我期望的一樣:)

請幫我要具體:d 謝謝,

問候 - 山姆

回答

6

您需要處理Microsoft.Office.Interop.Outlook.Send事件(ItemEvents_10_SendEventHandler )。你可以看到參考here。下面提供了一個粗略的例子。您可以從應用程序參考中獲取檢查器和活動檢查器的消息類。

((Outlook.ItemEvents_10_Event)inspector.CurrentItem).Send += new Outlook.ItemEvents_10_SendEventHandler(Inspector_Send); 

void Inspector_Send(ref bool Cancel) 
     { 
      if (IPM.Note.Mobile.SMS) 
      { 
       // custom implementation 
      } 
      else 
       Cancel = true; // don't send the message out 
     } 
+0

謝謝SilverNinja,對於遲到的回覆感到抱歉,我忙於學習。 – Sam

3

在這裏你有一個不同的解決方案。剛加入這一行中添加 - in_StartUp:

Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend); 

和當然,事件處理程序的實現:

void Application_ItemSend(object Item, ref bool Cancel) 
    { 
     MessageBox.Show("Yihha!!"); 
     Cancel = true; 
    } 

這將攔截您發送的任何消息。

+0

工作完美,感謝分享 – joe