ホーム › System.Mmc › IComponentData
IComponentData
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pUnknown | IUnknown* | in | MMC が提供する IConsoleNameSpace や IConsole 等を取得するための IUnknown インターフェイスへのポインタである。 |
vtbl 4 HRESULT CreateComponent(IComponent** ppComponent)
| ppComponent | IComponent** | out | 結果ペインを管理する新しい IComponent インスタンスを受け取るポインタである。 |
vtbl 5 HRESULT Notify(IDataObject* lpDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param3)
| lpDataObject | IDataObject* | in | 通知の対象となるデータオブジェクト (IDataObject) へのポインタである。 |
| event | MMC_NOTIFY_TYPE | in | 発生したイベントの種類を示す MMC_NOTIFY_TYPE 値である。 |
| arg | LPARAM | in | イベントに付随する引数で、その意味はイベントの種類により異なる。 |
| param3 | LPARAM | in | イベントに付随する追加パラメータで、その意味はイベントの種類により異なる。 |
vtbl 6 HRESULT Destroy()
vtbl 7 HRESULT QueryDataObject(INT_PTR cookie, DATA_OBJECT_TYPES type, IDataObject** ppDataObject)
| cookie | INT_PTR | in | 対象項目を識別するクッキー値を指定する。 |
| type | DATA_OBJECT_TYPES | in | 要求するデータオブジェクトの種類 (スコープ・結果) を示す DATA_OBJECT_TYPES 値である。 |
| ppDataObject | IDataObject** | out | 指定項目を表すデータオブジェクト (IDataObject) を受け取るポインタである。 |
vtbl 8 HRESULT GetDisplayInfo(SCOPEDATAITEM* pScopeDataItem)
| pScopeDataItem | SCOPEDATAITEM* | inout | 表示情報を要求・設定するスコープ項目を記述する SCOPEDATAITEM 構造体へのポインタである。 |
vtbl 9 HRESULT CompareObjects(IDataObject* lpDataObjectA, IDataObject* lpDataObjectB)
| lpDataObjectA | IDataObject* | in | 比較する一方のデータオブジェクト (IDataObject) へのポインタである。 |
| lpDataObjectB | IDataObject* | in | 比較するもう一方のデータオブジェクト (IDataObject) へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IComponentData "{955AB28A-5218-11D0-A985-00C04FD8D565}" #usecom global IComponentData IID_IComponentData "{}" #comfunc global IComponentData_Initialize 3 sptr #comfunc global IComponentData_CreateComponent 4 sptr #comfunc global IComponentData_Notify 5 sptr,int,sptr,sptr #comfunc global IComponentData_Destroy 6 #comfunc global IComponentData_QueryDataObject 7 sptr,int,sptr #comfunc global IComponentData_GetDisplayInfo 8 var #comfunc global IComponentData_CompareObjects 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IComponentData "{955AB28A-5218-11D0-A985-00C04FD8D565}" #usecom global IComponentData IID_IComponentData "{}" #comfunc global IComponentData_Initialize 3 sptr #comfunc global IComponentData_CreateComponent 4 sptr #comfunc global IComponentData_Notify 5 sptr,int,sptr,sptr #comfunc global IComponentData_Destroy 6 #comfunc global IComponentData_QueryDataObject 7 sptr,int,sptr #comfunc global IComponentData_GetDisplayInfo 8 sptr #comfunc global IComponentData_CompareObjects 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。