Freigeben über


ABProviderInit

Gilt für: Outlook 2013 | Outlook 2016

Initialisiert einen Adressbuchanbieter für den Vorgang.

Eigenschaft Wert
Headerdatei
Mapispi.h
Implementiert von:
Adressbuchanbieter
Aufgerufen von:
MAPI
HRESULT ABProviderInit(
  HINSTANCE hInstance,
  LPMALLOC lpMalloc,
  LPALLOCATEBUFFER lpAllocateBuffer,
  LPALLOCATEMORE lpAllocateMore,
  LPFREEBUFFER lpFreeBuffer,
  ULONG ulFlags,
  ULONG ulMAPIVer,
  ULONG FAR * lpulProviderVer,
  LPABPROVIDER FAR * lppABProvider
);

Parameter

Hinstance

[in] Die instance der Dynamic Link Library (DLL) des Adressbuchanbieters, die MAPI beim Verknüpfen verwendet hat.

lpMalloc

[in] Zeiger auf ein Speicherzuweisungsobjekt, das die OLE IMalloc-Schnittstelle verfügbar macht. Der Adressbuchanbieter muss diese Zuordnungsmethode möglicherweise verwenden, wenn er mit bestimmten Schnittstellen wie IStream arbeitet.

lpAllocateBuffer

[in] Zeiger auf die MAPIAllocateBuffer-Funktion , die verwendet werden soll, wenn die MAPI dies zum Zuweisen von Arbeitsspeicher erfordert.

lpAllocateMehr

[in] Zeiger auf die MAPIAllocateMore-Funktion , die bei Bedarf von MAPI verwendet werden soll, um zusätzlichen Arbeitsspeicher zuzuweisen.

lpFreeBuffer

[in] Zeiger auf die MAPIFreeBuffer-Funktion , die bei Bedarf von MAPI verwendet werden soll, um Arbeitsspeicher freizugeben.

ulFlags

[in] Bitmaske von Flags. Das folgende Flag kann festgelegt werden:

MAPI_NT_SERVICE

Der Anbieter wird im Kontext eines Windows-Diensts geladen, einem speziellen Prozesstyp ohne Zugriff auf eine Benutzeroberfläche.

ulMAPIVer

[in] Versionsnummer der Dienstanbieterschnittstelle (SERVICE Provider Interface, SPI), die MAPI.DLL verwendet. Die aktuelle Versionsnummer finden Sie unter MAPISPI. H-Headerdatei.

lpulProviderVer

[out] Zeiger auf die Versionsnummer der SPI, die dieser Adressbuchanbieter verwendet.

lppABProvider

[out] Zeiger auf einen Zeiger auf das initialisierte Adressbuchanbieterobjekt.

Rückgabewert

S_OK

Der Aufruf erfolgreich ausgef�hrt und der erwartete Wert oder Werte zur�ckgegeben hat.

MAPI_E_VERSION

Die von MAPI verwendete SPI-Version ist nicht mit der SPI kompatibel, die von diesem Anbieter verwendet wird.

Hinweise

MAPI ruft die Einstiegspunktfunktion ABProviderInit auf, um einen Adressbuchanbieter nach einer Clientanmeldung zu initialisieren.

Hinweise für Implementierer

Ein Adressbuchanbieter muss ABProviderInit als Einstiegspunktfunktion in der DLL des Anbieters implementieren. Die Implementierung muss auf dem Funktionsprototyp ABPROVIDERINIT basieren, der ebenfalls in MAPISPI.H angegeben ist. MAPI definiert ABPROVIDERINIT für die Verwendung des standardmäßigen MAPI-Initialisierungsaufruftyps STDMAPIINITCALLTYPE, der bewirkt, dass ABProviderInit der CDECL-Aufrufkonvention folgt.

Ein Anbieter kann mehrmals initialisiert werden, da er in mehreren Profilen gleichzeitig verwendet oder mehrmals im selben Profil angezeigt wird. Da das Anbieterobjekt Kontext enthält, muss ABProviderInit für jede Initialisierung ein anderes Anbieterobjekt in lppABProvider zurückgeben, auch für mehrere Initialisierungen im selben Prozess.

Der Adressbuchanbieter sollte die Funktionen verwenden, auf die lpAllocateBuffer, lpAllocateMore und lpFreeBuffer für die meisten Speicherbelegungen und -zuordnungen verweisen. Insbesondere muss der Anbieter diese Funktionen verwenden, um Arbeitsspeicher für die Verwendung durch Clientanwendungen beim Aufrufen von Objektschnittstellen wie IMAPIProp::GetProps und IMAPITable::QueryRows zuzuweisen. Wenn der Anbieter auch erwartet, die OLE-Speicherzuweisung zu verwenden, sollte er die IUnknown::AddRef-Methode des Zuweisungsobjekts aufrufen, auf das der lpMalloc-Parameter verweist.

Weitere Informationen zum Schreiben von ABProviderInit finden Sie unter Implementieren einer Einstiegspunktfunktion des Adressbuchanbieters. Weitere Informationen zu Einstiegspunktfunktionen finden Sie unter Implementieren einer Dienstanbieter-Einstiegspunktfunktion.

Siehe auch