Usar el método SetSearchPreference
Al llamar al método IDirectorySearch::SetSearchPreference , se cambia la forma en que se obtienen los resultados de la búsqueda y se presentan a través de la interfaz IDirectorySearch .
La documentación del SDK define SetSearchPreference de la siguiente manera:
HRESULT SetSearchPreference(
//Search preferences to be set.
PADS_SEARCHPREF_INFO pSearchPrefs,
//Number of preferences.
DWORD dwNumPrefs
);
Se pueden establecer varias preferencias pasando una matriz como primer parámetro y el tamaño de la matriz como segundo parámetro.
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);
En este ejemplo se establece el tamaño de página en 100 filas y el ámbito en el tipo ADS_SCOPE_SUBTREE. La configuración de tamaño de página hace que el servidor devuelva inmediatamente los datos al cliente, después de haber calculado 100 filas. La configuración de ADS_SCOPE_SUBTREE hace que la búsqueda abarque todas las ramas del árbol debajo del punto desde el que se ejecuta la búsqueda.