Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › IADs

IADs

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDfd8256d0-fd15-11ce-abc4-02608c9e7553継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 13

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Name(LPWSTR* retval)
retvalLPWSTR*outオブジェクトの相対名を示す文字列を受け取る出力ポインタ。
vtbl 8 HRESULT get_Class(LPWSTR* retval)
retvalLPWSTR*outオブジェクトのスキーマクラス名を示す文字列を受け取る出力ポインタ。
vtbl 9 HRESULT get_GUID(LPWSTR* retval)
retvalLPWSTR*outオブジェクトのGUIDを文字列形式で受け取る出力ポインタ。
vtbl 10 HRESULT get_ADsPath(LPWSTR* retval)
retvalLPWSTR*outオブジェクトのADsパス(バインド用文字列)を受け取る出力ポインタ。
vtbl 11 HRESULT get_Parent(LPWSTR* retval)
retvalLPWSTR*out親コンテナのADsパスを示す文字列を受け取る出力ポインタ。
vtbl 12 HRESULT get_Schema(LPWSTR* retval)
retvalLPWSTR*outオブジェクトのスキーマ定義のADsパスを受け取る出力ポインタ。
vtbl 13 HRESULT GetInfo()
vtbl 14 HRESULT SetInfo()
vtbl 15 HRESULT Get(LPWSTR bstrName, VARIANT* pvProp)
bstrNameLPWSTRin取得する属性の名前を示す文字列。
pvPropVARIANT*out取得した属性値を格納するVARIANTへのポインタ。
vtbl 16 HRESULT Put(LPWSTR bstrName, VARIANT vProp)
bstrNameLPWSTRin設定する属性の名前を示す文字列。
vPropVARIANTin属性に設定する値を保持するVARIANT。
vtbl 17 HRESULT GetEx(LPWSTR bstrName, VARIANT* pvProp)
bstrNameLPWSTRin取得する属性の名前を示す文字列。
pvPropVARIANT*out取得した属性値(複数値は配列)を格納するVARIANTへのポインタ。
vtbl 18 HRESULT PutEx(INT lnControlCode, LPWSTR bstrName, VARIANT vProp)
lnControlCodeINTin操作種別(追加/更新/削除など)を示す制御コード。
bstrNameLPWSTRin操作対象の属性名を示す文字列。
vPropVARIANTin操作に用いる値を保持するVARIANT。
vtbl 19 HRESULT GetInfoEx(VARIANT vProperties, INT lnReserved)
vPropertiesVARIANTinキャッシュへ読み込む属性名の配列を保持するVARIANT。
lnReservedINTin予約パラメータ。0を指定する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IADs "{FD8256D0-FD15-11CE-ABC4-02608C9E7553}"
#usecom global IADs IID_IADs "{}"
#comfunc global IADs_get_Name     7 var
#comfunc global IADs_get_Class    8 var
#comfunc global IADs_get_GUID     9 var
#comfunc global IADs_get_ADsPath  10 var
#comfunc global IADs_get_Parent   11 var
#comfunc global IADs_get_Schema   12 var
#comfunc global IADs_GetInfo      13
#comfunc global IADs_SetInfo      14
#comfunc global IADs_Get          15 wstr,var
#comfunc global IADs_Put          16 wstr,int
#comfunc global IADs_GetEx        17 wstr,var
#comfunc global IADs_PutEx        18 int,wstr,int
#comfunc global IADs_GetInfoEx    19 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。