簡體   English   中英

添加附件上下文菜單Outlook 2013

[英]Add attachment context menu Outlook 2013

我正在研究一個項目,當您用鼠標右鍵單擊附件時,該項目將使用Outlook來執行一個過程。

該項目在Outlook 2013之前運行良好。我發現了這篇文章,解釋了為什么它不再起作用了:

在Outlook 2013中,他們已完全刪除了所有內置命令欄和命令欄控件。 因此,您無法在Outlook 2013中訪問和使用內置的主菜單,上下文菜單和工具欄。出於相同的原因,Outlook 2013不支持AttachmentContextMenuDisplay和ContextMenuclose事件。

鏈接到帖子

實際上,由於未觸發此事件,我的程序崩潰了:

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

你們對如何使其適用於Outlook 2013有任何想法嗎? 我仍在尋找信息。

非常感謝 !

解決方案在我發現的帖子中...

這是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());
    }
}

如果可以幫助任何人,我們就走了;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM