События, не отправленные в элемент управления ActiveX (COM-взаимодействие) на основе WPF при использовании Reg-Free-COM
У меня есть элемент управления ActiveX (COM-взаимодействие) на основе WPF. Я могу использовать его правильно, зарегистрировав элемент управления. Когда я пытался Reg-Free-COM (используя файлы манифеста), элемент управления, кажется, активирован, но события (такие как щелчок мыши, RequestBringIntoView и т. Д.) Не реагируют. Интересно, что Двойной щелчок и клавиша табуляции работает.
Я прочитал в этой статье http://blogs.msdn.com/karstenj/archive/2006/10/09/activex-wpf-gadget.aspx что " ... Эти преимущества имеют свою цену: элемент управления ActiveX должен быть зарегистрирован в реестре, для чего требуется какая-то установка, например MSI. Процесс установки гаджета по умолчанию не может установить ActiveX. Доступ к элементу управления ActiveX невозможен через reg-free COM. ..."
У кого-нибудь был подобный опыт? Кто-нибудь может объяснить, что происходит?
Дополнительные детали:
Когда элемент управления активируется после его регистрации, он отображается как часть пользовательского интерфейса COM-клиента. Элемент управления не получает фокус, его элементы получают его.
При использовании reg-free-com элемент управления загружается неправильно. 1) Элемент управления получает фокус вместо своих подэлементов 2) Элемент управления имеет области, которые являются черными вместо цвета окон по умолчанию 3) Когда я вкладываю и выключаю элемент управления или дважды щелкаю по нему, его субэлементы получают фокус, элемент управления запускается получение событий и черные области заменены на правильный цвет
1 ответ
Я обнаружил, что элемент управления неактивен, потому что для его активации необходим атрибут miscStatus, который устанавливается при регистрации COM. Я опубликую отдельный вопрос по этому вопросу.