protected override void PromoteAttachDataObject() { if (this.PropertyReader.AttachMethod == 5) { using (MsgStorageReader embeddedMessageReader = this.PropertyReader.GetEmbeddedMessageReader()) { using (InboundMessageWriter inboundMessageWriter = base.MessageWriter.OpenAttachedMessageWriter()) { InboundMsgConverter inboundMsgConverter = new InboundMsgConverter(inboundMessageWriter); inboundMsgConverter.InternalConvertToItem(embeddedMessageReader); inboundMessageWriter.Commit(); } return; } } if (this.PropertyReader.AttachMethod == 6) { using (Stream valueReadStream = this.PropertyReader.GetValueReadStream()) { using (Stream stream = base.MessageWriter.OpenOleAttachmentDataStream()) { Util.StreamHandler.CopyStreamData(valueReadStream, stream); } } } }
private void InternalConvertToItem(MsgStorageReader reader) { CoreObject.GetPersistablePropertyBag(base.CoreItem).SaveFlags |= (PropertyBagSaveFlags.IgnoreMapiComputedErrors | PropertyBagSaveFlags.IgnoreUnresolvedHeaders); this.reader = reader; this.ConvertMessage(); for (int num = 0; num != this.reader.RecipientCount; num++) { this.ConvertRecipient(num); } for (int num2 = 0; num2 != this.reader.AttachmentCount; num2++) { this.ConvertAttachment(num2); } }
public void ConvertToItem(Stream msgStorageStream) { MsgStorageReader msgStorageReader = null; try { msgStorageReader = new MsgStorageReader(msgStorageStream); this.InternalConvertToItem(msgStorageReader); } finally { if (msgStorageReader != null) { msgStorageReader.Dispose(); } } }