Vue d’ensemble de l’interface et de l’objet MAPI
S’applique à : Outlook 2013 | Outlook 2016
Un objet MAPI est une classe d’objet C++ ou une structure de données C héritée d’une ou plusieurs interfaces MAPI ou de collections de fonctions associées. Ces collections de fonctions connexes sont connues des développeurs C++ comme des fonctions virtuelles pures. Pour une fonction virtuelle pure, MAPI fournit uniquement le prototype de fonction, et non une implémentation. Il est prévu qu’une application cliente, un fournisseur de services ou MAPI fournisse cette implémentation en créant une classe d’objet qui hérite de l’interface et est conforme aux descriptions de fonction de l’API de messagerie. Une interface MAPI ne peut être instanciée que par le biais d’une classe héritée.
Il existe de nombreux objets MAPI différents, chaque objet héritant d’une interface qui est finalement héritée de l’interface IUnknown . IUnknown est l’interface de base COM (Component Object Model) OLE. Il fournit aux objets MAPI un mécanisme standard pour la communication et le contrôle. COM détermine comment les implémenteurs d’objets gèrent les problèmes tels que la gestion de la mémoire, la gestion des paramètres et le multithreading. En se conformant à ce modèle, un implémenteur d’objets adhère à un contrat tel que spécifié par les interfaces incluses dans l’objet.
De nombreuses interfaces MAPI sont héritées directement d’IUnknown, tandis que d’autres sont héritées indirectement via l’une des deux autres interfaces de base : IMAPIProp : IUnknown pour la gestion des propriétés et IMAPIContainer : IMAPIProp pour l’accès au dossier et au carnet d’adresses. Les interfaces de base ne sont jamais implémentées en tant qu’objets autonomes distincts ; ils sont toujours implémentés dans le cadre d’autres objets, des objets qui implémentent des interfaces dérivées.
MAPI définit de nombreux types d’objets, chacun implémenté par un ou plusieurs composants MAPI. Les objets implémentés par les clients sont utilisés par MAPI, par les fournisseurs de services et par les composants de formulaire personnalisés. Les objets implémentés par les fournisseurs de services sont généralement utilisés par MAPI et par les clients. Les objets implémentés par les fournisseurs de bibliothèques de formulaires et les serveurs de formulaires sont utilisés par d’autres composants de formulaire et par les clients.