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 エラー コードが返されます。

リターン コード 説明
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
1 つ以上の引数が無効です。
WS_E_SECURITY_VERIFICATION_FAILURE
受信したデータのセキュリティ検証が成功しなかった。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web Services フレームワークでセキュリティ操作が失敗しました。
その他のエラー
この関数は、上記以外のエラーを返す場合があります。

注釈

チャネルを受け入れた後は、不要になったらチャネルを閉じ、リソースを解放する必要があります。
WsCloseChannel 関数を使用して、 WsFreeChannel または WsResetChannel を呼び出します。 関数。

WsAcceptChannel を成功させるには、リスナーがWS_LISTENER_STATE_OPEN状態で、チャネルがWS_CHANNEL_STATE_CREATED状態である必要があります。 詳細については、「WS_LISTENER_STATE」および「WS_CHANNEL_STATE列挙」を参照してください。

リスナーが WS_LISTENER_STATE_FAULTED 状態の場合、
WsAcceptChannel はWS_E_OBJECT_FAULTED エラー コードを直ちに返します。 アプリケーションがループ内で WsAcceptChannel を呼び出している場合、アプリケーションはこのエラーに対してチェックする必要があるため、ループを終了できます。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll