private static object ReadSysTimeArray(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = parser.ReadPropertyStream(propertyInfo.Tag, propertyInfo.PropertyLength, 0);
     if (array != null)
     {
         int        num    = propertyInfo.PropertyLength / MsgStorageRulesTable.Int64Size;
         DateTime[] array2 = new DateTime[num];
         int        num2   = 0;
         for (int num3 = 0; num3 != num; num3++)
         {
             long fileTime = BitConverter.ToInt64(array, num2);
             try
             {
                 array2[num3] = DateTime.FromFileTimeUtc(fileTime);
             }
             catch (ArgumentOutOfRangeException)
             {
                 array2[num3] = DateTime.MinValue;
             }
             num2 += MsgStorageRulesTable.Int64Size;
         }
         return(array2);
     }
     return(null);
 }
 private static object ReadString8(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = parser.ReadPropertyStream(propertyInfo.Tag, propertyInfo.PropertyLength, 1);
     if (array != null)
     {
         return(Util.AnsiBytesToString(array, propertyInfo.PropertyLength, parser.MessageEncoding));
     }
     return(null);
 }
 private static object ReadString(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = parser.ReadPropertyStream(propertyInfo.Tag, propertyInfo.PropertyLength, 2);
     if (array != null)
     {
         return(Util.UnicodeBytesToString(array, propertyInfo.PropertyLength));
     }
     return(null);
 }
 private static object ReadDoubleArray(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = parser.ReadPropertyStream(propertyInfo.Tag, propertyInfo.PropertyLength, 0);
     if (array != null)
     {
         int      num    = propertyInfo.PropertyLength / MsgStorageRulesTable.DoubleSize;
         double[] array2 = new double[num];
         int      num2   = 0;
         for (int num3 = 0; num3 != num; num3++)
         {
             array2[num3] = BitConverter.ToDouble(array, num2);
             num2        += MsgStorageRulesTable.DoubleSize;
         }
         return(array2);
     }
     return(null);
 }
 private static object ReadGuidArray(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array  = new byte[16];
     byte[] array2 = parser.ReadPropertyStream(propertyInfo.Tag, propertyInfo.PropertyLength, 0);
     if (array2 != null)
     {
         int    num    = propertyInfo.PropertyLength / MsgStorageRulesTable.GuidSize;
         Guid[] array3 = new Guid[num];
         int    num2   = 0;
         for (int num3 = 0; num3 != num; num3++)
         {
             Array.Copy(array2, num2, array, 0, 16);
             array3[num3] = new Guid(array);
             num2        += MsgStorageRulesTable.GuidSize;
         }
         return(array3);
     }
     return(null);
 }
 private static object ReadBinary(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = new byte[propertyInfo.PropertyLength];
     parser.ReadPropertyStream(propertyInfo.Tag, array, propertyInfo.PropertyLength, 0);
     return(array);
 }
 private static object ReadGuid(MsgSubStorageReader parser, MsgSubStorageReader.PropertyInfo propertyInfo)
 {
     byte[] array = new byte[16];
     parser.ReadPropertyStream(propertyInfo.Tag, array, 16, 0);
     return(new Guid(array));
 }