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-файле, чтобы можно было извлечь свойства. |