次の方法で共有


デバイスのプレゼンスの変更を処理する

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

このトピックでは、以下の内容を説明します。

デバイスのプレゼンスの変更をサブスクライブする

フラット C API

uint64_t xuid{ 123 };

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

デバイスのプレゼンスの変更のサブスクライブを解除する

フラット C API

HRESULT hr = XblPresenceUnsubscribeFromDevicePresenceChange(
    xboxLiveContext,
    state.devicePresenceChangeSubscription
);

state.devicePresenceChangeSubscription = nullptr;

デバイス プレゼンス変更ハンドラーを追加する

フラット C API

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」をご覧ください。

デバイス プレゼンス変更ハンドラーを削除する

フラット C API

HRESULT hr = XblPresenceRemoveDevicePresenceChangedHandler(
    xboxLiveContext,
    state.devicePresenceChangedHandlerToken
);

state.devicePresenceChangedHandlerToken = 0;