Freigeben über


ABProviderInit

Gilt für: Outlook 2013 | Outlook 2016

Initialisiert einen Adressbuchanbieter für den Betrieb.

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 Instanz 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 bereitstellt. 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.

lpAllocateMore

[in] Zeiger auf die MAPIAllocateMore-Funktion, die verwendet werden soll, wenn dies für MAPI erforderlich ist, um zusätzlichen Arbeitsspeicher zu belegen.

lpFreeBuffer

[in] Zeiger auf die MAPIFreeBuffer-Funktion, die verwendet werden soll, wenn dies für MAPI erforderlich ist, um Arbeitsspeicher freizugeben.

ulFlags

[in] Bitmaske von Kennzeichnungen. Die folgende Kennzeichnung kann festgelegt werden:

MAPI_NT_SERVICE

Der Anbieter wird im Kontext eines Windows-Dienstes geladen, einem speziellen Prozesstyp ohne Zugriff auf eine Benutzerschnittstelle.

ulMAPIVer

[in] Versionsnummer der Dienstanbieterschnittstelle (Service Provider Interface, SPI), die MAPI.DLL verwendet. Die aktuelle Versionsnummer finden Sie in der 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 ANBIETER-DLL implementieren. Die Implementierung muss auf dem ABPROVIDERINIT-Funktionsprototyp basieren, der auch in MAPISPI.H angegeben ist. MAPI definiert ABPROVIDERINIT, um den standardmäßigen MAPI-Initialisierungsaufruftyp STDMAPIIPICKCALLTYPE zu verwenden, wodurch 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 ein anderes Anbieterobjekt in lppABProvider für jede Initialisierung zurückgeben, auch bei mehreren Initialisierungen im selben Prozess.

Der Adressbuchanbieter sollte die Funktionen verwenden, auf die lpAllocateBuffer, lpAllocateMoreund lpFreeBuffer für die meisten Speicherbelegungen und -freigaben 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, dass er die OLE-Speicherbelegung verwendet, sollte er die IUnknown::AddRef-Methode des Zuweisungsobjekts aufrufen, auf das der lpMalloc-Parameter zeigt.

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