Platform SDK: Active Directory, ADSI, and Directory Services |
The IDirectorySearch::ExecuteSearch method executes a search and passes the results to the caller. Some providers, such as LDAP, will defer the actual execution until the caller invokes the IDirectorySearch::GetFirstRow method or the IDirectorySearch::GetNextRow method.
HRESULT ExecuteSearch( LPWSTR pszSearchFilter, LPWSTR * pAttributeNames, DWORD dwNumberAttributes, PADS_SEARCH_HANDLE phSearchHandle );
This method returns the standard return values, as well as the following:
For other return values, see ADSI Error Codes.
When the search filter (pszSearchFilter) contains an attribute of ADS_UTC_TIME type, it value must be of the "yymmddhhmmssZ" format where "y", "m", "d", "h", "m" and "s" stand for year, month, day, hour, minute, and second, respectively. In this format, for example, "10:20:00 May 13th, 1999" become "990513102000Z". The final letter "Z" is the required syntax and stands for Zulu Time or Universal Coordinated Time.
The caller is responsible for calling IDirectorySearch::CloseSearchHandle to release the memory allocated for the search handle and the result.
The following C++ code snippet illustrates how to invoke IDirectorySearch::ExecuteSearch.
LPWSTR pszAttr[] = { L"ADsPath", L"Name", L"samAccountName" }; ADS_SEARCH_HANDLE hSearch; DWORD dwCount= sizeof(pszAttr)/sizeof(LPWSTR); // Search for all users with a last name that starts with h. hr = m_pSearch->ExecuteSearch(L"(&(objectClass=user)(sn=h*))", pszAttr, dwCount, &hSearch );
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with DSClient).
Windows 95/98: Requires Windows 95 or later (with DSClient).
Header: Declared in Iads.h.
IDirectorySearch, IDirectorySearch::GetFirstRow, IDirectorySearch::GetNextRow, IDirectorySearch::CloseSearchHandle, IDirectorySearch::ExecuteSearch, ADSI Error Codes