WsSetHeader 函数 (webservices.h)

在消息中添加或替换指定的标准标头。

语法

HRESULT WsSetHeader(
  [in]           WS_MESSAGE      *message,
  [in]           WS_HEADER_TYPE  headerType,
  [in]           WS_TYPE         valueType,
  [in]           WS_WRITE_OPTION writeOption,
                 const void      *value,
  [in]           ULONG           valueSize,
  [in, optional] WS_ERROR        *error
);

参数

[in] message

要设置标头的消息。

消息可以处于任何状态,但 WS_MESSAGE_STATE_EMPTY

[in] headerType

要序列化的标头的类型。

[in] valueType

要序列化的值的类型。 有关每种标头类型支持的类型集,请参阅 WS_HEADER_TYPE

[in] writeOption

是否需要标头元素,以及如何分配值。 无法指定WS_WRITE_NILLABLE_VALUEWS_WRITE_NILLABLE_POINTER写入选项,因为WS_HEADER_TYPE中的标头类型在各自的标准规范中不允许为 nillable。 有关详细信息 ,请参阅WS_WRITE_OPTION

value

要序列化的标头值。 有关详细信息 ,请参阅WS_WRITE_OPTION

[in] valueSize

要序列化的值的大小(以字节为单位)。

[in, optional] error

指定函数失败时应存储其他错误信息的位置。

返回值

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

返回代码 说明
WS_E_INVALID_FORMAT
消息中存在标头类型的多个实例。
E_OUTOFMEMORY
没有足够的内存可用于序列化标头。
E_INVALIDARG
一个或多个参数不正确。
其他错误
此函数可能会返回上面未列出的其他错误。

注解

此 API 允许设置标准标头类型, (查看 WS_HEADER_TYPE) 。 对于应用程序定义的标头类型,请使用 WsAddCustomHeader

此 API 设计为句柄类型的标头,这些标头在消息中出现一次,并针对最终接收方。 此 API 将忽略面向除最终接收方以外的角色/参与者的标头。

如果消息中已存在面向最终接收方) 的给定类型的标头 (,则会替换该标头。

要求

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