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


OpenTnefStream

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

Вызывается поставщиком транспорта для инициации сеанса TNEF.

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

Параметры

lpvSupport

[в] Передает объект поддержки или передает значение 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, attAttachment, attRenddata и attRecipTable. Этот режим идеально подходит для использования, если обратная совместимость не требуется.

lpMessage

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

wKey

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

lppTNEF

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

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

S_OK

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

Замечания

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

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

Эта функция является исходной точкой входа для доступа TNEF и заменена OpenTnefStreamEx , но по-прежнему используется для обеспечения совместимости для тех, кто уже использует TNEF.

См. также