WrapCompressedRTFStream
Область применения: Outlook 2013 | Outlook 2016
Создает текстовый поток в несжатом формате RTF из сжатого формата, используемого в свойстве PR_RTF_COMPRESSED (PidTagRtfCompressed).
Свойство | Значение |
---|---|
Файл заголовка: |
Mapidefs.h |
Реализовано в: |
MAPI |
Вызывающая сторона: |
Клиентские приложения |
HRESULT WrapCompressedRTFStream(
LPSTREAM lpCompressedRTFStream,
ULONG ulflags,
LPSTREAM FAR * lpUncompressedRTFStream
);
Параметры
lpCompressedRTFStream
[в] Указатель на поток, открытый в свойстве PR_RTF_COMPRESSED сообщения.
ulFlags
[в] Битовая маска флагов параметров для функции. Можно задать следующие флаги:
MAPI_MODIFY
Указывает, намерен ли клиент считывать или записывать возвращенный интерфейс потока в оболочке.
STORE_UNCOMPRESSED_RTF
Несжатый RTF должен быть записан в поток, на который указывает lpCompressedRTFStream
lpUncompressedRTFStream
[out] Указатель на расположение, в котором WrapCompressedRTFStream возвращает поток для несжатого RTF.
Возвращаемое значение
S_OK
����� ������� � ������ ��������� ��������� ��� ��������.
Замечания
Если флаг MAPI_MODIFY передается в параметре ulFlags , параметр 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 должны найти флаг STORE_UNCOMPRESSED_RTF в свойстве PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) и передать его в WrapCompressed RTFStream , если он задан.