2012-10-27 52 views
1

發送文件我試圖創建的Outlook 2007/2010的加載項修改收件人新建郵件消息。如果用戶創建內部展望新的電子郵件(我使用的Inspectors.NewInspector事件)一切工作正常。但是,如果用戶使用其他應用程序(微軟Word或Adobe Acrobat例如),試圖通過電子郵件的附件,顯示在撰寫郵件窗口時不激發的事件NewInspector。捕捉在這種情況下引發的事件是否有直接的方法?抓觀活動連接時/從其他應用程序

我使用Application.ItemLoad事件試過了,但在我,我不能訪問任何方法或屬性成功地將其轉換爲Outlook.MailItem我得到一個錯誤,說明System.Runtime.InteropServices.COMException: The item’s properties and methods cannot be used inside this event procedure)。我在Visual Studio 2010中使用了C#。

回答

0

如果Outlook.exe進程沒有運行,那麼NewInspector將不會啓動,因爲除非用戶直接打開Outlook,否則不會調用ThisAddIn_Startup

由於展望當外部應用程序打開的新窗口Inspector尚未運行 - 你必須手動調用ThisAddIn_Startup自己或附加需要加載Inspector色帶何時啓用任何自定義事件。要做到這一點,最好的地方是handling CreateRibbonExtensibilityObject or RequestService methods

protected override object RequestService(Guid serviceGuid) 
{ 
    if (serviceGuid == typeof(Office.IRibbonExtensibility).GUID) 
     this.ThisAddIn_Startup(this, null); 

    return base.RequestService(serviceGuid); 
} 

這個唯一需要注意的是,你需要支持的方法重新進入與ThisAddIn_Startup由於色帶和Outlook既可以現在所說的啓動程序。您需要安全地管理一個鎖,以確保你不保持呼喚你InitThisAddIn_Startup)例行一次以上。

相關問題