基于MSAA COM? [英] MSAA COM-based?
问题描述
我想知道MSAA是否基于COM,那么人们应该能够使用CreateObject( Accessibility)创建实例并调用其方法。我这样做没有成功。我在SYSTEM32中有 OLEACC.DLL,并且已在Windows中注册。但是CreateObject失败。
I'm wondering if MSAA is COM-based, then one should be able to use CreateObject("Accessibility") to create an instance and call its methods. I had no success doing that. I have "OLEACC.DLL" in SYSTEM32 and it's registered with Windows. But the CreateObject fails.
有什么想法吗?
我想使用AccessibleObjectFromPoint()之类的函数来获取
I would like to use functions like AccessibleObjectFromPoint() to get the IAccessible object of the control at the given point.
有人有这样的经验吗?
任何输入
谢谢
卡米尔
推荐答案
MSAA是基于COM的。但是,没有公开的可共同创建的类,它仅公开接口。这就是不能执行 CreateObject()
的原因。
MSAA is COM based. However, there is no co-creatable class exposed, it exposes only interfaces. That's the reason you can't do CreateObject()
.
MSAA公开的API,例如 AccessibleObjectFromPoint
和 AccessibleObjectFromWindow
是dll导出的C ++方法。您可以通过链接适当的lib或使用函数名称执行 LoadLibrary / GetProcAddress
从C ++使用它们。从C#中,您可以从 Pinvoke.net 获取这些的P / nvoke声明。例如,这是 AccessibleObjectFromWindow $ c的DllImport $ c>
。
The MSAA-exposed APIs, like AccessibleObjectFromPoint
and AccessibleObjectFromWindow
are dll-exported C++ methods. You can use them from C++ by linking the proper lib or doing LoadLibrary/GetProcAddress
with the function name. From C#, you can get the P/nvoke declaration for these from Pinvoke.net. For example, here's the DllImport for AccessibleObjectFromWindow
.
这篇关于基于MSAA COM?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!