다음을 통해 공유


UnregisterLampArrayCallback

LampArray 콜백 함수의 등록을 취소합니다.

구문

bool UnregisterLampArrayCallback(
    LampArrayCallbackToken callbackToken,
    uint64_t timeoutInMicroseconds);

매개 변수

callbackToken
Type: LampArrayCallbackToken

등록을 취소할 콜백 함수에 대한 토큰입니다. 함수가 처음 RegisterLampArrayCallback에 등록되었을 때 생성됩니다.

timeoutInMicroseconds
형식: uint64_t

등록 해제될 수 있도록 콜백이 완료될 때까지 대기할 시간입니다.

반환 값

형식: bool

콜백이 성공적으로 등록 해제된 경우 True입니다. False는 잘못된 콜백 토큰 값 또는 진행 중인 콜백이 반환되기를 기다리는 동안 시간 초과를 나타냅니다. false 반환은 여전히 새 콜백이 디스패치되지 않도록 합니다. 이미 진행 중인 콜백은 계속 실행됩니다.

설명

UnregisterLampArrayCallback 함수가 성공적으로 반환될 때까지 콜백과 관련된 모든 리소스를 해제하는 것은 안전하지 않습니다(예: 콜백 함수를 호스트하는 DLL 언로드). 따라서 등록된 콜백 함수 내에서는 콜백 등록을 취소할 수 없으며, 취소를 시도하면 프로세스가 종료됩니다.

다음 코드는 LampArray 콜백을 등록 및 등록 취소하는 예입니다.

void MyLampArrayCallback(
    _In_opt_ void* context,
    bool isAttached,
    _In_ ILampArray* lampArray)
{
    if (isAttached)
    {
        // Application-specific code to handle LampArray connection
    }
    else
    {
        // Application-specific code to handle LampArray disconnection
    }
}

void MonitorLampArrays(
    _In_ volatile bool & cancelMonitoring) noexcept
{
    LampArrayCallbackToken token = LAMPARRAY_INVALID_CALLBACK_TOKEN_VALUE;
    if (SUCCEEDED(RegisterLampArrayCallback(
        MyLampArrayCallback,
        nullptr /* context */,
        &token)))
    {
        while (!cancelMonitoring)
        {
            Sleep(100);
        }

        UnregisterLampArrayCallback(token, 5000);
    }
}

요구 사항

헤더: LampArray.h

라이브러리: xgameplatform.lib

지원되는 플랫폼: Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

조명 API 개요
조명 기본 사항
LampArrayCallback
LampArrayCallback 등록