IDirectorySearch::ExecuteSearch-Methode (iads.h)
Die IDirectorySearch::ExecuteSearch-Methode führt eine Suche aus und übergibt die Ergebnisse an den Aufrufer. Einige Anbieter, z. B. LDAP, verzögern die tatsächliche Ausführung, bis der Aufrufer die IDirectorySearch::GetFirstRow-Methode oder die IDirectorySearch::GetNextRow-Methode aufruft.
Syntax
HRESULT ExecuteSearch(
[in] LPWSTR pszSearchFilter,
[in] LPWSTR *pAttributeNames,
[in] DWORD dwNumberAttributes,
[out] PADS_SEARCH_HANDLE phSearchResult
);
Parameter
[in] pszSearchFilter
Eine Suchfilterzeichenfolge im LDAP-Format, z. B. "(objectClass=user)".
[in] pAttributeNames
Ein Array von Attributnamen, für die Daten angefordert werden. Bei NULL muss dwNumberAttributes 0 oder 0xFFFFFFFF sein.
[in] dwNumberAttributes
Die Größe des pAttributeNames-Arrays . Der spezielle Wert 0xFFFFFFFF gibt an, dass pAttributeNames ignoriert wird und NULL sein kann. Dieser besondere Wert bedeutet, dass alle attribute, die festgelegt werden, angefordert werden. Wenn dieser Wert 0 ist, kann das pAttributeNames-ArrayNULL sein. Es wird kein Attribut angefordert.
[out] phSearchResult
Die Adresse eines methodenseitig zugeordneten Handles für den Suchkontext. Der Aufrufer übergibt dieses Handle an andere Methoden von IDirectorySearch , um das Suchergebnis zu untersuchen. Bei NULL kann die Suche nicht ausgeführt werden.
Rückgabewert
Diese Methode gibt die Standardrückgabewerte sowie Folgendes zurück:
Weitere Informationen und andere Rückgabewerte finden Sie unter ADSI-Fehlercodes.
Hinweise
Wenn der Suchfilter (pszSearchFilter) ein Attribut ADS_UTC_TIME Typs enthält, muss der Wert das Format "yymmddhhmmssZ" aufweisen, wobei "y", "m", "d", "h", "m" und "s" für Jahr, Monat, Tag, Stunde, Minute und Sekunde stehen. In diesem Format wird beispielsweise "10:20:0013 Mai 1999" zu "990513102000Z". Der letzte Buchstabe "Z" ist die erforderliche Syntax und wird als Zulu-Zeit oder universelle koordinierte Zeit angegeben.
Der Aufrufer muss IDirectorySearch::CloseSearchHandle aufrufen, um den für das Suchhandle und das Ergebnis zugewiesenen Arbeitsspeicher freizugeben.
Wenn Sie den speziellen Wert von 0xFFFFFFFF für dwNumberAttributes verwenden, hat der LDAP-Abruf von ADsPath oder distinguishedName keine zusätzlichen Ressourcen- oder Zeitkosten.
Beispiele
Das folgende C++-Codebeispiel zeigt, wie IDirectorySearch::ExecuteSearch aufgerufen wird.
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 );
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
DLL | Activeds.dll; Adsldp.dll; Adsldpc.dll |