Partager via


Héritage iUnknown et interface

L’héritage dans COM ne signifie pas la réutilisation du code. Étant donné qu’aucune implémentation n’est associée aux interfaces, l’héritage de l’interface ne signifie pas l’héritage du code. Cela signifie uniquement que le contrat associé à une interface est hérité dans une mode de classe de base pure-virtuelle C++ et modifié , soit en ajoutant de nouvelles méthodes, soit en éligible davantage l’utilisation autorisée des méthodes. Il n’existe aucun héritage sélectif dans COM. Si une interface hérite d’une autre, elle inclut toutes les méthodes que l’autre interface définit.

L’héritage est utilisé avec parcimonie dans les interfaces COM prédéfinies. Toutes les interfaces prédéfinies (et toutes les interfaces personnalisées que vous définissez) héritent de leurs définitions de l’interface importante IUnknown, qui contient trois méthodes vitales : QueryInterface, AddRefet Release. Tous les objets COM doivent implémenter l’interface IUnknown, car il fournit les moyens, à l’aide de QueryInterface, de se déplacer librement entre les différentes interfaces qu’un objet prend en charge, ainsi que les moyens de gérer sa durée de vie à l’aide de AddRef et Release.

Lors de la création d’un objet prenant en charge d’agrégation, vous devez implémenter un ensemble de fonctions IUnknown pour toutes les interfaces, ainsi qu’une interface IUnknown autonome. Dans tous les cas, tout implémenteur d’objets implémente méthodes IUnknown. Pour plus d’informations, consultez la section Using and Implementing IUnknown.

Bien qu’il existe quelques interfaces qui héritent de leurs définitions d’une deuxième interface en plus de IUnknown , la majorité hérite simplement des méthodes d’interface IUnknown. La plupart des interfaces sont ainsi relativement compactes et faciles à encapsuler.

objets et interfaces COM