Compartilhar via


Função WsReadBody (webservices.h)

Essa é uma função auxiliar que desserializa um valor dos Leitores XML da mensagem. O WS_MESSAGE_STATE deve ser definido como WS_MESSAGE_STATE_READING. Essa função não causa nenhuma transição de estado.

Sintaxe

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

Parâmetros

[in] message

Um ponteiro para o objeto Message do qual ler o corpo. O ponteiro deve referenciar um objeto WS_MESSAGE válido.

[in] bodyDescription

Um ponteiro para o objeto que encapsula os metadados que descreve o mapeamento do valor para um elemento.

[in] readOption

Determina se o valor é necessário e como alocar o valor. Consulte WS_READ_OPTION para obter mais informações.

[in, optional] heap

Um ponteiro para o objeto Heap no qual ler o elemento. O ponteiro deve referenciar um objeto WS_HEAP válido.

value

A interpretação dos dados referenciados por esse parâmetro depende do WS_READ_OPTION.

[in] valueSize

A interpretação do valor desse parâmetro depende do WS_READ_OPTION.

[in, optional] error

Um ponteiro para um objeto WS_ERROR em que informações adicionais sobre o erro devem ser armazenadas se a função falhar.

Retornar valor

Essa função pode retornar um desses valores.

Código de retorno Descrição
WS_E_INVALID_FORMAT
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado.
E_OUTOFMEMORY
Ficou sem memória.
E_INVALIDARG
Um ou mais argumentos são inválidos.
Outros erros
Essa função pode retornar outros erros não listados acima.

Comentários

Essas funções dão suporte aos seguintes cenários, com base no conteúdo do WS_ELEMENT_DESCRIPTION fornecido:

  • Lendo um único elemento. Nesse caso, os campos elementLocalName e elementNs do WS_ELEMENT_DESCRIPTION devem ser definidos como o nome local e o namespace do elemento a ser lido, e o tipo e a descrição do tipo representam o tipo do valor que está sendo desserializado. Se estiver usando WS_FAULT_TYPE ou WS_ENDPOINT_ADDRESS_TYPE não será necessário especificar o nome local, o namespace ou a descrição do tipo (eles usarão o padrão adequadamente com base na versão de envelope/endereçamento da mensagem).
  • Lendo vários elementos como um único valor. Nesse caso, os campos elementLocalName e elementNs do WS_ELEMENT_DESCRIPTION devem ser definidos como NULL e um WS_STRUCT_TYPE e WS_STRUCT_DESCRIPTION devem ser especificados. Nesse caso, cada campo do valor da estrutura que está sendo desserializado deve corresponder aos elementos a serem lidos dentro do corpo.
  • Lendo vários elementos como vários valores. A leitura de vários valores distintos pode ser realizada simplesmente chamando a função várias vezes.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho webservices.h
Biblioteca WebServices.lib
DLL WebServices.dll