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

# IGameInput::GetNextReading

> IGameInput::GetNextReading

# IGameInput::GetNextReading

Recupera a próxima interface [IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) disponível com base em uma leitura de referência de um fluxo de entrada opcionalmente filtrado.

## Sintaxe

```cpp theme={null}
HRESULT GetNextReading(
    IGameInputReading* referenceReading,
    GameInputKind inputKind,
    IGameInputDevice* device,
    IGameInputReading** reading
);
```

### Parâmetros

*referenceReading*   \_In\_\
Tipo: IGameInputReading\*

A [IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) atual. A interface `IGameInputReading` retornada é a próxima leitura após essa leitura de referência.

*inputKind*   \_In\_\
Tipo: [GameInputKind](/pt-BR/reference/input/gameinput/enums/gameinputkind)

Filtro para os tipos de entrada dos quais obter a próxima leitura. A interface `GameInputKind` é uma variável de sinalizador. Você pode combinar vários valores para filtrar por várias constantes de `GameInputKind`. Quando vários tipos de entrada são especificados, todas as leituras que contêm pelo menos um dos tipos de entrada serão correspondidas e retornadas.

*device*   \_In\_opt\_\
Tipo: IGameInputDevice\*

Filtro para o dispositivo específico do qual obter a próxima leitura.

*reading*   \_COM\_Outptr\_\
Tipo: IGameInputReading\*\*

A interface `IGameInputReading` retornada que vem sequencialmente após a entrada `referenceReading`.

### Valor retornado

Tipo: HRESULT

Resultado da função.

## Comentários

Os métodos `GetNextReading` e `GetPreviousReading` permitem que os aplicativos percorram o histórico de entrada, leitura por leitura.

Retorna um valor `NULL` e um `HRESULT` de falha se não houver nenhuma leitura após a `referenceReading`, se um filtro de dispositivo for fornecido para um dispositivo desconectado ou se tiver decorrido tempo demais e a leitura de referência e a leitura retornada tiverem saído do buffer de histórico do fluxo de entrada. O erro de tempo decorrido é raro em aplicativos que processam a entrada continuamente, pois o fluxo de entrada mantém meio segundo de leituras de cada dispositivo em seu buffer de histórico.

O exemplo de código a seguir demonstra como sondar todo o estado do gamepad de um dispositivo específico.

```cpp theme={null}
Microsoft::WRL::ComPtr<IGameInput> gameInput;
Microsoft::WRL::ComPtr<IGameInputDevice> gamepad;
Microsoft::WRL::ComPtr<IGameInputReading> prevReading;

void PollGamepadInput() noexcept
{
    if (!prevReading)
    {
        if (SUCCEEDED(gameInput->GetCurrentReading(
            GameInputKindGamepad,
            nullptr,
            &prevReading)))
        {
            prevReading->GetDevice(&gamepad);

            // Application-specific code to process the initial reading.
        }
    }

    else
    {
        Microsoft::WRL::ComPtr<IGameInputReading> nextReading;
        HRESULT hr = gameInput->GetNextReading(
            prevReading.Get(),
            GameInputKindGamepad,
            gamepad.Get(),
            &nextReading);

        if (SUCCEEDED(hr))
        {
            // Application-specific code to process the next reading.

            prevReading = nextReading;
        }

        else if (hr != GAMEINPUT_E_READING_NOT_FOUND)
        {
            gamepad = nullptr;
            prevReading = nullptr;
        }
    }
}
```

## Requisitos

**Cabeçalho:** GameInput.h

[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)\
[IGameInput\_GetCurrentReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading)\
[IGameInput\_GetPreviousReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getpreviousreading)\
[IGameInput](/pt-BR/reference/input/gameinput/interfaces/igameinput/igameinput)

## Histórico de versões

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


## Related topics

- [IGameInput::GetCurrentReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading.md)
- [IGameInput::GetPreviousReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getpreviousreading.md)
- [IGameInput::GetTemporalReading](/pt-BR/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_gettemporalreading.md)
- [IGameInputReading::GetInputKind](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md)
- [IGameInputReading::GetDevice](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
