WS_SERVICE_MESSAGE_RECEIVE_CALLBACK Rückruffunktion (webservices.h)
Wird aufgerufen, wenn ein WS_MESSAGE auf einem Endpunkt empfangen wird, der mit einem WS_SERVICE_CONTRACT konfiguriert ist, für den defaultMessageHandlerCallback festgelegt ist.
Die eingehende WS_MESSAGE, der serviceProxy zusammen mit anderen Parametern wird dem Rückruf über WS_OPERATION_CONTEXT zur Verfügung gestellt.
Syntax
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
)
{...}
Parameter
[in] context
Der Kontext , in dem dieser Rückruf aufgerufen wird.
[in, optional] asyncContext
Gibt an, ob der Rückruf asynchron ausgeführt werden kann.
[in, optional] error
Gibt an, wo zusätzliche Fehlerinformationen gespeichert werden sollen, wenn die Funktion fehlschlägt.
Rückgabewert
Diese Rückruffunktion gibt keinen Wert zurück.
Hinweise
Wenn diese Definition definiert ist, würde der Rückruf alle Parallelität in einem sitzungsbasierten Kanal nicht zulassen. Wenn Parallelität in einem sitzungsbasierten Kanal wünschenswert ist, sollte eine Anwendung nicht WS_SERVICE_MESSAGE_RECEIVE_CALLBACK auf dem WS_SERVICE_CONTRACT definieren.
Zum Zeitpunkt des Aufrufs des Rückrufs hat das Dienstmodell WsReadMessageStart für die empfangende WS_MESSAGE ausgeführt. Es liegt in der Verantwortung der Anwendung, die WS_SERVICE_MESSAGE_RECEIVE_CALLBACK implementiert, den Text zu verarbeiten und den WsReadMessageEnd-Vorgang auszuführen.
Wenn der Rückruf fehlschlägt, wird der zugrunde liegende Kanal abgebrochen.
Siehe auch UnTypedServiceExample
Beispiele
Definieren einer WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
// Method contract for the service
static WS_SERVICE_CONTRACT calculatorContract =
{
NULL,
NULL,
DefaultMessageHandlerCallback, // WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
NULL
};
Zugreifen auf die eingehende WS_MESSAGE-Eigenschaft
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);
:
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | webservices.h |