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

另请参阅

ADSI 错误代码

IDirectorySearch

IDirectorySearch::CloseSearchHandle

IDirectorySearch::GetFirstRow

IDirectorySearch::GetNextRow