LampArrayCallback 등록
LampArray가 시스템에 연결되거나 연결 해제될 때마다 호출할 콜백 함수를 등록합니다.
구문
HRESULT RegisterLampArrayCallback(
LampArrayCallback lampArrayCallback,
void* context,
LampArrayCallbackToken* callbackToken);
매개 변수
lampArrayCallback _In_ 형식: LampArrayCallback
등록할 호출자 정의 함수입니다. LampArray가 시스템에서 연결되거나 분리될 때 호출됩니다.
context _In_opt_
형식: void*
콜백 함수에 대한 관련 정보를 포함하는 개체에 대한 포인터입니다. 일반적으로 호출 개체입니다.
callbackToken _Out_ _Result_zeroonfailure_ 유형: LampArrayCallbackToken*
나중에 콜백 함수 등록을 취소하는 데 사용할 수 있는 토큰 값입니다.
반환 값
형식: HRESULT
함수 결과입니다.
설명
콜백이 등록될 때 LampArray 장치가 연결된 경우 RegisterLampArrayCallback 함수는 연결된 각 장치에 대해 해당 콜백이 호출될 때까지 차단됩니다(콜백이 호출 스레드에서 호출됨을 의미).
첫 번째 콜백이 등록되면 LampArray API는 작업자 스레드를 시작하여 ILampArray 장치 연결 및 제거 알림을 처리합니다. 이러한 이벤트는 자주 발생하지 않으며 작업자 스레드는 그렇지 않으면 대기 상태로 유지됩니다. 등록 호출이 반환된 후 모든 후속 LampArrayCallbacks는 이 작업자 스레드에서 순차적으로 호출됩니다.
다음 코드는 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
UnregisterLampArrayCallback