WS_SERVICE_MESSAGE_RECEIVE_CALLBACK 콜백 함수(webservices.h)
defaultMessageHandlerCallback이 설정된 WS_SERVICE_CONTRACT 구성된 엔드포인트에서 WS_MESSAGE 수신될 때 호출됩니다.
들어오는 WS_MESSAGE serviceProxy와 다른 매개 변수는 WS_OPERATION_CONTEXT 통해 콜백에 사용할 수 있습니다.
구문
WS_SERVICE_MESSAGE_RECEIVE_CALLBACK WsServiceMessageReceiveCallback;
HRESULT WsServiceMessageReceiveCallback(
[in] const WS_OPERATION_CONTEXT *context,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
)
{...}
매개 변수
[in] context
이 콜백이 호출되는 컨텍스트 입니다.
[in, optional] asyncContext
콜백을 비동기적으로 실행할 수 있는지 여부를 지정합니다.
[in, optional] error
함수가 실패할 경우 추가 오류 정보를 저장할 위치를 지정합니다.
반환 값
이 콜백 함수는 값을 반환하지 않습니다.
설명
정의된 경우 콜백은 세션 기반 채널의 모든 동시성을 허용하지 않습니다. 세션 기반 채널의 동시성이 바람직한 경우 애플리케이션은 WS_SERVICE_CONTRACT WS_SERVICE_MESSAGE_RECEIVE_CALLBACK 정의해서는 안 됩니다.
콜백을 호출할 때 서비스 모델은 수신 WS_MESSAGEWsReadMessageStart를 수행했습니다. 본문을 처리하고 WsReadMessageEnd 작업을 수행하는 WS_SERVICE_MESSAGE_RECEIVE_CALLBACK 구현하는 것은 애플리케이션의 책임입니다.
콜백이 실패하면 기본 채널이 중단됩니다.
UnTypedServiceExample도 참조하세요.
예제
WS_SERVICE_MESSAGE_RECEIVE_CALLBACK 정의
// Method contract for the service
static WS_SERVICE_CONTRACT calculatorContract =
{
NULL,
NULL,
DefaultMessageHandlerCallback, // WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
NULL
};
들어오는 WS_MESSAGE 속성에 액세스
HRESULT CALLBACK MessageRecieved(const WS_OPERATION_CONTEXT* context, const WS_ASYNC_CONTEXT* asyncContext, WS_ERROR* error)
{
:
hr = WsGetOperationContextProperty(context, WS_OPERATION_CONTEXT_PROPERTY_INPUT_MESSAGE, &requestMessage, sizeof(requestMessage), NULL, error);
:
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | webservices.h |