iDirectorySearch::ExecuteSearch 方法 (iads.h)
IDirectorySearch::ExecuteSearch方法會執行搜尋,並將結果傳遞至呼叫端。 某些提供者,例如 LDAP 會延遲實際執行,直到呼叫端叫用 IDirectorySearch::GetFirstRow 方法或 IDirectorySearch::GetNextRow 方法為止。
語法
HRESULT ExecuteSearch(
[in] LPWSTR pszSearchFilter,
[in] LPWSTR *pAttributeNames,
[in] DWORD dwNumberAttributes,
[out] PADS_SEARCH_HANDLE phSearchResult
);
參數
[in] pszSearchFilter
LDAP 格式的搜尋篩選字串,例如 「 (objectClass=user) 」。
[in] pAttributeNames
要求資料的屬性名稱陣列。 如果 為 Null, dwNumberAttributes 必須是 0 或 0xFFFFFFFF。
[in] dwNumberAttributes
pAttributeNames陣列的大小。 特殊值0xFFFFFFFF指出 pAttributeNames 會被忽略,而且可以是 Null。 這個特殊值表示要求設定的所有屬性。 如果此值為 0, pAttributeNames 陣列可以是 Null。 不會要求任何屬性。
[out] phSearchResult
方法配置控制碼至搜尋內容的位址。 呼叫端會將此控制碼傳遞給 IDirectorySearch 的其他方法,以檢查搜尋結果。 如果 為 Null,則無法執行搜尋。
傳回值
這個方法會傳回標準傳回值,以及下列專案:
如需詳細資訊和其他傳回值,請參閱 ADSI 錯誤碼。
備註
當搜尋篩選 (pszSearchFilter) 包含 ADS_UTC_TIME 類型的屬性時,其值必須分別為 「yymmddhhmmssZ」 格式,其中 「y」、「m」、「m」、「h」、「m」 和 「s」 分別代表 year、month、day、hour、minute 和 second。 例如,在此格式中,「10:20:00 May 13th, 1999」 會變成 「990513102000Z」。 最後一個字母 「Z」 是必要的語法,並指出 Zulu Time 或 Universal Coordinated Time。
呼叫端必須呼叫 IDirectorySearch::CloseSearchHandle ,以釋放為搜尋控制碼和結果配置的記憶體。
針對 dwNumberAttributes使用0xFFFFFFFF的特殊值時,ADsPath 或 distinguishedName 的 LDAP 擷取沒有額外的資源或時間成本。
範例
下列 C++ 程式碼範例示範如何叫用 IDirectorySearch::ExecuteSearch。
LPWSTR pszAttr[] = { L"ADsPath", L"Name", L"samAccountName" };
ADS_SEARCH_HANDLE hSearch;
DWORD dwCount= sizeof(pszAttr)/sizeof(LPWSTR);
// Search for users with a last name that begins with "h".
hr = m_pSearch->ExecuteSearch(L"(&(objectClass=user)(sn=h*))", pszAttr, dwCount, &hSearch );
需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | iads.h |
Dll | Activeds.dll;Adsldp.dll;Adsldpc.dll |