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


Интерфейс IOverlayNotify (strmif.h)

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

Интерфейс IOverlayNotify предоставляет фильтр вышестоящий, например декодер, с уведомлениями об изменениях в окне отрисовки. Сюда входят уведомления об изменениях палитры, цветового ключа и положения окна, а также об изменениях видимой области (обрезки).

Большинство программных декодеров видео позволяют видео отрисовщику рисовать распакованные изображения, которые они создают, передавая примеры мультимедиа в интерфейс IMemInputPin на входном контакте отрисовщика.

Однако некоторые фильтры декодирования видео (обычно аппаратные декомпрессионные платы) обрабатывают рисование самих изображений, возможно, с помощью соединителя VGA. Эти фильтры не должны использовать IMemInputPin, но вместо этого могут использовать интерфейс IOverlay , предоставляемый входным контактом отрисовщика. С помощью этого интерфейса декодер может получать уведомления при изменении положения окна или размера окна, а также при изменении текущей системной палитры для установки и изменения цветовых ключей и палитр.

Декодеры, которые выполняют собственные рисования, должны реализовывать IOverlayNotify интерфейсы IOverlayNotify2 и . Отрисовщик использует этот интерфейс для уведомления декодера при каждом изменении размера или положения окна, изменении системной палитры или использовании другого ключа цвета. Декодер должен вызвать метод IOverlay::Advise во входном контакте отрисовщика, чтобы настроить обратный вызов. После установки обратного вызова отрисовщик вызывает методы декодера IOverlayNotify при возникновении соответствующих событий. Чтобы отменить обратный вызов, используйте метод IOverlay::Unadvise .

Отрисовщик видео является единственным фильтром, который вызывает методы в этом интерфейсе. Это выполняется автоматически с помощью отрисовщика видео по умолчанию. Если вы пишете замещающий отрисовщик видео, вам потребуется использовать методы в этом интерфейсе, если фильтр поддерживает IOverlay и этот интерфейс передается фильтру в вызове IOverlay::Advise .

Наследование

Интерфейс IOverlayNotify наследуется от интерфейса IUnknown . IOverlayNotify также имеет следующие типы элементов:

Методы

Интерфейс IOverlayNotify содержит следующие методы.

 
IOverlayNotify::OnClipChange

Метод OnClipChange предоставляет уведомление об изменении видимой области окна. Перед возвращением из этого метода необходимо обновить любое оборудование наложения, чтобы отразить изменение видимой области.
IOverlayNotify::OnColorKeyChange

Метод OnColorKeyChange предоставляет уведомление об изменении цветового ключа окна.
IOverlayNotify::OnPaletteChange

Метод OnPaletteChange предоставляет уведомление об изменении палитры окна.
IOverlayNotify::OnPositionChange

Метод OnPositionChange предоставляет уведомление об изменении позиции.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)