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. |