Win32 API 日本語リファレンス
ホーム › Networking.WindowsWebServices › WS_SERVICE_ACCEPT_CHANNEL_CALLBACK

WS_SERVICE_ACCEPT_CHANNEL_CALLBACK

コールバック

シグネチャ

HRESULT WS_SERVICE_ACCEPT_CHANNEL_CALLBACK(
    WS_OPERATION_CONTEXT* context,
    void** channelState,
    WS_ASYNC_CONTEXT* asyncContext,
    WS_ERROR* error
);

パラメーター

フィールド型説明
contextWS_OPERATION_CONTEXT*

操作コンテキストです。

- **channelState

コールバックは、このパラメーターを通じてチャネルの状態を提供できます。このチャネルの状態は、WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE を通じて WS_OPERATION_CONTEXT の一部としてサービス操作から利用できます。

channelStatevoid**コールバックは、このパラメーターを通じてチャネルの状態を提供できます。このチャネルの状態は、WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE を通じて WS_OPERATION_CONTEXT の一部としてサービス操作から利用できます。
asyncContextWS_ASYNC_CONTEXT*関数が非同期に呼び出されているかどうかに関する情報です。
errorWS_ERROR*関数が失敗した場合に、追加のエラー情報を格納する場所を指定します。

公式ドキュメント

サービスホストによってエンドポイントリスナー上でチャネルが受け入れられたときに呼び出されます。

セッションベースのサービスコントラクトの場合、この通知はセッションの開始を表します。そのため、このコールバック内でセッションを対象範囲とするアプリケーションの状態を作成できます。

戻り値

このコールバック関数は値を返しません。

解説(Remarks)

アプリケーションが状態の関連付けを解除するために使用できる 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;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)