Как правильно реализовать интерфейс IDTExtensibility2 для надстройки Office COM?

StackOverflow https://stackoverflow.com/questions/387277

Вопрос

Я реализую надстройку COM для Outlook.Я использую IDTExtensibility2.Я не уверен, что это лучший способ создания надстроек COM, но я не могу это изменить.

Этот интерфейс определяет пять методов:OnConnection, OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection.

Мне нужно выполнить следующие операции:

  1. Загрузить данные конфигурации из файла
  2. Загрузить данные реестра
  3. Начать новый сеанс
  4. Создать файл *.pst
  5. Подписаться на события Explorer
  6. Подключитесь к Интернет-серверу, чтобы получить данные.
  7. Создание пунктов меню в главном меню
  8. Создать панель инструментов
  9. Добавить/удалить несколько вещей в Outllok (на уровне файлов *.pst)

Подскажите, пожалуйста, что мне делать и когда?

  • Что мне нужно выполнить в методе OnConnection?
  • Что разрешено только при вызове OnStartupComplete?
  • Какие ресурсы мне нужно освободить во время OnBeginShutdown/OnDisconnection?
Это было полезно?

Решение

Обратите внимание, что задачи 1, 2 и 6 не являются задачами, специфичными для надстройки Outlook.

3 не нужен:В качестве надстройки вы не создаете сеанс — вы подключаетесь к существующему (путем реализации OnConnection метод).

Для 4 и 9 рекомендую использовать RDO: http://dimastr.com/redemption/(также можно использовать для 3, если вам действительно нужен еще один сеанс)

Для 5,7 и 8 рекомендую использовать ADX: http://www.add-in-express.com/add-in-net/
(на самом деле вам не придется беспокоиться о IDTExtensibility2 вообще больше, если ты это сделаешь)

OnConnection здесь вы получаете ссылку на Application интерфейс, из которого вы можете получить все остальное.

OnStartupComplete здесь вы можете разместить весь свой код инициализации.

OnDisconnection здесь вам следует освободить все оставшиеся ссылки OOM, которые вы, возможно, накопили во время сеанса, то есть все, что было получено из первоначального Application ссылка, которую вы получили через OnConnection.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top