Función WsGetFaultErrorDetail (webservices.h)

Lea los detalles del error almacenados en un objeto WS_ERROR .

Sintaxis

HRESULT WsGetFaultErrorDetail(
  [in]           WS_ERROR                          *error,
  [in]           const WS_FAULT_DETAIL_DESCRIPTION *faultDetailDescription,
  [in]           WS_READ_OPTION                    readOption,
  [in, optional] WS_HEAP                           *heap,
                 void                              *value,
  [in]           ULONG                             valueSize
);

Parámetros

[in] error

Objeto de error que contiene la información de error.

[in] faultDetailDescription

Puntero a una descripción del elemento de detalle de error.

El valor de acción de la descripción de detalles del error se usa como un valor de filtro para coincidir con la acción del error. Si se especifican ambas cadenas de acción (el valor de acción de la descripción de detalles del error no es NULL y el valor de acción WS_FAULT_ERROR_PROPERTY_ACTION en el WS_ERROR tiene una longitud mayor que cero), las cadenas de acción se comparan para determinar una coincidencia. Si hay una coincidencia, la función intentará deserializar el elemento de detalle.

La descripción del elemento de la descripción detallada del error se usa para describir el formato del elemento en el detalle del error.

[in] readOption

Indica si el elemento es necesario y cómo asignar el valor. Consulte WS_READ_OPTION para obtener más información.

[in, optional] heap

Montón en el que se almacenarán los valores deserializados.

value

La interpretación de este parámetro depende del WS_READ_OPTION.

[in] valueSize

La interpretación de este parámetro depende del WS_READ_OPTION.

Valor devuelto

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
WS_E_INVALID_FORMAT
Los datos de entrada no tenían el formato esperado o no tenían el valor esperado.
E_OUTOFMEMORY
Se quedó sin memoria.
WS_E_QUOTA_EXCEEDED
Se superó la cuota de tamaño del montón.
E_INVALIDARG
Uno o más argumentos no son válidos.

Comentarios

Esta API deserializa el valor del campo de detalle del WS_FAULT almacenado en el objeto WS_ERROR .

Esta función admite los siguientes escenarios, en función del contenido del WS_ELEMENT_DESCRIPTION en el WS_FAULT_DETAIL_DESCRIPTION proporcionado:

  • Lectura de un solo elemento. En este caso, los campos elementLocalName y elementNs del WS_ELEMENT_DESCRIPTION deben establecerse en el nombre local y el espacio de nombres del elemento que se va a leer, y la descripción de tipo y tipo representa el tipo del valor que se va a deserializar.

    Dado que se pueden esperar errores diferentes con distintos formatos de detalle de un servicio, se puede llamar a esta función sucesivamente para intentar leer cada tipo de detalle. En este caso, se puede especificar el valor WS_READ_OPTIONAL_POINTER , que devolverá un puntero NULL si el nombre del elemento en el detalle del error no coincide con el valor esperado.

  • Lectura de varios elementos como un valor único. En este caso, los campos elementLocalName y elementNs del WS_ELEMENT_DESCRIPTION deben establecerse en NULL y se debe especificar un WS_STRUCT_TYPE y WS_STRUCT_DESCRIPTION . Cada campo del valor de estructura que se va a deserializar debe corresponder a los elementos que se van a leer dentro del cuerpo. El parámetro readOption debe ser WS_READ_REQUIRED_VALUE o WS_READ_REQUIRED_POINTER.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado webservices.h
Library WebServices.lib
Archivo DLL WebServices.dll