/// <summary> /// Loads the attachment data out of the specified storage. /// </summary> /// <param name="storage"> The attachment storage. </param> /// <param name="storageName">The name of the <see cref="Storage.NativeMethods.IStorage"/> stream that containts this message</param> private void LoadAttachmentStorage(NativeMethods.IStorage storage, string storageName) { // Create attachment from attachment storage var attachment = new Attachment(new Storage(storage), storageName); var attachMethod = attachment.GetMapiPropertyInt32(MapiTags.PR_ATTACH_METHOD); switch (attachMethod) { case MapiTags.ATTACH_EMBEDDED_MSG: // Create new Message and set parent and header size var iStorageObject = attachment.GetMapiProperty(MapiTags.PR_ATTACH_DATA_BIN) as NativeMethods.IStorage; var subMsg = new Message(iStorageObject, attachment.RenderingPosition, storageName) { _parentMessage = this, _propHeaderSize = MapiTags.PropertiesStreamHeaderEmbeded }; _attachments.Add(subMsg); break; default: // Add attachment to attachment list _attachments.Add(attachment); break; } }
/// <summary> /// Loads the attachment data out of the specified storage. /// </summary> /// <param name="storage">The attachment storage.</param> private void LoadAttachmentStorage(NativeMethods.IStorage storage) { //create attachment from attachment storage Attachment attachment = new Attachment(new OutlookStorage(storage)); //if attachment is a embeded msg handle differently than an normal attachment int attachMethod = attachment.GetMapiPropertyInt32(OutlookStorage.PR_ATTACH_METHOD); if (attachMethod == OutlookStorage.ATTACH_EMBEDDED_MSG) { //create new Message and set parent and header size Message subMsg = new Message(attachment.GetMapiProperty(OutlookStorage.PR_ATTACH_DATA) as NativeMethods.IStorage); subMsg.parentMessage = this; subMsg.propHeaderSize = OutlookStorage.PROPERTIES_STREAM_HEADER_EMBEDED; //add to messages list this.messages.Add(subMsg); } else { //add attachment to attachment list this.attachments.Add(attachment); } }
/// <summary> /// Loads the attachment data out of the specified storage. /// </summary> /// <param name="storage"> The attachment storage. </param> private void LoadAttachmentStorage(NativeMethods.IStorage storage) { // Create attachment from attachment storage var attachment = new Attachment(new Storage(storage)); // If attachment is a embeded msg handle differently than an normal attachment var attachMethod = attachment.GetMapiPropertyInt32(MapiTags.PR_ATTACH_METHOD); switch (attachMethod) { case MapiTags.ATTACH_EMBEDDED_MSG: // Create new Message and set parent and header size var subMsg = new Message(attachment.GetMapiProperty(MapiTags.PR_ATTACH_DATA_BIN) as NativeMethods.IStorage, attachment.RenderingPosition) { _parentMessage = this, _propHeaderSize = MapiTags.PropertiesStreamHeaderEmbeded }; _attachments.Add(subMsg); break; default: // Add attachment to attachment list _attachments.Add(attachment); break; } }