WsAcceptChannel 函式 (webservices.h)

接受來自指定 接聽程式的下一個傳入訊息。

語法

HRESULT WsAcceptChannel(
  [in]           WS_LISTENER            *listener,
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

參數

[in] listener

表示接聽程式 之WS_LISTENER 結構的指標。 這是在建立通道時傳遞至 WsCreateChannelForListener 的接聽程式。

[in] channel

表示要接受之通道 之WS_CHANNEL 結構的指標。

[in, optional] asyncContext

具有異步叫用函式資訊 之WS_ASYNC_CONTEXT 數據結構的指標。 傳遞同步作業的 NULL 值。

[in, optional] error

WS_ERROR 結構的指標,如果函式失敗,則會接收其他錯誤資訊。

傳回值

如果函式成功,它會傳回NO_ERROR;否則,它會傳回 HRESULT 錯誤碼。

傳回碼 Description
WS_S_ASYNC
異步操作仍然擱置中。
WS_E_OPERATION_ABORTED
接聽程式或通道已中止。
WS_E_OBJECT_FAULTED
接聽程式發生錯誤。 請參閱<備註>一節。
WS_E_INVALID_OPERATION
接聽程式或通道或兩者處於不適當的狀態。 請參閱<備註>一節。
WS_E_ENDPOINT_DISCONNECTED
已終止與遠端端點的連線。
WS_E_OPERATION_TIMED_OUT
作業未在配置的時間內完成。
WS_E_QUOTA_EXCEEDED
超過配額。
WS_E_INVALID_FORMAT
輸入數據的格式不正確,或沒有預期的值。
E_OUTOFMEMORY
記憶體不足,無法完成作業。
E_INVALIDARG
一或多個自變數無效。
WS_E_SECURITY_VERIFICATION_FAILURE
已接收數據的安全性驗證未成功。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web 服務架構中的安全性作業失敗。
其他錯誤
此函式可能會傳回上述未列出的其他錯誤。

備註

接受通道之後,當您不再需要通道,並藉由呼叫 來釋放資源時,您必須將其關閉
WsCloseChannel 函式,然後呼叫 WsFreeChannelWsResetChannel。 。

若要讓 WsAcceptChannel 成功,接聽程式必須處於WS_LISTENER_STATE_OPEN狀態,而且通道必須處於WS_CHANNEL_STATE_CREATED狀態。 如需詳細資訊,請參閱 WS_LISTENER_STATEWS_CHANNEL_STATE 列舉。

如果接聽程式處於 WS_LISTENER_STATE_FAULTED 狀態,
WsAcceptChannel 會立即傳回 WS_E_OBJECT_FAULTED 錯誤碼。 如果應用程式在迴圈中呼叫 WsAcceptChannel ,應用程式必須檢查此錯誤,才能結束迴圈。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll