/// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleFloatingTime type.</param>
 public PtypMultipleFloatingTime(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleGuid type.</param>
 public PtypMultipleGuid(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleBinary type.</param>
 public PtypMultipleBinary(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleCurrency type.</param>
 public PtypMultipleCurrency(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 ///  The Constructor to set the ActionLength wide size.
 /// </summary>
 /// <param name="wide">The wide size of ActionLength.</param>
 public ActionBlock(CountWideEnum wide = CountWideEnum.twoBytes)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypBinary type.</param>
 public PtypBinary(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the Count wide size and restrict type.
 /// </summary>
 /// <param name="ptypMultiCountSize">The Count wide size of ptypMutiple type.</param>
 public OrRestriction(CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
 {
     countWide = ptypMultiCountSize;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleTime type.</param>
 public PtypMultipleTime(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 ///  The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="ptypMultiCountSize">The Count wide size.</param>
 public FlaggedPropertyValueWithType(CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
 {
     countWide = ptypMultiCountSize;
 }
 /// <summary>
 /// The method to read the Count of ptyp type.
 /// </summary>
 /// <param name="countWide">The count wide.</param>
 /// <param name="s">The stream contain the COUNT</param>
 /// <returns>The COUNT value.</returns>
 public object ReadCount(CountWideEnum countWide, Stream s)
 {
     base.Parse(s);
     switch (countWide)
     {
         case CountWideEnum.twoBytes:
             {
                 return ReadUshort();
             }
         case CountWideEnum.fourBytes:
             {
                 return ReadUint();
             }
         default:
             return ReadUshort(); ;
     }
 }
 /// <summary>
 /// The Constructor to set the Property data type and the Count wide size.
 /// </summary>
 /// <param name="propertyType">The Property data type.</param>
 /// <param name="ptypMultiCountSize">The Count wide size.</param>
 public FlaggedPropertyValue(PropertyDataType propertyType, CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
 {
     PropertyType = propertyType;
     countWide = ptypMultiCountSize;
 }
 /// <summary>
 /// The constructed function for AddressBookPropertyValue.
 /// </summary>
 /// <param name="propertyDataType">The PropertyDataType for this structure</param>
 /// <param name="ptypMultiCountSize">The CountWideEnum for this structure</param>
 public AddressBookPropertyValue(PropertyDataType propertyDataType, CountWideEnum ptypMultiCountSize = CountWideEnum.fourBytes)
 {
     this.propertyDataType = propertyDataType;
     this.countWide = ptypMultiCountSize;
 }
 /// <summary>
 /// The constructed function for AddressBookPropertyRow
 /// </summary>
 /// <param name="largePropTagArray">The LargePropertyTagArray value</param>
 /// <param name="ptypMultiCountSize">The ptypMultiCountSize value</param>
 public AddressBookPropertyRow(LargePropertyTagArray largePropTagArray, CountWideEnum ptypMultiCountSize = CountWideEnum.fourBytes)
 {
     this.largePropTagArray = largePropTagArray;
     this.ptypMultiCountSize = ptypMultiCountSize;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleInteger64 type.</param>
 public PtypMultipleInteger64(CountWideEnum wide)
 {
     countWide = wide;
 }
 /// <summary>
 /// The Constructor to set the property type and Count wide size.
 /// </summary>
 /// <param name="ptypMultiCountSize">The Count wide size of ptypMutiple type.</param>
 public PropertyValue(PropertyDataType ProType, CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
 {
     countWide = ptypMultiCountSize;
     PropertyType = ProType;
 }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="wide">The Count wide size of PtypMultipleString8 type.</param>
 public PtypMultipleString8(CountWideEnum wide)
 {
     countWide = wide;
 }
        /// <summary>
        /// The method to return the object of PropertyValue.
        /// </summary>
        /// <param name="dataType">The Property data type.</param>
        /// <param name="s">A stream containing the PropertyValue structure</param>
        /// <param name="ptypMultiCountSize">The Count wide size of ptypMutiple type.</param>
        /// <returns>The object of PropertyValue.</returns>
        public object ReadPropertyValue(PropertyDataType dataType, Stream s, CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
        {
            base.Parse(s);
            object propertyValue;
            switch (dataType)
            {
                case PropertyDataType.PtypInteger16:
                    {
                        PtypInteger16 tempPropertyValue = new PtypInteger16();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypInteger32:
                    {
                        PtypInteger32 tempPropertyValue = new PtypInteger32();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypFloating32:
                    {
                        PtypFloating32 tempPropertyValue = new PtypFloating32();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypFloating64:
                    {
                        PtypFloating64 tempPropertyValue = new PtypFloating64();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypCurrency:
                    {
                        PtypCurrency tempPropertyValue = new PtypCurrency();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypFloatingTime:
                    {
                        PtypFloatingTime tempPropertyValue = new PtypFloatingTime();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypErrorCode:
                    {
                        PtypErrorCode tempPropertyValue = new PtypErrorCode();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypBoolean:
                    {
                        PtypBoolean tempPropertyValue = new PtypBoolean();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypInteger64:
                    {
                        PtypInteger64 tempPropertyValue = new PtypInteger64();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypString:
                    {
                        PtypString tempPropertyValue = new PtypString();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypString8:
                    {
                        PtypString8 tempPropertyValue = new PtypString8();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypTime:
                    {
                        PtypTime tempPropertyValue = new PtypTime();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypGuid:
                    {
                        PtypGuid tempPropertyValue = new PtypGuid();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypServerId:
                    {
                        PtypServerId tempPropertyValue = new PtypServerId();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypRestriction:
                    {
                        PtypRestriction tempPropertyValue = new PtypRestriction();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypRuleAction:
                    {
                        PtypRuleAction tempPropertyValue = new PtypRuleAction();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypUnspecified:
                    {
                        PtypUnspecified tempPropertyValue = new PtypUnspecified();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypNull:
                    {
                        PtypNull tempPropertyValue = new PtypNull();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypBinary:
                    {
                        PtypBinary tempPropertyValue = new PtypBinary(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleInteger16:
                    {
                        PtypMultipleInteger16 tempPropertyValue = new PtypMultipleInteger16(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleInteger32:
                    {
                        PtypMultipleInteger32 tempPropertyValue = new PtypMultipleInteger32(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleFloating32:
                    {
                        PtypMultipleFloating32 tempPropertyValue = new PtypMultipleFloating32(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleFloating64:
                    {
                        PtypMultipleFloating64 tempPropertyValue = new PtypMultipleFloating64(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleCurrency:
                    {
                        PtypMultipleCurrency tempPropertyValue = new PtypMultipleCurrency(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleFloatingTime:
                    {
                        PtypMultipleFloatingTime tempPropertyValue = new PtypMultipleFloatingTime(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleInteger64:
                    {
                        PtypMultipleInteger64 tempPropertyValue = new PtypMultipleInteger64(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleString:
                    {
                        PtypMultipleString tempPropertyValue = new PtypMultipleString(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleString8:
                    {
                        PtypMultipleString8 tempPropertyValue = new PtypMultipleString8(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleTime:
                    {
                        PtypMultipleTime tempPropertyValue = new PtypMultipleTime(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleGuid:
                    {
                        PtypMultipleGuid tempPropertyValue = new PtypMultipleGuid(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypMultipleBinary:
                    {
                        PtypMultipleBinary tempPropertyValue = new PtypMultipleBinary(ptypMultiCountSize);
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;
                    }
                case PropertyDataType.PtypObject_Or_PtypEmbeddedTable:
                    {
                        PtypObject_Or_PtypEmbeddedTable tempPropertyValue = new PtypObject_Or_PtypEmbeddedTable();
                        tempPropertyValue.Parse(s);
                        propertyValue = tempPropertyValue;
                        break;

                    }
                default:
                    propertyValue = null;
                    break;
            }
            return propertyValue;
        }
 /// <summary>
 /// The Constructor to set the Count wide size.
 /// </summary>
 /// <param name="ptypMultiCountSize">The Count wide size of ptypMutiple type.</param>
 public TypedPropertyValue(CountWideEnum ptypMultiCountSize = CountWideEnum.twoBytes)
 {
     countWide = ptypMultiCountSize;
 }
 /// <summary>
 ///  The Constructor to set the NoOfActions wide size.
 /// </summary>
 /// <param name="wide">The wide size of NoOfActions.</param>
 public RuleAction(CountWideEnum wide = CountWideEnum.twoBytes)
 {
     countWide = wide;
 }