Общие сведения об объекте и интерфейсе MAPI
Область применения: Outlook 2013 | Outlook 2016
Объект MAPI — это класс объектов C++ или структура данных C, унаследованная от одного или нескольких интерфейсов MAPI или коллекций связанных функций. Эти коллекции связанных функций известны разработчикам C++ как чистые виртуальные функции. Для чисто виртуальной функции MAPI предоставляет только прототип функции, а не реализацию. Ожидается, что клиентское приложение, поставщик услуг или MAPI обеспечит эту реализацию путем создания класса объектов, наследуемого от интерфейса и соответствующего описаниям функций API обмена сообщениями. Экземпляр интерфейса MAPI можно создать только с помощью наследуемого класса.
Существует множество различных объектов MAPI, каждый из которых наследуется от интерфейса, который в конечном итоге наследуется от интерфейса IUnknown . IUnknown — это базовый интерфейс OLE Component Object Model (COM). Он предоставляет объекты MAPI со стандартным механизмом взаимодействия и управления. COM определяет, как реализующие объекты обрабатывают такие проблемы, как управление памятью, управление параметрами и многопоточность. В соответствии с этой моделью реализующий объект соответствует контракту, заданному интерфейсами, включенными в объект .
Многие интерфейсы MAPI наследуются непосредственно от IUnknown, а другие наследуются косвенно через один из двух других базовых интерфейсов: IMAPIProp : IUnknown для управления свойствами и IMAPIContainer : IMAPIProp для доступа к папкам и адресной книге. Базовые интерфейсы никогда не реализуются как отдельные автономные объекты; они всегда реализуются как часть других объектов, объектов, реализующих производные интерфейсы.
MAPI определяет множество типов объектов, каждый из которых реализуется одним или несколькими компонентами MAPI. Объекты, реализованные клиентами, используются MAPI, поставщиками услуг и настраиваемыми компонентами формы. Объекты, реализованные поставщиками услуг, обычно используются MAPI и клиентами. Объекты, реализованные поставщиками библиотек форм и серверами форм, используются другими компонентами формы и клиентами.