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

ITsSbResourcePluginStore

COM
IID5c38f65f-bcf1-4036-a6bf-9e3cccae0b63継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

リソース プラグインがセッションやターゲットなどのオブジェクトを格納できるようにするメソッドを公開します。

メソッド 28

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

vtbl 3 HRESULT QueryTarget(LPWSTR TargetName, LPWSTR FarmName, ITsSbTarget** ppTarget)

指定されたターゲット名とファーム名を持つターゲットを返します。

TargetNameLPWSTRinターゲット名。
FarmNameLPWSTRinファーム名。このパラメーターが NULL の場合、メソッドは最初に見つかったターゲットを返します。
ppTargetITsSbTarget**outITsSbTarget ターゲット オブジェクトへのポインターへのポインター。オブジェクトの使用が終わったら、Release メソッドを呼び出して解放してください。

戻り値

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

解説(Remarks)

リソース プラグイン ストアは、このメソッドを使用して、指定されたターゲット名とファーム名を持つターゲットを取得できます。グローバル ストアとは異なり、リソース プラグインがターゲット オブジェクトを所有しているため、リソース プラグイン ストアは取得したターゲット オブジェクトをコピーしません。したがって、このメソッドが返す ITsSbTarget オブジェクトを変更すると、リソース プラグイン ストア内のターゲット オブジェクトを変更することになります。

vtbl 4 HRESULT QuerySessionBySessionId(DWORD dwSessionId, LPWSTR TargetName, ITsSbSession** ppSession)

指定されたセッション ID を持つセッション オブジェクトを返します。

dwSessionIdDWORDinセッション ID。
TargetNameLPWSTRinターゲット名。
ppSessionITsSbSession**outITsSbSession セッション オブジェクトへのポインターへのポインター。オブジェクトの使用が終わったら、Release メソッドを呼び出して解放してください。

戻り値

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

解説(Remarks)

リソース プラグインは、このメソッドを使用してセッション オブジェクトを取得できます。グローバル ストアとは異なり、リソース プラグインがセッション オブジェクトを所有しているため、リソース プラグイン ストアは取得したセッション オブジェクトをコピーしません。

vtbl 5 HRESULT AddTargetToStore(ITsSbTarget* pTarget)

リソース プラグイン ストアにターゲットを追加します。

pTargetITsSbTarget*inITsSbTarget ターゲット オブジェクトへのポインター。

戻り値

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

vtbl 6 HRESULT AddSessionToStore(ITsSbSession* pSession)

リソース プラグイン ストアに新しいセッションを追加します。

pSessionITsSbSession*inITsSbSession セッション オブジェクトへのポインター。ターゲット名、ユーザー名、ドメイン名、およびセッション ID は必須フィールドです。

戻り値

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

vtbl 7 HRESULT AddEnvironmentToStore(ITsSbEnvironment* pEnvironment)

リソース プラグイン ストアに環境を追加します。

pEnvironmentITsSbEnvironment*inITsSbEnvironment 環境オブジェクトへのポインター。

戻り値

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

解説(Remarks)

リソース プラグインは、このメソッドを使用してリソース プラグイン ストアに環境を追加できます。

vtbl 8 HRESULT RemoveEnvironmentFromStore(LPWSTR EnvironmentName, BOOL bIgnoreOwner)

指定された環境をリソース プラグイン ストアから削除します。

EnvironmentNameLPWSTRin削除する環境の名前。
bIgnoreOwnerBOOLin

環境の所有権を無視するには TRUE を設定します。それ以外の場合は FALSE を設定します。

Windows Server 2012 R2 および Windows Server 2012: このパラメーターは、Windows Server 2016 より前ではサポートされません。

戻り値

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

vtbl 9 HRESULT EnumerateFarms(DWORD* pdwCount, SAFEARRAY** pVal)

リソース プラグイン ストアに追加されたすべてのファームを列挙します。

pdwCountDWORD*out取得されたファームの数。
pValSAFEARRAY**outファーム名の配列。pdwCount パラメーターには、この配列の要素数が格納されます。配列の使用が終わったら、SafeArrayDestroy 関数を呼び出して、割り当てられたメモリを解放してください。

戻り値

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

vtbl 10 HRESULT QueryEnvironment(LPWSTR EnvironmentName, ITsSbEnvironment** ppEnvironment)

指定された環境オブジェクトを返します。

EnvironmentNameLPWSTRin環境の名前。
ppEnvironmentITsSbEnvironment**out取得された ITsSbEnvironment 環境オブジェクトへのポインター。

戻り値

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

vtbl 11 HRESULT EnumerateEnvironments(DWORD* pdwCount, ITsSbEnvironment*** pVal)

リソース プラグイン ストアに存在する環境を含む配列を返します。

pdwCountDWORD*inout取得されたターゲットの数へのポインター。
pValITsSbEnvironment***out存在する環境への参照を含む配列へのポインター。配列の使用が終わったら、各要素を解放し、CoTaskMemFree 関数を呼び出して配列を解放してください。

戻り値

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

vtbl 12 HRESULT SaveTarget(ITsSbTarget* pTarget, BOOL bForceWrite)

ターゲットを保存します。

pTargetITsSbTarget*in保存する ITsSbTarget オブジェクトへのポインター。
bForceWriteBOOLin保存するオブジェクトの書き込みを強制するには TRUE を設定します。

戻り値

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

vtbl 13 HRESULT SaveEnvironment(ITsSbEnvironment* pEnvironment, BOOL bForceWrite)

環境を保存します。

pEnvironmentITsSbEnvironment*in保存する ITsSbEnvironment オブジェクトへのポインター。
bForceWriteBOOLin保存するオブジェクトの書き込みを強制するには TRUE を設定します。

戻り値

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

vtbl 14 HRESULT SaveSession(ITsSbSession* pSession)

セッションを保存します。

pSessionITsSbSession*in保存する ITsSbSession オブジェクトへのポインター。

戻り値

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

vtbl 15 HRESULT SetTargetProperty(LPWSTR TargetName, LPWSTR PropertyName, VARIANT* pProperty)

ターゲットのプロパティの値を設定します。(ITsSbResourcePluginStoreEx.SetTargetProperty)

TargetNameLPWSTRinターゲットの名前。
PropertyNameLPWSTRinプロパティの名前。
pPropertyVARIANT*in設定する値へのポインター。

戻り値

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

vtbl 16 HRESULT SetEnvironmentProperty(LPWSTR EnvironmentName, LPWSTR PropertyName, VARIANT* pProperty)

環境のプロパティを設定します。(ITsSbResourcePluginStoreEx.SetEnvironmentProperty)

EnvironmentNameLPWSTRin環境の名前。
PropertyNameLPWSTRin設定するプロパティの名前。
pPropertyVARIANT*in設定する値へのポインター。

戻り値

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

vtbl 17 HRESULT SetTargetState(LPWSTR targetName, TARGET_STATE newState, TARGET_STATE* pOldState)

ターゲット オブジェクトの状態を設定します。

targetNameLPWSTRinターゲットの名前。
newStateTARGET_STATEin設定する TARGET_STATE 値。
pOldStateTARGET_STATE*outターゲットの以前の状態。

戻り値

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

vtbl 18 HRESULT SetSessionState(ITsSbSession* sbSession)

セッションの状態を設定します。

sbSessionITsSbSession*in変更するセッションへのポインター。

戻り値

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

vtbl 19 HRESULT EnumerateTargets(LPWSTR FarmName, LPWSTR EnvName, TS_SB_SORT_BY sortByFieldId, LPWSTR sortyByPropName, DWORD* pdwCount, ITsSbTarget*** pVal)

リソース プラグイン ストアに存在する、指定されたターゲットを含む配列を返します。

FarmNameLPWSTRinファーム名。
EnvNameLPWSTRin環境名。
sortByFieldIdTS_SB_SORT_BYin並べ替え順序を指定します。
sortyByPropNameLPWSTRinsortByFieldIdTS_SB_SORT_BY_PROP に設定されている場合に、並べ替えの基準とするプロパティ名。
pdwCountDWORD*inout取得されたターゲットの数。
pValITsSbTarget***out取得された ITsSbTarget オブジェクトへのポインター。

戻り値

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

vtbl 20 HRESULT EnumerateSessions(LPWSTR targetName, LPWSTR userName, LPWSTR userDomain, LPWSTR poolName, LPWSTR initialProgram, TSSESSION_STATE* pSessionState, DWORD* pdwCount, ITsSbSession*** ppVal)

指定されたセッションのセットを列挙します。

targetNameLPWSTRinターゲットの名前。
userNameLPWSTRinユーザー アカウントの名前。
userDomainLPWSTRinユーザー アカウントのドメイン名。
poolNameLPWSTRinプールの名前。
initialProgramLPWSTRin公開されたリモート アプリケーションの名前。
pSessionStateTSSESSION_STATE*in列挙するセッションの TSSESSION_STATE 値へのポインター。
pdwCountDWORD*inout返されたセッションの数へのポインターを返します。
ppValITsSbSession***out要求されたセッションの一覧を返します。

戻り値

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

vtbl 21 HRESULT GetFarmProperty(LPWSTR farmName, LPWSTR propertyName, VARIANT* pVarValue)

ファームのプロパティを取得します。(ITsSbResourcePluginStoreEx.GetFarmProperty)

farmNameLPWSTRinファームの名前。
propertyNameLPWSTRin取得するプロパティの名前。
pVarValueVARIANT*inプロパティの値へのポインターを返します。

戻り値

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

vtbl 22 HRESULT DeleteTarget(LPWSTR targetName, LPWSTR hostName)

ターゲットを削除します。

targetNameLPWSTRinターゲットの名前。
hostNameLPWSTRinターゲットをホストするコンピューターの名前。

戻り値

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

vtbl 23 HRESULT SetTargetPropertyWithVersionCheck(ITsSbTarget* pTarget, LPWSTR PropertyName, VARIANT* pProperty)

ターゲットのプロパティの値を設定します。(ITsSbResourcePluginStore.SetTargetPropertyWithVersionCheck)

pTargetITsSbTarget*inターゲットへのポインター。
PropertyNameLPWSTRinプロパティの名前。
pPropertyVARIANT*in設定する値へのポインター。

戻り値

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

解説(Remarks)

ターゲットまたは環境オブジェクトが更新されると、データベース内のバージョン番号が自動的に更新されます。このメソッドは、更新したオブジェクトのバージョン番号がデータベース内の内部バージョン番号と一致することを確認してから、更新されたオブジェクトをデータベースに保存しようとします。

vtbl 24 HRESULT SetEnvironmentPropertyWithVersionCheck(ITsSbEnvironment* pEnvironment, LPWSTR PropertyName, VARIANT* pProperty)

環境のプロパティを設定します。(ITsSbResourcePluginStore.SetEnvironmentPropertyWithVersionCheck)

pEnvironmentITsSbEnvironment*in環境へのポインター。
PropertyNameLPWSTRin設定するプロパティの名前。
pPropertyVARIANT*in設定する値へのポインター。

戻り値

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

解説(Remarks)

ターゲットまたは環境オブジェクトが更新されると、データベース内のバージョン番号が自動的に更新されます。このメソッドは、更新したオブジェクトのバージョン番号がデータベース内の内部バージョン番号と一致することを確認してから、更新されたオブジェクトをデータベースに保存しようとします。

vtbl 25 HRESULT AcquireTargetLock(LPWSTR targetName, DWORD dwTimeout, IUnknown** ppContext)

ターゲットをロックします。

targetNameLPWSTRinロックするターゲットの名前。
dwTimeoutDWORDin操作のタイムアウト(ミリ秒単位)。
ppContextIUnknown**outロックのコンテキストへのポインターを返します。ロックを解放するには、このポインターを ReleaseTargetLock メソッドに渡します。

戻り値

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

解説(Remarks)

ロックが取得されると、呼び出し元のスレッドがターゲット オブジェクトへの排他的アクセス権を持つと見なされ、そのため(同じマシン内の)他のスレッドはそれを更新できません。したがって、呼び出し元のスレッドは、ターゲット オブジェクトに必要な更新を行ったら、できるだけ早く ReleaseTargetLock メソッドを呼び出す必要があります。

重要 展開に複数の接続ブローカーが存在する場合、このロックはターゲット オブジェクトが外部から変更されるのを完全に防ぐわけではありません。呼び出し元のスレッドは、障害を適切に処理し、ターゲットの更新を再試行できるように準備しておく必要があります。
vtbl 26 HRESULT ReleaseTargetLock(IUnknown* pContext)

ターゲットのロックを解放します。

pContextIUnknown*inAcquireTargetLock メソッドが返したコンテキストへのポインター。

戻り値

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

vtbl 27 HRESULT TestAndSetServerState(LPWSTR PoolName, LPWSTR ServerFQDN, TARGET_STATE NewState, TARGET_STATE TestState, TARGET_STATE* pInitState)

サーバーに条件付きで新しい状態を設定します。

PoolNameLPWSTRinプールの名前。
ServerFQDNLPWSTRinサーバーの完全修飾ドメイン名 (FQDN)。
NewStateTARGET_STATEin設定する状態。
TestStateTARGET_STATEinTARGET_UNKNOWN またはサーバーの現在の状態に設定されている場合、サーバーは NewState パラメーターで指定されたとおりに設定されます。
pInitStateTARGET_STATE*out戻り時に、サーバーの以前の状態を指します。

戻り値

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

vtbl 28 HRESULT SetServerWaitingToStart(LPWSTR PoolName, LPWSTR serverName)

サーバーが起動待ちであることをセッション ホストに通知します。

PoolNameLPWSTRinプールの名前。
serverNameLPWSTRinサーバーの名前。

戻り値

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

vtbl 29 HRESULT GetServerState(LPWSTR PoolName, LPWSTR ServerFQDN, TARGET_STATE* pState)

指定されたサーバーの状態を取得します。

PoolNameLPWSTRinプールの名前。
ServerFQDNLPWSTRinサーバーの完全修飾ドメイン名 (FQDN)。
pStateTARGET_STATE*out戻り時に、サーバーの状態を指します。

戻り値

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

vtbl 30 HRESULT SetServerDrainMode(LPWSTR ServerFQDN, DWORD DrainMode)

指定されたサーバーのドレイン モードを設定します。

ServerFQDNLPWSTRinサーバーの完全修飾ドメイン名。
DrainModeDWORDin設定するモード。

戻り値

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。