Peristiwa di COM dan Objek yang dapat Koneksi

Ketika program mendeteksi sesuatu yang telah terjadi, program dapat memberi tahu kliennya. Misalnya, jika program ticker saham mendeteksi perubahan harga saham, program ini dapat memberi tahu semua klien tentang perubahan tersebut. Proses pemberitahuan ini disebut sebagai menembakkan peristiwa.

Dengan COM, objek server dapat menggunakan peristiwa COM untuk mengaktifkan peristiwa tanpa informasi apa pun tentang objek apa yang akan diberi tahu. Objek juga dapat menggunakan objek yang dapat dihubungkan untuk mempertahankan informasi terperinci tentang klien yang telah meminta pemberitahuan.

Objek yang dapat dihubungkan COM menyediakan antarmuka keluar untuk klien mereka selain antarmuka masuk mereka. Akibatnya, objek dan kliennya dapat terlibat dalam komunikasi dua arah. Antarmuka masuk diimplementasikan pada objek dan menerima panggilan dari klien eksternal objek, sementara antarmuka keluar diimplementasikan pada sink klien dan menerima panggilan dari objek. Objek mendefinisikan antarmuka yang ingin digunakan, dan klien mengimplementasikannya.

Objek mendefinisikan antarmuka masuknya dan menyediakan implementasi antarmuka ini. Antarmuka masuk tersedia untuk klien melalui metode IUnknown::QueryInterface objek. Klien memanggil metode antarmuka masuk pada objek, dan objek melakukan tindakan yang diinginkan atas nama klien.

Antarmuka keluar juga didefinisikan oleh objek, tetapi klien menyediakan implementasi antarmuka keluar pada objek sink yang dibuat klien. Objek kemudian memanggil metode antarmuka keluar pada objek sink untuk memberi tahu klien tentang perubahan dalam objek, untuk memicu peristiwa di klien, untuk meminta sesuatu dari klien, atau, pada kenyataannya, untuk tujuan apa pun yang muncul oleh pembuat objek.

Contoh antarmuka keluar adalah antarmuka IButtonSink yang ditentukan oleh kontrol tombol tekan untuk memberi tahu kliennya tentang peristiwanya. Misalnya, objek tombol memanggil IButtonSink::OnClick pada objek sink klien saat pengguna mengklik tombol di layar. Kontrol tombol menentukan antarmuka keluar. Agar klien tombol menangani peristiwa, klien harus mengimplementasikan antarmuka keluar tersebut pada objek sink lalu menyambungkan sink tersebut ke kontrol tombol. Kemudian, ketika peristiwa terjadi di tombol, tombol akan memanggil sink, pada saat itu klien dapat menjalankan tindakan apa pun yang ingin ditetapkan ke klik tombol tersebut.

objek yang dapat Koneksi menyediakan mekanisme umum untuk komunikasi objek-ke-klien. Objek apa pun yang ingin mengekspos peristiwa atau pemberitahuan dalam bentuk apa pun dapat menggunakan teknologi ini. Selain teknologi objek yang dapat dihubungkan secara umum, COM menyediakan banyak sink tujuan khusus dan antarmuka situs yang digunakan oleh objek untuk memberi tahu klien tentang peristiwa tertentu yang menarik bagi klien. Misalnya, IAdviseSink dapat digunakan oleh objek untuk memberi tahu klien tentang data dan melihat perubahan dalam objek.

Untuk mengetahui informasi selengkapnya, lihat topik berikut: