IMAPIFolder::CreateMessage

适用于:Outlook 2013 | Outlook 2016

创建新消息。

HRESULT CreateMessage(
  LPCIID lpInterface,
  ULONG ulFlags,
  LPMESSAGE FAR * lppMessage
);

参数

lpInterface

[in]指向接口标识符的指针, (表示用于访问新消息的接口的 IID) 。 有效的接口标识符包括IID_IUnknown、IID_IMAPIProp、IID_IMAPIContainer和IID_IMAPIFolder。 传递 NULL 会导致消息存储提供程序返回标准消息接口 IMessage : IMAPIProp

ulFlags

[in]控制消息创建方式的标志的位掩码。 可以设置以下标志:

ITEMPROC_FORCE

向个人文件夹存储 (PST) 指示,在存储通知任何侦听客户端新邮件到达之前,邮件符合规则处理条件。 规则处理仅适用于在不是Microsoft Exchange Server的服务器上创建的新消息,因为Exchange Server处理服务器上邮件的规则。 因此,创建消息的提供程序或客户端必须将此标志与使用 NON_EMS_XP_SAVE 保存具有 IMAPIPProp::SaveChanges 的消息结合使用,这指示服务器不是Exchange Server。

MAPI_ASSOCIATED

要创建的消息应包含在关联的内容表中,而不是标准内容表中。 关联的消息对用户交互是隐藏的。

MAPI_DEFERRED_ERRORS

即使创建操作尚未完全完成,也允许 CreateMessage 成功。 这意味着新消息可能不会立即可供调用方使用。

lppMessage

[out]指向指向新创建消息的指针的指针。

返回值

S_OK

已成功创建消息。

备注

IMAPIFolder::CreateMessage 方法创建包含泛型或关联内容的新消息,并分配条目标识符。 条目标识符由表示消息存储提供程序的部件和表示单个消息的部件组成。

针对实现者的说明

可以选择是在 CreateMessage 还是消息的 IMAPIProp::SaveChanges 方法中设置所有必需的消息属性。 在成功保存之前,不必使这些属性可用。

有关如何使用相关信息的详细信息,请参阅 文件夹关联的信息表内容表

给调用方的说明

某些消息存储提供程序允许在 CreateMessage 返回后立即提供新消息的条目标识符;其他消息存储提供程序延迟其可用性,直到保存消息。 由于在调用消息的 IMAPIProp::SaveChanges 方法之前,并非所有消息存储提供程序都会为新消息生成条目标识符,因此在 CreateMessage 返回时可能无法访问条目标识符。 此外,在保存之前,新邮件可能不会包含在文件夹的内容表中。

分配给新消息的条目标识符不仅在当前消息存储中是唯一的,而且很可能在同时打开的所有消息存储中是唯一的。 当配置文件中显示消息存储的多个条目时,会出现此规则的一个例外。 这会导致多次打开消息存储,并复制条目标识符。

若要创建传出邮件,请调用发件箱文件夹的 IMAPIFolder::CreateMessage 方法。

如果在保存邮件之前删除包含新邮件的文件夹,则未定义结果。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
FolderDlg.cpp
CFolder::OnNewMessage
MFCMAPI 使用 IMAPIFolder::CreateMessage 方法创建和保存新消息。

另请参阅

IMAPIProp::SaveChanges

IMAPIFolder : IMAPIContainer

MFCMAPI 代码示例