private static void WriteString8Array(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { string[] array = value as string[]; if (array == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(string[]), value.GetType())); } MsgStorageRulesTable.InternalWriteStringArray(writer, propertyTag.ToUnicode(), array); }
private static void WriteDouble(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { double?num = value as double?; if (num == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(double), value.GetType())); } MsgStoragePropertyData.WriteProperty(writer.PropertiesWriter, propertyTag, num.Value); }
private static void WriteString8(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { string text = value as string; if (text == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(string), value.GetType())); } MsgStorageRulesTable.InternalWriteString(writer, propertyTag.ToUnicode(), text); }
private static void WriteBinary(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { byte[] array = value as byte[]; if (array == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(byte[]), value.GetType())); } writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), array); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, array.Length); }
private static void InternalWriteString(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, string value) { MsgSubStorageWriter.WriterBuffer valueBuffer = writer.ValueBuffer; int unicodeByteCount = Util.GetUnicodeByteCount(value); byte[] array = valueBuffer.PreallocateBuffer(unicodeByteCount); int num = Util.StringToUnicodeBytes(value, array); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), array, num); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, num); }
public void StartRecipient() { this.CheckDisposed("MsgStorageWriter::StartRecipient"); this.CheckFailure(); MsgSubStorageWriter msgSubStorageWriter = this.messageWriter.OpenRecipientWriter(); if (this.componentWriter != null) { this.componentWriter.Close(); } this.componentWriter = msgSubStorageWriter; }
private static void WriteGuidArray(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { Guid[] arrayValue = value as Guid[]; if (arrayValue == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(Guid[]), value.GetType())); } MsgStorageRulesTable.WriteArray(writer, propertyTag, arrayValue.Length, delegate(BinaryWriter binaryWriter, int index) { binaryWriter.Write(arrayValue[index].ToByteArray()); }); }
private static void WriteGuid(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { Guid?guid = value as Guid?; if (guid == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(Guid), value.GetType())); } byte[] array = guid.Value.ToByteArray(); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), array); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, array.Length); }
private static void WriteBoolean(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { bool?flag = value as bool?; if (flag == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(bool), value.GetType())); } short propertyValue = flag.Value ? 1 : 0; MsgStoragePropertyData.WriteProperty(writer.PropertiesWriter, propertyTag, propertyValue); }
private static void WriteArray(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, int arrayLength, MsgStorageRulesTable.WriteValueDelegate writeValue) { MsgSubStorageWriter.WriterBuffer valueBuffer = writer.ValueBuffer; for (int num = 0; num != arrayLength; num++) { writeValue(valueBuffer.Writer, num); } int length = valueBuffer.GetLength(); byte[] buffer = valueBuffer.GetBuffer(); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), buffer, length); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, length); }
private static void InternalWriteStringArray(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, string[] arrayValue) { MsgSubStorageWriter.WriterBuffer lengthsBuffer = writer.LengthsBuffer; for (int num = 0; num != arrayValue.Length; num++) { MsgSubStorageWriter.WriterBuffer valueBuffer = writer.ValueBuffer; int unicodeByteCount = Util.GetUnicodeByteCount(arrayValue[num]); byte[] array = valueBuffer.PreallocateBuffer(unicodeByteCount); int num2 = Util.StringToUnicodeBytes(arrayValue[num], array); lengthsBuffer.Writer.Write(num2); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag, num), array, num2); } int length = lengthsBuffer.GetLength(); byte[] buffer = lengthsBuffer.GetBuffer(); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), buffer, length); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, length); }
private static void WriteArrayOfBinary(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { byte[][] array = value as byte[][]; if (array == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(byte[][]), value.GetType())); } MsgSubStorageWriter.WriterBuffer lengthsBuffer = writer.LengthsBuffer; for (int num = 0; num != array.Length; num++) { lengthsBuffer.Writer.Write(array[num].Length); lengthsBuffer.Writer.Write(0); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag, num), array[num]); } int length = lengthsBuffer.GetLength(); byte[] buffer = lengthsBuffer.GetBuffer(); writer.Storage.WriteBytesToStream(Util.PropertyStreamName(propertyTag), buffer, length); MsgStoragePropertyData.WriteStream(writer.PropertiesWriter, propertyTag, length); }
private static void WriteSysTime(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { DateTime?dateTime = value as DateTime?; if (dateTime == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(DateTime), value.GetType())); } long propertyValue = 0L; try { propertyValue = dateTime.Value.ToFileTimeUtc(); } catch (ArgumentOutOfRangeException) { propertyValue = 0L; } MsgStoragePropertyData.WriteProperty(writer.PropertiesWriter, propertyTag, propertyValue); }
private static void WriteSysTimeArray(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { DateTime[] arrayValue = value as DateTime[]; if (arrayValue == null) { throw new InvalidOperationException(MsgStorageStrings.InvalidValueType(typeof(DateTime[]), value.GetType())); } MsgStorageRulesTable.WriteArray(writer, propertyTag, arrayValue.Length, delegate(BinaryWriter binaryWriter, int index) { long value2 = 0L; try { value2 = arrayValue[index].ToFileTimeUtc(); } catch (ArgumentOutOfRangeException) { value2 = 0L; } binaryWriter.Write(value2); }); }
internal MsgSubStorageWriter OpenAttachmentWriter() { int attachmentCount = this.prefix.AttachmentCount; ComStorage comStorage = null; MsgSubStorageWriter msgSubStorageWriter = null; try { string storageName = Util.AttachmentStorageName(attachmentCount); comStorage = this.subStorage.CreateStorage(storageName, ComStorage.OpenMode.CreateWrite); msgSubStorageWriter = new MsgSubStorageWriter(this.owner, MsgSubStorageType.Attachment, comStorage); } finally { if (msgSubStorageWriter == null && comStorage != null) { comStorage.Dispose(); } } this.prefix.AttachmentCount++; return(msgSubStorageWriter); }
private static void WriteObject(MsgSubStorageWriter writer, TnefPropertyTag propertyTag, object value) { throw new NotSupportedException(MsgStorageStrings.UnsupportedPropertyType("[Object]")); }