MSAA基于COM?

时间:2009-12-15 00:03:19

标签: accessibility iaccessible

我想知道MSAA是否基于COM,那么应该能够使用CreateObject(“Accessibility”)来创建实例并调用其方法。我没有成功。我在SYSTEM32中有“OLEACC.DLL”,它已在Windows注册。但CreateObject失败。

有什么想法吗?

我想使用AccessibleObjectFromPoint()等函数来获取给定点的控件的IAccessible对象。

有没有人有过这样的经历?

任何意见都会受到高度赞赏,

谢谢,

卡米尔

1 个答案:

答案 0 :(得分:2)

MSAA基于COM。但是,没有公开的可共同创建的类,它只公开接口。这就是你不能做CreateObject()的原因。

MSAA公开的API,如AccessibleObjectFromPointAccessibleObjectFromWindow,是dll导出的C ++方法。您可以通过链接正确的lib或使用函数名称LoadLibrary/GetProcAddress来使用C ++中的它们。从C#开始,您可以从Pinvoke.net获取P / nvoke声明。例如,这是AccessibleObjectFromWindow的DllImport。