概述
提供与客户端计算机上呈现的 RDP 窗口相关的信息的各种函数。 这允许插件作者查询此 RDP 窗口。 这使 RDP 插件作者能够准确地找到当前窗口,并提供有关在何处正确呈现产品的信息。 由 RDP 客户端实现。 以下枚举、结构和方法与此接口相关。
RdpSessionType
typedef enum RdpSessionType
{
Desktop = 0,
RemoteApp = 1,
} RdpSessionType;
确定 RDP 会话是桌面会话还是远程应用会话。
WTSWindowInfo
包含各种窗口相关信息。 此窗口应为正在远程运行并通过 RDP 在客户端呈现的进程。
typedef struct WTSWindowInfo
{
HWND Hwnd;
int Height;
int Width;
int ViewWidth;
int ViewHeight;
int ViewOffsetX;
int ViewOffsetY;
float Scale;
} WTSWindowInfo;
继承
IWTSWindowInfoService 接口继承自 IUnknown 接口。 IWTSWindowInfoService 也具有以下类型的成员:
方法
IWTSWindowInfoService::GetWindowInfo
HRESULT GetWindowInfo(
[in] HWND remoteHwnd,
[out] WTSWindowInfo* windowInfo
);
参数
[in] HWND remoteHwnd
客户端计算机上窗口的 HWND,显示客户端计算机上的远程进程。
[out] WTSWindowInfo* windowInfo
对应于 remoteHwnd 的实例 WTSWindowInfoobject
。
Return
成功时返回 S_OK
。
IWTSWindowInfoService::GetRdpClientProcessId
HRESULT GetRdpClientProcessId(
[out, retval] unsigned long* processId
);
参数
[out, retval] unsigned long* processId
指向 RDP 客户端进程的进程 ID 的指针。
Return
成功时返回 S_OK
。
IWTSWindowInfoService::GetRdpSessionType
HRESULT GetRdpSessionType(
[out, retval] RdpSessionType* sessionType
);
参数
[out, retval] RdpSessionType* sessionType
指向 RdpSessionType 对象的指针。
Return
成功时返回 S_OK
。
IWTSWindowInfoService::SubscribeWindowChanged
HRESULT SubscribeWindowChanged(
[in] HWND remoteHwnd,
[in] IWTSWindowChangedCallback* windowChanged
);
监视窗口的更改,并在更改时调用回调。
参数
[in] HWND remoteHwnd
要订阅以进行更改的窗口的 HWND。
[in] IWTSWindowChangedCallback* windowChanged
应在窗口更改时调用的回调。 此回调由 RDP 插件实现。
Return
成功时返回 S_OK
。
IWTSWindowInfoService::UnsubscribeWindowChanged
HRESULT UnsubscribeWindowChanged(
[in] HWND remoteHwnd,
[in] IWTSWindowChangedCallback* windowChanged
);
撤消 SubscribeWindowChanged。
参数
[in] HWND remoteHwnd
要取消订阅的窗口的 HWND。
[in] IWTSWindowChangedCallback* windowChanged
应在窗口上注销的回调将更改,即停止调用回调。
Return
成功时返回 S_OK
。
要求
要求 | 值 |
---|---|
支持的最低客户端 | Windows 11版本 24H2 (内部版本 26100) 或更高版本。 |
目标平台 | Windows |
标头 | tsvirtualchannels.h |