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 |