MAPILab
EnglishDeutschRussian
Вы здесь: Главная / Техническая поддержка / FAQ и статьи / Как избежать срабатываний системы б...

Как избежать срабатываний системы безопасности при работе программ для Microsoft® Outlook® на Visual Basic

Экскурс в разработку приложений для Microsoft Outlook

Microsoft Outlook предоставляет программистам три набора интерфейсов:

  • объектная модель Outlook (которую мы будем в дальнейшем называть OOM), имеющая как средства работы с хранилищами данных, так и позволяющая автоматизировать и управлять Outlook, например, добавлять свои элементы управления в меню и на панели управления Outlook
  • CDO (Collaboration Data Objects) – высокоуровневый набор интерфейсов, позволяющий работать с системой электронной почты Outlook и в реализации для Microsoft Outlook являющаяся расширением над системой MAPI
  • MAPI (Messaging Application Programming Interface) – предложенный Microsoft в начале 1990-x годов открытый интерфейс для систем электронной почты, также известный под названием Extended MAPI (для избежания путаницы с набором из 12 функций именуемом Simple MAPI).

Система безопасности Outlook закрывает методы OOM и CDO и не затрагивает методы MAPI, так как интерфейсы MAPI не доступны из скриптовых языков программирования (таких как Jscript и VBScript) и Visual Basic.

CDO, OOM и MAPI при работе с хранилищем данных Outlook оперируют одними и теми же наборами данных представленных различными объектами. Так, например, письмо электронной почты в CDO представлено объектом типа Message, в OOM - _MailItem, а в MAPI – объектом реализующим интерфейс IMessage. Свойства этих объектов, хотя и назваются по-разному, предоставляют доступ к одним и тем же данным. Так, адрес электронной почты отправителя письма доступен в CDO через Message.Sender.Address, в OOM – через свойство SenderEmailAddress объекта _MailItem, а в MAPI – через свойство PR_SENDER_EMAIL_ADDRESS объекта, реализующего интерфейс IMessage.

И если обращение к свойствам Message.Sender.Address или _MailItem.SenderEmailAddress вызывает срабатывание системы безопасности, то обращение к свойству PR_SENDER_EMAIL_ADDRESS объекта MAPI такого срабатывания не вызывает.

К счастью для программистов на Visual Basic, и в объектах CDO, и в объектах OOM есть свойство MAPIOBJECT, содержащее ссылку на интерфейс соответствующего данному объекту интерфейса MAPI. Свойство MAPIOBJECT появилось в OOM и в CDO начиная с Microsoft Outlook ’98. В статье Microsoft под номером 296483 говорится, однако, что свойство MAPIOBJECT объектов OOM присутствует только для совместимости с CDO, и это свойство является “hidden property of Outlook Object Model objects, and is not meant to be used from the Outlook object”. Но нам не известно о практических ограничениях использования этого свойства в OOM за исключением тех, о которых говорится в данной статье.

Итак, спасительные интерфейсы MAPI совсем рядом – как же ими можно воспользоваться?

Модуль поддержки
Оставить предложение
FAQ и статьи
Поиск на MAPILab.com:
Подпишитесь на нашу рассылку:
E-Mail:
© 2003-2008 OOO "МАПИЛаб". Все права защищены.

Microsoft®, эмблема Office, Microsoft® Exchange Server, Small Business Server, Microsoft® Outlook® и Microsoft® Office являются охраняемыми товарными знаками корпорации Майкрософт (Microsoft Corporation) в США и других странах.
Быстрый переход к разделам:

MAPILab Reports

Microsoft Outlook

Outlook Express

Microsoft Office

Продукты для SharePoint

Exchange Server

Cовместная работа

Разработчикам