COMException в C# при сцеплении в событие

Я получаю COM-исключение при попытке сцепиться в событие на COM-объекте. Вот код, который я пытаюсь выполнить.

COMClass a = IComClass as ComClass;
a.SomeEvent += new SomeEvent_EventHandler(MethodNameHere);

Строка два выдает исключение типа COMException со следующей информацией:

Система. Время выполнения. InteropServices. COMException был пойман

Сообщение = "Исключение из HRESULT: 0x80040202"

Источник = "mscorlib"

ErrorCode =-2147220990

StackTrace: в System. Время выполнения. InteropServices. ComTypes. IConnectionPoint. Советуйте (Возразите pUnkSink, Int32& pdwCookie),

У кого-либо есть какие-либо идеи, почему я не могу сцепиться в событие COM или если существует обходное решение для сцепления в события COM?

Chris

6
задан widmayer 11 February 2010 в 18:05
поделиться

2 ответа

Вы получили код ошибки CONNECT_E_CANNOTCONNECT, что хорошо для Google. Это указывает на то, что COM-сервер недоволен вашей попыткой подписаться на обработчик событий. Вам нужно выяснить, почему это не так. Практически всегда требуется помощь автора или поставщика компонента.

Вы можете попробовать взглянуть на библиотеку типов с помощью Oleview.exe и выяснить, находится ли событие, на которое вы пытаетесь подписаться, на диспетчерском интерфейсе, помеченном как исходный интерфейс по умолчанию. Если это не так, попробуйте привести объект к типу диспетчерского интерфейса, а затем подпишитесь на его событие.

3
ответ дан 17 December 2019 в 00:08
поделиться

Проблема заключалась в том, что интерфейс для событий не был зарегистрирован. Как только я добавил раздел реестра для интерфейса событий, проблема была решена.Мне удалось получить информацию об идентификаторе интерфейса с помощью OLEViewer.exe

4
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: