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 peut analyser la bibliothèque de types à la recherche de l’entrée de coclasse dans la bibliothèque correspondant au CLSID.
Toutefois, tous les objets n’ont pas de 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 demander simplement un objet pour ses informations de type au lieu de passer par tous les tédium pour extraire les mêmes informations des entrées de registre. Cette fonctionnalité est importante lors du traitement des interfaces sortantes sur des objets connectables. (Pour plus d’informations sur la façon dont les objets connectables fournissent cette fonctionnalité, consultez Utilisation d’IProvideClassInfo .)
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 l’ensemble de sa classe ; autrement dit, ce qu’il décrit dans sa section de coclasse de sa bibliothèque de types, s’il en a une. 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 entrante et sortante de l’objet.
L’objet peut également fournir IProvideClassInfo2. L’interface IProvideClassInfo2 est une extension simple de IProvideClassInfo qui permet de récupérer rapidement et facilement les identificateurs d’interface sortant d’un objet pour son jeu d’événements par défaut. IProvideClassInfo2 est dérivé de IProvideClassInfo.
Rubriques connexes