Автоопределение типа интерфейса
ISomeCollection реализует метод доступа к объекту:
ISomeCollection::Item (long Index, IUnknown ** ppItem )
далее из IUnknown ** ppItem необходимо получить (через QueryInterface) какой то конкретный интерфейс (их более 20 штук)
как можно автоматически определить какой конкретно объект лежит в ppItem ?[/SIZE]
Цитата: oxotnik333
[SIZE=2]как можно автоматически определить какой конкретно объект лежит в ppItem ?[/SIZE]
Устроить кастинг.
Сдается мне, нужно знать, что искать. Создаем класс-диспетчер, который будет честно проверять ppItem на соответствие тому или иному интерфейсу и вызывать метод, соответствующий этому интерфейсу при совпадении. Фактически получится аналог конструкции match сопоставления с образцом.
Мне кажется, автоматизировать процесс вызова методов, соответствующих интерфейсу, будет сложновато - система шаблонов С++ не позволяет такого рода цирк (в .net можно через отражение).
Цитата: hardcase
Сдается мне, нужно знать, что искать.
в том то и дело, что хотел в процессе отладки узнать что искать....
Цитата: oxotnik333
в том то и дело, что хотел в процессе отладки узнать что искать....
Щас подумал... на С++ автоматизировать невозможно.
Может ктонибудь другой придумает.