IMAPISupport::PrepareSubmit

适用于:Outlook 2013 | Outlook 2016

准备要提交到 MAPI 后台处理程序的消息。

HRESULT PrepareSubmit(
LPMESSAGE lpMessage,
ULONG FAR * lpulFlags
);

参数

lpMessage

[in]指向要准备的消息的指针。

lpulFlags

[in,out]输入时, lpulFlags 参数是保留的,必须为零。 输出时, lpulFlags 必须为 NULL。

返回值

S_OK

已成功准备消息。

备注

IMAPISupport::P repareSubmit 方法为消息存储提供程序支持对象实现。 消息存储提供程序在实现 IMessage::SubmitMessage 方法时调用 PrepareSubmit,以准备要提交到 MAPI 后台处理程序的消息。

PrepareSubmit 用于处理在其 PR_MESSAGE_FLAGS (PidTagMessageFlags) 属性中设置了 MSGFLAG_RESEND 标志的消息。 为包含请求的消息设置MSGFLAG_RESEND,以便在初始传输失败时重新发送。 PrepareSubmit 确定收件人列表中的哪些收件人成功收到邮件,哪些收件人未收到邮件。

若要访问收件人列表, PrepareSubmit 调用邮件的 IMessage::GetRecipientTable 方法。 若要检索收件人数据, PrepareSubmit 调用收件人表的 IMAPITable::QueryRows 方法。 对于表中的每一行, PrepareSubmit 会检查 PR_RECIPIENT_TYPE (PidTagRecipientType) 属性,并执行以下操作之一:

  • 如果设置了 MAPI_SUBMITTED 标志, PrepareSubmit 将清除该标志,并将 PR_RESPONSIBILITY (PidTagResponsibility) 属性设置为 FALSE。

  • 如果未设置MAPI_SUBMITTED标志, PrepareSubmit会将PR_RECIPIENT_TYPE 更改为MAPI_P1并将 PR_RESPONSIBILITY 设置为 TRUE。

给调用方的说明

在调用 PrepareSubmit 之前,请确保已调用 IMAPISupport::SpoolerNotify 方法并在 ulFlags 参数中设置 NOTIFY_READYTOSEND 标志。 在调用 PrepareSubmit 之前,每个会话必须进行一次 SpoolerNotify 调用。 SpoolerNotify 同步 MAPI 后台处理程序,并确保登录所有所需的传输提供程序并注册其地址类型。

另请参阅

IMAPIFolder::GetMessageStatus
IMessage::SubmitMessage
IMAPISupport : IUnknown