Архитектура Microsoft Windows для разработчиков

         

Microsoft Messaging API

(Продолжительность занятия 30 минут)

В состав ОС семейства Windows входит интерфейс прикладного программирования коммуникационных приложений Messaging Application Programming Interface (MAPI), позволяющий разрабатывать приложения для доступа к почтовой, факсимильной и другим видам информации. На этом занятии Вы узнаете о преимуществах MAPI и принципах его работы.

 
Изучив материал этого занятия, Вы сможете:

  • сопоставить интерфейсы Simple MAPI, Common Messaging Calls и Extended MAPI;
  • перечислить преимущества MAPI;
  • назвать два элемента управления MAPI и рассказать об их назначении;
  • с помощью элементов управления MAPI снабдить приложение Microsoft Visual Basic средствами работы с электронной почтой.

Архитектура MAPI

Подсистема MAPI позволяет снабдить любое Windows-приложение средствами доступа к сообщениям. Это упрощает выполнение таких операций среды рабочей группы, как совместное использование информации. Кроме того, стандарт MAPI не ограничивает компании в выборе коммуникационных систем и приложений. Поскольку MAPI — часть операционной системы Windows, все эти системы и приложения могут быть интегрированы с рабочим столом пользователя.

MAPI включает функции и объектно-ориентированные интерфейсы, необходимые клиентскому приложению и поставщику услуг MAPI.

MAPI можно применять для создания приложений, снабженных средствами для работы с почтой. Компоненты ядра MAPI позволяют без труда подключать любые подобные программы и приложения для рабочих групп к MAPI-совместимым информационным службам. Например, воспользовавшись драйверами MAPI, можно подключить Microsoft Exchange к большинству открытых или закрытых почтовых систем.

Внешний, или клиентский, программный интерфейс MAPI состоит из трех частей. Базовые интерфейсы — Simple MAPI и Common Messaging Calls (CMC) — адресованы приложениям, которым необходимы лишь основные почтовые функции. Интерфейс Extended MAPI предназначен для создания полнофункциональных почтовых систем.

Simple MAPI

В состав Simple MAPI входят базовые функции, позволяющие Вам добавить в приложение (например, в электронную таблицу или в текстовый редактор) средства работы с почтой. Simple MAPI также применяют для построения пользовательских коммуникационных приложений. Хотя функциональные возможности Simple MAPI ограничены и их можно использовать только в среде Windows, они позволяют:

  • регистрироваться в коммуникационной системе и выходить из нее; искать и просматривать сообщения;
  • составлять сообщения, добавляя адреса получателей;
  • включать в письма вложения;
  • сохранять и отправлять сообщения.
  • Common Message Calls

Как и Simple MAPI, CMC содержит функции, средствами которых Вы без труда снабдите свое приложение средствами работы с почтой. Его также применяют и для создания собственных коммуникационных приложений. CMC предназначен для минимизации числа вызовов функций, необходимых для отправки и приема сообщений. Например, чтобы послать сообщение, достаточно вызвать всего одну функцию, а чтобы принять — две. Вот отличительные характеристики CMC:

  • независимость от операционной системы и аппаратуры, используемых почтовой службой;
  • поддержка различных сетевых платформ;
  • одновременный доступ к нескольким почтовым службам.


Примечание. SDK для Simple MAPI и Common Messaging Calls опубликованы на компакт-дисках Microsoft Developer Network (MSDN).

Extended MAPI

Extended MAPI — это более сложный, объектно-ориентированный API, предназначенный для приложений, которые постоянно и интенсивно взаимодействуют с почтовой системой. Extended MAPI позволяет:

  • управлять большим объемом входящих сообщений;
  • работать со сложной почтовой и адресной информацией;
  • автоматически фильтровать сообщения;
  • поддерживать дополнительные возможности сообщений, например специализированные и “интеллектуальные” формы.

Последние позволяют заменить стандартные средства отправки и приема сообщений формой, предназначенной для конкретной организации, например, в виде табеля или календаря. Кроме того, форма может включать заполненные заранее информационные поля.

“Интеллектуальные” формы похожи на специализированные, но способны связывать информацию полей формы с другими приложениями. Например, полученную таким образом табельную информацию можно переадресовать программе расчета заработной платы.

Подсистема сообщений MAPI

CMC, Simple MAPI и Extended MAPI предоставляют необходимые коммуникационным приложениям функции API. Последние работают со вторым функциональным уровнем MAPI — подсистемой сообщений (messaging subsystem), которая обрабатывает вызовы функций API и выполняет необходимые действия (рис. 11. 1). Подсистемой ее называют потому, что она фактически является составной частью операционной системы.

Microsoft
Messaging API

Рис. 11.1 Применение MAPI для создания приложений, снабженных средствами работы с почтой

Подсистема сообщений MAPI разделяет задачи, предназначенные для разных транспортных служб. Драйверы для каждого транспорта (в виде библиотеки динамической загрузки) реализуют так называемый интерфейс доступа к сервису (Service Provider Interface, SPI) между почтовой подсистемой MAPI и серверной почтовой системой.

Интерфейсы доступа к сервису

Третий функциональный уровень MAPI обеспечивает независимость программ от конкретной системы сообщений. Коммуникационные приложения, отвечающие стандарту MAPI, могут при наличии соответствующих драйверов общаться с любыми службами сообщений, также как при наличии соответствующих драйверов документ можно распечатать на разных принтерах.

Преимущества использования MAPI

Открытая архитектура MAPI обеспечивает всем приложениям-клиентам MAPI простой и надежный доступ к информации из самых разных источников, включая факсимильную связь, доски объявлений и электронную почту. Пользователи Windows вправе сами подобрать драйвер для нужной серверной службы.

Благодаря этим драйверам, клиентские приложения могут одновременно работать с несколькими системами сообщений, например Microsoft Mail, Novell MHS и IBM PROFS, не требуя настройки для конкретной системы.

Использование MAPI в Microsoft Visual Basic

Элементы управления MAPI позволяют создавать приложения Visual Basic, снабженные средствами для работы с сообщениями. Таких управляющих элементов два:

  • MAPISession;
  • MAPIMessages.

Элемент управления MAPISession позволяет зарегистрироваться в коммуникационной системе и создать сеанс MAPI. Он же используется для завершения сеанса MAPI.

Элемент управления MAPIMessages реализует различные функции системы сообщений в течение сеанса, созданного элементом управления MAPISession.

 
Пример Этот код на Visual Basic открывает сообщение электронной почты средствами элементов управления MAPISession и MAPIMessages:

Private Sub GetlastMessage_Click()

Dim strHeader As String

'Регистрация, открытие почтового сеанса и загрузка почты.

MAPISession1.Action = mapSignOn

MAPIMessagesI.SessionID = MAPISessionI.SessionID

MAPIMessages1.Fetch

'Последнее сообщение в почтовом ящике Inbox.

MAPIMessagesI.Msglndex = MAPIMessagesI.MsgCount - 1

strHeader = "От кого: " & MAPIMessagesI .MsgOrigDisplayName

strHeader = strHeader & " Тема: " &

MAPIMessagesI.MsgSubject

'Вывод текста сообщения в окно сообщений и

'завершение сеанса.

MsgBox MAPIMessagesI.MsgNoteText, , strHeader

MAPISessionI.Action = mapSignOff

End Sub


 
Примечание Более подробную информацию о MAPI Вы найдете на Web-узле Microsoft по адресу www.microsoft.com/win32dev/mapi/.

Поддержка MAPI посредством управляющих элементов ActiveX

В этом упражнении Вы с помощью элементов управления ActiveX создадите на Visual Basic приложения, снабженные средствами для работы с почтой. Используемые в этом упражнении элементы управления ActiveX обеспечивают интерфейс с MAPI. ^ Установка Microsoft Mail Postoffice

  1. В Панели управления дважды щелкните значок Microsoft Mail Postoffice.
  2. Выберите Create a new Workgroup Postoffice и нажмите Next.
  3. В поле Postoffice Location наберите С:\ и нажмите Next.
  4. По умолчанию Вам будет предложен каталог C:\wgpo0000. Нажмите Next.
  5. Введите информацию об администраторе, указанную в таблице.

Поле

Значение (все символы строчные)

Name

admin

Mailbox

admin

Password

password

Остальные поля можно не заполнять. Нажмите ОК.

  1. Появится сообщение о предоставлении папки в совместное использование. Нажмите ОК.
  2. На рабочем столе Windows 95 щелкните правой кнопкой значок Inbox и выберите пункт Properties.
  3. Щелкните кнопку Add, выберите только службу Microsoft Mail и нажмите Next.
  4. В качестве каталога по умолчанию должна быть указана папка C:\wgpo0000. Нажмите Next.
  5. Убедитесь, что выбрана учетная запись admin, и нажмите Next.
  6. В поле пароля наберите слово password и нажмите Next.
  7. Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом адресной книги.
  8. Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом личной папки.
  9. Оставьте установленным флажок Do not add the Inbox to the Startup group и нажмите Next.
  10. Нажмите Finish.

> Как открыть папку Inbox в Windows 95

  1. Дважды щелкните значок Inbox на рабочем столе.
  2. Если система попросит ввести пароль, убедитесь, что для почтового отделения используется каталог C:\wgpo0000, а в качестве почтового ящика — admin Вве дите в поле пароля password и нажмите ОК.
  3. Минимизируйте окно Inbox.

> Использование элементов управления MAPI в Visual Basic

  1. Создайте в Visual Basic новый проект типа Standard EXE.
  2. Щелкните правой кнопкой мыши панель элементов управления и выберите пункт Components.
  3. Выберите компоненты Microsoft MAPI Controls 5.0 и Microsoft Rich Textbox Control 5.0.
  4. Поместите на форму Form1 элементы управления MAPIMessages и MAPI- Session.
  5. Добавьте на форму Form1 два текстовых поля, поле форматированного тек ста и кнопку.
  6. Установите для них свойства, перечисленные в таблице.

Элемент управления

Свойство

Значение

Textl

Name

txtEmail

Text2

Name

txtSubject

RichTextBox1

Name

rtbMessage

Command 1

Name

cmdSendMail

Caption

&Send Mail

  1. Ваша форма должна выглядеть, как показано на рисунке.

    Microsoft
Messaging API

  2. В событие Click кнопки cmdSendMail введите следующий код:

    MAPISession1.SignOn

    With MAPIMessages1

    .SessionID = Form1.MAPISession1.SessionID

    .Compose

    .MsgSubject = txtSubject.Text

    .MsgNoteText = rtbMessage.Text

    .RecipAddress = txtEmail.Text

    .AddressResolveUI = True

    . ResolveName

    .Send False

    End With

    MAPISessionI.SignOff

  3. В меню Run Visual Basic выберите пункт Start.
  4. Введите admin в качестве адресата сообщения.
  5. Введите тему и само сообщение, после чего нажмите кнопку Send Mail.

    Сообщение будет отправлено Вашей учетной записи в почтовом отделении Windows 95.

  6. Переключитесь в окно Inbox и проверьте наличие новой почты. Доставка электронного письма может занять несколько секунд.

Резюме

Microsoft Messaging API обеспечивает пользователям организации доступ к информации, поступающей от MAPI-совместимых почтовых систем. Открытая архитектура MAPI позволяет интегрировать клиентские приложения MAPI с такими службами, как факс, доски объявлений и электронная почта.

В состав MAPI входят три разновидности клиентских API. Simple MAPI и Common Messaging Calls (CMC) адресованы разработчикам приложений, которым необходим только набор базовых функций для работы с сообщениями. Extended MAPI предназначен для создания полнофункциональных коммуникационных приложений.

MAPI предоставляет программам, работающим с сообщениями, необходимые функции API. Вызовы обрабатывает второй функциональный уровень MAPI — подсистема сообщений.

Элементы управления MAPI позволяют снабжать приложения на Visual Basic средствами для работы с сообщениями. Элемент управления MAPISession обеспечивает регистрацию в коммуникационной системе и создание сеанса MAPI, а также завершение сеанса. Элемент управления MAPIMessages реализует различные функции системы сообщений в течение сеанса, созданного элементом управления MAPISession.

 



Содержание раздела