ホーム › System.RemoteDesktop › IWRdsProtocolConnection
IWRdsProtocolConnection
COMメソッド 24
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetLogonErrorRedirector(IWRdsProtocolLogonErrorRedirector** ppLogonErrorRedir)
| ppLogonErrorRedir | IWRdsProtocolLogonErrorRedirector** | out | ログオンエラーのリダイレクトを行うインターフェイスへのポインタを受け取る。 |
vtbl 4 HRESULT AcceptConnection()
vtbl 5 HRESULT GetClientData(WTS_CLIENT_DATA* pClientData)
| pClientData | WTS_CLIENT_DATA* | out | クライアントの情報を受け取る WTS_CLIENT_DATA 構造体へのポインタである。 |
| pNumMonitors | DWORD* | out | クライアントのモニター数を受け取る。 |
| pPrimaryMonitor | DWORD* | out | プライマリモニターを示すインデックスを受け取る。 |
vtbl 7 HRESULT GetUserCredentials(WTS_USER_CREDENTIAL* pUserCreds)
| pUserCreds | WTS_USER_CREDENTIAL* | out | ユーザーの資格情報を受け取る WTS_USER_CREDENTIAL 構造体へのポインタである。 |
vtbl 8 HRESULT GetLicenseConnection(IWRdsProtocolLicenseConnection** ppLicenseConnection)
| ppLicenseConnection | IWRdsProtocolLicenseConnection** | out | ライセンス処理を行う接続インターフェイスへのポインタを受け取る。 |
vtbl 9 HRESULT AuthenticateClientToSession(WTS_SESSION_ID* SessionId)
| SessionId | WTS_SESSION_ID* | out | クライアントを認証して関連付ける対象セッションを識別する WTS_SESSION_ID 構造体へのポインタである。 |
vtbl 10 HRESULT NotifySessionId(WTS_SESSION_ID* SessionId, HANDLE_PTR SessionHandle)
| SessionId | WTS_SESSION_ID* | in | 接続に割り当てられたセッションを識別する WTS_SESSION_ID 構造体へのポインタである。 |
| SessionHandle | HANDLE_PTR | in | 対象セッションを表すハンドルを指定する。 |
vtbl 11 HRESULT GetInputHandles(HANDLE_PTR* pKeyboardHandle, HANDLE_PTR* pMouseHandle, HANDLE_PTR* pBeepHandle)
| pKeyboardHandle | HANDLE_PTR* | out | キーボード入力デバイスのハンドルを受け取る。 |
| pMouseHandle | HANDLE_PTR* | out | マウス入力デバイスのハンドルを受け取る。 |
| pBeepHandle | HANDLE_PTR* | out | ビープ出力デバイスのハンドルを受け取る。 |
vtbl 12 HRESULT GetVideoHandle(HANDLE_PTR* pVideoHandle)
| pVideoHandle | HANDLE_PTR* | out | ビデオ出力デバイスのハンドルを受け取る。 |
| SessionId | DWORD | in | 接続が確立されたセッションのセッション ID を指定する。 |
vtbl 14 HRESULT IsUserAllowedToLogon(DWORD SessionId, HANDLE_PTR UserToken, LPWSTR pDomainName, LPWSTR pUserName)
| SessionId | DWORD | in | ログオン可否を判定する対象セッションのセッション ID を指定する。 |
| UserToken | HANDLE_PTR | in | 判定対象ユーザーのアクセストークンを表すハンドルを指定する。 |
| pDomainName | LPWSTR | in | 判定対象ユーザーのドメイン名を表すワイド文字列を指定する。 |
| pUserName | LPWSTR | in | 判定対象ユーザーのユーザー名を表すワイド文字列を指定する。 |
vtbl 15 HRESULT SessionArbitrationEnumeration(HANDLE_PTR hUserToken, BOOL bSingleSessionPerUserEnabled, DWORD* pSessionIdArray, DWORD* pdwSessionIdentifierCount)
| hUserToken | HANDLE_PTR | in | 列挙対象ユーザーのアクセストークンを表すハンドルを指定する。 |
| bSingleSessionPerUserEnabled | BOOL | in | ユーザーごとに単一セッションのみを許可する設定の場合は TRUE を指定する。 |
| pSessionIdArray | DWORD* | out | 対象ユーザーに属するセッション ID の配列を受け取る。 |
| pdwSessionIdentifierCount | DWORD* | inout | 返されたセッション ID の個数を受け取る。 |
vtbl 16 HRESULT LogonNotify(HANDLE_PTR hClientToken, LPWSTR wszUserName, LPWSTR wszDomainName, WTS_SESSION_ID* SessionId, WRDS_CONNECTION_SETTINGS* pWRdsConnectionSettings)
| hClientToken | HANDLE_PTR | in | ログオンしたクライアントのアクセストークンを表すハンドルを指定する。 |
| wszUserName | LPWSTR | in | ログオンしたユーザーのユーザー名を表すワイド文字列を指定する。 |
| wszDomainName | LPWSTR | in | ログオンしたユーザーのドメイン名を表すワイド文字列を指定する。 |
| SessionId | WTS_SESSION_ID* | in | ログオンが行われたセッションを識別する WTS_SESSION_ID 構造体へのポインタである。 |
| pWRdsConnectionSettings | WRDS_CONNECTION_SETTINGS* | inout | この接続に適用される設定を格納した WRDS_CONNECTION_SETTINGS 構造体へのポインタである。 |
| DisconnectReason | DWORD | in | 切断前の処理で参照される切断理由を示すコードを指定する。 |
vtbl 18 HRESULT DisconnectNotify()
vtbl 19 HRESULT Close()
vtbl 20 HRESULT GetProtocolStatus(WTS_PROTOCOL_STATUS* pProtocolStatus)
| pProtocolStatus | WTS_PROTOCOL_STATUS* | out | プロトコルの現在の状態を受け取る WTS_PROTOCOL_STATUS 構造体へのポインタである。 |
| pLastInputTime | ULONGLONG* | out | 最後の入力が行われた時刻を受け取る。アイドル時間の判定に用いられる。 |
| ulError | DWORD | in | 設定するエラーコードを指定する。 |
vtbl 23 HRESULT CreateVirtualChannel(LPSTR szEndpointName, BOOL bStatic, DWORD RequestedPriority, UINT_PTR* phChannel)
| szEndpointName | LPSTR | in | 作成する仮想チャネルのエンドポイント名を表す文字列を指定する。 |
| bStatic | BOOL | in | 静的チャネルとして作成する場合は TRUE、動的チャネルの場合は FALSE を指定する。 |
| RequestedPriority | DWORD | in | チャネルに要求する優先度を指定する。 |
| phChannel | UINT_PTR* | out | 作成された仮想チャネルのハンドルを受け取る。 |
vtbl 24 HRESULT QueryProperty(GUID QueryType, DWORD ulNumEntriesIn, DWORD ulNumEntriesOut, WTS_PROPERTY_VALUE* pPropertyEntriesIn, WTS_PROPERTY_VALUE* pPropertyEntriesOut)
| QueryType | GUID | in | 問い合わせるプロパティの種類を識別する GUID を指定する。 |
| ulNumEntriesIn | DWORD | in | 入力プロパティ配列のエントリ数を指定する。 |
| ulNumEntriesOut | DWORD | in | 出力プロパティ配列のエントリ数を指定する。 |
| pPropertyEntriesIn | WTS_PROPERTY_VALUE* | in | 入力として渡すプロパティ値の配列へのポインタである。 |
| pPropertyEntriesOut | WTS_PROPERTY_VALUE* | out | 取得したプロパティ値を受け取る配列へのポインタである。 |
vtbl 25 HRESULT GetShadowConnection(IWRdsProtocolShadowConnection** ppShadowConnection)
| ppShadowConnection | IWRdsProtocolShadowConnection** | out | シャドウ (リモート監視) 接続を扱うインターフェイスへのポインタを受け取る。 |
| SessionId | DWORD | in | コマンドプロセスが作成されたセッションのセッション ID を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWRdsProtocolConnection "{324ED94F-FDAF-4FF6-81A8-42ABE755830B}" #usecom global IWRdsProtocolConnection IID_IWRdsProtocolConnection "{}" #comfunc global IWRdsProtocolConnection_GetLogonErrorRedirector 3 sptr #comfunc global IWRdsProtocolConnection_AcceptConnection 4 #comfunc global IWRdsProtocolConnection_GetClientData 5 var #comfunc global IWRdsProtocolConnection_GetClientMonitorData 6 var,var #comfunc global IWRdsProtocolConnection_GetUserCredentials 7 var #comfunc global IWRdsProtocolConnection_GetLicenseConnection 8 sptr #comfunc global IWRdsProtocolConnection_AuthenticateClientToSession 9 var #comfunc global IWRdsProtocolConnection_NotifySessionId 10 var,sptr #comfunc global IWRdsProtocolConnection_GetInputHandles 11 var,var,var #comfunc global IWRdsProtocolConnection_GetVideoHandle 12 var #comfunc global IWRdsProtocolConnection_ConnectNotify 13 int #comfunc global IWRdsProtocolConnection_IsUserAllowedToLogon 14 int,sptr,wstr,wstr #comfunc global IWRdsProtocolConnection_SessionArbitrationEnumeration 15 sptr,int,var,var #comfunc global IWRdsProtocolConnection_LogonNotify 16 sptr,wstr,wstr,var,var #comfunc global IWRdsProtocolConnection_PreDisconnect 17 int #comfunc global IWRdsProtocolConnection_DisconnectNotify 18 #comfunc global IWRdsProtocolConnection_Close 19 #comfunc global IWRdsProtocolConnection_GetProtocolStatus 20 var #comfunc global IWRdsProtocolConnection_GetLastInputTime 21 var #comfunc global IWRdsProtocolConnection_SetErrorInfo 22 int #comfunc global IWRdsProtocolConnection_CreateVirtualChannel 23 str,int,int,var #comfunc global IWRdsProtocolConnection_QueryProperty 24 int,int,int,var,var #comfunc global IWRdsProtocolConnection_GetShadowConnection 25 sptr #comfunc global IWRdsProtocolConnection_NotifyCommandProcessCreated 26 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWRdsProtocolConnection "{324ED94F-FDAF-4FF6-81A8-42ABE755830B}" #usecom global IWRdsProtocolConnection IID_IWRdsProtocolConnection "{}" #comfunc global IWRdsProtocolConnection_GetLogonErrorRedirector 3 sptr #comfunc global IWRdsProtocolConnection_AcceptConnection 4 #comfunc global IWRdsProtocolConnection_GetClientData 5 sptr #comfunc global IWRdsProtocolConnection_GetClientMonitorData 6 sptr,sptr #comfunc global IWRdsProtocolConnection_GetUserCredentials 7 sptr #comfunc global IWRdsProtocolConnection_GetLicenseConnection 8 sptr #comfunc global IWRdsProtocolConnection_AuthenticateClientToSession 9 sptr #comfunc global IWRdsProtocolConnection_NotifySessionId 10 sptr,sptr #comfunc global IWRdsProtocolConnection_GetInputHandles 11 sptr,sptr,sptr #comfunc global IWRdsProtocolConnection_GetVideoHandle 12 sptr #comfunc global IWRdsProtocolConnection_ConnectNotify 13 int #comfunc global IWRdsProtocolConnection_IsUserAllowedToLogon 14 int,sptr,wstr,wstr #comfunc global IWRdsProtocolConnection_SessionArbitrationEnumeration 15 sptr,int,sptr,sptr #comfunc global IWRdsProtocolConnection_LogonNotify 16 sptr,wstr,wstr,sptr,sptr #comfunc global IWRdsProtocolConnection_PreDisconnect 17 int #comfunc global IWRdsProtocolConnection_DisconnectNotify 18 #comfunc global IWRdsProtocolConnection_Close 19 #comfunc global IWRdsProtocolConnection_GetProtocolStatus 20 sptr #comfunc global IWRdsProtocolConnection_GetLastInputTime 21 sptr #comfunc global IWRdsProtocolConnection_SetErrorInfo 22 int #comfunc global IWRdsProtocolConnection_CreateVirtualChannel 23 str,int,int,sptr #comfunc global IWRdsProtocolConnection_QueryProperty 24 int,int,int,sptr,sptr #comfunc global IWRdsProtocolConnection_GetShadowConnection 25 sptr #comfunc global IWRdsProtocolConnection_NotifyCommandProcessCreated 26 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。