WrapCompressedRTFStream
Aplica-se a: Outlook 2013 | Outlook 2016
Cria um fluxo de texto em RTF (Formato de Texto Rico) não compactado do formato compactado usado na propriedade PR_RTF_COMPRESSED (PidTagRtfCompressed).
Propriedade | Valor |
---|---|
Arquivo de cabeçalho: |
Mapidefs.h |
Implementado por: |
MAPI |
Chamado por: |
Aplicativos do cliente |
HRESULT WrapCompressedRTFStream(
LPSTREAM lpCompressedRTFStream,
ULONG ulflags,
LPSTREAM FAR * lpUncompressedRTFStream
);
Parâmetros
lpCompressedRTFStream
[in] Ponteiro para um fluxo aberto na propriedade PR_RTF_COMPRESSED de uma mensagem.
ulFlags
[in] Bitmask de sinalizadores de opção para a função. Os seguintes sinalizadores podem ser definidos:
MAPI_MODIFY
Se o cliente pretende ler ou gravar a interface de fluxo encapsulada retornada.
STORE_UNCOMPRESSED_RTF
O RTF não compactado deve ser gravado no fluxo apontado por lpCompressedRTFStream
lpUncompressedRTFStream
[out] Ponteiro para o local em que WrapCompressedRTFStream retorna um fluxo para o RTF não compactado.
Valor de retorno
S_OK
A chamada foi bem-sucedida e retornou o valor ou valores esperados.
Comentários
Se o sinalizador MAPI_MODIFY for passado no parâmetro ulFlags , o parâmetro lpCompressedRTFStream já deve estar aberto para leitura e gravação. Novo texto RTF não compactado deve ser gravado na interface do fluxo retornada em lpUncompressedRTFStream. Como não é possível acrescentar o fluxo existente, todo o texto da mensagem deve ser gravado.
Se zero for passado no parâmetro ulFlags , lpCompressedRTFStream poderá ser aberto somente leitura. Somente o texto inteiro da mensagem pode ser lido fora da interface do fluxo retornada em lpUncompressedRTFStream. Não é possível pesquisar a partir do meio do fluxo.
WrapCompressedRTFStream pressupõe que o ponteiro do fluxo compactado esteja definido como o início do fluxo. Certos métodos OLE IStream não têm suporte pelo fluxo não compactado retornado. Estes incluem IStream::Clone, IStream::LockRegion, IStream::Revert, IStream::Seek, IStream::SetSize, IStream::Stat e IStream::UnlockRegion. Para copiar para todo o fluxo, é necessário um loop de leitura/gravação.
Como o cliente grava novo RTF em formato não compactado, ele deve usar WrapCompressedRTFStream, em vez de gravar diretamente no fluxo. Os clientes com reconhecimento RTF devem pesquisar o sinalizador de STORE_UNCOMPRESSED_RTF na propriedade PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) e passá-lo para WrapCompressed RTFStream se ele estiver definido.