Bagikan melalui


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: HRESULT

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)

Lihat juga

IRawElementProviderFragment