Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

Работа с DispInterface   Найти похожие ветки 

 
Gari   (2002-07-02 13:45) [0]

Уважаемые господа, вопрос такой :
Каким образом можно создать тип родительским интерфейсом которого будет являтся DispInterface?


 
vuk ©   (2002-07-02 14:10) [1]

Цитирую Help:
"... a class cannot implement a dispatch interface."


 
Gari   (2002-07-02 14:13) [2]

Тогда объясните мне каким образом можно использовать методы описанного интерфейса? И если нет то за каким чертом, этот интерфейс объявили?


 
vuk ©   (2002-07-02 14:28) [3]

dispinterface содержит прототипы методов для вызова их через IDispatch.Invoke. Нужен же dispinterface для работы с Automation интерфейсами в runtime.


 
Gari   (2002-07-02 14:31) [4]

Я частично понял для чего нужен DispInterface, но хотел бы еще понять каким мне макаром можно достучатся до методов описанных в данном интерфейсе.


 
vuk ©   (2002-07-02 14:45) [5]

Если У Вас есть automation object, то его методы можно вызывать и так, имея ссылку на него в переменной типа variant. Можно также достучаться до методов и не через dispinterface. Обычно при создании com-классов в Delphi генерируется два интерфейса:

ISomeInterface = interface(IDispatch)
...
и
ISomeInterfaceDisp = dispinterface

У них один и тот же GUID, то есть это два варианта работы с одним и тем же интерфейсом. Поэтому запросив интерфейс Вы можете работать с ним любым способом.



 
Gari   (2002-07-02 14:49) [6]

то то и оно что, второго интерфейса, не описпно, но каким то образом с этими методами можно работаь. Нутром чую.


 
Shaman_Naydak ©   (2002-07-02 14:52) [7]

А ты можешь уточнить, что тебе надо:
Реализовать этот диспинтерфейс
или вызывать метод диспинтерфейса?

Это 2 абсолютно разные задачи


 
Gari   (2002-07-02 14:56) [8]

Раз возник вопрос, опишу подробнее проблему. Есть библиотека в которой описан интерфейс типа DispInterface, в котором реализованы события происходящие с классами реализованными в данной библиотеке. Так вот мне надо реализовать обработку этих самых событий.


 
Gari   (2002-07-02 15:50) [9]

Сам себе постораюсь и ответить, а Вы посмотрите прав я или не прав, так что любую критику вомприму с благодарностью.
Хочу сделатьтак: так как нельзя создать прямого потомка DIspInterface то создадим свой интерфейс (MyInterface = interface(IDispatch)), с тем же GUID что и наш интерфейс, в него скопируем все методы, и уже от него будем создавать потомки.
Прав я или не прав?



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
7-47822
Softmaster
2002-04-21 08:27
2002.07.15
Проблема с печатью!


1-47509
Vladislav
2002-07-04 13:27
2002.07.15
Задержка


1-47420
mazepa
2002-07-03 01:42
2002.07.15
Не могу открыть файл в дин. массив


8-47619
Королев
2002-03-06 08:51
2002.07.15
Как подключать DirectX8.1 SDK к Delphi?


1-47440
zje
2002-07-02 17:13
2002.07.15
Как получить рабочую группу и описание компьютера?