SetSearchPreference 메서드 사용

IDirectorySearch::SetSearchPreference 메서드를 호출하면 IDirectorySearch 인터페이스를 통해 검색 결과를 가져오고 표시하는 방식이 변경됩니다.

SDK 설명서는 다음과 같이 SetSearchPreference정의합니다.

HRESULT SetSearchPreference(
            //Search preferences to be set.
            PADS_SEARCHPREF_INFO pSearchPrefs,
            //Number of preferences.
            DWORD dwNumPrefs
            );

배열을 첫 번째 매개 변수로 전달하고 배열 크기를 두 번째 매개 변수로 전달하여 여러 기본 설정을 지정할 수 있습니다.

ADS_SEARCHPREF_INFO arSearchPrefs[2];
 
arSearchPrefs[0].dwSearchPref = ADS_SEARCHPREF_PAGESIZE; 
arSearchPrefs[0].vValue.dwType = ADSTYPE_INTEGER;
arSearchPrefs[0].vValue.Integer = 100;
 
arSearchPrefs[1].dwSearchPref = ADS_SEARCHPREF_SEARCH_SCOPE; 
arSearchPrefs[1].vValue.dwType = ADSTYPE_INTEGER; 
arSearchPrefs[1].vValue.Integer = ADS_SCOPE_SUBTREE; 
 
hr = pDSearch->SetSearchPreference(&arSearchPrefs, 2);

다음은 페이지 크기를 100개 행으로 설정하고 범위를 ADS_SCOPE_SUBTREE 형식으로 설정하는 예제입니다. 페이지 크기 설정을 사용하면 100개 행이 계산된 후 서버가 즉시 클라이언트로 데이터를 반환합니다. ADS_SCOPE_SUBTREE 설정을 사용하면 검색이 실행되고 있는 지점 아래 트리의 모든 분기가 검색됩니다.