Share via


IMMNotificationClient 인터페이스(mmdeviceapi.h)

IMMNotificationClient 인터페이스는 오디오 엔드포인트 디바이스가 추가 또는 제거되거나, 엔드포인트 디바이스의 상태 또는 속성이 변경되거나, 엔드포인트 디바이스에 할당된 기본 역할이 변경될 때 알림을 제공합니다. MMDevice API 시스템 구성 요소에 의해 구현되는 이 섹션의 다른 인터페이스와 달리 MMDevice API 클라이언트는 IMMNotificationClient 인터페이스를 구현합니다. 알림을 수신하기 위해 클라이언트는 IMMDeviceEnumerator::RegisterEndpointNotificationCallback 메서드에 매개 변수로 instance IMMNotificationClient 인터페이스에 대한 포인터를 전달합니다.

IMMNotificationClient 인터페이스를 등록한 후 클라이언트는 인터페이스의 메서드를 통해 콜백 형식으로 이벤트 알림을 받습니다.

IMMNotificationClient 인터페이스의 각 메서드는 해당 입력 매개 변수 중 하나로 알림의 주체인 오디오 엔드포인트 디바이스를 식별하는 엔드포인트 ID 문자열을 받습니다. 문자열은 시스템의 다른 모든 오디오 엔드포인트 디바이스와 관련하여 디바이스를 고유하게 식별합니다. IMMNotificationClient 인터페이스 구현의 메서드는 이 문자열을 불투명으로 처리해야 합니다. 즉, 어떤 메서드도 디바이스에 대한 정보를 얻기 위해 문자열의 내용을 구문 분석하려고 시도해서는 안 됩니다. 그 이유는 문자열 형식이 정의되지 않았고 MMDevice API 시스템 모듈의 한 구현에서 다음 구현으로 변경될 수 있기 때문입니다.

클라이언트는 다음 두 가지 방법으로 IMMNotificationClient 메서드 호출에서 입력 매개 변수로 수신하는 엔드포인트 ID 문자열을 사용할 수 있습니다.

  • 클라이언트는 엔드포인트 ID 문자열이 식별하는 디바이스의 instance 만들 수 있습니다. 클라이언트는 IMMDeviceEnumerator::GetDevice 메서드를 호출하고 엔드포인트 ID 문자열을 입력 매개 변수로 제공하여 이 작업을 수행합니다.
  • 클라이언트는 엔드포인트 ID 문자열을 기존 디바이스 instance 엔드포인트 ID 문자열과 비교할 수 있습니다. 두 번째 엔드포인트 ID 문자열을 가져오기 위해 클라이언트는 디바이스 instance IMMDevice::GetId 메서드를 호출합니다. 두 문자열이 일치하면 동일한 디바이스를 식별합니다.
IMMNotificationClient 인터페이스를 구현할 때 클라이언트는 교착 상태 및 정의되지 않은 동작을 방지하기 위해 다음 규칙을 준수해야 합니다. IMMNotificationClient 인터페이스를 구현하는 코드 예제는 디바이스 이벤트를 참조하세요.

상속

IMMNotificationClient 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IMMNotificationClient 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IMMNotificationClient 인터페이스에는 이러한 메서드가 있습니다.

 
IMMNotificationClient::OnDefaultDeviceChanged

OnDefaultDeviceChanged 메서드는 클라이언트에 특정 디바이스 역할에 대한 기본 오디오 엔드포인트 디바이스가 변경되었음을 알 수 있습니다.
IMMNotificationClient::OnDeviceAdded

OnDeviceAdded 메서드는 새 오디오 엔드포인트 디바이스가 추가되었음을 나타냅니다.
IMMNotificationClient::OnDeviceRemoved

OnDeviceRemoved 메서드는 오디오 엔드포인트 디바이스가 제거되었음을 나타냅니다.
IMMNotificationClient::OnDeviceStateChanged

OnDeviceStateChanged 메서드는 오디오 엔드포인트 디바이스의 상태가 변경되었음을 나타냅니다.
IMMNotificationClient::OnPropertyValueChanged

OnPropertyValueChanged 메서드는 오디오 엔드포인트 디바이스에 속하는 속성의 값이 변경되었음을 나타냅니다.

요구 사항

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

참고 항목

핵심 오디오 인터페이스

IMMDevice::GetId

IMMDeviceEnumerator::GetDevice

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

MMDevice API