共用方式為


IMAPIContainer::SetSearchCriteria

適用於:Outlook 2013 |Outlook 2016

建立容器的搜尋準則。

HRESULT SetSearchCriteria(
  LPSRestriction lpRestriction,
  LPENTRYLIST lpContainerList,
  ULONG ulSearchFlags
);

參數

lpRestriction

[in]定義搜尋準則 之 SRestriction 結構的指標。 如果在 lpRestriction 參數中傳遞 NULL,則會再次使用最近用於此容器的搜尋準則。 在容器中進行第一次搜尋時,不應在 lpRestriction 中傳遞 NULL。

lpContainerList

[in]項目標識子陣列的指標,代表要包含在搜尋中的容器。 如果用戶端在 lpContainerList 參數中傳遞 NULL,則最近用來搜尋此容器的專案標識碼會用於新的搜尋。 用戶端不應該在 lpContainerList 中傳遞 NULL,以進行容器中的第一個搜尋。

ulSearchFlags

[in]控制搜尋執行方式的旗標位掩碼。 您可以設定下列旗標:

BACKGROUND_SEARCH

相對於其他搜尋,搜尋應該以一般優先順序執行。 這個旗標無法與FOREGROUND_SEARCH旗標同時設定。

FOREGROUND_SEARCH

相對於其他搜尋,搜尋應該以高優先順序執行。 這個旗標無法與BACKGROUND_SEARCH旗標同時設定。

NON_CONTENT_INDEXED_SEARCH

搜尋不應使用內容索引來尋找相符的專案。 此旗標僅適用於 Exchange 商店。

RECURSIVE_SEARCH

搜尋應該包含 lpContainerList 參數中指定的容器及其所有子容器。 這個旗標無法與SHALLOW_SEARCH旗標同時設定。

RESTART_SEARCH

如果這是第一次呼叫 SetSearchCriteria,則應該起始搜尋,如果搜尋為非使用中,則應重新啟動搜尋。 這個旗標不能與STOP_SEARCH旗標同時設定。

SHALLOW_SEARCH

搜尋應該只會在 lpContainerList 參數中指定的容器中查看比對專案。 這個旗標無法與RECURSIVE_SEARCH旗標同時設定。

STOP_SEARCH

搜尋應該會停止。 這個旗標無法與RESTART_SEARCH旗標同時設定。

傳回值

S_OK

搜尋準則已成功設定。

MAPI_E_TOO_COMPLEX

服務提供者不支援指定的搜尋準則。

註解

IMAPIContainer::SetSearchCriteria 方法會為支持搜尋的容器建立搜尋準則,通常是 search-results 資料夾。 search-results 資料夾包含符合搜尋準則之訊息的連結;實際訊息仍會儲存在其原始位置。 search-results 資料夾中唯一包含的數據是其內容數據表。 在套用搜尋限制之後,search-results 資料夾的內容表具有訊息存放區的合併內容。

搜尋作業只適用於這個合併的內容數據表;它不會搜尋其他搜尋結果資料夾。 搜尋結果只會傳回符合搜尋準則的訊息;不會傳回資料夾階層。

搜尋完成時,控制權會傳回給用戶端。

實作者注意事項

通訊簿容器會藉由將限制套用至其內容數據表來建立搜尋準則。 如需搜尋準則和通訊簿容器的詳細資訊,請參閱 實作進階搜尋

您應該支援在 search-results 資料夾內的訊息上開啟、複製、移動和刪除作業,而不是在 search-results 資料夾本身。 不允許在 search-results 資料夾內建立或複製訊息。

呼叫者注意事項

若要搜尋郵件收件者,請將 lpRestriction 設定為指向 SSubRestriction 結構中 ulSubObject 成員設為 PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) 的子物件限制。 若要搜尋附件,請將 ulSubObject 成員設定為 PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) 。 將 lpRes 成員設定為指向屬性限制,以描述收件者或附件的搜尋準則。

例如,若要尋找擴展名為 .mss 的檔案附件,請將 ulSubObject 設定為 PR_MESSAGE_ATTACHMENTS ,並將 lpRes 設定為符合 PR_ATTACH_EXTENSION (PidTagAttachExtension) 與 .mss 的屬性限制。

ulSearchFlags 參數中設定 FOREGROUND_SEARCH 旗標可能會導致系統效能降低。

您可以使用 SetSearchCriteria 來變更已在進行中搜尋的搜尋準則。 您可以指定新的限制、要搜尋的新資料夾清單,以及新的搜尋優先順序,例如將搜尋升級為較高的優先順序。 搜尋優先順序的變更不會導致現有搜尋重新啟動,但搜尋準則的其他變更可以。

當您使用 search-results 資料夾時,可以刪除該資料夾,或讓它保持開啟狀態以供稍後使用。 如果您刪除 search-results 資料夾,則只會刪除訊息連結。 實際的訊息會保留在其父資料夾中。

如需 search-results 資料夾的詳細資訊,請參閱 MAPI 搜尋資料夾

MFCMAPI 參考

如需 MFCMAPI 範例程式代碼,請參閱下表。

檔案 Function Comment
HierarchyTableDlg.cpp
CHierarchyTableDlg::OnEditSearchCriteria
MFCMAPI 會使用 IMAPIContainer::SetSearchCriteria 方法,在使用者編輯資料夾之後撰寫資料夾的搜尋準則。

另請參閱

IMAPIContainer::GetContentsTable

IMAPIContainer::OpenEntry

IMAPIFolder::CreateFolder

IMAPIFolder:IMAPIContainer

SPropertyRestriction

SRestriction

SSubRestriction

IMAPIContainer:IMAPIProp

MFCMAPI 作為程式碼範例