Freigeben über


MAPILogonEx

Gilt für: Outlook 2013 | Outlook 2016

Protokolliert eine Clientanwendung in einer Sitzung mit dem Messagingsystem.

Eigenschaft Wert
Headerdatei
Mapix.h
Implementiert von:
MAPI
Aufgerufen von:
Clientanwendungen
HRESULT MAPILogonEx(
  ULONG_PTR ulUIParam,
  LPSTR lpszProfileName,
  LPSTR lpszPassword,
  FLAGS flFlags,
  LPMAPISESSION FAR * lppSession
);

Parameter

ulUIParam

[in] Handle für das Fenster, in dem das Anmeldedialogfeld modal ist. Wenn während des Aufrufs kein Dialogfeld angezeigt wird, wird der ulUIParam-Parameter ignoriert. Dieser Parameter kann 0 (null) sein.

lpszProfileName

[in] Zeiger auf eine Zeichenfolge, die den Namen des Profils enthält, das verwendet werden soll, wenn sich der Benutzer anmeldet. Diese Zeichenfolge ist auf 64 Zeichen beschränkt.

lpszPassword

[in] Zeiger auf eine Zeichenfolge, die das Kennwort des Profils enthält. Der lpszPassword-Parameter muss NULL sein.

flFlags

[in] Bitmaske von Flags, die verwendet werden, um zu steuern, wie die Anmeldung erfolgt. Die folgenden Flags können festgelegt werden:

MAPI_ALLOW_OTHERS

Die freigegebene Sitzung sollte zurückgegeben werden, sodass spätere Clients die Sitzung ohne Angabe von Benutzeranmeldeinformationen abrufen können.

MAPI_BG_SESSION

Melden Sie sich bei einer Sitzung an, und führen Sie alle Vorgänge im Hintergrund aus. Wenn ein Client beabsichtigt, die Verarbeitung in einem Hintergrundthread oder in einem separaten Prozess in einer Weise auszuführen, die für den Vordergrundthread unauffällig ist, sollte er im Allgemeinen mit dem flag MAPI_BG_SESSION aufrufen. Eine Clientanwendung wie eine Indizierungs-Engine oder das Öffnen einer Persönliche Ordner-Datei (PST) für den Zugriff auf Hintergrundtypen sind einige Beispiele für die Verwendung von MAPI_BG_SESSION. MAPILogonEx.

MAPI_EXPLICIT_PROFILE

Das Standardprofil sollte nicht verwendet werden, und der Benutzer muss ein Profil angeben.

MAPI_EXTENDED

Melden Sie sich mit erweiterten Funktionen an. Dieses Flag sollte immer festgelegt werden.

MAPI_FORCE_DOWNLOAD

Es sollte versucht werden, alle Nachrichten des Benutzers herunterzuladen, bevor sie zurückgegeben werden. Wenn das MAPI_FORCE_DOWNLOAD-Flag nicht festgelegt ist, können Meldungen im Hintergrund heruntergeladen werden, nachdem der Aufruf von MAPILogonEx zurückgegeben wurde.

MAPI_LOGON_UI

Ein Dialogfeld sollte angezeigt werden, um den Benutzer bei Bedarf zur Eingabe von Anmeldeinformationen aufzufordern. Wenn das MAPI_LOGON_UI-Flag nicht festgelegt ist, zeigt der aufrufende Client kein Anmeldedialogfeld an und gibt einen Fehlerwert zurück, wenn der Benutzer nicht angemeldet ist.

MAPI_NEW_SESSION

Es sollte versucht werden, eine neue MAPI-Sitzung zu erstellen, anstatt die freigegebene Sitzung zu erhalten. Wenn das MAPI_NEW_SESSION-Flag nicht festgelegt ist, verwendet MAPILogonEx eine vorhandene freigegebene Sitzung, auch wenn der lpszprofileName-Parameter nicht NULL ist.

MAPI_NO_MAIL

MAPI sollte den MAPI-Spooler nicht über das Vorhandensein der Sitzung informieren. Das Ergebnis ist, dass in der Sitzung keine Nachrichten gesendet oder empfangen werden können, außer über ein eng gekoppeltes Speicher- und Transportpaar. Ein aufrufender Client legt dieses Flag fest, wenn er als Agent fungiert, konfigurationsarbeiten ausgeführt werden müssen oder wenn der Client die verfügbaren Nachrichtenspeicher durchsucht.

MAPI_NT_SERVICE

Der Aufrufer wird als Windows-Dienst ausgeführt. Aufrufer, die nicht als Windows-Dienst ausgeführt werden, sollten dieses Flag nicht festlegen. Aufrufer, die als Dienst ausgeführt werden, müssen dieses Flag festlegen.

MAPI_SERVICE_UI_ALWAYS

MAPILogonEx sollte ein Konfigurationsdialogfeld für jeden Nachrichtendienst im Profil anzeigen. Die Dialogfelder werden angezeigt, nachdem das Profil ausgewählt wurde, aber bevor ein Nachrichtendienst angemeldet wird. Das allgemeine MAPI-Dialogfeld für die Anmeldung enthält auch ein Kontrollkästchen, das denselben Vorgang anfordert.

MAPI_TIMEOUT_SHORT

Die Anmeldung sollte fehlschlagen, wenn sie länger als einige Sekunden blockiert wird.

MAPI_UNICODE

Die übergebenen Zeichenfolgen liegen im Unicode-Format vor. Wenn das MAPI_UNICODE-Flag nicht festgelegt ist, liegen die Zeichenfolgen im ANSI-Format vor.

MAPI_USE_DEFAULT

Das Messagingsubsystem sollte den Profilnamen des Standardprofils durch den lpszProfileName-Parameter ersetzen. Das MAPI_EXPLICIT_PROFILE-Flag wird ignoriert, es sei denn , lpszProfileName ist NULL oder leer.

lppSession

[out] Zeiger auf einen Zeiger auf die MAPI-Sitzungsschnittstelle.

Rückgabewert

S_OK

Die Anmeldung war erfolgreich.

MAPI_E_LOGON_FAILED

Die Anmeldung war nicht erfolgreich, weil mindestens ein Parameter für MAPILogonEx ungültig war oder weil zu viele Sitzungen bereits geöffnet waren.

MAPI_E_TIMEOUT

MAPI serialisiert alle Anmeldungen über einen Mutex. Dies wird zurückgegeben, wenn das MAPI_TIMEOUT_SHORT-Flag festgelegt wurde und ein anderer Thread den Mutex enthält.

MAPI_E_USER_CANCEL

Der Benutzer hat den Vorgang in der Regel abgebrochen, indem er in einem Dialogfeld auf die Schaltfläche Abbrechen geklickt hat.

Hinweise

MAPI-Clientanwendungen rufen die MAPILogonEx-Funktion auf, um sich bei einer Sitzung mit dem Messagingsystem anzumelden. Alle Zeichenfolgen, die übergeben und an und von MAPI-Aufrufen zurückgegeben werden, sind NULL-terminiert und müssen im aktuellen Zeichensatz oder der aktuellen Codepage des Betriebssystems des aufrufenden Clients oder Anbieters angegeben werden.

Der lpszProfileName-Parameter wird ignoriert, wenn eine vorhandene vorherige Sitzung vorhanden ist, die MapiLogonEx aufgerufen hat und das MAPI_ALLOW_OTHERS Flag festgelegt ist, und wenn das Flag MAPI_NEW_SESSION nicht festgelegt ist. Wenn der lpszProfileName-Parameter NULL ist oder auf eine leere Zeichenfolge zeigt und der flFlags-Parameter das flag MAPI_LOGON_UI enthält, generiert die MAPILogonEx-Funktion ein Anmeldedialogfeld mit einem leeren Feld für den Profilnamen.

Bei der Anmeldung bei einem bestimmten Profil sollte ein Client zusätzlich zum Profilnamen das MAPI_NEW_SESSION-Flag an MAPILogonEx übergeben. Wenn ein anderer Client eine freigegebene Sitzung eingerichtet hat, indem er sich mit MAPI_ALLOW_OTHERS anmeldet, wird der Client bei der freigegebenen Sitzung und nicht bei dem angeforderten Profil angemeldet.

Das MAPI_EXPLICIT_PROFILE-Flag bewirkt nicht, dass der Standardprofilname verwendet wird, wenn lpszProfileName NULL oder leer ist, es sei denn, das MAPI_USE_DEFAULT Flag ist ebenfalls vorhanden.

Das MAPI_NO_MAIL-Flag hat mehrere Auswirkungen, die Folgendes verursachen, wenn der MAPI-Spooler nicht verwendet wird:

  • Während dieser Sitzung können keine Nachrichten vom MAPI-Spooler gesendet oder übermittelt werden. Nur eng gekoppelte Speicher- und Transportanbieter können Nachrichten senden und übermitteln.

  • Serverbasierte Speicher können weiterhin Nachrichten senden oder übermitteln.

  • Von serverbasierten Speichern gesendete oder übermittelte Nachrichten werden von keinem Hookanbieter verarbeitet.

  • Optionen pro Nachricht und Pro Empfänger für Transporte sind nicht verfügbar.

  • Die status Tabelle enthält keine Einträge für Transportanbieter, und transportfunktionen, die von status Objekten (z. B. Konfiguration) abhängig sind, sind nicht verfügbar.

  • Die Nachrichtenspoolerzeile in der status Tabelle enthält den STATUS_FAILURE Wert.

  • Piggyback-Anmeldungen sind zulässig, aber diese Anmeldungen bewirken nicht, dass die vorherige Anmeldung status Objektaktualisierungen empfängt.

Ein Dienst sollte sich immer mit dem flag MAPI_NO_MAIL anmelden.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
MAPIObjects.cpp
CMapiObjects::MAPILogonEx
MFCMAPI verwendet die MAPILogonEx-Methode, um sich bei MAPI anzumelden.

Siehe auch

IMAPISession::GetMsgStoresTable

IMAPISession::OpenMsgStore

MFCMAPI (engl.) als ein Codebeispiel