IEventClass
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDfb2b72a0-7a68-11d1-88f9-0080c7d771bf継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7
メソッド 14
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| pbstrEventClassID | LPWSTR* | out | イベントクラスの識別子を文字列として受け取る。 |
| bstrEventClassID | LPWSTR | in | イベントクラスに設定する識別子を文字列で指定する。 |
| pbstrEventClassName | LPWSTR* | out | イベントクラスの名前を文字列として受け取る。 |
| bstrEventClassName | LPWSTR | in | イベントクラスに設定する名前を文字列で指定する。 |
| pbstrOwnerSID | LPWSTR* | out | イベントクラスの所有者を表す SID を文字列として受け取る。 |
| bstrOwnerSID | LPWSTR | in | イベントクラスの所有者を表す SID を文字列で指定する。 |
vtbl 13 HRESULT get_FiringInterfaceID(LPWSTR* pbstrFiringInterfaceID) | pbstrFiringInterfaceID | LPWSTR* | out | イベントを発行する発火インターフェイスの ID を文字列として受け取る。 |
vtbl 14 HRESULT put_FiringInterfaceID(LPWSTR bstrFiringInterfaceID) | bstrFiringInterfaceID | LPWSTR | in | イベントを発行する発火インターフェイスの ID を文字列で指定する。 |
| pbstrDescription | LPWSTR* | out | イベントクラスの説明文字列を受け取る。 |
| bstrDescription | LPWSTR | in | イベントクラスに設定する説明文字列を指定する。 |
vtbl 17 HRESULT get_CustomConfigCLSID(LPWSTR* pbstrCustomConfigCLSID) | pbstrCustomConfigCLSID | LPWSTR* | out | カスタム構成コンポーネントの CLSID を文字列として受け取る。 |
vtbl 18 HRESULT put_CustomConfigCLSID(LPWSTR bstrCustomConfigCLSID) | bstrCustomConfigCLSID | LPWSTR | in | カスタム構成コンポーネントの CLSID を文字列で指定する。 |
| pbstrTypeLib | LPWSTR* | out | イベントクラスに関連付けられたタイプライブラリのパスまたは識別子を文字列として受け取る。 |
| bstrTypeLib | LPWSTR | in | イベントクラスに関連付けるタイプライブラリのパスまたは識別子を文字列で指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IEventClass "{FB2B72A0-7A68-11D1-88F9-0080C7D771BF}"
#usecom global IEventClass IID_IEventClass "{}"
#comfunc global IEventClass_get_EventClassID 7 var
#comfunc global IEventClass_put_EventClassID 8 wstr
#comfunc global IEventClass_get_EventClassName 9 var
#comfunc global IEventClass_put_EventClassName 10 wstr
#comfunc global IEventClass_get_OwnerSID 11 var
#comfunc global IEventClass_put_OwnerSID 12 wstr
#comfunc global IEventClass_get_FiringInterfaceID 13 var
#comfunc global IEventClass_put_FiringInterfaceID 14 wstr
#comfunc global IEventClass_get_Description 15 var
#comfunc global IEventClass_put_Description 16 wstr
#comfunc global IEventClass_get_CustomConfigCLSID 17 var
#comfunc global IEventClass_put_CustomConfigCLSID 18 wstr
#comfunc global IEventClass_get_TypeLib 19 var
#comfunc global IEventClass_put_TypeLib 20 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IEventClass "{FB2B72A0-7A68-11D1-88F9-0080C7D771BF}"
#usecom global IEventClass IID_IEventClass "{}"
#comfunc global IEventClass_get_EventClassID 7 sptr
#comfunc global IEventClass_put_EventClassID 8 wstr
#comfunc global IEventClass_get_EventClassName 9 sptr
#comfunc global IEventClass_put_EventClassName 10 wstr
#comfunc global IEventClass_get_OwnerSID 11 sptr
#comfunc global IEventClass_put_OwnerSID 12 wstr
#comfunc global IEventClass_get_FiringInterfaceID 13 sptr
#comfunc global IEventClass_put_FiringInterfaceID 14 wstr
#comfunc global IEventClass_get_Description 15 sptr
#comfunc global IEventClass_put_Description 16 wstr
#comfunc global IEventClass_get_CustomConfigCLSID 17 sptr
#comfunc global IEventClass_put_CustomConfigCLSID 18 wstr
#comfunc global IEventClass_get_TypeLib 19 sptr
#comfunc global IEventClass_put_TypeLib 20 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。