IRawElementProviderFragment::Menavigasi metode (uiautomationcore.h)
Mengambil elemen Microsoft UI Automation dalam arah tertentu dalam pohon Automation UI.
Sintaksis
HRESULT Navigate(
[in] NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parameter
[in] direction
Jenis: NavigateDirection
Arah untuk menavigasi.
[out, retval] pRetVal
Jenis: IRawElementProviderFragment**
Menerima penunjuk ke penyedia elemen Automation UI ke arah yang ditentukan, atau NULL jika tidak ada elemen ke arah tersebut. Parameter ini diteruskan tanpa diinisialisasi.
Mengembalikan nilai
Jenis:
Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT.
Komentar
Implementasi server Automation UI dari metode ini menentukan struktur pohon Automation UI.
Navigasi harus didukung ke atas ke induk, ke bawah ke anak pertama dan terakhir, dan secara lateral ke saudara kandung berikutnya dan sebelumnya, sebagaimana berlaku.
Setiap simpul anak hanya memiliki satu induk dan harus ditempatkan dalam rantai saudara kandung yang dicapai dari induk dengan NavigateDirection_FirstChild dan NavigateDirection_LastChild.
Hubungan di antara saudara kandung harus identik di kedua arah: jika A adalah saudara kandung B sebelumnya (NavigateDirection_PreviousSibling), maka B adalah saudara kandung A berikutnya (NavigateDirection_NextSibling). Anak pertama (NavigateDirection_FirstChild) tidak memiliki saudara kandung sebelumnya, dan anak terakhir (NavigateDirection_LastChild) tidak memiliki saudara kandung berikutnya.
Akar fragmen tidak mengaktifkan navigasi ke induk atau saudara kandung; navigasi di antara akar fragmen ditangani oleh penyedia jendela default. Elemen dalam fragmen harus menavigasi hanya ke elemen lain dalam fragmen tersebut.
Contoh
Contoh berikut menunjukkan implementasi untuk penyedia item daftar. Variabel anggota untuk induk, saudara kandung sebelumnya, dan penyedia saudara kandung berikutnya diinisialisasi saat daftar dibuat.
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;
}
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Platform Target |
Windows |
Header |
uiautomationcore.h (termasuk UIAutomation.h) |