Creates a new attachment.
[in] Pointer to the interface identifier (IID) representing the interface to be used to access the message. Passing NULL results in the message's standard interface, or IMessage, being returned.
[in] Bitmask of flags that controls how the attachment is created. The following flag can be set:
Allows CreateAttach to return successfully, possibly before the attachment is fully accessible to the calling client. If the attachment is not accessible, making a subsequent call to it can result in an error.
[out] Pointer to an index number identifying the newly created attachment. This number is valid only when the message is open and is the basis for the attachment's PR_ATTACH_NUM (PidTagAttachNumber) property.
[out] Pointer to a pointer to the open attachment object.
The IMessage::CreateAttach method creates a new attachment on a message. The new attachment and any properties that are set for it, are not available until a client has called both the attachment's IMAPIProp::SaveChanges method and the message's IMAPIProp::SaveChanges method.
The attachment number pointed to by lpulAttachmentNum is unique and valid only within the context of the message. That is, two attachments in two different messages can have the same number while two attachments in the same message cannot.