Надстройка VSTO для Outlook: как фиксировать события «ответить всем», «ответить» и «переслать»?

У меня возникли проблемы с захватом событий «ответить всем», «ответить» и «переслать» в Outlook 2013 (используя VSTO для 2010).

В настоящее время у меня нет проблем с классом Inspector, так как они открывают новое окно.

Но когда я нажимаю «Ответить» или «Ответить всем» только в Outlook, и он отображается в тех же окнах, что и Outlook (а не во всплывающем окне), мой обработчик событий Inspector не срабатывает. Он срабатывает только тогда, когда появляется новое всплывающее окно.

Есть ли способ справиться с этим, чтобы я мог вставить какой-то промежуточный код?

Спасибо!


person Water    schedule 30.04.2013    source источник


Ответы (1)


Вы можете создать оболочку Explorer, которая будет обертывать главное окно Outlook, и поместить код в событие SelectionChange для создания оболочек MailItem с событиями Forward и Reply, настроенными для использования вашего кода. Не забудьте сохранить оболочку MailItem между изменениями выбора, чтобы вы могли убедиться, что она удалена после того, как выбор снова изменится, в противном случае вы получите утечку оболочек и MailItems. В качестве альтернативы поместите свой код в события ленты, что объясняется здесь (для Office 2007, но это не изменилось). Однако этот подход не поддерживает сочетания клавиш (ctrl-f, ctrl-r и ctrl-shift-r).

person The Dark Canuck    schedule 24.05.2013