Compartir a través de


Proporcionar información de clase

A menudo resulta útil para un cliente de un objeto examinar la información de tipo del objeto. Dado el CLSID del objeto, un cliente puede localizar la biblioteca de tipos del objeto mediante entradas del Registro y, a continuación, puede examinar la biblioteca de tipos de la entrada de coclase en la biblioteca que coincida con el CLSID.

Sin embargo, no todos los objetos tienen un CLSID, aunque todavía necesitan proporcionar información de tipo. Además, es conveniente que un cliente tenga una manera de simplemente pedir a un objeto su información de tipo en lugar de pasar por todo el tedium para extraer la misma información de las entradas del Registro. Esta funcionalidad es importante cuando se trabaja con interfaces salientes en objetos conectables. (Consulte Uso de IProvideClassInfo para obtener más información sobre cómo los objetos conectables proporcionan esta funcionalidad).

En estos casos, un cliente puede consultar el objeto para IProvideClassInfo o IProvideClassInfo2. Si existen estas interfaces, el cliente llama al método GetClassInfo para obtener la información de tipo de la interfaz.

Al implementar IProvideClassInfo o IProvideClassInfo2, un objeto especifica que puede proporcionar información de tipo para toda su clase; es decir, lo que describiría en su sección de coclase de su biblioteca de tipos, si tiene una. GetClassInfo devuelve un puntero ITypeInfo correspondiente a la información de coclase del objeto. A través de este puntero ITypeInfo , el cliente puede examinar todas las definiciones de interfaz entrante y saliente del objeto.

El objeto también puede proporcionar IProvideClassInfo2. La interfaz IProvideClassInfo2 es una extensión simple de IProvideClassInfo que facilita la recuperación rápida y sencilla de los identificadores de la interfaz saliente de un objeto para su conjunto de eventos predeterminado. IProvideClassInfo2 se deriva de IProvideClassInfo.

Clientes y servidores COM