다음을 통해 공유


IPerChannelDbLevel::SetLevelAllChannels 메서드(devicetopology.h)

SetLevelAllChannels 메서드는 오디오 스트림에 있는 모든 채널의 볼륨 수준을 데시벨 단위로 설정합니다.

구문

HRESULT SetLevelAllChannels(
  [in] float [] aLevelsDB,
  [in] ULONG    cChannels,
  [in] LPCGUID  pguidEventContext
);

매개 변수

[in] aLevelsDB

볼륨 수준 배열에 대한 포인터입니다. 이 매개 변수는 메서드가 모든 채널에 대해 새 볼륨 수준(데시벨)을 작성하는 호출자가 할당한 float 배열을 가리킵니다. 메서드는 인덱스가 채널 번호와 일치하는 배열 요소에 특정 채널의 수준을 씁니다. 오디오 스트림에 n 채널이 포함된 경우 채널 번호는 0에서 n– 1로 지정됩니다. 스트림의 채널 수를 얻으려면 IPerChannelDbLevel::GetChannelCount 메서드를 호출합니다.

[in] cChannels

aLevelsDB 배열의 요소 수입니다. 이 매개 변수가 오디오 스트림의 채널 수와 일치하지 않으면 aLevelsDB 배열을 수정하지 않고 메서드가 실패합니다.

[in] pguidEventContext

IControlChangeNotify::OnNotify 메서드의 컨텍스트 값입니다. 이 매개 변수는 이벤트 컨텍스트 GUID를 가리킵니다. SetLevelAllChannels 호출이 수준 컨트롤의 상태를 변경하면 해당 컨트롤에 IControlChangeNotify 인터페이스를 등록한 모든 클라이언트가 알림을 받습니다. OnNotify 메서드 구현에서 클라이언트는 이벤트 컨텍스트 GUID를 검사하여 해당 GUID 또는 다른 클라이언트가 제어 변경 이벤트의 원본인지 여부를 검색할 수 있습니다. 호출자가 이 매개 변수에 대한 NULL 포인터를 제공하는 경우 클라이언트의 알림 메서드는 NULL 컨텍스트 포인터를 받습니다.

반환 값

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

반환 코드 설명
E_INVALIDARG
매개 변수 cChannels 는 채널 수와 같지 않습니다.
E_POINTER
포인터 aLevelsDBNULL입니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

모든 채널에 대해 지정된 수준 값이 IPerChannelDbLevel::GetLevelRange 메서드가 해당 채널에 대해 보고하는 범위를 벗어나면 SetLevelAllChannels 호출은 값을 지원되는 범위로 고정하고 성공적으로 완료합니다. IPerChannelDbLevel::GetLevel 메서드에 대한 후속 호출은 해당 채널에 사용되는 실제 값을 검색합니다.

요구 사항

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

추가 정보

IPerChannelDbLevel 인터페이스

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange