WsWriteBody 函数 (webservices.h)

在消息正文中写入值。 这是一个帮助程序函数,用于将值序列化为消息的 XML 编写器。 消息状态必须设置为 WS_MESSAGE_STATE_WRITING。 此函数不会导致任何状态转换。

语法

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

参数

[in] message

指向要写入的 Message 对象的指针。 指针必须引用有效的 WS_MESSAGE 对象。

[in] bodyDescription

指向描述如何写入值的信息的指针。

[in] writeOption

确定是否需要该值,以及如何分配该值。

注意 有关详细信息 ,请参阅WS_WRITE_OPTION

 

value

指向要写入的值的 void 指针。

[in] valueSize

要写入的值的大小(以字节为单位)。 如果值为 NULL ,则大小应为 0。

[in, optional] error

指向 WS_ERROR 对象的指针,如果函数失败,应存储有关错误的其他信息。

返回值

此函数可以返回其中一个值。

返回代码 说明
WS_E_INVALID_FORMAT
输入数据的格式不是预期的,或者没有预期的值。
E_OUTOFMEMORY
内存不足。
E_INVALIDARG
一个或多个参数无效。
其他错误
此函数可能会返回上面未列出的其他错误。

注解

此函数根据提供的 WS_ELEMENT_DESCRIPTION 的内容支持以下方案:

  • 编写单个元素。 在这种情况下, WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段应设置为要写入的元素的本地名称和命名空间,类型和类型说明表示要序列化的值的类型。 如果使用 WS_FAULT_TYPEWS_ENDPOINT_ADDRESS_TYPE,则无需指定本地名称、命名空间或类型说明, (它们将根据邮件) 的信封/寻址版本适当默认。
  • 将多个元素作为单个值写入。 在这种情况下,应将 WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段设置为 NULL,并指定 WS_STRUCT_TYPEWS_STRUCT_DESCRIPTION 。 在这种情况下,要序列化的结构值的每个字段都应对应于要在正文中写入的元素 () 。
  • 将多个元素写入为多个值。 只需多次调用函数即可编写多个非重复值。

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll