MAPILab
EnglishDeutschRussian
Вы здесь: Главная / Компоненты для разработчиков / MAPIProp

MAPIProp

Бесплатный COM-компонент для чтения MAPI-свойств объектов CDO и Outlook Object Model для Microsoft® Outlook® 2000, 2002/XP, 2003, 2007, 2010. В отличии от коллекции Fields в CDO, компонент не имеет ограничения на размер данных хранимых в свойстве, поддерживает работу с компрессированными свойствами (типа PR_RTF_COMPRESSED). Использование MAPI-свойств позволяет при работе из Visual Basic и скриптовых языков типа JScript® и VBScript избегать срабатывания системы безопасности Outlook при получении адреса электронной почты отправителя письма, тела письма и др. Компонент поставляется с исходным кодом на Microsoft® Visual® C++ 6.0 и примерами на Visual® Basic® .NET, Visual Basic 6.0 и Jscript.

Задачи, которые можно решать при помощи компонента:

  1. Получение свойств объекта без срабатывания системы безопасности.
  2. Получение свойств, не доступных через объектную модель Outlook, например, интернет-заголовков письма.
  3. Получение свойств, не доступных ни через CDO, ни через объектную модель Outlook, например, тело письма в различных представлениях (RTF, HTML, текстовое).

Детальное руководство по работе с MAPI-свойствами находится в данной статье, мы настоятельно рекомендуем ознакомиться с ней перед знакомством с компонентом.

Методы компонента:

C++:
HRESULT GetOneProp(
	VARIANT pObject,
	long propTag,
	VARIANT* result);
HRESULT ReadStreamProp(
	VARIANT pObject,
	long propTag,
	BSTR* result);
HRESULT ReadRTFStreamProp(
	VARIANT pObject,
	long propTag,
	BSTR* result);
HRESULT Initialize();
HRESULT Uninitialize();
Visual Basic:
Function GetOneProp ( _
	pObject As Object, _
	propTag As Long) As Variant
Function ReadStreamProp ( _
	pObject As Object, _
	propTag As Long) As String
Function ReadRTFStreamProp ( _
	pObject As Object, _
	propTag As Long) As String
Sub Initialize()
Sub Uninitialize()

Метод GetOneProp

Возвращает значение свойства объекта CDO или объектной модели Outlook. Например, письмо в CDO представлено объектом Message, а в объектной модели Outlook – MailItem. Вы можете передать методу любой из этих объектов. Независимо от того, какой объект вы передали, в качестве значения propTag (тэг свойства MAPI) можно использовать константы CDO, типа CdoPR_SENDER_EMAIL_ADDRESS.

Метод ReadStreamProp

Предназначен для чтения в строку больших по объему значений свойств, типа CdoPR_BODY или PR_HTML (текстовое и HTML представления письма). Наличие этого метода обусловлено тем, что в MAPI для чтения больших по объему свойств используется другой подход (открытие свойства и чтение через поток).

Метод ReadRTFStreamProp

Аналогичен предыдущему методу, но также автоматически обеспечивает декомпрессию потока. Так, RTF-представление тела письма хранится в компрессированном виде (PR_RTF_COMPRESSED), и при чтении его методом ReadStremProp вы получите набор двоичных данных вместо текстовых.

Методы Initialize и Uninitialize

Обеспечивают инициализацию и деинициализацию библиотеки MAPI. В случае использования CDO, инициализация MAPI осуществляется вызовом метода Logon сессии CDO, и использования этих функций не требуется. Если вы разрабатываете надстройку для Outlook, то в большинстве случаев инициализация MAPI уже выполнена самим Outlook до вызова вашей надстройки, и без вызова этих функций можно обойтись (хотя их вызов ничего плохого не сделает).

При автоматизации Outlook (создания объекта Outlook.Application) инициализации MAPI часто не происходит даже после выполнения такого кода (не путайте это с вызовом Logon в сессии CDO):

Set olApp = New Outlook.Application
Set olNameSpace = _
	olApp.GetNamespace("MAPI")
olNameSpace.Logon

И вызов функции Initialize требуется для нормальной работы компонента.

Ограничения компонента

  1. Компонент работает только со свойствами объекта, и не может работать с его таблицами (например, с таблицей вложений письма).
  2. Компонент не поддерживает работу с multi-valued свойствами (например, типа PT_MV_BINARY). Среди констант CDO, однако, нет ни одного такого свойства.
  3. При чтении свойств через ReadStreamProp и ReadStreamProp результат всегда возвращается в виде строки, независимо от типа свойства.

Примеры использования компонента

Компонент поставляется с исходным кодом на Microsoft Visual C++ 6.0 и примерами на Visual Basic .NET, Visual Basic 6.0 и Jscript. Все примеры выполнены как для CDO, так и для объектной модели Outlook.

Регистрация программы

MAPIProp является бесплатной программой для коммерческого и некоммерческого использования.
MAPIProp downloaden Загрузите MAPIProp (128 KB):
 Основной сервер
 Вспомогательный сервер
Оставьте свое предложение:
Имя:
E-mail:
Поиск на MAPILab.com:
Подпишитесь на нашу рассылку:
E-Mail:
Быстрый переход к разделам:

MAPILab Reports

Microsoft Outlook

Outlook Express

Microsoft Office


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

Exchange Server

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

SharePoint Workflow