OpenIMsgSession

适用于:Outlook 2013 | Outlook 2016

创建并打开一个消息会话,该会话对在其中创建的消息进行分组。

属性
标头文件:
Imessage.h
实现者:
MAPI
调用者:
客户端应用程序和服务提供商
SCODE OpenIMsgSession(
  LPMALLOC lpMalloc,
  ULONG ulFlags,
  LPMSGSESS FAR * lppMsgSess
);

参数

lpMalloc

[in]指向公开 OLE IMalloc 接口的内存分配器对象的指针。 MAPI 在使用 OLE IStorage 接口时需要使用此分配方法。

ulFlags

[in]保留;必须为零。

lppMsgSess

[out]指向返回的消息会话对象的指针的指针。

返回值

S_OK

会话已打开。

MAPI_E_INVALID_PARAMETER

lpMalloclppMsgSess 为 NULL。

MAPI_E_INVALID_FLAGS

传递的标志无效。

MAPI_UNICODE

调用此函数时,客户端或服务提供程序设置MAPI_UNICODE标志以创建 Unicode .msg 文件。 生成的 Imessage 文件在其PR_STORE_SUPPORT_MASK中显示STORE_UNICODE_OK,并支持 Unicode 属性。

备注

要处理多个相关的 MAPI IMessage 的 客户端应用程序和服务提供商使用消息会话:基于基础 OLE IStorage 对象构建的 IMAPIProp 对象。 客户端或提供程序使用 OpenIMsgSessionCloseIMsgSession 函数将此类消息的创建包装在消息会话中。 打开消息会话后,客户端或提供程序会在调用 OpenIMsgOnIStg 时传递指向该会话的指针,以创建新的 IMessage-on- IStorage 对象。

消息会话跟踪会话期间创建的所有 IMessage-on-IStorage 对象,以及邮件的所有附件和其他属性。 当客户端或提供程序调用 CloseIMsgSession 时,它会关闭所有这些对象。 调用 CloseIMsgSession 是关闭 IMessage-on- IStorage 对象的唯一方法。

OpenIMsgSession 由需要能够将多个相关消息作为 OLE IStorage 对象进行处理的客户端和提供程序使用。 如果一次只打开一条此类消息,则无需跟踪多个消息,也无需使用 OpenIMsgSession 创建消息会话。

由于它正在处理基础 OLE 对象,因此 MAPI 需要使用 OLE 内存分配。 有关 OLE 结构化存储对象和 OLE 内存分配的详细信息,请参阅 OLE 和数据传输