Bagikan melalui


Metode IRawElementProviderFragmentRoot::ElementProviderFromPoint (uiautomationcore.h)

Mengambil penyedia elemen yang berada pada titik yang ditentukan dalam fragmen ini.

Sintaks

HRESULT ElementProviderFromPoint(
  [in]          double                      x,
  [in]          double                      y,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Parameter

[in] x

Jenis: ganda

Koordinat layar horizontal.

[in] y

Jenis: ganda

Koordinat layar vertikal.

[out, retval] pRetVal

Jenis: IRawElementProviderFragment**

Menerima penunjuk ke penyedia elemen di (x, y), atau NULL jika tidak ada. Parameter ini diteruskan tanpa diinisialisasi.

Nilai kembali

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Penyedia yang dikembalikan harus sesuai dengan elemen yang akan menerima input mouse pada titik yang ditentukan.

Jika titik berada pada elemen ini tetapi tidak pada elemen turunan apa pun, baik NULL atau penyedia akar fragmen dikembalikan. Jika titik berada pada elemen dalam kerangka kerja lain yang dihosting oleh fragmen ini, metode mengembalikan elemen yang menghosting fragmen tersebut (seperti yang ditunjukkan oleh IRawElementProviderFragment::GetEmbeddedFragmentRoots).

Contoh

Contoh berikut menunjukkan implementasi untuk kotak daftar yang dihosting di HWND yang handelnya m_controlHwnd. IndexFromY mengambil indeks item daftar di posisi kursor, dan GetItemByIndex mengambil penyedia Automation UI untuk item tersebut.

HRESULT STDMETHODCALLTYPE ListProvider::ElementProviderFromPoint(double x, double y, IRawElementProviderFragment** pRetVal)
{
    if (pRetVal == NULL) 
    {
        return E_INVALIDARG;
    }
    POINT pt;
    pt.x = (LONG)x;
    pt.y = (LONG)y;
    ScreenToClient(m_controlHwnd, &pt);
    int itemIndex = this->m_pControl->IndexFromY(m_controlHwnd, pt.y);
    ListItemProvider* pItem = GetItemByIndex(itemIndex);  
    if (pItem != NULL)
    {
        *pRetVal = (IRawElementProviderFragment*)pItem;
        pItem->AddRef();
    }
    else 
    {
        pRetVal = (IRawElementProviderFragment*)this;
        pItem->AddRef();
    }

    return S_OK;
}            

Persyaratan

Persyaratan Nilai
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

IRawElementProviderFragmentRoot