IDirectorySearch::GetFirstRow 方法 (iads.h)
GetFirstRow 方法获取搜索结果的第一行。 即使以前调用过此方法,此方法也会发出或重新发出新的搜索。
语法
HRESULT GetFirstRow(
[in] ADS_SEARCH_HANDLE hSearchResult
);
参数
[in] hSearchResult
包含通过调用 IDirectorySearch::ExecuteSearch 获取的搜索句柄。
返回值
此方法返回标准返回值以及以下内容:
有关详细信息,请参阅 ADSI 错误代码。
注解
如果未设置 ADS_SEARCHPREF_CACHE_RESULTS 标志(即 FALSE),则只允许向前滚动,因为客户端可能不会缓存所有查询结果。 从同一行多次调用 GetFirstRow 需要一些后滚,并且当结果不保证保留在缓存中时,可能会导致分页或通过 OLE DB 启动的异步搜索产生错误结果。
示例
hr = m_pSearch->ExecuteSearch(L"(objectCategory=contact)", pszAttr, dwCount, &hSearch);
if(SUCCEEDED(hr))
{
while(SUCCEEDED(hr = m_pSearch->GetNextRow(hSearch)))
{
if(S_OK == hr)
{
// Get the data.
}
else if(S_ADS_NOMORE_ROWS == hr)
{
// Call ADsGetLastError to see if the search is waiting for a response.
DWORD dwError = ERROR_SUCCESS;
WCHAR szError[512];
WCHAR szProvider[512];
ADsGetLastError(&dwError, szError, 512, szProvider, 512);
if(ERROR_MORE_DATA != dwError)
{
break;
}
}
else
{
break;
}
}
m_pSearch->CloseSearchHandle(hSearch);
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | iads.h |
DLL | Activeds.dll;Adsldp.dll;Adsldpc.dll |