ITsSbGlobalStore
COM公式ドキュメント
Remote Desktop Connection Broker (RD Connection Broker) のストアに追加された、ターゲット コンピューター、セッション、環境、およびファームを照会するメソッドを公開します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定されたパラメーターに対応する ITsSbTarget オブジェクトを取得します。
| ProviderName | LPWSTR | in | リソース プラグイン プロバイダーの名前。 |
| TargetName | LPWSTR | in | ターゲット名。 |
| FarmName | LPWSTR | in | ターゲットが属するファーム名。NULL の場合、最初に見つかったターゲットが返されます。 |
| ppTarget | ITsSbTarget** | out | ターゲット ITsSbTarget オブジェクトへのポインターへのポインター。オブジェクトの使用が終了したら、Release メソッドを呼び出して解放してください。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。指定できる値には次の一覧のものが含まれますが、これらに限定されません。
解説(Remarks)
このメソッドが返すターゲット オブジェクトに加えた変更は、Remote Desktop Connection Broker (RD Connection Broker) に格納されている ターゲット オブジェクトには影響しません。返されるターゲット オブジェクトは、RD Connection Broker 内のターゲット オブジェクトのコピーです。
指定されたセッション ID に関連付けられた ITsSbSession オブジェクトを取得します。
| ProviderName | LPWSTR | in | ターゲットを所有するリソース プラグイン プロバイダーの名前。 |
| dwSessionId | DWORD | in | セッション ID。 |
| TargetName | LPWSTR | in | このセッションが存在するターゲット コンピューターの名前。 |
| ppSession | ITsSbSession** | out | セッション オブジェクトへのポインターへのポインター。オブジェクトの使用が終了したら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
解説(Remarks)
このメソッドが返すターゲット オブジェクトに加えた変更は、Remote Desktop Connection Broker (RD Connection Broker) に格納されている ターゲット オブジェクトには影響しません。返されるターゲット オブジェクトは、RD Connection Broker 内のターゲット オブジェクトのコピーです。
指定されたリソース プラグインによって追加されたすべてのファームを列挙します。
| ProviderName | LPWSTR | in | リソース プラグインのプロバイダー名。 |
| pdwCount | DWORD* | out | 取得されたファームの数。 |
| pVal | SAFEARRAY** | out | ファーム名の配列へのポインター。この配列の要素数は pdwCount パラメーターで指定されます。配列の使用が終了したら、SafeArrayDestroy 関数を呼び出して、割り当てられたメモリを解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラー コードを返します。
グローバル ストアに存在する指定されたターゲットを格納した配列を返します。
| ProviderName | LPWSTR | in | プロバイダー名。 |
| FarmName | LPWSTR | in | ファーム名。 |
| EnvName | LPWSTR | in | 環境名。 |
| pdwCount | DWORD* | inout | 取得されたターゲットの数。 |
| pVal | ITsSbTarget*** | out | 取得された ITsSbTarget オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラー コードを返します。
指定されたプロバイダーに存在する環境を格納した配列を返します。
| ProviderName | LPWSTR | in | プロバイダーの名前。 |
| pdwCount | DWORD* | inout | 取得された環境の数へのポインター。 |
| ppVal | ITsSbEnvironment*** | out | 存在する環境への参照を格納した配列へのポインター。配列の使用が終了したら、各要素を解放し、CoTaskMemFree 関数を呼び出して配列を解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラー コードを返します。
指定されたプロバイダー上のセッションを格納した配列を返します。
| ProviderName | LPWSTR | in | プロバイダーの名前。 |
| targetName | LPWSTR | in | ターゲットの名前。 |
| userName | LPWSTR | in | ユーザー アカウントの名前。 |
| userDomain | LPWSTR | in | ユーザー アカウントのドメイン名。 |
| poolName | LPWSTR | in | プールの名前。 |
| initialProgram | LPWSTR | in | 発行されたリモート アプリケーションの名前。 |
| pSessionState | TSSESSION_STATE* | in | 列挙するセッションの TSSESSION_STATE 値へのポインター。 |
| pdwCount | DWORD* | inout | 返されたセッションの数へのポインターを返します。 |
| ppVal | ITsSbSession*** | out | 要求されたセッションの一覧を返します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラー コードを返します。
ファームのプロパティを取得します。(ITsSbGlobalStore.GetFarmProperty)
| farmName | LPWSTR | in | ファームの名前。 |
| propertyName | LPWSTR | in | 取得するプロパティの名前。 |
| pVarValue | VARIANT* | in | プロパティの値へのポインターを返します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラー コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITsSbGlobalStore "{9AB60F7B-BD72-4D9F-8A3A-A0EA5574E635}" #usecom global ITsSbGlobalStore IID_ITsSbGlobalStore "{}" #comfunc global ITsSbGlobalStore_QueryTarget 3 wstr,wstr,wstr,sptr #comfunc global ITsSbGlobalStore_QuerySessionBySessionId 4 wstr,int,wstr,sptr #comfunc global ITsSbGlobalStore_EnumerateFarms 5 wstr,var,var #comfunc global ITsSbGlobalStore_EnumerateTargets 6 wstr,wstr,wstr,var,sptr #comfunc global ITsSbGlobalStore_EnumerateEnvironmentsByProvider 7 wstr,var,sptr #comfunc global ITsSbGlobalStore_EnumerateSessions 8 wstr,wstr,wstr,wstr,wstr,wstr,var,var,sptr #comfunc global ITsSbGlobalStore_GetFarmProperty 9 wstr,wstr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITsSbGlobalStore "{9AB60F7B-BD72-4D9F-8A3A-A0EA5574E635}" #usecom global ITsSbGlobalStore IID_ITsSbGlobalStore "{}" #comfunc global ITsSbGlobalStore_QueryTarget 3 wstr,wstr,wstr,sptr #comfunc global ITsSbGlobalStore_QuerySessionBySessionId 4 wstr,int,wstr,sptr #comfunc global ITsSbGlobalStore_EnumerateFarms 5 wstr,sptr,sptr #comfunc global ITsSbGlobalStore_EnumerateTargets 6 wstr,wstr,wstr,sptr,sptr #comfunc global ITsSbGlobalStore_EnumerateEnvironmentsByProvider 7 wstr,sptr,sptr #comfunc global ITsSbGlobalStore_EnumerateSessions 8 wstr,wstr,wstr,wstr,wstr,wstr,sptr,sptr,sptr #comfunc global ITsSbGlobalStore_GetFarmProperty 9 wstr,wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。