Bagikan melalui


WM_GETOBJECT pesan

Dikirim oleh Microsoft Active Accessibility dan Microsoft UI Automation untuk mendapatkan informasi tentang objek yang dapat diakses yang terdapat dalam aplikasi server.

Aplikasi tidak pernah mengirim pesan ini secara langsung. Aksesibilitas Aktif Microsoft mengirim pesan ini sebagai respons terhadap panggilan ke AccessibleObjectFromPoint, AccessibleObjectFromEvent, atau AccessibleObjectFromWindow. Namun, aplikasi server menangani pesan ini. Automasi UI mengirim pesan ini sebagai respons terhadap panggilan ke IUIAutomation::ElementFromHandle, ElementFromPoint, dan GetFocusedElement, dan ketika menangani peristiwa yang telah didaftarkan klien.

dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;

Parameter

dwFlags

Menyediakan informasi tambahan tentang pesan dan hanya digunakan oleh sistem. Server meneruskan dwFlags sebagai parameter wParam dalam panggilan ke LresultFromObject saat menangani pesan.

dwObjId

Pengidentifikasi objek. Nilai ini adalah salah satu konstanta pengidentifikasi objek atau pengidentifikasi objek kustom. Aplikasi server harus memeriksa nilai ini untuk mengidentifikasi jenis informasi yang diminta. Sebelum membandingkan nilai ini dengan nilai OBJID_, server harus melemparkannya ke DWORD; jika tidak, pada Windows 64-bit, ekstensi tanda lParam dapat mengganggu perbandingan.

  • Jika dwObjId adalah salah satu nilai OBJID_ seperti OBJID_CLIENT, permintaannya adalah untuk objek Aksesibilitas Aktif Microsoft yang mengimplementasikan IAccessible.
  • Jika dwObjId sama dengan UiaRootObjectId, permintaannya adalah untuk penyedia Automation UI. Jika server menerapkan Automasi UI, server harus mengembalikan penyedia menggunakan fungsi UiaReturnRawElementProvider .
  • Jika dwObjIdOBJID_NATIVEOM, permintaannya adalah untuk model objek yang mendasar kontrol. Jika kontrol mendukung permintaan ini, kontrol harus mengembalikan antarmuka COM yang sesuai dengan memanggil fungsi LresultFromObject .
  • Jika dwObjIdOBJID_QUERYCLASSNAMEIDX, permintaannya adalah agar kontrol mengidentifikasi dirinya sebagai kontrol Windows standar atau kontrol umum yang diterapkan oleh pustaka kontrol umum (ComCtrl.dll).

Nilai kembali

Jika jendela atau kontrol tidak perlu merespons pesan ini, jendela atau kontrol harus meneruskan pesan ke fungsi DefWindowProc ; jika tidak, jendela atau kontrol harus mengembalikan nilai yang sesuai dengan permintaan yang ditentukan oleh dwObjId:

  • Jika jendela atau kontrol mengimplementasikan Automasi UI, jendela atau kontrol harus mengembalikan nilai yang diperoleh oleh panggilan ke fungsi UiaReturnRawElementProvider .
  • Jika dwObjIdOBJID_NATIVEOM dan jendela mengekspos Model Objek asli, jendela harus mengembalikan nilai yang diperoleh oleh panggilan ke fungsi LresultFromObject .
  • Jika dwObjIdOBJID_CLIENT dan jendela mengimplementasikan IAccessible, jendela harus mengembalikan nilai yang diperoleh oleh panggilan ke fungsi LresultFromObject .

Keterangan

Saat klien memanggil AccessibleObjectFromWindow atau salah satu fungsi AccessibleObjectFromX lainnya yang mengambil antarmuka ke objek, Microsoft Active Accessibility mengirimkan pesan WM_GETOBJECT ke prosedur jendela yang sesuai dalam aplikasi server yang sesuai. Saat memproses WM_GETOBJECT, aplikasi server memanggil LresultFromObject dan menggunakan nilai pengembalian fungsi ini sebagai nilai pengembalian untuk pesan. Microsoft Active Accessibility, bersama dengan pustaka COM, melakukan marshaling yang sesuai dan meneruskan penunjuk antarmuka dari server kembali ke klien.

Server tidak merespons WM_GETOBJECT sebelum objek diinisialisasi sepenuhnya atau setelah mulai ditutup. Ketika aplikasi membuat jendela baru, sistem mengirim EVENT_OBJECT_CREATE untuk memberi tahu klien sebelum mengirim pesan WM_CREATE ke prosedur jendela aplikasi. Karena banyak aplikasi menggunakan WM_CREATE untuk memulai proses inisialisasi mereka, server tidak merespons pesan WM_GETOBJECT sampai selesai memproses pesan WM_CREATE .

Server menggunakan WM_GETOBJECT untuk melakukan tugas berikut:

Untuk klien, ini berarti bahwa mereka mungkin menerima penunjuk antarmuka yang berbeda untuk elemen antarmuka pengguna yang sama, tergantung pada tindakan server. Untuk menentukan apakah dua penunjuk antarmuka menunjuk ke elemen antarmuka pengguna yang sama, klien membandingkan properti IAccessible objek. Membandingkan pointer tidak berfungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
Redistribusi
Aksesibilitas Aktif 1.3 RDK di Windows NT 4.0 dengan SP6 dan yang lebih baru dan Windows 95
Header
Winuser.h (termasuk Windows.h)

Lihat juga

Cara Menangani WM_GETOBJECT

Cara Kerja WM_GETOBJECT

LresultFromObject