IRawElementProviderFragment::Navigate method (uiautomationcore.h)
Mengambil elemen Microsoft UI Automation ke arah tertentu dalam pohon Automation UI.
Sintaks
HRESULT Navigate(
NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parameter
direction
[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.
Menampilkan nilai
Jenis: HRESULT
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
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 ketika 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
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | uiautomationcore.h (termasuk UIAutomation.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk