OpenTnefStreamEx
Hace referencia a: Outlook 2013 | Outlook 2016
Crea un objeto Transport-Neutral Encapsulation Format (TNEF) que se puede usar para codificar o descodificar un objeto de mensaje en un flujo de datos TNEF para su uso en transportes o puertas de enlace y almacenes de mensajes. Este es el punto de entrada para el acceso TNEF.
Propiedad | Valor |
---|---|
Archivo de encabezado: |
Tnef.h |
Implementado por: |
MAPI |
Llamado por: |
Proveedores de transporte |
HRESULT OpenTnefStreamEx(
LPVOID lpvSupport,
LPSTREAM lpStream,
LPSTR lpszStreamName,
ULONG ulFlags,
LPMESSAGE lpMessage,
WORD wKeyVal,
LPADDRESSBOOK lpAddressBook,
LPITNEF FAR * lppTNEF
);
Parameters
lpvSupport
[in] Pasa un objeto de soporte técnico o pasa NULL. Si es NULL, el parámetro lpAddressBook debe ser distinto de null.
lpStream
[in] Puntero a un objeto de secuencia de almacenamiento, como una interfaz OLE IStream , que proporciona un origen o destino para un mensaje de secuencia de TNEF.
lpszStreamName
[in] Puntero al nombre de la secuencia de datos que usa el objeto TNEF. Si el autor de la llamada ha establecido la marca de TNEF_ENCODE (parámetro ulFlags ) en su llamada a OpenTnefStream, el parámetro lpszName debe especificar un puntero que no sea null a una cadena que no sea null que conste de caracteres considerados válidos para asignar un nombre a un archivo. MAPI no permite nombres de cadena, incluidos los caracteres "[", "]" o ":", incluso si el sistema de archivos permite su uso. El tamaño de la cadena pasada para el parámetro lpszName no debe superar el valor de MAX_PATH, la longitud máxima de una cadena que contiene un nombre de ruta de acceso.
ulFlags
[in] Máscara de bits de marcas usadas para indicar el modo de la función. Se pueden establecer las siguientes marcas:
TNEF_BEST_DATA
Todas las propiedades posibles se asignan a sus atributos de nivel inferior, pero cuando hay una posible pérdida de datos debido a la conversión a un atributo de nivel inferior, la propiedad también se codifica en las encapsulaciones. Tenga en cuenta que esto provocará la duplicación de información en la secuencia de TNEF. TNEF_BEST_DATA es el valor predeterminado si no se especifica ningún otro modo.
TNEF_COMPATIBILITY
Proporciona compatibilidad con versiones anteriores con aplicaciones cliente anteriores. Las secuencias TNEF codificadas con esta marca asignarán todas las propiedades posibles a su atributo de nivel inferior correspondiente. Este modo también provoca la configuración predeterminada de algunas propiedades necesarias para los clientes de nivel inferior.
Precaución
Esta marca está obsoleta y no se debe usar.
TNEF_DECODE
El objeto TNEF del flujo indicado se abre con acceso de solo lectura. El proveedor de transporte debe establecer esta marca si la función va a inicializar el objeto para la descodificación posterior.
TNEF_ENCODE
El objeto TNEF de la secuencia indicada se abre para obtener permiso de lectura y escritura. El proveedor de transporte debe establecer esta marca si la función va a inicializar el objeto para la codificación posterior.
TNEF_PURE
Codifica todas las propiedades en los bloques de encapsulación MAPI. Por lo tanto, un archivo TNEF "puro" constará, como máximo, de los atributos attMAPIProps, attAttachment, attRenddata y attRecipTable. Este modo es ideal para su uso cuando no se requiere compatibilidad con versiones anteriores.
lpMessage
[in] Puntero a un objeto de mensaje como destino de un mensaje descodificado con datos adjuntos o un origen para un mensaje codificado con datos adjuntos. Las propiedades de un mensaje de destino pueden sobrescribirse mediante las propiedades de un mensaje codificado.
wKeyVal
[in] Clave de búsqueda que el objeto TNEF usa para hacer coincidir los datos adjuntos con las etiquetas de texto insertadas en el texto del mensaje. Este valor debe ser relativamente único entre los mensajes.
lpAddressBook
[in] Puntero a un objeto de libreta de direcciones que se usa para obtener información de direccionamiento de los identificadores de entrada.
lppTNEF
[out] Puntero al nuevo objeto TNEF.
Valor devuelto
S_OK
La llamada se ha realizado correctamente y devuelva el valor esperado o los valores.
Comentarios
La función OpenTnefStreamEx es el reemplazo recomendado para OpenTnefStream, el punto de entrada original para el acceso TNEF.
Un objeto TNEF creado por la función OpenTnefStreamEx más adelante llama al método OLE IUnknown::AddRef para agregar referencias para el objeto de soporte técnico, el objeto de secuencia y el objeto de mensaje. El proveedor de transporte puede liberar las referencias de los tres objetos con una sola llamada al método OLE IUnknown::Release en el objeto TNEF.
OpenTnefStreamEx asigna e inicializa un objeto TNEF para que el proveedor lo use para codificar un mensaje MAPI en un mensaje de secuencia de TNEF. Como alternativa, esta función puede configurar el objeto para que el proveedor lo use en llamadas posteriores a ITnef::ExtractProps para descodificar un mensaje de secuencia de TNEF en un mensaje MAPI. Para liberar el objeto TNEF y cerrar la sesión, el proveedor de transporte debe llamar al método heredado IUnknown::Release en el objeto .
El valor base del parámetro wKeyVal no debe ser cero y no debe ser el mismo para cada llamada a OpenTnefStreamEx. En su lugar, use números aleatorios en función del tiempo del sistema del generador de números aleatorios de la biblioteca en tiempo de ejecución.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
File.cpp |
LoadFromTNEF |
MFCMAPI usa el método OpenTnefStreamEx para abrir una secuencia en el archivo TNEF, de modo que se puedan extraer las propiedades. |