如何区分按钮是在主 window 上按下还是在单独的 window 中打开的电子邮件上按下?

How to distinguish if button was pressed on the main window or on the email opened in a separate window?

问题出在用户分离电子邮件并使用加载项时。他认为,我理解为什么,他正在对他面前的电子邮件进行操作。但是实现是:

Selection selection = app.ActiveExplorer().Selection ;

因此,用户实际上是在对浏览器中的选择进行操作,该浏览器位于主要 window 上。我的问题是:

如何查看按钮被按下的位置?它是带有浏览器的主要 window,还是单独的 window 中的分离电子邮件?

P.S。按钮放置在功能区上。

您的按钮单击处理程序将 RibbonControl 作为参数。将 RibbonControl.Context 投射为探索者或检查员。

第一种方法是检查 ActiveWindow 方法,其中 returns returns 代表桌面上当前 Microsoft Outlook window 的对象,ExplorerInspector 对象。 Returns 如果没有打开 Outlook 资源管理器或检查器,则无。

第二种方法(直接)是查看 IRibbonControl 接口的 Context 属性,它表示包含触发回调过程的功能区用户界面的活动 window。您可以在 MSDN 中的以下系列文章中阅读有关 Fluent UI 的更多信息: