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

IWRdsProtocolConnection

COM
IID324ed94f-fdaf-4ff6-81a8-42abe755830b継承元IUnknown自前メソッド開始 vtbl3

メソッド 24

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

vtbl 3 HRESULT GetLogonErrorRedirector(IWRdsProtocolLogonErrorRedirector** ppLogonErrorRedir)
ppLogonErrorRedirIWRdsProtocolLogonErrorRedirector**outログオンエラーのリダイレクトを行うインターフェイスへのポインタを受け取る。
vtbl 4 HRESULT AcceptConnection()
vtbl 5 HRESULT GetClientData(WTS_CLIENT_DATA* pClientData)
pClientDataWTS_CLIENT_DATA*outクライアントの情報を受け取る WTS_CLIENT_DATA 構造体へのポインタである。
vtbl 6 HRESULT GetClientMonitorData(DWORD* pNumMonitors, DWORD* pPrimaryMonitor)
pNumMonitorsDWORD*outクライアントのモニター数を受け取る。
pPrimaryMonitorDWORD*outプライマリモニターを示すインデックスを受け取る。
vtbl 7 HRESULT GetUserCredentials(WTS_USER_CREDENTIAL* pUserCreds)
pUserCredsWTS_USER_CREDENTIAL*outユーザーの資格情報を受け取る WTS_USER_CREDENTIAL 構造体へのポインタである。
vtbl 8 HRESULT GetLicenseConnection(IWRdsProtocolLicenseConnection** ppLicenseConnection)
ppLicenseConnectionIWRdsProtocolLicenseConnection**outライセンス処理を行う接続インターフェイスへのポインタを受け取る。
vtbl 9 HRESULT AuthenticateClientToSession(WTS_SESSION_ID* SessionId)
SessionIdWTS_SESSION_ID*outクライアントを認証して関連付ける対象セッションを識別する WTS_SESSION_ID 構造体へのポインタである。
vtbl 10 HRESULT NotifySessionId(WTS_SESSION_ID* SessionId, HANDLE_PTR SessionHandle)
SessionIdWTS_SESSION_ID*in接続に割り当てられたセッションを識別する WTS_SESSION_ID 構造体へのポインタである。
SessionHandleHANDLE_PTRin対象セッションを表すハンドルを指定する。
vtbl 11 HRESULT GetInputHandles(HANDLE_PTR* pKeyboardHandle, HANDLE_PTR* pMouseHandle, HANDLE_PTR* pBeepHandle)
pKeyboardHandleHANDLE_PTR*outキーボード入力デバイスのハンドルを受け取る。
pMouseHandleHANDLE_PTR*outマウス入力デバイスのハンドルを受け取る。
pBeepHandleHANDLE_PTR*outビープ出力デバイスのハンドルを受け取る。
vtbl 12 HRESULT GetVideoHandle(HANDLE_PTR* pVideoHandle)
pVideoHandleHANDLE_PTR*outビデオ出力デバイスのハンドルを受け取る。
vtbl 13 HRESULT ConnectNotify(DWORD SessionId)
SessionIdDWORDin接続が確立されたセッションのセッション ID を指定する。
vtbl 14 HRESULT IsUserAllowedToLogon(DWORD SessionId, HANDLE_PTR UserToken, LPWSTR pDomainName, LPWSTR pUserName)
SessionIdDWORDinログオン可否を判定する対象セッションのセッション ID を指定する。
UserTokenHANDLE_PTRin判定対象ユーザーのアクセストークンを表すハンドルを指定する。
pDomainNameLPWSTRin判定対象ユーザーのドメイン名を表すワイド文字列を指定する。
pUserNameLPWSTRin判定対象ユーザーのユーザー名を表すワイド文字列を指定する。
vtbl 15 HRESULT SessionArbitrationEnumeration(HANDLE_PTR hUserToken, BOOL bSingleSessionPerUserEnabled, DWORD* pSessionIdArray, DWORD* pdwSessionIdentifierCount)
hUserTokenHANDLE_PTRin列挙対象ユーザーのアクセストークンを表すハンドルを指定する。
bSingleSessionPerUserEnabledBOOLinユーザーごとに単一セッションのみを許可する設定の場合は TRUE を指定する。
pSessionIdArrayDWORD*out対象ユーザーに属するセッション ID の配列を受け取る。
pdwSessionIdentifierCountDWORD*inout返されたセッション ID の個数を受け取る。
vtbl 16 HRESULT LogonNotify(HANDLE_PTR hClientToken, LPWSTR wszUserName, LPWSTR wszDomainName, WTS_SESSION_ID* SessionId, WRDS_CONNECTION_SETTINGS* pWRdsConnectionSettings)
hClientTokenHANDLE_PTRinログオンしたクライアントのアクセストークンを表すハンドルを指定する。
wszUserNameLPWSTRinログオンしたユーザーのユーザー名を表すワイド文字列を指定する。
wszDomainNameLPWSTRinログオンしたユーザーのドメイン名を表すワイド文字列を指定する。
SessionIdWTS_SESSION_ID*inログオンが行われたセッションを識別する WTS_SESSION_ID 構造体へのポインタである。
pWRdsConnectionSettingsWRDS_CONNECTION_SETTINGS*inoutこの接続に適用される設定を格納した WRDS_CONNECTION_SETTINGS 構造体へのポインタである。
vtbl 17 HRESULT PreDisconnect(DWORD DisconnectReason)
DisconnectReasonDWORDin切断前の処理で参照される切断理由を示すコードを指定する。
vtbl 18 HRESULT DisconnectNotify()
vtbl 19 HRESULT Close()
vtbl 20 HRESULT GetProtocolStatus(WTS_PROTOCOL_STATUS* pProtocolStatus)
pProtocolStatusWTS_PROTOCOL_STATUS*outプロトコルの現在の状態を受け取る WTS_PROTOCOL_STATUS 構造体へのポインタである。
vtbl 21 HRESULT GetLastInputTime(ULONGLONG* pLastInputTime)
pLastInputTimeULONGLONG*out最後の入力が行われた時刻を受け取る。アイドル時間の判定に用いられる。
vtbl 22 HRESULT SetErrorInfo(DWORD ulError)
ulErrorDWORDin設定するエラーコードを指定する。
vtbl 23 HRESULT CreateVirtualChannel(LPSTR szEndpointName, BOOL bStatic, DWORD RequestedPriority, UINT_PTR* phChannel)
szEndpointNameLPSTRin作成する仮想チャネルのエンドポイント名を表す文字列を指定する。
bStaticBOOLin静的チャネルとして作成する場合は TRUE、動的チャネルの場合は FALSE を指定する。
RequestedPriorityDWORDinチャネルに要求する優先度を指定する。
phChannelUINT_PTR*out作成された仮想チャネルのハンドルを受け取る。
vtbl 24 HRESULT QueryProperty(GUID QueryType, DWORD ulNumEntriesIn, DWORD ulNumEntriesOut, WTS_PROPERTY_VALUE* pPropertyEntriesIn, WTS_PROPERTY_VALUE* pPropertyEntriesOut)
QueryTypeGUIDin問い合わせるプロパティの種類を識別する GUID を指定する。
ulNumEntriesInDWORDin入力プロパティ配列のエントリ数を指定する。
ulNumEntriesOutDWORDin出力プロパティ配列のエントリ数を指定する。
pPropertyEntriesInWTS_PROPERTY_VALUE*in入力として渡すプロパティ値の配列へのポインタである。
pPropertyEntriesOutWTS_PROPERTY_VALUE*out取得したプロパティ値を受け取る配列へのポインタである。
vtbl 25 HRESULT GetShadowConnection(IWRdsProtocolShadowConnection** ppShadowConnection)
ppShadowConnectionIWRdsProtocolShadowConnection**outシャドウ (リモート監視) 接続を扱うインターフェイスへのポインタを受け取る。
vtbl 26 HRESULT NotifyCommandProcessCreated(DWORD SessionId)
SessionIdDWORDinコマンドプロセスが作成されたセッションのセッション 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 指定が可能。