ホーム › Networking.ActiveDirectory › IDirectorySearch
IDirectorySearch
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT SetSearchPreference(ADS_SEARCHPREF_INFO* pSearchPrefs, DWORD dwNumPrefs)
| pSearchPrefs | ADS_SEARCHPREF_INFO* | in | 検索の動作設定(スコープ・ページサイズ等)の配列を指定する。ADS_SEARCHPREF_INFO*。 |
| dwNumPrefs | DWORD | in | pSearchPrefsの要素数を指定する。 |
vtbl 4 HRESULT ExecuteSearch(LPWSTR pszSearchFilter, LPWSTR* pAttributeNames, DWORD dwNumberAttributes, ADS_SEARCH_HANDLE* phSearchResult)
| pszSearchFilter | LPWSTR | in | LDAP形式の検索フィルター文字列をBSTRで指定する。 |
| pAttributeNames | LPWSTR* | in | 取得する属性名の配列を指定する。全属性取得時はNULL可。 |
| dwNumberAttributes | DWORD | in | pAttributeNamesの要素数を指定する。全属性取得時は(DWORD)-1。 |
| phSearchResult | ADS_SEARCH_HANDLE* | out | 検索結果を識別するハンドルを受け取る出力先。ADS_SEARCH_HANDLE*で返る。 |
vtbl 5 HRESULT AbandonSearch(ADS_SEARCH_HANDLE phSearchResult)
| phSearchResult | ADS_SEARCH_HANDLE | in | 中断する検索を識別するハンドルを指定する。ADS_SEARCH_HANDLE。 |
vtbl 6 HRESULT GetFirstRow(ADS_SEARCH_HANDLE hSearchResult)
| hSearchResult | ADS_SEARCH_HANDLE | in | 対象の検索ハンドルを指定し、カーソルを先頭行へ移動する。ADS_SEARCH_HANDLE。 |
vtbl 7 HRESULT GetNextRow(ADS_SEARCH_HANDLE hSearchResult)
| hSearchResult | ADS_SEARCH_HANDLE | in | 対象の検索ハンドルを指定し、カーソルを次の行へ進める。ADS_SEARCH_HANDLE。 |
vtbl 8 HRESULT GetPreviousRow(ADS_SEARCH_HANDLE hSearchResult)
| hSearchResult | ADS_SEARCH_HANDLE | in | 対象の検索ハンドルを指定し、カーソルを前の行へ戻す。ADS_SEARCH_HANDLE。 |
| hSearchHandle | ADS_SEARCH_HANDLE | in | 対象の検索ハンドルを指定する。ADS_SEARCH_HANDLE。 |
| ppszColumnName | LPWSTR* | out | 現在行の次の列(属性)名を受け取る出力先。LPWSTR*で返る。 |
vtbl 10 HRESULT GetColumn(ADS_SEARCH_HANDLE hSearchResult, LPWSTR szColumnName, ADS_SEARCH_COLUMN* pSearchColumn)
| hSearchResult | ADS_SEARCH_HANDLE | in | 対象の検索ハンドルを指定する。ADS_SEARCH_HANDLE。 |
| szColumnName | LPWSTR | in | 値を取得する列(属性)名をBSTRで指定する。 |
| pSearchColumn | ADS_SEARCH_COLUMN* | out | 取得した列のデータを受け取る出力先。ADS_SEARCH_COLUMN*で返る。 |
vtbl 11 HRESULT FreeColumn(ADS_SEARCH_COLUMN* pSearchColumn)
| pSearchColumn | ADS_SEARCH_COLUMN* | in | GetColumnで確保した列データを解放するため、その構造体を指定する。ADS_SEARCH_COLUMN*。 |
vtbl 12 HRESULT CloseSearchHandle(ADS_SEARCH_HANDLE hSearchResult)
| hSearchResult | ADS_SEARCH_HANDLE | in | 解放する検索結果のハンドルを指定する。ADS_SEARCH_HANDLE。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectorySearch "{109BA8EC-92F0-11D0-A790-00C04FD8D5A8}" #usecom global IDirectorySearch IID_IDirectorySearch "{}" #comfunc global IDirectorySearch_SetSearchPreference 3 var,int #comfunc global IDirectorySearch_ExecuteSearch 4 wstr,var,int,var #comfunc global IDirectorySearch_AbandonSearch 5 sptr #comfunc global IDirectorySearch_GetFirstRow 6 sptr #comfunc global IDirectorySearch_GetNextRow 7 sptr #comfunc global IDirectorySearch_GetPreviousRow 8 sptr #comfunc global IDirectorySearch_GetNextColumnName 9 sptr,var #comfunc global IDirectorySearch_GetColumn 10 sptr,wstr,var #comfunc global IDirectorySearch_FreeColumn 11 var #comfunc global IDirectorySearch_CloseSearchHandle 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectorySearch "{109BA8EC-92F0-11D0-A790-00C04FD8D5A8}" #usecom global IDirectorySearch IID_IDirectorySearch "{}" #comfunc global IDirectorySearch_SetSearchPreference 3 sptr,int #comfunc global IDirectorySearch_ExecuteSearch 4 wstr,sptr,int,sptr #comfunc global IDirectorySearch_AbandonSearch 5 sptr #comfunc global IDirectorySearch_GetFirstRow 6 sptr #comfunc global IDirectorySearch_GetNextRow 7 sptr #comfunc global IDirectorySearch_GetPreviousRow 8 sptr #comfunc global IDirectorySearch_GetNextColumnName 9 sptr,sptr #comfunc global IDirectorySearch_GetColumn 10 sptr,wstr,sptr #comfunc global IDirectorySearch_FreeColumn 11 sptr #comfunc global IDirectorySearch_CloseSearchHandle 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。