IRawElementProviderFragment::Navigate 方法 (uiautomationcore.h)
检索 UI 自动化树中指定方向的 Microsoft UI 自动化元素。
语法
HRESULT Navigate(
NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
参数
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 应用] |
目标平台 | Windows |
标头 | uiautomationcore.h (包括 UIAutomation.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈