Лучший способ сделать это - использовать шаблон адаптера.Вы должны создать класс внутри вашего кода, который обернет создаваемый вами COM-класс, который содержит собственное событие, которое может предоставить более подробную информацию.Каждый экземпляр вашего класса будет создавать свой собственный экземпляр класса COM, обрабатывать события COM и генерировать свои собственные события для остальной части вашего кода.Итак, вы не знаете точно, какой COM-класс вызывает событие, но вы точно знаете, какой из ваших экземпляров класса это.
Но этот тип решения сильно зависит от того, чего именно вы пытаетесь достичь.Если вы просто пытаетесь получить более качественную отладочную информацию, это хороший путь, но если вы пытаетесь соединить части чьей-то библиотеки, есть много ситуаций, в которых это ничего не даст.
public class MyClass
{
private COMClass instance;
public event EventHandler<BetterEventArgs> MyBetterEvent;
public MyClass()
{
instance.event += new EventHandler(Handle_COM_event); // ... or whatever
}
public void Handle_COM_event(EventArgs)
{
if(MyBetterEvent != null) MyBetterEvent(this, new BetterEventArgs());
}
}