IGameInput pour une version spécifique de l’API GameInput.
Syntaxe
Paramètres
riid _In_Type : REFIID 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 la v4 ou __uuidof(GameInput::v0::IGameInput) pour la v0.
ppv _COM_Outptr_Type : LPVOID* Reçoit l’interface demandée du singleton sous-jacent par processus. Défini sur
nullptr en cas d’échec de la fonction.
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 de l’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 souhaitée. Les deux fonctions retournent une interface sur le même singleton par processus. Le premier appel crée le singleton, et les appels suivants 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 de l’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 la v0 à la 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 plus récente de l’API est disponible.
Relation avec GameInputCreate
À partir de la 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 la 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 liez 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 de l’API d’un objet IGameInput dont vous disposez déjà, appelez QueryInterface sur celui-ci au lieu 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
