Здравствуйте, Jolly Roger, Вы писали:
JR>Здравствуйте, PeterPan, Вы писали:
PP>>На старте известны: ProgID COM объекта и сигнатура событий (название, тип возвращаемого значения, названия аргументов и их типы) этого объекта, пусть, например, это будет void OnError(string msg).
PP>>Цель — подписаться на событие этого COM-объекта в среде .Net Framework, в нашем случае — иметь возможность журналировать msg.
JR>Для описанного случая — здесьАвтор: grigorash
Дата: 10.07.08
. Там не совсем такая ситуация, но предложенное решение — то, что нужно Вам, и оно работает, я проверил. Если всё-же есть ещё какие-то нюансы, не указанные Вами — вот ссылка 2Автор: Greeter
Дата: 16.01.06
, но это я пока не проверял.
JR>Но прежде проверьте, вполне возможно, что Вам будет достаточно объявить класс без явных интерфейсов, с публичным методом OnError(string msg) и аттрибутом ClassInterface(ClassInterfaceType.AutoDispatch)
Не вижу по ссылкам то, что мне надо, а именно подписку на события.
Давайте по порядку:
1.Я создаю COM -объект по progID
Type tp = Type.GetTypeFromProgID(progID);
object comObject = Activator.CreateInstance(tp);
2. А дальше