Compartir a través de


Procesamiento de los resultados de la búsqueda

Después de la primera llamada a IDirectorySearch::GetFirstRow o IDirectorySearch::GetNextRow, se devuelve S_OK, S_ADS_NOMORE_ROWS o se devuelve un resultado de error.

Si el valor devuelto es S_ADS_NOMORE_ROWS, no se encontraron más objetos que coincidan con el filtro. Si se devuelve un resultado de error, se produjo un error en la consulta. En ambos casos, no es necesario procesar las filas en el resultado porque no se devolvió nada.

Si se devuelve S_OK , se ha recuperado una fila. Puede analizar las columnas por su nombre mediante IDirectorySearch::GetColumn. El nombre es el lDAPDisplayName del atributo de la columna. El conjunto de todas las columnas se definió mediante el parámetro pAttributeNames del método IDirectorySearch::ExecuteSearch . Si se especificó NULL , el conjunto de todas las columnas es la unión de todas las propiedades encontradas para todos los objetos devueltos. Para leer todo el conjunto de columnas devueltas para un objeto, use IDirectorySearch::GetNextColumnName para iterar cada columna y use el nombre de columna devuelto para llamar a IDirectorySearch::GetColumn.

El método IDirectorySearch::GetColumn devuelve una estructura ADS_SEARCH_COLUMN que contiene el nombre del atributo, el tipo del atributo, el recuento de valores y un puntero a una matriz de estructuras ADSVALUE que contienen los valores. Puede recorrer en bucle las estructuras ADSVALUE para leer los valores de la propiedad devuelta por la columna. Debe leer el miembro adecuado de la estructura ADSVALUE según el ADSTYPE especificado por el miembro dwADsType de la estructura ADS_SEARCH_COLUMN (o el miembro dwType de la estructura ADSVALUE ). Por ejemplo, si dwADsType fuera ADSTYPE_INTEGER, leería el miembro Entero de cada estructura ADSVALUE .

Para obtener más información y un ejemplo de código, vea Código de ejemplo para buscar usuarios.