次の方法で共有


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