função de retorno de chamada WS_SERVICE_MESSAGE_RECEIVE_CALLBACK (webservices.h)
Invocado quando um WS_MESSAGE é recebido em um ponto de extremidade configurado com um WS_SERVICE_CONTRACT que tem defaultMessageHandlerCallback definido.
O WS_MESSAGE de entrada, o serviceProxy junto com outros parâmetros é disponibilizado para o retorno de chamada por meio de WS_OPERATION_CONTEXT.
Sintaxe
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
)
{...}
Parâmetros
[in] context
O contexto no qual esse retorno de chamada está sendo invocado.
[in, optional] asyncContext
Especifica se o retorno de chamada pode ser executado de forma assíncrona.
[in, optional] error
Especifica onde informações adicionais de erro devem ser armazenadas se a função falhar.
Retornar valor
Essa função de retorno de chamada não retorna um valor.
Comentários
Quando definido, o retorno de chamada não permite toda a simultaneidade em um canal baseado em sessão. Se a simultaneidade em um canal baseado em sessão for desejável, um aplicativo não deverá definir WS_SERVICE_MESSAGE_RECEIVE_CALLBACK no WS_SERVICE_CONTRACT.
No momento da invocação do retorno de chamada, o modelo de serviço executou WsReadMessageStart no WS_MESSAGE de recebimento. É responsabilidade do aplicativo implementar WS_SERVICE_MESSAGE_RECEIVE_CALLBACK processar o corpo e executar a operação WsReadMessageEnd .
Se o retorno de chamada falhar, o canal subjacente será anulado.
Confira também UnTypedServiceExample
Exemplos
Definindo um WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
// Method contract for the service
static WS_SERVICE_CONTRACT calculatorContract =
{
NULL,
NULL,
DefaultMessageHandlerCallback, // WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
NULL
};
Acessando a propriedade WS_MESSAGE de entrada
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);
:
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | webservices.h |