次の方法で共有


高度な検索の実装

適用対象: Outlook 2013 | Outlook 2016

一部のアドレス帳コンテナーでは、クライアントが PR_DISPLAY_NAME (PidTagDisplayName) 以外のプロパティを検索できる高度な検索機能がサポートされています。 高度な検索をサポートするには、プロバイダーが、他のコンテナーの PR_SEARCH (PidTagSearch) プロパティを使用してアクセスできる特別なコンテナーを実装する必要があります。 PR_SEARCH には、高度な検索条件の入力と編集に使用するダイアログ ボックスを記述する表示テーブルへのアクセスを提供するコンテナー オブジェクトが含まれています。

高度な検索をサポートするには

  1. 検索条件ごとにプロパティを定義します。

  2. コンテナーの IMAPIProp::OpenProperty メソッドのコード セクションで 、PR_SEARCH プロパティを処理します。

  3. クライアントが IMAPIContainer インターフェイスを要求していることを確認します。 不適切なインターフェイスが要求されている場合は、失敗し、MAPI_E_INTERFACE_NOT_SUPPORTEDを返します。

  4. IMAPIContainer インターフェイスをサポートする新しい検索オブジェクトを作成します。

  5. この時点で、検索コンテナーの IMAPIProp::OpenProperty メソッドを呼び出して 、そのPR_DETAILS_TABLE (PidTagDetailsTable) プロパティを取得します。 プロバイダーは、通常、 BuildDisplayTable の呼び出しを通じて、コンテナーの高度な検索ダイアログ ボックスを記述する表示テーブルを提供する必要があります。

  6. MAPI は、ユーザーが適切な条件を入力できるように、検索ダイアログ ボックスを表示します。 ユーザーが完了すると、MAPI はコンテナーの IMAPIProp::SetProps メソッドを呼び出して検索条件を格納します。

  7. 検索コンテナーのコンテンツ テーブルを要求する呼び出しが行われます。 条件に一致するコンテナー内のすべてのエントリをコンテンツ テーブルに設定します。