Поделиться через


Метод ICodecAPI::RegisterForEvent (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод RegisterForEvent регистрирует приложение для получения событий от кодека.

Синтаксис

HRESULT RegisterForEvent(
  [in]  const GUID *Api,
  [out] LONG_PTR   userData
);

Параметры

[in] Api

Указатель на GUID, указывающий событие. Существует три категории событий:

Значение Значение
CODECAPI_CHANGELISTS
Кодек уведомляет приложение при изменении свойств кодека. Данные события — это список идентификаторов GUID для измененных свойств.
Один из идентификаторов GUID свойства, определенных в codecapi.h. (См . раздел Свойства API кодека.)
Кодек уведомляет приложение при изменении указанного свойства. Как правило, кодек поддерживает этот тип уведомления для ограниченного набора свойств, если таковые имеются.
Идентификатор GUID собственного события, определенный кодеком.
не зависит от реализации.

[out] userData

Указатель на данные, определяемые вызывающим абонентом. Приложение получает этот указатель в параметре события lParam1 .

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_NOTIMPL
Не реализован. Кодек не поддерживает уведомление о событиях или guid события, указанный в параметре API .

Комментарии

Приложение получает уведомление о событии EC_CODECAPI_EVENT всякий раз, когда кодек кодировщика отправляет событие. Чтобы получить событие, использует интерфейс IMediaEventEx .

Параметр lParam2 события является указателем на структуру CodecAPIEventData . За этой структурой могут следовать дополнительные данные в зависимости от GUID события. Размер этих данных определяется элементом dataLength .

GUID Данные о событиях
CODECAPI_CHANGELISTS Массив GUID. Каждый GUID указывает свойство кодека, текущее значение или допустимый диапазон которого были изменены. Размер массива — dataLength / sizeof(GUID).
ИДЕНТИФИКАТОР GUID свойства, определенный в codecapi.h. Нет.
Идентификатор GUID собственного события. не зависит от реализации.
 

Если кодек не поддерживает указанное событие, метод возвращает E_NOTIMPL. Кодек может поддерживать другие события.

Чтобы отключить уведомления для события, вызовите ICodecAPI::UnregisterForEvent.

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Справочник по API кодека

API кодировщика

ICodecAPI