插件代码在 outlook 2007 和 2010 中工作,但不在 outlook 2013 中工作
Addin Code Working in outlook 2007 and 2010 but not in outlook 2013
我有一个 outlook 插件代码,当用户右键单击任何电子邮件时,插件选项会显示在右键菜单中。 Outlook 2007 和 Outlook 2010 会发生这种情况,但是当我在 Outlook 2013 中安装插件时,该选项不会显示在右键菜单中。
这是我的代码:
Application.ItemContextMenuDisplay += ApplicationItemContextMenuDisplay;
void ApplicationItemContextMenuDisplay(Office.CommandBar commandBar, Selection selection)
{
var cb = commandBar.Controls.Add(Office.MsoControlType.msoControlButton,missing, missing, missing, true) as Office.CommandBarButton;
if (cb == null) return;
cb.Visible = true;
cb.FaceId = 1675;
cb.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;
cb.Click += new Office._CommandBarButtonEvents_ClickEventHandler(_oAddEmail_Click);
ConvergeCRMSetting settings = StateManager.current.CRMSettings;
if (selection.Count == 1 && selection[1] is Outlook.MailItem)
{
var item = (MailItem)selection[1];
string subject = item.Subject;
cb.Caption = "Add Email To ConvergeHub";
cb.Enabled = true;
}
else
{
cb.Enabled = false;
}
bool bflag = false;
if (settings.Verified == true && settings.Active == true)
{
bflag = true;
}
switch (Convert.ToInt16(settings.Sd))
{
case 0:
cb.Enabled = false;
break;
case 1:
cb.Enabled = bflag;
break;
case 2:
cb.Enabled = bflag;
break;
case 3:
//rbManual.Checked = true;
break;
default:
break;
}
}
我必须怎么做才能使插件选项在 Outlook 2013 中可见?有什么建议吗?
命令栏已被弃用 - 您必须使用 IRibbonExtensibility 来自定义 Outlook 2013+ 的上下文菜单:
对命令栏自 Office 2013 以来的贬值是正确的。我认为这是一件好事。
我建议使用:
您可以在 Outlook 2007 中使用旧方法 (CommandBars)。但是从 Outlook 2010 开始,Fluent UI 用于自定义 Outlook 中的上下文菜单。您可以在以下文章中阅读更多相关信息:
Fluent UI(又名功能区 UI)在以下文章中进行了描述:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
功能区设计器不提供任何上下文菜单。您将需要使用功能区 XML 标记来自定义上下文菜单。
我有一个 outlook 插件代码,当用户右键单击任何电子邮件时,插件选项会显示在右键菜单中。 Outlook 2007 和 Outlook 2010 会发生这种情况,但是当我在 Outlook 2013 中安装插件时,该选项不会显示在右键菜单中。
这是我的代码:
Application.ItemContextMenuDisplay += ApplicationItemContextMenuDisplay;
void ApplicationItemContextMenuDisplay(Office.CommandBar commandBar, Selection selection)
{
var cb = commandBar.Controls.Add(Office.MsoControlType.msoControlButton,missing, missing, missing, true) as Office.CommandBarButton;
if (cb == null) return;
cb.Visible = true;
cb.FaceId = 1675;
cb.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;
cb.Click += new Office._CommandBarButtonEvents_ClickEventHandler(_oAddEmail_Click);
ConvergeCRMSetting settings = StateManager.current.CRMSettings;
if (selection.Count == 1 && selection[1] is Outlook.MailItem)
{
var item = (MailItem)selection[1];
string subject = item.Subject;
cb.Caption = "Add Email To ConvergeHub";
cb.Enabled = true;
}
else
{
cb.Enabled = false;
}
bool bflag = false;
if (settings.Verified == true && settings.Active == true)
{
bflag = true;
}
switch (Convert.ToInt16(settings.Sd))
{
case 0:
cb.Enabled = false;
break;
case 1:
cb.Enabled = bflag;
break;
case 2:
cb.Enabled = bflag;
break;
case 3:
//rbManual.Checked = true;
break;
default:
break;
}
}
我必须怎么做才能使插件选项在 Outlook 2013 中可见?有什么建议吗?
命令栏已被弃用 - 您必须使用 IRibbonExtensibility 来自定义 Outlook 2013+ 的上下文菜单:
我建议使用:
您可以在 Outlook 2007 中使用旧方法 (CommandBars)。但是从 Outlook 2010 开始,Fluent UI 用于自定义 Outlook 中的上下文菜单。您可以在以下文章中阅读更多相关信息:
Fluent UI(又名功能区 UI)在以下文章中进行了描述:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
功能区设计器不提供任何上下文菜单。您将需要使用功能区 XML 标记来自定义上下文菜单。