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 для элемента attMAPIProps
ulPropTag или 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