Übersicht über MAPI-Objekte und -Schnittstellen
Gilt für: Outlook 2013 | Outlook 2016
Ein MAPI-Objekt ist eine C++-Objektklasse oder C-Datenstruktur, die von einer oder mehreren MAPI-Schnittstellen oder Sammlungen verwandter Funktionen geerbt wird. Diese Sammlungen verwandter Funktionen sind C++-Entwicklern als reine virtuelle Funktionen bekannt. Für eine reine virtuelle Funktion stellt MAPI nur den Funktionsprototyp bereit, keine Implementierung. Es wird erwartet, dass eine Clientanwendung, ein Dienstanbieter oder eine MAPI diese Implementierung bereitstellt, indem eine Objektklasse erstellt wird, die von der Schnittstelle erbt und den Funktionsbeschreibungen der Messaging-API entspricht. Eine MAPI-Schnittstelle kann nur über eine geerbte Klasse instanziiert werden.
Es gibt viele verschiedene MAPI-Objekte, wobei jedes Objekt von einer Schnittstelle erbt, die letztendlich von der IUnknown-Schnittstelle geerbt wird. IUnknown ist die BASISschnittstelle des OLE Component Object Model (COM). Es stellt MAPI-Objekte mit einem Standardmechanismus für die Kommunikation und Steuerung bereit. COM bestimmt, wie Objektimplementierer Probleme wie Speicherverwaltung, Parameterverwaltung und Multithreading behandeln. Durch Die Konformität mit diesem Modell hält sich ein Objektimplementierer an einen Vertrag, der durch die im Objekt enthaltenen Schnittstellen angegeben wird.
Viele MAPI-Schnittstellen werden direkt von IUnknown geerbt, während andere indirekt über eine von zwei anderen Basisschnittstellen geerbt werden: IMAPIProp : IUnknown für die Eigenschaftenverwaltung und IMAPIContainer : IMAPIProp für den Ordner- und Adressbuchzugriff. Basisschnittstellen werden nie als separate eigenständige Objekte implementiert. Sie werden immer als Teil anderer Objekte implementiert, d. h. Objekte, die abgeleitete Schnittstellen implementieren.
MAPI definiert viele Objekttypen, die jeweils von einer oder mehreren MAPI-Komponenten implementiert werden. Von Clients implementierte Objekte werden von MAPI, von Dienstanbietern und von benutzerdefinierten Formularkomponenten verwendet. Von Dienstanbietern implementierte Objekte werden in der Regel von DER MAPI und von Clients verwendet. Von Formularbibliotheksanbietern und Formularservern implementierte Objekte werden von anderen Formularkomponenten und Clients verwendet.