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