適用対象: Outlook 2013 | Outlook 2016
MAPI 統合アドレス帳を開いた後、1 つ以上のアドレス帳コンテナーを開いて、その中の受信者にアクセスします。
アドレス帳の最上位コンテナーを開くには、NULL エントリ識別子を使用して IAddrBook::OpenEntry を呼び出します。
アドレス帳コンテナーは、読み取り専用または読み取り/書き込みアクセスで実装できます。 読み取り専用コンテナーは、参照にのみ使用されます。 読み取り/書き込みコンテナーを変更できるため、クライアントは新しいエントリを作成したり、既存のエントリを削除したり変更したりできます。 すべての個人用アドレス帳 (PAB) コンテナーは、読み取り/書き込みコンテナーとして実装されます。
下位レベルのコンテナーを開くには、 OpenEntry を呼び出し、開くコンテナーのエントリ識別子を指定します。
PAB として指定されたコンテナーを開きます
IAddrBook::GetPAB を呼び出して、PAB のエントリ識別子を取得します。
このエントリ識別子を IAddrBook::OpenEntry に渡します。
PAB ではないコンテナーを開く
アドレス帳のルート コンテナーを開くには、NULL エントリ識別子を使用して IAddrBook::OpenEntry を呼び出します。
ルート コンテナーの IMAPIContainer::GetHierarchyTable メソッドを呼び出して、その階層テーブル (アドレス帳内のすべての最上位コンテナーの一覧) を取得します。
開くコンテナーが特定の種類の場合:
プロパティ タグのPR_DISPLAY_TYPE (PidTagDisplayType)、プロパティ値のコンテナーの型、および関係のRELOP_EQを使用して、SPropertyRestriction 構造体を作成します。 PR_DISPLAY_TYPE は、次のような多くの値に設定できます。
階層テーブルをグローバル アドレス一覧に属するコンテナーに制限するDT_GLOBAL。
テーブルをローカル アドレス帳に属するコンテナーに制限するDT_LOCAL。
テーブルを変更可能なコンテナーに制限するDT_MODIFIABLE。
PR_ENTRYID、PR_DISPLAY_TYPE、およびその他の目的の列を含む SPropTagArray 構造体を作成します。
HrQueryAllRows を呼び出し、プロパティ制限とプロパティ タグ配列を渡します。 HrQueryAllRows は、指定した型に属するすべてのコンテナーに対して 1 行ずつ、0 行以上の行を返します。 任意の数の行の戻り値を処理するように準備してください。
目的のコンテナーを表す行のPR_ENTRYID列からのエントリ識別子を使用して、IAddrBook::OpenEntry を呼び出します。
開くコンテナーが特定のアドレス帳プロバイダーに属している場合:
プロパティ タグのPR_AB_PROVIDERS (PidTagAbProviders)、プロパティ値のプロバイダー固有の値、および関係のRELOP_EQを使用して、SPropertyRestriction 構造体を作成します。 通常、プロバイダー固有の値はグローバルに一意の識別子または GUID です。 この値は、アドレス帳プロバイダーのヘッダー ファイルのいずれかで発行されます。
PR_ENTRYID (PidTagEntryId)、PR_AB_PROVIDERS、およびその他の目的の列を含む SPropTagArray 構造体を作成します。
HrQueryAllRows を呼び出し、プロパティ制限とプロパティ タグ配列を渡します。 指定したアドレス帳プロバイダーがプロファイルにない場合、HrQueryAllRows は 0 行を返します。 プロバイダーの編成方法に応じて、プロバイダーの最上位コンテナーの 1 つ以上の行を返すことができます。
目的のコンテナーを表す行のPR_ENTRYID列からのエントリ識別子を使用して、IAddrBook::OpenEntry を呼び出します。 関心のあるコンテナーが最上位のコンテナーでない場合は、最上位のコンテナーを見つけて階層を走査します。