Compartir a través de


ABProviderInit

Hace referencia a: Outlook 2013 | Outlook 2016

Inicializa un proveedor de libreta de direcciones para la operación.

Propiedad Valor
Archivo de encabezado:
Mapispi.h
Implementado por:
Proveedores de libretas de direcciones
Llamado por:
MAPI
HRESULT ABProviderInit(
  HINSTANCE hInstance,
  LPMALLOC lpMalloc,
  LPALLOCATEBUFFER lpAllocateBuffer,
  LPALLOCATEMORE lpAllocateMore,
  LPFREEBUFFER lpFreeBuffer,
  ULONG ulFlags,
  ULONG ulMAPIVer,
  ULONG FAR * lpulProviderVer,
  LPABPROVIDER FAR * lppABProvider
);

Parameters

hInstance

[in] Instancia de la biblioteca de vínculos dinámicos (DLL) del proveedor de libretas de direcciones que MAPI usó cuando se vinculó.

lpMalloc

[in] Puntero a un objeto de asignador de memoria que expone la interfaz OLE IMalloc . Es posible que el proveedor de libreta de direcciones tenga que usar este método de asignación al trabajar con ciertas interfaces, como IStream.

lpAllocateBuffer

[in] Puntero a la función MAPIAllocateBuffer , que se usará cuando mapi lo requiera para asignar memoria.

lpAllocateMore

[in] Puntero a la función MAPIAllocateMore , que se usará cuando MAPI lo requiera para asignar memoria adicional.

lpFreeBuffer

[in] Puntero a la función MAPIFreeBuffer , que se usará cuando MAPI lo requiera para liberar memoria.

ulFlags

[in] Máscara de bits de marcas. Se puede establecer la marca siguiente:

MAPI_NT_SERVICE

El proveedor se carga en el contexto de un servicio de Windows, un tipo especial de proceso sin acceso a ninguna interfaz de usuario.

ulMAPIVer

[in] Número de versión de la interfaz del proveedor de servicios (SPI) que MAPI.DLL usa. Para obtener el número de versión actual, vea MAPISPI. Archivo de encabezado H.

lpulProviderVer

[out] Puntero al número de versión del SPI que usa este proveedor de libreta de direcciones.

lppABProvider

[out] Puntero a un puntero al objeto de proveedor de libreta de direcciones inicializado.

Valor devuelto

S_OK

La llamada se ha realizado correctamente y devuelva el valor esperado o los valores.

MAPI_E_VERSION

La versión spi que usa MAPI no es compatible con el SPI que usa este proveedor.

Comentarios

MAPI llama a la función de punto de entrada ABProviderInit para inicializar un proveedor de libreta de direcciones después de un inicio de sesión de cliente.

Notas a los implementadores

Un proveedor de libreta de direcciones debe implementar ABProviderInit como una función de punto de entrada en el archivo DLL del proveedor. La implementación debe basarse en el prototipo de función ABPROVIDERINIT , también especificado en MAPISPI.H. MAPI define ABPROVIDERINIT para usar el tipo de llamada de inicialización MAPI estándar, STDMAPIINITCALLTYPE, lo que hace que ABProviderInit siga la convención de llamada de CDECL.

Un proveedor se puede inicializar varias veces, como resultado de aparecer en varios perfiles en uso simultáneo o de aparecer más de una vez en el mismo perfil. Dado que el objeto de proveedor contiene contexto, ABProviderInit debe devolver un objeto de proveedor diferente en lppABProvider para cada inicialización, incluso para varias inicializaciones en el mismo proceso.

El proveedor de libreta de direcciones debe usar las funciones a las que apuntan lpAllocateBuffer, lpAllocateMore y lpFreeBuffer para la mayoría de la asignación y desasignación de memoria. En concreto, el proveedor debe usar estas funciones para asignar memoria para que las aplicaciones cliente las usen al llamar a interfaces de objetos como IMAPIProp::GetProps e IMAPITable::QueryRows. Si el proveedor también espera usar el asignador de memoria OLE, debe llamar al método IUnknown::AddRef del objeto de asignador al que apunta el parámetro lpMalloc .

Para obtener más información sobre cómo escribir ABProviderInit, vea Implementar una función de punto de entrada del proveedor de libreta de direcciones. Para obtener más información sobre las funciones de punto de entrada, vea Implementación de una función de punto de entrada del proveedor de servicios.

Vea también