Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Автоопределение типа интерфейса

11
18 сентября 2008 года
oxotnik333
2.9K / / 03.08.2007
[SIZE=2]Есть интерфейс коллекции ISomeCollection, в которой лежит коллекция других интерфейсов.
ISomeCollection реализует метод доступа к объекту:
ISomeCollection::Item (long Index, IUnknown ** ppItem )

далее из IUnknown ** ppItem необходимо получить (через QueryInterface) какой то конкретный интерфейс (их более 20 штук)
как можно автоматически определить какой конкретно объект лежит в ppItem ?[/SIZE]
5
18 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: oxotnik333
[SIZE=2]как можно автоматически определить какой конкретно объект лежит в ppItem ?[/SIZE]

Устроить кастинг.

Сдается мне, нужно знать, что искать. Создаем класс-диспетчер, который будет честно проверять ppItem на соответствие тому или иному интерфейсу и вызывать метод, соответствующий этому интерфейсу при совпадении. Фактически получится аналог конструкции match сопоставления с образцом.

Мне кажется, автоматизировать процесс вызова методов, соответствующих интерфейсу, будет сложновато - система шаблонов С++ не позволяет такого рода цирк (в .net можно через отражение).

11
18 сентября 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: hardcase

Сдается мне, нужно знать, что искать.


в том то и дело, что хотел в процессе отладки узнать что искать....

5
18 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: oxotnik333
в том то и дело, что хотел в процессе отладки узнать что искать....

Щас подумал... на С++ автоматизировать невозможно.
Может ктонибудь другой придумает.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог