> ## 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 manette générique du périphérique, comme les chapeaux chinois et les croix directionnelles.

Récupère des informations sur les commutateurs de manette générique du périphérique, comme les chapeaux chinois 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 dans *infoArray*. Pour récupérer tous les commutateurs de manette, transmettez la valeur retournée par [GetControllerSwitchCount](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md).

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

Pointeur vers un tableau qui reçoit une structure par commutateur de manette. Peut être `nullptr`; dans ce cas, rien n'est écrit et la méthode retourne 0.

### Valeur de retour

Type : uint32\_t

Le nombre d'éléments écrits dans *infoArray*. Il s'agit de la plus petite valeur entre *infoArrayCount* et le nombre de commutateurs de manette du périphérique, ou 0 si *infoArray* est `nullptr` ou si le périphérique n'a aucun commutateur de manette.

## Remarques

Chaque élément est une structure [GameInputControllerSwitchInfo](https://docs.xbox.com/fr-CA/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md) qui décrit le type du commutateur correspondant (2 directions, 4 directions ou 8 directions, sous forme de valeur [GameInputSwitchKind](https://docs.xbox.com/fr-CA/reference/input/gameinput/enums/gameinputswitchkind.md)) et l'étiquette de chacune de ses positions.

Appelez [GetControllerSwitchCount](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md) pour obtenir le nombre de commutateurs de manette, allouez un tableau de cette taille, puis appelez `GetControllerSwitchInfo` pour le remplir. Si *infoArrayCount* est inférieur au nombre de commutateurs de manette, seuls les *infoArrayCount* premiers éléments sont écrits. Les commutateurs de manette 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-CA/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 manette 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 dans le membre `controllerSwitchInfo` de la structure [GameInputControllerInfo](https://docs.xbox.com/fr-CA/reference/input/gameinput/deprecated/structs/gameinputcontrollerinfo.md), référencée par le membre `controllerInfo` de la structure [GameInputDeviceInfo](https://docs.xbox.com/fr-CA/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) retournée par [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/fr-CA/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-CA/build/core-features/common/input/overviews/input-overview.md)\
[GetControllerSwitchCount](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md)\
[GameInputControllerSwitchInfo](https://docs.xbox.com/fr-CA/reference/input/gameinput/structs/gameinputcontrollerswitchinfo.md)\
[GameInputSwitchKind](https://docs.xbox.com/fr-CA/reference/input/gameinput/enums/gameinputswitchkind.md)\
[IGameInputReading::GetControllerSwitchState](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerswitchstate.md)\
[IGameInputDevice](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduit. |


## Related topics

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