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


ITnef::ExtractProps

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

Извлекает свойства из инкапсуляции TNEF.

HRESULT ExtractProps(
  ULONG ulFlags,
  LPSPropTagArray lpPropList,
  LPSTnefProblemArray FAR * lpProblems
);

Параметры

ulFlags

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

TNEF_PROP_EXCLUDE

Декодирует все свойства, не указанные в параметре lpPropList .

TNEF_PROP_INCLUDE

Декодирует все свойства, указанные в lpPropList.

lpPropList

[в] Указатель на список свойств, которые необходимо включить в операцию декодирования или исключить из нее.

lpProblems

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

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

S_OK

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

MAPI_E_CORRUPT_DATA

Данные, декодированные в поток, повреждены.

Замечания

Поставщики транспорта, поставщики хранилищ сообщений и шлюзы вызывают метод ITnef::ExtractProps для извлечения (т. е. декодирования) свойств из инкапсуляции сообщения или вложения, переданного функции OpenTnefStream . Вызывающий поставщик или шлюз может указать список свойств для декодирования. Поставщики и шлюзы также могут использовать ExtractProps для предоставления сведений о любой специальной обработке вложений.

ExtractProps заполняет исходное сообщение, переданное в OpenTnefStream , декодированные свойства. Последующие вызовы ExtractProps возвращаются к сообщению и извлекают новый список свойств.

В отличие от метода ITnef::AddProps , который ставит в очередь запрошенные действия до вызова метода ITnef::Finish , метод ExtractProps декодирует инкапсулированные свойства сразу при вызове. По этой причине целевое сообщение для декодирования инкапсуляции должно быть относительно пустым. Существующие свойства в целевом сообщении перезаписываются инкапсулированными свойствами.

ExtractProps поддерживается только для объектов, открытых с помощью флага TNEF_DECODE для функции OpenTnefStream или OpenTnefStreamEx .

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

Примечание.

Если свойство в блоке инкапсуляции MAPI не может быть обработано и при декодировании потока TNEF остается ненадежным, декодирование блока инкапсуляции останавливается и сообщается о проблеме. Массив проблем для этого типа задачи содержит 0L для элемента attMAPIPropsulPropTag или attAttachment элемента ulAttribute, а MAPI_E_UNABLE_TO_COMPLETE для элемента scode. Обратите внимание, что декодирование потока не останавливается, а только декодирование блока инкапсуляции MAPI. Декодирование потока продолжается со следующим блоком атрибутов.

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

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

См. также

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