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