WsAcceptChannel 函数 (webservices.h)
接受来自指定 侦听器的下一个传入消息。
语法
HRESULT WsAcceptChannel(
[in] WS_LISTENER *listener,
[in] WS_CHANNEL *channel,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
参数
[in] listener
指向表示侦听器 的WS_LISTENER 结构的指针。 这是在创建通道时传递给 WsCreateChannelForListener 的侦听器。
[in] channel
指向表示要接受的通道 的WS_CHANNEL 结构的指针。
[in, optional] asyncContext
指向 WS_ASYNC_CONTEXT 数据结构的指针,其中包含用于异步调用函数的信息。 为同步操作传递 NULL 值。
[in, optional] error
指向 WS_ERROR 结构的指针,该结构在函数失败时接收其他错误信息。
返回值
如果函数成功,则返回NO_ERROR;否则,它将返回 HRESULT 错误代码。
返回代码 | 说明 |
---|---|
|
异步操作仍处于挂起状态。 |
|
侦听器或通道已中止。 |
|
侦听器出错。 请参阅“备注”部分。 |
|
侦听器或通道或两者都处于不适当的状态。 请参阅“备注”部分。 |
|
与远程终结点的连接已终止。 |
|
该操作未在分配的时间内完成。 |
|
超出配额。 |
|
输入数据的格式不是预期的,或者没有预期的值。 |
|
内存不足,无法完成操作。 |
|
一个或多个参数无效。 |
|
对于收到的数据,安全验证未成功。 |
|
Windows Web Services 框架中的安全操作失败。 |
|
此函数可能会返回上面未列出的其他错误。 |
注解
接受频道后,必须在不再需要通道时将其关闭,并通过调用 来释放资源
WsCloseChannel 函数,然后调用 WsFreeChannel 或 WsResetChannel。
。
要使 WsAcceptChannel 成功,侦听器必须处于WS_LISTENER_STATE_OPEN状态,通道必须处于WS_CHANNEL_STATE_CREATED状态。 有关详细信息,请参阅 WS_LISTENER_STATE 和 WS_CHANNEL_STATE 枚举。
如果侦听器处于 WS_LISTENER_STATE_FAULTED 状态,
WsAcceptChannel 会立即返回 WS_E_OBJECT_FAULTED 错误代码。 如果应用程序在循环中调用 WsAcceptChannel,则应用程序必须检查此错误,以便结束循环。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | webservices.h |
Library | WebServices.lib |
DLL | WebServices.dll |