> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RegisterSystemButtonCallback (en desuso)

> Registra una devolución de llamada para los botones Guía y Compartir (se quitó en v4).

> [!WARNING]
>
> **En desuso.** Este método se quitó en GameInput v4 y no está disponible en la API actual. En su lugar, lea el estado de los botones del sistema a partir de las lecturas de entrada con [IGameInputReading::GetSystemButtonState](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getsystembuttonstate.md) y `GameInputKindSystemButton`.

Registra una función de devolución de llamada a la que se llama cuando se presiona o se suelta el botón Guía o Compartir.

## Sintaxis

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

### Parámetros

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

Opcionalmente, limita la devolución de llamada registrada para que se desencadene con un dispositivo específico.

*buttonFilter*   \_In\_\
Tipo: GameInputSystemButtons

El conjunto de botones para los que se recibirán devoluciones de llamada, combinados con un OR lógico.

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

Un objeto que proporciona información pertinente para la función de devolución de llamada. Normalmente, es el objeto que realiza la llamada.

*callbackFunc*   \_In\_\
Tipo: GameInputSystemButtonCallback

Función de devolución de llamada definida por el título a la que se llama cuando se presionan o se sueltan los botones del sistema.

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

Token que identifica la función de devolución de llamada registrada. Este token se usa para identificar la función registrada si necesita cancelar o anular el registro de la función de devolución de llamada.

### Valor devuelto

Tipo: HRESULT

Resultado de la función.

## Comentarios

Este método registra una función de devolución de llamada a la que se llama cuando se presiona o se suelta el botón Guía o Sistema. Que se envíen o no las devoluciones de llamada depende de la [GameInputFocusPolicy](https://docs.xbox.com/es/reference/input/gameinput/deprecated/enums/gameinputfocuspolicy.md) establecida por [IGameInput::SetFocusPolicy](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_setfocuspolicy.md) en su proceso y en otros procesos. Consulte [GameInputFocusPolicy](https://docs.xbox.com/es/reference/input/gameinput/deprecated/enums/gameinputfocuspolicy.md) para obtener más detalles. En XBOX, el shell siempre consume el botón Guía, por lo que estas devoluciones de llamada nunca se envían en XBOX.

En PC, cuando el runtime de GameInput se carga localmente con la aplicación en lugar de instalarse en el sistema, este método produce un error con `GAMEINPUT_E_FEATURE_REQUIRES_INSTALL` (0x838AD02B). Para obtener más información, consulte [Carga local (sideloading) de GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-agility-redistributable.md).

Para dejar de recibir devoluciones de llamada, consulte los métodos [IGameInput::UnregisterCallback](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinput/methods/igameinput_unregistercallback.md) e [IGameInput::StopCallback](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_stopcallback.md).

Se agregó en el archivo GameInput.h de la versión preliminar 10.0.26031 de Windows SDK y se agregará en una versión futura del GDK.

En el siguiente ejemplo de código se muestra cómo escuchar las pulsaciones del botón Guía.

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

**Encabezado:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[Miembros de la API de GameInput en desuso](https://docs.xbox.com/es/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)\
[IGameInputReading::GetSystemButtonState](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getsystembuttonstate.md)\
[Temas avanzados de GameInput](https://docs.xbox.com/es/build/core-features/common/input/advanced/input-advanced-topics.md)\

[Información general de GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-overview.md)\

[IGameInput](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinput/igameinput.md)

## Historial de versiones

| Versión | Cambios |
| - | - |
| **v4** | Se quitó. |
| **v1** | Se introdujo. Reemplaza a `RegisterGuideButtonCallback`. |


## Related topics

- [IGameInput::RegisterGuideButtonCallback (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registerguidebuttoncallback.md)
- [GameInputGuidButtonCallback (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/functions/gameinputguidebuttoncallback.md)
- [IGameInput::RegisterKeyboardLayoutCallback (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registerkeyboardlayoutcallback.md)
- [IGameInput::StopCallback (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_stopcallback.md)
- [Miembros de la API de GameInput en desuso](https://docs.xbox.com/es/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)
