ITnef::FinishComponent
Aplica-se a: Outlook 2013 | Outlook 2016
Processa componentes individuais de uma mensagem uma de cada vez em um fluxo TNEF (Formato de Encapsulamento Transport-Neutral).
HRESULT FinishComponent(
ULONG ulFlags,
ULONG ulComponentID,
LPSPropTagArray lpCustomPropList,
LPSPropValue lpCustomProps,
LPSPropTagArray lpPropList,
LPSTnefProblemArray FAR * lppProblems
);
Parâmetros
ulFlags
[in] Um bitmask de sinalizadores que controla qual componente será concluído. Um ou outro dos seguintes sinalizadores deve ser definido:
TNEF_COMPONENT_ATTACHMENT
O processamento será concluído para um objeto de anexo; O parâmetro ulComponentID contém a propriedade PR_ATTACH_NUM (PidTagAttachNumber) do anexo.
TNEF_COMPONENT_MESSAGE
O processamento será concluído para um objeto de mensagem.
ulComponentID
[in] 0 para indicar o processamento de uma mensagem ou a propriedade PR_ATTACH_NUM de um anexo a ser processado. Se o sinalizador TNEF_COMPONENT_MESSAGE for definido no parâmetro ulFlags , ulComponentID deverá ser 0.
lpCustomPropList
[in] Um ponteiro para uma estrutura SPropTagArray que contém marcas de propriedade que identificam as propriedades passadas no parâmetro lpCustomProps . Deve haver uma correspondência de um para um entre cada valor de propriedade em lpCustomProps e uma marca de propriedade no parâmetro lpCustomPropList .
lpCustomProps
[in] Um ponteiro para uma estrutura SPropValue que contém valores de propriedade para as propriedades codificarem.
lpPropList
[in] Um ponteiro para uma estrutura SPropTagArray que contém marcas de propriedade para as propriedades codificadas.
lppProblems
[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 lppProblems , 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.
Comentários
Provedores de transporte, provedores de armazenamento de mensagens e gateways chamam o método ITnef::FinishComponent para executar o processamento TNEF para um componente, uma mensagem ou um anexo, conforme indicado pelo sinalizador definido no parâmetro ulFlags .
Para que o processamento de componentes seja habilitado, o provedor de chamada ou o gateway passe o sinalizador TNEF_COMPONENT_ENCODING em ulFlags para a função OpenTnefStream ou OpenTnefStreamEx que abriu o objeto para receber codificação.
Passar valores nos parâmetros lpCustomPropList e lpCustomProps executa a codificação de componente equivalente à feita pelo método ITnef::SetProps . Passar um valor no parâmetro lpPropList executa a codificação de componente equivalente à feita pelo método ITnef::AddProps com o sinalizador TNEF_PROP_INCLUDE definido em ulFlags. Passar esses valores permite que você execute codificações com uma única chamada em vez de várias chamadas.
A implementação do TNEF relata problemas de codificação de fluxo TNEF sem interromper o processo FinishComponent . A estrutura STnefProblemArray retornada em lppProblems 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 FinishComponent não retorna um relatório de problema foram processados com êxito.
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 lppProblems 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 do STnefProblemArray chamando a função MAPIFreeBuffer .
Confira também
ITnef::AddProps
ITnef::SetProps
MAPIFreeBuffer
OpenTnefStream
OpenTnefStreamEx
SPropTagArray
STnefProblemArray
ITnef : IUnknown