다음을 통해 공유


IMMDeviceEnumerator::EnumAudioEndpoints 메서드(mmdeviceapi.h)

EnumAudioEndpoints 메서드는 지정된 조건을 충족하는 오디오 엔드포인트 디바이스 컬렉션을 생성합니다.

구문

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

매개 변수

[in] dataFlow

컬렉션의 엔드포인트 디바이스에 대한 데이터 흐름 방향입니다. 호출자는 이 매개 변수를 다음 EDataFlow 열거형 값 중 하나로 설정해야 합니다.

eRender

eCapture

eAll

호출자가 eAll을 지정하는 경우 메서드에는 컬렉션의 렌더링 및 캡처 엔드포인트가 모두 포함됩니다.

[in] dwStateMask

컬렉션에 포함할 엔드포인트의 상태 또는 상태입니다. 호출자는 다음 DEVICE_STATE_XXX 상수 중 하나 이상의 비트 OR로 이 매개 변수를 설정해야 합니다.

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

예를 들어 호출자가 dwStateMask 매개 변수를 DEVICE_STATE_ACTIVE | 로 설정하는 경우 DEVICE_STATE_UNPLUGGED 메서드는 잭에서 활성 또는 분리된 엔드포인트를 포함하지만 사용하지 않도록 설정되었거나 없는 오디오 어댑터에 있는 엔드포인트를 제외합니다. 상태에 관계없이 모든 엔드포인트를 포함하려면 dwStateMask = DEVICE_STATEMASK_ALL 설정합니다.

[out] ppDevices

메서드가 디바이스 컬렉션 개체의 IMMDeviceCollection 인터페이스 주소를 쓰는 포인터 변수에 대한 포인터입니다. 이 메서드를 통해 호출자는 인터페이스에 대해 계산된 참조를 가져옵니다. 호출자는 인터페이스의 Release 메서드를 호출하여 더 이상 필요하지 않은 경우 인터페이스를 해제 할 책임이 있습니다. EnumAudioEndpoints 호출이 실패하면 *ppDevicesNULL입니다.

반환 값

메서드가 성공하면 S_OK가 반환되고, 실패할 경우 가능한 반환 코드에는 다음 표에 표시된 값이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
E_POINTER
매개 변수 ppDevicesNULL입니다.
E_INVALIDARG
매개 변수 dataFlow 또는 dwStateMask 가 범위를 벗어났습니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

예를 들어 다음 호출은 현재 활성 상태이고 사용하지 않도록 설정되지 않은 모든 오디오 렌더링 엔드포인트 디바이스를 열거합니다.


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

앞의 코드 조각에서 변수 hrHRESULT 형식이고 , pDevEnumIMMDeviceEnumerator 인터페이스에 대한 포인터이고 , pEndpointsIMMDeviceCollection 인터페이스에 대한 포인터입니다.

예제

EnumAudioEndpoints 메서드를 호출하는 코드 예제는 디바이스 속성을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mmdeviceapi.h

참고 항목

IMMDeviceCollection 인터페이스

IMMDeviceEnumerator 인터페이스