メッセージ ストアを検索Searching a message store

適用されます: OutlookApplies to: Outlook

クライアント アプリケーションは、検索条件に一致するメッセージを探して、1 つまたは複数のフォルダーを検索できます。Client applications can search through one or more folders looking for messages that match search criteria. 最も簡単な検索方法は、抽出条件を定義するのには制限を適用する必要があり、または以前の検索の検索条件に明示的に作成、検索結果フォルダーに結果を配置すること。The most straightforward search technique involves applying a restriction to define criteria and placing the results into a search-results folder, created explicitly for this search or for a prior search. すべてのメッセージ ストアは、この手法をサポートします。Not all message stores support this technique.

決定するかどうか、メッセージ ・ ストアを使用しているをサポートしている検索結果フォルダーを使用して、取得するためにIMAPIProp::GetPropsメソッドを呼び出す、 PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) のプロパティです。To determine whether or not the message store you are using supports using search-results folders, call its IMAPIProp::GetProps method to retrieve the PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) property. STORE_SEARCH_OK フラグが設定されている場合に、検索はサポートされています。If the STORE_SEARCH_OK flag is set, searching is supported. 設定されていない場合は、ターゲット フォルダーを手動で検査などの別の方法をする必要があります。If it is not set, you'll need an alternate approach such as manually inspecting the target folders.

メッセージ ストアに 1 つまたは複数のフォルダーを検索するにはTo search one or more folders in a message store

  1. 前の検索から検索結果フォルダーを使っている場合は、手順 2 に進みます。If you have a search-results folder from a previous search, skip to step 2. それ以外の場合、検索結果フォルダーを作成します。Otherwise, to create a search-results folder:

    1. 検索結果のルート フォルダーのエントリ id を取得するには、メッセージ ストアのIMAPIProp::GetPropsメソッドを呼び出すと、 PR_FINDER_ENTRYID (PidTagFinderEntryId) を要求します。Retrieve the entry identifier for the search-results root folder by calling the message store's IMAPIProp::GetProps method and requesting PR_FINDER_ENTRYID (PidTagFinderEntryId).

    2. PR_FINDER_ENTRYID によって表されるフォルダーを開くには、 IMsgStore::OpenEntryを呼び出します。Call IMsgStore::OpenEntry to open the folder represented by PR_FINDER_ENTRYID.

    3. メソッドを呼び出してフォルダーのIMAPIFolder::CreateFolderを FOLDER_SEARCH フラグを設定して、[検索結果] フォルダーを作成します。Call the folder's IMAPIFolder::CreateFolder method to create a search-results folder with the FOLDER_SEARCH flag set.

  2. 検索条件を保持するために制限を作成します。Build a restriction to hold your search criteria.

  3. 検索するフォルダーを表すエントリの識別子の配列を作成します。Create an array of entry identifiers that represent the folders to search. 使用されています。 検索結果のフォルダーと同じフォルダーを検索する場合、この手順は必要ではありません。This step is unnecessary if the search-results folder has been used before and you want to search the same folders.

  4. エントリの識別子の配列を制限する_lpRestriction_ _lpContainerList_を参照、検索結果フォルダーのIMAPIContainer::SetSearchCriteriaメソッドを呼び出します。Call the search-results folder's IMAPIContainer::SetSearchCriteria method, pointing lpContainerList to the entry identifier array and lpRestriction to the restriction.

  5. メッセージ ・ ストアの検索の完了通知を登録する場合は、到着を通知するため待機します。If you have registered for search complete notifications with the message store, wait for the notification to arrive.

  6. 検索結果の内容のテーブルにアクセスするためのフォルダーのIMAPIContainer::GetContentsTableメソッドを呼び出すことによって、検索結果を表示します。View the results of the search by calling the search-results folder's IMAPIContainer::GetContentsTable method to access its contents table.

  7. 内容の検索条件を満たすメッセージを取得するテーブルのIMAPITable::QueryRowsメソッドを呼び出します。Call the contents table's IMAPITable::QueryRows method to retrieve the messages that satisfy the search criteria.