Metode IAccessible::accLocation (oleacc.h)

Metode IAccessible::accLocation mengambil lokasi layar objek yang ditentukan saat ini. Semua objek visual harus mendukung metode ini. Objek suara tidak mendukung metode ini.

Sintaks

HRESULT accLocation(
  [out] long    *pxLeft,
  [out] long    *pyTop,
  [out] long    *pcxWidth,
  [out] long    *pcyHeight,
  [in]  VARIANT varChild
);

Parameter

[out] pxLeft

Jenis: panjang*

Alamat, dalam koordinat layar fisik, dari variabel yang menerima koordinat x batas kiri atas lokasi objek.

[out] pyTop

Jenis: panjang*

Alamat, dalam koordinat layar fisik, dari variabel yang menerima koordinat y batas kiri atas lokasi objek.

[out] pcxWidth

Jenis: panjang*

Alamat, dalam piksel, dari variabel yang menerima lebar objek.

[out] pcyHeight

Jenis: panjang*

Alamat, dalam piksel, dari variabel yang menerima tinggi objek.

[in] varChild

Jenis: VARIAN

Menentukan apakah lokasi yang dikembalikan server harus objek atau salah satu elemen anak objek. Parameter ini CHILDID_SELF (untuk mendapatkan informasi tentang objek) atau ID anak (untuk mendapatkan informasi tentang elemen anak objek). Untuk informasi selengkapnya tentang menginisialisasi struktur VARIAN, lihat Bagaimana ID Anak Digunakan dalam Parameter.

Nilai kembali

Jenis: HRESULT

Jika berhasil, mengembalikan S_OK. Klien harus selalu memeriksa bahwa parameter output berisi nilai yang valid.

Jika tidak berhasil, mengembalikan salah satu nilai dalam tabel berikut, atau kode kesalahan COM standar lainnya. Untuk informasi selengkapnya, lihat Memeriksa Nilai Pengembalian IAccessible.

Kesalahan Deskripsi
DISP_E_MEMBERNOTFOUND
Objek tidak mendukung metode ini.
E_INVALIDARG
Argumen tidak valid.

Keterangan

Metode ini mengambil persegi panjang pembatas objek. Jika objek memiliki bentuk non-persegi panjang, maka metode ini mengembalikan persegi terkecil yang sepenuhnya mencakup seluruh wilayah objek. Untuk objek non-persegi panjang, koordinat persegi panjang pembatas objek bisa gagal jika diuji dengan IAccessible::accHitTest. Contoh objek non-persegi panjang tersebut adalah item tampilan daftar dalam mode ikon besar di mana satu item memiliki persegi panjang untuk ikon dan persegi panjang lain untuk teks ikon. Karena accLocation mengembalikan persegi panjang pembatas, tidak semua titik dalam persegi panjang tersebut akan berada dalam batas objek yang sebenarnya. Beberapa titik dalam persegi panjang pembatas mungkin tidak ada pada objek . Untuk informasi selengkapnya, lihat Navigasi Melalui Pengujian Hit dan Lokasi Layar.

Catatan: Metode ini mengembalikan lebar dan tinggi. Jika Anda menginginkan koordinat kanan dan bawah, hitung menggunakan kanan = kiri + lebar, dan bawah = atas + tinggi.

Contoh Server

Contoh berikut menunjukkan kemungkinan implementasi metode untuk kotak daftar kustom yang item daftarnya adalah elemen anak. Untuk kotak daftar itu sendiri, panggilan diteruskan ke objek standar yang dapat diakses, yang mengembalikan koordinat layar jendela.

// m_pStdAccessibleObject is the standard accessible object for the control window. 
// m_pControl is the object that represents the control. Its GetItemRect method  
//   retrieves the screen coordinates of the specified item in a zero-based collection. 
// 
HRESULT STDMETHODCALLTYPE AccServer::accLocation( 
    long *pxLeft,
    long *pyTop,
    long *pcxWidth,
    long *pcyHeight,
    VARIANT varChild)
{
    *pxLeft = 0;
    *pyTop = 0;
    *pcxWidth = 0;
    *pcyHeight = 0;
    if (varChild.vt != VT_I4)
    {
        return E_INVALIDARG;
    }
    if (varChild.lVal == CHILDID_SELF)
    {
        return m_pStdAccessibleObject->accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varChild);
    }
    else
    {
        RECT rect;
        if (m_pControl->GetItemRect(varChild.lVal - 1, &rect) == FALSE)
        {
            return E_INVALIDARG;
        }
        else
        {
            *pxLeft = rect.left;
            *pyTop = rect.top;
            *pcxWidth = rect.right - rect.left;
            *pcyHeight = rect.bottom - rect.top;
            return S_OK;        
        }
    }
};

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header oleacc.h
Pustaka Oleacc.lib
DLL Oleacc.dll
Redistribusi Aksesibilitas Aktif 1.3 RDK di Windows NT 4.0 dengan SP6 dan yang lebih baru dan Windows 95

Lihat juga

Aksesibilitas Aktif dan Penskalaan Layar Windows Vista

IAccessible

IAccessible::accHitTest

Navigasi Melalui Pengujian Tekan dan Lokasi Layar

VARIAN