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

Récupère la lecture [IGameInputReading](/fr/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) précédente par rapport à une lecture de référence, à partir d'un flux d'entrée éventuellement filtré.

## Syntaxe

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

### Paramètres

*referenceReading*   \_In\_\
Type : IGameInputReading\*

L'interface `IGameInputReading` retournée est lue séquentiellement avant cette lecture de référence.

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

Filtre sur les types d'entrée à partir desquels extraire la lecture précédente. L'interface `GameInputKind` est une variable d'indicateurs. Vous pouvez combiner plusieurs valeurs pour filtrer sur plusieurs constantes. Lorsque plusieurs types d'entrée sont spécifiés, toutes les lectures qui contiennent au moins l'un de ces types d'entrée sont mises en correspondance et retournées.

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

Filtre sur le périphérique spécifique à partir duquel extraire la lecture précédente.

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

L'interface `IGameInputReading` retournée, qui vient séquentiellement avant l'entrée `referenceReading`.

### Valeur de retour

Type : HRESULT

Résultat de la fonction.

## Remarques

Les méthodes [GetNextReading](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading) et [GetPreviousReading](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getpreviousreading) permettent aux applications de parcourir l'historique des entrées, lecture par lecture.

Retourne une valeur `NULL` et un `HRESULT` d'échec s'il n'existe aucune lecture après `referenceReading`, si un filtre de périphérique est fourni pour un périphérique déconnecté, ou si trop de temps s'est écoulé et que la lecture de référence et la lecture retournée ont quitté la mémoire tampon d'historique du flux d'entrée. L'erreur liée au temps écoulé est rare pour les applications qui traitent les entrées en continu, car le flux d'entrée conserve une demi-seconde de lectures de chaque périphérique dans sa mémoire tampon d'historique.

L'exemple de code suivant montre comment interroger tous les états de manette de jeu d'un périphérique spécifique.

```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;
        }
    }
}
```

## Configuration requise

[GameInput](/fr/reference/input/gameinput/gameinput_members)\
[Vue d'ensemble de GameInput](/fr/build/core-features/common/input/overviews/input-overview)\
[IGameInput\_GetCurrentReading](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading)\
[IGameInput\_GetNextReading](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getnextreading)\
[IGameInput](/fr/reference/input/gameinput/interfaces/igameinput/igameinput)

## Historique des versions

| Version | Modifications |
| - | - |
| **v0** | Introduite. |


## Related topics

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