Поделиться через


функция обратного вызова 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 через WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE.

[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
Header webservices.h