WrapCompressedRTFStream

适用于:Outlook 2013 | Outlook 2016

根据 PR_RTF_COMPRESSED (PidTagRtfCompressed) 属性中使用的压缩格式创建未压缩 RTF (RT) F 格式的文本流。

属性
标头文件:
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