Compartilhar via


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