Как создать плагин Outlook с помощью Delphi?

Я работаю над проектом базы данных, и мне нужно создать плагин Outlook 2007, который сохраняет текущее предварительно просмотренное сообщение в моей базе данных.

Может кто-нибудь дать мне пошаговое руководство о том, как создать плагин Outlook в Delphi и как его развернуть?

Спасибо

Ответ 1

Если вы просто хотите узнать и понять, как это сделать, просто Google для Delphi Outlook addin (я уверен, что "addin" должен дать вам гораздо более релевантные результаты, чем "плагин" в этом контексте), и вы должны прийти с несколькими слегка устаревшими, но все же формально правильными примерами добавок, например Babelfish addin от Дмитрия Стреблеченко (что уже не полезно, потому что веб-сервис, на котором он опирается, больше не существует, но по-прежнему показывает основы) или образец addin от Paul Qualls (который, к сожалению, больше не доступен с исходного сайта). Там также есть mail whitelister addin, доступный с полным исходным кодом, но пока я еще не посмотрел.

Однако рано или поздно вы будете захотеть использовать проверенную инфраструктуру, например ADX, особенно если ваш addin будет использоваться вне вашей компании. Мы разрабатываем shareware addin в Delphi, и около 75% кода в аддине есть там, чтобы обеспечить поддержку различных версий Outlook (особенно Outlook XP) и разных настроек (в частности, возможность использования Word для редактирования сообщений была основной столбец для нас).

Другим фактором является постоянная работа над глупой моделью безопасности OOM. Вы в значительной степени перегружены без Redemption или Outlook Security Manager там. Исключение особенно не рекомендуется было достаточно высоко, не только для того, чтобы избежать подсказок безопасности, но и для упрощения множества утомительных рутинных задач с прочной, простой в использовании структурой.

[Дополнение] Мы действительно начали с нашей собственной домашней структуры, и все было хорошо с ней, пока количество пользователей и с ними количество различных конфигураций для поддержки взорвалось. Мы перешли на ADX около года назад и никогда не оглядывались назад. Использование Redemption было без проблем с самого начала, хотя - либо это, либо потратить месяцы на изучение Extended MAPI до того, как мы даже начали работу (вы все еще склонны выбирать это намного проще, когда вы идете вперед, когда Redemption направляет вас на первые несколько препятствий).

BTW: Еще один незаменимый инструмент для любого уважающего себя разработчика добавок (независимо от используемого языка программирования) - OutlookSpy. Это действительно позволит вам увидеть (и манипулировать) то, что происходит внутри Outlook (и в некоторой степени Exchange), как это происходит, и дать вам гораздо лучшее представление о том, что ваш addin должен будет сделать, чтобы добиться желаемого эффекта.

Ответ 3

Я построил надстройку надстройки, используя Delphi (интегрируя систему бронирования номеров в форму назначения).

Некоторые советы:

  • Купите и используйте add-in express. Это сэкономит вам много времени и позволит вам создавать надстройки COM, которые не требуют каких-либо сторонних компонентов во время установки. Сначала мы попытались создать свой собственный компонент, и хотя нам удалось наложить кнопки на формы, которые что-то сделали, количество затраченного времени было несоразмерным результату.
  • Используйте службу экспресс-поддержки надстроек, если у вас есть сомнения. Они знают свои вещи.
  • COM-интерфейс для внешнего вида (найденный в файле delphi/ocx/servers/folder) является вашим другом. Add-In Express просто предоставляет (намного) более удобную оболочку вокруг этой функциональности.

Что следует избегать:

  • Прямые вызовы MAPI. Это можно сделать, и на самом деле мне пришлось прибегать к нему для изменения потоков сообщений в пути, но это реальный PITA для работы и очень плохо документированный.
  • Единовременные формы. Мы потратили много времени на то, чтобы получить разовые формы для работы. Используйте только опубликованные формы. Вы можете опубликовать форму в локальной папке из кода, так что на практике это не имеет большого значения. Еще лучше использовать области формы, которые являются наиболее надежным способом расширения форм.
  • Притворство как COM в Delphi - это что-то вроде обычного программирования VCL. Мой совет, если у вас нет опыта работы с COM, - это прочитать всю документацию, которую вы можете получить. Некоторые из усердных уроков заключались в том, чтобы всегда устанавливать переменные в nil до конца функции, чтобы объекты могли правильно высвобождаться из-за внешнего вида и всегда запрашивать соответствующий интерфейс из объекта, а не пытаться его использовать.

Ответ 4

Я создал плагин один раз для использования в Excel (создание собственных пользовательских функций) с помощью Delphi. Что вам нужно, это Addin, который реализует интерфейс _IDTExtensibility2.

Теперь я не знаю точных шагов, но поиск _IDTExtensibility2 вам очень поможет.

Отметьте article для приятного использования. Процедура OnConnection интерфейса _IDTExtensibility2 дает вам доступ к приложению Outlook.

Ответ 5

К сожалению, работа должна выполняться в Delphi. С .NET и VSTO создание Outlook добавок гораздо менее болезненно по сравнению с плохими старыми днями. Я сделал дополнения Office в COM (это было НЕ смешно вообще) и в предыдущей версии VSTO, но VSTO 3 - очень хорошая новость для разработчика офиса.