IRawElementProviderFragment::Navigate 方法(uiautomationcore.h)
检索 UI 自动化树中指定方向的 Microsoft UI 自动化元素。
语法
HRESULT Navigate(
[in] NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
参数
[in] direction
要导航的方向。
[out, retval] pRetVal
类型:IRawElementProviderFragment**
接收指向指定方向的 UI 自动化元素提供程序的指针;如果没有该方向的元素,则 NULL。 此参数未初始化传递。
返回值
类型:HRESULT
如果此方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
言论
此方法的 UI 自动化服务器的实现定义 UI 自动化树的结构。
导航必须向上支持到父级、向下到第一个子级和最后一个子级,以及横向到下一个和上一个兄弟姐妹(如果适用)。
每个子节点只有一个父节点,并且必须通过 NavigateDirection_FirstChild 和 NavigateDirection_LastChild放置在从父级到达的同级节点链中。
兄弟姐妹之间的关系必须两个方向相同:如果 A 是 B 以前的兄弟姐妹(NavigateDirection_PreviousSibling),则 B 是 A 的下一个兄弟姐妹(NavigateDirection_NextSibling)。 第一个孩子(NavigateDirection_FirstChild)没有以前的兄弟姐妹,最后一个孩子(NavigateDirection_LastChild)没有下一个兄弟姐妹。
片段根不支持导航到父级或同级;片段根之间的导航由默认窗口提供程序处理。 片段中的元素只能导航到该片段中的其他元素。
例子
以下示例演示列表项提供程序的实现。 创建列表时初始化父级、上一个同级和下一个同级提供程序的成员变量。
HRESULT STDMETHODCALLTYPE ListItemProvider::Navigate(NavigateDirection direction, IRawElementProviderFragment ** pRetVal)
{
if (pRetVal == NULL)
{
return E_INVALIDARG;
}
IRawElementProviderFragment* pFrag = NULL;
switch(direction)
{
case NavigateDirection_Parent:
pFrag = (IRawElementProviderFragment*)m_parentProvider;
break;
case NavigateDirection_NextSibling:
pFrag = (IRawElementProviderFragment*)m_nextSiblingProvider;
break;
case NavigateDirection_PreviousSibling:
pFrag = (IRawElementProviderFragment*)m_previousSiblingProvider;
break;
}
*pRetVal = pFrag;
if (pFrag != NULL)
{
pFrag->AddRef();
}
return S_OK;
}
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows Server 2003 [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | uiautomationcore.h (包括 UIAutomation.h) |