WS_SERVICE_MESSAGE_RECEIVE_CALLBACK回调函数 (webservices.h)
在配置 有 defaultMessageHandlerCallback 集的WS_SERVICE_CONTRACT的终结点上收到 WS_MESSAGE 时调用。
传入 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_CONTRACT 上定义 WS_SERVICE_MESSAGE_RECEIVE_CALLBACK。
调用回调时,服务模型已对接收WS_MESSAGE执行 WsReadMessageStart。 实现 WS_SERVICE_MESSAGE_RECEIVE_CALLBACK 的应用程序负责处理正文并执行 WsReadMessageEnd 操作。
如果回调失败,基础通道将中止。
示例
定义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 |
标头 | webservices.h |