ABProviderInit
Aplica-se a: Outlook 2013 | Outlook 2016
Inicializa um provedor de catálogo de endereços para operação.
Propriedade | Valor |
---|---|
Arquivo de cabeçalho: |
Mapispi.h |
Implementado por: |
Provedores de catálogo de endereços |
Chamado por: |
MAPI |
HRESULT ABProviderInit(
HINSTANCE hInstance,
LPMALLOC lpMalloc,
LPALLOCATEBUFFER lpAllocateBuffer,
LPALLOCATEMORE lpAllocateMore,
LPFREEBUFFER lpFreeBuffer,
ULONG ulFlags,
ULONG ulMAPIVer,
ULONG FAR * lpulProviderVer,
LPABPROVIDER FAR * lppABProvider
);
Parâmetros
Hinstance
[in] A instância da DLL (biblioteca de link dinâmico) do provedor de catálogo de endereços que o MAPI usou quando ele foi vinculado.
lpMalloc
[in] Ponteiro para um objeto alocador de memória expondo a interface OLE IMalloc . O provedor de catálogo de endereços pode precisar usar esse método de alocação ao trabalhar com determinadas interfaces, como iStream.
lpAllocateBuffer
[in] Ponteiro para a função MAPIAllocateBuffer , para ser usado quando necessário pelo MAPI para alocar memória.
lpAllocateMore
[in] Ponteiro para a função MAPIAllocateMore , a ser usada quando necessário pelo MAPI para alocar memória adicional.
lpFreeBuffer
[in] Ponteiro para a função MAPIFreeBuffer , para ser usado quando necessário pelo MAPI para liberar memória.
ulFlags
[in] Máscara de bits de sinalizadores. O seguinte sinalizador pode ser definido:
MAPI_NT_SERVICE
O provedor está sendo carregado no contexto de um serviço Windows, um tipo especial de processo sem acesso a qualquer interface do usuário.
ulMAPIVer
[in] Número de versão da SPI (interface do provedor de serviço) que MAPI.DLL usa. Para o número da versão atual, consulte MAPISPI. Arquivo de cabeçalho H.
lpulProviderVer
[out] Ponteiro para o número de versão do SPI que este provedor de catálogo de endereços usa.
lppABProvider
[out] Ponteiro para um ponteiro para o objeto do provedor de catálogo de endereços inicializado.
Valor de retorno
S_OK
A chamada foi bem-sucedida e retornou o valor ou valores esperados.
MAPI_E_VERSION
A versão spi que está sendo usada pelo MAPI não é compatível com o SPI que está sendo usado por esse provedor.
Comentários
MAPI chama a função de ponto de entrada ABProviderInit para inicializar um provedor de catálogo de endereços seguindo um logon do cliente.
Observações para implementadores
Um provedor de catálogo de endereços deve implementar o ABProviderInit como uma função de ponto de entrada na DLL do provedor. A implementação deve ser baseada no protótipo de função ABPROVIDERINIT , também especificado em MAPISPI.H. MAPI define ABPROVIDERINIT para usar o tipo de chamada de inicialização MAPI padrão, STDMAPIINITCALLTYPE, o que faz com que ABProviderInit siga a convenção de chamada CDECL.
Um provedor pode ser inicializado várias vezes, como resultado de aparecer em vários perfis em uso simultâneo ou de aparecer mais de uma vez no mesmo perfil. Como o objeto provedor contém contexto, ABProviderInit deve retornar um objeto provedor diferente em lppABProvider para cada inicialização, mesmo para várias inicializações no mesmo processo.
O provedor de catálogo de endereços deve usar as funções apontadas por lpAllocateBuffer, lpAllocateMore e lpFreeBuffer para a maioria da alocação e alocação de memória. Em particular, o provedor deve usar essas funções para alocar memória para uso por aplicativos cliente ao chamar interfaces de objeto como IMAPIProp::GetProps e IMAPITable::QueryRows. Se o provedor também espera usar o alocador de memória OLE, ele deve chamar o método IUnknown::AddRef do objeto alocador apontado pelo parâmetro lpMalloc .
Para obter mais informações sobre como escrever ABProviderInit, consulte Implementando uma função de ponto de entrada do provedor de catálogo de endereços. Para obter mais informações sobre funções de ponto de entrada, consulte Implementando uma função de ponto de entrada do provedor de serviços.