ホーム › Security.Authorization › IAzBizRuleInterfaces
IAzBizRuleInterfaces
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 6
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| bstrInterfaceName | LPWSTR | in | 追加するインタフェースの名前をBSTRで指定する。 |
| lInterfaceFlag | INT | in | インタフェースに関連付けるフラグを指定する。 |
| varInterface | VARIANT | in | 追加するインタフェースオブジェクト(IDispatch等)をVARIANTで指定する。 |
vtbl 8 HRESULT AddInterfaces(VARIANT varInterfaceNames, VARIANT varInterfaceFlags, VARIANT varInterfaces)
| varInterfaceNames | VARIANT | in | 追加する複数のインタフェース名の配列をVARIANTで指定する。 |
| varInterfaceFlags | VARIANT | in | 各インタフェースに対応するフラグの配列をVARIANTで指定する。 |
| varInterfaces | VARIANT | in | 追加するインタフェースオブジェクトの配列をVARIANTで指定する。 |
vtbl 9 HRESULT GetInterfaceValue(LPWSTR bstrInterfaceName, INT* lInterfaceFlag, VARIANT* varInterface)
| bstrInterfaceName | LPWSTR | in | 値を取得するインタフェースの名前をBSTRで指定する。 |
| lInterfaceFlag | INT* | out | 指定したインタフェースに関連付けられたフラグを受け取るポインタである。 |
| varInterface | VARIANT* | out | 指定したインタフェースのオブジェクトを格納したVARIANTを受け取るポインタである。 |
| bstrInterfaceName | LPWSTR | in | 削除するインタフェースの名前をBSTRで指定する。 |
vtbl 11 HRESULT RemoveAll()
| plCount | DWORD* | out | コレクションに含まれるインタフェースの数を受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IAzBizRuleInterfaces "{E94128C7-E9DA-44CC-B0BD-53036F3AAB3D}" #usecom global IAzBizRuleInterfaces IID_IAzBizRuleInterfaces "{}" #comfunc global IAzBizRuleInterfaces_AddInterface 7 wstr,int,int #comfunc global IAzBizRuleInterfaces_AddInterfaces 8 int,int,int #comfunc global IAzBizRuleInterfaces_GetInterfaceValue 9 wstr,var,var #comfunc global IAzBizRuleInterfaces_Remove 10 wstr #comfunc global IAzBizRuleInterfaces_RemoveAll 11 #comfunc global IAzBizRuleInterfaces_get_Count 12 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IAzBizRuleInterfaces "{E94128C7-E9DA-44CC-B0BD-53036F3AAB3D}" #usecom global IAzBizRuleInterfaces IID_IAzBizRuleInterfaces "{}" #comfunc global IAzBizRuleInterfaces_AddInterface 7 wstr,int,int #comfunc global IAzBizRuleInterfaces_AddInterfaces 8 int,int,int #comfunc global IAzBizRuleInterfaces_GetInterfaceValue 9 wstr,sptr,sptr #comfunc global IAzBizRuleInterfaces_Remove 10 wstr #comfunc global IAzBizRuleInterfaces_RemoveAll 11 #comfunc global IAzBizRuleInterfaces_get_Count 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。