Использование IProvideClassInfo
Подключенный объект может предложить интерфейсы IProvideClassInfo и IProvideClassInfo2, чтобы клиенты могли легко изучить сведения о типе. Эта возможность важна при работе с исходящими интерфейсами, которые, по определению, определяются объектом, но реализуются клиентом на собственном объекте приемника. В некоторых случаях исходящий интерфейс известен во время компиляции как для подключаемого объекта, так и объекта приемника; Это так с IPropertyNotifySink.
Однако в других случаях только соединительный объект знает свои определения исходящего интерфейса во время компиляции. В таких случаях клиент должен получить сведения о типе исходящего интерфейса, чтобы он динамически предоставлял приемник, поддерживающий правильные точки входа, следующим образом:
- Клиент перечисляет точки подключения, а затем получает идентификаторы исходящих интерфейсов, поддерживаемых соединительным объектом, вызывает I Подключение ionPoint::Get Подключение ionInterface для каждой точки подключения.
- Клиент запрашивает подключенный объект для одного из интерфейсов IProvideClassInfo.
- Клиент вызывает методы в интерфейсах IProvideClassInfo , чтобы получить сведения о типе для исходящего интерфейса.
- Клиент создает объект приемника, поддерживающий исходящий интерфейс.
- Процесс продолжается, и клиент вызывает I Подключение ionPoint::Совет для подключения приемника к точке подключения.
В сведениях о типе источник атрибута помечает интерфейс или дисплеи, указанный в соклассе как исходящий интерфейс. Перечисленные без этого атрибута считаются входящими интерфейсами.
См. также