次の方法で共有


WebSocketGetAction 関数 (websocket.h)

WebSocketGetAction 関数は、WebSocketSendWebSocketReceive、または WebSocketCompleteAction の呼び出しからアクションを返します。

構文

HRESULT WebSocketGetAction(
  [in]            WEB_SOCKET_HANDLE       hWebSocket,
  [in]            WEB_SOCKET_ACTION_QUEUE eActionQueue,
  [in, out]       WEB_SOCKET_BUFFER       *pDataBuffers,
  [in, out]       ULONG                   *pulDataBufferCount,
  [out]           WEB_SOCKET_ACTION       *pAction,
  [out]           WEB_SOCKET_BUFFER_TYPE  *pBufferType,
  [out, optional] PVOID                   *pvApplicationContext,
  [out]           PVOID                   *pvActionContext
);

パラメーター

[in] hWebSocket

種類: WEB_SOCKET_HANDLE

WebSocketCreateClientHandle または WebSocketCreateServerHandle の以前の呼び出しによって返された WebSocket セッション ハンドル。

[in] eActionQueue

種類: WEB_SOCKET_ACTION_QUEUE

送信キュー、受信キュー、またはその両方に対してクエリを実行するかどうかを指定する列挙。

[in, out] pDataBuffers

種類: WEB_SOCKET_BUFFER*

WebSocket バッファー データを含む WEB_SOCKET_BUFFER 構造体の配列へのポインター。

メモWEB_SOCKET_BUFFER構造体のメモリは WebSocketGetAction によって上書きされるため、割り当てまたは割り当てを解除しないでください。 WebSocketGetAction によって返されるバッファーのメモリは、ライブラリによって管理されます。
 

[in, out] pulDataBufferCount

種類: ULONG*

入力時に、 pDataBuffers 内の要素の数を指定する値へのポインター。 正常に出力された場合、 pDataBuffers で実際に返された要素の数。

[out] pAction

種類: WEB_SOCKET_ACTION*

正常に出力されると、クエリからキューに返されるアクションを指定する WEB_SOCKET_ACTION 列挙へのポインターが eActionQueue で定義されます。

[out] pBufferType

種類: WEB_SOCKET_BUFFER_TYPE*

正常に出力された場合は、pDataBuffers で返される Web ソケット バッファー データの種類を指定するWEB_SOCKET_BUFFER_TYPE列挙へのポインター。

[out, optional] pvApplicationContext

種類: PVOID*

正常に出力された場合は、アプリケーション コンテキスト ハンドルへのポインター。 ここで返されたコンテキストは、最初に WebSocketSend または WebSocketReceive に渡されました。 ping の受信に応答してポンを送信するときに pActionWEB_SOCKET_NO_ACTIONまたはWEB_SOCKET_SEND_TO_NETWORK_ACTION場合、pvApplicationContext は設定されません。

[out] pvActionContext

種類: PVOID*

正常に出力された場合は、アクション コンテキスト ハンドルへのポインター。 このハンドルは、後続の呼び出し WebSocketCompleteAction に渡されます。

戻り値

型: HRESULT

関数が成功した場合は、S_OK を返します。

関数が失敗した場合は、WinError.h で定義されている次のいずれかの システム エラー コード が返されます。

リターン コード 説明
E_INVALID_PROTOCOL_FORMAT
プロトコル データの形式が無効です。 これは、受信操作の場合にのみ返されます。
E_INVALID_PROTOCOL_OPERATION
プロトコルで無効な操作が実行されました。 これは、受信操作の場合にのみ返されます。

注釈

WebSocketGetAction の各呼び出しは、WebSocketCompleteAction の呼び出しとペアにする必要があります。

WebSocketCompleteActionulBytesTransferred パラメーターが、WEB_SOCKET_SEND_TO_NETWORK_ACTION アクションのすべてのバッファー長の合計と異なる場合、または WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION アクションの場合、WebSocket アプリケーションは要求されたすべてのデータを送受信しません。

WebSocketGetActionpAction で返されます。

未処理の送受信操作は一度に 1 つだけ存在する可能性があるため、 WebSocketCompleteAction を使用して前の操作が完了すると、次のアクションが返されます。

要件

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

こちらもご覧ください

WEB_SOCKET_ACTION

WEB_SOCKET_ACTION_QUEUE

WEB_SOCKET_BUFFER_TYPE

WebSocketCompleteAction

WebSocketReceive

WebSocketSend