我想在上下文菜单中右键单击并点击自定义按钮时,获取当前选中的嵌入式附件对象。
这是我到目前为止所做的步骤:
为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);
}
运行加载项时,右键单击嵌入的图像/附件时,我可以看到自定义上下文菜单项。
答案 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。这是 资源管理器对象中的选定项目。没有事件/属性 由预览窗格显示,因此无法确定哪个 在那里选择对象。可以找到所有内联 如果有帮助的话,当前所选项目的附件, 但您所使用的功能不可用。请让我 知道您是否想要任何进一步的信息。