Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Outlook 2013 | Outlook 2016
Initialisiert einen Nachrichtenspeicheranbieter für den Betrieb.
Eigenschaft | Wert |
---|---|
Headerdatei |
Mapispi.h |
Implementiert von: |
Nachrichtenspeicheranbieter |
Aufgerufen von: |
MAPI |
HRESULT MSProviderInit(
HINSTANCE hInstance,
LPMALLOC lpMalloc,
LPALLOCATEBUFFER lpAllocateBuffer,
LPALLOCATEMORE lpAllocateMore,
LPFREEBUFFER lpFreeBuffer,
ULONG ulFlags,
ULONG ulMAPIVer,
ULONG FAR * lpulProviderVer,
LPMSPROVIDER FAR * lppMSProvider
);
Parameter
hInstance
[in] Die Instanz der Dynamic-Link-Library (DLL) des Nachrichtenspeicheranbieters, die MAPI beim Verknüpfen verwendet hat.
lpMalloc
[in] Zeiger auf ein Speicherzuweisungsobjekt, das die OLE-IMalloc-Schnittstelle bereitstellt. Der Nachrichtenspeicheranbieter muss diese Zuordnungsmethode möglicherweise verwenden, wenn er mit bestimmten Schnittstellen wie IStream arbeitet.
lpAllocateBuffer
[in] Zeiger auf die MAPIAllocateBuffer-Funktion, die zum Zuordnen von Arbeitsspeicher verwendet werden soll.
lpAllocateMore
[in] Zeiger auf die MAPIAllocateMore-Funktion, die zum Zuordnen von zusätzlichem Arbeitsspeicher verwendet werden soll.
lpFreeBuffer
[in] Zeiger auf die MAPIFreeBuffer-Funktion, die zum Freigeben von Arbeitsspeicher verwendet werden soll.
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 von MAPI verwendeten Schnittstelle für Dienstanbieter (SPI). Die aktuelle Versionsnummer finden Sie in der Headerdatei Mapispi.h.
lpulProviderVer
[out] Zeiger auf die Versionsnummer der SPI, die dieser Nachrichtenspeicheranbieter verwendet.
lppMSProvider
[out] Zeiger auf einen Zeiger auf das initialisierte Nachrichtenspeicheranbieterobjekt.
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 MSProviderInit auf, um einen Nachrichtenspeicheranbieter nach einer Client-Anmeldung zu initialisieren.
Hinweise für Implementierer
Ein Nachrichtenspeicheranbieter muss MSProviderInit als Einstiegspunktfunktion in der Anbieter-DLL implementieren. Die Implementierung muss auf dem MSPROVIDERINIT-Funktionsprototyp basieren, der auch in MAPISPI.H angegeben ist. MAPI definiert MSPROVIDERINIT, um den Standard-MAPI-Initialisierungsaufruftyp STDMAPIIPICKCALLTYPE zu verwenden, wodurch MSProviderInit der CDECL-Aufrufkonvention folgt. Ein Vorteil von CDECL besteht darin, dass Aufrufe auch dann versucht werden können, wenn die Anzahl der aufrufenden Parameter nicht mit der Anzahl der definierten Parameter übereinstimmt.
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 MSProviderInit ein anderes Anbieterobjekt in lppMSProvider für jede Initialisierung zurückgeben, auch bei mehreren Initialisierungen im gleichen Prozess.
Die Anbieter-DLL sollte nicht mit Mapix.dll verknüpft werden. Stattdessen sollten diese Zeiger für die Speicherbelegung oder die Aufhebung der Zuordnung verwendet werden.
Der Nachrichtenspeicheranbieter sollte die Funktionen verwenden, auf die lpAllocateBuffer, lpAllocateMore und 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 MSProviderInit finden Sie unter Laden von Nachrichtenspeicheranbietern. Weitere Informationen zu Einstiegspunktfunktionen finden Sie unter Implementieren einer Dienstanbieter-Einstiegspunktfunktion.