Метод 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
Контекст выполнения, в котором будет выполняться код, который управляет только что созданным объектом. Вызывающий объект может ограничить контекст, задав этот параметр битовой
[in] pActivationParams
Установите значение NULL для активации IAudioEndpointVolume, IAudioMeterInformation, IAudioSessionManagerили интерфейса IDeviceTopology на звуковом устройстве конечной точки. Начиная с Сборки Windows 10 20348 вызывающие абоненты, активирующие IAudioClient, могут задать pActivationParams указатель на AUDIOCLIENT_ACTIVATION_PARAMS для настройки звукового клиента в режиме обратного цикла с фильтром процесса.
При активации IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCaptureили интерфейса IDirectSoundCapture8 на устройстве, Вызывающий объект может указать указатель на структуру PROPVARIANT, содержащую сведения о инициализации потока. Дополнительные сведения см. в разделе "Примечания".
[out] ppInterface
Указатель на переменную указателя, в которую метод записывает адрес интерфейса, указанный параметром iid. С помощью этого метода вызывающий объект получает подсчитываемую ссылку на интерфейс. Вызывающий объект отвечает за освобождение интерфейса, если он больше не нужен, вызывая метод release интерфейса. Если вызов активации завершается ошибкой, *ppInterface равно NULL.
Возвращаемое значение
Если метод выполнен успешно, он возвращает S_OK. В случае сбоя возможные коды возврата включаются, но не ограничиваются значениями, приведенными в следующей таблице.
Возвращаемый код | Описание |
---|---|
|
Объект не поддерживает запрошенный тип интерфейса. |
|
Параметр ppInterfaceNULL. |
|
Параметр |
|
Вне памяти. |
|
Пользователь удалил устройство аудио конечной точки или устройство адаптера, к которому подключается устройство конечной точки. |
Замечания
Этот метод создает COM-объект с интерфейсом, заданным параметром iid. Метод аналогичен функции CoCreateInst ance Windows
Клиент может вызвать метод Активировать интерфейса IMMDevice для конкретного звукового устройства, чтобы получить подсчитаную ссылку на интерфейс на этом устройстве. Метод может активировать следующие интерфейсы:
- IAudioClient
- IAudioEndpointVolume
- IAudioMeterInformation
- IAudioSessionManager
- IAudioSessionManager2
- IBaseFilter
- IDeviceTopology
- IDirectSound
- IDirectSound8
- IDirectSoundCapture
- IDirectSoundCapture8
- МВФTrustedOutput
const IID IID_IAudioClient __uuidof(IAudioCaptureClient)
Сведения о операторе __uuidof см. в документации по пакету SDK для Windows. Сведения о IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCapture, IDirectSoundCapture8и IMFTrustedOutput см. в документации по пакету SDK для Windows.
Параметр
Для вызова активации для создания IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCaptureили интерфейса IDirectSoundCapture8, Вызывающий объект может указывать значение, отличное отNULL для pActivationParams. В этом случае pActivationParams указывает на структуру PROPVARIANT, содержащую сведения о потоковой инициализации. Задайте для элемента VT_BLOB
IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCaptureили экземпляр интерфейса IDirectSoundCapture8, созданный методом активации инкапсулирует поток на устройстве аудио конечной точки. Во время вызова активации модуль системы DirectSound создает поток путем вызова метода IAudioClient::Initialize. Если pActivationParams неNULL, DirectSound предоставляет флаги GUID сеанса аудио и потоковой инициализации из структуры DIRECTX_AUDIO_ACTIVATION_PARAMS в качестве входных параметров вызову инициализации. Если pActivationParamsNULL, DirectSound задает параметры Initialize метода AudioSessionGuid и StreamFlags значения по умолчанию, NULL и 0. Эти значения указывают методу назначить поток сеансу для конкретного процесса, который определяется значением GUID сеанса GUID_NULL.
Активация может активировать IDirectSound или интерфейс IDirectSound8 только на устройстве конечной точки отрисовки. Он может активировать интерфейс IDirectSoundCapture или интерфейс IDirectSoundCapture8 только на устройстве конечной точки записи. Вызов активировать для активации интерфейса IDirectSound или интерфейса IDirectSoundCapture8 на устройстве записи или IDirectSoundCapture или интерфейсе IDirectSoundCapture8 на устройстве отрисовки завершается ошибкой и возвращает код ошибки E_NOINTERFACE.
В Windows 7 клиент может вызывать IMMDevice::Активировать и указать объект IID_IMFTrustedOutput, чтобы создать объект центра доверия выходных данных (OTA) и получить указатель на интерфейс МВФTrustedOutput объекта. OTA могут работать внутри или за пределами защищенного пути мультимедиа (PMP) Media Foundation и отправлять содержимое за пределы конвейера Media Foundation. Если вызывающий объект находится за пределами PMP, то OTA может не работать в PMP, а параметры защиты менее надежны. Сведения об использовании защищенных объектов для аудио и примера кода см. в защищенного пользовательского режима аудио (PUMA).
Общие сведения о защищенных объектах и МВФTrustedOutputсм. в разделе "Защищенный путь к мультимедиа" в документации по Media Foundation.
- отрисовка потока
-
топологий устройств
- использование интерфейса IKsControl для доступа к свойствам звука
- звуковые события для устаревших звуковых приложений
- отрисовки пространственного звука с помощью пространственных звуковых объектов
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | mmdeviceapi.h |
См. также
интерфейс IAudioEndpointVolume
интерфейс IAudioMeterInformation
интерфейс IAudioSessionManager
интерфейс IDeviceTopology
интерфейс IMMDevice