Skip to main content
Si vous développez pour XBOX, la version v.0 est la version par défaut disponible dans le GDK à partir du GDK 2510. Les titres qui tirent parti des API v1.0+ peuvent le faire tant sur PC (v1.0+) que sur console (v2.2+) en intégrant le package NuGet Microsoft.GameInput. Le GDK 2510 ou ultérieur est requis pour utiliser ce package NuGet sur console. Les applications PC nécessitent que le plus récent composant redistribuable GameInput, inclus dans le package NuGet, soit installé sur l’ordinateur cible. Les applications console doivent être compilées et liées avec les plus récents en-tête et bibliothèque GameInput du package NuGet, mais ne nécessitent pas le composant redistribuable, puisque le plus récent runtime GameInput est inclus dans l’image du GDK sur XBOX.
GameInput est une API vivante qui continue d’évoluer au fil du temps, à mesure que de nouvelles fonctionnalités sont ajoutées et que celles qui sont inutiles ou désuètes sont retirées. Vous trouverez la version la plus récente de GameInput dans le package NuGet officiel. Ce package comprend aussi l’Historique des versions le plus récent et à jour. Le package contient toujours les plus récents en-tête, binaires et composant redistribuable GameInput à inclure avec votre titre. La mise à niveau vers une version plus récente de GameInput est rapide et facile. De plus, quelle que soit l’API décrite dans le plus récent en-tête GameInput, la compatibilité binaire et fonctionnelle est maintenue pour les applications compilées avec des versions antérieures de GameInput. Dans ce modèle, les jeux déjà commercialisés peuvent profiter des améliorations de GameInput et peuvent passer à la plus récente version de GameInput, au besoin, pour tirer parti des nouvelles fonctionnalités.

Mise à niveau du runtime et de la version de l’API

Les différentes versions de GameInput ont des noms et des méthodes semblables, mais elles sont versionnées distinctement avec des UUID différents. À partir de l’API GameInput v.1, chaque version est définie dans un espace de noms unique (par exemple, GameInput::v1). Les mêmes objets sous-jacents de GameInput implémentent ces interfaces. Vous pouvez utiliser QueryInterface pour passer d’une version à l’autre, ce qui signifie que vous pouvez combiner les utilisations de l’API dans votre jeu si vous le souhaitez. Si vous effectuez une mise à niveau à partir de GameInput v.0, où l’API était définie dans l’espace de noms global, l’ajout d’une instruction using namespace GameInput::v1 peut vous aider à réduire le nombre de sites d’appel GameInput que vous devez mettre à jour pour adopter la v.1 et les révisions ultérieures de l’API. En plus des vérifications de version au moment de l’exécution, vous pouvez utiliser la compilation conditionnelle en vérifiant la définition de préprocesseur GAMEINPUT_API_VERSION. Cette définition correspond à la version de l’API GameInput actuellement utilisée ainsi qu’à la version majeure de GameInput. L’API v.0 ne comportait pas cette définition; si vous voulez tester cette version de façon conditionnelle, vous pouvez donc ajouter l’extrait suivant après l’inclusion de votre en-tête GameInput.

Mise à niveau du runtime seulement

GameInput vous permet d’obtenir les plus récents correctifs de bogues sans vous obliger à mettre à jour votre utilisation de l’API. Pour obtenir ces correctifs, installez le composant redistribuable GameInput fourni dans le plus récent package NuGet Microsoft.GameInput. Comme GameInput demeure compatible au niveau binaire avec les anciennes versions de l’API, vous pouvez continuer à utiliser votre en-tête existant avec le nouveau runtime. N’oubliez pas de redistribuer les plus récents binaires GameInput avec vos titres pour garantir que le fonctionnement dans votre environnement de test est cohérent avec celui en production.

Modifications de GameInput v.1

Si vous utilisez une version antérieure de GameInput, notez que de nombreuses fonctions non implémentées ainsi que les énumérations et constantes correspondantes sont retirées à partir de l’API v.1. De plus, l’API est placée dans l’espace de noms GameInput::v1 afin de faciliter la gestion des versions. En raison de ces modifications, vous pourriez rencontrer des erreurs de compilation lors de la compilation de ce code avec cette version (et les versions futures). Les modifications notables comprennent :
  1. IGameInputDevice::GetDeviceInfo retournait auparavant la structure IGameInputDeviceInfo résultante comme valeur de retour de la fonction. Cette structure est maintenant retournée comme paramètre de sortie de la fonction, et la valeur de retour de la fonction est maintenant un HRESULT.
  2. IGameInput::UnregisterCallback acceptait auparavant une valeur de délai d’expiration comme deuxième paramètre, mais ce paramètre est retiré.
  3. IGameInputReading::GetSequenceNumber est retiré. Utilisez plutôt IGameInputReading::GetTimestamp.

Conseils sur la gestion des versions

  • Le changement de la surface d’API utilisable entre v.0 et v.1 est minime : il s’agit du retrait de fonctionnalités qui n’ont jamais été implémentées et des modifications de signatures de fonctions décrites précédemment.
  • L’API v.0 d’origine provenant de l’en-tête GameInput.h d’origine est toujours prise en charge, mais cette API demeure statique. Dans ce cas, vous continueriez à utiliser l’en-tête tel quel provenant du GDK, d’un ancien package NuGet ou du Windows SDK.
  • Peu importe la version de l’API que vous utilisez, vous devez installer le plus récent composant redistribuable du package NuGet pendant le développement et inclure ce composant redistribuable (ou une version plus récente) dans le processus d’installation de votre jeu pour les utilisateurs finaux. C’est dans ce composant redistribuable que se trouve l’implémentation la plus récente du runtime GameInput, qui améliore toutes les versions de l’API avec notamment une prise en charge étendue des manettes, la prise en charge des pavés tactiles, la prise en charge du Bureau à distance et divers autres correctifs de bogues.

Voir aussi

Package NuGet GameInput
Last modified on October 6, 2026