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