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
E_POINTER
Il parametro ppDevices è NULL.
E_INVALIDARG
Il flusso di dati dei parametri o dwStateMask non è compreso nell'intervallo.
E_OUTOFMEMORY
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

Vedi anche

Interfaccia IMMDeviceCollection

Interfaccia IMMDeviceEnumerator