IRawElementProviderFragment::Navigate 方法 (uiautomationcore.h)
擷取使用者介面自動化樹狀結構中指定方向的 Microsoft UI Automation 元素。
語法
HRESULT Navigate(
[in] NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
參數
[in] direction
要巡覽的方向。
[out, retval] pRetVal
類型:IRawElementProviderFragment**
接收指定方向之 UI Automation 元素提供者的指標,或如果沒有該方向的專案,則 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) |