Partager via


Implémentation d’objets MAPI

S’applique à : Outlook 2013 | Outlook 2016

Les objets MAPI peuvent être implémentés à l’aide de classes C++ ou de structures de données C, en fonction du langage et de l’ensemble d’API utilisé par un client ou un fournisseur de services. Les fournisseurs de services peuvent être écrits en C ou C++ avec l’interface du fournisseur de services MAPI ; les applications clientes peuvent également utiliser C ou C++. Si possible, les clients et les fournisseurs de services qui utilisent l’interface de programmation orientée objet doivent utiliser C++.

C++ est le choix préféré, car MAPI est une technologie orientée objet, et C++ se prête plus facilement au développement orienté objet. Le code obtenu est plus simple et plus simple, ce qui le rend plus facile à gérer. La documentation MAPI est principalement écrite pour les développeurs C++ ; toutes les descriptions de syntaxe des méthodes d’interface MAPI de cette référence sont en C++.

Les développeurs peuvent utiliser Microsoft Visual Studio et des outils de développement tiers pour développer des solutions qui appellent MAPI. Notez que les développeurs doivent utiliser C ou C++ non managé, mais pas C++ managé pour écrire des solutions MAPI.

Lorsqu’un objet MAPI est implémenté, un client ou un fournisseur de services crée du code pour toutes les méthodes d’interface, du code pour toutes les méthodes privées spécifiques à l’implémentation et du code pour prendre en charge les membres de données privés pour la gestion des informations d’état. Le code des méthodes d’interface doit suivre les spécifications publiées par MAPI qui documentent le comportement attendu.

Il existe de nombreuses macros dans le fichier d’en-tête Mapidefs.h et les fichiers d’en-tête OLE que les clients et les fournisseurs de services dans les deux langues peuvent utiliser pour les aider à définir leurs objets MAPI. Par exemple, il existe une macro pour définir les méthodes de chacune des interfaces MAPI. La macro pour définir les méthodes de l’interface IUnknown s’affiche dans Mapidefs.h comme suit :

#define MAPI_IUNKNOWN_METHODS(IPURE)          \
    MAPIMETHOD(QueryInterface)                \
        (THIS_ REFIID riid, LPVOID FAR * ppvObj) IPURE;    \
    MAPIMETHOD_(ULONG,AddRef)  (THIS) IPURE;               \
    MAPIMETHOD_(ULONG,Release) (THIS) IPURE;   \
 

Voir aussi

Vue d’ensemble de l’interface et de l’objet MAPI