ITnef::FinishComponent

适用于:Outlook 2013 | Outlook 2016

(TNEF) 流,一次处理一个消息的单个组件 Transport-Neutral 封装格式。

HRESULT FinishComponent(
  ULONG ulFlags,
  ULONG ulComponentID,
  LPSPropTagArray lpCustomPropList,
  LPSPropValue lpCustomProps,
  LPSPropTagArray lpPropList,
  LPSTnefProblemArray FAR * lppProblems
);

参数

ulFlags

[in]控制将完成哪个组件的标志的位掩码。 必须设置以下标志之一或另一个:

TNEF_COMPONENT_ATTACHMENT

附件对象的处理将完成; ulComponentID 参数包含附件的 PR_ATTACH_NUM (PidTagAttachNumber) 属性。

TNEF_COMPONENT_MESSAGE

将完成消息对象的处理。

ulComponentID

[in] 0 表示正在处理邮件,或要处理的附件的 PR_ATTACH_NUM 属性。 如果在 ulFlags 参数中设置了TNEF_COMPONENT_MESSAGE标志, ulComponentID 必须为 0。

lpCustomPropList

[in]指向 SPropTagArray 结构的指针,该结构包含用于标识 lpCustomProps 参数中传递的属性的属性标记。 lpCustomProps 中的每个属性值与 lpCustomPropList 参数中的属性标记之间必须有一对一的对应关系。

lpCustomProps

[in]指向 SPropValue 结构的指针,该结构包含要编码的属性的属性值。

lpPropList

[in]指向 SPropTagArray 结构的指针,该结构包含要编码的属性的属性标记。

lppProblems

[out]指向返回 的 STnefProblemArray 结构的指针的指针。 STnefProblemArray 结构指示未正确编码的属性(如果有)。 如果在 lppProblems 参数中传递 NULL,则不会返回任何属性问题数组。

返回值

S_OK

调用成功,并返回了预期的值。

备注

传输提供程序、消息存储提供程序和网关调用 ITnef::FinishComponent 方法,以对一个组件(消息或附件)执行 TNEF 处理,如 ulFlags 参数中设置的标志所示。

若要启用组件处理,调用提供程序或网关在 ulFlags 中为 OpenTnefStreamOpenTnefStreamEx 函数传递TNEF_COMPONENT_ENCODING标志,该标志打开对象以接收编码。

传递 lpCustomPropListlpCustomProps 参数中的值将执行等效于 ITnef::SetProps 方法完成的组件编码。 传递 lpPropList 参数中的值将执行等效于 ITnef::AddProps 方法完成的组件编码,并在 ulFlags 中设置了 TNEF_PROP_INCLUDE 标志。 通过传递这些值,可以通过单个调用而不是多个调用来执行编码。

TNEF 实现在不停止 FinishComponent 进程的情况下报告 TNEF 流编码问题。 lppProblems 中返回的 STnefProblemArray 结构指示无法处理哪些 TNEF 属性或 MAPI 属性(如果有)。 STnefProblemArray 中包含的 STnefProblem 结构之一的 scode 成员中返回的值指示特定问题。 提供程序或网关可以假定 FinishComponent 未返回问题报告的所有属性或属性都已成功处理。

如果提供程序或网关不能处理有问题的数组,它可以在 lppProblems 中传递 NULL;在这种情况下,不会返回问题数组。

仅当调用返回S_OK时, lppProblems 中返回的值才有效。 返回S_OK时,提供程序或网关应检查 STnefProblemArray 结构中返回的值。 如果调用时发生错误,则 STnefProblemArray 结构不会填充,并且调用提供程序或网关不应使用或释放该结构。 如果调用时未发生错误,则调用提供程序或网关必须通过调用 MAPIFreeBuffer 函数释放 STnefProblemArray 的内存。

另请参阅

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