disp.h (2435B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * RDPEDISP Virtual Channel Extension 4 * 5 * Copyright 2019 Kobi Mizrachi <kmizrachi18@gmail.com> 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20#ifndef FREERDP_CHANNEL_DISP_H 21#define FREERDP_CHANNEL_DISP_H 22 23#include <freerdp/api.h> 24#include <freerdp/types.h> 25 26#define DISPLAY_CONTROL_PDU_TYPE_CAPS 0x00000005 27#define DISPLAY_CONTROL_PDU_TYPE_MONITOR_LAYOUT 0x00000002 28#define DISPLAY_CONTROL_MONITOR_LAYOUT_SIZE 40 29 30#define DISP_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::DisplayControl" 31#define ORIENTATION_LANDSCAPE 0 32#define ORIENTATION_PORTRAIT 90 33#define ORIENTATION_LANDSCAPE_FLIPPED 180 34#define ORIENTATION_PORTRAIT_FLIPPED 270 35 36#define DISPLAY_CONTROL_MONITOR_PRIMARY 0x00000001 37#define DISPLAY_CONTROL_HEADER_LENGTH 0x00000008 38 39#define DISPLAY_CONTROL_MIN_MONITOR_WIDTH 200 40#define DISPLAY_CONTROL_MAX_MONITOR_WIDTH 8192 41 42#define DISPLAY_CONTROL_MIN_MONITOR_HEIGHT 200 43#define DISPLAY_CONTROL_MAX_MONITOR_HEIGHT 8192 44 45#define DISPLAY_CONTROL_MIN_PHYSICAL_MONITOR_WIDTH 10 46#define DISPLAY_CONTROL_MAX_PHYSICAL_MONITOR_WIDTH 10000 47 48#define DISPLAY_CONTROL_MIN_PHYSICAL_MONITOR_HEIGHT 10 49#define DISPLAY_CONTROL_MAX_PHYSICAL_MONITOR_HEIGHT 10000 50 51struct _DISPLAY_CONTROL_HEADER 52{ 53 UINT32 type; 54 UINT32 length; 55}; 56typedef struct _DISPLAY_CONTROL_HEADER DISPLAY_CONTROL_HEADER; 57 58struct _DISPLAY_CONTROL_MONITOR_LAYOUT 59{ 60 UINT32 Flags; 61 INT32 Left; 62 INT32 Top; 63 UINT32 Width; 64 UINT32 Height; 65 UINT32 PhysicalWidth; 66 UINT32 PhysicalHeight; 67 UINT32 Orientation; 68 UINT32 DesktopScaleFactor; 69 UINT32 DeviceScaleFactor; 70}; 71typedef struct _DISPLAY_CONTROL_MONITOR_LAYOUT DISPLAY_CONTROL_MONITOR_LAYOUT; 72 73struct _DISPLAY_CONTROL_MONITOR_LAYOUT_PDU 74{ 75 UINT32 MonitorLayoutSize; 76 UINT32 NumMonitors; 77 DISPLAY_CONTROL_MONITOR_LAYOUT* Monitors; 78}; 79 80typedef struct _DISPLAY_CONTROL_MONITOR_LAYOUT_PDU DISPLAY_CONTROL_MONITOR_LAYOUT_PDU; 81 82#endif /* FREERDP_CHANNEL_DISP_H */