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_FirstChildNavigateDirection_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 포함) |