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

IRawElementProviderFragment