Bagikan melalui


IPart::RegisterControlChangeCallback method (devicetopology.h)

Metode RegisterControlChangeCallback mendaftarkan antarmuka IControlChangeNotify , yang diterapkan klien untuk menerima pemberitahuan perubahan status di bagian ini.

Sintaks

HRESULT RegisterControlChangeCallback(
  [in] REFGUID              riid,
  [in] IControlChangeNotify *pNotify
);

Parameter

[in] riid

Antarmuka kontrol khusus fungsi yang akan dipantau untuk perubahan kontrol. Untuk informasi selengkapnya, lihat Keterangan.

[in] pNotify

Arahkan ke antarmuka IControlChangeNotify klien. Jika metode berhasil, metode ini memanggil metode AddRef pada antarmuka IControlChangeNotify klien.

Nilai kembali

Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kemungkinan kode pengembalian menyertakan, tetapi tidak terbatas pada, nilai yang diperlihatkan dalam tabel berikut.

Menampilkan kode Deskripsi
E_INVALIDARG
Parameter riid bukan pengidentifikasi antarmuka kontrol yang valid.
E_POINTER
Pointer pNotify adalah NULL.

Keterangan

Atur parameter riid ke salah satu nilai GUID berikut:

  • IID_IAudioAutoGainControl
  • IID_IAudioBass
  • IID_IAudioChannelConfig
  • IID_IAudioInputSelector
  • IID_IAudioLoudness
  • IID_IAudioMidrange
  • IID_IAudioMute
  • IID_IAudioOutputSelector
  • IID_IAudioPeakMeter
  • IID_IAudioTreble
  • IID_IAudioVolumeLevel
  • IID_IDeviceSpecificProperty
  • IID_IKsFormatSupport
  • IID_IKsJackDescription
Untuk mendapatkan ID antarmuka antarmuka kontrol khusus fungsi untuk suatu bagian, panggil metode IControlInterface::GetIID bagian. Untuk mendapatkan ID antarmuka dari jenis antarmuka kontrol khusus fungsi, gunakan operator __uuidof . Misalnya, ID antarmuka IAudioAutoGainControl didefinisikan sebagai berikut:

const IID IID_IAudioAutoGainControl  __uuidof(IAudioAutoGainControl)

Untuk informasi selengkapnya tentang operator __uuidof , lihat dokumentasi Windows SDK.

Sebelum klien merilis referensi terakhirnya ke antarmuka IControlChangeNotify , klien harus memanggil metode IPart::UnregisterControlChangeCallback untuk membatalkan pendaftaran antarmuka. Jika tidak, aplikasi membocorkan sumber daya yang disimpan oleh objek IControlChangeNotify dan IPart . Perhatikan bahwa Metode RegisterControlChangeCallback memanggil metode IControlChangeNotify::AddRef klien, dan UnregisterControlChangeCallback memanggil metode IControlChangeNotify::Release . Jika klien melakukan kesalahan dengan merilis referensinya ke antarmuka IControlChangeNotify sebelum memanggil UnregisterControlChangeCallback, objek IPart tidak pernah merilis referensinya ke antarmuka IControlChangeNotify . Misalnya, implementasi IControlChangeNotify yang dirancang dengan buruk mungkin memanggil UnregisterControlChangeCallback dari destruktor untuk objek IControlChangeNotify . Dalam hal ini, klien tidak akan memanggil UnregisterControlChangeCallback sampai objek IPart merilis referensinya ke antarmuka IControlChangeNotify , dan objek IPart tidak akan merilis referensinya ke antarmuka IControlChangeNotify sampai klien memanggil UnregisterControlChangeCallback. Untuk informasi selengkapnya tentang metode AddRef dan Rilis , lihat diskusi antarmuka IUnknown dalam dokumentasi Windows SDK.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header devicetopology.h

Lihat juga

Antarmuka IControlChangeNotify

IControlInterface::GetIID

Antarmuka IPart

IPart::UnregisterControlChangeCallback