> ## 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::GetControllerButtonLabels

> Récupère les étiquettes des boutons de contrôleur génériques du périphérique.

Récupère les étiquettes des boutons de contrôleur génériques du périphérique.

## Syntaxe

```cpp theme={null}
uint32_t GetControllerButtonLabels(
    uint32_t labelArrayCount,
    GameInputLabel* labelArray
);
```

### Paramètres

*labelArrayCount*   \_In\_\
Type : uint32\_t

Nombre d'éléments de *labelArray*. Pour récupérer toutes les étiquettes des boutons de contrôleur, transmettez la valeur retournée par [GetControllerButtonCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md).

*labelArray*   \_Out\_writes\_to\_opt\_(labelArrayCount, return)\
Type : [GameInputLabel](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputlabel.md)\*

Pointeur vers un tableau qui reçoit une étiquette par bouton de contrôleur. Peut être `nullptr`, auquel cas rien n'est écrit et la méthode retourne 0.

### Valeur de retour

Type : uint32\_t

Nombre d'éléments écrits dans *labelArray*. Il s'agit de la plus petite valeur entre *labelArrayCount* et le nombre d'étiquettes des boutons de contrôleur du périphérique, ou de 0 si *labelArray* est `nullptr` ou si le périphérique n'a aucune étiquette de bouton de contrôleur.

## Remarques

Chaque élément est une valeur [GameInputLabel](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputlabel.md) qui identifie l'inscription imprimée sur le bouton correspondant, si le périphérique en signale une.

Appelez [GetControllerButtonCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md) pour obtenir le nombre d'étiquettes des boutons de contrôleur, allouez un tableau de cette taille, puis appelez `GetControllerButtonLabels` pour le remplir. Si *labelArrayCount* est inférieur au nombre d'étiquettes des boutons de contrôleur, seuls les *labelArrayCount* premiers éléments sont écrits. Les étiquettes des boutons de contrôleur d'un périphérique ne changent pas tant que le périphérique est connecté ; vous pouvez donc les interroger une seule fois et mettre le résultat en cache.

L'élément *i* du tableau d'étiquettes décrit le bouton situé à l'index *i* du tableau retourné par [IGameInputReading::GetControllerButtonState](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerbuttonstate.md) pour les lectures de ce périphérique.

L'exemple suivant montre comment récupérer les étiquettes des boutons de contrôleur d'un périphérique.

```cpp theme={null}
uint32_t buttonCount = device->GetControllerButtonCount();
std::vector<GameInputLabel> buttonLabels(buttonCount);
buttonLabels.resize(device->GetControllerButtonLabels(buttonCount, buttonLabels.data()));

std::unique_ptr<bool[]> buttonStates(new bool[buttonCount]);
uint32_t stateCount = reading->GetControllerButtonState(buttonCount, buttonStates.get());

for (uint32_t i = 0; i < buttonLabels.size() && i < stateCount; ++i)
{
    // buttonLabels[i] is the label of the button whose state is buttonStates[i].
}
```

Dans GameInput v3 et les versions antérieures, ces informations étaient disponibles via le membre `controllerButtonLabels` de la structure [GameInputControllerInfo](https://docs.xbox.com/fr/reference/input/gameinput/deprecated/structs/gameinputcontrollerinfo.md), référencée par le membre `controllerInfo` de la structure [GameInputDeviceInfo](https://docs.xbox.com/fr/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) retournée par [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/fr/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

## Configuration requise

**En-tête :** GameInput.h

**Bibliothèque :** gameinput.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Vue d'ensemble de GameInput](https://docs.xbox.com/fr/build/core-features/common/input/overviews/input-overview.md)\
[GetControllerButtonCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md)\
[GameInputLabel](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputlabel.md)\
[IGameInputReading::GetControllerButtonState](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerbuttonstate.md)\
[IGameInputDevice](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduite. |


## Related topics

- [GameInputLabel](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputlabel.md)
- [IGameInputDevice::GetControllerButtonCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md)
- [IGameInputDevice::GetControllerAxisLabels](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxislabels.md)
- [IGameInputDevice::GetControllerAxisCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxiscount.md)
- [IGameInputDevice::GetGamepadInfo](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getgamepadinfo.md)
