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

ISdoDictionaryOld

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

公式ドキュメント

ISdoDictionaryOld インターフェイスは、Remote Access Dial-In User Service (RADIUS) 属性のディクショナリを操作するために使用します。

メソッド 5

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

vtbl 7 HRESULT EnumAttributes(VARIANT* Id, VARIANT* pValues)

EnumAttributes メソッドは、指定した属性の値を取得します。

IdVARIANT*inout

入力時は、列挙する属性を指定する VARIANT へのポインターです。この VARIANT の型 ( V_VT(Id) で得られる型) が VT_EMPTY の場合、 ISdoDictionaryOld::EnumAttributes はすべての属性を列挙します。型が VT_I4 の場合は、その VARIANT の値が、列挙する属性の ID になります。

出力時は、列挙された属性の ID を格納する SAFEARRAY へのポインターです。

pValuesVARIANT*out列挙された属性の値を格納する SAFEARRAY へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

各パラメーターを NULL にすることはできません。

VT(Id) = VT_EMPTY の場合は、すべての属性が返されます。それ以外の場合、VT(Id) は VT_I4 である必要があり、指定された属性のみが取得されます。

メソッドから復帰すると、Id は返された ID の SAFEARRAY となり、pValues は返された値の SAFEARRAY となります。

vtbl 8 HRESULT GetAttributeInfo(ATTRIBUTEID Id, VARIANT* pInfoIDs, VARIANT* pInfoValues)

GetAttributeInfo は、指定した属性の情報を取得します。

IdATTRIBUTEIDin属性の ID を指定します。
pInfoIDsVARIANT*in情報 ID の配列へのポインターです。このポインターを NULL にすることはできません。
pInfoValuesVARIANT*out情報の値を格納する SAFEARRAY へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

Server Data Objects (SDO) はこのメソッドを公開していますが、SDO を使用するうえで必要ではありません。このメソッドの使用は推奨されません。

vtbl 9 HRESULT EnumAttributeValues(ATTRIBUTEID Id, VARIANT* pValueIds, VARIANT* pValuesDesc)

EnumAttributeValues メソッドは、列挙可能な属性の値を取得します。

IdATTRIBUTEIDin属性の ID を指定します。
pValueIdsVARIANT*out正常に復帰した場合、列挙可能な属性の値 ID を格納する SAFEARRAY を指します。属性が列挙可能でない場合は、 VT_EMPTY のバリアントを指します。
pValuesDescVARIANT*out正常に復帰した場合、列挙可能な属性の値の説明を格納する SAFEARRAY を指します。属性が列挙可能でない場合は、 VT_EMPTY のバリアントを指します。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

属性が列挙可能でない場合でも、戻り値は S_OK になります。

vtbl 10 HRESULT CreateAttribute(ATTRIBUTEID Id, IDispatch** ppAttributeObject)

CreateAttribute メソッドは、新しい属性オブジェクトを作成し、その IDispatch インターフェイスを返します。

IdATTRIBUTEIDin列挙型 ATTRIBUTEID の値を指定します。この値は、作成する属性の種類を指定します。
ppAttributeObjectIDispatch**out作成された属性オブジェクトの IDispatch インターフェイスポインターへのポインターを受け取るポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

vtbl 11 HRESULT GetAttributeID(LPWSTR bstrAttributeName, ATTRIBUTEID* pId)

GetAttributeID メソッドは、指定した属性の ID を取得します。

bstrAttributeNameLPWSTRin属性の名前を指定します。この名前は、属性の Lightweight Directory Access Protocol (LDAP) 名または表示名のいずれかです。
pIdATTRIBUTEID*out指定した属性の ID を受け取る ATTRIBUTEID へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが属性を見つけられなかった場合、戻り値は DISP_E_MEMBERNOTFOUND です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

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 不要)。