Bagikan melalui


Metode IPerChannelDbLevel::SetLevelAllChannels (devicetopology.h)

Metode SetLevelAllChannels mengatur tingkat volume, dalam desibel, dari semua saluran dalam aliran audio.

Sintaks

HRESULT SetLevelAllChannels(
  [in] float [] aLevelsDB,
  [in] ULONG    cChannels,
  [in] LPCGUID  pguidEventContext
);

Parameter

[in] aLevelsDB

Penunjuk ke array tingkat volume. Parameter ini menunjuk ke array float yang dialokasikan penelepon tempat metode menulis tingkat volume baru, dalam desibel, untuk semua saluran. Metode ini menulis tingkat untuk saluran tertentu ke dalam elemen array yang indeksnya cocok dengan nomor saluran. Jika aliran audio berisi saluran n , saluran diberi nomor 0 hingga n– 1. Untuk mendapatkan jumlah saluran dalam aliran, panggil metode IPerChannelDbLevel::GetChannelCount .

[in] cChannels

Jumlah elemen dalam array aLevelsDB . Jika parameter ini tidak cocok dengan jumlah saluran dalam aliran audio, metode gagal tanpa memodifikasi array aLevelsDB .

[in] pguidEventContext

Nilai konteks untuk metode IControlChangeNotify::OnNotify . Parameter ini menunjuk ke GUID konteks peristiwa. Jika panggilan SetLevelAllChannels mengubah status kontrol tingkat, semua klien yang telah mendaftarkan antarmuka IControlChangeNotify dengan kontrol tersebut menerima pemberitahuan. Dalam implementasi metode OnNotify , klien dapat memeriksa GUID konteks peristiwa untuk menemukan apakah itu atau klien lain adalah sumber peristiwa perubahan kontrol. Jika penelepon menyediakan pointer NULL untuk parameter ini, metode pemberitahuan klien menerima penunjuk konteks NULL .

Mengembalikan nilai

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 cChannels tidak sama dengan jumlah saluran.
E_POINTER
Pointer aLevelsDB adalah NULL.
E_OUTOFMEMORY
Kehabisan memori.

Keterangan

Jika nilai tingkat yang ditentukan untuk saluran apa pun berada di luar rentang yang dilaporkan metode IPerChannelDbLevel::GetLevelRange untuk saluran tersebut, SetLevelAllChannels memanggil klem nilai ke rentang yang didukung dan berhasil diselesaikan. Panggilan berikutnya ke metode IPerChannelDbLevel::GetLevel mengambil nilai aktual yang digunakan untuk saluran tersebut.

Persyaratan

   
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 IPerChannelDbLevel

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange