IMMDevice::Activate 메서드(mmdeviceapi.h)
Activate 메서드는 지정된 인터페이스를 사용하여 COM 개체를 만듭니다.
통사론
HRESULT Activate(
[in] REFIID iid,
[in] DWORD dwClsCtx,
[in] PROPVARIANT *pActivationParams,
[out] void **ppInterface
);
매개 변수
[in] iid
인터페이스 식별자입니다. 이 매개 변수는 호출자가 활성화하도록 요청하는 인터페이스를 식별하는 GUID에 대한 참조입니다. 호출자는 이 인터페이스를 사용하여 COM 개체와 통신합니다. 이 매개 변수를 다음 인터페이스 식별자 중 하나로 설정합니다.
IID_IAudioClient
IID_IAudioEndpointVolume
IID_IAudioMeterInformation
IID_IAudioSessionManager
IID_IAudioSessionManager2
IID_IBaseFilter
IID_IDeviceTopology
IID_IDirectSound
IID_IDirectSound8
IID_IDirectSoundCapture
IID_IDirectSoundCapture8
IID_IMFTrustedOutput
IID_ISpatialAudioClient
IID_ISpatialAudioMetadataClient
자세한 내용은 비고를 참조하세요.
[in] dwClsCtx
새로 만든 개체를 관리하는 코드가 실행되는 실행 컨텍스트입니다. 호출자는 이 매개 변수를 하나 이상의 CLSCTX 열거형 값의 비트 OR 설정하여 컨텍스트를 제한할 수 있습니다. 또는 클라이언트는 CLSCTX_ALL 지정하여 컨텍스트 제한을 부과하지 않을 수 있습니다. CLSCTX
[in] pActivationParams
NULL
IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCapture또는 디바이스의 IDirectSoundCapture8 인터페이스를 활성화하는 경우 호출자는 스트림 초기화 정보를 포함하는 PROPVARIANT 구조체에 대한 포인터를 지정할 수 있습니다. 자세한 내용은 비고를 참조하세요.
[out] ppInterface
메서드가 매개 변수 iid지정된 인터페이스의 주소를 쓰는 포인터 변수에 대한 포인터입니다. 이 메서드를 통해 호출자는 인터페이스에 대한 계산된 참조를 가져옵니다. 호출자는 인터페이스의 Release 메서드를 호출하여 더 이상 필요하지 않은 경우 인터페이스를 해제할 책임이 있습니다.
반환 값
메서드가 성공하면 S_OK 반환합니다. 실패할 경우 가능한 반환 코드는 다음 표에 표시된 값을 포함하지만 제한되지는 않습니다.
반환 코드 | 묘사 |
---|---|
|
개체는 요청된 인터페이스 형식을 지원하지 않습니다. |
|
매개 변수 |
|
|
|
메모리 부족. |
|
사용자가 오디오 엔드포인트 디바이스 또는 엔드포인트 디바이스가 연결하는 어댑터 디바이스를 제거했습니다. |
발언
이 메서드는 iid 매개 변수로 지정된 인터페이스를 사용하여 COM 개체를 만듭니다. 이 메서드는 호출자가 CLSID를 매개 변수로 제공하지 않는다는 점을 제외하고 Windows CoCreateInstance 함수와 유사합니다. CoCreateInstance대한 자세한 내용은 Windows SDK 설명서를 참조하세요.
클라이언트는 특정 오디오 엔드포인트 디바이스에 대한 IMMDevice 인터페이스의 Activate 메서드를 호출하여 해당 디바이스의 인터페이스에 대한 계산된 참조를 가져올 수 있습니다. 이 메서드는 다음 인터페이스를 활성화할 수 있습니다.
-
IAudioClient
-
IAudioEndpointVolume
-
IAudioMeterInformation
- IAudioSessionManager
- IAudioSessionManager2
- IBaseFilter
- IDeviceTopology
- IDirectSound
- IDirectSound8
- IDirectSoundCapture
- IDirectSoundCapture8
- IMFTrustedOutput
const IID IID_IAudioClient __uuidof(IAudioCaptureClient)
__uuidof 운영자에 대한 자세한 내용은 Windows SDK 설명서를 참조하세요. IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCapture, IDirectSoundCapture8및 IMFTrustedOutput Windows SDK 설명서를 참조하세요.
IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCapture또는 IDirectSoundCapture8 인터페이스를 만드는 활성화 호출의 경우 호출자는 옵션으로 pActivationParamsNULL 값을 지정할 수 있습니다. 이 경우 pActivationParams 스트림 초기화 정보를 포함하는 PROPVARIANT 구조를 가리킵니다. 구조체의 vt 멤버를 VT_BLOB 설정합니다. 오디오 세션 GUID 및 스트림 초기화 플래그가 포함된 DIRECTX_AUDIO_ACTIVATION_PARAMS 구조를 가리키도록 blob.pBlobData 멤버를 설정합니다.
blob.cbSize 멤버를 sizeof(DIRECTX_AUDIO_ACTIVATION_PARAMS)로 설정합니다. 코드 예제는 DirectShow 애플리케이션대한
활성화 렌더링 엔드포인트 디바이스에서만 IDirectSound 또는 IDirectSound8 인터페이스를 활성화할 수 있습니다.
Windows 7에서 클라이언트는 IMMDevice::Activate 호출하고 IID_IMFTrustedOutput지정하여 OTA(출력 신뢰 기관) 개체를 만들고 개체의 IMFTrustedOutput 인터페이스에 대한 포인터를 검색할 수 있습니다. OTA는 Media Foundation의 PMP(보호된 미디어 경로) 내부 또는 외부에서 작동하고 Media Foundation 파이프라인 외부에 콘텐츠를 보낼 수 있습니다. 호출자가 PMP 외부에 있는 경우 OTA는 PMP에서 작동하지 않을 수 있으며 보호 설정은 덜 강력합니다. 오디오 및 예제 코드에 보호된 개체를 사용하는 방법에 대한 자세한 내용은 PUMA(Protected User Mode Audio)참조하세요.
보호된 개체 및 IMFTrustedOutput대한 일반적인 내용은 Media Foundation 설명서의 "보호된 미디어 경로"를 참조하세요.
-
스트림 렌더링
- 디바이스 토폴로지
- IKsControl 인터페이스를 사용하여 오디오 속성 액세스
-
레거시 오디오 애플리케이션 대한 오디오 이벤트
- 공간 오디오 개체를 사용하여 공간 사운드 렌더링
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | mmdeviceapi.h |
참고 항목
IAudioClient 인터페이스
IAudioEndpointVolume 인터페이스
IAudioMeterInformation 인터페이스
IMMDevice 인터페이스