Compartilhar via


ITnef::ExtractProps

Aplica-se a: Outlook 2013 | Outlook 2016

Extrai as propriedades de um encapsulamento TNEF.

HRESULT ExtractProps(
  ULONG ulFlags,
  LPSPropTagArray lpPropList,
  LPSTnefProblemArray FAR * lpProblems
);

Parâmetros

ulFlags

[in] Um bitmask de sinalizadores que controla como as propriedades são decodificadas. Os seguintes sinalizadores podem ser definidos:

TNEF_PROP_EXCLUDE

Decodifica todas as propriedades não especificadas no parâmetro lpPropList .

TNEF_PROP_INCLUDE

Decodifica todas as propriedades especificadas no lpPropList.

lpPropList

[in] Um ponteiro para a lista de propriedades a serem incluídas ou excluídas da operação de decodificação.

lpProblems

[out] Um ponteiro para um ponteiro para uma estrutura STnefProblemArray retornada. A estrutura STnefProblemArray indica quais propriedades, se houver, não foram codificadas corretamente. Se NULL for passado no parâmetro lpProblems , nenhuma matriz de problemas de propriedade será retornada.

Valor de retorno

S_OK

A chamada foi bem-sucedida e retornou o valor ou valores esperados.

MAPI_E_CORRUPT_DATA

Os dados que estão sendo decodificados em um fluxo estão corrompidos.

Comentários

Provedores de transporte, provedores de armazenamento de mensagens e gateways chamam o método ITnef::ExtractProps para extrair propriedades (ou seja, decodificar) do encapsulamento de uma mensagem ou de um anexo que foi passado para a função OpenTnefStream . O provedor ou gateway de chamada pode especificar uma lista de propriedades a serem decodificadas. Provedores e gateways também podem usar ExtractProps para fornecer informações sobre qualquer tratamento especial para anexos.

ExtractProps preenche a mensagem original passada para OpenTnefStream com as propriedades decodificadas. As chamadas ExtractProps subsequentes voltam para a mensagem e extraem a nova lista de propriedades.

Ao contrário do método ITnef::AddProps , que faz filas de ações solicitadas até que o método ITnef::Finish seja chamado, o método ExtractProps decodifica as propriedades encapsuladas imediatamente quando é chamado. Por esse motivo, a mensagem de destino para decodificação de encapsulamento deve estar relativamente vazia. As propriedades existentes na mensagem de destino são substituídas por propriedades encapsuladas.

O ExtractProps só tem suporte para objetos abertos com o sinalizador TNEF_DECODE para a função OpenTnefStream ou OpenTnefStreamEx .

A implementação do TNEF relata problemas de codificação de fluxo TNEF sem interromper o processo ExtractProps . A estrutura STnefProblemArray retornada em lpProblems indica quais atributos TNEF ou propriedades MAPI, se houver, não puderam ser processados. O valor retornado no membro de código de uma das estruturas STnefProblem contidas no STnefProblemArray indica o problema específico. O provedor ou gateway pode trabalhar na suposição de que todas as propriedades ou atributos para os quais o ExtractProps não retorna um relatório de problema foram processados com êxito.

Observação

Se uma propriedade no bloco de encapsulamento MAPI não puder ser processada e deixar o fluxo não confiável durante a decodificação de um fluxo TNEF, a decodificação do bloco de encapsulamento será interrompida e um problema será relatado. A matriz de problemas para esse tipo de problema contém 0L para o membro attMAPIPropsulPropTag ou attAttachment para o membro ulAttribute e MAPI_E_UNABLE_TO_COMPLETE para o membro scode. Observe que a decodificação do fluxo não está interrompida, apenas a decodificação do bloco de encapsulamento MAPI. A decodificação do fluxo continua com o próximo bloco de atributos.

Se um provedor ou gateway não funcionar com matrizes problemáticas, ele poderá passar NULL em lppProblems; nesse caso, nenhuma matriz de problemas é retornada.

O valor retornado em lpProblems só será válido se a chamada retornar S_OK. Quando S_OK é retornado, o provedor ou gateway deve marcar os valores retornados na estrutura STnefProblemArray. Se ocorrer um erro na chamada, a estrutura STnefProblemArray não será preenchida e o provedor de chamada ou gateway não deverá usar ou liberar a estrutura. Se nenhum erro ocorrer na chamada, o provedor de chamada ou gateway deverá liberar a memória da estrutura STnefProblemArray chamando a função MAPIFreeBuffer .

Confira também

ITnef::AddProps
ITnef::Finish
ITnef::SetProps
MAPIFreeBuffer
OpenTnefStream
OpenTnefStreamEx
STnefProblemArray
ITnef : IUnknown