添加附件上下文菜单Outlook 2013

时间:2016-11-28 14:51:26

标签: c# outlook outlook-addin outlook-2013

我正在开发一个项目,当你使用鼠标右侧clik命中附件时,使用Outlook执行一个过程。

该项目在2013年展望期间运作良好。 我发现这篇文章解释了为什么它不再起作用了:

  

在Outlook 2013中,他们完全删除了所有内置的Commandbars和命令栏控件。因此,您无法访问和使用Outlook 2013中的内置主菜单,上下文菜单和工具栏。出于同样的原因,Outlook 2013不支持AttachmentContextMenuDisplay和ContextMenuclose事件。

Link to the post

事实上,由于此事件未被触发,我的程序崩溃了:

this.Application.AttachmentContextMenuDisplay += new Outlook.ApplicationEvents_11_AttachmentContextMenuDisplayEventHandler(Application_AttachmentContextMenuDisplay);

你们有没有想过如何让它适用于Outlook 2013? 我还在寻找信息。

非常感谢!

1 个答案:

答案 0 :(得分:0)

解决方案是我发现的帖子......

这是XML:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <contextMenus>
    <contextMenu idMso="ContextMenuAttachments">
      <button id="DT2MQPRContextMenuAttachments"
              label="Add to MQPR..."
              getVisible="DT2MQPRButton_GetVisible"
              onAction="OnMyButtonClick" />
    </contextMenu>
  </contextMenus>
</customUI>

方法的代码:

public void OnMyButtonClick(Office.IRibbonControl control)
{
    try
    {
        object context = control.Context;
        if (context == null) return false;
        if (context is Outlook.AttachmentSelection)
        {
            Outlook.AttachmentSelection selectedAttachments = context as Outlook.AttachmentSelection;
            SelectedAttachment = attachment[1];
            OutlookCommon._fName = SelectedAttachment.FileName;
            // etc...
        }
        Marshal.ReleaseComObject(context); context = null;
        }
    catch (Exception ex)
    {
        Console.WriteLine("attachmentButton_Click  " + ex.ToString());
    }
}

我们去,如果它可以帮助任何人;)