private object RopCopyProperties(uint sourceHandle, uint destHandle, byte sourceHandleIndex, byte destHandleIndex, byte wantAsynchronous, byte copyFlags, PropertyTag[] propertyTags)
{
this.rawDataValue = null;
this.responseValue = null;
this.responseSOHsValue = null;
RopCopyPropertiesRequest copyPropertiesRequest;
copyPropertiesRequest.RopId = (byte)RopId.RopCopyProperties;
copyPropertiesRequest.LogonId = LogonId;
copyPropertiesRequest.SourceHandleIndex = sourceHandleIndex;
copyPropertiesRequest.DestHandleIndex = destHandleIndex;
copyPropertiesRequest.WantAsynchronous = wantAsynchronous;
copyPropertiesRequest.CopyFlags = copyFlags;
copyPropertiesRequest.PropertyTags = propertyTags;
if (copyPropertiesRequest.PropertyTags != null)
{
copyPropertiesRequest.PropertyTagCount = (ushort)propertyTags.Length;
}
else
{
// CopyPropertiesRequest.PropertyTags is null, so the count of copyPropertiesRequest.PropertyTags is 0x00.
copyPropertiesRequest.PropertyTagCount = 0x00;
}
List<uint> handleList = new List<uint>
{
sourceHandle, destHandle
};
this.responseSOHsValue = this.ProcessSingleRopWithMutipleServerObjects(copyPropertiesRequest, handleList, ref this.responseValue, ref this.rawDataValue, RopResponseType.SuccessResponse);
return this.responseValue;
}