SetSearchPreference メソッドの使用
IDirectorySearch::SetSearchPreference メソッドを呼び出すと、IDirectorySearch インターフェイスを介して検索結果を取得して表示する方法が変更されます。
SDK のドキュメントでは、SetSearchPreference が次のように定義されています。
HRESULT SetSearchPreference(
//Search preferences to be set.
PADS_SEARCHPREF_INFO pSearchPrefs,
//Number of preferences.
DWORD dwNumPrefs
);
1 つ目のパラメーターとして配列を渡し、配列サイズを 2 番目のパラメーターとして渡すことで、複数の基本設定を設定できます。
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 行が計算された後、サーバーは直ちにデータをクライアントに返します。 The ADS_SCOPE_SUBTREE 設定により、検索の実行元となるポイントの下にあるツリー内のすべてのブランチが検索対象になります。