Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
4-47891
anod
2002-05-13 23:20
2002.07.15
Чтение из реестра


1-47385
race1
2002-07-02 13:58
2002.07.15
снова рисование :)


14-47760
Abajun
2002-06-13 17:46
2002.07.15
Рисование линий уровня


14-47809
copyr25
2002-06-07 01:46
2002.07.15
---|Ветка была без названия|---


1-47398
Andres
2002-07-02 15:52
2002.07.15
Перетаскивание элементов управления c рамкой контура





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский