OpenTnefStream
Aplica-se a: Outlook 2013 | Outlook 2016
Chamado por um provedor de transporte para iniciar uma sessão TNEF (Formato de Encapsulamento Neutro de Transporte) mapi.
Propriedade | Valor |
---|---|
Arquivo de cabeçalho: |
Tnef.h |
Implementado por: |
MAPI |
Chamado por: |
Provedores de transporte |
HRESULT OpenTnefStream(
LPVOID lpvSupport,
LPSTREAM lpStream,
LPSTR lpszStreamName,
ULONG ulFlags,
LPMESSAGE lpMessage,
WORD wKey,
LPITNEF FAR * lppTNEF
);
Parâmetros
lpvSupport
[in] Passa um objeto de suporte ou passa em NULL.
lpStream
[in] Ponteiro para um objeto de fluxo de armazenamento interface OLE IStream fornecendo uma origem ou destino para uma mensagem de fluxo TNEF.
lpszStreamName
[in] Ponteiro para o nome do fluxo de dados que o objeto TNEF usa. Se o chamador tiver definido o sinalizador TNEF_ENCODE ( parâmetro ulFlags ) em sua chamada para OpenTnefStream, o parâmetro lpszName deverá especificar um ponteiro não nulo para uma cadeia de caracteres não nula que consiste em qualquer caractere considerado válido para nomear um arquivo. O MAPI não permite nomes de cadeia de caracteres, incluindo os caracteres "[", "]" ou ":", mesmo que o sistema de arquivos permita seu uso. O tamanho da cadeia de caracteres passada para lpszName não deve exceder o valor de MAX_PATH, o comprimento máximo de uma cadeia de caracteres que contém um nome de caminho.
ulFlags
[in] Bitmask de sinalizadores usados para indicar o modo da função. Os seguintes sinalizadores podem ser definidos:
TNEF_BEST_DATA
Todas as propriedades possíveis são mapeadas em seus atributos de nível inferior, mas quando há uma possível perda de dados devido à conversão para um atributo de nível inferior, a propriedade também é codificada nos encapsulamentos. Observe que isso causará a duplicação de informações no fluxo TNEF. TNEF_BEST_DATA será o padrão se nenhum outro modo for especificado.
TNEF_COMPATIBILITY
Fornece compatibilidade com os aplicativos cliente mais antigos. Os fluxos TNEF codificados com esse sinalizador mapearão todas as propriedades possíveis em seu atributo de nível inferior correspondente. Esse modo também causa o padrão de algumas propriedades que são exigidas por clientes de nível inferior.
Cuidado
Esse sinalizador é obsoleto e não deve ser usado.
TNEF_DECODE
O objeto TNEF no fluxo indicado é aberto com acesso somente leitura. O provedor de transporte deve definir esse sinalizador se quiser que a função inicialize o objeto para decodificação subsequente.
TNEF_ENCODE
O objeto TNEF no fluxo indicado é aberto para permissão de leitura/gravação. O provedor de transporte deve definir esse sinalizador se quiser que a função inicialize o objeto para codificação subsequente.
TNEF_PURE
Codifica todas as propriedades nos blocos de encapsulamento MAPI. Portanto, um arquivo TNEF "puro" consistirá, no máximo, em attMAPIProps, attAttachment, attRenddata e attRecipTable. Esse modo é ideal para uso quando não é necessária compatibilidade anterior.
Lpmessage
[in] Ponteiro para um objeto de mensagem como destino para uma mensagem decodificada com anexos ou uma fonte para uma mensagem codificada com anexos. Qualquer propriedade de uma mensagem de destino pode ser substituída pelas propriedades de uma mensagem codificada.
wKey
[in] Uma chave de pesquisa que o objeto TNEF usa para corresponder anexos às marcas de texto inseridas no texto da mensagem. Esse valor deve ser relativamente exclusivo entre as mensagens.
lppTNEF
[out] Ponteiro para o novo objeto TNEF.
Valor de retorno
S_OK
A chamada foi bem-sucedida e retornou o valor ou valores esperados.
Comentários
Um objeto TNEF criado pela função OpenTnefStream mais tarde chama o método OLE IUnknown::AddRef para adicionar referências para o objeto de suporte, o objeto stream e o objeto de mensagem. O provedor de transporte pode liberar as referências para todos os três objetos com uma única chamada para o método OLE IUnknown::Release no objeto TNEF.
O OpenTnefStream aloca e inicializa uma interface ITnef de objeto TNEF para o provedor usar na codificação de uma interface IMessage de mensagem MAPI em uma mensagem de fluxo TNEF. Como alternativa, a função pode configurar o objeto para o provedor usar em chamadas subsequentes para ITnef::ExtractProps para decodificar uma mensagem de fluxo TNEF em uma mensagem MAPI. Para liberar o objeto TNEF e fechar a sessão, o provedor de transporte deve chamar o método IUnknown::Release herdado no objeto.
Essa função é o ponto de entrada original para acesso TNEF e foi substituída por OpenTnefStreamEx , mas ainda é usada para compatibilidade para aqueles que já usam o TNEF.