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" は、それぞれ年、月、日、時間、分、秒です。 この形式では、たとえば"1999 年 5 月 13 10:20:00" は "990513102000Z" になります。 最後の文字 "Z" は必須の構文であり、Zulu Time またはユニバーサル協定時刻を示します。

呼び出し元は IDirectorySearch::CloseSearchHandle を呼び出して、検索ハンドルと結果に割り当てられたメモリを解放する必要があります。

dwNumberAttributes に対して 0xFFFFFFFF の特別な値を使用する場合、ADsPath または distinguishedName の LDAP 取得には余分なリソースや時間コストはありません。

次の 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
ヘッダー iads.h
[DLL] Activeds.dll;Adsldp.dll;Adsldpc.dll

関連項目

ADSI エラー コード

IDirectorySearch

IDirectorySearch::CloseSearchHandle

IDirectorySearch::GetFirstRow

IDirectorySearch::GetNextRow