Implementieren einer Dienstanbietereinstiegspunktfunktion
Gilt für: Outlook 2013 | Outlook 2016
Jede Dienstanbieter-DLL verfügt über eine Einstiegspunktfunktion, die MAPI aufruft, um sie zu laden. Beachten Sie, dass diese Einstiegspunktfunktion nicht mit DllMain, der Win32-DLL-Einstiegspunktfunktion, identisch ist.
Je nach Anbietertyp entspricht Ihre Anbietereinstiegspunktfunktion einem anderen Prototyp. MAPI definiert verschiedene Prototypen von Einstiegspunktfunktionen für Dienstanbieter.
Provider | Prototyp der Einstiegspunktfunktion |
---|---|
Nachrichtenspeicheranbieter |
MSProviderInit |
Transportanbieter |
XPProviderInit |
Adressbuchanbieter |
ABProviderInit |
Ein Großteil der Funktionen in diesen Prototypen ist für alle Dienstanbietertypen identisch.
Adressbuch-, Nachrichtenspeicher- und Transportanbieter führen die folgenden beiden Standard Aufgaben in ihren Einstiegspunktfunktionen aus:
- Überprüfen Sie die Version der Dienstanbieterschnittstelle (SERVICE Provider Interface, SPI), um sicherzustellen, dass MAPI eine Version verwendet, die mit der Version kompatibel ist, die Ihr Dienstanbieter verwendet. Verwenden Sie den lpulMAPIVer-Parameter , der die MAPI-SPI-Version enthält, und den lpulProviderVer-Parameter , der Ihre SPI-Version enthält, um die Überprüfung durchzuführen. Diese Parameter sind 32-Bit-Ganzzahlen ohne Vorzeichen, die aus drei Teilen bestehen:
Die Bits 24 bis 31 stellen die Hauptversion dar.
Die Bits 16 bis 23 stellen die Nebenversion dar.
Die Bits 0 bis 15 stellen den Updatebezeichner dar. Obwohl sich die Hauptversionsnummer nur selten ändert, ändert sich die Nebenversionsnummer, wenn MAPI veröffentlicht wird und sich die SPI geändert hat. Der Updatebezeichner ist die interne Microsoft-Buildversion. Es wird verwendet, um Änderungen während des Entwicklungsprozesses nachzuverfolgen. MAPI definiert die CURRENT_SPI_VERSION Konstante, die in der Headerdatei Mapispi.h dokumentiert ist, um die aktuelle SPI-Version anzugeben. Fehler bei der Überprüfung mit dem Fehler MAPI_E_VERSION, wenn Sie eine Version des SPI verwenden, die neuer ist als die version, die MAPI verwendet.
Erstellen Sie eine instance eines Anbieterobjekts. Da Ihr Anbieter mehrmals gestartet und initialisiert werden kann, sollten Sie jedes Mal eine neue instance erstellen. Anbieter werden mehrmals gestartet, wenn sie in mehreren Profilen angezeigt werden, die gleichzeitig von einem oder mehreren Clients verwendet werden, oder wenn sie mehrmals in einem einzigen Profil angezeigt werden. So wie sich der Prototyp der Einstiegspunktfunktion je nach Anbietertyp unterscheidet, so unterscheidet sich auch der Typ des Anbieterobjekts.
Wenn Sie einen Adressbuchanbieter schreiben, implementieren Sie IABProvider: IUnknown. Wenn Sie einen Nachrichtenspeicheranbieter schreiben, implementieren Sie IMSProvider: IUnknown. Weitere Informationen finden Sie unter Laden von Nachrichtenspeicheranbietern.
Wenn Sie einen Transportanbieter schreiben, implementieren Sie IXPProvider: IUnknown. Weitere Informationen finden Sie unter Initialisieren des Transportanbieters.