Uso de IProvideClassInfo
Un objeto conectable puede ofrecer las interfaces IProvideClassInfo e IProvideClassInfo2 para que sus clientes puedan examinar fácilmente su información de tipo. Esta funcionalidad es importante cuando se trabaja con interfaces salientes, que, por definición, se definen mediante un objeto pero se implementan mediante un cliente en su propio objeto receptor. En algunos casos, se conoce una interfaz saliente en tiempo de compilación tanto para el objeto conectable como para el objeto receptor; tal es el caso de IPropertyNotifySink.
Sin embargo, en otros casos, solo el objeto conectable conoce sus definiciones de interfaz salientes en tiempo de compilación. En estos casos, el cliente debe obtener la información de tipo de la interfaz saliente para que pueda proporcionar dinámicamente un receptor que admita los puntos de entrada correctos, como se indica a continuación:
- El cliente enumera los puntos de conexión y, a continuación, para obtener los IID de las interfaces salientes compatibles con el objeto conectable, llama a IConnectionPoint::GetConnectionInterface para cada punto de conexión.
- El cliente consulta el objeto conectable para una de las interfaces IProvideClassInfo .
- El cliente llama a métodos en las interfaces IProvideClassInfo para obtener la información de tipo de la interfaz saliente.
- El cliente crea un objeto receptor que admite la interfaz saliente.
- El proceso continúa y el cliente llama a IConnectionPoint::Advise para conectar su receptor al punto de conexión.
En la información de tipo, el origen del atributo marca una interfaz o dispinterface que aparece en una coclase como interfaz saliente. Las que aparecen sin este atributo se consideran interfaces entrantes.
Temas relacionados