WsWriteBody, fonction (webservices.h)

Écrit une valeur dans le corps d’un message. Il s’agit d’une fonction d’assistance qui sérialise une valeur dans l’enregistreur XML du message. L’état du message doit être défini sur WS_MESSAGE_STATE_WRITING. Cette fonction n’entraîne aucune transition d’état.

Syntaxe

HRESULT WsWriteBody(
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_ELEMENT_DESCRIPTION *bodyDescription,
  [in]           WS_WRITE_OPTION              writeOption,
                 const void                   *value,
  [in]           ULONG                        valueSize,
  [in, optional] WS_ERROR                     *error
);

Paramètres

[in] message

Pointeur vers l’objet Message dans lequel écrire. Le pointeur doit référencer un objet WS_MESSAGE valide.

[in] bodyDescription

Pointeur vers des informations décrivant comment écrire la valeur.

[in] writeOption

Détermine si la valeur est requise et comment la valeur est allouée.

 

value

Pointeur void vers la valeur à écrire.

[in] valueSize

Taille en octets de la valeur à écrire. Si la valeur est NULL , la taille doit être 0.

[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 :

  • Écriture 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 à écrire, et le type et la description du type représentent le type de la valeur sérialisée. 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).
  • Écriture de plusieurs éléments en tant que 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 sérialisation doit correspondre à des éléments à écrire dans le corps.
  • Écriture de plusieurs éléments sous forme de valeurs multiples. Vous pouvez écrire plusieurs valeurs distinctes 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