1

经过一番研究,我终于让我的 ActiveX 对象工作了,现在我想在有人修改混音器控件中的值时收听 Windows 消息(消息编号 = 977)

问题是,如果我让我的类继承自 Form 类,它会停止在 IE 中工作,据我所知,听到 Windows 消息的唯一方法是通过 Form。

我有将方法和事件添加到我的 ICOMEvents 和 ICOMMethods 接口的模糊想法,尽管我想知道是否有更好的方法来做到这一点,或者它是否不可能。

我的班级样本,如果它没有从 Form 继承,一切正常!

{Guid("ECA5DD1D-096E-440c-BA6A-0118D3516AAA")} _
{ClassInterface(ClassInterfaceType.None)} _
{ComDefaultInterface(GetType(ICOMMethods))} _
{ComSourceInterfaces(GetType(ICOMEvents))} _
Public Class Class1
'When inherited, can not call any method in IE
Inherits System.Windows.Forms.Form 
Implements ICOMMethods

注意:我无法制作 Windows 窗体控件并使其与 ActiveX 兼容,我需要成为一个类库。

另一种方式:我也在考虑添加一个计时器并每隔 X 秒检查一次音量……不是很整洁,但会不那么痛苦,因为我已经有了所有必要的方法来检查音量(XP、Vista 和 7)。对这种或另一种方法的任何评论都可能非常有用!

Way2:创建一个隐藏的窗口窗体??(做了一些测试,不工作)

4

0 回答 0