3

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

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

  • 为 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);
    }
    
  • 运行加载项时,我可以在右键单击嵌入图像/附件时看到自定义上下文菜单项。

在此处输入图像描述

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

在此处输入图像描述

  • 我怎样才能让附件对象用户右键单击,所以我可以使用它?
4

1 回答 1

0

我已通过 MSDN 订阅事件解决方案联系了 Microsoft,他们告诉我这无法完成。

附加 MS 响应:

您好 Martin,我来自消息传递开发人员支持团队,现在已经接管了这个案例。对于延迟,我深表歉意,但我的团队目前的工作量非常大,这影响了我们的响应时间。我已经查看了 我的 Outlook 加载项如何获取用户在我的自定义菜单中右键单击的附件对象中描述的问题? ,简单的答案是不可能使用 Outlook 对象模型做你想做的事情。您的代码正在执行预期的操作,因为您正在查询 Explorer 对象以获取其选定项目——并且您正在返回 MailItem。这是 Explorer 对象中的选定项。预览窗格没有显示任何事件/属性,因此无法确定在那里选择了哪个对象。如果有帮助的话,可以找到当前所选项目的所有内联附件,但您所追求的功能不可用。如果您想了解更多信息,请告诉我。

于 2012-11-19T18:33:53.153 回答