Metode IMMDeviceEnumerator::EnumAudioEndpoints (mmdeviceapi.h)

Metode EnumAudioEndpoints menghasilkan kumpulan perangkat titik akhir audio yang memenuhi kriteria yang ditentukan.

Sintaks

HRESULT EnumAudioEndpoints(
  [in]  EDataFlow           dataFlow,
  [in]  DWORD               dwStateMask,
  [out] IMMDeviceCollection **ppDevices
);

Parameter

[in] dataFlow

Arah aliran data untuk perangkat titik akhir dalam koleksi. Pemanggil harus mengatur parameter ini ke salah satu nilai enumerasi EDataFlow berikut:

eRender

eCapture

eAll

Jika pemanggil menentukan eAll, metode ini mencakup titik akhir penyajian dan pengambilan dalam koleksi.

[in] dwStateMask

Status atau status titik akhir yang akan disertakan dalam koleksi. Penelepon harus mengatur parameter ini ke bitwise ATAU dari satu atau beberapa konstanta DEVICE_STATE_XXX berikut:

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

Misalnya, jika penelepon mengatur parameter dwStateMask ke DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED, metode ini mencakup titik akhir yang aktif atau dilepas dari jack mereka, tetapi mengecualikan titik akhir yang ada pada adaptor audio yang telah dinonaktifkan atau tidak ada. Untuk menyertakan semua titik akhir, terlepas dari statusnya, atur dwStateMask = DEVICE_STATEMASK_ALL.

[out] ppDevices

Penunjuk ke variabel pointer tempat metode menulis alamat antarmuka IMMDeviceCollection dari objek pengumpulan perangkat. Melalui metode ini, penelepon mendapatkan referensi yang dihitung ke antarmuka. Pemanggil bertanggung jawab untuk merilis antarmuka, ketika tidak lagi diperlukan, dengan memanggil metode Rilis antarmuka. Jika panggilan EnumAudioEndpoints gagal, *ppDevices adalah 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_POINTER
Parameter ppDevices adalah NULL.
E_INVALIDARG
Parameter dataFlow atau dwStateMask berada di luar rentang.
E_OUTOFMEMORY
Kehabisan memori.

Keterangan

Misalnya, panggilan berikut menghitung semua perangkat titik akhir penyajian audio yang saat ini aktif (ada dan tidak dinonaktifkan):


  hr = pDevEnum->EnumAudioEndpoints(
                   eRender, DEVICE_STATE_ACTIVE,
                   &pEndpoints);

Dalam fragmen kode sebelumnya, hr variabel berjenis HRESULT, pDevEnum adalah penunjuk ke antarmuka IMMDeviceEnumerator , dan pEndpoints adalah penunjuk ke antarmuka IMMDeviceCollection .

Contoh

Untuk contoh kode yang memanggil metode EnumAudioEndpoints , lihat Properti Perangkat.

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

Antarmuka IMMDeviceCollection

Antarmuka IMMDeviceEnumerator