ITsSbClientConnection
COM公式ドキュメント
Remote Desktop Connection (RDC) クライアントからの着信接続要求に関する状態情報を格納するメソッドとプロパティを公開します。
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
接続を開始したユーザーの名前を示す値を取得します。
| pVal | LPWSTR* | out | 接続のユーザー名を受け取る LPWSTR へのポインタである。 |
Remote Desktop Connection (RDC) クライアントのドメイン名を示す値を取得します。
| pVal | LPWSTR* | out | ユーザーが属するドメイン名を受け取る LPWSTR へのポインタである。 |
ユーザーがターゲットコンピューターにログオンしたときに起動されるプログラムを示す値を取得します。
| pVal | LPWSTR* | out | 接続で実行される初期プログラムのパスを受け取る LPWSTR へのポインタである。 |
負荷分散によって返されるターゲットコンピューターの名前を示す値を取得します。
| ppVal | ITsSbLoadBalanceResult** | out | この接続に対する負荷分散結果(ITsSbLoadBalanceResult)を受け取るポインタへのポインタである。 |
解説(Remarks)
このメソッドは、ターゲット名を取得するために配置プラグインやオーケストレーションプラグインから呼び出すことができます。
ファーム名。
| pVal | LPWSTR* | out | 接続先のファーム名を受け取る LPWSTR へのポインタである。 |
接続に固有のコンテキスト情報を格納するためにプラグインが使用できます。
| contextId | LPWSTR | in | コンテキスト ID を格納する BSTR 変数です。プラグイン間の衝突を避けるため、コンテキスト ID には一意の識別子を使用することをお勧めします。クライアント接続オブジェクトは複数のプラグインによって使用される可能性があります。 |
| context | VARIANT | in | 格納するコンテキスト情報です。 |
| existingContext | VARIANT* | outoptional | 指定されたコンテキスト ID に対する既存のコンテキスト情報があれば、このパラメーターで返されます。既存の情報は上書きされます。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
プラグインは、クライアント接続オブジェクトを使用して、接続要求に固有のコンテキスト情報を格納できます。これにより、プラグインはステートレスなまま、接続要求によって格納された状態情報だけに依存できます。このメソッドを使用するプラグインは、接続要求の通知に登録することもできます。コンテキストは、CONNECTION_REQUEST_FAILED、CONNECTION_REQUEST_TIMEDOUT、または CONNECTION_REQUEST_SUCCEEDED の各通知を受信した時点で削除できます。これらの通知は、接続要求が間もなく削除されることを示します。
PutContext メソッドを使用してプラグインが格納したコンテキスト情報を取得します。
| contextId | LPWSTR | in | コンテキスト ID を格納する BSTR 変数です。 |
| context | VARIANT* | out | コンテキスト情報へのポインターです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ターゲットコンピューターをホストする環境に関する情報を含むオブジェクトを取得します。
| ppEnvironment | ITsSbEnvironment** | out | 接続に関連付けられた環境(ITsSbEnvironment)を受け取るポインタへのポインタである。 |
解説(Remarks)
オーケストレーションプラグインは、ターゲット仮想マシンに関する環境情報を取得するためにこのメソッドを呼び出すことができます。
クライアント接続の処理中に発生したエラーを示す値を取得します。
接続を開始したユーザーのドメイン名とユーザー名を示す値を取得します。
| pVal | LPWSTR* | out | 接続ユーザーの SAM アカウント名を受け取る LPWSTR へのポインタである。 |
クライアント接続に関連付けられたプロパティを含むオブジェクトを取得します。
| ppPropertySet | ITsSbClientConnectionPropertySet** | out | クライアント接続のプロパティセット(ITsSbClientConnectionPropertySet)を受け取るポインタへのポインタである。 |
解説(Remarks)
プラグインは、このインターフェイスを使用して、接続要求の有効期間中カスタムプロパティを格納できます。
既定では、Remote Desktop Connection Broker (RD 接続ブローカー) がプロパティセットオブジェクトに次のプロパティを設定します。
これが最初の割り当てかどうかを示します。
| ppVal | BOOL* | out | この接続が最初の割り当てであるかどうかを示すブール値を受け取る BOOL へのポインタである。 |
RD ファームの種類。
| pRdFarmType | RD_FARM_TYPE* | out | 接続先ファームの種別(RD_FARM_TYPE)を受け取るポインタである。 |
文字列としてのユーザー SID。
| pszUserSidString | CHAR** | out | ユーザーの SID を表す文字列を受け取る CHAR ポインタへのポインタである。 |
切断されたセッションを取得します。
| ppSession | ITsSbSession** | out | この接続に再接続可能な切断済みセッション(ITsSbSession)を受け取るポインタへのポインタである。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITsSbClientConnection "{18857499-AD61-4B1B-B7DF-CBCD41FB8338}" #usecom global ITsSbClientConnection IID_ITsSbClientConnection "{}" #comfunc global ITsSbClientConnection_get_UserName 3 var #comfunc global ITsSbClientConnection_get_Domain 4 var #comfunc global ITsSbClientConnection_get_InitialProgram 5 var #comfunc global ITsSbClientConnection_get_LoadBalanceResult 6 sptr #comfunc global ITsSbClientConnection_get_FarmName 7 var #comfunc global ITsSbClientConnection_PutContext 8 wstr,int,var #comfunc global ITsSbClientConnection_GetContext 9 wstr,var #comfunc global ITsSbClientConnection_get_Environment 10 sptr #comfunc global ITsSbClientConnection_get_ConnectionError 11 #comfunc global ITsSbClientConnection_get_SamUserAccount 12 var #comfunc global ITsSbClientConnection_get_ClientConnectionPropertySet 13 sptr #comfunc global ITsSbClientConnection_get_IsFirstAssignment 14 var #comfunc global ITsSbClientConnection_get_RdFarmType 15 var #comfunc global ITsSbClientConnection_get_UserSidString 16 var #comfunc global ITsSbClientConnection_GetDisconnectedSession 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITsSbClientConnection "{18857499-AD61-4B1B-B7DF-CBCD41FB8338}" #usecom global ITsSbClientConnection IID_ITsSbClientConnection "{}" #comfunc global ITsSbClientConnection_get_UserName 3 sptr #comfunc global ITsSbClientConnection_get_Domain 4 sptr #comfunc global ITsSbClientConnection_get_InitialProgram 5 sptr #comfunc global ITsSbClientConnection_get_LoadBalanceResult 6 sptr #comfunc global ITsSbClientConnection_get_FarmName 7 sptr #comfunc global ITsSbClientConnection_PutContext 8 wstr,int,sptr #comfunc global ITsSbClientConnection_GetContext 9 wstr,sptr #comfunc global ITsSbClientConnection_get_Environment 10 sptr #comfunc global ITsSbClientConnection_get_ConnectionError 11 #comfunc global ITsSbClientConnection_get_SamUserAccount 12 sptr #comfunc global ITsSbClientConnection_get_ClientConnectionPropertySet 13 sptr #comfunc global ITsSbClientConnection_get_IsFirstAssignment 14 sptr #comfunc global ITsSbClientConnection_get_RdFarmType 15 sptr #comfunc global ITsSbClientConnection_get_UserSidString 16 sptr #comfunc global ITsSbClientConnection_GetDisconnectedSession 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。