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::UnregisterCallbackIGameInput::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 콘솔

참고 항목

고급 GameInput 항목
GameInput 개요
IGameInput