IWSManResourceLocator
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDa7a1ba28-de41-466a-ad0a-c4059ead7428継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7
メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| uri | LPWSTR | in | 操作対象のリソースを識別するリソース URI を指定する。 |
| uri | LPWSTR* | out | 現在設定されているリソース URI を表す文字列を受け取る。 |
| resourceSelName | LPWSTR | in | リソースを一意に特定するためのセレクタ(キー)の名前を指定する。 |
| selValue | VARIANT | in | セレクタの値を保持する VARIANT を指定する。 |
| text | LPWSTR* | out | リソースの一部分を指すフラグメントパスを表す文字列を受け取る。 |
| text | LPWSTR | in | リソースの一部分(フラグメント)を指定するためのフラグメントパスを設定する。 |
| text | LPWSTR* | out | フラグメントパスの記法を識別するダイアレクト URI を表す文字列を受け取る。 |
| text | LPWSTR | in | フラグメントパスの記法を識別するダイアレクト URI を指定する。 |
| OptionName | LPWSTR | in | リソースに付加するオプションの名前を指定する。 |
| OptionValue | VARIANT | in | オプションの値を保持する VARIANT を指定する。 |
| mustComply | BOOL | in | このオプションへのサーバー側の準拠を必須とするかどうかを指定する。 |
vtbl 16 HRESULT put_MustUnderstandOptions(BOOL mustUnderstand) | mustUnderstand | BOOL | in | 送信したオプションをサーバーが必ず解釈すべきかどうかを指定する。 |
vtbl 17 HRESULT get_MustUnderstandOptions(BOOL* mustUnderstand) | mustUnderstand | BOOL* | out | オプションの必須解釈フラグの現在値を受け取る。 |
| value | LPWSTR* | out | 直近の操作で発生したエラーの詳細を表す XML 文字列を受け取る。受け取った文字列は呼び出し側で解放する。 |
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 不要)。