Delen via


Cursusinformatie verstrekken

Het is vaak handig voor een client van een object om de typegegevens van het object te onderzoeken. Gezien de CLSID van het object kan een client de typebibliotheek van het object vinden met behulp van registervermeldingen en vervolgens de typebibliotheek scannen op de coklassevermelding in de bibliotheek die overeenkomt met de CLSID.

Niet alle objecten hebben echter een CLSID, hoewel ze nog steeds typegegevens moeten opgeven. Bovendien is het handig voor een cliƫnt om een manier te hebben om eenvoudig een object te vragen naar zijn typegegevens in plaats van alle moeizame stappen te doorlopen om dezelfde informatie uit registervermeldingen te extraheren. Deze mogelijkheid is belangrijk bij het omgaan met uitgaande interfaces op koppelbare objecten. (Zie IProvideClassInfo gebruiken voor meer informatie over hoe koppelbare objecten deze mogelijkheid bieden.)

In deze gevallen kan een client een query uitvoeren op het object voor IProvideClassInfo- of IProvideClassInfo2. Als deze interfaces bestaan, roept de client de GetClassInfo- methode aan om de typegegevens voor de interface op te halen.

Door IProvideClassInfo of IProvideClassInfo2te implementeren, geeft een object aan dat het typegegevens voor de gehele klasse kan opgeven; dat wil gezegd, wat het zou beschrijven in de coklassesectie van de typebibliotheek, als deze er een heeft. GetClassInfo- retourneert een ITypeInfo aanwijzer die overeenkomt met de coklassegegevens van het object. Via deze ITypeInfo aanwijzer kan de client alle binnenkomende en uitgaande interfacedefinities van het object onderzoeken.

Het object kan ook IProvideClassInfo2. De interface IProvideClassInfo2 is een eenvoudige extensie voor IProvideClassInfo- waarmee de uitgaande interface-id's van een object snel en eenvoudig kunnen worden opgehaald voor de standaardgebeurtenisset. IProvideClassInfo2 is afgeleid van IProvideClassInfo.

COM-Clients en Servers