ITnef::ExtractProps
Hace referencia a: Outlook 2013 | Outlook 2016
Extrae las propiedades de una encapsulación TNEF.
HRESULT ExtractProps(
ULONG ulFlags,
LPSPropTagArray lpPropList,
LPSTnefProblemArray FAR * lpProblems
);
Parameters
ulFlags
[in] Máscara de bits de marcas que controla cómo se descodifican las propiedades. Se pueden establecer las siguientes marcas:
TNEF_PROP_EXCLUDE
Descodifica todas las propiedades no especificadas en el parámetro lpPropList .
TNEF_PROP_INCLUDE
Descodifica todas las propiedades especificadas en lpPropList.
lpPropList
[in] Puntero a la lista de propiedades que se incluirán o excluirán de la operación de descodificación.
lpProblems
[out] Puntero a un puntero a una estructura STnefProblemArray devuelta. La estructura STnefProblemArray indica qué propiedades, si las hubiera, no se codificaron correctamente. Si se pasa NULL en el parámetro lpProblems , no se devuelve ninguna matriz de problemas de propiedad.
Valor devuelto
S_OK
La llamada se realizó correctamente y devolvió el valor o los valores esperados.
MAPI_E_CORRUPT_DATA
Los datos que se descodifican en una secuencia están dañados.
Comentarios
Los proveedores de transporte, los proveedores de almacén de mensajes y las puertas de enlace llaman al método ITnef::ExtractProps para extraer (es decir, descodificar) propiedades de la encapsulación de un mensaje o datos adjuntos que se pasaron a la función OpenTnefStream . El proveedor de llamadas o la puerta de enlace pueden especificar una lista de propiedades que se descodifican. Los proveedores y puertas de enlace también pueden usar ExtractProps para proporcionar información sobre cualquier control especial de los datos adjuntos.
ExtractProps rellena el mensaje original pasado a OpenTnefStream con las propiedades descodificadas. Las llamadas ExtractProps posteriores vuelven al mensaje y extraen la nueva lista de propiedades.
A diferencia del método ITnef::AddProps , que pone en cola las acciones solicitadas hasta que se llama al método ITnef::Finish , el método ExtractProps descodifica las propiedades encapsuladas inmediatamente cuando se le llama. Por ese motivo, el mensaje de destino para la descodificación de encapsulación debe estar relativamente vacío. Las propiedades existentes en el mensaje de destino se sobrescriben mediante propiedades encapsuladas.
ExtractProps solo se admite para los objetos que se abren con la marca de TNEF_DECODE para la función OpenTnefStream o OpenTnefStreamEx .
La implementación de TNEF notifica problemas de codificación de secuencias TNEF sin detener el proceso ExtractProps . La estructura STnefProblemArray devuelta en lpProblems indica qué atributos de TNEF o propiedades MAPI, si los hubiera, no se pudieron procesar. El valor devuelto en el miembro scode de una de las estructuras STnefProblem contenidas en STnefProblemArray indica el problema específico. El proveedor o la puerta de enlace pueden funcionar suponiendo que todas las propiedades o atributos para los que ExtractProps no devuelve un informe de problemas se procesaron correctamente.
Nota:
Si una propiedad del bloque de encapsulación MAPI no se puede procesar y deja la secuencia sin ser confiable durante la descodificación de un flujo TNEF, se detiene la descodificación del bloque de encapsulación y se notifica un problema. La matriz de problemas para este tipo de problema contiene 0L para el miembro ulPropTag , attMAPIProps
o attAttachment
para el miembro ulAttribute y MAPI_E_UNABLE_TO_COMPLETE para el miembro scode . Tenga en cuenta que la descodificación de la secuencia no está detenida, solo la descodificación del bloque de encapsulación MAPI. La descodificación de secuencias continúa con el siguiente bloque de atributos.
Si un proveedor o puerta de enlace no funciona con matrices problemáticas, puede pasar NULL en lppProblems; en este caso, no se devuelve ninguna matriz de problemas.
El valor devuelto en lpProblems solo es válido si la llamada devuelve S_OK. Cuando se devuelve S_OK, el proveedor o la puerta de enlace deben comprobar los valores devueltos en la estructura STnefProblemArray . Si se produce un error en la llamada, la estructura STnefProblemArray no se rellena y el proveedor de llamadas o la puerta de enlace no deben usar ni liberar la estructura. Si no se produce ningún error en la llamada, el proveedor de llamadas o la puerta de enlace deben liberar la memoria de la estructura STnefProblemArray llamando a la función MAPIFreeBuffer .
Vea también
ITnef::AddProps
ITnef::Finish
ITnef::SetProps
MAPIFreeBuffer
OpenTnefStream
OpenTnefStreamEx
STnefProblemArray
ITnef : IUnknown