다음을 통해 공유


디바이스 프레즌스 변경 처리

이 항목에서는 디바이스 프레즌스 변경 처리 예제 코드를 제공합니다.

이 항목에서는 다음에 대해 설명합니다.

디바이스 현재 상태 변경 구독

플랫 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;