Platform SDK: CDO 1.2.1 |
The Delete method removes the Attachment object from the Attachments collection.
objAttach.Delete( )
The Delete method performs an irreversible operation on the collection. It calls Release on the collection's reference to the Attachment object. If you have another reference to the attachment, you can still access its properties and methods, but you can never again associate it with any collection because the Add method always creates a new object. You should Set your reference variable either to Nothing or to another attachment.
The final Release on the Attachment object takes place when you call Delete if you had no other reference, or when you assign your reference variable to Nothing. At this point the object is removed from memory. Attempted access to a released object results in an error return of CdoE_INVALID_OBJECT.
The effect of the Delete operation is not permanent until you use the Send or Delete method on the Message object to which this attachment belongs.
The immediate parent of this Attachment object is an Attachments collection, which is a child of the message. You can delete all the message's attachments by calling the collection's Delete method.
The CDO for NTS Library does not permit any modifications to messages in the Inbox, other than deleting the entire message. Prohibited modifications include adding, deleting, or modifying any attachment; adding, deleting, or modifying any recipient; and modifying any message property, even one with read/write access.
This code fragment illustrates the two situations previously explained. The Set statement calls AddRef on the first Attachment object. That reference survives the call to Delete and has to be reassigned. The second Attachment object is deleted without creating another reference, and no other action is necessary.
' assume valid Message object Set objAttach = objMessage.Attachments.Item(1) objAttach.Delete ' still have a reference from Set statement ' ... other operations on objAttachment possible but pointless ... Set objAttach = Nothing ' necessary to remove reference ' ... objMessage.Attachments.Item(2).Delete ' no reference to remove