Win32 API 日本語リファレンス
ホームSystem.RemoteDesktop › ITsSbProvider

ITsSbProvider

COM
IID87a4098f-6d7b-44dd-bc17-8ce44e370d52継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

リモートデスクトップ仮想化で使用されるオブジェクトの既定の実装を作成するメソッドを公開します。

メソッド 12

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateTargetObject(LPWSTR TargetName, LPWSTR EnvironmentName, ITsSbTarget** ppTarget)

ITsSbTarget ターゲットオブジェクトを作成します。

TargetNameLPWSTRinターゲット名を格納する BSTR 変数です。
EnvironmentNameLPWSTRin環境名を格納する BSTR 変数です。
ppTargetITsSbTarget**out指定したターゲットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。

解説(Remarks)

プラグインはこのメソッドを使用してターゲットオブジェクトを作成できます。

vtbl 4 HRESULT CreateLoadBalanceResultObject(LPWSTR TargetName, ITsSbLoadBalanceResult** ppLBResult)

ITsSbLoadBalanceResult 負荷分散結果オブジェクトを作成します。

TargetNameLPWSTRinターゲット名を格納する BSTR 変数です。
ppLBResultITsSbLoadBalanceResult**outITsSbLoadBalanceResult オブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。

解説(Remarks)

プラグインはこのメソッドを使用して負荷分散結果オブジェクトを作成できます。

vtbl 5 HRESULT CreateSessionObject(LPWSTR TargetName, LPWSTR UserName, LPWSTR Domain, DWORD SessionId, ITsSbSession** ppSession)

プラグインは CreateSessionObject メソッドを使用して ITsSbSession セッションオブジェクトを作成できます。

TargetNameLPWSTRinターゲット名を格納する BSTR 変数です。
UserNameLPWSTRinユーザー名を格納する BSTR 変数です。
DomainLPWSTRinドメインを格納する BSTR 変数です。
SessionIdDWORDinセッション ID を格納する DWORD 変数です。
ppSessionITsSbSession**out新しいセッションオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT CreatePluginPropertySet(ITsSbPluginPropertySet** ppPropertySet)

ITsSbPluginPropertySet プラグインプロパティセットオブジェクトを作成します。

ppPropertySetITsSbPluginPropertySet**outITsSbPluginPropertySet プロパティセットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。RD 接続ブローカーはプロパティセットオブジェクトの内容を認識しないため、Release メソッドを呼び出す前にオブジェクトをクリーンアップしておく必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

プラグインはこのメソッドを使用してプラグインプロパティセットオブジェクトを作成できます。

vtbl 7 HRESULT CreateTargetPropertySetObject(ITsSbTargetPropertySet** ppPropertySet)

ITsSbTargetPropertySet ターゲットプロパティセットオブジェクトを作成します。

ppPropertySetITsSbTargetPropertySet**outITsSbTargetPropertySet プロパティセットオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。RD 接続ブローカーはプロパティセットオブジェクトの内容を認識しないため、Release メソッドを呼び出す前にオブジェクトをクリーンアップしておく必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

プラグインはこのメソッドを使用してターゲットプロパティセットオブジェクトを作成できます。

vtbl 8 HRESULT CreateEnvironmentObject(LPWSTR Name, DWORD ServerWeight, ITsSbEnvironment** ppEnvironment)

ITsSbEnvironment 環境オブジェクトを作成します。

NameLPWSTRin作成するオブジェクトの名前を格納する BSTR 変数です。
ServerWeightDWORDin作成するオブジェクトのサーバー重み (server weight) を格納する DWORD 変数です。
ppEnvironmentITsSbEnvironment**out新しく作成された環境オブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。

解説(Remarks)

プラグインはこのメソッドを使用して環境オブジェクトを作成できます。

vtbl 9 HRESULT GetResourcePluginStore(ITsSbResourcePluginStore** ppStore)

リソースプラグインストアの ITsSbResourcePluginStore インスタンスを取得します。

ppStoreITsSbResourcePluginStore**outITsSbResourcePluginStore リソースプラグインストアオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。取り得る値には次の一覧に示すものが含まれますが、これらに限定されません。

vtbl 10 HRESULT GetFilterPluginStore(ITsSbFilterPluginStore** ppStore)

フィルタープラグインストアの FilterPluginStore インスタンスを取得します。

ppStoreITsSbFilterPluginStore**outITsSbFilterPluginStore インターフェイスポインターのアドレスです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT RegisterForNotification(DWORD notificationType, LPWSTR ResourceToMonitor, ITsSbResourceNotification* pPluginNotification)

指定したイベントに関する通知を送信するようリモートデスクトップ接続ブローカー (RD 接続ブローカー) に要求します。

notificationTypeDWORDin

受信する通知の種類です。複数の種類の通知を受信するには、論理 OR を使用して列挙値を指定します。

TSSB_NOTIFY_TARGET_CHANGE

所有元プラグインがターゲットの状態の変化を認識しました。

TSSB_NOTIFY_SESSION_CHANGE

所有元プラグインがセッションの状態の変化を認識しました。

TSSB_NOTIFY_CONNECTION_REQUEST_CHANGE

RD 接続ブローカーが接続を作成したか、ログオンの成功、タイムアウト、または接続の失敗によって接続要求を完了しました。

ResourceToMonitorLPWSTRinこのパラメーターは予約されています。
pPluginNotificationITsSbResourceNotification*inRD 接続ブローカーが通知に使用する ITsSbResourceNotification プラグイン通知オブジェクトへのポインターです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT UnRegisterForNotification(DWORD notificationType, LPWSTR ResourceToMonitor)

指定したイベントに関する通知を送信しないようリモートデスクトップ接続ブローカー (RD 接続ブローカー) に要求します。

notificationTypeDWORDin

通知の種類を指定します。複数の種類を指定するには、論理 OR を使用します。

TSSB_NOTIFY_TARGET_CHANGE

所有元プラグインがターゲットの状態の変化を認識しました。

TSSB_NOTIFY_SESSION_CHANGE

所有元プラグインがセッションの状態の変化を認識しました。

TSSB_NOTIFY_CONNECTION_REQUEST_CHANGE

RD 接続ブローカーが接続を作成したか、ログオンの成功、タイムアウト、または接続の失敗によって接続要求を完了しました。

ResourceToMonitorLPWSTRinこのパラメーターは予約されています。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

プラグインは UnRegisterForNotification メソッドを使用して、以前の通知要求を取り消すことができます。

vtbl 13 HRESULT GetInstanceOfGlobalStore(ITsSbGlobalStore** ppGlobalStore)

グローバルストアオブジェクトの ITsSbGlobalStore インスタンスを取得します。

ppGlobalStoreITsSbGlobalStore**outグローバルストアオブジェクトへのポインターへのポインターです。オブジェクトの使用を終えたら、Release メソッドを呼び出して解放してください。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 14 HRESULT CreateEnvironmentPropertySetObject(ITsSbEnvironmentPropertySet** ppPropertySet)

ITsSbEnvironmentPropertySet 環境プロパティセットオブジェクトを作成します。

ppPropertySetITsSbEnvironmentPropertySet**out作成された ITsSbEnvironmentPropertySet 環境プロパティセットオブジェクトへのポインターです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

プラグインはこのメソッドを使用して環境プロパティセットオブジェクトを作成できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。