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

# IGameInputReading::GetKeyState

> IGameInputReading::GetKeyState

# IGameInputReading::GetKeyState

Récupère l'état des touches actives d'une entrée clavier.

## Syntaxe

```cpp theme={null}
uint32_t GetKeyState(
    uint32_t stateArrayCount,
    GameInputKeyState* stateArray
);
```

### Paramètres

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

Retourne le nombre de touches actives sur un clavier. Cette valeur est obtenue en appelant la méthode [IGameInputReading::GetKeyCount](/fr-CA/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount).

*stateArray*   \_Out\_writes\_(stateArrayCount)
Type : [GameInputKeyState\*](/fr-CA/reference/input/gameinput/structs/gameinputkeystate)

Pointeur vers la structure [GameInputKeyState\*](/fr-CA/reference/input/gameinput/structs/gameinputkeystate).

### Valeur de retour

Type : uint32\_t

Nombre d'entrées de mémoire tampon valides.

## Remarques

La méthode `IGameInputReading::GetKeyState` récupère l'état des touches actives d'une entrée de manette de jeu. L'état rudimentaire du clavier sert uniquement à associer l'entrée clavier à des actions de jeu, comme le déplacement ou le tir avec une arme. Il n'est pas destiné à la saisie de texte ordinaire. Un jeu nécessite une quantité importante de code en plus de cet état pour implémenter quelque chose d'aussi simple qu'une zone de texte (sans parler de fonctionnalités complexes comme les IME). D'autres API doivent être utilisées lorsque cette fonctionnalité est souhaitée.

L'état de chaque touche n'est pas stocké à un index fixe dans le tableau. Le nombre d'éléments valides dans le tableau augmente plutôt à mesure que des touches sont enfoncées et diminue à mesure qu'elles sont relâchées. Les nouvelles touches sont ajoutées à la fin du tableau et, lorsqu'une touche est relâchée, tous les éléments sont décalés vers le bas pour combler l'espace. Le premier élément du tableau dont les valeurs `scancode` et `vkey` sont toutes deux nulles indique la fin des données valides dans le tableau. Les claviers standard ne peuvent signaler que quatre à six frappes de touches à la fois, et même les claviers de jeu haut de gamme prennent rarement en charge plus de 12 à 16 touches simultanément. Par conséquent, cette approche permet généralement de garder une petite taille maximale du tableau (la taille maximale peut être interrogée au moyen de l'interface `IGameInputDevice`). C'est beaucoup plus efficace que de demander aux applications de parcourir un tableau de 256 valeurs chaque fois qu'elles vérifient l'état du clavier.

## Configuration requise

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

[Rubriques avancées sur GameInput](/fr-CA/build/core-features/common/input/advanced/input-advanced-topics)\
[Vue d'ensemble de GameInput](/fr-CA/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/fr-CA/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)

## Historique des versions

| Version | Modifications |
| - | - |
| **v0** | Introduit. |


## Related topics

- [IGameInputReading::GetKeyState](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeystate.md)
- [IGameInputReading::GetKeyCount](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount.md)
- [GameInputKeyState](/reference/input/gameinput/structs/gameinputkeystate.md)
