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.