WS_SERVICE_MESSAGE_RECEIVE_CALLBACK funzione di callback (webservices.h)
Richiamato quando viene ricevuto un WS_MESSAGE in un endpoint configurato con un WS_SERVICE_CONTRACT con set defaultMessageHandlerCallback.
Il WS_MESSAGE in ingresso, serviceProxy insieme ad altri parametri viene reso disponibile per il callback tramite WS_OPERATION_CONTEXT.
Sintassi
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
)
{...}
Parametri
[in] context
Contesto in cui viene richiamato il callback.
[in, optional] asyncContext
Specifica se il callback può essere eseguito in modo asincrono.
[in, optional] error
Specifica dove archiviare informazioni aggiuntive sull'errore se la funzione ha esito negativo.
Valore restituito
Questa funzione di callback non restituisce un valore.
Commenti
Se definito, il callback non consente tutte le concorrenza in un canale basato su sessione. Se la concorrenza in un canale basato su sessione è preferibile, un'applicazione non deve definire WS_SERVICE_MESSAGE_RECEIVE_CALLBACK nel WS_SERVICE_CONTRACT.
Al momento della chiamata del callback, il modello di servizio ha eseguito WsReadMessageStart sul WS_MESSAGE ricevente. È responsabilità dell'applicazione che implementa WS_SERVICE_MESSAGE_RECEIVE_CALLBACK elaborare il corpo ed eseguire l'operazione WsReadMessageEnd .
Se il callback non riesce, il canale sottostante viene interrotto.
Vedere anche UnTypedServiceExample
Esempio
Definizione di 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
};
Accesso alla proprietà WS_MESSAGE in ingresso
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);
:
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | webservices.h |