ホーム › System.Wmi › ISWbemServicesEx
ISWbemServicesEx
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 2
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 26 HRESULT Put(ISWbemObjectEx* objWbemObject, INT iFlags, IDispatch* objWbemNamedValueSet, ISWbemObjectPath** objWbemObjectPath)
| objWbemObject | ISWbemObjectEx* | in | 保存するクラスまたはインスタンスを表す ISWbemObjectEx オブジェクトを指定する。 |
| iFlags | INT | in | 操作の動作を制御するフラグを指定する。 |
| objWbemNamedValueSet | IDispatch* | in | 呼び出しに付加するコンテキスト情報を提供する IDispatch オブジェクトを指定する。不要な場合は NULL を渡せる。 |
| objWbemObjectPath | ISWbemObjectPath** | out | 保存されたオブジェクトのパスを表す ISWbemObjectPath オブジェクトを受け取る出力ポインタである。 |
vtbl 27 HRESULT PutAsync(ISWbemSink* objWbemSink, ISWbemObjectEx* objWbemObject, INT iFlags, IDispatch* objWbemNamedValueSet, IDispatch* objWbemAsyncContext)
| objWbemSink | ISWbemSink* | in | 非同期操作の結果を受け取る ISWbemSink オブジェクトを指定する。 |
| objWbemObject | ISWbemObjectEx* | in | 保存するクラスまたはインスタンスを表す ISWbemObjectEx オブジェクトを指定する。 |
| iFlags | INT | in | 操作の動作を制御するフラグを指定する。 |
| objWbemNamedValueSet | IDispatch* | in | 呼び出しに付加するコンテキスト情報を提供する IDispatch オブジェクトを指定する。不要な場合は NULL を渡せる。 |
| objWbemAsyncContext | IDispatch* | in | コールバックに引き渡すユーザー定義コンテキスト用の IDispatch オブジェクトを指定する。不要な場合は NULL を渡せる。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISWbemServicesEx "{D2F68443-85DC-427E-91D8-366554CC754C}"
#usecom global ISWbemServicesEx IID_ISWbemServicesEx "{}"
#comfunc global ISWbemServicesEx_Put 26 sptr,int,sptr,sptr
#comfunc global ISWbemServicesEx_PutAsync 27 sptr,sptr,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。