Peristiwa

Layanan yang dihosting harus mengimplementasikan antarmuka IUPnPEventSource jika memiliki variabel status peristiwa. Antarmuka ini memiliki dua metode: Advise dan Unadvise. Antarmuka ini menyediakan mekanisme bagi host perangkat untuk berlangganan pemberitahuan peristiwa yang dihasilkan oleh layanan yang dihosting. Tidak akan ada lebih dari satu sink peristiwa yang terdaftar pada satu waktu.

Layanan yang dihosting harus menerapkan metode Advise dengan memegang referensi ke antarmuka IUPnPEventSink , yang diteruskan sebagai parameter. Jika antarmuka ditemukan, metode Saran menyimpan referensi ke antarmuka tersebut hingga Unadvise dipanggil, atau sampai objek layanan yang dihosting dihapus. Saran hanya dipanggil sekali.

Untuk menghapus langganan, host perangkat memanggil Tidak Diawasi dan meneruskan penunjuk objek yang digunakan saat disebut Saran. Layanan yang dihosting menghapus langganan jika pointer sama dengan yang diteruskan ke Advise.

Ketika nilai variabel status berubah, layanan yang dihosting harus memberi sinyal bahwa suatu peristiwa telah terjadi. Layanan melakukan ini dengan memanggil metode IUPnPEventSink::OnStateChanged .

Ketika host perangkat tidak perlu lagi menerima pemberitahuan dari layanan yang dihosting, host perangkat memanggil IUPnPEventSource::Unadvise, melewati pointer objek yang sama dengan yang diterimanya dari Advise. Host perangkat memanggil metode ini ketika perangkat tidak lagi berada di jaringan.