Поделиться через


Обработка результатов поиска

После первого вызова IDirectorySearch::GetFirstRow или IDirectorySearch::GetNextRow, S_OK, S_ADS_NOMORE_ROWS или возвращается результат ошибки.

Если возвращаемое значение S_ADS_NOMORE_ROWS, больше объектов, соответствующих фильтру, не найдено. Если возвращается результат ошибки, запрос завершился ошибкой. В обоих случаях не требуется обрабатывать строки в результате, так как ничего не было возвращено.

Если возвращается S_OK , извлекается строка. Столбцы можно проанализировать по имени с помощью IDirectorySearch::GetColumn. Имя — lDAPDisplayName атрибута в столбце. Набор всех столбцов был определен параметром pAttributeNames метода IDirectorySearch::ExecuteSearch . Если задано значение NULL , набор всех столбцов является объединением всех свойств, найденных для всех возвращаемых объектов. Чтобы прочитать весь набор столбцов, возвращаемых для объекта, используйте IDirectorySearch::GetNextColumnName для итерации каждого столбца и используйте имя столбца, возвращаемое для вызова IDirectorySearch::GetColumn.

Метод IDirectorySearch::GetColumn возвращает ADS_SEARCH_COLUMN структуру, содержащую имя атрибута, тип атрибута, количество значений и указатель на массив структур ADSVALUE, содержащих значения. Можно прокрутить структуры ADSVALUE , чтобы считывать значения свойства, возвращаемого столбцом. Необходимо прочитать соответствующий элемент структуры ADSVALUE на основе ADSTYPE, указанного членом dwADsType структуры ADS_SEARCH_COLUMN (или члена dwType структуры ADSVALUE). Например, если dwADsType был ADSTYPE_INTEGER, вы считываете целочисленный элемент каждой структуры ADSVALUE.

Дополнительные сведения и пример кода см. в примере кода для поиска пользователей.