2016-11-28 5 views
-1

Я работаю над проектом, который использует Outlook для выполнения процесса, когда вы нажимаете вложение с помощью правого клика мыши.Добавить контекстное меню приложения Outlook 2013

Проект работает нормально до Outlook, 2013. я нашел этот пост, который объясняет, почему он больше не работает:

В Outlook 2013 они удалили все встроенные CommandBars и управления CommandBar полностью , По этой причине вы не можете получать и использовать встроенные главные меню, контекстные меню и панели инструментов в Outlook 2013. События в AttachmentContextMenuDisplay и ContextMenuclose не поддерживаются в Outlook 2013 по той же причине.

Link to the post

В самом деле, моя программа разбилась из-за это событие, которое не срабатывает:

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

Есть ли у вас, ребята, есть какие-либо идеи о том, как сделать это работает для Outlook 2013? Я все еще ищу информацию.

Большое спасибо!

ответ

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

Там мы идем, если это может помочь кому угодно;)