ITsSbResourcePluginStore
COM公式ドキュメント
リソース プラグインがセッションやターゲットなどのオブジェクトを格納できるようにするメソッドを公開します。
メソッド 28
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定されたターゲット名とファーム名を持つターゲットを返します。
| TargetName | LPWSTR | in | ターゲット名。 |
| FarmName | LPWSTR | in | ファーム名。このパラメーターが NULL の場合、メソッドは最初に見つかったターゲットを返します。 |
| ppTarget | ITsSbTarget** | out | ITsSbTarget ターゲット オブジェクトへのポインターへのポインター。オブジェクトの使用が終わったら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
リソース プラグイン ストアは、このメソッドを使用して、指定されたターゲット名とファーム名を持つターゲットを取得できます。グローバル ストアとは異なり、リソース プラグインがターゲット オブジェクトを所有しているため、リソース プラグイン ストアは取得したターゲット オブジェクトをコピーしません。したがって、このメソッドが返す ITsSbTarget オブジェクトを変更すると、リソース プラグイン ストア内のターゲット オブジェクトを変更することになります。
指定されたセッション ID を持つセッション オブジェクトを返します。
| dwSessionId | DWORD | in | セッション ID。 |
| TargetName | LPWSTR | in | ターゲット名。 |
| ppSession | ITsSbSession** | out | ITsSbSession セッション オブジェクトへのポインターへのポインター。オブジェクトの使用が終わったら、Release メソッドを呼び出して解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
リソース プラグインは、このメソッドを使用してセッション オブジェクトを取得できます。グローバル ストアとは異なり、リソース プラグインがセッション オブジェクトを所有しているため、リソース プラグイン ストアは取得したセッション オブジェクトをコピーしません。
リソース プラグイン ストアにターゲットを追加します。
| pTarget | ITsSbTarget* | in | ITsSbTarget ターゲット オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
リソース プラグイン ストアに新しいセッションを追加します。
| pSession | ITsSbSession* | in | ITsSbSession セッション オブジェクトへのポインター。ターゲット名、ユーザー名、ドメイン名、およびセッション ID は必須フィールドです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
リソース プラグイン ストアに環境を追加します。
| pEnvironment | ITsSbEnvironment* | in | ITsSbEnvironment 環境オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
リソース プラグインは、このメソッドを使用してリソース プラグイン ストアに環境を追加できます。
指定された環境をリソース プラグイン ストアから削除します。
| EnvironmentName | LPWSTR | in | 削除する環境の名前。 |
| bIgnoreOwner | BOOL | in | 環境の所有権を無視するには TRUE を設定します。それ以外の場合は FALSE を設定します。 Windows Server 2012 R2 および Windows Server 2012: このパラメーターは、Windows Server 2016 より前ではサポートされません。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
リソース プラグイン ストアに追加されたすべてのファームを列挙します。
| pdwCount | DWORD* | out | 取得されたファームの数。 |
| pVal | SAFEARRAY** | out | ファーム名の配列。pdwCount パラメーターには、この配列の要素数が格納されます。配列の使用が終わったら、SafeArrayDestroy 関数を呼び出して、割り当てられたメモリを解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定された環境オブジェクトを返します。
| EnvironmentName | LPWSTR | in | 環境の名前。 |
| ppEnvironment | ITsSbEnvironment** | out | 取得された ITsSbEnvironment 環境オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
リソース プラグイン ストアに存在する環境を含む配列を返します。
| pdwCount | DWORD* | inout | 取得されたターゲットの数へのポインター。 |
| pVal | ITsSbEnvironment*** | out | 存在する環境への参照を含む配列へのポインター。配列の使用が終わったら、各要素を解放し、CoTaskMemFree 関数を呼び出して配列を解放してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ターゲットを保存します。
| pTarget | ITsSbTarget* | in | 保存する ITsSbTarget オブジェクトへのポインター。 |
| bForceWrite | BOOL | in | 保存するオブジェクトの書き込みを強制するには TRUE を設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
環境を保存します。
| pEnvironment | ITsSbEnvironment* | in | 保存する ITsSbEnvironment オブジェクトへのポインター。 |
| bForceWrite | BOOL | in | 保存するオブジェクトの書き込みを強制するには TRUE を設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
セッションを保存します。
| pSession | ITsSbSession* | in | 保存する ITsSbSession オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ターゲットのプロパティの値を設定します。(ITsSbResourcePluginStoreEx.SetTargetProperty)
| TargetName | LPWSTR | in | ターゲットの名前。 |
| PropertyName | LPWSTR | in | プロパティの名前。 |
| pProperty | VARIANT* | in | 設定する値へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
環境のプロパティを設定します。(ITsSbResourcePluginStoreEx.SetEnvironmentProperty)
| EnvironmentName | LPWSTR | in | 環境の名前。 |
| PropertyName | LPWSTR | in | 設定するプロパティの名前。 |
| pProperty | VARIANT* | in | 設定する値へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ターゲット オブジェクトの状態を設定します。
| targetName | LPWSTR | in | ターゲットの名前。 |
| newState | TARGET_STATE | in | 設定する TARGET_STATE 値。 |
| pOldState | TARGET_STATE* | out | ターゲットの以前の状態。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
セッションの状態を設定します。
| sbSession | ITsSbSession* | in | 変更するセッションへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
リソース プラグイン ストアに存在する、指定されたターゲットを含む配列を返します。
| FarmName | LPWSTR | in | ファーム名。 |
| EnvName | LPWSTR | in | 環境名。 |
| sortByFieldId | TS_SB_SORT_BY | in | 並べ替え順序を指定します。 |
| sortyByPropName | LPWSTR | in | sortByFieldId が TS_SB_SORT_BY_PROP に設定されている場合に、並べ替えの基準とするプロパティ名。 |
| pdwCount | DWORD* | inout | 取得されたターゲットの数。 |
| pVal | ITsSbTarget*** | out | 取得された ITsSbTarget オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定されたセッションのセットを列挙します。
| 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 エラー コードを返します。
ファームのプロパティを取得します。(ITsSbResourcePluginStoreEx.GetFarmProperty)
| farmName | LPWSTR | in | ファームの名前。 |
| propertyName | LPWSTR | in | 取得するプロパティの名前。 |
| pVarValue | VARIANT* | in | プロパティの値へのポインターを返します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ターゲットを削除します。
| targetName | LPWSTR | in | ターゲットの名前。 |
| hostName | LPWSTR | in | ターゲットをホストするコンピューターの名前。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ターゲットのプロパティの値を設定します。(ITsSbResourcePluginStore.SetTargetPropertyWithVersionCheck)
| pTarget | ITsSbTarget* | in | ターゲットへのポインター。 |
| PropertyName | LPWSTR | in | プロパティの名前。 |
| pProperty | VARIANT* | in | 設定する値へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
ターゲットまたは環境オブジェクトが更新されると、データベース内のバージョン番号が自動的に更新されます。このメソッドは、更新したオブジェクトのバージョン番号がデータベース内の内部バージョン番号と一致することを確認してから、更新されたオブジェクトをデータベースに保存しようとします。
環境のプロパティを設定します。(ITsSbResourcePluginStore.SetEnvironmentPropertyWithVersionCheck)
| pEnvironment | ITsSbEnvironment* | in | 環境へのポインター。 |
| PropertyName | LPWSTR | in | 設定するプロパティの名前。 |
| pProperty | VARIANT* | in | 設定する値へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
ターゲットまたは環境オブジェクトが更新されると、データベース内のバージョン番号が自動的に更新されます。このメソッドは、更新したオブジェクトのバージョン番号がデータベース内の内部バージョン番号と一致することを確認してから、更新されたオブジェクトをデータベースに保存しようとします。
ターゲットをロックします。
| targetName | LPWSTR | in | ロックするターゲットの名前。 |
| dwTimeout | DWORD | in | 操作のタイムアウト(ミリ秒単位)。 |
| ppContext | IUnknown** | out | ロックのコンテキストへのポインターを返します。ロックを解放するには、このポインターを ReleaseTargetLock メソッドに渡します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
ロックが取得されると、呼び出し元のスレッドがターゲット オブジェクトへの排他的アクセス権を持つと見なされ、そのため(同じマシン内の)他のスレッドはそれを更新できません。したがって、呼び出し元のスレッドは、ターゲット オブジェクトに必要な更新を行ったら、できるだけ早く ReleaseTargetLock メソッドを呼び出す必要があります。
ターゲットのロックを解放します。
| pContext | IUnknown* | in | AcquireTargetLock メソッドが返したコンテキストへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
サーバーに条件付きで新しい状態を設定します。
| PoolName | LPWSTR | in | プールの名前。 |
| ServerFQDN | LPWSTR | in | サーバーの完全修飾ドメイン名 (FQDN)。 |
| NewState | TARGET_STATE | in | 設定する状態。 |
| TestState | TARGET_STATE | in | TARGET_UNKNOWN またはサーバーの現在の状態に設定されている場合、サーバーは NewState パラメーターで指定されたとおりに設定されます。 |
| pInitState | TARGET_STATE* | out | 戻り時に、サーバーの以前の状態を指します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
サーバーが起動待ちであることをセッション ホストに通知します。
| PoolName | LPWSTR | in | プールの名前。 |
| serverName | LPWSTR | in | サーバーの名前。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定されたサーバーの状態を取得します。
| PoolName | LPWSTR | in | プールの名前。 |
| ServerFQDN | LPWSTR | in | サーバーの完全修飾ドメイン名 (FQDN)。 |
| pState | TARGET_STATE* | out | 戻り時に、サーバーの状態を指します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定されたサーバーのドレイン モードを設定します。
| ServerFQDN | LPWSTR | in | サーバーの完全修飾ドメイン名。 |
| DrainMode | DWORD | in | 設定するモード。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITsSbResourcePluginStore "{5C38F65F-BCF1-4036-A6BF-9E3CCCAE0B63}" #usecom global ITsSbResourcePluginStore IID_ITsSbResourcePluginStore "{}" #comfunc global ITsSbResourcePluginStore_QueryTarget 3 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_QuerySessionBySessionId 4 int,wstr,sptr #comfunc global ITsSbResourcePluginStore_AddTargetToStore 5 sptr #comfunc global ITsSbResourcePluginStore_AddSessionToStore 6 sptr #comfunc global ITsSbResourcePluginStore_AddEnvironmentToStore 7 sptr #comfunc global ITsSbResourcePluginStore_RemoveEnvironmentFromStore 8 wstr,int #comfunc global ITsSbResourcePluginStore_EnumerateFarms 9 var,var #comfunc global ITsSbResourcePluginStore_QueryEnvironment 10 wstr,sptr #comfunc global ITsSbResourcePluginStore_EnumerateEnvironments 11 var,sptr #comfunc global ITsSbResourcePluginStore_SaveTarget 12 sptr,int #comfunc global ITsSbResourcePluginStore_SaveEnvironment 13 sptr,int #comfunc global ITsSbResourcePluginStore_SaveSession 14 sptr #comfunc global ITsSbResourcePluginStore_SetTargetProperty 15 wstr,wstr,var #comfunc global ITsSbResourcePluginStore_SetEnvironmentProperty 16 wstr,wstr,var #comfunc global ITsSbResourcePluginStore_SetTargetState 17 wstr,int,var #comfunc global ITsSbResourcePluginStore_SetSessionState 18 sptr #comfunc global ITsSbResourcePluginStore_EnumerateTargets 19 wstr,wstr,int,wstr,var,sptr #comfunc global ITsSbResourcePluginStore_EnumerateSessions 20 wstr,wstr,wstr,wstr,wstr,var,var,sptr #comfunc global ITsSbResourcePluginStore_GetFarmProperty 21 wstr,wstr,var #comfunc global ITsSbResourcePluginStore_DeleteTarget 22 wstr,wstr #comfunc global ITsSbResourcePluginStore_SetTargetPropertyWithVersionCheck 23 sptr,wstr,var #comfunc global ITsSbResourcePluginStore_SetEnvironmentPropertyWithVersionCheck 24 sptr,wstr,var #comfunc global ITsSbResourcePluginStore_AcquireTargetLock 25 wstr,int,sptr #comfunc global ITsSbResourcePluginStore_ReleaseTargetLock 26 sptr #comfunc global ITsSbResourcePluginStore_TestAndSetServerState 27 wstr,wstr,int,int,var #comfunc global ITsSbResourcePluginStore_SetServerWaitingToStart 28 wstr,wstr #comfunc global ITsSbResourcePluginStore_GetServerState 29 wstr,wstr,var #comfunc global ITsSbResourcePluginStore_SetServerDrainMode 30 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITsSbResourcePluginStore "{5C38F65F-BCF1-4036-A6BF-9E3CCCAE0B63}" #usecom global ITsSbResourcePluginStore IID_ITsSbResourcePluginStore "{}" #comfunc global ITsSbResourcePluginStore_QueryTarget 3 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_QuerySessionBySessionId 4 int,wstr,sptr #comfunc global ITsSbResourcePluginStore_AddTargetToStore 5 sptr #comfunc global ITsSbResourcePluginStore_AddSessionToStore 6 sptr #comfunc global ITsSbResourcePluginStore_AddEnvironmentToStore 7 sptr #comfunc global ITsSbResourcePluginStore_RemoveEnvironmentFromStore 8 wstr,int #comfunc global ITsSbResourcePluginStore_EnumerateFarms 9 sptr,sptr #comfunc global ITsSbResourcePluginStore_QueryEnvironment 10 wstr,sptr #comfunc global ITsSbResourcePluginStore_EnumerateEnvironments 11 sptr,sptr #comfunc global ITsSbResourcePluginStore_SaveTarget 12 sptr,int #comfunc global ITsSbResourcePluginStore_SaveEnvironment 13 sptr,int #comfunc global ITsSbResourcePluginStore_SaveSession 14 sptr #comfunc global ITsSbResourcePluginStore_SetTargetProperty 15 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_SetEnvironmentProperty 16 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_SetTargetState 17 wstr,int,sptr #comfunc global ITsSbResourcePluginStore_SetSessionState 18 sptr #comfunc global ITsSbResourcePluginStore_EnumerateTargets 19 wstr,wstr,int,wstr,sptr,sptr #comfunc global ITsSbResourcePluginStore_EnumerateSessions 20 wstr,wstr,wstr,wstr,wstr,sptr,sptr,sptr #comfunc global ITsSbResourcePluginStore_GetFarmProperty 21 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_DeleteTarget 22 wstr,wstr #comfunc global ITsSbResourcePluginStore_SetTargetPropertyWithVersionCheck 23 sptr,wstr,sptr #comfunc global ITsSbResourcePluginStore_SetEnvironmentPropertyWithVersionCheck 24 sptr,wstr,sptr #comfunc global ITsSbResourcePluginStore_AcquireTargetLock 25 wstr,int,sptr #comfunc global ITsSbResourcePluginStore_ReleaseTargetLock 26 sptr #comfunc global ITsSbResourcePluginStore_TestAndSetServerState 27 wstr,wstr,int,int,sptr #comfunc global ITsSbResourcePluginStore_SetServerWaitingToStart 28 wstr,wstr #comfunc global ITsSbResourcePluginStore_GetServerState 29 wstr,wstr,sptr #comfunc global ITsSbResourcePluginStore_SetServerDrainMode 30 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。