> ## 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 la interfaz [IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) anterior a partir de una lectura de referencia de una secuencia de entrada filtrada opcionalmente.

## Sintaxis

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

### Parámetros

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

La interfaz `IGameInputReading` devuelta se lee secuencialmente antes de esta lectura de referencia.

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

Filtro de los tipos de entrada de los que se extrae la lectura anterior. La interfaz `GameInputKind` es una variable de marcas. Puede combinar varios valores para filtrar por varias constantes. Cuando se especifican varios tipos de entrada, cualquier lectura que contenga al menos uno de los tipos de entrada coincidirá y se devolverá.

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

Filtro del dispositivo específico del que se extrae la lectura anterior.

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

La interfaz `IGameInputReading` devuelta que precede secuencialmente a la entrada `referenceReading`.

### Valor devuelto

Tipo: HRESULT

Resultado de la función.

## Comentarios

Los métodos [GetNextReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading) y [GetPreviousReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getpreviousreading) permiten a las aplicaciones recorrer el historial de entrada lectura por lectura.

Devuelve un valor `NULL` y un `HRESULT` de error si no hay ninguna lectura después de `referenceReading`, si se proporciona un filtro de dispositivo para un dispositivo desconectado, o si ha transcurrido demasiado tiempo y la lectura de referencia y la lectura devuelta han salido del búfer de historial de la secuencia de entrada. El error por tiempo transcurrido es poco frecuente en las aplicaciones que procesan la entrada de forma continua, ya que la secuencia de entrada mantiene medio segundo de lecturas de cada dispositivo en su búfer de historial.

En el ejemplo de código siguiente se muestra cómo sondear todos los estados del mando desde un 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](/reference/input/gameinput/gameinput_members)\
[Información general de GameInput](/build/core-features/common/input/overviews/input-overview)\
[IGameInput\_GetCurrentReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading)\
[IGameInput\_GetNextReading](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading)\
[IGameInput](/reference/input/gameinput/interfaces/igameinput/igameinput)

## Historial de versiones

| Versión | Cambios       |
| ------- | ------------- |
| **v0**  | Se introdujo. |


## Related topics

- [IGameInput::GetCurrentReading](/es/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading.md)
- [IGameInput::GetNextReading](/es/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading.md)
- [IGameInput::GetTemporalReading](/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_gettemporalreading.md)
- [IGameInputReading::GetInputKind](/es/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md)
- [IGameInputReading::GetDevice](/es/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
