Моя настраиваемая надстройка Outlook вызывает скрытие диалогового окна «Сохранить» в Excel

Я создал надстройку Outlook, которая добавляет кнопку на ленту нового окна электронной почты, но это вызывает проблему.

Вот что происходит:

  1. У пользователя есть Outlook Open.
  2. Пользователь открывает Excel.
  3. Пользователь отправляет документ Excel кому-то через Файл-> Сохранить и Отправить-> Отправить как вложение.
  4. Пользователь вносит изменения в документ
  5. Пользователь пытается закрыть документ
  6. Это когда Outlook предлагает пользователю сохранить файл, но диалоговое окно скрыто за окном Excel, и пользователь не может получить к нему доступ, не выполнив некоторые махинации.

Моя надстройка Outlook выполняет множество других функций, но я закрепил ее в файле Ribbon.cs, который я создал, чтобы добавить кнопку в новое окно электронной почты. Когда я изменяю свойство RibbonType объекта OfficeRibbon с Micorosft.Outlook.Mail.Compose на «ничего», диалоговое окно «Сохранить» отображается должным образом. Когда я снова меняю его на «Написать», диалоговое окно снова скрывается.

Кто-нибудь знает способ обойти это? Я подтвердил, что это происходит, когда проект является либо надстройкой Outlook 2007, либо надстройкой Outlook 2010.

Заранее спасибо.


person FilthySlider    schedule 10.01.2012    source источник
comment
Это может помочь: social.msdn.microsoft.com/Forums/is/outlookdev/thread/   -  person    schedule 18.02.2012


Ответы (2)


Поэтому в отношении ссылки, отправленной пользователем1217053, ответ, вероятно, будет примерно таким ...

создать поле области действия класса для Outlook. Mailitem привязать его к событию BeforeClose.

Внутри обработчика события BeforeClose для этого поля добавьте код, например ...

cMailItem_BeforeClose(bool Cancel)
{
  var Insp = cMailItem.GetInspector();
  Insp.Close();
  Marshal.FinalReleaseCOMObject(Insp);
  Insp = null;
}

Тогда, надеюсь, это избавит от инспектора теней.

person Anonymous Type    schedule 13.06.2013

Я не знаю, работаете ли вы над этой проблемой или нет, но я столкнулся с той же проблемой, а затем нашел решение. Вы, должно быть, используете конструктор лент, как и я. Конструктор ленты вызывает эту проблему. Мне пришлось перейти с дизайнера ленты на XML ленты. Было немного поработано, чтобы удалить код и немного изменить логику, но это устранило проблему. Я слышал, что другой вариант - использовать класс-оболочку.

Надеюсь это поможет.

person Polzi    schedule 22.08.2014