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
);
parameters
[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 类型的属性时,其值必须为“yymmddhmmssZ”格式,其中“y”、“m”、“d”、“h”、“m”和“s”分别表示年、月、日、小时、分钟和秒。 在此格式中,例如,“1999 年 5 月 13日 10:20:00”变为“990513102000Z”。 最后一个字母“Z”是所需的语法,表示 Zulu Time 或 Universal 协调时间。
调用方必须调用 IDirectorySearch::CloseSearchHandle 以释放为搜索句柄和结果分配的内存。
将 0xFFFFFFFF 的特殊值用于 dwNumberAttributes 时,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 |