Funzione WsWriteBody (webservices.h)

Scrive un valore nel corpo di un messaggio. Si tratta di una funzione helper che serializza un valore al writer XML del messaggio. Lo stato del messaggio deve essere impostato su WS_MESSAGE_STATE_WRITING. Questa funzione non causa transizioni di stato.

Sintassi

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

Parametri

[in] message

Puntatore all'oggetto Message per la scrittura. Il puntatore deve fare riferimento a un oggetto WS_MESSAGE valido.

[in] bodyDescription

Puntatore alle informazioni che descrivono come scrivere il valore.

[in] writeOption

Determina se è necessario il valore e la modalità di allocazione del valore.

Nota Per altre informazioni , vedere WS_WRITE_OPTION .

 

value

Puntatore void al valore da scrivere.

[in] valueSize

Dimensioni in byte del valore da scrivere. Se il valore è NULL , la dimensione deve essere 0.

[in, optional] error

Puntatore a un oggetto WS_ERROR in cui devono essere archiviate informazioni aggiuntive sull'errore se la funzione ha esito negativo.

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.
E_INVALIDARG
Uno o più argomenti non sono validi.
Altri errori
Questa funzione può restituire altri errori non elencati sopra.

Commenti

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

  • Scrittura 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 scrivere e il tipo e la descrizione del tipo rappresenta il tipo del valore serializzato. Se si usano WS_FAULT_TYPE o WS_ENDPOINT_ADDRESS_TYPE, non è necessario specificare il nome, lo spazio dei nomi o la descrizione del tipo locale( in base alla versione busta/indirizzamento del messaggio).
  • Scrittura 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. In questo caso, ogni campo del valore della struttura serializzato deve corrispondere agli elementi da scrivere all'interno del corpo.
  • Scrittura di più elementi come più valori. La scrittura di più valori distinti può essere eseguita semplicemente chiamando la funzione più volte.

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