Поделиться через


ITnef::FinishComponent

Область применения: Outlook 2013 | Outlook 2016

Обрабатывает отдельные компоненты из сообщения по одному в потокЕ формата инкапсуляции Transport-Neutral (TNEF).

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

Параметры

ulFlags

[в] Битовая маска флагов, которая определяет, какой компонент будет завершен. Необходимо задать один или другой из следующих флагов:

TNEF_COMPONENT_ATTACHMENT

Обработка объекта вложения будет завершена; Параметр ulComponentID содержит свойство PR_ATTACH_NUM (PidTagAttachNumber) вложения.

TNEF_COMPONENT_MESSAGE

Обработка объекта сообщения будет завершена.

ulComponentID

[in] 0, чтобы указать обработку сообщения, или свойство PR_ATTACH_NUM обрабатываемого вложения. Если флаг TNEF_COMPONENT_MESSAGE задан в параметре ulFlags , значение ulComponentID должно иметь значение 0.

lpCustomPropList

[в] Указатель на структуру SPropTagArray , содержащую теги свойств, которые идентифицируют свойства, передаваемые в параметре lpCustomProps . Между каждым значением свойства в lpCustomProps и тегом свойства в параметре lpCustomPropList должно быть одно к одному.

lpCustomProps

[в] Указатель на структуру SPropValue , содержащую значения свойств для кодирования свойств.

lpPropList

[в] Указатель на структуру SPropTagArray , содержащую теги свойств для кодирования свойств.

lppProblems

[out] Указатель на указатель на возвращенную структуру STnefProblemArray . Структура STnefProblemArray указывает, какие свойства, если таковые имелись, были закодированы неправильно. Если в параметре lppProblems передается значение NULL, массив проблем со свойствами не возвращается.

Возвращаемое значение

S_OK

����� ������� � ������ ��������� ��������� ��� ��������.

Замечания

Поставщики транспорта, поставщики хранилища сообщений и шлюзы вызывают метод ITnef::FinishComponent для выполнения обработки TNEF для одного компонента, сообщения или вложения, как указано флагом, установленным в параметре ulFlags .

Чтобы включить обработку компонентов, вызывающий поставщик или шлюз передает флаг TNEF_COMPONENT_ENCODING в ulFlags для функции OpenTnefStream или OpenTnefStreamEx , которая открыла объект для получения кодировки.

Передача значений в параметрах lpCustomPropList и lpCustomProps выполняет кодировку компонента, эквивалентную кодированию, выполняемой методом ITnef::SetProps . Передача значения в параметре lpPropList выполняет кодировку компонента, эквивалентную кодированию, выполняемой методом ITnef::AddProps с флагом TNEF_PROP_INCLUDE, установленным в ulFlags. Передача этих значений позволяет выполнять кодировки с одним вызовом, а не с несколькими вызовами.

Реализация TNEF сообщает о проблемах кодирования потока TNEF без остановки процесса FinishComponent . Структура STnefProblemArray, возвращаемая в lppProblems , указывает, какие атрибуты TNEF или свойства MAPI, если таковые есть, не удалось обработать. Значение, возвращаемое в элементе scode одной из структур STnefProblem , содержащейся в STnefProblemArray , указывает на конкретную проблему. Поставщик или шлюз может работать при условии, что все свойства или атрибуты, для которых FinishComponent не возвращает отчет о проблеме, успешно обработаны.

Если поставщик или шлюз не работает с проблемными массивами, он может передавать значение NULL в lppProblems; в этом случае массив проблем не возвращается.

Значение, возвращаемое в lppProblems , допустимо только в том случае, если вызов возвращает S_OK. При возврате S_OK поставщик или шлюз должен проверка значения, возвращенные в структуре STnefProblemArray. Если при вызове возникает ошибка, структура STnefProblemArray не заполняется, а вызывающий поставщик или шлюз не должны использовать или освобождать структуру. Если при вызове не произошла ошибка, вызывающий поставщик или шлюз должен освободить память для STnefProblemArray , вызвав функцию MAPIFreeBuffer .

См. также

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