WsReadEnvelopeStart 函数 (webservices.h)

读取消息的标头并准备读取正文元素。 操作从读取器读取下一条消息的开头,包括消息的标头。 该过程允许从通道以外的其他源读取消息。 若要使用通道读取消息,请使用 WsReadMessageStart

注意 成功后,标头存储在消息中,可以使用 WsGetHeaderWsGetCustomHeader 等函数随机检索。

 

语法

HRESULT WsReadEnvelopeStart(
  [in]           WS_MESSAGE               *message,
  [in]           WS_XML_READER            *reader,
  [in, optional] WS_MESSAGE_DONE_CALLBACK doneCallback,
  [in, optional] void                     *doneCallbackState,
  [in, optional] WS_ERROR                 *error
);

参数

[in] message

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

[in] reader

指向读者的指针,其中包含要读取的消息。 Message 对象在当前和后续调用中使用 Reader。

注意 在调用 WsResetMessageWsFreeMessage 之前,函数调用方必须使 Reader 保持有效。
可以使用 WS_MESSAGE_DONE_CALLBACK 参数来了解 WS_XML_READER 不再使用。

 

[in, optional] doneCallback

标识在释放消息后当前操作成功时启动的回调函数。

注意使用 WsFreeMessageWsResetMessage 发布消息

 
回调可用于发现此消息是否正在使用 WS_XML_READER 实例。 如果当前操作失败,则不调用回调。

[in, optional] doneCallbackState

指向可传递给 WS_MESSAGE_DONE_CALLBACK的用户定义状态的指针。 如果未使用回调,此参数可能为 NULL

[in, optional] error

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

返回值

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

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

注解

消息必须处于 WS_MESSAGE_STATE_EMPTY 状态。 成功后,消息状态设置为 WS_MESSAGE_STATE_READING

若要读取消息正文的 元素,请使用 WsReadBody。 若要直接从 XML 读取器读取,请获取 将消息属性 ID 设置为 WS_MESSAGE_PROPERTY_BODY_READER的 Reader。

要求

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