WS_SERVICE_ACCEPT_CHANNEL_CALLBACK回调函数 (webservices.h)

当服务主机在终结点侦听器上接受通道时调用。

对于基于会话的服务协定,此通知表示会话启动。 因此,可以在此回调中创建作用域为会话的应用程序状态。

语法

WS_SERVICE_ACCEPT_CHANNEL_CALLBACK WsServiceAcceptChannelCallback;

HRESULT WsServiceAcceptChannelCallback(
  [in]           const WS_OPERATION_CONTEXT *context,
                 void **channelState,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR *error
)
{...}

参数

[in] context

操作上下文。

channelState

回调可以通过此参数提供通道状态。 此通道状态通过WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE作为WS_OPERATION_CONTEXT的一部分提供给服务操作。

[in, optional] asyncContext

有关是否以异步方式调用函数的信息。

[in, optional] error

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

返回值

此回调函数不返回值。

注解

另请参阅 WS_SERVICE_CLOSE_CHANNEL_CALLBACK 应用程序可以使用它来取消关联状态,并在通道关闭时被调用。

此回调是可取消的。

示例

有关如何使用此回调关联会话状态的示例实现,请参阅基于会话的计算器 示例

HRESULT CALLBACK CreateSessionCalculator (const WS_OPERATION_CONTEXT* context, void** userChannelState,
                                          const WS_ASYNC_CONTEXT* asyncContext, WS_ERROR* error)
{
    SessionfullCalculator* calculator = new SessionfullCalculator ();
    if (calculator != NULL)
        *userChannelState = (void*) calculator;
    else
        return E_OUTOFMEMORY;
    return NOERROR;
}

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 webservices.h