Как правильно реализовать интерфейс IDTExtensibility2 для надстройки Office COM?
-
23-08-2019 - |
Вопрос
Я реализую надстройку COM для Outlook.Я использую IDTExtensibility2.Я не уверен, что это лучший способ создания надстроек COM, но я не могу это изменить.
Этот интерфейс определяет пять методов:OnConnection, OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection.
Мне нужно выполнить следующие операции:
- Загрузить данные конфигурации из файла
- Загрузить данные реестра
- Начать новый сеанс
- Создать файл *.pst
- Подписаться на события Explorer
- Подключитесь к Интернет-серверу, чтобы получить данные.
- Создание пунктов меню в главном меню
- Создать панель инструментов
- Добавить/удалить несколько вещей в 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
.