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 메서드 구현에서 IMMDeviceEnumerator::RegisterEndpointNotificationCallback 또는 IMMDeviceEnumerator::UnregisterEndpointNotificationCallback을 호출하지 않아야 합니다.
- 클라이언트는 이벤트 콜백 중에 MMDevice API 개체에 대한 최종 참조를 해제해서는 안 됩니다.
상속
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 |
참고 항목
IMMDeviceEnumerator::GetDevice
IMMDeviceEnumerator::RegisterEndpointNotificationCallback