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

> IGameInput::GetPreviousReading

# IGameInput::GetPreviousReading

Recupera a [IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) anterior com base em uma leitura de referência de um fluxo de entrada opcionalmente filtrado.

## Sintaxe

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

### Parâmetros

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

A interface `IGameInputReading` retornada é lida sequencialmente antes desta 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 leitura anterior. A interface `GameInputKind` é uma variável de sinalizador. Você pode combinar vários valores para filtrar por várias constantes. 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 leitura anterior.

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

A interface `IGameInputReading` retornada que vem sequencialmente antes da entrada `referenceReading`.

### Valor retornado

Tipo: HRESULT

Resultado da função.

## Comentários

Os métodos [GetNextReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading) e [GetPreviousReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_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 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 para aplicativos que processam entradas 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 todos os estados 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

[GameInput](/pt-BR/reference/input/gameinput/gameinput_members)\
[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\_GetNextReading](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading)\
[IGameInput](/pt-BR/reference/input/gameinput/interfaces/igameinput/igameinput)

## Histórico de versões

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


## Related topics

- [IGameInput::GetPreviousReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getpreviousreading.md)
- [IGameInput::GetCurrentReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading.md)
