IDirectorySearch::GetNextRow 方法 (iads.h)

GetNextRow 方法获取搜索结果的下一行。 如果尚未调用 IDirectorySearch::GetFirstRow则 GetNextRow 将从第一行开始发出新搜索。 否则,此方法将前进到下一行。

语法

HRESULT GetNextRow(
  [in] ADS_SEARCH_HANDLE hSearchResult
);

parameters

[in] hSearchResult

包含通过调用 IDirectorySearch::ExecuteSearch 获取的搜索句柄。

返回值

此方法返回标准返回值以及以下内容:

有关详细信息,请参阅 ADSI 错误代码

注解

如果未设置 ADS_SEARCHPREF_CACHE_RESULTS 标志,则只允许向前滚动,因为客户端可能不会缓存所有查询结果。

目录提供程序可能会限制搜索中可用的最大行数。 例如,在 Windows 域上,Active Directory 搜索中将提供的最大行数为 1000 行。 如果搜索结果超出行限制,则必须执行分页搜索以获取搜索中的所有行。 有关分页搜索的详细信息,请参阅 使用 IDirectorySearch 分页

示例

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

另请参阅

ADSI 错误代码

ADsGetLastError

IDirectorySearch

IDirectorySearch::ExecuteSearch

IDirectorySearch::GetFirstRow