moved most RDP enums to their own files

This commit is contained in:
David Sparer
2019-05-27 12:22:26 -05:00
parent 0f7c2c83b3
commit 31240fa50d
27 changed files with 302 additions and 281 deletions

View File

@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- #1443: Chinese (simplified) translation improvements
- #1437: Norwegian translation improvements
- #1239: Increased default key derivation function (KDF) iterations from 1000 to 10000
- Moved most RDP enums outside of the RDP protocol class. Scripts which reference these enums will need to be updated.
### Fixed
- #1447: Exception occurs when resetting layout
- #1439: Searching in hosts tree loses first keystroke

View File

@@ -98,9 +98,9 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
UseCredSsp = true,
RenderingEngine = HTTPBase.RenderingEngine.Gecko,
ICAEncryptionStrength = IcaProtocol.EncryptionStrength.Encr40Bit,
RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth,
Colors = RdpProtocol.RDPColors.Colors16Bit,
Resolution = RdpProtocol.RDPResolutions.Res1366x768,
RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth,
Colors = RDPColors.Colors16Bit,
Resolution = RDPResolutions.Res1366x768,
AutomaticResize = true,
DisplayWallpaper = true,
DisplayThemes = true,
@@ -111,7 +111,7 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
RedirectPorts = true,
RedirectPrinters = true,
RedirectSmartCards = true,
RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer,
RedirectSound = RDPSounds.LeaveAtRemoteComputer,
RedirectAudioCapture = true,
RedirectKeys = true,
VNCCompression = ProtocolVNC.Compression.Comp4,
@@ -122,8 +122,8 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
VNCColors = ProtocolVNC.Colors.Col8Bit,
VNCSmartSizeMode = ProtocolVNC.SmartSizeMode.SmartSAspect,
VNCViewOnly = true,
RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect,
RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard
RDGatewayUsageMethod = RDGatewayUsageMethod.Detect,
RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard
};
}

View File

@@ -19,9 +19,9 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
private const string ExpectedGatewayHostname = "gatewayhostname.domain.com";
private const string ExpectedLoadBalanceInfo = "tsv://MS Terminal Services Plugin.1.RDS-NAME";
private const int ExpectedPort = 9933;
private const RdpProtocol.RDPColors ExpectedColors = RdpProtocol.RDPColors.Colors24Bit;
private const RDPColors ExpectedColors = RDPColors.Colors24Bit;
private const bool ExpectedBitmapCaching = false;
private const RdpProtocol.RDPResolutions ExpectedResolutionMode = RdpProtocol.RDPResolutions.FitToWindow;
private const RDPResolutions ExpectedResolutionMode = RDPResolutions.FitToWindow;
private const bool ExpectedWallpaperDisplay = true;
private const bool ExpectedThemesDisplay = true;
private const bool ExpectedFontSmoothing = true;
@@ -30,7 +30,7 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
private const bool ExpectedDriveRedirection = true;
private const bool ExpectedPortRedirection = true;
private const bool ExpectedPrinterRedirection = true;
private const RdpProtocol.RDPSounds ExpectedSoundRedirection = RdpProtocol.RDPSounds.BringToThisComputer;
private const RDPSounds ExpectedSoundRedirection = RDPSounds.BringToThisComputer;
[OneTimeSetUp]

View File

@@ -24,20 +24,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
private const string ExpectedPassword = "passwordHere!";
private const bool ExpectedUseConsoleSession = true;
private const int ExpectedPort = 9933;
private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always;
private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net";
private const string ExpectedGatewayUsername = "gatewayusername";
private const string ExpectedGatewayDomain = "innerdomain";
private const string ExpectedGatewayPassword = "gatewayPassword123";
private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow;
private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit;
private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay;
private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow;
private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit;
private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay;
private const bool ExpectedKeyRedirection = true;
private const bool ExpectedSmartcardRedirection = true;
private const bool ExpectedDriveRedirection = true;
private const bool ExpectedPortRedirection = true;
private const bool ExpectedPrinterRedirection = true;
private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth;
private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.WarnOnFailedAuth;
[OneTimeSetUp]

View File

@@ -23,20 +23,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
private const string ExpectedPassword = "passwordHere!";
private const bool ExpectedUseConsoleSession = true;
private const int ExpectedPort = 9933;
private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always;
private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net";
private const string ExpectedGatewayUsername = "gatewayusername";
private const string ExpectedGatewayDomain = "innerdomain";
private const string ExpectedGatewayPassword = "gatewayPassword123";
private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow;
private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit;
private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay;
private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow;
private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit;
private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay;
private const bool ExpectedKeyRedirection = true;
private const bool ExpectedSmartcardRedirection = true;
private const bool ExpectedDriveRedirection = true;
private const bool ExpectedPortRedirection = true;
private const bool ExpectedPrinterRedirection = true;
private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.AuthRequired;
[OneTimeSetUp]

View File

@@ -165,7 +165,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
_testAbstractConnectionInfoData.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired;
Assert.That(wasCalled, Is.True);
}
@@ -201,7 +201,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
_testAbstractConnectionInfoData.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
Assert.That(wasCalled, Is.True);
}
@@ -219,7 +219,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard;
_testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard;
Assert.That(wasCalled, Is.True);
}
@@ -255,7 +255,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.Resolution = RdpProtocol.RDPResolutions.Res1366x768;
_testAbstractConnectionInfoData.Resolution = RDPResolutions.Res1366x768;
Assert.That(wasCalled, Is.True);
}
@@ -273,7 +273,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.Colors = RdpProtocol.RDPColors.Colors16Bit;
_testAbstractConnectionInfoData.Colors = RDPColors.Colors16Bit;
Assert.That(wasCalled, Is.True);
}
@@ -372,7 +372,7 @@ namespace mRemoteNGTests.Connection
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
_testAbstractConnectionInfoData.RedirectSound = RDPSounds.DoNotPlay;
Assert.That(wasCalled, Is.True);
}

View File

@@ -222,10 +222,10 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
: new ConnectionInfo();
node.Protocol = protocol;
node.Resolution = RdpProtocol.RDPResolutions.Res800x600;
node.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never;
node.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes;
node.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
node.Resolution = RDPResolutions.Res800x600;
node.RDGatewayUsageMethod = RDGatewayUsageMethod.Never;
node.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes;
node.RedirectSound = RDPSounds.DoNotPlay;
node.VNCAuthMode = ProtocolVNC.AuthMode.AuthVNC;
node.VNCProxyType = ProtocolVNC.ProxyType.ProxyNone;
node.Inheritance.TurnOffInheritanceCompletely();

View File

@@ -18,12 +18,12 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
RunVerification();
}
[TestCase(RdpProtocol.RDGatewayUsageMethod.Always)]
[TestCase(RdpProtocol.RDGatewayUsageMethod.Detect)]
public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RdpProtocol.RDGatewayUsageMethod gatewayUsageMethod)
[TestCase(RDGatewayUsageMethod.Always)]
[TestCase(RDGatewayUsageMethod.Detect)]
public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RDGatewayUsageMethod gatewayUsageMethod)
{
ConnectionInfo.RDGatewayUsageMethod = gatewayUsageMethod;
ConnectionInfo.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes;
ConnectionInfo.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes;
ExpectedPropertyList.AddRange(new []
{
nameof(mRemoteNG.Connection.ConnectionInfo.RDGatewayHostname),
@@ -33,11 +33,11 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
RunVerification();
}
[TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.No)]
[TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard)]
public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RdpProtocol.RDGatewayUseConnectionCredentials useConnectionCredentials)
[TestCase(RDGatewayUseConnectionCredentials.No)]
[TestCase(RDGatewayUseConnectionCredentials.SmartCard)]
public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RDGatewayUseConnectionCredentials useConnectionCredentials)
{
ConnectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
ConnectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
ConnectionInfo.RDGatewayUseConnectionCredentials = useConnectionCredentials;
ExpectedPropertyList.AddRange(new []
{
@@ -54,15 +54,15 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
[Test]
public void SoundQualityPropertyShown_WhenRdpSoundsSetToBringToThisComputer()
{
ConnectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
ConnectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.SoundQuality));
RunVerification();
}
[TestCase(RdpProtocol.RDPResolutions.FitToWindow)]
[TestCase(RdpProtocol.RDPResolutions.Fullscreen)]
public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RdpProtocol.RDPResolutions resolution)
[TestCase(RDPResolutions.FitToWindow)]
[TestCase(RDPResolutions.Fullscreen)]
public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RDPResolutions resolution)
{
ConnectionInfo.Resolution = resolution;
ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.AutomaticResize));

View File

@@ -174,21 +174,21 @@ namespace mRemoteNG.Config.Serializers.Csv
if (headers.Contains("RDPAuthenticationLevel"))
{
RdpProtocol.AuthenticationLevel value;
AuthenticationLevel value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDPAuthenticationLevel")], out value))
connectionRecord.RDPAuthenticationLevel = value;
}
if (headers.Contains("Colors"))
{
RdpProtocol.RDPColors value;
RDPColors value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("Colors")], out value))
connectionRecord.Colors = value;
}
if (headers.Contains("Resolution"))
{
RdpProtocol.RDPResolutions value;
RDPResolutions value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("Resolution")], out value))
connectionRecord.Resolution = value;
}
@@ -272,7 +272,7 @@ namespace mRemoteNG.Config.Serializers.Csv
if (headers.Contains("RedirectSound"))
{
RdpProtocol.RDPSounds value;
RDPSounds value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("RedirectSound")], out value))
connectionRecord.RedirectSound = value;
}
@@ -349,14 +349,14 @@ namespace mRemoteNG.Config.Serializers.Csv
if (headers.Contains("RDGatewayUsageMethod"))
{
RdpProtocol.RDGatewayUsageMethod value;
RDGatewayUsageMethod value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUsageMethod")], out value))
connectionRecord.RDGatewayUsageMethod = value;
}
if (headers.Contains("RDGatewayUseConnectionCredentials"))
{
RdpProtocol.RDGatewayUseConnectionCredentials value;
RDGatewayUseConnectionCredentials value;
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUseConnectionCredentials")], out value))
connectionRecord.RDGatewayUseConnectionCredentials = value;
}

View File

@@ -100,15 +100,15 @@ namespace mRemoteNG.Config.Serializers.MsSql
(IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength),
(string)dataRow["ICAEncryptionStrength"]);
connectionInfo.RDPAuthenticationLevel =
(RdpProtocol.AuthenticationLevel)Enum.Parse(typeof(RdpProtocol.AuthenticationLevel),
(AuthenticationLevel)Enum.Parse(typeof(AuthenticationLevel),
(string)dataRow["RDPAuthenticationLevel"]);
connectionInfo.RDPMinutesToIdleTimeout = (int)dataRow["RDPMinutesToIdleTimeout"];
connectionInfo.RDPAlertIdleTimeout = (bool)dataRow["RDPAlertIdleTimeout"];
connectionInfo.LoadBalanceInfo = (string)dataRow["LoadBalanceInfo"];
connectionInfo.Colors =
(RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors), (string)dataRow["Colors"]);
(RDPColors)Enum.Parse(typeof(RDPColors), (string)dataRow["Colors"]);
connectionInfo.Resolution =
(RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions),
(RDPResolutions)Enum.Parse(typeof(RDPResolutions),
(string)dataRow["Resolution"]);
connectionInfo.AutomaticResize = (bool)dataRow["AutomaticResize"];
connectionInfo.DisplayWallpaper = (bool)dataRow["DisplayWallpaper"];
@@ -122,8 +122,8 @@ namespace mRemoteNG.Config.Serializers.MsSql
connectionInfo.RedirectClipboard = (bool)dataRow["RedirectClipboard"];
connectionInfo.RedirectSmartCards = (bool)dataRow["RedirectSmartCards"];
connectionInfo.RedirectSound =
(RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), (string)dataRow["RedirectSound"]);
connectionInfo.SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
(RDPSounds)Enum.Parse(typeof(RDPSounds), (string)dataRow["RedirectSound"]);
connectionInfo.SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality),
(string)dataRow["SoundQuality"]);
connectionInfo.RedirectAudioCapture = (bool)dataRow["RedirectAudioCapture"];
@@ -152,15 +152,12 @@ namespace mRemoteNG.Config.Serializers.MsSql
["VNCSmartSizeMode"]);
connectionInfo.VNCViewOnly = (bool)dataRow["VNCViewOnly"];
connectionInfo.RDGatewayUsageMethod =
(RdpProtocol.RDGatewayUsageMethod)Enum.Parse(typeof(RdpProtocol.RDGatewayUsageMethod),
(RDGatewayUsageMethod)Enum.Parse(typeof(RDGatewayUsageMethod),
(string)dataRow["RDGatewayUsageMethod"]);
connectionInfo.RDGatewayHostname = (string)dataRow["RDGatewayHostname"];
connectionInfo.RDGatewayUseConnectionCredentials =
(RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse(
typeof(RdpProtocol.
RDGatewayUseConnectionCredentials),
(string)dataRow
["RDGatewayUseConnectionCredentials"]);
(RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RDGatewayUseConnectionCredentials),
(string)dataRow["RDGatewayUseConnectionCredentials"]);
connectionInfo.RDGatewayUsername = (string)dataRow["RDGatewayUsername"];
connectionInfo.RDGatewayPassword = DecryptValue((string)dataRow["RDGatewayPassword"]);
connectionInfo.RDGatewayDomain = (string)dataRow["RDGatewayDomain"];

View File

@@ -226,8 +226,8 @@ namespace mRemoteNG.Config.Serializers.Xml
if (_confVersion < 1.1) //1.0 - 0.1
{
connectionInfo.Resolution = xmlnode.GetAttributeAsBool("Fullscreen")
? RdpProtocol.RDPResolutions.Fullscreen
: RdpProtocol.RDPResolutions.FitToWindow;
? RDPResolutions.Fullscreen
: RDPResolutions.FitToWindow;
}
if (!Runtime.UseCredentialManager || _confVersion <= 2.6) // 0.2 - 2.6
@@ -318,9 +318,9 @@ namespace mRemoteNG.Config.Serializers.Xml
if (_confVersion >= 1.3)
{
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPColors>("Colors");
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPResolutions>("Resolution");
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RDPColors>("Colors");
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RDPResolutions>("Resolution");
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RDPSounds>("RedirectSound");
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
}
else
@@ -328,25 +328,25 @@ namespace mRemoteNG.Config.Serializers.Xml
switch (xmlnode.GetAttributeAsInt("Colors"))
{
case 0:
connectionInfo.Colors = RdpProtocol.RDPColors.Colors256;
connectionInfo.Colors = RDPColors.Colors256;
break;
case 1:
connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit;
connectionInfo.Colors = RDPColors.Colors16Bit;
break;
case 2:
connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit;
connectionInfo.Colors = RDPColors.Colors24Bit;
break;
case 3:
connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit;
connectionInfo.Colors = RDPColors.Colors32Bit;
break;
// ReSharper disable once RedundantCaseLabel
case 4:
default:
connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit;
connectionInfo.Colors = RDPColors.Colors15Bit;
break;
}
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RDPSounds>("RedirectSound");
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
}
@@ -442,7 +442,7 @@ namespace mRemoteNG.Config.Serializers.Xml
if (_confVersion >= 1.8)
{
connectionInfo.RDPAuthenticationLevel =
xmlnode.GetAttributeAsEnum<RdpProtocol.AuthenticationLevel>("RDPAuthenticationLevel");
xmlnode.GetAttributeAsEnum<AuthenticationLevel>("RDPAuthenticationLevel");
connectionInfo.Inheritance.RDPAuthenticationLevel =
xmlnode.GetAttributeAsBool("InheritRDPAuthenticationLevel");
}
@@ -472,10 +472,10 @@ namespace mRemoteNG.Config.Serializers.Xml
{
// Get settings
connectionInfo.RDGatewayUsageMethod =
xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUsageMethod>("RDGatewayUsageMethod");
xmlnode.GetAttributeAsEnum<RDGatewayUsageMethod>("RDGatewayUsageMethod");
connectionInfo.RDGatewayHostname = xmlnode.GetAttributeAsString("RDGatewayHostname");
connectionInfo.RDGatewayUseConnectionCredentials =
xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUseConnectionCredentials>(
xmlnode.GetAttributeAsEnum<RDGatewayUseConnectionCredentials>(
"RDGatewayUseConnectionCredentials");
connectionInfo.RDGatewayUsername = xmlnode.GetAttributeAsString("RDGatewayUsername");
connectionInfo.RDGatewayPassword =
@@ -526,7 +526,7 @@ namespace mRemoteNG.Config.Serializers.Xml
if (_confVersion >= 2.6)
{
connectionInfo.SoundQuality =
xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSoundQuality>("SoundQuality");
xmlnode.GetAttributeAsEnum<RDPSoundQuality>("SoundQuality");
connectionInfo.Inheritance.SoundQuality = xmlnode.GetAttributeAsBool("InheritSoundQuality");
connectionInfo.RDPMinutesToIdleTimeout = xmlnode.GetAttributeAsInt("RDPMinutesToIdleTimeout");
connectionInfo.Inheritance.RDPMinutesToIdleTimeout =

View File

@@ -60,19 +60,19 @@ namespace mRemoteNG.Config.Serializers
switch (value)
{
case "8":
connectionInfo.Colors = RdpProtocol.RDPColors.Colors256;
connectionInfo.Colors = RDPColors.Colors256;
break;
case "15":
connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit;
connectionInfo.Colors = RDPColors.Colors15Bit;
break;
case "16":
connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit;
connectionInfo.Colors = RDPColors.Colors16Bit;
break;
case "24":
connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit;
connectionInfo.Colors = RDPColors.Colors24Bit;
break;
case "32":
connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit;
connectionInfo.Colors = RDPColors.Colors32Bit;
break;
}
break;
@@ -81,8 +81,8 @@ namespace mRemoteNG.Config.Serializers
break;
case "screen mode id":
connectionInfo.Resolution = value == "2"
? RdpProtocol.RDPResolutions.Fullscreen
: RdpProtocol.RDPResolutions.FitToWindow;
? RDPResolutions.Fullscreen
: RDPResolutions.FitToWindow;
break;
case "connect to console":
connectionInfo.UseConsoleSession = value == "1";
@@ -118,13 +118,13 @@ namespace mRemoteNG.Config.Serializers
switch (value)
{
case "0":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
connectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
break;
case "1":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer;
connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer;
break;
case "2":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
connectionInfo.RedirectSound = RDPSounds.DoNotPlay;
break;
}
break;
@@ -138,13 +138,13 @@ namespace mRemoteNG.Config.Serializers
switch (value)
{
case "0":
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never;
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Never;
break;
case "1":
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
break;
case "2":
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect;
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Detect;
break;
}
break;

View File

@@ -197,8 +197,8 @@ namespace mRemoteNG.Config.Serializers
{
connectionInfo.RDGatewayUsageMethod =
gatewaySettingsNode.SelectSingleNode("./enabled")?.InnerText == "True"
? RdpProtocol.RDGatewayUsageMethod.Always
: RdpProtocol.RDGatewayUsageMethod.Never;
? RDGatewayUsageMethod.Always
: RDGatewayUsageMethod.Never;
connectionInfo.RDGatewayHostname = gatewaySettingsNode.SelectSingleNode("./hostName")?.InnerText ?? string.Empty;
connectionInfo.RDGatewayUsername = gatewaySettingsNode.SelectSingleNode("./userName")?.InnerText ?? string.Empty;
@@ -225,21 +225,21 @@ namespace mRemoteNG.Config.Serializers
if (remoteDesktopNode?.Attributes?["inherit"]?.Value == "None")
{
connectionInfo.Resolution =
Enum.TryParse<RdpProtocol.RDPResolutions>(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution)
Enum.TryParse<RDPResolutions>(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution)
? rdpResolution
: RdpProtocol.RDPResolutions.FitToWindow;
: RDPResolutions.FitToWindow;
if (remoteDesktopNode.SelectSingleNode("./sameSizeAsClientArea")?.InnerText == "True")
{
connectionInfo.Resolution = RdpProtocol.RDPResolutions.FitToWindow;
connectionInfo.Resolution = RDPResolutions.FitToWindow;
}
if (remoteDesktopNode.SelectSingleNode("./fullScreen")?.InnerText == "True")
{
connectionInfo.Resolution = RdpProtocol.RDPResolutions.Fullscreen;
connectionInfo.Resolution = RDPResolutions.Fullscreen;
}
if (Enum.TryParse<RdpProtocol.RDPColors>(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors))
if (Enum.TryParse<RDPColors>(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors))
connectionInfo.Colors = rdpColors;
}
else
@@ -256,15 +256,15 @@ namespace mRemoteNG.Config.Serializers
{
case "0": // Bring to this computer
case "Client":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
connectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
break;
case "1": // Leave at remote computer
case "Remote":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer;
connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer;
break;
case "2": // Do not play
case "NoSound":
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
connectionInfo.RedirectSound = RDPSounds.DoNotPlay;
break;
}
@@ -323,15 +323,15 @@ namespace mRemoteNG.Config.Serializers
{
case "0": // No authentication
case "None":
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.NoAuth;
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.NoAuth;
break;
case "1": // Do not connect if authentication fails
case "Required":
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired;
break;
case "2": // Warn if authentication fails
case "Warn":
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth;
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth;
break;
}
}

View File

@@ -31,23 +31,23 @@ namespace mRemoteNG.Connection
private string _puttySession;
private IcaProtocol.EncryptionStrength _icaEncryption;
private bool _useConsoleSession;
private RdpProtocol.AuthenticationLevel _rdpAuthenticationLevel;
private AuthenticationLevel _rdpAuthenticationLevel;
private int _rdpMinutesToIdleTimeout;
private bool _rdpAlertIdleTimeout;
private string _loadBalanceInfo;
private HTTPBase.RenderingEngine _renderingEngine;
private bool _useCredSsp;
private RdpProtocol.RDGatewayUsageMethod _rdGatewayUsageMethod;
private RDGatewayUsageMethod _rdGatewayUsageMethod;
private string _rdGatewayHostname;
private RdpProtocol.RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials;
private RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials;
private string _rdGatewayUsername;
private string _rdGatewayPassword;
private string _rdGatewayDomain;
private RdpProtocol.RDPResolutions _resolution;
private RDPResolutions _resolution;
private bool _automaticResize;
private RdpProtocol.RDPColors _colors;
private RDPColors _colors;
private bool _cacheBitmaps;
private bool _displayWallpaper;
private bool _displayThemes;
@@ -60,8 +60,8 @@ namespace mRemoteNG.Connection
private bool _redirectClipboard;
private bool _redirectPorts;
private bool _redirectSmartCards;
private RdpProtocol.RDPSounds _redirectSound;
private RdpProtocol.RDPSoundQuality _soundQuality;
private RDPSounds _redirectSound;
private RDPSoundQuality _soundQuality;
private bool _redirectAudioCapture;
private string _preExtApp;
@@ -244,7 +244,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionAuthenticationLevel"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP)]
public RdpProtocol.AuthenticationLevel RDPAuthenticationLevel
public AuthenticationLevel RDPAuthenticationLevel
{
get => GetPropertyValue("RDPAuthenticationLevel", _rdpAuthenticationLevel);
set => SetField(ref _rdpAuthenticationLevel, value, "RDPAuthenticationLevel");
@@ -318,7 +318,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUsageMethod"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP)]
public RdpProtocol.RDGatewayUsageMethod RDGatewayUsageMethod
public RDGatewayUsageMethod RDGatewayUsageMethod
{
get => GetPropertyValue("RDGatewayUsageMethod", _rdGatewayUsageMethod);
set => SetField(ref _rdGatewayUsageMethod, value, "RDGatewayUsageMethod");
@@ -339,7 +339,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUseConnectionCredentials"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP)]
public RdpProtocol.RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials
public RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials
{
get => GetPropertyValue("RDGatewayUseConnectionCredentials", _rdGatewayUseConnectionCredentials);
set => SetField(ref _rdGatewayUseConnectionCredentials, value, "RDGatewayUseConnectionCredentials");
@@ -385,7 +385,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionResolution"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)]
public RdpProtocol.RDPResolutions Resolution
public RDPResolutions Resolution
{
get => GetPropertyValue("Resolution", _resolution);
set => SetField(ref _resolution, value, "Resolution");
@@ -407,7 +407,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionColors"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)]
public RdpProtocol.RDPColors Colors
public RDPColors Colors
{
get => GetPropertyValue("Colors", _colors);
set => SetField(ref _colors, value, "Colors");
@@ -544,7 +544,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRedirectSounds"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP)]
public RdpProtocol.RDPSounds RedirectSound
public RDPSounds RedirectSound
{
get => GetPropertyValue("RedirectSound", _redirectSound);
set => SetField(ref _redirectSound, value, "RedirectSound");
@@ -555,7 +555,7 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionSoundQuality"),
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
UsedInProtocol(ProtocolType.RDP)]
public RdpProtocol.RDPSoundQuality SoundQuality
public RDPSoundQuality SoundQuality
{
get => GetPropertyValue("SoundQuality", _soundQuality);
set => SetField(ref _soundQuality, value, "SoundQuality");

View File

@@ -297,17 +297,11 @@ namespace mRemoteNG.Connection
ExtApp = Settings.Default.ConDefaultExtApp;
Port = 0;
PuttySession = Settings.Default.ConDefaultPuttySession;
ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength),
Settings
.Default
.ConDefaultICAEncryptionStrength);
ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(
typeof(IcaProtocol.EncryptionStrength), Settings.Default.ConDefaultICAEncryptionStrength);
UseConsoleSession = Settings.Default.ConDefaultUseConsoleSession;
RDPAuthenticationLevel = (RdpProtocol.AuthenticationLevel)Enum.Parse(
typeof(RdpProtocol.AuthenticationLevel
),
Settings
.Default
.ConDefaultRDPAuthenticationLevel);
RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse(
typeof(AuthenticationLevel), Settings.Default.ConDefaultRDPAuthenticationLevel);
RDPMinutesToIdleTimeout = Settings.Default.ConDefaultRDPMinutesToIdleTimeout;
RDPAlertIdleTimeout = Settings.Default.ConDefaultRDPAlertIdleTimeout;
LoadBalanceInfo = Settings.Default.ConDefaultLoadBalanceInfo;
@@ -318,21 +312,11 @@ namespace mRemoteNG.Connection
private void SetRdGatewayDefaults()
{
RDGatewayUsageMethod = (RdpProtocol.RDGatewayUsageMethod)Enum.Parse(
typeof(RdpProtocol.RDGatewayUsageMethod
),
Settings
.Default
.ConDefaultRDGatewayUsageMethod);
RDGatewayUsageMethod = (RDGatewayUsageMethod)Enum.Parse(
typeof(RDGatewayUsageMethod), Settings.Default.ConDefaultRDGatewayUsageMethod);
RDGatewayHostname = Settings.Default.ConDefaultRDGatewayHostname;
RDGatewayUseConnectionCredentials = (RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse(
typeof(
RdpProtocol
.RDGatewayUseConnectionCredentials
),
Settings
.Default
.ConDefaultRDGatewayUseConnectionCredentials);
RDGatewayUseConnectionCredentials = (RDGatewayUseConnectionCredentials)Enum.Parse(
typeof(RDGatewayUseConnectionCredentials), Settings.Default.ConDefaultRDGatewayUseConnectionCredentials);
RDGatewayUsername = Settings.Default.ConDefaultRDGatewayUsername;
RDGatewayPassword = Settings.Default.ConDefaultRDGatewayPassword;
RDGatewayDomain = Settings.Default.ConDefaultRDGatewayDomain;
@@ -340,11 +324,10 @@ namespace mRemoteNG.Connection
private void SetAppearanceDefaults()
{
Resolution = (RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions),
Settings.Default.ConDefaultResolution);
Resolution = (RDPResolutions)Enum.Parse(
typeof(RDPResolutions), Settings.Default.ConDefaultResolution);
AutomaticResize = Settings.Default.ConDefaultAutomaticResize;
Colors = (RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors),
Settings.Default.ConDefaultColors);
Colors = (RDPColors)Enum.Parse(typeof(RDPColors), Settings.Default.ConDefaultColors);
CacheBitmaps = Settings.Default.ConDefaultCacheBitmaps;
DisplayWallpaper = Settings.Default.ConDefaultDisplayWallpaper;
DisplayThemes = Settings.Default.ConDefaultDisplayThemes;
@@ -360,9 +343,9 @@ namespace mRemoteNG.Connection
RedirectClipboard = Settings.Default.ConDefaultRedirectClipboard;
RedirectPorts = Settings.Default.ConDefaultRedirectPorts;
RedirectSmartCards = Settings.Default.ConDefaultRedirectSmartCards;
RedirectSound = (RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds),
RedirectSound = (RDPSounds)Enum.Parse(typeof(RDPSounds),
Settings.Default.ConDefaultRedirectSound);
SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality),
Settings.Default.ConDefaultSoundQuality);
RedirectAudioCapture = Settings.Default.ConDefaultRedirectAudioCapture;
}

View File

@@ -201,17 +201,17 @@ namespace mRemoteNG.Connection.Protocol.ICA
return;
}
if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.FitToWindow)
if (InterfaceControl.Info.Resolution == RDPResolutions.FitToWindow)
{
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width,
InterfaceControl.Size.Height, 0);
}
else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.SmartSize)
else if (InterfaceControl.Info.Resolution == RDPResolutions.SmartSize)
{
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width,
InterfaceControl.Size.Height, 0);
}
else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.Fullscreen)
else if (InterfaceControl.Info.Resolution == RDPResolutions.Fullscreen)
{
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient,
Screen.FromControl(_frmMain).Bounds.Width,
@@ -238,13 +238,13 @@ namespace mRemoteNG.Connection.Protocol.ICA
// ReSharper disable once SwitchStatementMissingSomeCases
switch (_info.Colors)
{
case RdpProtocol.RDPColors.Colors256:
case RDPColors.Colors256:
_icaClient.SetProp("DesiredColor", "2");
break;
case RdpProtocol.RDPColors.Colors15Bit:
case RDPColors.Colors15Bit:
_icaClient.SetProp("DesiredColor", "4");
break;
case RdpProtocol.RDPColors.Colors16Bit:
case RDPColors.Colors16Bit:
_icaClient.SetProp("DesiredColor", "4");
break;
default:

View File

@@ -0,0 +1,16 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum AuthenticationLevel
{
[LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")]
NoAuth = 0,
[LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")]
AuthRequired = 1,
[LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")]
WarnOnFailedAuth = 2
}
}

View File

@@ -0,0 +1,16 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDGatewayUsageMethod
{
[LocalizedAttributes.LocalizedDescription("strNever")]
Never = 0, // TSC_PROXY_MODE_NONE_DIRECT
[LocalizedAttributes.LocalizedDescription("strAlways")]
Always = 1, // TSC_PROXY_MODE_DIRECT
[LocalizedAttributes.LocalizedDescription("strDetect")]
Detect = 2 // TSC_PROXY_MODE_DETECT
}
}

View File

@@ -0,0 +1,16 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDGatewayUseConnectionCredentials
{
[LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")]
No = 0,
[LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")]
Yes = 1,
[LocalizedAttributes.LocalizedDescription("strUseSmartCard")]
SmartCard = 2
}
}

View File

@@ -0,0 +1,22 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDPColors
{
[LocalizedAttributes.LocalizedDescription("strRDP256Colors")]
Colors256 = 8,
[LocalizedAttributes.LocalizedDescription("strRDP32768Colors")]
Colors15Bit = 15,
[LocalizedAttributes.LocalizedDescription("strRDP65536Colors")]
Colors16Bit = 16,
[LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")]
Colors24Bit = 24,
[LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")]
Colors32Bit = 32
}
}

View File

@@ -0,0 +1,22 @@
using System.ComponentModel;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDPPerformanceFlags
{
[Description("strRDPDisableWallpaper")]
DisableWallpaper = 0x1,
// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2,
// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4,
[Description("strRDPDisableThemes")] DisableThemes = 0x8,
// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20,
// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40,
[Description("strRDPEnableFontSmoothing")]
EnableFontSmoothing = 0x80,
[Description("strRDPEnableDesktopComposition")]
EnableDesktopComposition = 0x100
}
}

View File

@@ -0,0 +1,34 @@
using System.ComponentModel;
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDPResolutions
{
[LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")]
FitToWindow,
[LocalizedAttributes.LocalizedDescription("strFullscreen")]
Fullscreen,
[LocalizedAttributes.LocalizedDescription("strRDPSmartSize")]
SmartSize,
[Description("800x600")] Res800x600,
[Description("1024x768")] Res1024x768,
[Description("1152x864")] Res1152x864,
[Description("1280x800")] Res1280x800,
[Description("1280x1024")] Res1280x1024,
[Description("1366x768")] Res1366x768,
[Description("1440x900")] Res1440x900,
[Description("1600x900")] Res1600x900,
[Description("1600x1200")] Res1600x1200,
[Description("1680x1050")] Res1680x1050,
[Description("1920x1080")] Res1920x1080,
[Description("1920x1200")] Res1920x1200,
[Description("2048x1536")] Res2048x1536,
[Description("2560x1440")] Res2560x1440,
[Description("2560x1600")] Res2560x1600,
[Description("2560x2048")] Res2560x2048,
[Description("3840x2160")] Res3840x2160
}
}

View File

@@ -0,0 +1,16 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDPSoundQuality
{
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")]
Dynamic = 0,
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")]
Medium = 1,
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")]
High = 2
}
}

View File

@@ -0,0 +1,16 @@
using mRemoteNG.Tools;
namespace mRemoteNG.Connection.Protocol.RDP
{
public enum RDPSounds
{
[LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")]
BringToThisComputer = 0,
[LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")]
LeaveAtRemoteComputer = 1,
[LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")]
DoNotPlay = 2
}
}

View File

@@ -1,5 +1,4 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Threading;
@@ -15,7 +14,7 @@ using MSTSCLib;
namespace mRemoteNG.Connection.Protocol.RDP
{
public class RdpProtocol : ProtocolBase, ISupportsViewOnly
public partial class RdpProtocol : ProtocolBase, ISupportsViewOnly
{
/* RDP v8 requires Windows 7 with:
* https://support.microsoft.com/en-us/kb/2592687
@@ -819,131 +818,6 @@ namespace mRemoteNG.Connection.Protocol.RDP
Port = 3389
}
public enum RDPColors
{
[LocalizedAttributes.LocalizedDescription("strRDP256Colors")]
Colors256 = 8,
[LocalizedAttributes.LocalizedDescription("strRDP32768Colors")]
Colors15Bit = 15,
[LocalizedAttributes.LocalizedDescription("strRDP65536Colors")]
Colors16Bit = 16,
[LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")]
Colors24Bit = 24,
[LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")]
Colors32Bit = 32
}
public enum RDPSounds
{
[LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")]
BringToThisComputer = 0,
[LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")]
LeaveAtRemoteComputer = 1,
[LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")]
DoNotPlay = 2
}
public enum RDPSoundQuality
{
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")]
Dynamic = 0,
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")]
Medium = 1,
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")]
High = 2
}
private enum RDPPerformanceFlags
{
[Description("strRDPDisableWallpaper")]
DisableWallpaper = 0x1,
// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2,
// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4,
[Description("strRDPDisableThemes")] DisableThemes = 0x8,
// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20,
// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40,
[Description("strRDPEnableFontSmoothing")]
EnableFontSmoothing = 0x80,
[Description("strRDPEnableDesktopComposition")]
EnableDesktopComposition = 0x100
}
public enum RDPResolutions
{
[LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")]
FitToWindow,
[LocalizedAttributes.LocalizedDescription("strFullscreen")]
Fullscreen,
[LocalizedAttributes.LocalizedDescription("strRDPSmartSize")]
SmartSize,
[Description("800x600")] Res800x600,
[Description("1024x768")] Res1024x768,
[Description("1152x864")] Res1152x864,
[Description("1280x800")] Res1280x800,
[Description("1280x1024")] Res1280x1024,
[Description("1366x768")] Res1366x768,
[Description("1440x900")] Res1440x900,
[Description("1600x900")] Res1600x900,
[Description("1600x1200")] Res1600x1200,
[Description("1680x1050")] Res1680x1050,
[Description("1920x1080")] Res1920x1080,
[Description("1920x1200")] Res1920x1200,
[Description("2048x1536")] Res2048x1536,
[Description("2560x1440")] Res2560x1440,
[Description("2560x1600")] Res2560x1600,
[Description("2560x2048")] Res2560x2048,
[Description("3840x2160")] Res3840x2160
}
public enum AuthenticationLevel
{
[LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")]
NoAuth = 0,
[LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")]
AuthRequired = 1,
[LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")]
WarnOnFailedAuth = 2
}
public enum RDGatewayUsageMethod
{
[LocalizedAttributes.LocalizedDescription("strNever")]
Never = 0, // TSC_PROXY_MODE_NONE_DIRECT
[LocalizedAttributes.LocalizedDescription("strAlways")]
Always = 1, // TSC_PROXY_MODE_DIRECT
[LocalizedAttributes.LocalizedDescription("strDetect")]
Detect = 2 // TSC_PROXY_MODE_DETECT
}
public enum RDGatewayUseConnectionCredentials
{
[LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")]
No = 0,
[LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")]
Yes = 1,
[LocalizedAttributes.LocalizedDescription("strUseSmartCard")]
SmartCard = 2
}
#endregion
#region Resolution

View File

@@ -221,7 +221,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
strHide.Add(nameof(AbstractConnectionRecord.RDPAlertIdleTimeout));
}
if (SelectedConnectionInfo.RDGatewayUsageMethod == RdpProtocol.RDGatewayUsageMethod.Never)
if (SelectedConnectionInfo.RDGatewayUsageMethod == RDGatewayUsageMethod.Never)
{
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain));
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayHostname));
@@ -230,20 +230,20 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername));
}
else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials ==
RdpProtocol.RDGatewayUseConnectionCredentials.Yes)
RDGatewayUseConnectionCredentials.Yes)
{
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain));
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword));
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername));
}
if (!(SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.FitToWindow ||
SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.Fullscreen))
if (!(SelectedConnectionInfo.Resolution == RDPResolutions.FitToWindow ||
SelectedConnectionInfo.Resolution == RDPResolutions.Fullscreen))
{
strHide.Add(nameof(AbstractConnectionRecord.AutomaticResize));
}
if (SelectedConnectionInfo.RedirectSound != RdpProtocol.RDPSounds.BringToThisComputer)
if (SelectedConnectionInfo.RedirectSound != RDPSounds.BringToThisComputer)
{
strHide.Add(nameof(AbstractConnectionRecord.SoundQuality));
}

View File

@@ -252,12 +252,20 @@
<Compile Include="Connection\IHasParent.cs" />
<Compile Include="Connection\Protocol\Http\Connection.Protocol.HTTPS.CertEvent.cs" />
<Compile Include="Connection\Protocol\ProtocolFactory.cs" />
<Compile Include="Connection\Protocol\RDP\AuthenticationLevel.cs" />
<Compile Include="Connection\Protocol\RDP\AzureLoadBalanceInfoEncoder.cs" />
<Compile Include="Connection\Protocol\ISupportsViewOnly.cs" />
<Compile Include="Connection\Protocol\RDP\RDGatewayUsageMethod.cs" />
<Compile Include="Connection\Protocol\RDP\RDGatewayUseConnectionCredentials.cs" />
<Compile Include="Connection\Protocol\RDP\RdpClientWrap.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Connection\Protocol\RDP\RDPColors.cs" />
<Compile Include="Connection\Protocol\RDP\RdpErrorCodes.cs" />
<Compile Include="Connection\Protocol\RDP\RDPPerformanceFlags.cs" />
<Compile Include="Connection\Protocol\RDP\RDPResolutions.cs" />
<Compile Include="Connection\Protocol\RDP\RDPSoundQuality.cs" />
<Compile Include="Connection\Protocol\RDP\RDPSounds.cs" />
<Compile Include="Connection\Protocol\VNC\VNCEnum.cs" />
<Compile Include="Connection\WebHelper.cs" />
<Compile Include="Credential\PlaceholderCredentialRecord.cs" />