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

> IGameInput::RegisterSystemButtonCallback

# IGameInput::RegisterSystemButtonCallback

Inscrit une fonction de rappel appelée lorsque le bouton Guide ou Partager est enfoncé ou relâché.

## Syntaxe

```cpp theme={null}
HRESULT RegisterSystemButtonCallback(
    IGameInputDevice* device,
    GameInputSystemButtons buttonFilter,
    void* context,
    GameInputSystemButtonCallback callbackFunc,
    GameInputCallbackToken* callbackToken
);
```

### Paramètres

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

Limite éventuellement le déclenchement du rappel inscrit à un périphérique spécifique.

*buttonFilter*   \_In\_\
Type : GameInputSystemButtons

Ensemble des boutons pour lesquels recevoir des rappels, combinés par un OU logique.

*context*   \_In\_opt\_\
Type : void\*

Objet qui fournit des informations pertinentes pour la fonction de rappel. Il s'agit généralement de l'objet appelant.

*callbackFunc*   \_In\_\
Type : GameInputSystemButtonCallback

Fonction de rappel définie par le titre, appelée lorsque les boutons système sont enfoncés ou relâchés.

*callbackToken*   \_Out\_opt\_\
Type : GameInputCallbackToken\*

Jeton identifiant la fonction de rappel inscrite. Ce jeton permet d'identifier la fonction inscrite si vous devez annuler ou désinscrire la fonction de rappel.

### Valeur de retour

Type : HRESULT

Résultat de la fonction.

## Remarques

Cette méthode inscrit une fonction de rappel appelée lorsque le bouton Guide ou Système est enfoncé ou relâché. La distribution des rappels dépend de la stratégie [GameInputFocusPolicy](/fr/reference/input/gameinput/enums/gameinputfocuspolicy) définie par [IGameInput::SetFocusPolicy](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_setfocuspolicy) dans votre processus et dans les autres processus. Pour plus de détails, consultez [GameInputFocusPolicy](/fr/reference/input/gameinput/enums/gameinputfocuspolicy). Sur XBOX, l'interpréteur de commandes consomme toujours le bouton Guide ; ces rappels ne sont donc jamais distribués sur XBOX.

Pour cesser de recevoir des rappels, consultez les méthodes [IGameInput::UnregisterCallback](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_unregistercallback) et [IGameInput::StopCallback](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_stopcallback).

Cette méthode a été ajoutée dans le fichier GameInput.h de la préversion 10.0.26031 du SDK Windows et sera ajoutée dans une version ultérieure du GDK.

L'exemple de code suivant montre comment détecter les appuis sur le bouton Guide.

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

void CALLBACK OnGuideButton(
    _In_ GameInputCallbackToken callbackToken,
    _In_ void * context,
    _In_ IGameInputDevice * device,
    _In_ uint64_t timestamp,
    _In_ GameInputSystemButtons currentButtons,
    _In_ GameInputSystemButtons previousButtons)
{
    bool guidePressed = currentButtons & GameInputSystemButtons::GameInputSystemButtonGuide;
    bool guidePreviouslyPressed = previousButtons & GameInputSystemButtons::GameInputSystemButtonGuide;
    if (guidePressed && !guidePreviouslyPressed)
    {
        // Handle new Guide button press
    }
    else if (!guidePressed && guidePreviouslyPressed)
    {
        // Handle new Guide button release
    }
}

void RegisterForGuideButton() noexcept
{
    GameInputCallbackToken token;
    if (SUCCEEDED(gameInput->RegisterSystemButtonCallback(
        nullptr, // All devices
        GameInputSystemButtons::GameInputSystemButtonGuide, // Filter to the Guide button
        nullptr, // No context
        OnGuideButton, // Callback
        &token))) // token
    {
        // Success!
    }
}
```

## Configuration requise

**En-tête :** GameInput.h

**Bibliothèque :** gameinput.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Rubriques avancées sur GameInput](/fr/build/core-features/common/input/advanced/input-advanced-topics)<br />
[Vue d'ensemble de GameInput](/fr/build/core-features/common/input/overviews/input-overview)<br />
[IGameInput](/fr/reference/input/gameinput/interfaces/igameinput/igameinput)

## Historique des versions

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


## Related topics

- [IGameInput::RegisterGuideButtonCallback](/fr/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registerguidebuttoncallback.md)
- [GameInputSystemButtonCallback](/fr/reference/input/gameinput/functions/gameinputsystembuttoncallback.md)
- [GameInputGuidButtonCallback](/fr/reference/input/gameinput/deprecated/functions/gameinputguidebuttoncallback.md)
- [GameInputSystemButtons](/fr/reference/input/gameinput/enums/gameinputsystembuttons.md)
- [IGameInput::StopCallback](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_stopcallback.md)
