IUIAutomation::AddFocusChangedEventHandler 方法 (uiautomationclient.h)
注册处理焦点更改事件的方法。
注意 在实现事件处理程序之前,应熟悉了解线程问题中所述 的线程问题。
语法
HRESULT AddFocusChangedEventHandler(
[in] IUIAutomationCacheRequest *cacheRequest,
[in] IUIAutomationFocusChangedEventHandler *handler
);
参数
[in] cacheRequest
类型: IUIAutomationCacheRequest*
指向缓存请求的指针;如果不需要缓存,则为 NULL 。
[in] handler
类型: IUIAutomationFocusChangedEventHandler*
指向处理事件的 对象的指针。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
焦点更改事件是系统范围的;不能设置更窄的范围。
UI 自动化客户端不应使用多个线程来添加或删除事件处理程序。 如果在同一客户端进程中添加或删除另一个事件处理程序,则会导致意外行为。
示例
以下示例函数创建一个实现 IUIAutomationFocusChangedEventHandler 的对象,并通过添加 处理程序订阅 事件。
HRESULT AddFocusHandler(IUIAutomation* pAutomation)
{
// CFocusHandler is a class that implements IUIAutomationFocusChangedEventHandler.
CFocusHandler* pFocusHandler = new CFocusHandler();
if (!pFocusHandler)
{
return E_OUTOFMEMORY;
}
IUIAutomationFocusChangedEventHandler* pHandler;
pFocusHandler->QueryInterface(IID_IUIAutomationFocusChangedEventHandler, (void**)&pHandler);
HRESULT hr = pAutomation->AddFocusChangedEventHandler(NULL, pHandler);
pFocusHandler->Release();
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新、带 SP3 的 Windows XP 和适用于 Windows Vista 的平台更新 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2、带 SP2 的 Windows Server 2008 和适用于 Windows Server 2008 的平台更新、带 SP2 的 Windows Server 2003 和适用于 Windows Server 2008 的平台更新 [仅限桌面应用] |
目标平台 | Windows |
标头 | uiautomationclient.h (包括 UIAutomation.h) |
另请参阅
概念性
IUIAutomationFocusChangedEventHandler
引用