共用方式為


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