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

Recupera o estado das teclas ativas em uma entrada de teclado.

## Sintaxe

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

### Parâmetros

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

Retorna o número de teclas ativas em um teclado. Esse valor é obtido chamando o método [IGameInputReading::GetKeyCount](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount).

*stateArray*   \_Out\_writes\_(stateArrayCount)
Tipo: [GameInputKeyState\*](/pt-BR/reference/input/gameinput/structs/gameinputkeystate)

Ponteiro para a estrutura [GameInputKeyState\*](/pt-BR/reference/input/gameinput/structs/gameinputkeystate).

### Valor retornado

Tipo: uint32\_t

Número de entradas válidas do buffer.

## Comentários

O método `IGameInputReading::GetKeyState` recupera o estado das teclas ativas em uma entrada de controle de jogo. O estado rudimentar do teclado destina-se exclusivamente a mapear a entrada do teclado para ações do jogo, como movimento ou disparo de uma arma. Ele não se destina à entrada de texto comum. Um jogo precisa de uma quantidade significativa de código além desse estado para implementar algo tão simples quanto uma caixa de texto (sem falar de recursos complexos como IMEs). Outras APIs devem ser usadas quando essa funcionalidade for desejada.

O estado de cada tecla não é armazenado em um índice fixo dentro da matriz. Em vez disso, o número de elementos válidos na matriz aumenta à medida que as teclas são pressionadas e diminui à medida que as teclas são liberadas. Novas teclas são adicionadas ao final da matriz e, quando uma tecla é liberada, tudo é deslocado para baixo para preencher a lacuna. O primeiro elemento da matriz em que os valores `scancode` e `vkey` são ambos zero indica o fim dos dados válidos na matriz. Teclados padrão só conseguem relatar de quatro a seis pressionamentos de tecla por vez, e mesmo teclados para jogos de alto desempenho raramente oferecem suporte a mais de 12 a 16 teclas ao mesmo tempo. Dessa forma, essa abordagem normalmente mantém pequeno o tamanho máximo da matriz (o tamanho máximo pode ser consultado por meio da interface `IGameInputDevice`). Isso é muito mais eficiente do que fazer os aplicativos iterarem em uma matriz de 256 valores toda vez que verificam o estado do teclado.

## Requisitos

**Cabeçalho:** GameInput.h

[Tópicos avançados do GameInput](/pt-BR/build/core-features/common/input/advanced/input-advanced-topics)\
[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)

## Histórico de versões

| Versão | Alterações |
| - | - |
| **v0** | Introduzido. |


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