活动的可访问兼容型应用给程序员带来使用软件的新工具
2007-03-22 21:31:12 来源:WEB开发网另一种途径是通过使用SetEventHook函数的第1、2个参数来过滤掉将在回调函数中进行处理的WinEvents。这两个参数定义了一个包含应被处理的WinEvents的事件范围。当你确切的知道这个范围时,本方法才可用。但如果你还没有完成程序的最终设计,我建议你不要在回调函数中过滤事件。
有两个例外。第一个是是否存在性能问题,但这通常不是问题。另一个发生在可访问的元素(或者COM服务器,更准确的说)在处理特定的事件时,就不处理从回掉函数中执行的Active Accessibility函数调用。在使用OLEACC.DLL支持的控件时这种情形通常不会发生。当UI元素内在的支持IAccessible时,程序开发者完全负责这种支持的实现。不良实现会导致问题,因此你可以过滤掉在SetWinEventHook调用中会导致问题的事件。
一个回调函数当它在上下文之外运行时被异步的调用,此时,从回调函数中调用IAccessible方法时要非常小心,因为当调用IAccessible方法时,相应的UI元素也许不再存在了。特别是要留心标志着激发此事件的UI元素已经不存在的EVENT_OBJECT_DELETE事件。此时,后面将要讨论到的AccessibleObjectFromEvent函数将返回一个错误。
同时,当你从一个回调函数中调用Iaccessible方法而此IAccessible方法代表一个激发此事件的基于HWND的元素时,你可能会想首先调用Win32的IsWindowVisible函数,因为隐藏的UI元素可能并没有完全的初始化。
获得IsWindowVisible的指针
有4种方法得到IsWindowVisible接口的指针。一个是从WinEventProc函数中调用Active Accessibility函数AccessibleObjectFromEvent。AccessibleObjectFromEvent函数中的所有参数被传递给WinEventProc。Out参数由激发此事件的UI元素相应的IAccessible 接口/子 ID对组成。
- ››兼容ie6浏览器窗口四角固定背景代码
- ››兼容FF和IE的html传递参数给swf的方法
- ››兼容IE和Firefox的设为首页和收藏的Javascript代码...
- ››兼容多种浏览器“复制到剪贴板”的解决方案
- ››访问频率监测有助数据库管理
- ››访问控制大师,使用pam来支持login的访问控制
- ››活动目录系列之十四:实战SYSVOL文件夹共享丢失后...
- ››活动目录的安装:深入浅出Active Directory系列(二...
- ››活动目录的介绍:深入浅出Active Directory系列(一...
- ››兼容IE6/IE7/IE8/FireFox的CSS hack
- ››活动贴发布
- ››访问Windows 2008共享资源出错解决方法
更多精彩
赞助商链接