WrapCompressedRTFStream
适用于:Outlook 2013 | Outlook 2016
从 PR_RTF_COMPRESSED (PidTagRtfCompressed) 属性中使用的压缩格式 ( RTF) 创建未压缩的 RTF 格式的文本流。
属性 | 值 |
---|---|
标头文件: |
Mapidefs.h |
实现者: |
MAPI |
调用者: |
客户端应用程序 |
HRESULT WrapCompressedRTFStream(
LPSTREAM lpCompressedRTFStream,
ULONG ulflags,
LPSTREAM FAR * lpUncompressedRTFStream
);
参数
lpCompressedRTFStream
[in]指向在消息的 PR_RTF_COMPRESSED 属性上打开的流的指针。
ulFlags
[in]函数的选项标志的位掩码。 可以设置以下标志:
MAPI_MODIFY
客户端是否打算读取或写入返回的包装流接口。
STORE_UNCOMPRESSED_RTF
未压缩的 RTF 应写入 lpCompressedRTFStream 指向的流
lpUncompressedRTFStream
[out]指向 WrapCompressedRTFStream 返回未压缩 RTF 流的位置的指针。
返回值
S_OK
调用成功,并返回了预期的值。
备注
如果在 ulFlags 参数中传递了 MAPI_MODIFY 标志,则 lpCompressedRTFStream 参数必须已打开以供读取和写入。 新的未压缩 RTF 文本应写入 lpUncompressedRTFStream 中返回的流接口中。 由于无法追加现有流,因此必须写入整个消息文本。
如果在 ulFlags 参数中传递零,则 lpCompressedRTFStream 可能以只读的方式打开。 只能从 lpUncompressedRTFStream 中返回的流接口中读出整个消息文本。 无法从流的中间开始搜索。
WrapCompressedRTFStream 假定压缩流的指针设置为流的开头。 返回的未压缩流不支持某些 OLE IStream 方法。 其中包括 IStream::Clone、 IStream::LockRegion、 IStream::Revert、 IStream::Seek、 IStream::SetSize、 IStream::Stat 和 IStream::UnlockRegion。 若要复制到整个流,需要一个读/写循环。
由于客户端以未压缩格式写入新的 RTF,因此它应使用 WrapCompressedRTFStream,而不是直接写入流。 RTF 感知客户端应在 PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) 属性中搜索STORE_UNCOMPRESSED_RTF标志,并将其传递给 WrapCompressed RTFStream (如果已设置)。