ホーム › System.Mmc › IComponent
IComponent
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| lpConsole | IConsole* | in | MMC コンソールが提供する IConsole インターフェイスへのポインタである。 |
vtbl 4 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 | イベントに付随する追加パラメータで、その意味はイベントの種類により異なる。 |
| cookie | INT_PTR | in | 破棄する結果ビューに関連付けられたクッキー値を指定する。 |
vtbl 6 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) を受け取るポインタである。 |
| cookie | INT_PTR | in | 結果ビューの種類を取得する対象項目のクッキー値を指定する。 |
| ppViewType | LPWSTR* | out | 使用する結果ビューの種類 (URL や OCX の CLSID 等) を表す文字列を受け取るポインタである。 |
| pViewOptions | INT* | out | 結果ビューの表示オプションを示すフラグを受け取る整数へのポインタである。 |
vtbl 8 HRESULT GetDisplayInfo(RESULTDATAITEM* pResultDataItem)
| pResultDataItem | RESULTDATAITEM* | inout | 表示情報を要求・設定する結果項目を記述する RESULTDATAITEM 構造体へのポインタである。 |
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_IComponent "{43136EB2-D36C-11CF-ADBC-00AA00A80033}" #usecom global IComponent IID_IComponent "{59DC47A8-116C-11D3-9D8E-00C04F72D980}" #comfunc global IComponent_Initialize 3 sptr #comfunc global IComponent_Notify 4 sptr,int,sptr,sptr #comfunc global IComponent_Destroy 5 sptr #comfunc global IComponent_QueryDataObject 6 sptr,int,sptr #comfunc global IComponent_GetResultViewType 7 sptr,var,var #comfunc global IComponent_GetDisplayInfo 8 var #comfunc global IComponent_CompareObjects 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IComponent "{43136EB2-D36C-11CF-ADBC-00AA00A80033}" #usecom global IComponent IID_IComponent "{59DC47A8-116C-11D3-9D8E-00C04F72D980}" #comfunc global IComponent_Initialize 3 sptr #comfunc global IComponent_Notify 4 sptr,int,sptr,sptr #comfunc global IComponent_Destroy 5 sptr #comfunc global IComponent_QueryDataObject 6 sptr,int,sptr #comfunc global IComponent_GetResultViewType 7 sptr,sptr,sptr #comfunc global IComponent_GetDisplayInfo 8 sptr #comfunc global IComponent_CompareObjects 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。