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

# IGameInputReading::GetSystemButtonState

> ガイド ボタンや共有ボタンなどのシステム ボタンの状態を入力読み取りから取得します。

ガイド ボタンや共有ボタンなどのシステム ボタンの状態を入力読み取りから取得します。

## 構文

```cpp theme={null}
bool GetSystemButtonState(
    GameInputSystemButtons* buttons
);
```

### パラメーター

*buttons*   \_Out\_\
型: [GameInputSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/enums/gameinputsystembuttons.md)\*

この読み取りで押されているシステム ボタンのセットを受け取ります。

### 戻り値

型: bool

読み取りにシステム ボタンの状態が含まれている場合は `true` を返します。含まれていない場合は `false` を返し、*buttons* は `GameInputSystemButtonNone` に設定されます。

## 解説

GameInput v4 では、システム ボタンは通常の入力の種類 `GameInputKindSystemButton` です。システム ボタンを備えたデバイスからのすべての読み取りでは、[IGameInputReading::GetInputKind](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md) に `GameInputKindSystemButton` が含まれます。`GetSystemButtonState` は、[IGameInputReading::GetGamepadState](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md) がゲームパッド ボタンの状態を返すのと同じ方法で、それらのボタンの現在の状態を返します。デバイスが備えているシステム ボタンを確認するには、[IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md) を呼び出します。

読み取りは、押下イベントや解放イベントではなく、どのボタンが押されているかを報告します。押下または解放を検出するには、前の読み取りの状態と比較します。

このメソッドは、以前のバージョンの GameInput の [IGameInput::RegisterSystemButtonCallback](https://docs.xbox.com/ja-jp/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registersystembuttoncallback.md) メソッドに代わるものです。システム ボタン入力を受け取るには、`GameInputKindSystemButton` を指定して [IGameInput::RegisterReadingCallback](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerreadingcallback.md) を使用するか、[IGameInput::GetCurrentReading](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading.md) でポーリングします。

[IGameInput::EnableBackgroundInput](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinput/methods/igameinput_enablebackgroundinput.md) でバックグラウンド入力が有効になっていない限り、システム ボタン入力はアプリケーションにフォーカスがある間のみ配信されます。

次の例は、ガイド ボタンの新しい押下を検出する方法を示しています。

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

void PollGuideButton() noexcept
{
    Microsoft::WRL::ComPtr<IGameInputReading> reading;
    if (SUCCEEDED(gameInput->GetCurrentReading(GameInputKindSystemButton, nullptr, &reading)))
    {
        GameInputSystemButtons buttons = GameInputSystemButtonNone;
        if (reading->GetSystemButtonState(&buttons))
        {
            const bool guidePressed = (buttons & GameInputSystemButtonGuide) != 0;
            const bool guidePreviouslyPressed = (previousButtons & GameInputSystemButtonGuide) != 0;
            if (guidePressed && !guidePreviouslyPressed)
            {
                // Handle new Guide button press
            }

            previousButtons = buttons;
        }
    }
}
```

## 要件

**ヘッダー:** GameInput.h

**ライブラリ:** gameinput.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体、XBOX Series 本体

## 関連項目

[GameInput の概要](https://docs.xbox.com/ja-jp/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputReading](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputreading/igameinputreading.md)\
[GameInputSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/enums/gameinputsystembuttons.md)\
[GameInputKind](https://docs.xbox.com/ja-jp/reference/input/gameinput/enums/gameinputkind.md)\
[IGameInput::EnableBackgroundInput](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinput/methods/igameinput_enablebackgroundinput.md)\
[IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md)

## バージョン履歴

| バージョン | 変更内容 |
| - | - |
| **v4** | 導入されました。 |


## Related topics

- [GameInputSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/enums/gameinputsystembuttons.md)
- [IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/ja-jp/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md)
- [RegisterSystemButtonCallback (非推奨)](https://docs.xbox.com/ja-jp/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registersystembuttoncallback.md)
- [GameInput API メンバー](https://docs.xbox.com/ja-jp/reference/input/gameinput/gameinput_members.md)
- [非推奨の GameInput API メンバー](https://docs.xbox.com/ja-jp/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)
