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

要求資料的屬性名稱陣列。 如果 為 NulldwNumberAttributes 必須是 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

另請參閱

ADSI 錯誤碼

IDirectorySearch

IDirectorySearch::CloseSearchHandle

IDirectorySearch::GetFirstRow

IDirectorySearch::GetNextRow