WS_SERVICE_MESSAGE_RECEIVE_CALLBACK回呼函式 (webservices.h)
在設定WS_SERVICE_CONTRACT且已設定 defaultMessageHandlerCallback 的端點上收到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 |