WS_SERVICE_MESSAGE_RECEIVE_CALLBACK función de devolución de llamada (webservices.h)
Se invoca cuando se recibe un WS_MESSAGE en un punto de conexión configurado con un WS_SERVICE_CONTRACT que tiene establecido defaultMessageHandlerCallback.
El WS_MESSAGE entrante, serviceProxy junto con otros parámetros está disponible para la devolución de llamada a través de WS_OPERATION_CONTEXT.
Sintaxis
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
Contexto en el que se invoca esta devolución de llamada.
[in, optional] asyncContext
Especifica si la devolución de llamada se puede ejecutar de forma asincrónica.
[in, optional] error
Especifica dónde se debe almacenar información de error adicional si se produce un error en la función.
Valor devuelto
Esta función de devolución de llamada no devuelve un valor.
Comentarios
Cuando se define, la devolución de llamada no permitiría toda simultaneidad en un canal basado en sesión. Si la simultaneidad en un canal basado en sesión es deseable, una aplicación no debe definir WS_SERVICE_MESSAGE_RECEIVE_CALLBACK en el WS_SERVICE_CONTRACT.
En el momento de la invocación de la devolución de llamada, el modelo de servicio ha realizado WsReadMessageStart en el WS_MESSAGE receptor. Es responsabilidad de la aplicación que implementa WS_SERVICE_MESSAGE_RECEIVE_CALLBACK procesar el cuerpo y realizar la operación WsReadMessageEnd .
Si se produce un error en la devolución de llamada, se anula el canal subyacente.
Consulte también UnTypedServiceExample.
Ejemplos
Definición de un WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
// Method contract for the service
static WS_SERVICE_CONTRACT calculatorContract =
{
NULL,
NULL,
DefaultMessageHandlerCallback, // WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
NULL
};
Acceso a la propiedad de WS_MESSAGE entrante
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 | Value |
---|---|
Cliente mínimo compatible | Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | webservices.h |