Поделиться через


Использование IProvideClassInfo

Подключенный объект может предложить интерфейсы IProvideClassInfo и IProvideClassInfo2, чтобы клиенты могли легко изучить сведения о типе. Эта возможность важна при работе с исходящими интерфейсами, которые, по определению, определяются объектом, но реализуются клиентом на собственном объекте приемника. В некоторых случаях исходящий интерфейс известен во время компиляции как для подключаемого объекта, так и объекта приемника; Это так с IPropertyNotifySink.

Однако в других случаях только соединительный объект знает свои определения исходящего интерфейса во время компиляции. В таких случаях клиент должен получить сведения о типе исходящего интерфейса, чтобы он динамически предоставлял приемник, поддерживающий правильные точки входа, следующим образом:

  1. Клиент перечисляет точки подключения, а затем получает идентификаторы исходящих интерфейсов, поддерживаемых соединительным объектом, вызывает I Подключение ionPoint::Get Подключение ionInterface для каждой точки подключения.
  2. Клиент запрашивает подключенный объект для одного из интерфейсов IProvideClassInfo.
  3. Клиент вызывает методы в интерфейсах IProvideClassInfo , чтобы получить сведения о типе для исходящего интерфейса.
  4. Клиент создает объект приемника, поддерживающий исходящий интерфейс.
  5. Процесс продолжается, и клиент вызывает I Подключение ionPoint::Совет для подключения приемника к точке подключения.

В сведениях о типе источник атрибута помечает интерфейс или дисплеи, указанный в соклассе как исходящий интерфейс. Перечисленные без этого атрибута считаются входящими интерфейсами.

Подключение доступные интерфейсы объектов

Предоставление сведений о классе