diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol11.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol11.cs new file mode 100644 index 000000000..4db5465b1 --- /dev/null +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol11.cs @@ -0,0 +1,26 @@ +using System.Runtime.Versioning; +using System.Windows.Forms; +using AxMSTSCLib; +using MSTSCLib; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + [SupportedOSPlatform("windows")] + public class RdpProtocol11 : RdpProtocol10 + { + private MsRdpClient11NotSafeForScripting RdpClient11 => (MsRdpClient11NotSafeForScripting)((AxHost)Control).GetOcx(); + + protected override RdpVersion RdpProtocolVersion => RdpVersion.Rdc11; + + protected override AxHost CreateActiveXRdpClientControl() + { + return new AxMsRdpClient11NotSafeForScripting(); + } + + protected override void UpdateSessionDisplaySettings(uint width, uint height) + { + RdpClient11.UpdateSessionDisplaySettings(width, height, width, height, 0, 1, 1); + } + + } +} \ No newline at end of file diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocolFactory.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocolFactory.cs index e47b934ee..d9a9ac45b 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpProtocolFactory.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocolFactory.cs @@ -24,6 +24,8 @@ namespace mRemoteNG.Connection.Protocol.RDP return new RdpProtocol9(); case RdpVersion.Rdc10: return new RdpProtocol10(); + case RdpVersion.Rdc11: + return new RdpProtocol11(); default: throw new ArgumentOutOfRangeException(nameof(rdpVersion), rdpVersion, null); } diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpVersion.cs b/mRemoteNG/Connection/Protocol/RDP/RdpVersion.cs index cc1b73ea6..015141524 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpVersion.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpVersion.cs @@ -7,6 +7,7 @@ Rdc8, Rdc9, Rdc10, + Rdc11, Highest = 1000 } -} \ No newline at end of file +}