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 オートメーション ツリーの構造を定義します。
ナビゲーションは、親に対して上向き、最初と最後の子まで下向き、および次の兄弟と前の兄弟に対して、必要に応じて横方向にサポートする必要があります。
各子ノードには親が 1 つだけあり、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 を含む) |
関連項目
IRawElementProviderFragment の