Win32 API 日本語リファレンス
ホームNetworkManagement.NetworkPolicyServer › ISdoDictionaryOld

ISdoDictionaryOld

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

メソッド 5

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

vtbl 7 HRESULT EnumAttributes(VARIANT* Id, VARIANT* pValues)
IdVARIANT*inout列挙の起点や条件を指定するVARIANT。
pValuesVARIANT*out列挙された属性値の一覧を格納するVARIANTを受け取る。
vtbl 8 HRESULT GetAttributeInfo(ATTRIBUTEID Id, VARIANT* pInfoIDs, VARIANT* pInfoValues)
IdATTRIBUTEIDin情報を取得する属性のID(ATTRIBUTEID)。
pInfoIDsVARIANT*in属性情報の項目IDを列挙したVARIANTを受け取る。
pInfoValuesVARIANT*out属性情報の各値を列挙したVARIANTを受け取る。
vtbl 9 HRESULT EnumAttributeValues(ATTRIBUTEID Id, VARIANT* pValueIds, VARIANT* pValuesDesc)
IdATTRIBUTEIDin値を列挙する属性のID(ATTRIBUTEID)。
pValueIdsVARIANT*out属性が取り得る値のIDを列挙したVARIANTを受け取る。
pValuesDescVARIANT*out各値の説明文字列を列挙したVARIANTを受け取る。
vtbl 10 HRESULT CreateAttribute(ATTRIBUTEID Id, IDispatch** ppAttributeObject)
IdATTRIBUTEIDin生成する属性オブジェクトのID(ATTRIBUTEID)。
ppAttributeObjectIDispatch**out生成された属性オブジェクトのIDispatchを受け取る。
vtbl 11 HRESULT GetAttributeID(LPWSTR bstrAttributeName, ATTRIBUTEID* pId)
bstrAttributeNameLPWSTRinIDを取得する属性の名前のBSTR。
pIdATTRIBUTEID*out対応する属性のID(ATTRIBUTEID)を受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_ISdoDictionaryOld "{D432E5F4-53D8-11D2-9A3A-00C04FB998AC}"
#usecom global ISdoDictionaryOld IID_ISdoDictionaryOld "{}"
#comfunc global ISdoDictionaryOld_EnumAttributes       7 var,var
#comfunc global ISdoDictionaryOld_GetAttributeInfo     8 int,var,var
#comfunc global ISdoDictionaryOld_EnumAttributeValues  9 int,var,var
#comfunc global ISdoDictionaryOld_CreateAttribute      10 int,sptr
#comfunc global ISdoDictionaryOld_GetAttributeID       11 wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。