다음을 통해 공유


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 검색에 제공될 최대 행 수는 1,000개 행입니다. 검색 결과 행 제한보다 많은 경우 페이징된 검색을 수행하여 검색의 모든 행을 가져와야 합니다. 페이징된 검색에 대한 자세한 내용은 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