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

# GetExtraButtonIndexes

> GetExtraButtonIndexes

# GetExtraButtonIndexes

取得裝置上針對指定輸入類型之額外按鈕的控制器按鈕索引。

## 語法

```cpp theme={null}
HRESULT GetExtraButtonIndexes(
    GameInputKind inputKind,
    uint32_t extraButtonCount,
    uint8_t* extraButtonIndexes
);
```

### 參數

*inputKind*   \_In\_\
類型：GameInputKind

要求其額外按鈕索引的輸入類型。

*extraButtonCount*   \_In\_\
類型：uint32\_t

額外按鈕之按鈕索引的預期數目。
此數目可透過呼叫  [GetExtraButtonCount](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextrabuttoncount) 擷取。

*extraButtonIndexes*   \_Out\_writes\_(extraButtonCount)\_\
類型：uint8\_t\*

指向按鈕索引陣列的指標。

### 傳回值

類型：HRESULT

函式結果。

## 備註

額外按鈕是存在於實體裝置上、但不屬於指定輸入類型之標準對應的控制器按鈕。

呼叫此方法之前，您應該先呼叫 [GetExtraButtonCount](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextrabuttoncount) 以判斷有多少額外按鈕可用，並將該數目當作 extraButtonCount 參數傳遞。

下列程式碼片段示範如何使用遊戲台的額外按鈕：

```cpp theme={null}
bool GetGamepadExtraButtonValues(
    std::vector<bool>* extraButtons,
    IGameInputReading* reading) noexcept
{
    Mwrl::ComPtr<IGameInputDevice> device;
    reading->GetDevice(&device);

    uint32_t extraButtonCount = 0;
    if (FAILED(device->GetExtraButtonCount(GameInputKindGamepad, &extraButtonCount)))
    {
        return false;
    }

    std::vector<uint8_t> buttonIndexes(extraButtonCount);
    extraButtons->resize(extraButtonCount);
    if (FAILED(device->GetExtraButtonIndexes(
        GameInputKindGamepad,
        extraButtonCount,
        buttonIndexes.data())))
    {
        return false;
    }

    std::vector<bool> buttonStates(reading->GetControllerButtonCount());
    reading->GetControllerButtonState(static_cast<uint32_t>(buttonStates.size()), buttonStates.data());

    for (size_t i = 0; i < buttonIndexes.size(); ++i)
    {
        if (buttonIndexes[i] < buttonStates.size())
        {
            (*extraButtons)[i] = buttonStates[buttonIndexes[i]];
        }
    }

    return true;
}
```

## 需求

**標頭：** GameInput.h

**程式庫：** gameinput.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[GameInputKind](/zh-TW/reference/input/gameinput/enums/gameinputkind)<br />
[GetExtraButtonCount](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextrabuttoncount)<br />
[GetExtraAxisIndexes](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextraaxisindexes)<br />
[IGameInputDevice](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice)

## 版本歷程記錄

| 版本 | 變更 |
| - | - |
| **v3** | 已推出。 |


## Related topics

- [GetExtraButtonCount](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextrabuttoncount.md)
- [GetExtraAxisIndexes](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextraaxisindexes.md)
- [IGameInputDevice](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)
- [GetExtraAxisCount](/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextraaxiscount.md)
- [GameInputRacingWheelInfo](/zh-TW/reference/input/gameinput/structs/gameinputracingwheelinfo.md)
