Compartir a través de


Implementación de objetos MAPI

Hace referencia a: Outlook 2013 | Outlook 2016

Los objetos MAPI se pueden implementar mediante clases de C++ o estructuras de datos de C, según el lenguaje y el conjunto de API que usa un cliente o proveedor de servicios. Los proveedores de servicios se pueden escribir en C o C++ con la interfaz del proveedor de servicios MAPI; Las aplicaciones cliente también pueden usar C o C++. Si es posible, los clientes y proveedores de servicios que usan la interfaz de programación orientada a objetos deben usar C++.

C++ es la opción preferida porque MAPI es una tecnología orientada a objetos y C++ se presta más fácilmente al desarrollo orientado a objetos. El código resultante es más sencillo y sencillo, lo que facilita su mantenimiento. La documentación mapi está escrita principalmente para desarrolladores de C++; todas las descripciones de sintaxis de los métodos de interfaz MAPI de esta referencia se encuentran en C++.

Los desarrolladores pueden usar Microsoft Visual Studio y herramientas de desarrollo de terceros para desarrollar soluciones que llamen a MAPI. Tenga en cuenta que los desarrolladores deben usar C o C++ no administrado, pero no C++ administrado para escribir soluciones MAPI.

Cuando se implementa un objeto MAPI, un cliente o proveedor de servicios crea código para todos los métodos de interfaz, código para los métodos privados específicos de la implementación y código para admitir miembros de datos privados para mantener la información de estado. El código de los métodos de interfaz debe seguir las especificaciones publicadas por MAPI que documenta el comportamiento esperado.

Hay muchas macros en el archivo de encabezado Mapidefs.h y en los archivos de encabezado OLE que los clientes y proveedores de servicios de cualquier lenguaje pueden usar para ayudarles con sus definiciones de objetos MAPI. Por ejemplo, hay una macro para definir los métodos de cada una de las interfaces MAPI. La macro para definir los métodos de la interfaz IUnknown aparece en Mapidefs.h como se indica a continuación:

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

Vea también

Información general sobre el objeto y la interfaz MAPI