ABProviderInit
The ABProviderInit
function initializes an address book provider for operation.
Quick Info
Header
file: |
MAPISPI.H |
Implemented
by: |
Address
book providers |
Called by: |
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] The
instance of the address book provider s
dynamic-link library (DLL) that MAPI used when it linked.
lpMalloc
[in] Pointer
to a memory allocator object exposing the OLE IMalloc interface. The
address book provider may need to use this allocation method when working with
certain interfaces such as IStream.
lpAllocateBuffer
[in] Pointer
to the MAPIAllocateBuffer
lpAllocateMore
[in] Pointer
to the MAPIAllocateMore
lpFreeBuffer
[in] Pointer
to the MAPIFreeBuffer
ulFlags
[in] Bitmask
of flags. The following flag can be set:
MAPI_NT_SERVICE
The provider
is being loaded in the context of a Windows NT service, a special type of
process without access to any user interface.
ulMAPIVer
[in] Version
number of the service provider interface (SPI) that MAPI.DLL uses. For the
current version number, see the MAPISPI.H header file.
lpulProviderVer
[out] Pointer
to the version number of the SPI that this address book provider uses.
lppABProvider
[out] Pointer
to a pointer to the initialized address book provider object.
Return Values
S_OK
The call
succeeded and has returned the expected value or values.
MAPI_E_VERSION
The SPI
version being used by MAPI is not compatible with the SPI being used by this
provider.
Remarks
MAPI calls
the entry point function ABProviderInit to initialize an address book
provider following a client logon.
Notes to Implementers
An address
book provider must implement ABProviderInit as an entry point function
in the provider s DLL. The implementation must be based on the ABPROVIDERINIT
function prototype, also specified in MAPISPI.H. MAPI defines ABPROVIDERINIT
to use the standard MAPI initialization call type, STDMAPIINITCALLTYPE, which
causes ABProviderInit to follow the CDECL calling convention. The
advantage of CDECL is that calls can be attempted even if the number of calling
parameters does not match the number of defined parameters.
A provider
can be initialized multiple times, as a result of appearing in several profiles
in simultaneous use or of appearing more than once in the same profile. ABProviderInit
must return a different provider object in lppABProvider for each
initialization.
The address
book provider should use the functions pointed to by lpAllocateBuffer, lpAllocateMore,
and lpFreeBuffer for most memory allocation and deallocation. In
particular, the provider must use these functions to allocate memory for use by
client applications when calling object interfaces such as IMAPIProp::GetProps
For more
information on writing ABProviderInit, see Implementing an Address
Book Provider s Entry Point Function. For more information on entry point functions, see About
Provider Entry Point Functions
See Also
HPProviderInit, IABProvider : IUnknown