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

> Récupère des informations sur les commutateurs de contrôleur génériques du périphérique, comme les commutateurs chapeau et les croix directionnelles.

Récupère des informations sur les commutateurs de contrôleur génériques du périphérique, comme les commutateurs chapeau et les croix directionnelles.

## Syntaxe

```cpp theme={null}
uint32_t GetControllerSwitchInfo(
    uint32_t infoArrayCount,
    GameInputControllerSwitchInfo* infoArray
);
```

### Paramètres

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

Nombre d'éléments de *infoArray*. Pour récupérer tous les commutateurs de contrôleur, transmettez la valeur retournée par [GetControllerSwitchCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md).

*infoArray*   \_Out\_writes\_to\_opt\_(infoArrayCount, return)\
Type : [GameInputControllerSwitchInfo](https://docs.xbox.com/fr/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md)\*

Pointeur vers un tableau qui reçoit une structure par commutateur 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 *infoArray*. Il s'agit de la plus petite valeur entre *infoArrayCount* et le nombre de commutateurs de contrôleur du périphérique, ou de 0 si *infoArray* est `nullptr` ou si le périphérique n'a aucun commutateur de contrôleur.

## Remarques

Chaque élément est une structure [GameInputControllerSwitchInfo](https://docs.xbox.com/fr/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md) qui décrit le type du commutateur correspondant (à deux, quatre ou huit positions, sous forme de valeur [GameInputSwitchKind](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputswitchkind.md)) ainsi que l'étiquette de chacune de ses positions.

Appelez [GetControllerSwitchCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md) pour obtenir le nombre de commutateurs de contrôleur, allouez un tableau de cette taille, puis appelez `GetControllerSwitchInfo` pour le remplir. Si *infoArrayCount* est inférieur au nombre de commutateurs de contrôleur, seuls les *infoArrayCount* premiers éléments sont écrits. Les commutateurs 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'informations décrit le commutateur situé à l'index *i* du tableau retourné par [IGameInputReading::GetControllerSwitchState](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerswitchstate.md) pour les lectures de ce périphérique.

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

```cpp theme={null}
uint32_t switchCount = device->GetControllerSwitchCount();
std::vector<GameInputControllerSwitchInfo> switchInfo(switchCount);
switchInfo.resize(device->GetControllerSwitchInfo(switchCount, switchInfo.data()));

std::vector<GameInputSwitchPosition> switchStates(reading->GetControllerSwitchCount());
reading->GetControllerSwitchState(static_cast<uint32_t>(switchStates.size()), switchStates.data());

for (size_t i = 0; i < switchInfo.size() && i < switchStates.size(); ++i)
{
    // switchInfo[i] describes the switch whose position is switchStates[i].
}
```

Dans GameInput v3 et les versions antérieures, ces informations étaient disponibles via le membre `controllerSwitchInfo` 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)\
[GetControllerSwitchCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md)\
[GameInputControllerSwitchInfo](https://docs.xbox.com/fr/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md)\
[GameInputSwitchKind](https://docs.xbox.com/fr/reference/input/gameinput/enums/gameinputswitchkind.md)\
[IGameInputReading::GetControllerSwitchState](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerswitchstate.md)\
[IGameInputDevice](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## Historique des versions

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


## Related topics

- [GameInputControllerSwitchInfo](https://docs.xbox.com/fr/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md)
- [IGameInputDevice::GetControllerSwitchCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md)
- [IGameInputDevice::GetControllerButtonCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md)
- [IGameInputDevice::GetControllerAxisCount](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxiscount.md)
- [IGameInputDevice::GetControllerAxisLabels](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxislabels.md)
