The IMAPISupport::ReadReceipt method generates a read or nonread report for a message.
HRESULT ReadReceipt(
ULONG ulFlags,
LPMESSAGE lpReadMessage,
LPMESSAGE FAR * lppEmptyMessage
);
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.
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.
IMAPIFolder::DeleteMessages, IMessage::SubmitMessage, PR_READ_RECEIPT_REQUESTED