Здравствуйте, Jolly Roger, Вы писали:
JR>Здравствуйте, PeterPan, Вы писали:
JR>А можно озвучить решаемую задачу более подробно? Обрабатывать неизвестно какие события с неизвестно какой сигнатурой от неизвестно каких серверов — задача понятная для разного рода wizard'ов, создающих врапперы, но с этим вроде как должны справиться TypeLibConverter или AxImporter
. А обычное приложение какую пользу может из этого извлечь?
Если имеется в виду задача из
этойАвтор: Jolly Roger
Дата: 14.08.10
темы, то сигнатура событий известна. Как получить мета описания типов, методов аргументов я там описал.
Как принимать события я там также описал. Мне остается закончить динамическую генерацию интерфейса и объекта приемника событий и "подсунуть" его в СОМ-объекты — генератор событий.
JR>В принципе, если серверы генерят события через dispinterface, то достаточно просто их принять одним объектом, реализующем IDispatch. Нужно просто в QueryInterface на запрос диспинтерфейсов отдавать IDispatch, и все события пойдут в IDispatch.Invoke. В нативном коде это делается элеменарно, такую реализацию часто используют в качестве базового класса приёмников событий. Вероятно, можно попробовать провернуть это и в NET.