IGameInput インターフェイスのインスタンスを取得します。
構文
パラメーター
riid _In_型: REFIID 取得する
IGameInput インターフェイスのインターフェイス ID (IID)。IID によって GameInput API のバージョンが選択されます。たとえば、v4 の場合は __uuidof(GameInput::v4::IGameInput)、v0 の場合は __uuidof(GameInput::v0::IGameInput) を指定します。
ppv _COM_Outptr_型: LPVOID* 基になるプロセスごとのシングルトンの、要求されたインターフェイスを受け取ります。関数が失敗した場合は
nullptr に設定されます。
戻り値
型: HRESULT 成功した場合はS_OK を返します。riid が IGameInput インターフェイスの IID でない場合、またはインストールされている GameInput ランタイムが要求された API バージョンをサポートしていない場合は、E_NOINTERFACE を返します。GameInput ランタイムを読み込めない場合は、その他のエラー コードを返します。
解説
GameInputInitialize は GameInputCreate と同様に動作しますが、目的の IGameInput バージョンの IID を受け取ります。どちらの関数も、同じプロセスごとのシングルトンのインターフェイスを返します。最初の呼び出しでシングルトンが作成され、以降の呼び出しではそのシングルトンへの参照が追加されます。これらの関数を呼び出すタイミングと参照を保持する期間に関するガイダンスについては、GameInputCreate を参照してください。
GameInput ランタイムは、自身のメジャー バージョン以下のすべての API バージョンをサポートします。たとえば、GameInput 4.0 ランタイムは、v0 から v4 までの任意の IGameInput バージョンの IID を受け付けます。インストールされているランタイムよりも新しいバージョンを要求すると、関数は E_NOINTERFACE で失敗します。これを利用して、より新しい API バージョンが利用可能かどうかを実行時に確認できます。
GameInputCreate との関係
v3 以降、GameInput ヘッダーのGameInputCreate はインライン関数であり、ヘッダーで宣言されている IGameInput インターフェイスの IID を指定して GameInputInitialize を呼び出します。
GameInputCreate を呼び出すと、インクルードしたヘッダーに対応するバージョンの IGameInput が作成されます。ヘッダーをインクルードせずに別のバージョンを作成するには、GameInputInitialize を直接呼び出します。
v0 では、GameInputCreate は GameInput.lib によってエクスポートされる関数であり、常に v0 インターフェイスを作成します。Microsoft.GameInput NuGet パッケージに含まれる GameInput.lib は、代わりに GameInputInitialize をエクスポートします。そのライブラリをリンクする場合に v0 インターフェイスを作成するには、v0 の IID を指定して GameInputInitialize を呼び出します。v0 ヘッダーでは GameInputInitialize が宣言されていないため、自分で宣言してください。
GameInputInitialize を提供していない場合、ライブラリは v0 の IID についてはランタイムの GameInputCreate にフォールバックし、それ以外の IID については E_NOINTERFACE を返します。
既に取得済みの IGameInput オブジェクトの別の API バージョンを取得するには、GameInputInitialize を再度呼び出すのではなく、そのオブジェクトに対して QueryInterface を呼び出します。詳細と例については、「1 つのアプリケーションで複数の GameInput API バージョンを使用する」を参照してください。
要件
ヘッダー: GameInput.h ライブラリ: GameInput.lib サポートされているプラットフォーム: Windows、XBOX One ファミリー本体、XBOX Series 本体関連項目
GameInputCreateGameInput API のバージョン管理
1 つのアプリケーションで複数の GameInput API バージョンを使用する
GameInput
