public override StackPacket Clone()
{
Client_MCS_Connect_Initial_Pdu_with_GCC_Conference_Create_Request cloneMCSInitialPdu =
new Client_MCS_Connect_Initial_Pdu_with_GCC_Conference_Create_Request(context);
cloneMCSInitialPdu.tpktHeader = tpktHeader;
cloneMCSInitialPdu.x224Data = x224Data;
if (mcsCi != null)
{
cloneMCSInitialPdu.mcsCi = new MCSConnectInitial();
cloneMCSInitialPdu.mcsCi.calledDomainSelector = RdpbcgrUtility.CloneByteArray(mcsCi.calledDomainSelector);
cloneMCSInitialPdu.mcsCi.callingDomainSelector = RdpbcgrUtility.CloneByteArray(mcsCi.callingDomainSelector);
cloneMCSInitialPdu.mcsCi.maximumParameters = mcsCi.maximumParameters;
cloneMCSInitialPdu.mcsCi.minimumParameters = mcsCi.minimumParameters;
cloneMCSInitialPdu.mcsCi.targetParameters = mcsCi.targetParameters;
cloneMCSInitialPdu.mcsCi.upwardFlag = mcsCi.upwardFlag;
if (mcsCi.gccPdu != null)
{
#region clone mcsCi.gccPdu filed
cloneMCSInitialPdu.mcsCi.gccPdu = new ConnectGCC();
cloneMCSInitialPdu.mcsCi.gccPdu.callerIdentifier = mcsCi.gccPdu.callerIdentifier;
cloneMCSInitialPdu.mcsCi.gccPdu.conductedPrivileges =
(mcsCi.gccPdu.conductedPrivileges == null) ?
null : (int[])mcsCi.gccPdu.conductedPrivileges.Clone();
cloneMCSInitialPdu.mcsCi.gccPdu.conductibleConference = mcsCi.gccPdu.conductibleConference;
cloneMCSInitialPdu.mcsCi.gccPdu.conductorPrivileges =
(mcsCi.gccPdu.conductorPrivileges == null) ?
null : (int[])mcsCi.gccPdu.conductorPrivileges.Clone();
cloneMCSInitialPdu.mcsCi.gccPdu.conferenceDescription = mcsCi.gccPdu.conferenceDescription;
cloneMCSInitialPdu.mcsCi.gccPdu.conferenceName = mcsCi.gccPdu.conferenceName;
cloneMCSInitialPdu.mcsCi.gccPdu.convenerPassword = mcsCi.gccPdu.convenerPassword;
cloneMCSInitialPdu.mcsCi.gccPdu.h221Key = mcsCi.gccPdu.h221Key;
cloneMCSInitialPdu.mcsCi.gccPdu.listedConference = mcsCi.gccPdu.listedConference;
cloneMCSInitialPdu.mcsCi.gccPdu.lockedConference = mcsCi.gccPdu.lockedConference;
cloneMCSInitialPdu.mcsCi.gccPdu.nonConductedPrivileges =
(mcsCi.gccPdu.nonConductedPrivileges == null) ?
null : (int[])mcsCi.gccPdu.nonConductedPrivileges.Clone();
cloneMCSInitialPdu.mcsCi.gccPdu.password = mcsCi.gccPdu.password;
cloneMCSInitialPdu.mcsCi.gccPdu.terminationMethod = mcsCi.gccPdu.terminationMethod;
if (mcsCi.gccPdu.clientCoreData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData = new TS_UD_CS_CORE();
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.header =
mcsCi.gccPdu.clientCoreData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.version =
mcsCi.gccPdu.clientCoreData.version;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopHeight =
mcsCi.gccPdu.clientCoreData.desktopHeight;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopWidth =
mcsCi.gccPdu.clientCoreData.desktopWidth;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.colorDepth =
mcsCi.gccPdu.clientCoreData.colorDepth;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.SASSequence =
mcsCi.gccPdu.clientCoreData.SASSequence;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.keyboardLayout =
mcsCi.gccPdu.clientCoreData.keyboardLayout;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.clientBuild =
mcsCi.gccPdu.clientCoreData.clientBuild;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.clientDigProductId =
mcsCi.gccPdu.clientCoreData.clientDigProductId;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.clientName =
mcsCi.gccPdu.clientCoreData.clientName;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.clientProductId =
mcsCi.gccPdu.clientCoreData.clientProductId;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.connnectionType =
mcsCi.gccPdu.clientCoreData.connnectionType;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.earlyCapabilityFlags =
mcsCi.gccPdu.clientCoreData.earlyCapabilityFlags;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.highColorDepth =
mcsCi.gccPdu.clientCoreData.highColorDepth;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.imeFileName =
mcsCi.gccPdu.clientCoreData.imeFileName;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.keyboardFunctionKey =
mcsCi.gccPdu.clientCoreData.keyboardFunctionKey;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.keyboardSubType =
mcsCi.gccPdu.clientCoreData.keyboardSubType;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.keyboardType =
mcsCi.gccPdu.clientCoreData.keyboardType;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.pad1octets =
mcsCi.gccPdu.clientCoreData.pad1octets;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.postBeta2ColorDepth =
mcsCi.gccPdu.clientCoreData.postBeta2ColorDepth;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.serialNumber =
mcsCi.gccPdu.clientCoreData.serialNumber;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.serverSelectedProtocol =
mcsCi.gccPdu.clientCoreData.serverSelectedProtocol;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.supportedColorDepths =
mcsCi.gccPdu.clientCoreData.supportedColorDepths;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopPhysicalWidth =
mcsCi.gccPdu.clientCoreData.desktopPhysicalWidth;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopPhysicalHeight=
mcsCi.gccPdu.clientCoreData.desktopPhysicalHeight;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopOrientation =
mcsCi.gccPdu.clientCoreData.desktopOrientation;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.desktopScaleFactor =
mcsCi.gccPdu.clientCoreData.desktopScaleFactor;
cloneMCSInitialPdu.mcsCi.gccPdu.clientCoreData.deviceScaleFactor =
mcsCi.gccPdu.clientCoreData.deviceScaleFactor;
}
if (mcsCi.gccPdu.clientClusterData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientClusterData = new TS_UD_CS_CLUSTER();
cloneMCSInitialPdu.mcsCi.gccPdu.clientClusterData.Flags =
mcsCi.gccPdu.clientClusterData.Flags;
cloneMCSInitialPdu.mcsCi.gccPdu.clientClusterData.header =
mcsCi.gccPdu.clientClusterData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientClusterData.RedirectedSessionID =
mcsCi.gccPdu.clientClusterData.RedirectedSessionID;
}
if (mcsCi.gccPdu.clientMonitorData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData = new TS_UD_CS_MONITOR();
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData.Flags =
mcsCi.gccPdu.clientMonitorData.Flags;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData.header =
mcsCi.gccPdu.clientMonitorData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData.monitorCount =
mcsCi.gccPdu.clientMonitorData.monitorCount;
if (mcsCi.gccPdu.clientMonitorData.monitorDefArray != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData.monitorDefArray =
new Collection<TS_MONITOR_DEF>();
for (int count = 0; count < mcsCi.gccPdu.clientMonitorData.monitorDefArray.Count; count++)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorData.monitorDefArray.Add(
mcsCi.gccPdu.clientMonitorData.monitorDefArray[count]);
}
}
}
if (mcsCi.gccPdu.clientNetworkData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientNetworkData = new TS_UD_CS_NET();
cloneMCSInitialPdu.mcsCi.gccPdu.clientNetworkData.header =
mcsCi.gccPdu.clientNetworkData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientNetworkData.channelCount =
mcsCi.gccPdu.clientNetworkData.channelCount;
if (mcsCi.gccPdu.clientNetworkData.channelDefArray != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientNetworkData.channelDefArray =
new List<CHANNEL_DEF>();
cloneMCSInitialPdu.mcsCi.gccPdu.clientNetworkData.channelDefArray.AddRange
(mcsCi.gccPdu.clientNetworkData.channelDefArray);
}
}
if (mcsCi.gccPdu.clientSecurityData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientSecurityData = new TS_UD_CS_SEC();
cloneMCSInitialPdu.mcsCi.gccPdu.clientSecurityData.encryptionMethods =
mcsCi.gccPdu.clientSecurityData.encryptionMethods;
cloneMCSInitialPdu.mcsCi.gccPdu.clientSecurityData.extEncryptionMethods =
mcsCi.gccPdu.clientSecurityData.extEncryptionMethods;
cloneMCSInitialPdu.mcsCi.gccPdu.clientSecurityData.header =
mcsCi.gccPdu.clientSecurityData.header;
}
if (mcsCi.gccPdu.clientMessageChannelData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMessageChannelData = new TS_UD_CS_MCS_MSGCHANNEL();
cloneMCSInitialPdu.mcsCi.gccPdu.clientMessageChannelData.header = mcsCi.gccPdu.clientMessageChannelData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMessageChannelData.flags = mcsCi.gccPdu.clientMessageChannelData.flags;
}
if (mcsCi.gccPdu.clientMultitransportChannelData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMultitransportChannelData = new TS_UD_CS_MULTITRANSPORT();
cloneMCSInitialPdu.mcsCi.gccPdu.clientMultitransportChannelData.header = mcsCi.gccPdu.clientMultitransportChannelData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMultitransportChannelData.flags = mcsCi.gccPdu.clientMultitransportChannelData.flags;
}
if (mcsCi.gccPdu.clientMonitorExtendedData != null)
{
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData = new TS_UD_CS_MONITOR_EX();
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData.header = mcsCi.gccPdu.clientMonitorExtendedData.header;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData.flags = mcsCi.gccPdu.clientMonitorExtendedData.flags;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData.monitorAttributeSize = mcsCi.gccPdu.clientMonitorExtendedData.monitorAttributeSize;
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData.monitorCount = mcsCi.gccPdu.clientMonitorExtendedData.monitorCount;
List<TS_MONITOR_ATTRIBUTES> attributes = new List<TS_MONITOR_ATTRIBUTES>();
foreach (TS_MONITOR_ATTRIBUTES attribute in mcsCi.gccPdu.clientMonitorExtendedData.monitorAttributesArray)
{
attributes.Add(attribute.Clone());
}
cloneMCSInitialPdu.mcsCi.gccPdu.clientMonitorExtendedData.monitorAttributesArray = attributes.ToArray();
}
#endregion clone mcsCi.gccPdu filed
}
}
return cloneMCSInitialPdu;
}