IPersistMessage::InitNew

适用于:Outlook 2013 | Outlook 2016

初始化新消息。

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

参数

pMessageSite

[in]指向窗体将用于处理查看器中的邮件的邮件网站的指针。

pMessage

[in]指向新消息的指针。

返回值

S_OK

新消息已成功初始化。

备注

当用户写入属于表单处理的邮件类的新邮件时,表单查看者调用 IPersistMessage::InitNew 方法。 如果表单对象具有有效的用户界面指针,则应显示消息对象的用户界面。

当窗体处于除“未初始化”状态之外的任何状态时,不应调用 InitNew。 如果窗体在调用 InitNew 时处于其他状态之一,则返回 E_UNEXPECTED。

针对实现者的说明

通常,具有未保存属性的消息标记为已修改,以便客户端可以显示提示用户是否保存这些属性的对话框。 如果用户指示应保存消息,请保存数据,将消息标记为干净,然后正常退出。

但是,如果新初始化的消息的处理包括设置一个或多个计算属性,并且保存这些属性很重要,请不要将消息标记为已修改。 由于计算属性对用户不可见,因此不应显示任何对话框。

如果表单引用的活动邮件网站不是传递到 InitNew 的网站,请释放原始网站,因为它将不再使用。 存储指向消息站点的指针以及 来自 pMessageSitepMessage 参数的消息,并调用这两个对象的 IUnknown::AddRef 方法来增加其引用计数。

PR_MESSAGE_FLAGS (PidTagMessageFlags) 和 PR_MSG_STATUS (PidTagMessageStatus) 新邮件的属性设置为适合邮件类的内容。 例如,许多消息类将 PR_MESSAGE_FLAGS 设置为新消息MSGFLAG_UNSENT。

在返回之前,如果没有发生错误,请将窗体转换为 “正常 ”状态。 通过调用其 IMAPIViewAdviseSink::OnNewMessage 方法向所有注册的查看者发送新消息通知,并返回S_OK。

给调用方的说明

成功调用 InitNew 后,可以假定已为窗体设置以下必需属性,且未设置其他属性:

PR_DELETE_AFTER_SUBMIT (PidTagDeleteAfterSubmit)

PR_IMPORTANCE (PidTagImportance)

PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED (PidTagOriginatorDeliveryReportRequested)

PR_PRIORITY (PidTagPriority)

PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested)

PR_SENSITIVITY (PidTagSensitivity)

PR_SENTMAIL_ENTRYID (PidTagSentMailEntryId)

有关窗体状态的详细信息,请参阅 窗体状态。 有关如何初始化存储对象的详细信息,请参阅 IPersistStorage::InitNew 方法。

另请参阅

IPersistMessage : IUnknown