![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Требования для функционирования QueryInterface ??? [D7, Win2k]
GreyWolf © (2010-04-13 20:24:00)Доброго времени суток.
Я в TypeLibrary редакторе создал свой интерфейс (IInt1) из TypeLib1, отнаследовав его от другого моего же (IInt2) из TypeLib2. Сам IInt2 наследуется от IDispatch.
Я считал, что этого наследования достаточно, чтобы можно было приводить тип IInt1 к IInt2, через опреатор as или QueryInterface. Но при попытке это сделать QueryInterface выдает $80004002 - E_NOINTERFACE - { No such interface supported }, оператор as также на работает. При этом IInt1 приводится к IDispatch или IInt1 (самому себе) без проблем. Пробовал регистрировать обе библиотеки, не помогло.
Что может быть не так?
GreyWolf (2010-04-14 19:57:00) [1]> ~AQUARIUS~ © (13.04.10 20:49) [1]
Было что-то вроде этого, ваша рекомендация помогла.
Игорь Шевченко (2010-04-13 20:53:00) [2]реализация интерфейсов не наследуется
~AQUARIUS~ (2010-04-13 20:49:00) [3]Я так понял, у вас примерно такая схема:
type
I1 = interface (IUnknown)
* * *
end;
I2 = interface (I1)
* * *
end;
T2 = class (TInterfacedObject, I2)
* * *
end;
В результате QueryInterface "не видит" I1. Если так, то просто измените обьявление класса:
type
T2 = class (TInterfacedObject, I2, I1)
* * *
end;