Outlook 在运行时以编程方式控制office加载项中的功能区

Outlook 在运行时以编程方式控制office加载项中的功能区,outlook,ms-office,ribbon,office-addins,Outlook,Ms Office,Ribbon,Office Addins,我正在创建一个Outlook加载项,它将打开一个新窗口,并在将其作为电子邮件发送之前收集一些信息 为了获得Outlook布局,我尝试在“新建电子邮件”对话框中创建一个任务窗格,该窗格仅在用户单击“资源管理器”窗口中的自定义按钮时可见 现在,我想打开一封新邮件,并在单击“自定义”按钮时拥有一个自定义功能区或一个选项卡。此功能区/选项卡应仅在从“我的代码”加载新电子邮件时可见。当用户单击“新建电子邮件”时,必须加载默认功能区 我的问题是我找不到在运行时以编程方式修改功能区的方法。 作为替代方案,简单

我正在创建一个Outlook加载项,它将打开一个新窗口,并在将其作为电子邮件发送之前收集一些信息

为了获得Outlook布局,我尝试在“新建电子邮件”对话框中创建一个任务窗格,该窗格仅在用户单击“资源管理器”窗口中的自定义按钮时可见

现在,我想打开一封新邮件,并在单击“自定义”按钮时拥有一个自定义功能区或一个选项卡。此功能区/选项卡应仅在从“我的代码”加载新电子邮件时可见。当用户单击“新建电子邮件”时,必须加载默认功能区

我的问题是我找不到在运行时以编程方式修改功能区的方法。 作为替代方案,简单地隐藏整个功能区可能是一个解决方案

我到处都搜索过,无法确认或否认在运行时可以控制功能区。 非常感谢您的帮助。

您需要在外接程序的同一类中实现IDTExtensibility2和IRIBboneExtensibility接口,以便在Outlook中自定义功能区接口

IRibbonExtensibility.GetCustomUI方法应返回配置功能区的XML-有关Outlook中不同窗口的详细信息,请参见MSDN,每个窗口都有各自的功能区。根据您问题中的描述,我认为您需要的是Microsoft.Outlook.Mail.Compose

请参阅以获取示例

通过在代码中实现不同的回调,可以将自定义功能区设计为仅在满足条件时可见