使用Reg-Free-COM时,事件未发送到基于WPF的ActiveX控件(COM互操作)

时间:2010-05-13 14:55:42

标签: c# wpf events com-interop regfreecom

我有一个基于WPF的ActiveX控件(COM互操作)。我可以通过注册控件正确使用它。当我尝试Reg-Free-COM(使用清单文件)时,控件似乎被激活,但事件(例如鼠标单击,RequestBringIntoView等)不响应。有趣的是,双击和制表键工作。

我在这篇文章http://blogs.msdn.com/karstenj/archive/2006/10/09/activex-wpf-gadget.aspx中读到“......这些优点需要付出代价:ActiveX控件必须在注册表中注册,这需要某种安装,例如.msi。默认情况下。小工具安装过程无法安装ActiveX。无法通过reg-free COM访问ActiveX控件....“

有没有人有类似的经历?谁能解释一下发生了什么?

其他细节:
控件在注册后激活时,它将显示为COM客户端UI的一部分。控件不会获得焦点,其元素会接收焦点。

使用reg-free-com时,控件无法正确加载。 1)控件接收焦点而不是其子元素 2)控件具有黑色区域而不是窗口默认颜色 3)当我进出控件或双击它时,它的子元素获得焦点,控件开始接收事件,黑色区域被正确的颜色替换

1 个答案:

答案 0 :(得分:2)

我发现控件处于非活动状态,因为在注册COM时设置的miscStatus属性需要激活它。我将就此发表一个单独的问题。