ホーム › System.RemoteManagement › IWSManSession
IWSManSession
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 12
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| resourceUri | VARIANT | in | 取得対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| resource | LPWSTR* | out | 取得したリソースを表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
| resourceUri | VARIANT | in | 更新対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| resource | LPWSTR | in | リソースの新しい内容を表す XML 文字列を指定する。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| resultResource | LPWSTR* | out | 更新後のリソースを表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
| resourceUri | VARIANT | in | 作成対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| resource | LPWSTR | in | 作成するリソースの内容を表す XML 文字列を指定する。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| newUri | LPWSTR* | out | 新しく作成されたリソースを参照するエンドポイント URI を表す文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
| resourceUri | VARIANT | in | 削除対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
vtbl 11 HRESULT Invoke(LPWSTR actionUri, VARIANT resourceUri, LPWSTR parameters, INT flags, LPWSTR* result)
| actionUri | LPWSTR | in | 実行するメソッド(アクション)を識別するアクション URI を指定する。 |
| resourceUri | VARIANT | in | メソッドを呼び出す対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| parameters | LPWSTR | in | メソッドへ渡す入力パラメータを表す XML 文字列を指定する。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| result | LPWSTR* | out | メソッド呼び出しの結果を表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
vtbl 12 HRESULT Enumerate(VARIANT resourceUri, LPWSTR filter, LPWSTR dialect, INT flags, IDispatch** resultSet)
| resourceUri | VARIANT | in | 列挙対象のリソースを識別するリソース URI を指定する。文字列または IWSManResourceLocator を保持する VARIANT である。 |
| filter | LPWSTR | in | 列挙結果を絞り込むためのフィルタ式を指定する。フィルタが不要な場合は NULL を指定する。 |
| dialect | LPWSTR | in | filter で指定したフィルタ式の言語(ダイアレクト)を識別する URI を指定する。 |
| flags | INT | in | 列挙の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| resultSet | IDispatch** | out | 列挙結果を反復処理するための列挙子オブジェクト(IWSManEnumerator)を受け取る。 |
| flags | INT | in | 操作の動作を制御するフラグを指定する。通常は 0 を指定する。 |
| result | LPWSTR* | out | リモート WS-Management 実装の識別情報を表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
| value | LPWSTR* | out | 直近の操作で発生したエラーの詳細を表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
| value | INT* | out | 列挙時に一度に取得するアイテム数(バッチサイズ)を受け取る。 |
| value | INT | in | 列挙時に一度に取得するアイテム数(バッチサイズ)を指定する。 |
| value | INT* | out | 操作のタイムアウト時間をミリ秒単位で受け取る。 |
| value | INT | in | 操作のタイムアウト時間をミリ秒単位で指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWSManSession "{FC84FC58-1286-40C4-9DA0-C8EF6EC241E0}" #usecom global IWSManSession IID_IWSManSession "{}" #comfunc global IWSManSession_Get 7 int,int,var #comfunc global IWSManSession_Put 8 int,wstr,int,var #comfunc global IWSManSession_Create 9 int,wstr,int,var #comfunc global IWSManSession_Delete 10 int,int #comfunc global IWSManSession_Invoke 11 wstr,int,wstr,int,var #comfunc global IWSManSession_Enumerate 12 int,wstr,wstr,int,sptr #comfunc global IWSManSession_Identify 13 int,var #comfunc global IWSManSession_get_Error 14 var #comfunc global IWSManSession_get_BatchItems 15 var #comfunc global IWSManSession_put_BatchItems 16 int #comfunc global IWSManSession_get_Timeout 17 var #comfunc global IWSManSession_put_Timeout 18 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWSManSession "{FC84FC58-1286-40C4-9DA0-C8EF6EC241E0}" #usecom global IWSManSession IID_IWSManSession "{}" #comfunc global IWSManSession_Get 7 int,int,sptr #comfunc global IWSManSession_Put 8 int,wstr,int,sptr #comfunc global IWSManSession_Create 9 int,wstr,int,sptr #comfunc global IWSManSession_Delete 10 int,int #comfunc global IWSManSession_Invoke 11 wstr,int,wstr,int,sptr #comfunc global IWSManSession_Enumerate 12 int,wstr,wstr,int,sptr #comfunc global IWSManSession_Identify 13 int,sptr #comfunc global IWSManSession_get_Error 14 sptr #comfunc global IWSManSession_get_BatchItems 15 sptr #comfunc global IWSManSession_put_BatchItems 16 int #comfunc global IWSManSession_get_Timeout 17 sptr #comfunc global IWSManSession_put_Timeout 18 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。