2015-11-20 1 views
1

У меня есть код дополнения для Outlook, когда пользователь щелкает правой кнопкой мыши по любому сообщению, которое добавляет опция добавления в меню правой кнопки мыши. Это происходит в Outlook 2007 и Outlook 2010, но когда я устанавливаю аддон в Outlook 2013, этот параметр не отображается в меню правой кнопки мыши.Addin Code Работа в Outlook 2007 и 2010, но не в перспективном режиме 2013

вот мой код:

Application.ItemContextMenuDisplay += ApplicationItemContextMenuDisplay; 

void ApplicationItemContextMenuDisplay(Office.CommandBar commandBar, Selection selection) 
     { 
      var cb = commandBar.Controls.Add(Office.MsoControlType.msoControlButton,missing, missing, missing, true) as Office.CommandBarButton; 
      if (cb == null) return; 
      cb.Visible = true; 
      cb.FaceId = 1675; 
      cb.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;          
      cb.Click += new Office._CommandBarButtonEvents_ClickEventHandler(_oAddEmail_Click); 
      ConvergeCRMSetting settings = StateManager.current.CRMSettings; 

      if (selection.Count == 1 && selection[1] is Outlook.MailItem) 
      { 
       var item = (MailItem)selection[1];       
       string subject = item.Subject; 

       cb.Caption = "Add Email To ConvergeHub"; 
       cb.Enabled = true;           

      } 
      else 
      { 
       cb.Enabled = false; 
      } 
      bool bflag = false; 
      if (settings.Verified == true && settings.Active == true) 
      { 
       bflag = true; 
      } 
      switch (Convert.ToInt16(settings.Sd)) 
      { 
       case 0: 
        cb.Enabled = false; 
        break; 
       case 1: 
        cb.Enabled = bflag; 
        break; 
       case 2: 
        cb.Enabled = bflag; 
        break; 
       case 3: 
        //rbManual.Checked = true; 
        break; 
       default: 
        break; 
      } 

     } 

Что я должен сделать, чтобы сделать вариант Аддин видимым в Outlook 2013? Какие-либо предложения ?

+0

Вы обновили ссылку .dll до последней версии? Мы используем Excel Interop на работе, а обновление с Office 2010 до 2013 года вызвало серьезные проблемы. –

+0

Возможно, вы имели в виду ссылку Reference.dll или ссылку на Outlook? В случае ссылки interop interlook я не обновлял ее, потому что в этом случае мне нужно обновить каждую новую версию, которая выходит на рынок. – Mainak

ответ

1

Eric прямо на обесценивание командной строке, так как бюро 2013. И это имеет была хорошая вещь, я думаю.

Я бы рекомендовал использовать:

  1. дизайнер ленты, доступных с помощью VSTO Visual Studio. Он имеет дружественный интерфейс для создания лент вместо командной строки. Прикрепление событий работает так же, как вы привыкли в дизайнере Windows Forms или WPF.

    Полезное чтение на MSDN here.

  2. беглый UI и IRibbonExtensibility связываться с контекстным меню и т.д.

    Полезной чтение на MSDN here и here.

0

Вы можете использовать старый подход (CommandBars) в Outlook 2007. Но начиная с Outlook 2010 беглого UI используется для настройки контекстного меню в Outlook. Вы можете прочитать больше о том, что в следующих статьях:

беглый UI (ака Ribbon UI) описывается в следующих статьях:

Лента дизайнер не дает ничего для контекстного меню. Для настройки контекстных меню вам понадобится использовать разметку XML ленты.

Смежные вопросы