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

# デバイス プレゼンス変更の処理

> XBOX Live のデバイス プレゼンス変更イベントを購読し、ユーザーがデバイスにログオンまたはログオフしたときにハンドラーを追加または削除するためのサンプル コードです。

このトピックでは、デバイス プレゼンスの変更を処理するためのサンプル コードを提供します。

このトピックでは、以下について説明します。

* [デバイス プレゼンス変更の購読](#stadpc)
* [デバイス プレゼンス変更の購読解除](#ufadpc)
* [デバイス プレゼンス変更ハンドラーの追加](#aadpch)
* [デバイス プレゼンス変更ハンドラーの削除](#radpch)

<a id="stadpc" />

## デバイス プレゼンス変更の購読

#### フラット C API

```cpp theme={null}
uint64_t xuid{ 123 };

HRESULT hr = XblPresenceSubscribeToDevicePresenceChange(
    xboxLiveContext,
    xuid,
    &state.devicePresenceChangeSubscription
);
```

<a id="ufadpc" />

## デバイス プレゼンス変更の購読解除

#### フラット C API

```cpp theme={null}
HRESULT hr = XblPresenceUnsubscribeFromDevicePresenceChange(
    xboxLiveContext,
    state.devicePresenceChangeSubscription
);

state.devicePresenceChangeSubscription = nullptr;
```

<a id="aadpch" />

## デバイス プレゼンス変更ハンドラーの追加

#### フラット C API

```cpp theme={null}
state.devicePresenceChangedHandlerToken = XblPresenceAddDevicePresenceChangedHandler(
    xboxLiveContext,
    [](void* context, uint64_t xuid, XblPresenceDeviceType deviceType, bool isUserLoggedOnDevice)
    {
        UNREFERENCED_PARAMETER(context);
        LogToFile("Device presence change notification received:");
        LogToFile("Xuid = %u, deviceType = %u, isUserLoggedOnDevice = %u", xuid, deviceType, isUserLoggedOnDevice);
    },
    nullptr
);
```

詳細については、[XblPresenceDeviceType](/reference/live/xsapi-c/presence_c/enums/xblpresencedevicetype) を参照してください。

<a id="radpch" />

## デバイス プレゼンス変更ハンドラーの削除

#### フラット C API

```cpp theme={null}
HRESULT hr = XblPresenceRemoveDevicePresenceChangedHandler(
    xboxLiveContext,
    state.devicePresenceChangedHandlerToken
);

state.devicePresenceChangedHandlerToken = 0;
```


## Related topics

- [リッチ プレゼンスのサンプル コード](/ja-jp/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [ハウツー](/ja-jp/services/xbox-services/community/presence/how-to/index.md)
- [タイトル プレゼンス変更の処理](/ja-jp/services/xbox-services/community/presence/how-to/live-handling-a-title-presence-change.md)
- [Game Saves のアクティブ デバイス変更](/ja-jp/services/playfab/player-progression/game-saves/activedevicechanges.md)
- [XblPresenceDevicePresenceChangedHandler](/ja-jp/reference/live/xsapi-c/presence_c/functions/xblpresencedevicepresencechangedhandler.md)
