次の方法で共有


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 本体

関連項目

GameInput の高度なトピック
GameInput の概要
IGameInput