Как правильно реализовать интерфейс IDTExtensibility2 для надстройки Office COM? - PullRequest
3 голосов
/ 22 декабря 2008

Я использую 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 Ответ

3 голосов
/ 23 декабря 2008

Обратите внимание, что 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.

...