internal Stream OpenPropertyStream(TnefPropertyTag propertyTag) { int num = this.prefix.Size; while (num + 16 <= this.propertiesContent.Length) { TnefPropertyTag propertyTag2 = MsgStoragePropertyData.ReadPropertyTag(this.propertiesContent, num); if (propertyTag2.ToUnicode() == propertyTag) { return(this.InternalOpenPropertyStream(propertyTag2)); } num += 16; } throw new InvalidOperationException(MsgStorageStrings.PropertyNotFound(propertyTag)); }
private void ReadCurrentProperty() { TnefPropertyTag tnefPropertyTag = MsgStoragePropertyData.ReadPropertyTag(this.propertiesContent, this.currentOffset); int propertyLength = 0; MsgStoragePropertyTypeRule msgStoragePropertyTypeRule; if (!MsgStorageRulesTable.TryFindRule(tnefPropertyTag, out msgStoragePropertyTypeRule)) { throw new MsgStorageException(MsgStorageErrorCode.InvalidPropertyType, MsgStorageStrings.CorruptData); } if (!msgStoragePropertyTypeRule.IsFixedValue) { propertyLength = MsgStoragePropertyData.ReadPropertyByteCount(this.propertiesContent, this.currentOffset); } this.currentProperty = default(MsgSubStorageReader.PropertyInfo); this.currentProperty.Tag = tnefPropertyTag; this.currentProperty.Rule = msgStoragePropertyTypeRule; this.currentProperty.PropertyLength = propertyLength; }