Bagikan melalui


Ringkasan Penanganan Peristiwa ATL

Secara umum, menangani peristiwa COM adalah proses yang relatif sederhana. Ada tiga langkah utama:

  • Terapkan antarmuka peristiwa pada objek Anda.

  • Beri tahu sumber peristiwa bahwa objek Anda ingin menerima peristiwa.

  • Buka sumber peristiwa saat objek Anda tidak perlu lagi menerima peristiwa.

Menerapkan Antarmuka

Ada empat cara utama untuk menerapkan antarmuka menggunakan ATL.

Berasal dari Cocok untuk Jenis antarmuka Mengharuskan Anda menerapkan semua metode* Memerlukan pustaka jenis pada waktu proses
Antarmuka Dapat Vtable Ya Tidak
IDispatchImpl Ganda Ya Ya
IDispEventImpl Dispinterface Tidak Ya
IDispEventSimpleImpl Dispinterface Tidak Tidak

* Saat menggunakan kelas dukungan ATL, Anda tidak pernah diharuskan untuk menerapkan IUnknown metode atau IDispatch secara manual.

Memberi Saran dan Tidak Mengawasi Sumber Peristiwa

Ada tiga cara utama untuk menasihati dan membatalkan penambahan sumber peristiwa menggunakan ATL.

Sarankan fungsi Fungsi tidak diawasi Paling cocok untuk digunakan dengan Mengharuskan Anda melacak cookie Komentar
AtlAdvise, CComPtrBase::Advise AtlUnadvise Antarmuka Vtable atau ganda Ya AtlAdvise adalah fungsi ATL global. CComPtrBase::Advise digunakan oleh CComPtr dan CComQIPtr.
IDispEventSimpleImpl::D ispEventAdvise IDispEventSimpleImpl::D ispEventUnadvise IDispEventImpl atau IDispEventSimpleImpl No Lebih sedikit parameter daripada AtlAdvise karena kelas dasar melakukan lebih banyak pekerjaan.
CComCompositeControl::AdviseSinkMap(TRUE) CComCompositeControl::AdviseSinkMap(FALSE) Kontrol ActiveX dalam kontrol Komposit No CComCompositeControl::AdviseSinkMap menyarankan semua entri dalam peta sink peristiwa. Fungsi yang sama membuka entri. Metode ini dipanggil secara otomatis oleh CComCompositeControl kelas .
CAxDialogImpl::AdviseSinkMap(TRUE) CAxDialogImpl::AdviseSinkMap(FALSE) Kontrol ActiveX dalam kotak dialog No CAxDialogImpl::AdviseSinkMap menyarankan dan membatalkan pengawasan semua kontrol ActiveX dalam sumber daya dialog. Ini dilakukan secara otomatis untuk Anda.

Lihat juga

Penanganan Peristiwa
Mendukung IDispEventImpl