ADRLIST

適用対象: Outlook 2013 | Outlook 2016

1 つ以上の受信者に属する 0 個以上のプロパティについて説明します。

説明
ヘッダー ファイル:
Mapidefs.h
関連するマクロ:
CbADRLISTCbNewADRLISTCbNewADRLIST
typedef struct _ADRLIST
{
  ULONG cEntries;
  ADRENTRY aEntries[MAPI_DIM];
} ADRLIST, FAR *LPADRLIST;

メンバー

cEntries

aEntries メンバーによって指定された配列内のエントリの数。

aEntries

ADRENTRY 構造体の配列。受信者ごとに 1 つの構造体。

注釈

ADRLIST 構造体には、1 つ以上の ADRENTRY 構造体が含まれています。それぞれが受信者のプロパティを記述しています。 受信者は解決できません。 これは、プロパティ値の配列にエントリ識別子がないことを意味します。 解決された受信者は、 PR_ENTRYID (PidTagEntryId) プロパティが含まれていることを意味します。 通常、解決された受信者には、 PR_EMAIL_ADDRESS (PidTagEmailAddress) プロパティの電子メール アドレスもあります。 ただし、メール アドレスは必要ありません。 ADRLIST 構造体は、たとえば、送信メッセージの受信者リストを記述するために使用され、MAPI によってアドレス帳のエントリを表示するために使用されます。

ADRLIST 構造体は、テーブル内の行を表す際に使用される構造体である SRowSet 構造体に似ています。 実際、これら 2 つの構造体は、同じ意味で使用できるように設計されています。 どちらも、プロパティのグループと配列内の値の数を記述する構造体の配列を含みます。 ADRLIST 構造体では、配列に ADRENTRY 構造体が含まれますが、SRowSet 構造体では配列に SRow 構造体が含まれます。 ADRENTRY 構造体と SRow 構造体は、レイアウトで同じです。 ADRLIST 構造体と SRowSet 構造体は同じ割り当て規則に従うため、アドレス帳コンテナーのコンテンツ テーブルから取得される SRowSet 構造体を ADRLIST 構造体にキャストし、そのまま使用できます。

次の図は、 ADRLIST 構造体のレイアウトを示しています。

ADRLIST コンポーネント

ADRLIST 構造体の ADRENTRY 部分と SPropValue 部分は、他の部分とは別に割り当ておよび解放する必要があります。 つまり、ADRENTRY 構造体のメモリが割り当てられ解放された後、ADRENTRY 構造体が解放される前に、各 SPropValue構造体を個別に割り当てる必要があります。 このメモリ処理の独立性により、受信者と個々の受信者プロパティをアドレス一覧から自由に追加または削除できます。

ADRLIST 構造体とそのすべての部分を割り当てて解放するには、MAPIAllocateBuffer 関数と MAPIFreeBuffer 関数を使用する必要があります。

受信者リストが大きすぎてメモリに収まらない場合、クライアントは IMessage::ModifyRecipients メソッドを呼び出して、リストのサブセットを操作できます。 この状況では、クライアントはアドレス帳の一般的なダイアログ ボックスを使用しないでください。

ADRENTRY 構造体にメモリを割り当てる方法の詳細については、「ADRLIST および SRowSet 構造体のメモリの管理」を参照してください。

関連項目