IGameInput pour une version précise de l’API GameInput.
Syntaxe
Paramètres
riid _In_Type : REFIID L’ID d’interface (IID) de l’interface
IGameInput à obtenir. L’IID sélectionne la version de l’API GameInput, par exemple __uuidof(GameInput::v4::IGameInput) pour v4 ou __uuidof(GameInput::v0::IGameInput) pour v0.
ppv _COM_Outptr_Type : LPVOID* Reçoit l’interface demandée du singleton sous-jacent propre au processus. Défini à
nullptr si la fonction échoue.
Valeur de retour
Type : HRESULT RetourneS_OK en cas de réussite. Retourne E_NOINTERFACE si riid n’est pas l’IID d’une interface IGameInput, ou si le runtime GameInput installé ne prend pas en charge la version d’API demandée. Retourne un autre code d’erreur si le runtime GameInput ne peut pas être chargé.
Remarques
GameInputInitialize fonctionne comme GameInputCreate, mais accepte l’IID de la version de IGameInput que vous voulez. Les deux fonctions retournent une interface sur le même singleton propre au processus. Le premier appel crée le singleton, et les appels subséquents y ajoutent une référence. Pour savoir quand appeler ces fonctions et combien de temps conserver la référence, consultez GameInputCreate.
Un runtime GameInput prend en charge toutes les versions d’API inférieures ou égales à sa propre version majeure. Par exemple, le runtime GameInput 4.0 accepte l’IID de n’importe quelle version de IGameInput, de v0 à v4. Si vous demandez une version plus récente que le runtime installé, la fonction échoue avec E_NOINTERFACE. Vous pouvez vous en servir pour vérifier au moment de l’exécution si une version d’API plus récente est disponible.
Relation avec GameInputCreate
À partir de v3,GameInputCreate dans l’en-tête GameInput est une fonction inline qui appelle GameInputInitialize avec l’IID de l’interface IGameInput déclarée par l’en-tête :
GameInputCreate crée la version de IGameInput qui correspond à l’en-tête que vous incluez. Pour créer une autre version sans inclure son en-tête, appelez directement GameInputInitialize.
Dans v0, GameInputCreate est une fonction exportée par GameInput.lib qui crée toujours l’interface v0. Le fichier GameInput.lib du package NuGet Microsoft.GameInput exporte plutôt GameInputInitialize. Pour créer l’interface v0 lorsque vous effectuez l’édition de liens avec cette bibliothèque, appelez GameInputInitialize avec l’IID v0. L’en-tête v0 ne déclare pas GameInputInitialize; déclarez-la donc vous-même :
GameInputInitialize, la bibliothèque se rabat sur la fonction GameInputCreate du runtime pour l’IID v0, et retourne E_NOINTERFACE pour tout autre IID.
Pour obtenir une autre version d’API d’un objet IGameInput que vous possédez déjà, appelez QueryInterface sur celui-ci plutôt que d’appeler de nouveau GameInputInitialize. Pour plus d’informations et d’exemples, consultez Utilisation de plusieurs versions de l’API GameInput dans une même application.
Configuration requise
En-tête : GameInput.h Bibliothèque : GameInput.lib Plateformes prises en charge : Windows, consoles de la famille XBOX One et consoles XBOX SeriesVoir aussi
GameInputCreateGestion des versions de l’API GameInput
Utilisation de plusieurs versions de l’API GameInput dans une même application
GameInput
