IWSManResourceLocator
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
リソースへのパスを指定します。IWSManSession.Get、IWSManSession.Put、IWSManSession.Enumerate などの IWSManSession オブジェクト操作では、リソース URI の代わりに IWSManResourceLocator オブジェクトを使用できます。
解説(Remarks)
対応するスクリプトオブジェクトは ResourceLocator です。
メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
要求されたリソースのリソース URI。このプロパティにはパスのみを含めることができ、特定のインスタンスを指定するクエリ文字列は含められません。(Put)
| uri | LPWSTR | in | 操作対象のリソースを識別するリソース URI を指定する。 |
解説(Remarks)
ResourceLocator は IWSManResourceLocator インターフェイスに対応するスクリプトオブジェクトです。
次に ResourceURI の正しいパスの例を示します。
"http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
次のパスは特定のインスタンスのキーを含んでいるため機能しません。特定のインスタンスを指定するには IWSManResourceLocator::AddSelector メソッドを使用してください。
"http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=winmgmt"
対応するスクリプトメソッドは ResourceLocator.ResourceURI です。
要求されたリソースのリソース URI。このプロパティにはパスのみを含めることができ、特定のインスタンスを指定するクエリ文字列は含められません。(Get)
| uri | LPWSTR* | out | 現在設定されているリソース URI を表す文字列を受け取る。 |
解説(Remarks)
ResourceLocator は IWSManResourceLocator インターフェイスに対応するスクリプトオブジェクトです。
次に ResourceURI の正しいパスの例を示します。
"http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
次のパスは特定のインスタンスのキーを含んでいるため機能しません。特定のインスタンスを指定するには IWSManResourceLocator::AddSelector メソッドを使用してください。
"http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=winmgmt"
対応するスクリプトメソッドは ResourceLocator.ResourceURI です。
ResourceLocator オブジェクトにセレクターを追加します。セレクターはリソースの特定のインスタンスを指定します。
| resourceSelName | LPWSTR | in | セレクター名。たとえば WMI データを要求する場合、このパラメーターは WMI クラスのキープロパティになります。 |
| selValue | VARIANT | in | セレクター値。たとえば WMI データの場合、このパラメーターには特定のインスタンスを識別するキープロパティの値が含まれます。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ResourceLocator オブジェクトからすべてのセレクターを削除します。Get、Put、Enumerate などの IWSManSession オブジェクト操作では、リソース URI を指定する代わりに ResourceLocator オブジェクトを指定できます。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ResourceLocator を Get、Put、Enumerate などの IWSManSession オブジェクトメソッドで使用する場合の、リソースフラグメントまたはプロパティへのパスを取得または設定します。(Get)
| text | LPWSTR* | out | リソースの一部分を指すフラグメントパスを表す文字列を受け取る。 |
ResourceLocator を Get、Put、Enumerate などの IWSManSession オブジェクトメソッドで使用する場合の、リソースフラグメントまたはプロパティへのパスを取得または設定します。(Put)
| text | LPWSTR | in | リソースの一部分(フラグメント)を指定するためのフラグメントパスを設定する。 |
IWSManResourceLocator を Get、Put、Enumerate などの IWSManSession オブジェクトメソッドで使用する場合の、リソースフラグメントダイアレクトの言語ダイアレクトを取得または設定します。(Get)
| text | LPWSTR* | out | フラグメントパスの記法を識別するダイアレクト URI を表す文字列を受け取る。 |
解説(Remarks)
ダイアレクト文字列は既定で XPath 1.0 仕様になります。詳細については http://www.w3.org/TR/xpath を参照してください。
IWSManResourceLocator を Get、Put、Enumerate などの IWSManSession オブジェクトメソッドで使用する場合の、リソースフラグメントダイアレクトの言語ダイアレクトを取得または設定します。(Put)
| text | LPWSTR | in | フラグメントパスの記法を識別するダイアレクト URI を指定する。 |
解説(Remarks)
ダイアレクト文字列は既定で XPath 1.0 仕様になります。詳細については http://www.w3.org/TR/xpath を参照してください。
要求の処理に必要なデータを追加します。たとえば一部の WMI プロバイダーでは、プロバイダー固有の情報を持つ IWbemContext オブジェクトまたは SWbemNamedValueSet オブジェクトが必要になる場合があります。
| OptionName | LPWSTR | in | オプションデータオブジェクトの名前。 |
| OptionValue | VARIANT | in | オプションデータオブジェクトに指定する値。 |
| mustComply | BOOL | in | そのオプションを必ず処理しなければならないことを示すフラグ。既定は False (0) です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ResourceLocator オブジェクトの MustUnderstandOptions 値を取得または設定します。(Put)
| mustUnderstand | BOOL | in | 送信したオプションをサーバーが必ず解釈すべきかどうかを指定する。 |
ResourceLocator オブジェクトの MustUnderstandOptions 値を取得または設定します。(Get)
| mustUnderstand | BOOL* | out | オプションの必須解釈フラグの現在値を受け取る。 |
ResourceLocator オブジェクトからすべてのオプションを削除します。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
追加のエラー情報の XML 表現を取得します。(IWSManResourceLocator.get_Error)
| value | LPWSTR* | out | 直近の操作で発生したエラーの詳細を表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWSManResourceLocator "{A7A1BA28-DE41-466A-AD0A-C4059EAD7428}" #usecom global IWSManResourceLocator IID_IWSManResourceLocator "{}" #comfunc global IWSManResourceLocator_put_ResourceURI 7 wstr #comfunc global IWSManResourceLocator_get_ResourceURI 8 var #comfunc global IWSManResourceLocator_AddSelector 9 wstr,int #comfunc global IWSManResourceLocator_ClearSelectors 10 #comfunc global IWSManResourceLocator_get_FragmentPath 11 var #comfunc global IWSManResourceLocator_put_FragmentPath 12 wstr #comfunc global IWSManResourceLocator_get_FragmentDialect 13 var #comfunc global IWSManResourceLocator_put_FragmentDialect 14 wstr #comfunc global IWSManResourceLocator_AddOption 15 wstr,int,int #comfunc global IWSManResourceLocator_put_MustUnderstandOptions 16 int #comfunc global IWSManResourceLocator_get_MustUnderstandOptions 17 var #comfunc global IWSManResourceLocator_ClearOptions 18 #comfunc global IWSManResourceLocator_get_Error 19 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWSManResourceLocator "{A7A1BA28-DE41-466A-AD0A-C4059EAD7428}" #usecom global IWSManResourceLocator IID_IWSManResourceLocator "{}" #comfunc global IWSManResourceLocator_put_ResourceURI 7 wstr #comfunc global IWSManResourceLocator_get_ResourceURI 8 sptr #comfunc global IWSManResourceLocator_AddSelector 9 wstr,int #comfunc global IWSManResourceLocator_ClearSelectors 10 #comfunc global IWSManResourceLocator_get_FragmentPath 11 sptr #comfunc global IWSManResourceLocator_put_FragmentPath 12 wstr #comfunc global IWSManResourceLocator_get_FragmentDialect 13 sptr #comfunc global IWSManResourceLocator_put_FragmentDialect 14 wstr #comfunc global IWSManResourceLocator_AddOption 15 wstr,int,int #comfunc global IWSManResourceLocator_put_MustUnderstandOptions 16 int #comfunc global IWSManResourceLocator_get_MustUnderstandOptions 17 sptr #comfunc global IWSManResourceLocator_ClearOptions 18 #comfunc global IWSManResourceLocator_get_Error 19 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。