Индексы методов интерфейса

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Индексы методов интерфейса

Сообщение XProger » 17.07.2009 03:36:07

Возможно ли каким-нибудь хаком задать индекс метода интерфейса по типу того что делает dispid?
Сама задача: имеется описание интерфейса с доброй сотней методов, а нужна лишь пара из них, и совсем не хочется тянуть за собой описание всего интерфейса :)
Аватара пользователя
XProger
новенький
 
Сообщения: 44
Зарегистрирован: 13.08.2007 02:52:28
Откуда: Москва

Re: Индексы методов интерфейса

Сообщение Sergei I. Gorelkin » 17.07.2009 09:56:07

Можно, интерфейс - это указатель на указатель на массив своих методов. У каждого метода есть скрытый первый аргумент, которым передается self, то есть интерфейс.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Индексы методов интерфейса

Сообщение XProger » 17.07.2009 18:39:18

Дык, не хотелось бы при этом где-то в коде вызывать что-то типа TMyProcedure(IMyInt.VMTable[idx]) :)
Аватара пользователя
XProger
новенький
 
Сообщения: 44
Зарегистрирован: 13.08.2007 02:52:28
Откуда: Москва

Re: Индексы методов интерфейса

Сообщение Sergei I. Gorelkin » 17.07.2009 19:16:58

А куда деваться?
Чтобы звать методы по dispid, нужно не одно, а целых два описания интерфейса тянуть - одно для обычного интерфейса, другое для соответствующего dispinterface. Плюс иметь поддержку IDispatch и иже с ним в объекте.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru