Metodo IMMDeviceEnumerator::EnumAudioEndpoints (mmdeviceapi.h)
Il metodo EnumAudioEndpoints genera una raccolta di dispositivi endpoint audio che soddisfano i criteri specificati.
Sintassi
HRESULT EnumAudioEndpoints(
[in] EDataFlow dataFlow,
[in] DWORD dwStateMask,
[out] IMMDeviceCollection **ppDevices
);
Parametri
[in] dataFlow
Direzione del flusso di dati per i dispositivi endpoint nella raccolta. Il chiamante deve impostare questo parametro su uno dei valori di enumerazione EDataFlow seguenti:
eRender
eCapture
eAll
Se il chiamante specifica eAll, il metodo include sia gli endpoint di rendering che di acquisizione nella raccolta.
[in] dwStateMask
Stato o stati degli endpoint da includere nella raccolta. Il chiamante deve impostare questo parametro sull'OR bit per bit di una o più delle costanti DEVICE_STATE_XXX seguenti:
DEVICE_STATE_ACTIVE
DEVICE_STATE_DISABLED
DEVICE_STATE_NOTPRESENT
DEVICE_STATE_UNPLUGGED
Ad esempio, se il chiamante imposta il parametro dwStateMask su DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED, il metodo include endpoint attivi o scollegati dai loro jack, ma esclude gli endpoint presenti nelle schede audio disabilitate o non presenti. Per includere tutti gli endpoint, indipendentemente dallo stato, impostare dwStateMask = DEVICE_STATEMASK_ALL.
[out] ppDevices
Puntatore a una variabile puntatore in cui il metodo scrive l'indirizzo dell'interfaccia IMMDeviceCollection dell'oggetto raccolta dispositivi. Tramite questo metodo, il chiamante ottiene un riferimento conteggiato all'interfaccia. Il chiamante è responsabile del rilascio dell'interfaccia, quando non è più necessario, chiamando il metodo Release dell'interfaccia. Se la chiamata EnumAudioEndpoints ha esito negativo, *ppDevices è NULL.
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il parametro ppDevices è NULL. |
|
Il flusso di dati dei parametri o dwStateMask non è compreso nell'intervallo. |
|
Memoria insufficiente. |
Commenti
Ad esempio, la chiamata seguente enumera tutti i dispositivi endpoint di rendering audio attualmente attivi (presenti e non disabilitati):
hr = pDevEnum->EnumAudioEndpoints(
eRender, DEVICE_STATE_ACTIVE,
&pEndpoints);
Nel frammento di codice precedente la variabile hr è di tipo HRESULT, pDevEnum è un puntatore a un'interfaccia IMMDeviceEnumerator e pEndpoints è un puntatore a un'interfaccia IMMDeviceCollection .
Esempio
Per un esempio di codice che chiama il metodo EnumAudioEndpoints , vedere Proprietà del dispositivo.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | mmdeviceapi.h |