Bereitstellen von Klasseninformationen

Es ist häufig nützlich, wenn ein Client eines Objekts die Typinformationen des Objekts untersucht. Angesichts der CLSID des Objekts kann ein Client die Typbibliothek des Objekts mithilfe von Registrierungseinträgen suchen und dann die Typbibliothek auf den Co-Klasseneintrag in der Bibliothek überprüfen, der der CLSID entspricht.

Allerdings verfügen nicht alle Objekte über eine CLSID, obwohl sie weiterhin Typinformationen bereitstellen müssen. Darüber hinaus ist es für einen Client praktisch, ein Objekt einfach nach seinen Typinformationen zu fragen, anstatt das gesamte Tedium zu durchlaufen, um die gleichen Informationen aus Registrierungseinträgen zu extrahieren. Diese Funktion ist wichtig, wenn es um ausgehende Schnittstellen für miteinander verknüpfte Objekte geht. (Weitere Informationen dazu, wie verbindungsfähige Objekte diese Funktion bereitstellen, finden Sie unter Verwenden von IProvideClassInfo.)

In diesen Fällen kann ein Client das -Objekt nach IProvideClassInfo oder IProvideClassInfo2abfragen. Wenn diese Schnittstellen vorhanden sind, ruft der Client die GetClassInfo-Methode auf, um die Typinformationen für die Schnittstelle abzurufen.

Durch die Implementierung von IProvideClassInfo oder IProvideClassInfo2gibt ein -Objekt an, dass es Typinformationen für die gesamte Klasse bereitstellen kann. das heißt, was im Co-Klassenabschnitt der Typbibliothek beschrieben wird, wenn es über eine solche verfügt. GetClassInfo gibt einen ITypeInfo-Zeiger zurück, der den Co-Klasseninformationen des Objekts entspricht. Mit diesem ITypeInfo-Zeiger kann der Client alle definitionen der eingehenden und ausgehenden Schnittstellen des Objekts untersuchen.

Das -Objekt kann auch IProvideClassInfo2bereitstellen. Die IProvideClassInfo2-Schnittstelle ist eine einfache Erweiterung für IProvideClassInfo, mit der die ausgehenden Schnittstellenbezeichner eines Objekts für den Standardereignissatz schnell und einfach abgerufen werden können. IProvideClassInfo2 wird von IProvideClassInfo abgeleitet.

COM-Clients und -Server