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
lpMalloc 或 lppMsgSess 为 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 对象。 客户端或提供程序使用 OpenIMsgSession 和 CloseIMsgSession 函数将此类消息的创建包装在消息会话中。 打开消息会话后,客户端或提供程序会在调用 OpenIMsgOnIStg 时传递指向该会话的指针,以创建新的 IMessage-on- IStorage 对象。
消息会话跟踪会话期间创建的所有 IMessage-on-IStorage 对象,以及邮件的所有附件和其他属性。 当客户端或提供程序调用 CloseIMsgSession 时,它会关闭所有这些对象。 调用 CloseIMsgSession 是关闭 IMessage-on- IStorage 对象的唯一方法。
OpenIMsgSession 由需要能够将多个相关消息作为 OLE IStorage 对象进行处理的客户端和提供程序使用。 如果一次只打开一条此类消息,则无需跟踪多个消息,也无需使用 OpenIMsgSession 创建消息会话。
由于它正在处理基础 OLE 对象,因此 MAPI 需要使用 OLE 内存分配。 有关 OLE 结构化存储对象和 OLE 内存分配的详细信息,请参阅 OLE 和数据传输。