Partager via


attribut de version

L’attribut d’interface [version] identifie une version particulière parmi plusieurs versions d’une interface RPC. Avec l’attribut de version, vous vérifiez que seules les versions compatibles des logiciels client et serveur sont autorisées à se lier.

version ( major-value[[. minor-value]] )

Paramètres

major-value

Spécifie un entier non signé court compris entre zéro et 65 535, inclus, qui représente le numéro de version principal.

minor-value

Spécifie un entier non signé court compris entre zéro et 65 535, inclus, qui représente le numéro de version secondaire. La valeur de version mineure est facultative. Si elle est présente, la valeur de version mineure est séparée du numéro de version principal par un caractère de point (.). Si elle n’est pas spécifiée, la valeur de version mineure est égale à zéro.

Remarques

Le compilateur MIDL ne prend pas en charge plusieurs versions d’une interface COM. Par conséquent, une liste d’attributs d’interface qui inclut l’attribut [objet] ne peut pas inclure l’attribut [version]. Pour créer une nouvelle version d’une interface COM existante, utilisez l’héritage de l’interface. Une interface COM dérivée a un autre UUID, mais hérite des fonctions membres de l’interface, des codes d’état et des attributs d’interface de l’interface de base.

En combinaison avec la valeur [uuid], la valeur [version] identifie de manière unique l’interface. La bibliothèque d’exécution transmet les valeurs [version] et [uuid] au serveur lorsque le client appelle une fonction distante. Un client peut se lier à un serveur pour une interface donnée si :

  • La valeur [uuid] est la même.
  • Le numéro de version principale est le même.
  • Le numéro de version mineure du client est inférieur ou égal au numéro de version mineure du serveur.

Il s’agit de votre avantage et de l’avantage de vos utilisateurs de conserver la compatibilité ascendante entre les versions, c’est-à-dire de modifier l’interface afin que seul le numéro de version secondaire change. Vous pouvez conserver la compatibilité vers le haut lorsque vous ajoutez de nouveaux types de données qui ne sont pas utilisés par les fonctions existantes et lorsque vous ajoutez de nouvelles fonctions sans modifier la spécification de l’interface pour les fonctions existantes.

Modifiez le numéro de version principal si l’une des conditions suivantes s’applique :

  • Si vous modifiez un type de données utilisé par une fonction existante.
  • Si vous modifiez la spécification de l’interface pour une fonction existante (par exemple, l’ajout ou la suppression d’un paramètre).
  • Si vous ajoutez des rappels appelés par des fonctions existantes.

Modifiez le numéro de version secondaire si toutes les conditions suivantes s’appliquent :

  • Si vous ajoutez des définitions de type ou des constantes qui ne sont pas utilisées par des fonctions ou rappels existants.
  • Si vous ne modifiez aucune fonction existante et que vous ajoutez de nouvelles fonctions à l’interface.
  • Si vous ajoutez des rappels qui ne sont pas appelés par des fonctions existantes et que les nouveaux rappels suivent les fonctions existantes.

Si vos modifications sont éligibles comme une modification compatible vers le haut de l’interface, utilisez la procédure suivante.

Pour modifier le fichier d’interface (IDL)

  1. Ajoutez de nouvelles définitions de constante et de type au fichier d’interface.
  2. Ajoutez des fonctions de rappel à la fin du fichier d’interface.
  3. Ajoutez de nouvelles fonctions à la fin du fichier d’interface.

L’attribut [version] peut se produire au plus une fois dans l’en-tête de l’interface.

Lorsque l’attribut de version n’est pas présent, l’interface a une version par défaut de 0.0.

Le caractère de point entre les nombres principaux et mineurs est un délimiteur et ne représente pas de décimale. Le nombre mineur est traité comme un entier. Les zéros non significatifs ne sont pas significatifs. Les zéros de fin sont significatifs.

Par exemple, le paramètre de version 1.11 représente une valeur majeure d’une et une valeur mineure de onze. La version 1.11 ne représente pas une valeur comprise entre 1.1 et 1.2.

Voir également

Fichier IDL (Interface Definition)

Interface

Objet

Uuid