IABContainer::ResolveNamesIABContainer::ResolveNames

適用対象: Outlook 2013 | Outlook 2016Applies to: Outlook 2013 | Outlook 2016

1つまたは複数の受信者エントリの名前解決を実行します。Performs name resolution for one or more recipient entries.

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

パラメーターParameters

lpPropTagArraylpPropTagArray

順番プロバイダーによって返されるadrlist構造に含まれるプロパティを説明するプロパティタグの配列を含むSPropTagArray構造体へのポインター。[in] A pointer to an SPropTagArray structure that contains an array of property tags describing the properties to be included in the ADRLIST structure returned by the provider. プロバイダーの既定のプロパティセットを要求するには、 _lpPropTagArray_パラメーターに NULL を渡します。To request the provider's default set of properties, pass NULL in the lpPropTagArray parameter.

ulFlagsulFlags

順番返される文字列内のテキストの種類を制御するフラグのビットマスク。[in] A bitmask of flags that controls the type of the text in the returned strings. 次のフラグを設定できます。The following flags can be set:

EMS_AB_ADDRESS_LOOKUPEMS_AB_ADDRESS_LOOKUP

完全に一致するプロキシアドレスのみが検索されます。部分一致は無視されます。Only exact proxy address matches will be found; partial matches are ignored. このフラグは、Exchange アドレス帳プロバイダーによってのみサポートされています。This flag is supported only by the Exchange Address Book Provider.

MAPI_CACHE_ONLYMAPI_CACHE_ONLY

名前解決を実行するために使用されるのは、オフラインアドレス帳のみです。Only the offline address book will be used to perform name resolution. たとえば、このフラグを使用して、クライアントアプリケーションが exchange キャッシュモードでグローバルアドレス一覧 (GAL) を開き、クライアントとサーバーの間のトラフィックを作成せずに、キャッシュからそのアドレス帳のエントリにアクセスできるようにすることができます。For example, you can use this flag to enable a client application to open the global address list (GAL) in cached exchange mode and access an entry in that address book from the cache without creating traffic between the client and the server. このフラグは、Exchange アドレス帳プロバイダーによってのみサポートされています。This flag is supported only by the Exchange Address Book Provider.

MAPI_UNICODEMAPI_UNICODE

返される文字列プロパティは、Unicode 形式です。The returned string properties are in Unicode format. MAPI_UNICODE フラグが設定されていない場合、文字列は ANSI 形式になります。If the MAPI_UNICODE flag is not set, the strings are in ANSI format.

lpadrlistlpAdrList

[入力]入力時に、解決される受信者のリストを含むadrlist構造体へのポインター。[in, out] On input, a pointer to an ADRLIST structure that contains the list of recipients to be resolved. 出力時に、解決された名前を含むadrlist構造体へのポインター。On output, a pointer to an ADRLIST structure that contains the resolved names.

lpflaglistlpFlagList

[入力]フラグの配列へのポインター。 _lpadrlist_パラメーターのadrentry構造に対応する各フラグは、受信者の名前解決操作の状態を提供します。[in, out] A pointer to an array of flags, each flag corresponding to an ADRENTRY structure in the lpAdrList parameter, that provides the status of the name resolution operation for the recipient. _lpflaglist_パラメーターのフラグは、 _lpadrlist_のエントリと同じ順序になっています。The flags in the lpFlagList parameter are in the same order as the entries in lpAdrList. 次のフラグを設定できます。The following flags can be set:

MAPI_AMBIGUOUSMAPI_AMBIGUOUS

対応する受信者は解決されましたが、一意のエントリ識別子は解決されていません。The corresponding recipient has been resolved, but not to a unique entry identifier. 他のコンテナーは、この受信者の解決を試みてはなりません。Other containers should not try to resolve this recipient.

MAPI_RESOLVEDMAPI_RESOLVED

対応する受信者が一意のエントリ識別子に解決されました。The corresponding recipient has been resolved to a unique entry identifier. 他のコンテナーは、この受信者の解決を試みてはなりません。Other containers should not try to resolve this recipient.

MAPI_UNRESOLVEDMAPI_UNRESOLVED

対応するエントリは解決されていません。The corresponding entry has not been resolved. 他のコンテナーは、この受信者の解決を試行する必要があります。Other containers should try to resolve this recipient.

戻り値Return value

S_OKS_OK

名前解決プロセスが正常に完了しました。The name resolution process was successful.

MAPI_E_BAD_CHARWIDTHMAPI_E_BAD_CHARWIDTH

MAPI_UNICODE フラグが設定されていて、実装が unicode をサポートしていないか、または MAPI_UNICODE が設定されておらず、実装で unicode のみがサポートされています。Either the MAPI_UNICODE flag was set and the implementation does not support Unicode, or MAPI_UNICODE was not set and the implementation supports only Unicode.

MAPI_E_NO_SUPPORTMAPI_E_NO_SUPPORT

アドレス帳プロバイダーは、このメソッドを使用したバルク名解決をサポートしていません。The address book provider does not support bulk name resolution by using this method.

注釈Remarks

ResolveNamesメソッドは、解決されない受信者を、 _lpadrlist_パラメーター内のエントリの配列から、このアドレス帳コンテナー内の受信者に一致させようとします。The ResolveNames method attempts to match unresolved recipients from the array of entries in the lpAdrList parameter to recipients in this address book container. 未解決の受信者には、通常、 PR_DISPLAY_NAME (PidTagDisplayName) プロパティだけがあり、他にもいくつかのプロパティがあります。An unresolved recipient typically has only the PR_DISPLAY_NAME (PidTagDisplayName) property and possibly a few other properties. 未解決の受信者には、 PR_ENTRYID (PidTagEntryId) プロパティがありません。 _lpflaglist_パラメーター内の対応するフラグは MAPI_UNRESOLVED に設定されています。An unresolved recipient does not have the PR_ENTRYID (PidTagEntryId) property, and its corresponding flag in the lpFlagList parameter is set to MAPI_UNRESOLVED. 反対に、解決された受信者には、少なくともPR_ENTRYIDプロパティと、 PR_EMAIL_ADDRESS (PidTagEmailAddress)、 PR_DISPLAY_NAMEPR_ADDRTYPEなどのその他のプロパティがあります (PidTagAddressType)Conversely, a resolved recipient always has at least the PR_ENTRYID property plus several other properties such as PR_EMAIL_ADDRESS (PidTagEmailAddress), PR_DISPLAY_NAME, and PR_ADDRTYPE (PidTagAddressType).

通常、クライアントがIAddrBook:: ResolveNameメソッドを呼び出すときに、名前解決が開始されます。Name resolution typically starts when a client calls the IAddrBook::ResolveName method. Outlook MAPI は、 PR_AB_SEARCH_PATH (PidTagAbSearchPath) プロパティによって指定されたアドレス帳の検索パスに含まれる各アドレス帳コンテナーのResolveNamesメソッドを呼び出すことによって応答します。Outlook MAPI responds by calling the ResolveNames method of each address book container included in the address book search path, specified by the PR_AB_SEARCH_PATH (PidTagAbSearchPath) property. _lpadrlist_パラメーターのエントリには、検索パスの前にエントリが表示されているため、MAPI が既にResolveNamesを呼び出しているコンテナーにあるため、既に解決されている受信者が含まれています。The entries in the lpAdrList parameter include recipients already resolved because they are in containers for which MAPI has already called ResolveNames, because the entries appear earlier in the search path.

各コンテナーは、受信者の表示名とそのエントリの表示名を一致させることによって、未解決のエントリの解決を試みます。Each container attempts to resolve the unresolved entries by matching the display name of the recipient with the display name of one of its entries. 一意の一致が見つかった場合、 ResolveNamesは、 PR_ENTRYIDプロパティと、 _lpPropTagArray_パラメーターに含まれるその他のプロパティを、出力するadrlist構造体の対応するエントリに追加します。When a unique match is found, ResolveNames adds the PR_ENTRYID property and other properties that are included in the lpPropTagArray parameter to the corresponding entry in the outgoing ADRLIST structure. ResolveNamesは、 _lpflaglist_パラメーターのエントリを MAPI_RESOLVED に設定します。ResolveNames then sets the entry in the lpFlagList parameter to MAPI_RESOLVED. PR_ENTRYIDプロパティに格納されているエントリ識別子は、短期的または長期間の場合があります。The entry identifier stored in the PR_ENTRYID property can be short-term or long-term.

検索パス内のすべてのコンテナーが名前解決プロセスを試行した後、MAPI によっては、可能であれば、残りの競合を解決するためにユーザーに支援を求めるダイアログボックスが表示されます。After all of the containers in the search path have attempted the name resolution process, MAPI opens a dialog box, if possible, to prompt the user for help in resolving any remaining conflicts.

クライアントは、 IMessage:: modifyrecipientsメソッドへの呼び出しで、返されたadrlist構造を使用することもできます。Clients can also use the returned ADRLIST structure in calls to the IMessage::ModifyRecipients method.

実装に関するメモNotes to implementers

ResolveNamesメソッドを使用して名前解決をサポートする必要はありません。You are not required to support name resolution with the ResolveNames method. 代わりに、 PR_ANR (PidTagAnr) プロパティ制限を使用してサポートすることもできます。Instead, or additionally, you can support it with the PR_ANR (PidTagAnr) property restriction. 名前解決のPR_ANR制限に頼る場合は、MAPI_E_NO_SUPPORT を取得することができます。If you decide to rely on the PR_ANR restriction for name resolution, you can return MAPI_E_NO_SUPPORT. For more information, see Implementing Name Resolution.For more information, see Implementing Name Resolution.

受信者がコンテナーのどの受信者とも一致しない場合は、 _lpflaglist_パラメーターの受信者のフラグエントリを MAPI_UNRESOLVED に設定します。Set a recipient's flag entry in the lpFlagList parameter to MAPI_UNRESOLVED if the recipient does not match any of the container's recipients.

受信者が複数の受信者と一致する場合は、そのフラグを MAPI_AMBIGUOUS に設定し、 adrentry構造を変更しないようにします。When a recipient matches multiple recipients, set its flag to MAPI_AMBIGUOUS and do not change its ADRENTRY structure.

MAPI では、メッセージの宛先リストに含まれる受信者に特定のプロパティが必要です。MAPI requires certain properties for recipients that are included in a message's recipient list. 名前解決プロセスの一部として、これらをadrentry構造に含めるか、MAPI がIAddrBook::P reparerecipsメソッドとimapisupport:: ExpandRecipsメソッドへの呼び出しを要求するようにすることができます。You can include them in the ADRENTRY structure as part of the name resolution process or wait for MAPI to request them with calls to the IAddrBook::PrepareRecips and IMAPISupport::ExpandRecips methods. 解決されたすべての受信者のadrentry構造に次のプロパティを含めることで、これらの余分な呼び出しを排除し、パフォーマンスを向上させることができます。You can eliminate these extra calls and improve performance by including the following properties in the ADRENTRY structures of all resolved recipients:

_lpPropTagArray_パラメーターの一部のプロパティが使用できない場合 (通常は container エントリがプロパティをサポートしておらず、かつ、 adrentry構造の受信者のadrentryメンバーに含まれていないためです)。使用できない各プロパティのプロパティの種類を PT_ERROR に設定します。If some of the properties in the lpPropTagArray parameter are unavailable—typically because the container entry does not support the properties and they are not included in the recipient's ADRENTRY member in the ADRLIST structure—set the property type of each unavailable property to PT_ERROR.

解決された受信者のadrentry構造からはプロパティを削除しないでください。Do not remove any properties from a resolved recipient's ADRENTRY structure.

adrentry構造を変更するのではなく、最初に元のadrentry構造を解放する必要がある場合は、まず、 MAPIFreeBuffer関数を呼び出して、次のように**** 置き換えられた adrentry 構造をMAPIAllocateBufferIf you must replace rather than modify an ADRENTRY structure, free the original ADRENTRY structure first by calling the MAPIFreeBuffer function, and then allocate the replacement ADRENTRY structure with MAPIAllocateBuffer.

関連項目See also

ADRENTRYADRENTRY

ADRLISTADRLIST

IAddrBook::PrepareRecipsIAddrBook::PrepareRecips

IAddrBook::ResolveNameIAddrBook::ResolveName

IMAPISupport::ExpandRecipsIMAPISupport::ExpandRecips

IMessage::ModifyRecipientsIMessage::ModifyRecipients

PidTagAnr 標準プロパティPidTagAnr Canonical Property

SPropertyRestrictionSPropertyRestriction

IABContainer : IMAPIContainerIABContainer : IMAPIContainer