Метод IDirectorySearch::ExecuteSearch (iads.h)
Метод IDirectorySearch::ExecuteSearch выполняет поиск и передает результаты вызывающей объекту. Некоторые поставщики, например LDAP, откладывают фактическое выполнение до тех пор, пока вызывающий объект не вызовет метод IDirectorySearch::GetFirstRow или метод IDirectorySearch::GetNextRow .
Синтаксис
HRESULT ExecuteSearch(
[in] LPWSTR pszSearchFilter,
[in] LPWSTR *pAttributeNames,
[in] DWORD dwNumberAttributes,
[out] PADS_SEARCH_HANDLE phSearchResult
);
Параметры
[in] pszSearchFilter
Строка фильтра поиска в формате LDAP, например "(objectClass=user)".
[in] pAttributeNames
Массив имен атрибутов, для которых запрашивается данные. Если значение РАВНО NULL, dwNumberAttributes должно иметь значение 0 или 0xFFFFFFFF.
[in] dwNumberAttributes
Размер массива pAttributeNames . Специальное значение 0xFFFFFFFF указывает, что pAttributeNames игнорируется и может иметь значение NULL. Это специальное значение означает, что запрашиваются все заданные атрибуты. Если это значение равно 0, массив pAttributeNames может иметь значение NULL. Атрибут не запрашивается.
[out] phSearchResult
Адрес дескриптора, выделенного методом, для контекста поиска. Вызывающий объект передает этот дескриптор другим методам IDirectorySearch для проверки результата поиска. Если значение РАВНО NULL, поиск не может быть выполнен.
Возвращаемое значение
Этот метод возвращает стандартные возвращаемые значения, а также следующие:
Дополнительные сведения и другие возвращаемые значения см. в разделе Коды ошибок ADSI.
Комментарии
Если фильтр поиска (pszSearchFilter) содержит атрибут ADS_UTC_TIME типа, его значение должно иметь формат "yymmddhhmmssZ", где "y", "m", "d", "h", "m" и "s" — это год, месяц, день, час, минута и секунда соответственно. В этом формате, например, "10:20:0013 мая 1999 года" становится "990513102000Z". Последняя буква "Z" является обязательным синтаксисом и указывает время Zulu или универсальное скоординированное время.
Вызывающий объект должен вызвать IDirectorySearch::CloseSearchHandle , чтобы освободить память, выделенную для дескриптора поиска и результата.
При использовании специального значения 0xFFFFFFFF для dwNumberAttributes получение LDAP ADsPath или distinguishedName не имеет дополнительных затрат на ресурсы или время.
Примеры
В следующем примере кода C++ показано, как вызвать IDirectorySearch::ExecuteSearch.
LPWSTR pszAttr[] = { L"ADsPath", L"Name", L"samAccountName" };
ADS_SEARCH_HANDLE hSearch;
DWORD dwCount= sizeof(pszAttr)/sizeof(LPWSTR);
// Search for users with a last name that begins with "h".
hr = m_pSearch->ExecuteSearch(L"(&(objectClass=user)(sn=h*))", pszAttr, dwCount, &hSearch );
Требования
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | iads.h |
DLL | Activeds.dll; Adsldp.dll; Adsldpc.dll |