Compartir a través de


WS_SERVICE_ACCEPT_CHANNEL_CALLBACK función de devolución de llamada (webservices.h)

Se invoca cuando el host de servicio acepta un canal en un agente de escucha de punto de conexión.

En el caso del contrato de servicio basado en sesión, esta notificación indica el inicio de la sesión. Por lo tanto, se puede crear un estado de aplicación para la sesión dentro de esta devolución de llamada.

Sintaxis

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

El contexto de la operación.

channelState

La devolución de llamada puede proporcionar el estado del canal a través de este parámetro. Este estado del canal está disponible para la operación de servicio como parte de WS_OPERATION_CONTEXT a través del WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE.

[in, optional] asyncContext

Información sobre si la función se invoca de forma asincrónica.

[in, optional] error

Especifica dónde se debe almacenar información de error adicional si se produce un error en la función.

Valor devuelto

Esta función de devolución de llamada no devuelve un valor.

Comentarios

Consulte también WS_SERVICE_CLOSE_CHANNEL_CALLBACK que la aplicación puede usar para desasociar el estado y se llama a en el cierre del canal.

Esta devolución de llamada se puede cancelar.

Ejemplos

Para obtener un ejemplo de implementación sobre cómo usar esta devolución de llamada para asociar el estado de sesión, consulte el ejemplo de calculadora basada en sesión.

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 Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado webservices.h