다음을 통해 공유


IAudioEndpointVolume::RegisterControlChangeNotify 메서드(endpointvolume.h)

RegisterControlChangeNotify 메서드는 클라이언트의 알림 콜백 인터페이스를 등록합니다.

구문

HRESULT RegisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

매개 변수

[in] pNotify

클라이언트가 알림 콜백에 등록하는 IAudioEndpointVolumeCallback 인터페이스에 대한 포인터입니다. RegisterControlChangeNotify 메서드가 성공하면 클라이언트의 IAudioEndpointVolumeCallback 인터페이스에서 AddRef 메서드를 호출합니다.

반환 값

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

반환 코드 설명
E_POINTER
pNotify 매개 변수는 NULL입니다.

설명

이 메서드는 엔드포인트의 볼륨 수준 또는 음소거 상태가 변경될 때 시스템에서 호출할 IAudioEndpointVolumeCallback 인터페이스를 등록합니다. 호출자는 IAudioEndpointVolumeCallback 인터페이스를 구현합니다.

알림이 더 이상 필요하지 않은 경우 클라이언트는 IAudioEndpointVolume::UnregisterControlChangeNotify 메서드를 호출하여 알림을 종료할 수 있습니다.

클라이언트가 IAudioEndpointVolumeCallback 인터페이스에 대한 최종 참조를 해제하기 전에 UnregisterControlChangeNotify 를 호출하여 인터페이스를 등록 취소해야 합니다. 그렇지 않으면 애플리케이션은 IAudioEndpointVolumeCallback 및 IAudioEndpointVolume 개체가 보유한 리소스 누수합니다. RegisterControlChangeNotify는 클라이언트의 IAudioEndpointVolumeCallback::AddRef 메서드를 호출하고 UnregisterControlChangeNotifyIAudioEndpointVolumeCallback::Release 메서드를 호출합니다. UnregisterControlChangeNotify를 호출하기 전에 클라이언트가 IAudioEndpointVolumeCallback 인터페이스에 대한 참조를 해제하여 오류가 발생하는 경우 IAudioEndpointVolume 개체는 IAudioEndpointVolumeCallback 인터페이스에 대한 참조를 해제하지 않습니다. 예를 들어 잘못 디자인된 IAudioEndpointVolumeCallback 구현은 IAudioEndpointVolumeCallback 개체의 소멸자에서 UnregisterControlChangeNotify를 호출할 수 있습니다. 이 경우 IAudioEndpointVolume 개체가 IAudioEndpointVolumeCallback 인터페이스에 대한 참조를 해제할 때까지 클라이언트는 UnregisterControlChangeNotify를 호출하지 않으며, IAudioEndpointVolume 개체는 클라이언트가 UnregisterControlChangeNotify를 호출할 때까지 IAudioEndpointVolumeCallback 인터페이스에 대한 참조를 해제하지 않습니다. AddRefRelease 메서드에 대한 자세한 내용은 Windows SDK 설명서의 IUnknown 인터페이스에 대한 설명을 참조하세요.

또한 클라이언트는 IAudioEndpointVolume 개체에 대한 최종 참조를 해제하기 전에 UnregisterControlChangeNotify를 호출해야 합니다. 그렇지 않으면 개체가 등록 정보를 보유하기 위해 할당한 스토리지를 누수합니다. 알림 인터페이스를 등록한 후 클라이언트는 IAudioEndpointVolume 개체가 존재하는 한 알림을 계속 받습니다.

RegisterControlChangeNotify를 호출하는 코드 예제는 엔드포인트 볼륨 컨트롤을 참조하세요.

요구 사항

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

추가 정보

IAudioEndpointVolume 인터페이스

IAudioEndpointVolume::UnregisterControlChangeNotify

IAudioEndpointVolumeCallback 인터페이스