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


ITnef::Finish

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

Завершает обработку для всех операций Transport-Neutral формата инкапсуляции (TNEF), которые находятся в очереди и ожидаются.

HRESULT Finish(
  ULONG ulFlags,
  WORD FAR * lpKey,
  LPSTnefProblemArray FAR * lpProblem
);

Параметры

ulFlags

[in] ���������������; ������ ���� ����� ����.

lpKey

[out] Указатель на свойство ключа PR_ATTACH_NUM (PidTagAttachNumber) вложения. Объект инкапсуляции TNEF использует этот ключ для сопоставления вложения с тегом размещения вложений в сообщении. Этот ключ должен быть уникальным для каждого вложения.

lpProblem

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

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

S_OK

Вызов выполнен успешно и возвращает ожидаемое значение или значения.

Замечания

Поставщики транспорта, поставщики хранилища сообщений и шлюзы вызывают метод ITnef::Finish для выполнения кодирования всех свойств, для которых запрашивалось кодирование в вызовах методов ITnef::AddProps и ITnef::SetProps . Если объект TNEF был открыт с флагом TNEF_ENCODE для функции OpenTnefStream или OpenTnefStreamEx , метод Finish кодирует запрошенные свойства в поток инкапсуляции, передаваемый в этот объект. Если объект TNEF был открыт с флагом TNEF_DECODE, метод Finish декодирует свойства из потока TNEF и записывает их обратно в сообщение, к которому они принадлежат.

После вызова Finish указатель на поток инкапсуляции указывает на конец данных TNEF. Если поставщику или шлюзу необходимо использовать данные потока TNEF после вызова Finish , необходимо сбросить указатель потока в начало данных потока TNEF.

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

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

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

Справочные материалы по MFCMAPI

Пример кода MFCMAPI указан в приведенной ниже таблице.

Файл Функция Comment
File.cpp
SaveToTNEF
MFCMAPI использует метод ITnef::Finish для завершения обработки нового потока TNEF.

См. также

ITnef::AddProps

MAPIFreeBuffer

OpenTnefStream

OpenTnefStreamEx

Каноническое свойство PidTagAttachNumber

STnefProblemArray

ITnef : IUnknown

Mfcmapi (en) � �������� ������� ����