Математика | ||||
Основы MAPI-Круз, Лес Талер М 1997. - 552 с.: ил. | ||||
Ирвинг де ла Круз, Лес Талер
84 Основы MAPI/Пер, с англ. — М.: Издательский отдел «Русская Редакция» ТОО «Channel Trading Ltd.», 1997. - 552 с.: ил. ISBN 5-7502-0061-2 Предмет книги — создание приложений обработки электронных сообщений и поддержки коллективной работы на основе MAPI (интерфейса программирования приложений электронных сообщений), обеспечивающего высокую степень совместимости различного программного обеспечения. В ней приведены как общее описание архитектуры MAPI и его составляющих, так и детали реализации конкретных приложений. Книга предназначена для специалистов в области информационных технологий: как для тех, кто хочет глубже понять архитектуру MAPI, так и для тех, кто собирается реализовывать совместимые с MAPI системы электронных сообщений (подразумевается знакомство с языком C++). Желательно также иметь представление о модели OLE COM и клиент-серверном программировании; приветствуется и опыт программирования баз данных. На прилагаемом компакт-диске содержится программа установки и полные исходные тексты клиентов Extended MAPI, компонентов доступа к транспорту, адресным книгам, хранилищам сообщений и законченного приложения — сервера электронного почтового отделения. Оглавление Предисловие...........................................................................................X/ Or авторов..............................................................................................XIII Введение................................................................................................XV ЧАСТЬ I Компоненты MAPI....................................................1 Глава 1 Архитектура MAPI...................................................3 Что такое MAPI?......................................................................................3 Электронная почта и электронные сообщения - исторические предпосылки создания MAPI..........................................................4 Приложения обработки электронных сообщений сегодня..........................................................................5 Обзор архитектуры...............................................................................8 Преимущества архитектуры MAPI.................................................................10 Компоненты MAPI.................................................................................12 Многоуровневая модель.................................................................................12 Глава 2 Свойства MAPI.......................................................23 MAPI и СОМ...........................................................................................23 IMAPIProp...............................................................................................24 Транзакционные и нетранзакционные объекты..........................................27 Подробнее о свойствах MAPI............................................................28 Стандартные и нестандартные свойства....................................................32 Идентификация объектов: идентификаторы записей................................34 Прочие идентифицирующие свойства.........................................................36 Работа со свойствами объектов: подробнее о IMAPIProp..................................................................36 Как MAPI возвращает информацию об ошибках........................................37 Метод GetLastError............................................................................................38 Модель управления памятью MAPI................................................................40 Свойства объекта.............................................................................................43 Получение значений свойств объекта..........................................................43 Задание значений свойств объекта..............................................................48 Удаление свойств объекта..............................................................................51 Копирование содержимого объекта............................................................53 Окончательное сохранение изменений объекта.......................................56 Что дальше............................................................................................57 Глава 3 Контейнеры MAPI...................................................59 Стандартный интерфейс контейнера.............................................60 Таблицы данных контейнеров...........................................................61 Открытие объектов контейнера........................................................65 уровень доступа...............................................................................................66 Поисковые контейнеры......................................................................67 Глава 4 Таблицы и уведомления MAPI.............................71 Причины использования таблиц в MAPI............................................71 Основы таблиц MAPI............................................................................72 SRowSetnSRow.................................................................................................73 Абстрактные операции с таблицами..............................................75 Проекции и запросы...........................................................................76 Определение запросов..................................................................................77 Выделение: SetColumns...................................................................................77 Фильтрация '.Restrict..........................................................................................78 Сортировка: SortTable......................................................................................86 Выполнение запроса -.QueryRows, HrQueryAIIRows.....................................88 Позиционирование: SeekRow, FindRow........................................................88 Прочие методы IMAPITable.................................................................92 Уведомления........................................................................................92 Машина уведомлений MAPI...........................................................................94 Что дальше............................................................................................97 Глава 5 Клиентские приложения MAPI............................99 Что такое клиент?................................................................................99 Общие атрибуты клиентов............................................................................101 Доступ клиента к системе электронных сообщений.................102 Сессия MAPI.......................................................................................103 Основные операции клиента..........................................................104 Взаимодействие клиента с компонентами доступа...................105 Важные свойства на клиентской стороне, с которыми работает HelloMAPI.................................................113 HelloMAPI: минимальный клиент MAPI............................................117 Описание программы...................................................................................118 Классы и структуры данных..........................................................................119 Пользовательский интерфейс......................................................................119 HelloMAPI.CPP: детали реализации............................................................125 ЧАСТЬ II WINDS и реализация компонентов доступа: примеры...................................173 Глава 6 Компоненты доступа MAPI................................175 Что следует учитывать при разработке компонента доступа.....................................................................176 Как реализуются компоненты доступа.........................................177 Как реализуются интерфейсы MAPI............................................................180 Основные правила реализации..................................................................182 Установка, регистрация и конфигурирование компонентов доступа...............................................................................189 Спулер MAPI........................................................................................199 Путь сообщения при отправке и приеме.......................................200 Отправка сообщения....................................................................................201 Прием сообщения..........................................................................................203 Что дальше..........................................................................................204 Глава 7 Реализация компонентов доступа: примеры...........................................................205 Система электронной почты WINDS...............................................205 Сервер WINDS.................................................................................................206 Администратор WINDS..................................................................................207 Сервис электронных сообщений WINDS....................................................209 MSLMS: компонент доступа к личному хранилищу сообщений.............................................212 CDataBase.......................................................................................................212 АВРАВ: компонент доступа к личной адресной книге.............................................................214 Глава 8 Компоненты доступа к транспорту..................215 Как транспорты взаимодействуют с подсистемой MAPI.....................................................................216 Отправка сообщений....................................................................................216 Прием сообщений.........................................................................................218 Как транспорты взаимодействуют с компонентами доступа к хранилищу и адресной книге..................................218 Основные требования ко всем транспортам сообщений............................................................219 Использование TNEF для инкапсуляции данных сообщения.......................................................................223 Доступ клиента к транспортам сообщений.................................224 Разработка транспорта сообщений: транспорт WINDS (XPWDS)............................................................225 Реализация интерфейсов-заглушек............................................................225 Редактирование файла MAPISVC.INF..........................................................226 Реализация ServiceEntry................................................................................227 Реализация XPProviderlnit..............................................................................235 Реализация IXPProvider..................................................................................236 Реализация IXPLogon.....................................................................................246 Реализация IMAPIStatus.................................................................................277 Удаленные транспорты....................................................................280 Общие требования........................................................................................281 Наша реализация удаленного транспорта: XPWDSR...................282 Реализация IMAPIFolder.................................................................................288 Реализация IMAPIStatus для удаленных транспортов...............................292 Глава 9 Разработка компонентов доступа к адресной книге.............................................301 Общие требования............................................................................301 Интерфейсы компонента доступа к адресной книге..............................302 Интерфейс между компонентом доступа к адресной книге и базой данных..........................................................304 Компоненты доступа к изменяемой адресной книге...............................305 Идентификаторы записей.............................................................................306 Реализация базы данных..............................................................................307 Два примера реализации: АВРАВ и ABWDS...................................308 Общие особенности архитектуры..............................................................309 Начало сессии с компонентом доступа к адресной книге..........................................................................310 Конфигурация сервиса.................................................................................311 Начало сессии компонента доступа.........................................................315 Редактирование файла MAPISVC.INF..........................................................319 Свойства компонента доступа к адресной книге....................................319 Возвращение таблицы иерархии корневого контейнера.......................323 Примитивы для работы с базой данных......................................................323 Возвращение записей получателей...............................................333 Реализация/М/АР/Ргор...................................................................................333 Производные классы.....................................................................................343 Снова IABLogon::Open Entry.........................................................................345 Просмотр записи...............................................................................353 Таблицы отображения...................................................................................353 Разрешение имен..............................................................................359 PR_ANR..............................................................................................................365 IABLogon::PrepareRecips................................................................................366 Одиночки и таблица одиночек сессии......................................................369 Компоненты доступа к изменяемой адресной книге.................375 IABContainer::CreateEntry..............................................................................376 Уведомления...................................................................................................388 DetefeEnfr/'es.....................................................................................................393 SaveChanges...................................................................................................396 CopyEntries.......................................................................................................399 Компоненты доступа к серверной адресной книге...................401 Архитектура ABWDS.......................................................................................402 Глава 10 Разработка компонентов доступа к хранилищу сообщений...............................................433 Что такое компонент доступа к хранилищу сообщений............433 Взаимодействие компонентов доступа к хранилищу сообщений с подсистемой MAPI.....................................................................434 Подключение к компоненту доступа к хранилищу сообщений.............434 Взаимодействие компонентов доступа к хранилищу сообщений с компонентами доступа к адресной книге и транспорту.................435 Взаимодействие клиента с компонентами доступа к хранилищу.........435 Общие требования к компонентам доступа к хранилищу сообщений.............................................436 Компоненты доступа к хранилищу обязаны поддерживать открытие корневой папки и получение ее таблиц содержимого и иерархии.......................................................................436 Компоненты доступа к хранилищу обязаны зарегистрироватькак минимум один DID.............................................436 Компоненты доступа к хранилищу обязаны поддерживать интерфейсы, необходимые для взаимодействия с клиентскими приложениями и подсистемой MAPI...........................436 Компоненты доступа к хранилищу обязаны поддерживать открытие своих объектов при помоши IMsgStore;:OpenEntry nlMSLogon::OpenEntry..............................................................................438 Все интерфейсы компонента доступа к хранилищу должны быть потокобезопасными.........................................................438 Компоненты доступа к хранилищу обязаны объявлять о своих возможностях в PR_STORE_SUPPORT_MASK...............................438 Поддержка уведомлений.............................................................................441 Компоненты доступа к хранилищу с особыми требованиями............................................................441 Компоненты доступа к хранилищу по умолчанию....................................441 Компоненты доступа к общедоступным папкам.......................................444 Компоненты доступа к неизменяемому хранилищу.................................444 Разработка компонента доступа к хранилищу сообщений.............................................................445 Реализация интерфейсов-заглушек............................................................446 Добавление информации о компоненте доступа к хранилищу в MAPISVC.1NF......................................................................446 Реализация ServiceEntry................................................................................448 Реализация MSProviderlnit.............................................................................451 Отладка компонентов доступа к хранилищу сообщений.............................................................452 Реализация MSLMS и MSWDS.............................................................452 Общие черты архитектуры............................................................................453 Реализация IMSProvider.....................................................................462 Реализация IMsgStore........................................................................469 IMsgStore::SaveChanges................................................................................472 IMsgStore::SetProps..........................................................................................472 Неподдерживаемые методы........................................................................473 Открытие объектов компонента доступа к хранилищу............................473 Поддержка задания приемной папки........................................................478 Таблица исходящей очереди компонента доступа к хранилищу сообщений....................................478 Цена: 500руб. |
||||