2015-05-14 36 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远程处理)与加载项进行通信。 –