Antarmuka IMMNotificationClient (mmdeviceapi.h)
Antarmuka IMMNotificationClient menyediakan pemberitahuan saat perangkat titik akhir audio ditambahkan atau dihapus, saat status atau properti perangkat titik akhir berubah, atau ketika ada perubahan dalam peran default yang ditetapkan ke perangkat titik akhir. Tidak seperti antarmuka lain di bagian ini, yang diimplementasikan oleh komponen sistem MMDevice API, klien MMDevice API mengimplementasikan antarmuka IMMNotificationClient . Untuk menerima pemberitahuan, klien meneruskan pointer ke instans antarmuka IMMNotificationClient sebagai parameter ke metode IMMDeviceEnumerator::RegisterEndpointNotificationCallback .
Setelah mendaftarkan antarmuka IMMNotificationClient , klien menerima pemberitahuan peristiwa dalam bentuk panggilan balik melalui metode antarmuka.
Setiap metode dalam antarmuka IMMNotificationClient menerima, sebagai salah satu parameter inputnya, string ID titik akhir yang mengidentifikasi perangkat titik akhir audio yang merupakan subjek pemberitahuan. String secara unik mengidentifikasi perangkat sehubungan dengan semua perangkat titik akhir audio lainnya dalam sistem. Metode dalam implementasi antarmuka IMMNotificationClient harus memperlakukan string ini sebagai buram. Artinya, tidak ada metode yang harus mencoba mengurai konten string untuk mendapatkan informasi tentang perangkat. Alasannya adalah bahwa format string tidak ditentukan dan mungkin berubah dari satu implementasi modul sistem MMDevice API ke modul berikutnya.
Klien dapat menggunakan string ID titik akhir yang diterimanya sebagai parameter input dalam panggilan ke metode IMMNotificationClient dengan dua cara:
- Klien dapat membuat instans perangkat yang diidentifikasi oleh string ID titik akhir. Klien melakukan ini dengan memanggil metode IMMDeviceEnumerator::GetDevice dan menyediakan string ID titik akhir sebagai parameter input.
- Klien dapat membandingkan string ID titik akhir dengan string ID titik akhir dari instans perangkat yang ada. Untuk mendapatkan string ID titik akhir kedua, klien memanggil metode IMMDevice::GetId dari instans perangkat. Jika kedua string cocok, mereka mengidentifikasi perangkat yang sama.
- Metode antarmuka harus tidak diblokir. Klien tidak boleh menunggu pada objek sinkronisasi selama panggilan balik peristiwa.
- Untuk menghindari kunci mati, klien tidak boleh memanggil IMMDeviceEnumerator::RegisterEndpointNotificationCallback atau IMMDeviceEnumerator::UnregisterEndpointNotificationCallback dalam implementasi metode IMMNotificationClient .
- Klien tidak boleh merilis referensi akhir pada objek MMDevice API selama panggilan balik peristiwa.
Warisan
Antarmuka IMMNotificationClient mewarisi dari antarmuka IUnknown . IMMNotificationClient juga memiliki jenis anggota ini:
Metode
Antarmuka IMMNotificationClient memiliki metode ini.
IMMNotificationClient::OnDefaultDeviceChanged Metode OnDefaultDeviceChanged memberi tahu klien bahwa perangkat titik akhir audio default untuk peran perangkat tertentu telah berubah. |
IMMNotificationClient::OnDeviceAdded Metode OnDeviceAdded menunjukkan bahwa perangkat titik akhir audio baru telah ditambahkan. |
IMMNotificationClient::OnDeviceRemoved Metode OnDeviceRemoved menunjukkan bahwa perangkat titik akhir audio telah dihapus. |
IMMNotificationClient::OnDeviceStateChanged Metode OnDeviceStateChanged menunjukkan bahwa status perangkat titik akhir audio telah berubah. |
IMMNotificationClient::OnPropertyValueChanged Metode OnPropertyValueChanged menunjukkan bahwa nilai properti milik perangkat titik akhir audio telah berubah. |
Persyaratan
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | mmdeviceapi.h |
Lihat juga
IMMDeviceEnumerator::GetDevice
IMMDeviceEnumerator::RegisterEndpointNotificationCallback