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