我的Outlook加载项如何获取用户在我的自定义菜单中右键单击的Attachment对象?

时间:2012-11-14 17:52:22

标签: c# outlook vsto outlook-addin ribbonx

我想在上下文菜单中右键单击并点击自定义按钮时,获取当前选中的嵌入式附件对象。

这是我到目前为止所做的步骤:

  • 为ContextMenuInlinePicture功能区上下文菜单添加了自定义按钮

    <customUI ...>
        <contextMenus>
        <contextMenu idMso="ContextMenuInlinePicture">
            <button id="SendInlinePictureToHbbButton"
                    label="Send to HBB"
                    onAction="OnSendInlinePictureToHbbButtonClick" />
        </contextMenu>
        </contextMenus>
    </customUI>
    
  • 通过右键单击它我调用我的函数OnSendInlinePictureToHbbButtonClick:

        public void OnSendInlinePictureToHbbButtonClick(IRibbonControl control)
    {
        var msg = "OnSendMailToHbbButtonClick \n\n";
        if (control.Context is Explorer)
        {
            msg = "Context=Explorer \n";
            var explorer = control.Context as Explorer;
            if (explorer.AttachmentSelection.Count >= 1)
            {
                msg += "AttachmentSelection \n";
                msg = explorer.AttachmentSelection
                    .Cast<Attachment>()
                    .Aggregate(msg, (current, attach) => current + attach.DisplayName + "\n");
            }
            else
            {
                var selection = explorer.Selection;
                msg += "MailItemSelection \n";
                if (selection.Count == 1)
                {
                    var olItem = new OutlookItem(selection[1]);
                    msg = msg + olItem.Subject + "\n" + olItem.LastModificationTime;
                }
                else
                {
                    msg = msg + "Multiple Selection Count=" + selection.Count;
                }
            }
        }
        MessageBox.Show(msg);
    }
    
  • 运行加载项时,右键单击嵌入的图像/附件时,我可以看到自定义上下文菜单项。

enter image description here

  • 点击该按钮后,运行上面的方法,但我无法获得“AttachmentSelection”。相反,我得到“MailItemSelection”。

enter image description here

  • 如何让附件对象用户右键点击,以便我可以使用它?

1 个答案:

答案 0 :(得分:0)

我通过MSDN订阅事件解决方案联系了Microsoft,他们告诉我这不可能。

附加MS回复:

  

Hello Martin,我来自Messaging Developer Support团队   现已取得此案的所有权。我为延迟道歉,但是   我的团队目前工作量很大,这影响了我们的工作   响应时间。我已经看过如下所述的问题了   How can my Outlook add-in get the Attachment object the user is right-clicking in my custom menu?   ,简单的答案是,你不可能做你想做的事   使用Outlook对象模型。你的代码正在做什么   预期,因为您正在查询其所选的Explorer对象   items - 你正在返回MailItem。这是   资源管理器对象中的选定项目。没有事件/属性   由预览窗格显示,因此无法确定哪个   在那里选择对象。可以找到所有内联   如果有帮助的话,当前所选项目的附件,   但您所使用的功能不可用。请让我   知道您是否想要任何进一步的信息。