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

Вниз

Как дождаться события?   Найти похожие ветки 

 
Unknown   (2003-12-25 19:32) [0]

Здравствуйте!

Есть COM объект1 оформленный ввиде DLL с одной единственной процедурой. В этой процедуре создается еще один COM объект2 вызывается его метод а далее я должен дождатся события COM объекта 2. Этого я пытаюсь достигнуть при помощи флага который устанавливается в обработчике события и Application.ProcessMessages.
Т. е. код приблизительно такой:
while not FGetParamComplete do
Application.ProcessMessages;

Событие у меня не вызывается и из цикла я естественно никогда не выхожу. Раскажите, как мне разрешить это проблему, как мне получить событие?
Помогите пожайлусто!!!


 
Ломброзо ©   (2003-12-25 21:01) [1]

Ну и дож#дайтесь... если он события генерирует...
IConnectionPointCOntainer, ICOnnectionPoint::Advise, а если на ++ то всё ещё проще - IDispEventImpl<> или ISimpleDispEventImpl<>


 
Unknown   (2003-12-26 09:29) [2]

Так в том то и дело что события происходят, но у меня они почемуто не вызываются. Я попробовал создать отдельный проект (.exe) и там все события вызываются, так как там Application.ProcessMessages отрабатывает. А в моей Dll почему то нет.


 
Ломброзо ©   (2003-12-26 10:25) [3]

> while not FGetParamComplete do
> Application.ProcessMessages;

Мойшет, я чего-то недопонимаю, но _так_ c событиями в COM не работают.


 
Unknown   (2003-12-26 11:05) [4]

Все, я разобрался. Дело оказывается в том, что в приложении к которому я подсоединяюсь и хочу получать события реализует механизм подключения приемников событий по иному механизму. Т. е. события я смог получить от COM сервера только тогда когда создал его т.е. вызвал метод CoClass.Create, а если я получил существующий уже существующий интерфейс и подключил его к wrapper классу то Advise не вызывался.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
1-37701
DimaK
2003-12-24 22:50
2004.01.13
В чем моя ошибка?


6-37833
Passlight
2003-11-10 18:00
2004.01.13
Обработка ошибок в TIdHTTP


14-37853
Ozone
2003-12-23 05:40
2004.01.13
Оформление программ


1-37744
Beginner
2003-12-31 02:32
2004.01.13
Динамическое создание потока.


6-37825
Eshko
2003-11-10 18:39
2004.01.13
Скопировать файл.