Freigeben über


Laden von Nachrichtenspeicheranbietern

Gilt für: Outlook 2013 | Outlook 2016

Wenn eine Clientanwendung einen Nachrichtenspeicher öffnet, lädt MAPI die DLL des Nachrichtenspeicheranbieters in den Arbeitsspeicher. Nachdem die MAPI die DLL geladen hat, erfolgt eine sehr spezifische Sequenz von Methodenaufrufen zwischen dem Nachrichtenspeicheranbieter und der MAPI. Diese Methodenaufrufsequenz ermöglicht MAPI das Abrufen von IMSProvider-Schnittstellen der obersten Ebene: IUnknown, IMSLogon : IUnknown und IMsgStore: IMAPIProp und ermöglicht dem Nachrichtenspeicheranbieter das Abrufen eines MAPI-Unterstützungsobjekts. Nach der Aufrufsequenz sollte der Nachrichtenspeicheranbieter bereit sein, Anmeldungen von Clients zu akzeptieren.

Die Aufrufsequenz, wenn eine Nachrichtenanbieter-DLL geladen wird, sieht wie folgt aus:

  1. Der Client ruft IMAPISession::OpenMsgStore auf.

  2. Wenn der Nachrichtenspeicher noch nicht geöffnet ist, lädt MAPI die DLL des Speicheranbieters und ruft den EINSTIEGSPUNKT MSProviderInit der DLL auf. Wenn der Nachrichtenspeicher bereits geöffnet ist, überspringt MAPI die Schritte 2 und 3 und verwendet dann die vorhandene IMSProvider: IUnknown-Schnittstelle , um Schritt 4 abzuschließen.

  3. MSProviderInit erstellt und gibt ein IMSProvider-Objekt zurück.

  4. MAPI ruft IMSProvider::Logon auf und übergibt den Eintragsbezeichner des Nachrichtenspeichers der Clientanwendung.

  5. IMSProvider::Logon erstellt und gibt eine IMSLogon : IUnknown-Schnittstelle und eine IMsgStore : IMAPIProp-Schnittstelle zurück und ruft dann die IUnknown::AddRef-Methode für seine IMAPISupport: IUnknown-Schnittstelle auf. Wenn der Eintragsbezeichner des Clientnachrichtenspeichers auf einen bereits geöffneten Nachrichtenspeicher verweist, kann der Nachrichtenspeicheranbieter vorhandene IMSLogon - und IMsgStore-Schnittstellen zurückgeben und muss AddRef nicht für sein Supportobjekt aufrufen.

  6. Wenn der Client das MAPI_NO_MAIL-Flag bei der Anmeldung nicht festgelegt hat und die MDB_NO_MAIL in Schritt 1 nicht festgelegt hat, gibt MAPI dem MAPI-Spooler den Eintragsbezeichner des Nachrichtenspeichers an, damit sich der MAPI-Spooler beim Nachrichtenspeicher anmelden kann.

  7. MAPI gibt die IMsgStore-Schnittstelle an den Client zurück.

  8. Der MAPI-Spooler ruft IMSProvider::SpoolerLogon auf.

  9. IMSProvider::SpoolerLogon gibt die gleichen IMSLogon - und IMsgStore-Schnittstellen aus Schritt 5 zurück.

Hinweis

Wenn der Anmeldeaufruf beim Nachrichtenspeicheranbieter fehlschlägt, weil ein falsches Kennwort angegeben wurde und der Nachrichtenspeicheranbieter keine Schnittstelle anzeigen kann, um nach dem richtigen Kennwort zu fragen, sollte MAPI_E_FAILONEPROVIDER von der IMSProvider::Logon-Methode zurückgegeben werden. Dadurch können Clients den Benutzer zur Eingabe eines Kennworts auffordern, sich erneut beim Nachrichtenspeicheranbieter anzumelden, anstatt die MAPI für die gesamte Sitzung zu einem Ausfall des Anbieters zu führen.

Siehe auch

Entwickeln eines MAPI-Nachrichtenspeicheranbieters