![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить объект по интерфейсу? [D7, WinXP]
Mx © (2005-04-22 17:16:00)Привет, Мастера! Согласно "ребрендингу" поменял свой ник, который и мне порядочно надоел, но это к делу не относится...
Вопрос может совсем дикий, но он в названии (ламером прошу не обзывать). Имеем переменную типа IUnknown, можно ли получить ссылку на сам объект? Или эта ссылка и есть то, что мне надо?
DiamondShark (2005-04-22 17:45:00) [21]Реализующий интерфейс объект ты сам пишешь, или он уже есть сторонний?
Mx (2005-04-22 17:36:00) [22]"Сам объект" - это то бишь тот, кто реализует. В-общем есть два объекта, но один о другом знает только по интерфейсу (а точнее у него список интерфейсов в IInterfaceList), но мне нужно получить в одном местечке указатель на объект, чтобы проверить значение его свойства. Конечно, можно свойство в интерфейсе описать, но так абстракция теряется, чего не хотелось бы... Хранить список объектов мне неудобно.
Так походу нельзя, угу?
type
...
TImplementer = class(TObject, IInterface)
...
var
I: IInterface;
begin
...
if TImplementer(I).SomeProp then...
...
end;
DiamondShark (2005-04-22 17:30:00) [23]В общем виде -- никак.
За интерфейсом может не скрываться вообще никакого "объекта".
Что значит "сам объект"?
Mx (2005-04-22 17:23:00) [24]Так эээ вроде QueryInterface возвращает указатель на интерфейс, а мне надо наоборот, типа "QueryObject"...
VMcL (2005-04-22 17:21:00) [25]>> Mx (22.04.05 17:16)
QueryInterface
?