问题描述
我使用 Outlook 2016 插件(Windows 10 上的 C# Visual Studio 2017)。 当创建新消息然后从 Outlook 主菜单(或工具栏)启动的“编写新消息”窗口发送新消息时,加载项完美地完成其工作:加载项显示自己的功能区,并带有一些单选按钮来配置要发送的消息,仅此而已。
但是当从文件上的 Windows 上下文菜单“发送到”创建新消息窗口(作为附件发送)时,加载项将被忽略:单选按钮,即使它们触发了各自的回调等配置底层模型,让新消息不变:-(
在调试器下观察到的主要区别是:
- 从 Outlook 菜单:“ThisAddIn”类似乎检索新消息窗口的包装器,因此在发送消息时会考虑配置:-)
- 来自 Windows 上下文菜单:仅触发“GetCustomUI”回调,因此单击“发送”按钮时,消息将保持不变:-(
感谢任何帮助(示例、文档、操作方法、...)...
JF
解决方法
当用户尝试使用上下文菜单 Send To
发送文件时,并非所有事件处理程序都会被触发。
如果 GetCustomUI 在用户从文件夹发送文件时触发(使用上下文菜单),您可以添加带有单选按钮的自定义功能区 UI,以配置要发送的消息。我想这就是您的加载项所做的全部。
您只需要使用 Ribbon XML 创建自定义 UI 并使用 GetCustomUI
函数将其返回。在 Walkthrough: Create a custom tab by using Ribbon XML 文章中阅读更多相关信息。
在功能区事件处理程序中,您需要确保可以通过作为参数传递的 Context 访问项目。例如,onAction
回调具有以下签名:
C#: void OnAction(IRibbonControl control)
VBA: Sub OnAction(control As IRibbonControl)
C++: HRESULT OnAction([in] IRibbonControl *pControl)
Visual Basic: Sub OnAction(control As IRibbonControl)
IRibbonControl
接口实例提供 Context
属性,该属性表示包含触发回调过程的 Ribbon 用户界面的活动窗口。因此,您可以将其转换为 Inspector
或 Explorer
以检索您必须处理的实际邮件项目。