![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
and42 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 15.11.2010 Репутация: нет Всего: нет |
Уважаемые. Не могу нигде найти на форумах по интересующей теме.
Есть сторонний СОМ, у которого объявлены куча интерфейсов и есть интерфейс в виде делегата, который соответствует событию некоторого объекта этого COM, который явно виден в проекте С#, после объявления в Reference и создания new(экземпляра) этого объекта. Этот делегат связан с классом объекта этого COMа. Что бы не смешивать все в одно, попробую разделить на два подвопроса. 1. Ранее я использовал эти события в VB(A) сравнительно легко. Чтобы использовать как то метод нужного события я создавал переменную WithEvents типа этого обьекта, те с событием. Затем назначал соответствие этой переменной контролируему объекту такого же типа командой Set. Тогда у этой объявленной переменной появлялся и необходимый мне метод-обработчик, и другие методы событий подконтрольного обьекта. При нужном мне событии в объекте, этот метод обрабатывался в нашей переменной. Конечно понимаю, вся эта простота реализуется закрыто, и прямого аналога в C# нет. Отсюда первый вопрос. Есть ли у кого реальный пример, вообще как реализовать WithEvents в C#? Хотя бы без СОМ? Хотя подозреваю, что это классическое использование делегата. 2. Но вот то же самое с использованием COM интерфейса в C# для меня полная непонятка. Подозреваю, что здесь все гораздо сложнее. Те инициатор события в COM где то там (в другом приложении) и от его интерфейса есть только объявленный интерфейс типа делегат, а обработчик нужен в моем классе? Про делегаты прочитал на десять раз, и про класс с методом тоже как то хоть с трудом, но укладывается. Но вот как связать реальный обект "там" и здесь. ![]() Уфф, кажется ничего не напутал... ![]() Может кто то реализовывал подобное или хоть ссылочку плиз? Заранее благодарен. |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 3 Всего: 36 |
честно говоря, мало чего понял, хотя набор ключевых слов не предвещает больших сложностей, и с плюсы в дотнете нормально делегаты передаются, с com-ом не должно быть проблем
если можешь - выложи свой ком с более подробным и более близким к коду описанием, что требуется сделать Это сообщение отредактировал(а) mihryak - 16.11.2010, 01:39 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |