【发布时间】:2011-07-29 19:42:06
【问题描述】:
我正在尝试编写一个小 C(C++ 也可以)实用程序来监视 ActiveX 控件。给定我想打印的窗口的一些 HWND 句柄
- ActiveX 控件为此 HWND 公开了哪些属性和方法
- 可选,控件实现了哪些接口
出于测试目的,我将随机 ActiveX 控件(如 Microsoft Slider 控件)嵌入到ActiveX Control Test Container 中,以便我知道控件的 HWND 确实是 ActiveX 控件的窗口。此外,我知道控件公开了哪些属性/方法,因此我可以测试我的工具。
我目前针对 (1) 的解决方案是使用 HWND 上的 AccessibleObjectFromWindow 函数来获取 IDispatch。它有效,但似乎你真的总是只能得到一个可访问的接口(返回的 IDispatch 只是 IAccessible 接口的 IDispatch 部分)。我尝试将示例控件的实际 CLSID 作为第三个参数传递给AccessibleObjectFromWindow,但这也无济于事。似乎该功能确实名副其实——您总是只能获得可访问性界面。 :-)
有谁知道这样的“ActiveX 间谍”是否存在?如果有,怎么做?
【问题讨论】: