Condividi tramite


Funzione WsGetFaultErrorDetail (webservices.h)

Leggere i dettagli dell'errore archiviati in un oggetto WS_ERROR .

Sintassi

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
);

Parametri

[in] error

Oggetto error che contiene le informazioni sull'errore.

[in] faultDetailDescription

Puntatore a una descrizione dell'elemento dettagli di errore.

Il valore dell'azione della descrizione dei dettagli di errore viene usato come valore del filtro per corrispondere all'azione dell'errore. Se vengono specificate entrambe le stringhe di azione (il valore dell'azione della descrizione dei dettagli di errore non è NULL e il valore dell'azione WS_FAULT_ERROR_PROPERTY_ACTIONnell'WS_ERROR ha una lunghezza maggiore di zero), le stringhe di azione vengono confrontate per determinare una corrispondenza. Se esiste una corrispondenza, la funzione tenterà di deserializzare l'elemento dettaglio.

La descrizione dell'elemento della descrizione dei dettagli di errore viene usata per descrivere il formato dell'elemento nel dettaglio dell'errore.

[in] readOption

Indica se l'elemento è obbligatorio e come allocare il valore. Per altre informazioni, vedere WS_READ_OPTION .

[in, optional] heap

Heap in cui archiviare i valori deserializzati.

value

L'interpretazione di questo parametro dipende dalla WS_READ_OPTION.

[in] valueSize

L'interpretazione di questo parametro dipende dalla WS_READ_OPTION.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
WS_E_INVALID_FORMAT
I dati di input non erano nel formato previsto o non hanno il valore previsto.
E_OUTOFMEMORY
Memoria insufficiente.
WS_E_QUOTA_EXCEEDED
La quota di dimensioni dell'heap è stata superata.
E_INVALIDARG
Uno o più argomenti non sono validi.

Commenti

Questa API deserializza il valore dal campo dettaglio della WS_FAULT archiviata nell'oggetto WS_ERROR .

Queste funzioni supportano gli scenari seguenti, in base al contenuto della WS_ELEMENT_DESCRIPTION nella WS_FAULT_DETAIL_DESCRIPTION fornita:

  • Lettura di un singolo elemento. In questo caso, i campi elementLocalName e elementNs del WS_ELEMENT_DESCRIPTION devono essere impostati sul nome locale e sullo spazio dei nomi dell'elemento da leggere e il tipo e la descrizione del tipo rappresenta il tipo del valore deserializzato.

    Poiché diversi errori con formati di dettagli diversi possono essere previsti da un servizio, questa funzione può essere chiamata in successione per provare a leggere ogni tipo di dettaglio. In questo caso, è possibile specificare il valore WS_READ_OPTIONAL_POINTER , che restituirà un puntatore NULL se il nome dell'elemento nel dettaglio dell'errore non corrisponde al valore previsto.

  • Lettura di più elementi come singolo valore. In questo caso, i campi elementLocalName e elementNs del WS_ELEMENT_DESCRIPTIONdevono essere impostati su NULL e deve essere specificato un WS_STRUCT_TYPE e un WS_STRUCT_DESCRIPTION. Ogni campo del valore della struttura deserializzato deve corrispondere agli elementi da leggere all'interno del corpo. Il parametro readOption deve essere WS_READ_REQUIRED_VALUE o WS_READ_REQUIRED_POINTER.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione webservices.h
Libreria WebServices.lib
DLL WebServices.dll