2015-05-14 54 views
0

因此,當您單擊電子郵件超鏈接時,它會在默認郵件客戶端(Outlook中打開一個新的郵件消息窗口)。您可以將主題,正文,CC和BCC字段直接附加到電子郵件超鏈接,並且您的郵件客戶端將自動在相應的框中填充這些值。示例超鏈接字段將是:電子郵件超鏈接:閱讀href值

<a href="mailto:[email protected]?Subject=Hello%20again">Send Mail</a> 

所以,我們來。用戶單擊該超鏈接,Outlook將打開一個新的檢查器窗口。我正在收聽Outlook加載項中的NewInspector事件。我能以某種方式獲得點擊鏈接的完整href來調出這個檢查器窗口嗎?

我想要這個的原因是我將一些自定義字段附加到超鏈接,這顯然不被Outlook瞭解。我可以通過某些直接屬性或COM獲取整個href值嗎?

回答

0

不,Outlook對象模型(也不是mailto:protocol)不提供任何內容。相反,您可以自動化Outlook以編程方式填寫所需的值。例如,如果Outlook已經在運行,你可以使用下面的代碼:

// If so, use the GetActiveObject method to obtain the process and cast it to an Application object. 
    application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application; 

瞭解更多關於在How to: Get and Log On to an Instance of Outlook文章。你也可以找到C# app automates Outlook (CSAutomateOutlook)示例項目很有幫助。

+0

不確定您是否正確理解問題。我不需要獲取Outlook應用程序的句柄;我已經有了。外接程序以進程內模塊的形式運行,因此我可以輕鬆地獲取應用程序對象的引用。這裏的問題是,當'NewInspector'事件發生時,(我認爲)Outlook已經解析了href並填充了相應的字段,忽略了它不知道的任何部分。我唯一的希望就是Outlook將原始的href存儲在COM屬性的某處。 – dotNET

+0

不是。你無法控制。正如我所說的,您可以從另一個應用程序自動執行Outlook以編程方式填充字段,或者使用標準.NET機制(如.Net遠程處理)與加載項進行通信。 –