我想知道MSAA是否基于COM,那么应该能够使用CreateObject(“Accessibility”)来创建实例并调用其方法。我没有成功。我在SYSTEM32中有“OLEACC.DLL”,它已在Windows注册。但CreateObject失败。
有什么想法吗?
我想使用AccessibleObjectFromPoint()等函数来获取给定点的控件的IAccessible对象。
有没有人有过这样的经历?
任何意见都会受到高度赞赏,
谢谢,
卡米尔
答案 0 :(得分:2)
MSAA基于COM。但是,没有公开的可共同创建的类,它只公开接口。这就是你不能做CreateObject()
的原因。
MSAA公开的API,如AccessibleObjectFromPoint
和AccessibleObjectFromWindow
,是dll导出的C ++方法。您可以通过链接正确的lib或使用函数名称LoadLibrary/GetProcAddress
来使用C ++中的它们。从C#开始,您可以从Pinvoke.net获取P / nvoke声明。例如,这是AccessibleObjectFromWindow
的DllImport。