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

GetDevice 메서드는 엔드포인트 ID 문자열로 식별되는 오디오 엔드포인트 디바이스를 검색합니다.

구문

HRESULT GetDevice(
  [in]  LPCWSTR   pwstrId,
  [out] IMMDevice **ppDevice
);

매개 변수

[in] pwstrId

엔드포인트 ID를 포함하는 문자열에 대한 포인터입니다. 호출자는 일반적으로 IMMDevice::GetId 메서드 또는 IMMNotificationClient 인터페이스의 메서드 중 하나에서 이 문자열을 가져옵니다.

[out] ppDevice

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

반환 값

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

반환 코드 설명
E_POINTER
매개 변수 pwstrId 또는 ppDeviceNULL입니다.
E_NOTFOUND
디바이스 ID는 이 시스템에 있는 오디오 디바이스를 식별하지 않습니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

두 프로그램이 서로 다른 두 프로세스에서 실행 중이고 둘 다 동일한 오디오 엔드포인트 디바이스에 액세스해야 하는 경우 한 프로그램은 단순히 디바이스의 IMMDevice 인터페이스를 다른 프로그램에 전달할 수 없습니다. 그러나 프로그램은 다음 단계에 따라 동일한 디바이스에 액세스할 수 있습니다.

  1. 첫 번째 프로그램은 첫 번째 프로세스에서 IMMDevice::GetId 메서드를 호출하여 디바이스를 식별하는 엔드포인트 ID 문자열을 가져옵니다.
  2. 첫 번째 프로그램은 프로세스 경계를 넘어 두 번째 프로그램에 엔드포인트 ID 문자열을 전달합니다.
  3. 두 번째 프로세스에서 디바이스의 IMMDevice 인터페이스에 대한 참조를 얻기 위해 두 번째 프로그램은 엔드포인트 ID 문자열을 사용하여 GetDevice 를 호출합니다.
GetDevice 메서드에 대한 자세한 내용은 다음 topics 참조하세요. GetDevice 메서드를 사용하는 코드 예제는 다음 topics 참조하세요.

요구 사항

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

추가 정보

IMMDevice 인터페이스

IMMDevice::GetId

IMMDeviceEnumerator 인터페이스

IMMNotificationClient 인터페이스