使用 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 设置使搜索包含执行搜索的点下方树中的所有分支。