Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Интерфейс


Paha_ ©   (2002-12-15 15:12:00) 

Возможно ли имея указатель на интерфейс, получить указатель на класс, который реализует это интерфейс?


Dimka Maslov   (2002-12-15 16:57:00) [1]

Если класс, реализующий интерфейс написан в Delphi и интерфейс - единственный - то можно.

function GetSoleInterfaceObject(I: IUnknown): TObject;
var
P: Integer;
begin
P := Integer(I);
Inc(P, $fffffd2c); // проверено в D5
Result := TObject(P)
end;


Таким образом может быть получен указатель на объект, в котором реализован единственныйинтерфейс. Дальше из него можно вытаскивать что угодно.

Если класс унаследован от нескольких интерфейсов, то определить указатель на объект не представляется возможным.




Юрий Федоров   (2002-12-15 16:22:00) [2]

А мне кажется что теоретически нельзя.
Он же может быть реализован на любом языке программирования


VaS   (2002-12-15 15:51:00) [3]

TYourClass(InterfaceRef).


Наверх

Титульная страница Поиск, карта сайта Написать письмо