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

IADsPathname

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

メソッド 11

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

vtbl 7 HRESULT Set(LPWSTR bstrADsPath, INT lnSetType)
bstrADsPathLPWSTRin解析対象として設定するADsパス文字列。BSTRで指定する。
lnSetTypeINTinパスの種類を示すフラグ。ADS_SETTYPE_ENUM(FULL/DN/PROVIDER/SERVER等)で指定する。
vtbl 8 HRESULT SetDisplayType(INT lnDisplayType)
lnDisplayTypeINTinパス取得時の表示形式を示すフラグ。ADS_DISPLAY_ENUM(FULL/VALUE_ONLY)で指定する。
vtbl 9 HRESULT Retrieve(INT lnFormatType, LPWSTR* pbstrADsPath)
lnFormatTypeINTin取得するパスの書式を示すフラグ。ADS_FORMAT_ENUMで指定する。
pbstrADsPathLPWSTR*out整形されたADsパス文字列を受け取る出力BSTRポインタ。
vtbl 10 HRESULT GetNumElements(INT* plnNumPathElements)
plnNumPathElementsINT*outパスを構成する要素の個数を受け取る出力ポインタ。
vtbl 11 HRESULT GetElement(INT lnElementIndex, LPWSTR* pbstrElement)
lnElementIndexINTin取得する要素の0始まりインデックス。
pbstrElementLPWSTR*out指定インデックスのパス要素文字列を受け取る出力BSTRポインタ。
vtbl 12 HRESULT AddLeafElement(LPWSTR bstrLeafElement)
bstrLeafElementLPWSTRin現在のパスの末尾に追加するリーフ要素文字列。BSTRで指定する。
vtbl 13 HRESULT RemoveLeafElement()
vtbl 14 HRESULT CopyPath(IDispatch** ppAdsPath)
ppAdsPathIDispatch**out現在のパスを複製した新しいIADsPathnameオブジェクトをIDispatchとして受け取る出力ポインタ。
vtbl 15 HRESULT GetEscapedElement(INT lnReserved, LPWSTR bstrInStr, LPWSTR* pbstrOutStr)
lnReservedINTin予約済みパラメータ。0を指定する。
bstrInStrLPWSTRinエスケープ処理を行う入力文字列。BSTRで指定する。
pbstrOutStrLPWSTR*outエスケープ処理後の文字列を受け取る出力BSTRポインタ。
vtbl 16 HRESULT get_EscapedMode(INT* retval)
retvalINT*out現在のエスケープモード設定(整数)を受け取る出力ポインタ。ADS_ESCAPE_MODE_ENUMの値。
vtbl 17 HRESULT put_EscapedMode(INT lnEscapedMode)
lnEscapedModeINTin設定するエスケープモード。ADS_ESCAPE_MODE_ENUMの値で指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IADsPathname "{D592AED4-F420-11D0-A36E-00C04FB950DC}"
#usecom global IADsPathname IID_IADsPathname "{}"
#comfunc global IADsPathname_Set                7 wstr,int
#comfunc global IADsPathname_SetDisplayType     8 int
#comfunc global IADsPathname_Retrieve           9 int,var
#comfunc global IADsPathname_GetNumElements     10 var
#comfunc global IADsPathname_GetElement         11 int,var
#comfunc global IADsPathname_AddLeafElement     12 wstr
#comfunc global IADsPathname_RemoveLeafElement  13
#comfunc global IADsPathname_CopyPath           14 sptr
#comfunc global IADsPathname_GetEscapedElement  15 int,wstr,var
#comfunc global IADsPathname_get_EscapedMode    16 var
#comfunc global IADsPathname_put_EscapedMode    17 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。