IMAPISupport::ReadReceipt

The IMAPISupport::ReadReceipt method generates a read or nonread report for a message.

Quick Info

See IMAPISupport : IUnknown.

HRESULT ReadReceipt(
  ULONG ulFlags,                   
  LPMESSAGE lpReadMessage,         
  LPMESSAGE FAR * lppEmptyMessage  
);
 

Parameters

ulFlags
[in] Bitmask of flags that controls how the read or nonread report is generated. The following flag can be set:
MAPI_NON_READ
A nonread report is generated. If MAPI_NON_READ is not set, a read report is generated.
lpReadMessage
[in] Pointer to the message about which the report should be generated.
lppEmptyMessage
[in, out] On input, lppEmptyMessage points to a pointer to an empty message. On output, lppEmptyMessage points to a pointer to the report message.

Return Values

S_OK
The report was successfully generated.

Remarks

The IMAPISupport::ReadReceipt method is implemented for message store provider support objects only. Message store providers call ReadReceipt to instruct MAPI to generate a read or nonread report for the message pointed to by the lpReadMessage parameter.

Notes to Callers

Call ReadReceipt when the PR_READ_RECEIPT_REQUESTED property is set and one of the following conditions is true:

Do not call ReadReceipt when a message is deleted.

A read or nonread report should only be sent once for a message. Keep track of a message's read status and do not send multiple reports for a single message.

If lppEmptyMessage points to a valid report message when MAPI returns from ReadReceipt, call its IMessage::SubmitMessage method to send it and then release it by calling its IUnknown::Release method.

If ReadReceipt fails, the message should be released without being submitted. If you store the message's read status, you can attempt to generate the read or nonread report at a later time.

You can either hide or display read and nonread reports generated by stores in your folders. Storing read and nonread reports in hidden folders allows you to implement tighter security.

See Also

IMAPIFolder::DeleteMessages, IMessage::SubmitMessage, PR_READ_RECEIPT_REQUESTED