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

Registra uma função de retorno de chamada que é chamada quando o botão Guia ou Compartilhar é pressionado ou liberado.

## Sintaxe

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

### Parâmetros

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

Opcionalmente, limita o retorno de chamada registrado para ser disparado para um dispositivo específico.

*buttonFilter*   \_In\_\
Tipo: GameInputSystemButtons

O conjunto de botões para os quais receber retornos de chamada, combinados com OR lógico.

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

Um objeto que fornece informações relevantes para a função de retorno de chamada. Normalmente, é o objeto chamador.

*callbackFunc*   \_In\_\
Tipo: GameInputSystemButtonCallback

Função de retorno de chamada definida pelo título que é chamada quando os botões do sistema são pressionados ou liberados.

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

Token que identifica a função de retorno de chamada registrada. Esse token é usado para identificar a função registrada se você precisar cancelar ou cancelar o registro da função de retorno de chamada.

### Valor retornado

Tipo: HRESULT

Resultado da função.

## Comentários

Este método registra uma chamada de função de retorno de chamada quando o botão Guia ou Sistema é pressionado ou liberado. O despacho dos retornos de chamada depende da [GameInputFocusPolicy](/pt-BR/reference/input/gameinput/enums/gameinputfocuspolicy) definida por [IGameInput::SetFocusPolicy](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_setfocuspolicy) no seu processo e em outros processos. Consulte [GameInputFocusPolicy](/pt-BR/reference/input/gameinput/enums/gameinputfocuspolicy) para obter detalhes. No XBOX, o shell sempre consome o botão Guia, portanto esses retornos de chamada nunca são despachados no XBOX.

Para parar de receber retornos de chamada, consulte os métodos [IGameInput::UnregisterCallback](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_unregistercallback) e [IGameInput::StopCallback](/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_stopcallback).

Isso foi adicionado ao GameInput.h da versão prévia do SDK do Windows 10.0.26031 e será adicionado a uma versão futura do GDK.

O exemplo de código a seguir demonstra como escutar pressionamentos do botão Guia.

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

## Requisitos

**Cabeçalho:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[Tópicos avançados do GameInput](/pt-BR/build/core-features/common/input/advanced/input-advanced-topics)<br />
[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)<br />
[IGameInput](/pt-BR/reference/input/gameinput/interfaces/igameinput/igameinput)

## Histórico de versões

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


## Related topics

- [IGameInput::RegisterSystemButtonCallback](/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registersystembuttoncallback.md)
- [GameInputSystemButtonCallback](/reference/input/gameinput/functions/gameinputsystembuttoncallback.md)
- [IGameInput::RegisterGuideButtonCallback](/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registerguidebuttoncallback.md)
