|
FreeRDP
|

Go to the source code of this file.
Data Structures | |
| struct | WINDOW_INFO_SOURCE |
| what the client gives the service to answer from More... | |
Functions | |
| WINPR_ATTR_NODISCARD FREERDP_API IWTSWindowInfoService * | freerdp_client_window_info_service_new (const WINDOW_INFO_SOURCE *source) |
a new service (one reference for the caller) answering from source, which is copied | |
| FREERDP_API void | freerdp_client_window_info_service_changed (IWTSWindowInfoService *service, UINT64 remoteHwnd) |
| a window changed (moved, resized, scaled, shown or hidden): the subscriber gets its new WTS_WINDOW_INFO (remoteHwnd: the remote window in a RemoteApp session, 0 for the desktop). Calls the subscriber on the calling thread. | |
| FREERDP_API void | freerdp_client_window_info_service_detach (IWTSWindowInfoService *service) |
stops using source: from now on the service answers E_UNEXPECTED. To call before what source uses goes, since channels and plugins may keep the service. | |
FreeRDP: A Remote Desktop Protocol Implementation IWTSWindowInfoService for clients
Copyright 2026 David Fort conta.nosp@m.ct@h.nosp@m.arden.nosp@m.ing-.nosp@m.consu.nosp@m.ltin.nosp@m.g.com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
The IWTSWindowInfoService a client puts in rdpContext::windowInfoService, with Microsoft's behaviour (one subscriber, synchronous Subscribe/Unsubscribe, OnWindowChanged given a copy of the new WTS_WINDOW_INFO, GetProcessId the client's process). The client only tells where its windows are.
WINDOW_INFO_SOURCE source = { me, get_window_info, get_session_type }; context->windowInfoService = freerdp_client_window_info_service_new(&source); ... // each time a window moves, resizes or changes scale: freerdp_client_window_info_service_changed(context->windowInfoService, 0); ... // in ContextFree, before me goes: freerdp_client_window_info_service_detach(context->windowInfoService); WINPR_COM_RELEASE(context->windowInfoService); context->windowInfoService = nullptr;
Definition in file window_info_service.h.
| FREERDP_API void freerdp_client_window_info_service_changed | ( | IWTSWindowInfoService * | service, |
| UINT64 | remoteHwnd | ||
| ) |
a window changed (moved, resized, scaled, shown or hidden): the subscriber gets its new WTS_WINDOW_INFO (remoteHwnd: the remote window in a RemoteApp session, 0 for the desktop). Calls the subscriber on the calling thread.
Definition at line 178 of file window_info_service.c.
| FREERDP_API void freerdp_client_window_info_service_detach | ( | IWTSWindowInfoService * | service | ) |
stops using source: from now on the service answers E_UNEXPECTED. To call before what source uses goes, since channels and plugins may keep the service.
Definition at line 204 of file window_info_service.c.
| WINPR_ATTR_NODISCARD FREERDP_API IWTSWindowInfoService * freerdp_client_window_info_service_new | ( | const WINDOW_INFO_SOURCE * | source | ) |
a new service (one reference for the caller) answering from source, which is copied
Definition at line 158 of file window_info_service.c.
References WINDOW_INFO_SOURCE::GetSessionType, WINDOW_INFO_SOURCE::GetWindowInfo, and winpr_com_base_init().
