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::CloneIStream::LockRegionIStream::RevertIStream::SeekIStream::SetSizeIStream::StatIStream::UnlockRegion。 若要复制到整个流,需要一个读/写循环。

由于客户端以未压缩格式写入新的 RTF,因此它应使用 WrapCompressedRTFStream,而不是直接写入流。 RTF 感知客户端应在 PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) 属性中搜索STORE_UNCOMPRESSED_RTF标志,并将其传递给 WrapCompressed RTFStream (如果已设置)。

另请参阅

RTFSync