Freigeben über


IAddrBook::ResolveName

Gilt für: Outlook 2013 | Outlook 2016

Führt die Namensauflösung durch und weist Empfängern in einer Empfängerliste Eintragsbezeichner zu.

HRESULT ResolveName(
  ULONG_PTR ulUIParam,
  ULONG ulFlags,
  LPSTR lpszNewEntryTitle,
  LPADRLIST lpAdrList
);

Parameter

ulUIParam

[in] Ein Handle für das übergeordnete Fenster eines Dialogfelds, das angezeigt wird, sofern angegeben, um den Benutzer aufzufordern, Mehrdeutigkeiten aufzulösen.

ulFlags

[in] Eine Bitmaske von Flags, die verschiedene Aspekte des Auflösungsprozesses steuern. Die folgenden Flags können festgelegt werden:

AB_UNICODEUI

Gibt an, dass lpszNewEntryTitle eine UNICODE-Zeichenfolge ist.

MAPI_CACHE_ONLY

Verwenden Sie nur das Offlineadressbuch, um die Namensauflösung durchzuführen. Sie können dieses Flag beispielsweise verwenden, um einer Clientanwendung das Öffnen der globalen Adressliste (GAL) im zwischengespeicherten Austauschmodus und den Zugriff auf einen Eintrag in diesem Adressbuch aus dem Cache zu ermöglichen, ohne Datenverkehr zwischen Client und Server zu erzeugen. Dieses Flag wird nur vom Exchange-Adressbuchanbieter unterstützt.

MAPI_DIALOG

Zeigt ein Dialogfeld an, in dem der Benutzer zur Eingabe zusätzlicher Namensauflösungsinformationen aufgefordert wird. Wenn dieses Flag nicht festgelegt ist, wird kein Dialogfeld angezeigt.

MAPI_UNICODE

Gibt an, dass die in der Adressliste zurückgegebenen Eigenschaften vom Typ PT_UNICODE anstelle von PT_STRING8 sein sollen.

lpszNewEntryTitle

[in] Ein Zeiger auf text für den Titel des Steuerelements im Dialogfeld, der den Benutzer zur Eingabe eines Empfängers auffordert. Der Titel variiert je nach Empfängertyp. Der lpszNewEntryTitle-Parameter kann NULL sein.

lpAdrList

[in-out] Ein Zeiger auf eine ADRLIST-Struktur , die die Liste der aufzulösden Empfängernamen enthält. Diese ADRLIST-Struktur kann von der IAddrBook::Address-Methode erstellt werden.

Rückgabewert

S_OK

Der Namensauflösungsprozess war erfolgreich.

MAPI_E_AMBIGUOUS_RECIP

Mindestens ein Empfänger im lpAdrList-Parameter hat mehr als einen Eintrag im Adressbuch abgeglichen. In der Regel wird dieser Wert zurückgegeben, wenn das MAPI_DIALOG-Flag festgelegt ist, wodurch die Anzeige eines Dialogfelds verhindert wird.

MAPI_E_NOT_FOUND

Mindestens ein Empfänger im lpAdrList-Parameter kann nicht aufgelöst werden. In der Regel wird dieser Wert zurückgegeben, wenn das MAPI_DIALOG-Flag festgelegt ist, wodurch die Anzeige eines Dialogfelds verhindert wird.

Hinweise

Clients und Dienstanbieter rufen die ResolveName-Methode auf, um den Namensauflösungsprozess zu initiieren. Ein nicht aufgelöster Eintrag ist ein Eintrag, der noch keinen Eintragsbezeichner oder PR_ENTRYID -Eigenschaft (PidTagEntryId) aufweist.

ResolveName durchläuft den folgenden Prozess für jeden nicht aufgelösten Eintrag in der Adressliste, der im lpAdrList-Parameter übergeben wird.

  1. Wenn der Adresstyp des Empfängers dem Format einer SMTP-Adresse ( displayname@ domain.top-level-domain) entspricht, weist ResolveName ihm einen einmaligen Eintragsbezeichner zu.

  2. Für jeden Container in der eigenschaft PR_AB_SEARCH_PATH (PidTagAbSearchPath) ruft ResolveName die IABContainer::ResolveNames-Methode auf. ResolveNames versucht, dem Anzeigenamen jedes nicht aufgelösten Empfängers einen Anzeigenamen zuzuordnen, der zu einem seiner Einträge gehört.

  3. Wenn ein Container ResolveNames nicht unterstützt, schränkt ResolveName die Inhaltstabelle des Containers mithilfe einer PR_ANR -Eigenschaftseinschränkung (PidTagAnr) ein. Diese Einschränkung bewirkt, dass der Container eine "beste Schätzung" der Suche durchführt, um einen passenden Empfänger zu finden. Alle Container müssen die PR_ANR-Eigenschaftseinschränkung unterstützen.

  4. Wenn ein Container einen Empfänger zurückgibt, der mehreren Namen entspricht, zeigt ResolveName ein Dialogfeld an, wenn das flag MAPI_DIALOG festgelegt ist, in dem der Benutzer den richtigen Namen auswählen kann.

  5. Wenn alle Container in der eigenschaft PR_AB_SEARCH_PATH aufgerufen wurden und keine Übereinstimmung gefunden wurde, bleibt der Empfänger nicht aufgelöst.

Wenn ein oder mehrere Empfänger nicht aufgelöst werden, gibt ResolveName MAPI_E_NOT_FOUND zurück. Wenn ein oder mehrere Empfänger über eine mehrdeutige Auflösung verfügten, die nicht mit einem Dialogfeld aufgelöst werden konnte, oder weil das MAPI_DIALOG-Flag nicht festgelegt wurde, gibt ResolveName MAPI_E_AMBIGUOUS_RECIP zurück. Wenn einige der Empfänger mehrdeutig sind und einige nicht aufgelöst werden können, kann ResolveName einen der beiden Fehlerwerte zurückgeben.

Wenn ein Name nicht aufgelöst werden kann, kann der Client eine einmalige Adresse erstellen, die über eine speziell formatierte Adresse und einen Eintragsbezeichner verfügt. Weitere Informationen zum Format von Bezeichnern für einmalige Einträge finden Sie unter Bezeichner für einmalige Einträge. Weitere Informationen zum Format von einmaligen Adressen finden Sie unter Einmalige Adressen.

MAPI unterstützt Unicode-Zeichenfolgen für die ADRLIST und die neuen Eintragstitelparameter für ResolveName; Wenn Sie das MAPI_UNICODE-Flag festlegen, werden die folgenden Eigenschaften als Typ zurückgegeben, PT_UNICODE in den ADRENTRY-Strukturen :

Die eigenschaft PR_7BIT_DISPLAY_NAME (PidTag7BitDisplayName) wird jedoch immer als Typ PT_STRING8 zurückgegeben.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Comment
MAPIABFunctions.cpp
AddOneOffAddress
MFCMAPI verwendet die ResolveName-Methode , um eine einmalige Adresse aufzulösen, bevor sie einer Nachricht hinzugefügt wird.
MAPIABFunctions.cpp
AddRecipient
MFCMAPI verwendet die ResolveName-Methode , um einen Adressbucheintrag anhand des Anzeigenamens nachzuschlagen.

Siehe auch

ADRLIST

IABContainer::ResolveNames

IAddrBook::Address

IAddrBook : IMAPIProp

MFCMAPI (engl.) als ein Codebeispiel