WsReadBody, fonction (webservices.h)

Il s’agit d’une fonction d’assistance qui désérialise une valeur du lecteur XML du message. Le WS_MESSAGE_STATE doit être défini sur WS_MESSAGE_STATE_READING. Cette fonction n’entraîne aucune transition d’état.

Syntaxe

HRESULT WsReadBody(
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_ELEMENT_DESCRIPTION *bodyDescription,
  [in]           WS_READ_OPTION               readOption,
  [in, optional] WS_HEAP                      *heap,
                 void                         *value,
  [in]           ULONG                        valueSize,
  [in, optional] WS_ERROR                     *error
);

Paramètres

[in] message

Pointeur vers l’objet Message à partir duquel lire le corps. Le pointeur doit référencer un objet WS_MESSAGE valide.

[in] bodyDescription

Pointeur vers l’objet encapsulant les métadonnées qui décrivent le mappage de la valeur à un élément.

[in] readOption

Détermine si la valeur est requise et comment l’allouer. Pour plus d’informations, consultez WS_READ_OPTION .

[in, optional] heap

Pointeur vers l’objet Tas dans lequel lire l’élément. Le pointeur doit référencer un objet WS_HEAP valide.

value

L’interprétation des données référencées par ce paramètre dépend de la WS_READ_OPTION.

[in] valueSize

L’interprétation de la valeur de ce paramètre dépend de la WS_READ_OPTION.

[in, optional] error

Pointeur vers un objet WS_ERROR où des informations supplémentaires sur l’erreur doivent être stockées en cas d’échec de la fonction.

Valeur retournée

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
WS_E_INVALID_FORMAT
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue.
E_OUTOFMEMORY
Mémoire insuffisante.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
Autres erreurs
Cette fonction peut retourner d’autres erreurs non répertoriées ci-dessus.

Remarques

Cette fonction prend en charge les scénarios suivants, en fonction du contenu du WS_ELEMENT_DESCRIPTION fourni :

  • Lecture d’un élément unique. Dans ce cas, les champs elementLocalName et elementNs de l’WS_ELEMENT_DESCRIPTION doivent être définis sur le nom local et l’espace de noms de l’élément à lire, et le type et la description du type représentent le type de la valeur en cours de désérialisation. Si vous utilisez WS_FAULT_TYPE ou WS_ENDPOINT_ADDRESS_TYPE il n’est pas nécessaire de spécifier le nom local, l’espace de noms ou la description du type (ils seront par défaut correctement basés sur la version d’enveloppe/d’adressage du message).
  • Lecture de plusieurs éléments sous la forme d’une valeur unique. Dans ce cas, les champs elementLocalName et elementNs du WS_ELEMENT_DESCRIPTION doivent être définis sur NULL, et un WS_STRUCT_TYPE et un WS_STRUCT_DESCRIPTION doivent être spécifiés. Dans ce cas, chaque champ de la valeur de structure en cours de désérialisation doit correspondre à un ou plusieurs éléments à lire dans le corps.
  • Lecture de plusieurs éléments en tant que valeurs multiples. La lecture de plusieurs valeurs distinctes peut être effectuée en appelant simplement la fonction plusieurs fois.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête webservices.h
Bibliothèque WebServices.lib
DLL WebServices.dll