События, не отправленные в элемент управления ActiveX (COM-взаимодействие) на основе WPF при использовании Reg-Free-COM - PullRequest
2 голосов
/ 13 мая 2010

У меня есть элемент управления ActiveX на основе WPF (COM-взаимодействие). Я могу использовать его правильно, зарегистрировав элемент управления. Когда я пытался использовать 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 Ответ

2 голосов
/ 17 мая 2010

Я обнаружил, что элемент управления неактивен, поскольку для его активации требуется атрибут miscStatus, который устанавливается при регистрации COM. Я опубликую отдельный вопрос по этому вопросу.

...