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


Метод 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

См. также раздел

Коды ошибок ADSI

IDirectorySearch

IDirectorySearch::CloseSearchHandle

IDirectorySearch::GetFirstRow

IDirectorySearch::GetNextRow