適用されます: OutlookApplies to: Outlook

メッセージング システムによって後で使用できる受信者のリストを準備します。Prepares a recipient list for later use by the messaging system.

HRESULT PrepareRecips(
  ULONG ulFlags,
  LPSPropTagArray lpPropTagArray,
  LPADRLIST lpRecipList



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

  • MAPI_CACHE_ONLY: は、名前解決を実行するのには、オフライン アドレス帳のみを使用します。MAPI_CACHE_ONLY: Use only the offline address book to perform name resolution. たとえば、このフラグを使用すると、exchange キャッシュ モードでグローバル アドレス一覧 (GAL) を開き、クライアントとサーバー間のトラフィックを作成することがなく、キャッシュからそのアドレス帳のエントリにアクセスするのにクライアント アプリケーションを許可します。For example, you can use this flag to allow 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.


[in]更新を必要とするプロパティを指定するプロパティ タグの配列を含むSPropTagArray構造体へのポインター。[in] A pointer to an SPropTagArray structure that contains an array of property tags that indicate the properties that require updating, if any. _LpPropTagArray_パラメーターは NULL にできます。The lpPropTagArray parameter can be NULL.


[in]受信者の一覧を保持するADRLIST構造体へのポインター。[in] A pointer to an ADRLIST structure that holds the recipient list.

�߂�lReturn value


宛先リストの準備ができました。The recipient list was successfully prepared.


_LpRecipList_パラメーター内の受信者のいずれかが存在しません。One or more of the recipients in the lpRecipList parameter do not exist.

�߂�lReturn value

クライアントでは、1 つまたは複数の受信者のプロパティのセットを再配置を変更または MAPI のIAddrBook::PrepareRecipsメソッドを呼び出します。A client calls the MAPI IAddrBook::PrepareRecips method to modify or rearrange a set of properties for one or more recipients. 受信者は、送信メッセージの受信者の一覧の一部ではないです。The recipients may or may not be part of the recipient list of an outgoing message. MAPI は、アドレス帳プロバイダーのIABLogon::PrepareRecipsメソッドへの呼び出しを転送します。MAPI transfers this call to an address book provider's IABLogon::PrepareRecips method.

IABLogon::PrepareRecipsは、4 つの主要なタスクを実行します。IABLogon::PrepareRecips performs four main tasks:

  • アドレス] ボックスの一覧のすべての受信者が指す_lpRecipList_パラメーターで、長期のエントリ id があることを保証します。Ensures that all recipients in the address list pointed to by the lpRecipList parameter have a long-term entry identifier.

  • すべての受信者に、 _lpPropTagArray_パラメーターで指定されたプロパティ値の配列で指定されたプロパティがあることを保証します。Ensures that all recipients have the properties specified in the property value array pointed to by the lpPropTagArray parameter.

  • 呼び出しの前に存在していた他のすべてのプロパティの前に、プロパティ値の配列からプロパティが表示されることを保証します。Ensures that the properties from the property value array appear before any other properties that existed before the call.

  • 確実にADRLIST構造体の各宛て先用のADRENTRYの構造体のプロパティの順序は、プロパティ値の配列の場合と同じです。Ensures that the order of the properties in each recipient's ADRENTRY structure in the ADRLIST structure is the same as in the property value array.

_LpRecipList_パラメーターにADRENTRY構造体には、受信者ごとに 1 つのADRENTRY構造体が含まれています。The ADRENTRY structure in the lpRecipList parameter contains one ADRENTRY structure for each recipient. ADRENTRYの各構造体には、受信者のプロパティを記述するSPropValue構造体の配列が含まれています。Each ADRENTRY structure contains an array of SPropValue structures to describe the recipient's properties. IABLogon::PrepareRecipsが返されると、受信者ごとにSPropValue構造体の配列には、受信者の他のプロパティの後に_lpPropTagArray_からのプロパティが含まれています。When IABLogon::PrepareRecips returns, the SPropValue structure array for each recipient includes the properties from the lpPropTagArray followed by the other properties for the recipient.

実装者へのメモNotes to implementers

IABLogon::PrepareRecipsを実装するには、プロパティの値を取得する、短期的なエントリの識別子を長期的なエントリの識別子に変換するプロパティを特定の順序で配置する必要があります。Implementing IABLogon::PrepareRecips involves putting properties in a specific order, retrieving property values, and converting short-term entry identifiers to long-term entry identifiers. _LpPropTagArray_パラメーターで要求されたプロパティは、 _lpRecipList_パラメーターで、各受信者のADRENTRYの構造体に関連付けられているプロパティ値の配列の先頭にする必要があります。The properties that are requested in the lpPropTagArray parameter must be at the start of the property value array associated with each recipient's ADRENTRY structure in the lpRecipList parameter. これらのプロパティの値が存在しない場合のエントリ id を使用して、関連付けられているメッセージのユーザーまたは配布リストを開くし、欠落しているプロパティ値を取得します。If values for these properties do not exist, open the associated messaging user or distribution list by using its entry identifier and retrieve the missing property values.

渡された_lpRecipList_とは別に個別に構造体を解放することができるように、各SPropValue構造体を割り当てます。Allocate each SPropValue structure passed in lpRecipList separately so that the structures can be freed individually. SPropValue構造体に追加の空き領域を割り当てる必要があります場合、たとえば、文字列のプロパティのデータを格納するのに関数を使用MAPIAllocateBuffer全プロパティの値の配列に追加の領域を割り当てます。If you must allocate additional space for any SPropValue structure, for example, to store the data for a string property, use the MAPIAllocateBuffer function to allocate additional space for the full property value array. MAPIFreeBuffer関数を使用して、元のプロパティ値の配列を解放して、 MAPIAllocateMore関数を使用して必要な追加のメモリを割り当てることです。Use the MAPIFreeBuffer function to free the original property value array, and then use the MAPIAllocateMore function to allocate any additional memory that is required.

IABLogon::PrepareRecipsを実装するには、次の手順を使用します。To implement IABLogon::PrepareRecips, use the following procedure:

  1. _LpPropTagArray_パラメーターのエントリを確認します。Check for entries in the lpPropTagArray parameter. プロパティの値の配列が空の場合は、実行する作業はありません。If the property value array is empty, there is no work to do. 成功値を返します。Return a success value.

  2. _LpRecipList_パラメーターでは、各受信者を処理します。Process each recipient in the lpRecipList parameter. リスト内の受信者ごとに 1 つのADRENTRY構造体のメンバーがあります。There is one ADRENTRY structure member for each recipient in the list. 次の種類の受信者を無視するには。Ignore the following types of recipients:

    • エントリ id、 ADRENTRYの構造 (つまり、未解決の受信者) のrgPropValsのメンバーでない受信者を指定します。Recipients without an entry identifier in the rgPropVals member of their ADRENTRY structure (that is, unresolved recipients).

    • プロバイダーに属していないエントリの識別子を持つ受信者。Recipients with an entry identifier that does not belong to your provider. これらの受信者は、別のアドレス帳プロバイダーに渡されます。These recipients will be passed to another address book provider.

  3. 受信者を開き、受信者に対して既に設定されているプロパティを取得します。Open the recipient and retrieve the properties that are already set for the recipient.

  4. GetPropsから返されるプロパティの配列を_lpRecipList_で指定されたプロパティ値の配列をマージします。Merge the property value array specified in the lpRecipList with the array of properties returned from GetProps. プロパティの両方のアレイでは、同じプロパティが発生する場合は、 _lpRecipList_の値を使用します。If the same property occurs in both property arrays, use the value from lpRecipList.

  5. _LpRecipList_プロパティの値の配列がすべての必要なプロパティを保持するのに十分な大きさの場合は、結合配列を使用して置き換えるだけです。If the lpRecipList property value array is big enough to hold all of the necessary properties, just replace it with the merged array. _LpRecipList_プロパティの値の配列が十分な大きさでない場合は、新しく割り当てられた配列を使用して交換してください。If the lpRecipList property value array is not big enough, replace it with a newly allocated array. 新しい配列価値がある更新されたそれぞれのあうメンバーのことを確認してあります。Be sure the new array has an updated value in each of its cValues members.

  6. _LpPropTagArray_パラメーターのプロパティのいずれかを認識していない場合は、プロパティの型を設定 PT_ERROR と MAPI_E_NOT_FOUND をまたはよりは、別の値にプロパティの値を受信者のADRENTRYの構造体にプロパティの使用不可時間の特定の理由です。If you do not recognize one or more of the properties in the lpPropTagArray parameter, set the property type in the recipient's ADRENTRY structure to PT_ERROR and the property value either to MAPI_E_NOT_FOUND or to another value that gives a more specific reason for the unavailability of the property. PT_ERROR 詳細については、プロパティの型を参照してください。For information about PT_ERROR, see Property Types.


IABLogon::PrepareRecipsに渡されるADRLIST構造体を割り当て直すことはありませんか、エントリの数を変更します。Never reallocate the ADRLIST structure that is passed into IABLogon::PrepareRecips or change its number of entries.

関連項目See also