IGameInput::RegisterSystemButtonCallback
가이드 또는 공유 단추를 누르거나 놓을 때 호출되는 콜백 함수를 등록합니다.
구문
HRESULT RegisterSystemButtonCallback(
IGameInputDevice* device,
GameInputSystemButtons buttonFilter,
void* context,
GameInputSystemButtonCallback callbackFunc,
GameInputCallbackToken* callbackToken
)
매개 변수
device _In_opt_
형식: IGameInputDevice*
등록된 콜백이 특정 장치에 대해서만 트리거되도록 선택적으로 제한합니다.
buttonFilterIn ORed 논리에 대한 콜백을 받을 같이 단추 집합입니다.
context _In_opt_
형식: void*
콜백 함수에 대해 관련 정보를 제공하는 개체입니다. 이는 일반적으로 호출 개체입니다.
callbackFunc _In_
형식: GameInputSystemButtonCallback
시스템 단추를 누르거나 놓을 때 호출되는 타이틀 정의 콜백 함수입니다.
callbackToken _Out_opt_
형식: GameInputCallbackToken*
등록된 콜백 함수를 식별하는 토큰입니다. 이 토큰은 콜백 함수를 취소하거나 등록 취소하려는 이벤트에서 등록된 함수를 식별하기 위해 사용됩니다.
반환 값
형식: HRESULT
성공 시 S_OK
을(를) 반환합니다.
설명
이 메서드는 가이드 또는 시스템 단추를 누르거나 놓을 때 콜백 함수 호출을 등록합니다. 콜백이 분배되는지 여부는 프로세스 및 기타 프로세스에서 IGameInput::SetFocusPolicy 설정한 GameInputFocusPolicy에 따라 달라집니다. 자세한 내용은 GameInputFocusPolicy를 참조하세요. Xbox에서는 셸이 항상 가이드 단추를 사용하기 때문에 이 콜백은 Xbox에서 절대로 디스패치되지 않습니다.
콜백 수신을 중지하려면 IGameInput::UnregisterCallback 및 IGameInput::StopCallback 메서드를 참조하세요.
이는 Windows SDK 10.0.26031 미리 보기 GameInput.h에 추가되었으며 향후 GDK 릴리스에 추가될 예정입니다.
다음 코드 예시는 가이드 버튼 누름을 수신 대기하는 방법을 보여줍니다.
Microsoft::WRL::ComPtr<IGameInput> gameInput;
void CALLBACK OnGuideButton(
_In_ GameInputCallbackToken callbackToken,
_In_ void * context,
_In_ IGameInputDevice * device,
_In_ uint64_t timestamp,
_In_ GameInputSystemButtons currentButtons,
_In_ GameInputSystemButtons previousButtons)
{
bool guidePressed = currentButtons & GameInputSystemButtons::GameInputSystemButtonGuide;
bool guidePreviouslyPressed = previousButtons & GameInputSystemButtons::GameInputSystemButtonGuide;
if (guidePressed && !guidePreviouslyPressed)
{
// Handle new Guide button press
}
else if (!guidePressed && guidePreviouslyPressed)
{
// Handle new Guide button release
}
}
void RegisterForGuideButton() noexcept
{
GameInputCallbackToken token;
if (SUCCEEDED(gameInput->RegisterSystemButtonCallback(
nullptr, // All devices
GameInputSystemButtons::GameInputSystemButtonGuide, // Filter to the Guide button
nullptr, // No context
OnGuideButton, // Callback
&token))) // token
{
// Success!
}
}
요구 사항
헤더: GameInput.h
라이브러리: gameinput.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔