WS_SERVICE_ACCEPT_CHANNEL_CALLBACK コールバック関数 (webservices.h)
サービス ホストによってエンドポイント リスナーでチャネルが受け入れられたときに呼び出されます。
セッション ベースのサービス コントラクトの場合、この通知はセッション開始を示します。 したがって、セッションのスコープが設定されたアプリケーションの状態は、このコールバック内に作成できます。
構文
WS_SERVICE_ACCEPT_CHANNEL_CALLBACK WsServiceAcceptChannelCallback;
HRESULT WsServiceAcceptChannelCallback(
[in] const WS_OPERATION_CONTEXT *context,
void **channelState,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
)
{...}
パラメーター
[in] context
操作コンテキスト。
channelState
コールバックは、このパラメーターを使用してチャネル状態を提供できます。 このチャネル状態は、WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATEを介して WS_OPERATION_CONTEXT の一部としてサービス 操作で使用できるようになります。
[in, optional] asyncContext
関数が非同期的に呼び出されるかどうかに関する情報。
[in, optional] error
関数が失敗した場合に追加のエラー情報を格納する場所を指定します。
戻り値
このコールバック関数は値を返しません。
注釈
WS_SERVICE_CLOSE_CHANNEL_CALLBACKも参照してください。これは、アプリケーションが状態の関連付けを解除するために使用でき、チャネルのクローズ時に呼び出されます。
このコールバックは取り消し可能です。
例
セッション状態を関連付けるためにこのコールバックを使用する方法の実装例については、セッション ベースの計算ツールの サンプルを参照してください。
HRESULT CALLBACK CreateSessionCalculator (const WS_OPERATION_CONTEXT* context, void** userChannelState,
const WS_ASYNC_CONTEXT* asyncContext, WS_ERROR* error)
{
SessionfullCalculator* calculator = new SessionfullCalculator ();
if (calculator != NULL)
*userChannelState = (void*) calculator;
else
return E_OUTOFMEMORY;
return NOERROR;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | webservices.h |