다음을 통해 공유


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