コールバック関数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 を実行しました。 本文を処理して WsReadMessageEnd 操作を実行するのは、WS_SERVICE_MESSAGE_RECEIVE_CALLBACKを実装するアプリケーションの役割です。
コールバックが失敗した場合、基になるチャネルは中止されます。
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 |
ヘッダー | webservices.h |