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


Метод IVideoWindow::p ut_FullScreenMode (control.h)

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

Метод put_FullScreenMode включает или отключает отрисовку видео в полноэкранном режиме.

Синтаксис

HRESULT put_FullScreenMode(
  [in] long FullScreenMode
);

Параметры

[in] FullScreenMode

Логическое значение, указывающее, следует ли включать или отключать полноэкранный режим. Необходимо установить одно из следующих значений.

Значение Описание
OATRUE Переключитесь в полноэкранный режим.
OAFALSE Отключите полноэкранный режим. (по умолчанию).

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

Возможные возвращаемые значения:

Код возврата Описание
E_NOTIMPL
Фильтр не поддерживает полноэкранный режим.
S_FALSE
Уже в запрошенном режиме.
S_OK
Успешно.
VFW_E_NO_FULLSCREEN
Не удалось найти фильтры, поддерживающие полноэкранный режим.

Комментарии

В зависимости от от отрисовщика видео переключение в полноэкранный режим может быть невидимым, пока приложение не запустит или не приостановит граф. В полноэкранном режиме, если пользователь переключается с приложения (например, с помощью КЛАВИШ ALT+TAB), диспетчер фильтров Graph отправляет событие EC_FULLSCREEN_LOST .

В следующих примечаниях описывается, как диспетчер фильтров Graph реализует полноэкранный режим. Разработчики приложений, вероятно, могут игнорировать эти сведения, но это может быть полезно при написании пользовательского отрисовщика видео.

Когда приложение переключается в полноэкранный режим, диспетчер фильтров графов ищет отрисовщик видео, который будет работать наиболее эффективно. В порядке предпочтения это:

  1. Любой отрисовщик видео в графе фильтров, который изначально поддерживает полноэкранный режим.
  2. Любой отрисовщик видео в графе фильтра, который может растянуть видео в полноэкранный режим без значительных затрат на производительность.
  3. Фильтр полноэкранного отрисовщика .
  4. Любой отрисовщик видео в графе фильтра, поддерживающий IVideoWindow.
Для первого варианта диспетчер фильтров графа вызывает IVideoWindow::get_FullScreenMode для каждого отрисовщика видео в графе. Большинство отрисовщиков возвращают E_NOTIMPL, указывая, что фильтр изначально не поддерживает полноэкранный режим. Если какой-либо отрисовщик возвращает значение, не равное E_NOTIMPL, диспетчер фильтров графов использует это значение.

Для второго варианта диспетчер фильтров графа вызывает IVideoWindow::GetMaxIdealImageSize и GetMinIdealImageSize для каждого отрисовщика видео в графе. Если размер дисплея находится в пределах указанного диапазона фильтра, это означает, что фильтр может растянуть видео без значительных затрат на производительность.

Примечание Если граф остановлен, диспетчер фильтров графов приостанавливает каждый отрисовщик перед вызовом этих методов. Это дает отрисовщику возможность инициализировать все необходимые ресурсы, так как многие отрисовщики не могут определить эти значения, пока они остановлены.
 
За исключением старых версий оборудования, второй вариант, как правило, будет успешным. Третий вариант — использовать фильтр полноэкранного отрисовщика, добавив его в граф при необходимости. Четвертый вариант — просто найти первый отрисовщик в графе, который поддерживает IVideoWindow, и растянуть видео независимо от производительности.

Требования

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

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

Коды ошибок и успешности

Интерфейс IVideoWindow

IVideoWindow::get_FullScreenMode