Compartilhar via


WS_SERVICE_ACCEPT_CHANNEL_CALLBACK função de retorno de chamada (webservices.h)

Invocado quando um canal é aceito em um ouvinte de ponto de extremidade pelo host de serviço.

Para o contrato de serviço baseado em sessão, essa notificação significa a iniciação da sessão. Portanto, um estado de aplicativo com escopo para a sessão pode ser criado dentro desse retorno de chamada.

Sintaxe

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
)
{...}

Parâmetros

[in] context

O contexto da operação.

channelState

O retorno de chamada pode fornecer o estado do canal por meio desse parâmetro. Esse estado de canal é disponibilizado para a operação de serviço como parte de WS_OPERATION_CONTEXT por meio do WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE.

[in, optional] asyncContext

Informações sobre se a função está sendo invocada de forma assíncrona.

[in, optional] error

Especifica onde informações adicionais de erro devem ser armazenadas se a função falhar.

Retornar valor

Essa função de retorno de chamada não retorna um valor.

Comentários

Consulte também WS_SERVICE_CLOSE_CHANNEL_CALLBACK que pode ser usado pelo aplicativo para desassociar o estado e é chamado no fechamento do canal.

Esse retorno de chamada é cancelável.

Exemplos

Para obter um exemplo de implementação sobre como usar esse retorno de chamada para associar o estado da sessão, consulte o exemplo de calculadora baseada em sessão.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho webservices.h