> ## 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.

# IGameInputDevice::GetXInputDeviceIndex

> 入力デバイスに割り当てられている XInput ユーザー インデックスがあれば、それを取得します。

入力デバイスに割り当てられている XInput ユーザー インデックスがあれば、それを取得します。

## 構文

```cpp theme={null}
bool GetXInputDeviceIndex(
    uint32_t* index
);
```

### パラメーター

*index*   \_Out\_\
型: uint32\_t\*

デバイスの 0 から始まる XInput ユーザー インデックス (0 ～ 3) を受け取ります。デバイスに XInput ユーザー インデックスがない場合は 0 に設定されます。

### 戻り値

型: bool

デバイスに現在 XInput ユーザー インデックスがある場合は `true`。それ以外の場合は `false`。

## 解説

XInput ユーザー インデックスは、XInput API がコントローラーを識別するために使用するコントローラー スロットで、通常はコントローラーに表示されるプレイヤー インジケーターに対応します。このメソッドを使用すると、GameInput デバイスを、XInput で同じユーザー インデックスが参照するコントローラーと関連付けることができます。たとえば、タイトルを XInput から GameInput へコントローラー 1 台ずつ移行する場合に使用します。

ユーザー インデックスを持つのは、XInput を通じて公開されるデバイスのみです。キーボード、マウス、ほとんどの HID ゲーム コントローラーなど、その他のデバイスは `false` を返します。集約デバイスが XInput ユーザー インデックスを持つことはありません。デバイスが切断されると、そのユーザー インデックスは解放され、メソッドは `false` を返します。

ほとんどのデバイス プロパティとは異なり、XInput ユーザー インデックスはデバイスの接続中に変化することがあります。変化すると、GameInput は登録されたデバイス コールバックに [GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent) の `GameInputDeviceEventXInputIndexUpdated` 値で通知します。新しいインデックスを取得するには、コールバック内から `GetXInputDeviceIndex` をもう一度呼び出します。

```cpp theme={null}
void CALLBACK OnDeviceEvent(
    GameInputCallbackToken callbackToken,
    void* context,
    GameInputDeviceEvent deviceEvent,
    IGameInputDevice* device) noexcept
{
    if (deviceEvent == GameInputDeviceEventXInputIndexUpdated)
    {
        uint32_t index = 0;
        if (device->GetXInputDeviceIndex(&index))
        {
            // The device is now assigned to XInput user index 'index'.
        }
        else
        {
            // The device no longer has an XInput user index.
        }
    }
}
```

## 要件

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

**ライブラリ:** gameinput.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体、XBOX Series 本体

## 関連項目

[GameInput の概要](https://docs.xbox.com/ja-jp/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent)\
[IGameInput::RegisterDeviceCallback](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerdevicecallback.md)

## バージョン履歴

| バージョン | 変更内容 |
| - | - |
| **v4** | 導入されました。 |


## Related topics

- [IGameInputDevice (インターフェイスの内容)](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)
- [IGameInputDevice::GetTouchSurfaceInfo](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_gettouchsurfaceinfo.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
- [IGameInputDevice::GetDeviceId](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceid.md)
- [IGameInputDevice::GetGamepadInfo](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getgamepadinfo.md)
