Метод IDirectorySearch::GetNextRow (iads.h)
Метод GetNextRow получает следующую строку результата поиска. Если метод IDirectorySearch::GetFirstRow не был вызван, GetNextRow выполнит новый поиск, начиная с первой строки. В противном случае этот метод будет переходить к следующей строке.
Синтаксис
HRESULT GetNextRow(
[in] ADS_SEARCH_HANDLE hSearchResult
);
Параметры
[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 |
Header | iads.h |
DLL | Activeds.dll; Adsldp.dll; Adsldpc.dll |