Share via


IAudioClient::SetEventHandle 메서드(audioclient.h)

SetEventHandle 메서드는 클라이언트에서 오디오 버퍼를 처리할 준비가 되면 시스템에서 신호하는 이벤트 핸들을 설정합니다.

구문

HRESULT SetEventHandle(
  [in] HANDLE eventHandle
);

매개 변수

[in] eventHandle

이벤트 핸들입니다.

반환 값

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

반환 코드 설명
E_INVALIDARG
매개 변수 eventHandleNULL 이거나 잘못된 핸들입니다.
AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED
이벤트 기반 버퍼링을 위해 오디오 스트림이 초기화되지 않았습니다.
AUDCLNT_E_NOT_INITIALIZED
오디오 스트림이 성공적으로 초기화되지 않았습니다.
AUDCLNT_E_DEVICE_INVALIDATED
오디오 엔드포인트 디바이스가 분리되었거나 오디오 하드웨어 또는 관련 하드웨어 리소스가 다시 구성, 비활성화, 제거 또는 사용할 수 없게 되었습니다.
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 오디오 서비스가 실행되고 있지 않습니다.

설명

이 메서드를 사용하려면 IAudioClient 인터페이스를 미리 초기화해야 합니다. 이 메서드에 대한 모든 호출은 클라이언트가 IAudioClient::Initialize 메서드를 성공적으로 호출하여 오디오 스트림을 초기화할 때까지 오류 AUDCLNT_E_NOT_INITIALIZED 실패합니다.

스트림 초기화 중에 클라이언트는 옵션으로 이벤트 기반 버퍼링을 사용하도록 설정할 수 있습니다. 이를 위해 클라이언트는 AUDCLNT_STREAMFLAGS_EVENTCALLBACK 플래그 집합을 사용하여 IAudioClient::Initialize 메서드를 호출합니다. 이벤트 기반 버퍼링을 사용하도록 설정한 후 IAudioClient::Start 메서드를 호출하여 스트림을 시작하기 전에 클라이언트 는 SetEventHandle 을 호출하여 클라이언트에서 버퍼를 처리할 준비가 될 때마다 시스템이 신호를 보내도록 이벤트 핸들을 등록해야 합니다.

이벤트 핸들은 클라이언트가 Start 메서드를 호출할 때 서명되지 않은 상태여야 합니다.

클라이언트가 스트림의 이벤트 기반 버퍼링을 사용하도록 설정했지만 클라이언트가 SetEventHandle을 먼저 호출하지 않고 해당 스트림에 대해 Start 메서드를 호출하는 경우 시작 호출이 실패하고 오류 코드가 반환됩니다.

클라이언트가 스트림의 이벤트 기반 버퍼링을 사용하도록 설정하지 않지만 SetEventHandle을 호출하여 스트림에 대한 이벤트 핸들을 설정하려고 하면 호출이 실패하고 오류 코드가 반환됩니다.

SetEventHandle 메서드를 호출하는 코드 예제는 단독 모드 스트림을 참조하세요.

요구 사항

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

추가 정보

IAudioClient 인터페이스

IAudioClient::Initialize

IAudioClient::Start