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 설정을 사용하면 검색이 실행되고 있는 지점 아래 트리의 모든 분기가 검색됩니다.