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


OpenTnefStreamEx

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

Создает объект TNEF Transport-Neutral, который можно использовать для кодирования или декодирования объекта сообщения в поток данных TNEF для использования транспортами, шлюзами и хранилищами сообщений. Это точка входа для доступа TNEF.

Свойство Значение
Файл заголовка:
Tnef.h
Реализовано в:
MAPI
Вызывающая сторона:
Поставщики транспорта
HRESULT OpenTnefStreamEx(
  LPVOID lpvSupport,
  LPSTREAM lpStream,
  LPSTR lpszStreamName,
  ULONG ulFlags,
  LPMESSAGE lpMessage,
  WORD wKeyVal,
  LPADDRESSBOOK lpAddressBook,
  LPITNEF FAR * lppTNEF
);

Параметры

lpvSupport

[в] Передает объект поддержки или передает значение NULL. Если значение РАВНО NULL, параметр lpAddressBook должен иметь значение, отличное от NULL.

lpStream

[в] Указатель на объект потока хранилища, например интерфейс OLE IStream , предоставляющий источник или назначение для сообщения потока TNEF.

lpszStreamName

[в] Указатель на имя потока данных, используемого объектом TNEF. Если вызывающий объект задал флаг TNEF_ENCODE (параметр ulFlags ) в вызове OpenTnefStream, параметр lpszName должен указать ненулевой указатель на строку, не вызывающую null, состоящую из любых символов, которые считаются допустимыми для именования файла. MAPI не разрешает имена строк, включая символы "[", "]" или ":", даже если файловая система разрешает их использование. Размер строки, переданной для параметра lpszName , не должен превышать значение MAX_PATH, максимальная длина строки, содержащей имя пути.

ulFlags

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

TNEF_BEST_DATA

Все возможные свойства сопоставляются с атрибутами нижнего уровня, но при возможной потере данных из-за преобразования в атрибут нижнего уровня свойство также кодируется в инкапсулировании. Обратите внимание, что это приведет к дублированию информации в потоке TNEF. TNEF_BEST_DATA используется по умолчанию, если другие режимы не указаны.

TNEF_COMPATIBILITY

Обеспечивает обратную совместимость со старыми клиентскими приложениями. Потоки TNEF, закодированные с помощью этого флага, сопоставляют все возможные свойства с соответствующим атрибутом нижнего уровня. Этот режим также приводит к по умолчанию для некоторых свойств, необходимых клиентам нижнего уровня.

Предостережение

Этот флаг устарел и не должен использоваться.

TNEF_DECODE

Объект TNEF в указанном потоке открывается с доступом только для чтения. Поставщик транспорта должен задать этот флаг, если функция инициализирует объект для последующего декодирования.

TNEF_ENCODE

Объект TNEF в указанном потоке открывается для разрешения на чтение и запись. Поставщик транспорта должен установить этот флаг, если функция инициализирует объект для последующего кодирования.

TNEF_PURE

Кодирует все свойства в блоки инкапсуляции MAPI. Таким образом, "чистый" TNEF-файл будет состоять не более чем из атрибутов attMAPIProps, attachment, attRenddata и attRecipTable. Этот режим идеально подходит для использования, если обратная совместимость не требуется.

lpMessage

[в] Указатель на объект сообщения в качестве назначения для декодированного сообщения с вложениями или источника для закодированного сообщения с вложениями. Любые свойства целевого сообщения могут быть перезаписаны свойствами закодированного сообщения.

wKeyVal

[в] Ключ поиска, который объект TNEF использует для сопоставления вложений с текстовыми тегами, вставленными в текст сообщения. Это значение должно быть относительно уникальным в сообщениях.

lpAddressBook

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

lppTNEF

[out] Указатель на новый объект TNEF.

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

S_OK

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

Замечания

Функция OpenTnefStreamEx является рекомендуемой заменой для OpenTnefStream, исходной точки входа для доступа TNEF.

Объект TNEF, созданный функцией OpenTnefStreamEx позже, вызывает метод OLE IUnknown::AddRef для добавления ссылок на вспомогательный объект, объект stream и объект message. Поставщик транспорта может освободить ссылки для всех трех объектов одним вызовом метода OLE IUnknown::Release в объекте TNEF.

OpenTnefStreamEx выделяет и инициализирует объект TNEF, используемый поставщиком при кодировании сообщения MAPI в потоковое сообщение TNEF. Кроме того, эта функция может настроить объект для использования поставщиком в последующих вызовах ITnef::ExtractProps для декодирования сообщения потока TNEF в сообщение MAPI. Чтобы освободить объект TNEF и закрыть сеанс, поставщик транспорта должен вызвать унаследованный метод IUnknown::Release для объекта .

Базовое значение параметра wKeyVal не должно быть равным нулю и не должно совпадать при каждом вызове OpenTnefStreamEx. Вместо этого используйте случайные числа на основе системного времени из генератора случайных чисел библиотеки выполнения.

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

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

Файл Функция Comment
File.cpp
LoadFromTNEF
MFCMAPI использует метод OpenTnefStreamEx для открытия потока в TNEF-файле, чтобы можно было извлечь свойства.

См. также