ITsSbProvider
COM公式ドキュメント
リモートデスクトップ仮想化で使用されるオブジェクトの既定の実装を作成するメソッドを公開します。
メソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ITsSbTarget ターゲットオブジェクトを作成します。
| TargetName | LPWSTR | in | ターゲット名を格納する BSTR 変数です。 |
| EnvironmentName | LPWSTR | in | 環境名を格納する BSTR 変数です。 |
| ppTarget | ITsSbTarget** | out | 指定したターゲットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。
解説(Remarks)
プラグインはこのメソッドを使用してターゲットオブジェクトを作成できます。
ITsSbLoadBalanceResult 負荷分散結果オブジェクトを作成します。
| TargetName | LPWSTR | in | ターゲット名を格納する BSTR 変数です。 |
| ppLBResult | ITsSbLoadBalanceResult** | out | ITsSbLoadBalanceResult オブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。
解説(Remarks)
プラグインはこのメソッドを使用して負荷分散結果オブジェクトを作成できます。
プラグインは CreateSessionObject メソッドを使用して ITsSbSession セッションオブジェクトを作成できます。
| TargetName | LPWSTR | in | ターゲット名を格納する BSTR 変数です。 |
| UserName | LPWSTR | in | ユーザー名を格納する BSTR 変数です。 |
| Domain | LPWSTR | in | ドメインを格納する BSTR 変数です。 |
| SessionId | DWORD | in | セッション ID を格納する DWORD 変数です。 |
| ppSession | ITsSbSession** | out | 新しいセッションオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITsSbPluginPropertySet プラグインプロパティセットオブジェクトを作成します。
| ppPropertySet | ITsSbPluginPropertySet** | out | ITsSbPluginPropertySet プロパティセットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。RD 接続ブローカーはプロパティセットオブジェクトの内容を認識しないため、Release メソッドを呼び出す前にオブジェクトをクリーンアップしておく必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
プラグインはこのメソッドを使用してプラグインプロパティセットオブジェクトを作成できます。
ITsSbTargetPropertySet ターゲットプロパティセットオブジェクトを作成します。
| ppPropertySet | ITsSbTargetPropertySet** | out | ITsSbTargetPropertySet プロパティセットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。RD 接続ブローカーはプロパティセットオブジェクトの内容を認識しないため、Release メソッドを呼び出す前にオブジェクトをクリーンアップしておく必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
プラグインはこのメソッドを使用してターゲットプロパティセットオブジェクトを作成できます。
ITsSbEnvironment 環境オブジェクトを作成します。
| Name | LPWSTR | in | 作成するオブジェクトの名前を格納する BSTR 変数です。 |
| ServerWeight | DWORD | in | 作成するオブジェクトのサーバー重み (server weight) を格納する DWORD 変数です。 |
| ppEnvironment | ITsSbEnvironment** | out | 新しく作成された環境オブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。
解説(Remarks)
プラグインはこのメソッドを使用して環境オブジェクトを作成できます。
リソースプラグインストアの ITsSbResourcePluginStore インスタンスを取得します。
| ppStore | ITsSbResourcePluginStore** | out | ITsSbResourcePluginStore リソースプラグインストアオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。
フィルタープラグインストアの FilterPluginStore インスタンスを取得します。
| ppStore | ITsSbFilterPluginStore** | out | ITsSbFilterPluginStore インターフェイスポインターのアドレスです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したイベントに関する通知を送信するようリモートデスクトップ接続ブローカー (RD 接続ブローカー) に要求します。
| notificationType | DWORD | in | 受信する通知の種類です。複数の種類の通知を受信するには、論理 OR を使用して列挙値を指定します。 TSSB_NOTIFY_TARGET_CHANGE所有元プラグインがターゲットの状態の変化を認識しました。 TSSB_NOTIFY_SESSION_CHANGE所有元プラグインがセッションの状態の変化を認識しました。 TSSB_NOTIFY_CONNECTION_REQUEST_CHANGERD 接続ブローカーが接続を作成したか、ログオンの成功、タイムアウト、または接続の失敗によって接続要求を完了しました。 |
| ResourceToMonitor | LPWSTR | in | このパラメーターは予約されています。 |
| pPluginNotification | ITsSbResourceNotification* | in | RD 接続ブローカーが通知に使用する ITsSbResourceNotification プラグイン通知オブジェクトへのポインターです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したイベントに関する通知を送信しないようリモートデスクトップ接続ブローカー (RD 接続ブローカー) に要求します。
| notificationType | DWORD | in | 通知の種類を指定します。複数の種類を指定するには、論理 OR を使用します。 TSSB_NOTIFY_TARGET_CHANGE所有元プラグインがターゲットの状態の変化を認識しました。 TSSB_NOTIFY_SESSION_CHANGE所有元プラグインがセッションの状態の変化を認識しました。 TSSB_NOTIFY_CONNECTION_REQUEST_CHANGERD 接続ブローカーが接続を作成したか、ログオンの成功、タイムアウト、または接続の失敗によって接続要求を完了しました。 |
| ResourceToMonitor | LPWSTR | in | このパラメーターは予約されています。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
プラグインは UnRegisterForNotification メソッドを使用して、以前の通知要求を取り消すことができます。
グローバルストアオブジェクトの ITsSbGlobalStore インスタンスを取得します。
| ppGlobalStore | ITsSbGlobalStore** | out | グローバルストアオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITsSbEnvironmentPropertySet 環境プロパティセットオブジェクトを作成します。
| ppPropertySet | ITsSbEnvironmentPropertySet** | out | 作成された ITsSbEnvironmentPropertySet 環境プロパティセットオブジェクトへのポインターです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
プラグインはこのメソッドを使用して環境プロパティセットオブジェクトを作成できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITsSbProvider "{87A4098F-6D7B-44DD-BC17-8CE44E370D52}"
#usecom global ITsSbProvider IID_ITsSbProvider "{}"
#comfunc global ITsSbProvider_CreateTargetObject 3 wstr,wstr,sptr
#comfunc global ITsSbProvider_CreateLoadBalanceResultObject 4 wstr,sptr
#comfunc global ITsSbProvider_CreateSessionObject 5 wstr,wstr,wstr,int,sptr
#comfunc global ITsSbProvider_CreatePluginPropertySet 6 sptr
#comfunc global ITsSbProvider_CreateTargetPropertySetObject 7 sptr
#comfunc global ITsSbProvider_CreateEnvironmentObject 8 wstr,int,sptr
#comfunc global ITsSbProvider_GetResourcePluginStore 9 sptr
#comfunc global ITsSbProvider_GetFilterPluginStore 10 sptr
#comfunc global ITsSbProvider_RegisterForNotification 11 int,wstr,sptr
#comfunc global ITsSbProvider_UnRegisterForNotification 12 int,wstr
#comfunc global ITsSbProvider_GetInstanceOfGlobalStore 13 sptr
#comfunc global ITsSbProvider_CreateEnvironmentPropertySetObject 14 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。