Freigeben über


IMSProvider::Logon

Gilt für: Outlook 2013 | Outlook 2016

Meldet MAPI bei einer Instanz eines Nachrichtenspeicheranbieters an.

HRESULT Logon(
  LPMAPISUP lpMAPISup,
  ULONG_PTR ulUIParam,
  LPSTR lpszProfileName,
  ULONG cbEntryID,
  LPENTRYID lpEntryID,
  ULONG ulFlags,
  LPCIID lpInterface,
  ULONG FAR * lpcbSpoolSecurity,
  LPBYTE FAR * lppbSpoolSecurity,
  LPMAPIERROR FAR * lppMAPIError,
  LPMSLOGON FAR * lppMSLogon,
  LPMDB FAR * lppMDB
);

Parameter

lpMAPISup

[in] Ein Zeiger auf das aktuelle MAPI-Unterstützungsobjekt für den Nachrichtenspeicher.

ulUIParam

[in] Ein Handle für das übergeordnete Fenster aller Dialogfelder oder Fenster, die mit dieser Methode angezeigt werden.

lpszProfileName

[in] Ein Zeiger auf eine Zeichenfolge, die den Namen des Profils enthält, das für die Anmeldung des Speicheranbieters verwendet wird. Diese Zeichenfolge kann in Dialogfeldern angezeigt, in eine Protokolldatei geschrieben oder einfach ignoriert werden. Es muss im Unicode-Format vorliegen, wenn das Kennzeichen MAPI_UNICODE im Parameter ulFlags gesetzt ist.

cbEntryID

[in] Die Größe des Eintragsbezeichners in Bytes, auf die der Parameter lpEntryID verweist.

lpEntryID

[in] Ein Zeiger auf den Eintragsbezeichner für den Nachrichtenspeicher. Die Übergabe von NULL in lpEntryID gibt an, dass noch kein Nachrichtenspeicher ausgewählt wurde und dass Dialogfelder angezeigt werden können, in denen der Benutzer einen Nachrichtenspeicher auswählen kann.

ulFlags

[in] Eine Bitmaske aus Kennzeichen, die die Art der Anmeldung steuert. Die folgenden Kennzeichen können festgelegt werden:

MAPI_DEFERRED_ERRORS

Der Aufruf darf auch dann erfolgen, wenn das zugrunde liegende Objekt für die aufrufende Implementierung nicht verfügbar ist. Wenn das Objekt nicht verfügbar ist, kann ein nachfolgender Aufruf des Objekts einen Fehler auslösen.

MAPI_UNICODE

Die übergebenen Zeichenfolgen entsprechen dem Unicode-Format. Wenn MAPI_UNICODE nicht festgelegt ist, werden die Zeichenfolgen im ANSI-Format angegeben.

MDB_NO_DIALOG

Verhindert die Anzeige von Anmeldedialogfeldern. Wenn dieses Kennzeichen festgelegt ist, wird der Fehlerwert MAPI_E_LOGON_FAILED zurückgegeben, wenn die Anmeldung nicht erfolgreich war. Wenn dieses Kennzeichen nicht festgelegt ist, kann der Nachrichtenspeicheranbieter den Benutzer auffordern, einen Namen oder ein Kennwort zu korrigieren, einen Datenträger einzulegen oder andere Aktionen auszuführen, die zum Herstellen einer Verbindung mit dem Speicher erforderlich sind.

MDB_NO_MAIL

Der Nachrichtenspeicher sollte nicht zum Senden oder Empfangen von E-Mails verwendet werden. Das Kennzeichen weist MAPI an, den MAPI-Spooler nicht darüber zu informieren, dass dieser Nachrichtenspeicher geöffnet wird. Wenn dieses Kennzeichen festgelegt ist und der Nachrichtenspeicher eng mit einem Transportanbieter verbunden ist, muss der Anbieter die Methode IMAPISupport::SpoolerNotify nicht aufrufen.

MDB_TEMPORARY

Protokolliert den Speicher, sodass Informationen programmgesteuert aus dem Profilabschnitt abgerufen werden können, ohne dass Dialogfelder verwendet werden müssen. Dieses Kennzeichen weist MAPI an, dass der Speicher nicht zur Nachrichtenspeichertabelle hinzugefügt werden soll und dass der Speicher nicht dauerhaft angelegt werden kann. Wenn dieses Kennzeichen gesetzt ist, müssen Nachrichtenspeicheranbieter die Methode IMAPISupport::ModifyProfile nicht aufrufen.

MDB_WRITE

Fordert Lese-/Schreibberechtigung an.

lpInterface

[in] Ein Zeiger auf die Schnittstellenkennung (IID) für den Nachrichtenspeicher, bei dem die Anmeldung erfolgen soll. Die Übergabe von NULL gibt an, dass die MAPI-Schnittstelle für den Nachrichtenspeicher ( IMsgStore) zurückgegeben wird. Der Parameter lpInterface kann auch auf eine Schnittstellenkennung für eine geeignete Schnittstelle für den Nachrichtenspeicher gesetzt werden (z. B. IID_IUnknown oder IID_IMAPIProp).

lpcbSpoolSecurity

[out] Ein Zeiger auf die Variable, in der der Speicheranbieter die Größe der Validierungsdaten in Bytes im Parameter lppbSpoolSecurity zurückgibt.

lppbSpoolSecurity

[out] Ein Zeiger auf den Zeiger auf die zurückgegebenen Validierungsdaten. Diese Validierungsdaten werden bereitgestellt, damit die Methode IMSProvider::SpoolerLogon den MAPI-Spooler im selben Speicher wie der Nachrichtenspeicheranbieter protokollieren kann.

lppMAPIError

[out] Ein Zeiger auf einen Zeiger auf die zurückgegebene MAPIERROR-Struktur, falls vorhanden, die Versions-, Komponenten- und Kontextinformationen für einen Fehler enthält. Der Parameter lppMAPIError kann auf NULL gesetzt werden, wenn keine MAPIERROR-Struktur zur Rückgabe vorhanden ist.

lppMSLogon

[out] Ein Zeiger auf den Zeiger auf das Anmeldeobjekt des Nachrichtenspeichers, bei dem sich MAPI anmelden soll.

lppMDB

[out] Ein Zeiger auf den Zeiger auf das Nachrichtenspeicherobjekt, bei dem sich der MAPI-Spooler und die Clientanwendungen anmelden sollen.

Rückgabewert

S_OK

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

MAPI_E_FAILONEPROVIDER

Dieser Anbieter kann sich nicht anmelden, aber dieser Fehler sollte den Dienst nicht deaktivieren.

MAPI_E_LOGON_FAILED

Es konnte keine Anmeldesitzung eingerichtet werden.

MAPI_E_UNCONFIGURED

Das Profil enthält nicht genügend Informationen, um die Anmeldung abzuschließen. Wenn dieser Wert zurückgegeben wird, ruft MAPI die Einstiegspunktfunktion für den Nachrichtendienst des Nachrichtenspeicheranbieters auf.

MAPI_E_USER_CANCEL

Der Benutzer hat den Vorgang abgebrochen, in der Regel durch Klicken auf die Schaltfläche Abbrechen in einem Dialogfeld.

MAPI_E_UNKNOWN_CPID

Der Server ist nicht für die Codepage des Clients konfiguriert.

MAPI_E_UNKNOWN_LCID

Der Server ist nicht für die Unterstützung der Gebietsschemainformationen des Clients konfiguriert.

MAPI_W_ERRORS_RETURNED

Der Aufruf war erfolgreich, aber der Nachrichtenspeicheranbieter verfügt über Fehlerinformationen. Wenn diese Warnung zurückgegeben wird, sollte der Aufruf als erfolgreich behandelt werden. Verwenden Sie zum Testen auf diese Warnung das Makro HR_FAILED. Weitere Informationen finden Sie unter Verwendung von Makros zur Fehlerbehandlung. Um die Fehlerinformationen vom Anbieter abzurufen, rufen Sie die Methode IMAPISession::GetLastError auf.

Hinweise

MAPI ruft die Methode IMSProvider::Logon auf, um die meisten Verarbeitungsschritte auszuführen, die für den Zugriff auf einen Nachrichtenspeicher erforderlich sind. Nachrichtenspeicheranbieter überprüfen alle Benutzeranmeldeinformationen, die für den Zugriff auf einen bestimmten Speicher erforderlich sind, und geben ein Nachrichtenspeicherobjekt im Parameter lppMDB zurück, bei dem sich der MAPI-Spooler und die Clientanwendungen anmelden können.

Zusätzlich zum zurückgegebenen Nachrichtenspeicherobjekt für die Verwendung durch den Client und den MAPI-Spooler gibt der Anbieter auch ein Anmeldeobjekt für den Nachrichtenspeicher zurück, das MAPI zur Steuerung des geöffneten Speichers verwendet. Das Objekt für die Anmeldung beim Nachrichtenspeicher und das Nachrichtenspeicherobjekt sollten innerhalb des Nachrichtenspeicheranbieters eng miteinander verknüpft sein, damit sie sich gegenseitig beeinflussen können. Die Verwendung des Speicherobjekts und des Anmeldeobjekts sollte identisch sein. Es sollte eine vollständige Übereinstimmung zwischen dem Anmeldeobjekt und dem Speicherobjekt bestehen, sodass die Objekte so funktionieren, als wären sie ein Objekt, das zwei Schnittstellen bereitstellt. Die beiden Objekte sollten auch gemeinsam erstellt und gemeinsam freigegeben werden.

Das MAPI-Unterstützungsobjekt, das von MAPI erstellt und im Parameter lpMAPISup an den Anbieter übergeben wird, ermöglicht den Zugriff auf Funktionen in MAPI, die der Anbieter benötigt. Dazu gehören Funktionen zum Speichern und Abrufen von Profilinformationen, zum Zugriff auf Adressbücher usw. Der Zeiger lpMAPISup kann für jeden geöffneten Speicher unterschiedlich sein. Bei der Verarbeitung von Aufrufen für einen Nachrichtenspeicher nach der Anmeldung sollte der Speicheranbieter die für diesen Speicher spezifische Variable lpMAPISup verwenden. Bei jedem Anmeldeaufruf, der einen Nachrichtenspeicher öffnet und erfolgreich ein Anmeldeobjekt für den Nachrichtenspeicher erstellt, muss der Anbieter einen Zeiger auf das MAPI-Unterstützungsobjekt im Anmeldeobjekt des Speichers speichern und die Methode IUnknown::AddRef aufrufen, um einen Verweis für das Unterstützungsobjekt hinzuzufügen.

Der Parameter ulUIParam sollte verwendet werden, wenn der Anbieter während des Anmeldeaufrufs Dialogfelder anzeigt. Dialogfelder sollten jedoch nicht angezeigt werden, wenn ulFlags das Kennzeichen „MDB_NO_DIALOG“ enthält. Wenn eine Benutzeroberfläche aufgerufen werden muss, dies jedoch durch ulFlags nicht zulässig ist oder aus einem anderen Grund nicht angezeigt werden kann, sollte der Anbieter „MAPI_E_LOGON_FAILED“ zurückgeben. Wenn bei der Anmeldung ein Dialogfeld angezeigt wird und der Benutzer die Anmeldung abbricht, in der Regel durch Klicken auf die Schaltfläche Abbrechen im Dialogfeld, sollte der Anbieter „MAPI_E_USER_CANCEL“ zurückgeben.

Der Parameter lpEntryID kann entweder NULL sein oder auf einen nicht umgebrochenen Bezeichner für einen Speichereintrag verweisen, den dieser Nachrichtenspeicher zuvor erstellt hat. Wenn lpEntryID auf einen nicht umgebrochenen Eintragbezeichner verweist, kann dieser Eintragbezeichner aus einer der folgenden Quellen stammen:

  • Es kann sich um einen Eintragsbezeichner handeln, den der Speicheranbieter zuvor umschlossen und als PR_ENTRYID (PidTagEntryId)-Eigenschaft in den Profilabschnitt geschrieben hat.

  • Es kann sich um einen Eintragsbezeichner handeln, den der Anbieter zuvor umschlossen und als PR_STORE_ENTRYID (PidTagStoreEntryId)-Eigenschaft an einen aufrufenden Client zurückgegeben hat.

  • Es kann sich um einen Eintragsbezeichner handeln, den der Anbieter zuvor umschlossen und als PR_ENTRYID-Eigenschaft eines Nachrichtenspeicherobjekts an einen aufrufenden Client zurückgegeben hat.

In jedem dieser Fälle ist es möglich, dass der Eintragsbezeichner auf einem anderen Computer als dem aktuell verwendeten erstellt wurde.

Wenn lpEntryID nicht NULL ist, sollte es alle Informationen enthalten, die zum Identifizieren und Suchen des Nachrichtenspeichers erforderlich sind. Diese Informationen können Netzwerkvolumennamen, Telefonnummern, Benutzernamen für Konten usw. enthalten. Wenn die Verbindung zum Speicher unter Verwendung der Daten im Eintragsbezeichner nicht hergestellt werden kann, sollte der Speicheranbieter ein Dialogfeld anzeigen, in dem der Benutzer den zu öffnenden Speicher auswählen kann. Ein Dialogfeld wird möglicherweise angezeigt, wenn beispielsweise ein Server umbenannt wurde, ein Kontoname geändert wurde oder Teile des Netzwerks nicht verfügbar sind.

Wenn lpEntryIDNULL ist, wurde der zu verwendende Nachrichtenspeicher noch nicht ausgewählt. Der Anbieter kann weiterhin auf einen Speicher zugreifen, ohne ein Dialogfeld anzuzeigen, wenn er weitere Methoden zur Angabe des Speichers unterstützt. Der Anbieter kann beispielsweise seine Initialisierungsdatei überprüfen oder nach zusätzlichen Eigenschaften suchen, die bei der Konfiguration im Abschnitt „Profil“ seines Nachrichtendienstes festgelegt wurden.

Wenn ein Anbieter feststellt, dass nicht alle erforderlichen Informationen im Profil enthalten sind, sollte er MAPI_E_UNCONFIGURED zurückgeben. MAPI ruft dann die Einstiegspunktfunktion des Nachrichtendienstes des Anbieters auf, damit der Benutzer einen Speicher auswählen oder sogar einen neuen erstellen und bei Bedarf einen Kontonamen und ein Kennwort eingeben kann. MAPI erstellt automatisch einen neuen Profilabschnitt für einen neuen Speicher. Dieser neue Profilabschnitt kann temporär oder dauerhaft sein, je nachdem, wie er hinzugefügt wurde. Wenn der Speicheranbieter die Methode IMAPISupport::ModifyProfile aufruft, wird der neue Profilabschnitt dauerhaft gespeichert und der Speicher wird zur Liste der Nachrichtenspeicher hinzugefügt, die von der Methode IMAPISession::GetMsgStoresTable zurückgegeben wird.

Der Parameter lpInterface gibt die IID der Schnittstelle an, die für das neu geöffnete Speicherobjekt erforderlich ist. Durch die Übergabe von NULL in lpInterface wird angegeben, dass die MAPI-Nachrichtenspeicherschnittstelle ImsgStore erforderlich ist. Durch die Übergabe des Nachrichtenspeicherobjekts IID_IMsgStore wird außerdem angegeben, dass IMsgStore erforderlich ist. Wenn IID_IUnknown in lpInterface übergeben wird, sollte der Anbieter den Speicher mit der Schnittstelle öffnen, die von IUnknown abgeleitet wird und für den Anbieter am besten geeignet ist (in der Regel ist dies ebenfalls IMSgStore). Wenn IID_IUnknown übergeben wird, verwendet die aufrufende Implementierung die Methode IUnknown::QueryInterface, um nach dem erfolgreichen Öffnen des Speichers eine Schnittstelle auszuwählen.

Der Aufruf IMSProvider::Logon sollte ausreichende Informationen zurückgeben, z. B. den Pfad zum Speicher und die Anmeldeinformationen für den Zugriff auf den Speicher, damit sich der MAPI-Spooler ohne Anzeige eines Dialogfelds bei demselben Speicher anmelden kann wie der Speicheranbieter. Die Parameter lpcbSpoolSecurity und lppbSpoolSecurity werden verwendet, um diese Informationen zurückzugeben. Der Anbieter weist den Speicher für diese Daten zu, indem er einen Zeiger auf einen Puffer im Parameter lpfAllocateBuffer der Funktion MSProviderInit übergibt. Der Anbieter speichert die Größe dieses Puffers in lpcbSpoolSecurity.

MAPI gibt diesen Puffer bei Bedarf frei. Wenn die Anmeldung des MAPI-Spoolers beim Speicher allein anhand der Informationen im Profilabschnitt erfolgen kann, kann der Anbieter NULL in lppbSpoolSecurity und 0 für die Größe der Informationen in lpcbSpoolSecurity zurückgeben. Die Anmeldung beim MAPI-Spooler erfolgt im Rahmen eines anderen Prozesses als die Anmeldung beim Speicher. Da der Puffer, der die übergebenen Informationen enthält, zwischen den Prozessen kopiert wird, befindet er sich möglicherweise nicht am selben Speicherort für den MAPI-Spooler-Prozess wie für den Speicheranbieterprozess. Daher sollte ein Anbieter keine Adressen in diesen Puffer speichern. Weitere Informationen zur Anmeldung beim MAPI-Spooler finden Sie unter der Methode IMSProvider::SpoolerLogon.

Die meisten Speicheranbieter verwenden die Methode IMAPISession::OpenProfileSection des im Parameter lpMAPISup übergebenen Unterstützungsobjekts zum Speichern und Abrufen von Benutzeranmeldeinformationen und Optionen. OpenProfileSection ermöglicht es einem Speicheranbieter, zusätzliche beliebige Informationen in einem Profilabschnitt zu speichern und mit einer bestimmten Ressource zu verknüpfen. Beispielsweise kann ein Speicheranbieter den Benutzernamen und das Kennwort für ein Konto, das einer Ressource zugeordnet ist, sowie alle Pfade oder sonstigen Informationen speichern, die für den Zugriff auf diese Ressource erforderlich sind.

Eigenschaften mit den Bezeichnern 0x6600 bis 0x67FF sind sichere Eigenschaften, die dem Anbieter für seine eigene Verwendung zum Speichern privater Daten in Profilabschnitten zur Verfügung stehen. Weitere Informationen zur Verwendung von Eigenschaften in Profilabschnittsobjekten finden Sie unter der Methode IProfSect : IMAPIProp.

Zusätzlich zu allen privaten Daten in Eigenschaften mit den Bezeichnern 0x6600 bis 0x67FF sollte der Speicheranbieter Informationen für die Eigenschaft PR_DISPLAY_NAME (PidTagDisplayName) in seinem Profilabschnitt bereitstellen. Der Anzeigename des Anbieters selbst sollte in PR_DISPLAY_NAME angegeben werden. Dabei handelt es sich um eine identifizierende Zeichenfolge (z. B. „Microsoft Personal Information Store“), die den Benutzern angezeigt wird, damit sie diesen Nachrichtenspeicher von anderen unterscheiden können, auf die sie möglicherweise Zugriff haben. PR_DISPLAY_NAME enthält in der Regel einen Servernamen, einen Benutzernamen oder einen Pfad.

Einige Eigenschaften des Profilabschnitts sind in der Tabelle „Nachrichtenspeicher“ sichtbar, andere werden während der Einrichtung, Installation und Konfiguration des MAPI-Subsystems angezeigt. Der Anbieter stellt Informationen zu diesen sichtbaren Eigenschaften in der Regel sowohl für einen neuen Profilabschnitt bereit, der noch keine gespeicherten Anmeldedaten oder privaten Informationen enthält, als auch dann, wenn er feststellt, dass sich die Eigenschafteninformationen geändert haben. Weitere Informationen zu Profilabschnitten finden Sie unter IMAPISupport::OpenProfileSection.

Nach der erfolgreichen Anmeldung eines Benutzers und vor der Rückkehr zu MAPI sollte der Speicheranbieter das Array der Eigenschaften für die Statuszeile der Ressource erstellen und die Methode IMAPISupport::ModifyStatusRow aufrufen.

Anmeldeaufrufe, die bereits für die aktuelle MAPI-Sitzung geöffnete Nachrichtenspeicher öffnen, überspringen einen Großteil der zuvor beschriebenen Verarbeitung. Diese Aufrufe erstellen keine Statuszeilen, geben keine Anmeldeobjekte für den Nachrichtenspeicher zurück, rufen AddRef für das MAPI-Unterstützungsobjekt auf und geben keine Daten für die MAPI-Spooleranmeldung zurück. Diese Aufrufe geben S_OK zurück und geben ein Nachrichtenspeicherobjekt mit der angeforderten Schnittstelle zurück.

Um solche Aufrufe zu erkennen, sollte der Anbieter im Objekt des Nachrichtenspeicheranbieters eine Liste der bereits für dieses Anbieterobjekt geöffneten Speicher führen. Bei der Verarbeitung eines Anmeldeaufrufs sollte der Anbieter diese Liste offener Speichern durchsuchen und feststellen, ob der Speicher, bei dem die Anmeldung erfolgen soll, bereits geöffnet ist. Ist dies der Fall, müssen die Benutzeranmeldedaten nicht überprüft werden, und die Anzeige eines Dialogfelds sollte nach Möglichkeit vermieden werden. Wenn Dialogfelder angezeigt werden müssen, sollte der Anbieter die zurückgegebenen Informationen überprüfen, um festzustellen, ob ein Speicher erneut geöffnet wurde. Darüber hinaus sollte der Anbieter zu Beginn der Verarbeitung des Anmeldeaufrufs mithilfe von lpEntryID auf doppelte Öffnungen prüfen.

Die Standardverarbeitung für einen Anmeldeaufruf, der auf einen geöffneten Speicher zugreift, verläuft wie folgt:

  1. Der Speicheranbieter ruft AddRef für das vorhandene Speicherobjekt auf, wenn die angeforderte neue Schnittstelle mit der Schnittstelle für den vorhandenen Speicher übereinstimmt. Andernfalls wird QueryInterface aufgerufen, um die neue Schnittstelle abzurufen. Wenn der Speicher die neue Schnittstelle nicht unterstützt, sollte der Anbieter den Fehlerwert „MAPI_E_INTERFACE_NOT_SUPPORTED“ zurückgeben.

  2. Der Anbieter gibt einen Zeiger auf die gewünschte Schnittstelle des vorhandenen Speicherobjekts in lppMDB zurück.

  3. Der Anbieter gibt in lppMSLogonNULL zurück.

  4. Der Anbieter sollte das Profil für das im Aufruf übergebene Unterstützungsobjekt nicht öffnen. Darüber hinaus sollte es keinen eindeutigen Bezeichner für einen Anbieter registrieren, keine Statuszeile registrieren und keine MAPI-Spooler-Anmeldedaten zurückgeben.

  5. Der Anbieter sollte AddRef für das Unterstützungsobjekt nicht aufrufen, da es keinen Zeiger auf das Objekt benötigt.

Wenn möglich, sollten Anbieter bei Anmeldeaufrufen entsprechende Fehler- und Warnmeldungen zurückgeben, da dies den Benutzern die Fehlersuche erheblich erleichtert. Um diese Zeichenfolgen zurückzugeben, legt ein Anbieter die Elemente in der Struktur MAPIERROR fest. MAPI sucht nach der Struktur MAPIERROR, verwendet sie und gibt sie frei, wenn sie von einem Anbieter zurückgegeben wird.

Der Speicher für diese MAPIERROR-Struktur sollte mithilfe des Puffers zugewiesen werden, der in lpfAllocateBuffer beim Aufruf von MSProviderInit übergeben wurde. Alle in der zurückgegebenen Struktur enthaltenen Fehlerzeichenfolgen sollten im Unicode-Format vorliegen, wenn MAPI_UNICODE in den ulFlags der Anmeldung festgelegt ist. Andernfalls sollten sie im ANSI-Zeichensatz vorliegen.

Für die meisten Fehlerwerte, die von der Anmeldung zurückgegeben werden, deaktiviert MAPI die Nachrichtendienste, zu denen der fehlerhafte Anbieter gehört. MAPI ruft während der gesamten Dauer der MAPI-Sitzung keine Anbieter auf, die zu diesen Diensten gehören. Wenn hingegen die Anmeldung den Fehlerwert „MAPI_E_FAILONEPROVIDER“ zurückgibt, deaktiviert MAPI den Nachrichtendienst, zu dem der Anbieter gehört, nicht. Die Anmeldung sollte „MAPI_E_FAILONEPROVIDER“ zurückgeben, wenn ein Fehler auftritt, der nicht die Deaktivierung des gesamten Dienstes für die Dauer der Sitzung rechtfertigt. Ein Anbieter könnte diesen Fehler beispielsweise zurückgeben, wenn er die Anzeige einer Benutzeroberfläche nicht zulässt und ein erforderliches Kennwort nicht verfügbar ist.

Wenn ein Anbieter bei der Anmeldung „MAPI_E_UNCONFIGURED“ zurückgibt, ruft MAPI die Einstiegsfunktion für den Nachrichtendienst des Anbieters auf und wiederholt die Anmeldung. MAPI übergibt MSG_SERVICE_CONFIGURE als Kontext, um dem Dienst die Möglichkeit zu geben, sich selbst zu konfigurieren. Wenn der Client die Benutzeroberfläche bei der Anmeldung zugelassen hat, kann der Dienst sein Konfigurationseigenschaftenblatt anzeigen, damit der Benutzer Konfigurationsinformationen eingeben kann.

Siehe auch

IMAPISession::GetMsgStoresTable

IMAPISession::OpenMsgStore

IMAPISession::OpenProfileSection

IMAPISupport::ModifyProfile

IMAPISupport::ModifyStatusRow

IMsgStore: IMAPIProp

IMSProvider::SpoolerLogon

IProfSect : IMAPIProp

MAPIERROR

MSProviderInit

IMSProvider : IUnknown