IMessage::CreateAttach

The IMessage::CreateAttach method creates a new attachment.

Quick Info

See IMessage : IMAPIProp.

HRESULT CreateAttach(
  LPCIID lpInterface,              
  ULONG ulFlags,                   
  ULONG FAR * lpulAttachmentNum,   
  LPATTACH FAR * lppAttach         
);
 

Parameters

lpInterface
[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.
ulFlags
[in] Bitmask of flags that controls how the attachment is created. The following flag can be set:
MAPI_DEFERRED_ERRORS
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.
lpulAttachmentNum
[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 property.
lppAttach
[out] Pointer to a pointer to the open attachment object.

Return Value

S_OK
The attachment was successfully created.

Remarks

The IMessage::CreateAttach method creates a new attachment within a message. The new attachment and any properties that are set for it are not available until a client has called the attachment's IMAPIProp::SaveChanges method and the message's IMAPIProp::SaveChanges method. Both the attachment and its message have to be saved before the attachment is included in the message's attachment table.

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.