функция обратного вызова WS_SERVICE_MESSAGE_RECEIVE_CALLBACK (webservices.h)
Вызывается при получении WS_MESSAGE в конечной точке, настроенной с помощью WS_SERVICE_CONTRACT с заданным значением defaultMessageHandlerCallback.
Входящий 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_MESSAGE_RECEIVE_CALLBACK на WS_SERVICE_CONTRACT.
Во время вызова обратного вызова модель службы выполнила WsReadMessageStart на принимающем WS_MESSAGE. Приложение, реализующее WS_SERVICE_MESSAGE_RECEIVE_CALLBACK , отвечает за обработку текста и выполнение операции WsReadMessageEnd .
Если обратный вызов завершается сбоем, базовый канал прерывается.
См. также 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 |
Header | webservices.h |