Fourniture d’informations sur la classe
Il est souvent utile pour un client d’un objet d’examiner les informations de type de l’objet. Étant donné le CLSID de l’objet, un client peut localiser la bibliothèque de types de l’objet à l’aide d’entrées de Registre, puis analyser la bibliothèque de types pour l’entrée de coclasse dans la bibliothèque correspondant au CLSID.
Toutefois, tous les objets n’ont pas un CLSID, même s’ils doivent toujours fournir des informations de type. En outre, il est pratique pour un client d'avoir un moyen de simplement demander à un objet ses informations de type, au lieu de passer par toutes les démarches fastidieuses pour extraire les mêmes informations des entrées de registre. Cette fonctionnalité est importante lorsque vous traitez des interfaces sortantes sur des objets connectables. (Consultez Utilisation d’IProvideClassInfo pour plus d’informations sur la façon dont les objets connectables fournissent cette fonctionnalité.)
Dans ce cas, un client peut interroger l’objet pour IProvideClassInfo ou IProvideClassInfo2. Si ces interfaces existent, le client appelle la méthode GetClassInfo pour obtenir les informations de type de l’interface.
En implémentant IProvideClassInfo ou IProvideClassInfo2 , un objet spécifie qu’il peut fournir des informations de type pour toute sa classe ; autrement dit, ce qu’il décrit dans sa section de coclasse de sa bibliothèque de types, s’il en a un. GetClassInfo retourne un pointeur ITypeInfo correspondant aux informations de coclasse de l’objet. Grâce à ce pointeur ITypeInfo, le client peut examiner toutes les définitions d’interface entrantes et sortantes de l’objet.
L’objet peut également fournir IProvideClassInfo2 . L’interface IProvideClassInfo2 est une extension simple pour IProvideClassInfo qui permet de récupérer rapidement et facilement les identificateurs d’interface sortants d’un objet pour son jeu d’événements par défaut. IProvideClassInfo2 est dérivé de IProvideClassInfo.
Rubriques connexes