> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XINPUT_KEYSTROKE

> XINPUT_KEYSTROKE

# XINPUT\_KEYSTROKE

XInputGetKeystroke 関数によって返されるキーストローク データを表します。

## 構文

```cpp theme={null}
typedef struct XINPUT_KEYSTROKE {  
    WORD VirtualKey;  
    WCHAR Unicode;  
    WORD Flags;  
    BYTE UserIndex;  
    BYTE HidCode;  
} XINPUT_KEYSTROKE  
```

### メンバー

*VirtualKey*\
型: WORD

キー、ボタン、またはスティック操作の仮想キー コード。

*Unicode*\
型: WCHAR

このメンバーは使用されず、値は 0 です。

*Flags*\
型: WORD

入力イベント発生時のキーボードの状態を示すフラグ。このメンバーは次のフラグの任意の組み合わせを取ります。

| 値 | 説明 |
| - | - |
| XINPUT\_KEYSTROKE\_KEYDOWN | キーが押されました。 |
| XINPUT\_KEYSTROKE\_KEYUP | キーが離されました。 |
| XINPUT\_KEYSTROKE\_REPEAT | キーが押し続けられているためのリピートです。 |

*UserIndex*\
型: BYTE

ヘッドセットに関連付けられているゲーマーのインデックス。0 ～ `XUSER_MAX_COUNT - 1` の範囲の値。

*HidCode*\
型: BYTE

入力に対応する Human Interface Device (HID) コード。対応する HID コードがない場合、この値は 0 です。

## 解説

この構造体は [XInputGetKeystroke](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/functions/xinputgetkeystroke.md) 関数で使用されます。

将来のデバイスでは、現在のデバイスではサポートされておらず、現時点では定義されていない HID コードや仮想キー値が返される場合があります。アプリケーションは、これらの予期しない値を無視する必要があります。

仮想キー コードは、キーボード上の特定の物理キーを表すバイト値であり、キーボードの状態に応じてマップされる文字 (存在しない場合もあります) ではありません。仮想キーが押された時点のキーボードの状態が、報告される文字を変化させます。たとえば、`VK_4` は Shift キーの状態に応じて「4」または「\$」を表すことがあります。

報告されるキーボード イベントには、イベントの原因となった仮想キー、キーが押されたか離されたか (またはリピートしているか)、およびイベント発生時のキーボードの状態が含まれます。キーボードの状態は、Ctrl、Alt、または Shift のいずれかのキーが押されているかどうかを示します。

有効な仮想キー コード (VK\_xxx) は XInput.h で定義されています。キー押下を示すコードに加えて、次のコードはコントローラー入力を示します。

| 値 | 説明 |
| - | - |
| VK\_PAD\_A | **A** ボタン |
| VK\_PAD\_B | **B** ボタン |
| VK\_PAD\_X | **X** ボタン |
| VK\_PAD\_Y | **Y** ボタン |
| VK\_PAD\_RSHOULDER | 右ショルダー ボタン |
| VK\_PAD\_LSHOULDER | 左ショルダー ボタン |
| VK\_PAD\_LTRIGGER | 左トリガー |
| VK\_PAD\_RTRIGGER | 右トリガー |
| VK\_PAD\_DPAD\_UP | 方向パッド上 |
| VK\_PAD\_DPAD\_DOWN | 方向パッド下 |
| VK\_PAD\_DPAD\_LEFT | 方向パッド左 |
| VK\_PAD\_DPAD\_RIGHT | 方向パッド右 |
| VK\_PAD\_START | Start ボタン |
| VK\_PAD\_BACK | Back ボタン |
| VK\_PAD\_LTHUMB\_PRESS | 左サムスティック クリック |
| VK\_PAD\_RTHUMB\_PRESS | 右サムスティック クリック |
| VK\_PAD\_LTHUMB\_UP | 左サムスティック 上 |
| VK\_PAD\_LTHUMB\_DOWN | 左サムスティック 下 |
| VK\_PAD\_LTHUMB\_RIGHT | 左サムスティック 右 |
| VK\_PAD\_LTHUMB\_LEFT | 左サムスティック 左 |
| VK\_PAD\_LTHUMB\_UPLEFT | 左サムスティック 上および左 |
| VK\_PAD\_LTHUMB\_UPRIGHT | 左サムスティック 上および右 |
| VK\_PAD\_LTHUMB\_DOWNRIGHT | 左サムスティック 下および右 |
| VK\_PAD\_LTHUMB\_DOWNLEFT | 左サムスティック 下および左 |
| VK\_PAD\_RTHUMB\_UP | 右サムスティック 上 |
| VK\_PAD\_RTHUMB\_DOWN | 右サムスティック 下 |
| VK\_PAD\_RTHUMB\_RIGHT | 右サムスティック 右 |
| VK\_PAD\_RTHUMB\_LEFT | 右サムスティック 左 |
| VK\_PAD\_RTHUMB\_UPLEFT | 右サムスティック 上および左 |
| VK\_PAD\_RTHUMB\_UPRIGHT | 右サムスティック 上および右 |
| VK\_PAD\_RTHUMB\_DOWNRIGHT | 右サムスティック 下および右 |
| VK\_PAD\_RTHUMB\_DOWNLEFT | 右サムスティック 下および左 |

詳細については、[XInputOnGameInput ラッパー](https://docs.xbox.com/ja-jp/build/core-features/common/input/porting/input-porting-xinput.md#xinputWrapperSection)を参照してください。

## 要件

**ヘッダー:** XInputOnGameInput.h

**対応プラットフォーム:** XBOX One ファミリー本体および XBOX Series 本体

## 関連項目

[XInput から GameInput への移植](https://docs.xbox.com/ja-jp/build/core-features/common/input/porting/input-porting-xinput.md)\
[XInputOnGameInput](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/xinputongameinput_members.md)


## Related topics

- [XInputGetKeystroke](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/functions/xinputgetkeystroke.md)
- [XInputOnGameInput (API の内容)](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/xinputongameinput_members.md)
- [XInput から GameInput への移植](https://docs.xbox.com/ja-jp/build/core-features/common/input/porting/input-porting-xinput.md)
- [XINPUT_GAMEPAD](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/structs/xinput_gamepad.md)
- [XINPUT_CAPABILITIES](https://docs.xbox.com/ja-jp/reference/input/xinputongameinput/structs/xinput_capabilities.md)
