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 attMAPIProps
ulPropTag 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