IMessage::SubmitMessage
适用于:Outlook 2013 | Outlook 2016
保存消息的所有属性,并将消息标记为已准备好发送。
HRESULT SubmitMessage(
ULONG ulFlags
);
参数
ulFlags
[in]用于控制如何提交消息的标志的位掩码。 可以设置以下标志:
FORCE_SUBMIT
MAPI 应立即提交邮件。 此标志当前未使用。
返回值
S_OK
调用成功,并返回了预期的值。
MAPI_E_NO_RECIPIENTS
邮件的收件人表为空。
备注
IMessage::SubmitMessage 方法将消息标记为已准备好传输。 MAPI 按标记为发送的顺序将消息传递到基础消息系统。 由于此功能,消息可能会在消息存储中保留一段时间,然后基础消息传送系统才可对此负责。 目标接收顺序在基础消息传送系统的控制下,不一定与发送消息的顺序相匹配。
针对实现者的说明
调用消息的 IMAPIProp::SaveChanges 方法进行保存,然后检查消息的PR_MESSAGE_FLAGS (PidTagMessageFlags) 属性。 如果设置了MSGFLAG_RESEND标志,请调用 IMAPISupport::P repareSubmit。 PrepareSubmit 更新重新发送邮件中所有 收件人的收件人 类型和PR_RESPONSIBILITY (PidTagResponsibility) 属性。
给调用方的说明
当 SubmitMessage 返回时,指向邮件及其关联的子对象邮件、文件夹、附件、流、表等的所有指针不再有效。 MAPI 不允许对这些指针执行任何进一步操作,但调用其 IUnknown::Release 方法除外。 MAPI 设计为,在调用 SubmitMessage 后,应释放消息和所有关联的子对象。 但是,如果 SubmitMessage 返回指示缺少或无效信息的错误值,则消息将保持打开状态,并且指针仍然有效。
若要取消发送操作,请在提交消息之前获取并存储指向消息 PR_ENTRYID (PidTagEntryId) 属性的指针。 由于邮件的条目标识符在提交邮件后失效,因此在调用 SubmitMessage 之前必须保存它。 若要取消发送,请将 lpEntryId 参数指向此条目标识符并调用 IMsgStore::AbortSubmit。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnSubmitMessage |
MFCMAPI 使用 IMessage::SubmitMessage 方法提交所选邮件。 |