Freigeben über


IABContainer::ResolveNames

Gilt für: Outlook 2013 | Outlook 2016

Führt die Namensauflösung für einen oder mehrere Empfängereinträge durch.

HRESULT ResolveNames(
  LPSPropTagArray lpPropTagArray,
  ULONG ulFlags,
  LPADRLIST lpAdrList,
  LPFlagList lpFlagList
);

Parameter

lpPropTagArray

[in] Ein Zeiger auf eine SPropTagArray-Struktur, die ein Array von Eigenschaftskategorien enthält, die die Eigenschaften beschreiben, die in die vom Anbieter zurückgegebene ADRLIST-Struktur eingeschlossen werden sollen. Um den Standardsatz der Eigenschaften des Anbieters anzufordern, übergeben Sie NULL im lpPropTagArray-Parameter.

ulFlags

[in] Eine Bitmaske von Kennzeichnungen, die den Typ des Texts in den zurückgegebenen Zeichenfolgen steuert. Die folgenden Kennzeichnungen können festgelegt werden:

EMS_AB_ADDRESS_LOOKUP

Es werden nur genaue Proxyadressenüberstimmungen gefunden. Partielle Übereinstimmungen werden ignoriert. Diese Kennzeichnung wird nur vom Exchange Adressbuch-Anbieter unterstützt.

MAPI_CACHE_ONLY

Nur das Offlineadressbuch wird für die Namensauflösung verwendet. Sie können diese Kennzeichnung beispielsweise verwenden, um einer Clientanwendung zu ermöglichen, die globale Adressliste (GAL) im Exchange-Cachemodus zu öffnen und auf einen Eintrag in diesem Adressbuch aus dem Cache zuzugreifen, ohne Datenverkehr zwischen dem Client und dem Server zu erstellen. Diese Kennzeichnung wird nur vom Exchange Adressbuch-Anbieter unterstützt.

MAPI_UNICODE

Die zurückgegebenen Zeichenfolgeneigenschaften weisen das Unicode-Format auf. Wenn die MAPI_UNICODE-Kennzeichnung nicht festgelegt ist, liegen die Zeichenfolgen im ANSI-Format vor.

lpAdrList

[in, out] Bei der Eingabe, ein Zeiger auf eine ADRLIST-Struktur, die die Liste der zu lösenden empfangenden Personen enthält. Bei der Ausgabe, ein Zeiger auf eine ADRLIST-Struktur, die die aufgelösten Namen enthält.

lpFlagList

[in, out] Ein Zeiger auf ein Array von Kennzeichnungen, jede Kennzeichnung, die einer ADRENTRY-Struktur im lpAdrList-Parameter entspricht und den Status des Namensauflösungsvorgangs für den Empfänger bereitstellt. Die Kennzeichnungen im lpFlagList-Parameter befinden sich in der gleichen Reihenfolge wie die Einträge in lpAdrList. Die folgenden Kennzeichnungen können festgelegt werden:

MAPI_AMBIGUOUS

Der entsprechende Empfänger wurde aufgelöst, jedoch nicht in einen eindeutigen Eintragsbezeichner. Andere Container sollten nicht versuchen, diesen Empfänger aufzulösen.

MAPI_RESOLVED

Der entsprechende Empfänger wurde in einen eindeutigen Eintragsbezeichner aufgelöst. Andere Container sollten nicht versuchen, diesen Empfänger aufzulösen.

MAPI_UNRESOLVED

Der entsprechende Eintrag wurde nicht aufgelöst. Andere Container sollten versuchen, diesen Empfänger aufzulösen.

Rückgabewert

S_OK

Der Namensauflösungsprozess war erfolgreich.

MAPI_E_BAD_CHARWIDTH

Entweder wurde die MAPI_UNICODE-Kennzeichnung festgelegt und die Implementierung unterstützt kein Unicode, oder MAPI_UNICODE wurde nicht festgelegt und die Implementierung unterstützt nur Unicode.

MAPI_E_NO_SUPPORT

Der Adressbuchanbieter unterstützt die Massennamensauflösung mit dieser Methode nicht.

Hinweise

Die ResolveNames-Methode versucht, nicht aufgelöste Empfänger aus dem Array von Einträgen im lpAdrList-Parameter mit Empfängern in diesem Adressbuchcontainer abzugleichen. Ein nicht aufgelöster Empfänger verfügt in der Regel nur über die PR_DISPLAY_NAME (PidTagDisplayName)-Eigenschaft und möglicherweise über einige andere Eigenschaften. Ein nicht aufgelöster Empfänger verfügt nicht über die PR_ENTRYID (PidTagEntryId)-Eigenschaft, und die entsprechende Kennzeichnung im lpFlagList-Parameter ist auf MAPI_UNRESOLVED festgelegt. Umgekehrt verfügt ein aufgelöster Empfänger immer über mindestens die PR_ENTRYID-Eigenschaft sowie über mehrere andere Eigenschaften wie PR_EMAIL_ADDRESS (PidTagEmailAddress), PR_DISPLAY_NAME und PR_ADDRTYPE (PidTagAddressType).

Die Namensauflösung beginnt in der Regel, wenn ein Client die IAddrBook::ResolveName-Methode aufruft. Outlook MAPI antwortet, indem die ResolveNames-Methode jedes Adressbuchcontainers aufgerufen wird, der im Adressbuchsuchpfad enthalten ist, der durch die PR_AB_SEARCH_PATH-Eigenschaft (PidTagAbSearchPath) angegeben wird. Die Einträge im lpAdrList-Parameter enthalten Empfänger, die bereits aufgelöst wurden, da sie sich in Containern befinden, für die MAPI resolveNamesbereits aufgerufen hat, da die Einträge weiter oben im Suchpfad angezeigt werden.

Jeder Container versucht, die nicht aufgelösten Einträge aufzulösen, indem er den Anzeigenamen des Empfängers mit dem Anzeigenamen einer seiner Einträge abgleicht. Wenn eine eindeutige Übereinstimmung gefunden wird, fügt ResolveNames dem entsprechenden Eintrag in der ausgehenden ADRLIST-Struktur die PR_ENTRYID-Eigenschaft und andere Eigenschaften hinzu, die im lpPropTagArray-Parameter enthalten sind. ResolveNames legt dann den Eintrag im lpFlagList-Parameter auf MAPI_RESOLVED fest. Der in der PR_ENTRYID-Eigenschaft gespeicherte Eintragsbezeichner kann kurzfristig oder langfristig sein.

Nachdem alle Container im Suchpfad versucht haben, den Namensauflösungsprozess durchzuführen, öffnet MAPI nach Möglichkeit ein Dialogfeld, in dem die benutzende Person zur Hilfe bei der Lösung verbleibender Konflikte aufgefordert wird.

Clients können auch die zurückgegebene ADRLIST-Struktur in Aufrufen der IMessage::ModifyRecipients-Methode verwenden.

Hinweise für Implementierer

Sie müssen die Namensauflösung nicht mit der ResolveNames-Methode unterstützen. Stattdessen oder zusätzlich können Sie dies mit der Eigenschaftseinschränkung PR_ANR (PidTagAnr) unterstützen. Wenn Sie sich für die Namensauflösung auf die PR_ANR-Einschränkung verlassen möchten, können Sie MAPI_E_NO_SUPPORT zurückgeben. For more information, see Implementieren der Namensauflösung.

Legen Sie den Kennzeichnungseintrag eines Empfängers im lpFlagList-Parameter auf MAPI_UNRESOLVED fest, wenn der Empfänger keinem der Empfänger des Containers entspricht.

Wenn ein Empfänger mehreren Empfängern entspricht, legen Sie dessen Kennzeichnung auf MAPI_AMBIGUOUS fest, und ändern Sie die ADRENTRY-Struktur nicht.

MAPI erfordert bestimmte Eigenschaften für Empfänger, die in der Empfängerliste einer Nachricht enthalten sind. Sie können sie im Rahmen des Namensauflösungsprozesses in die ADRENTRY-Struktur einschließen oder warten, bis MAPI sie mit Aufrufen der IAddrBook::P repareRecips-Methoden und IMAPISupport::ExpandRecips-Methoden anfordert. Sie können diese zusätzlichen Aufrufe vermeiden und die Leistung verbessern, indem Sie die folgenden Eigenschaften in die ADRENTRY-Strukturen aller aufgelösten Empfänger einschließen:

Wenn einige der Eigenschaften im lpPropTagArray-Parameter nicht verfügbar sind – in der Regel weil der Containereintrag die Eigenschaften nicht unterstützt und sie nicht im ADRENTRY-Element des Empfängers in der ADRLIST-Struktur enthalten sind – legen Sie den Eigenschaftentyp jeder nicht verfügbaren Eigenschaft auf PT_ERROR fest.

Entfernen Sie keine Eigenschaften aus der ADRENTRY-Struktur eines aufgelösten Empfängers.

Wenn Sie eine ADRENTRY-Struktur ersetzen anstatt ändern müssen, geben Sie zuerst die ursprüngliche ADRENTRY-Struktur frei, indem Sie die MAPIFreeBuffer-Funktion aufrufen, und ordnen Sie dann die ADRENTRY-Ersatzstruktur mit MAPIAllocateBuffer zu.

Siehe auch

ADRENTRY

ADRLIST

IAddrBook::PrepareRecips

IAddrBook::ResolveName

IMAPISupport::ExpandRecips

IMessage::ModifyRecipients

kanonische PidTagAnr-Eigenschaft

SPropertyRestriction

IABContainer : IMAPIContainer