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


Интерфейс IVideoWindow (control.h)

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

Интерфейс IVideoWindow задает свойства в окне видео. Приложения могут использовать его для задания владельца окна, положения и размеров окна, а также других свойств.

Примечание Интерфейс IVMRWindowlessControl или IVMRWindowlessControl9 теперь предпочтительнее.IVideoWindow Дополнительные сведения см. в разделе Использование режима без окон.
 
Фильтр отрисовщика видео и диспетчер graph filter предоставляют этот интерфейс. Диспетчер графов фильтров перенаправит все вызовы методов в отрисовщик видео. Кроме того, он пересылает определенные сообщения окна, которые должен получать отрисовщик видео, например WM_DISPLAYCHANGE. Так как окно видео обычно является дочерним по отношению к окну приложения, фильтр не будет получать эти сообщения. Поэтому для их пересылки используется диспетчер фильтров графов.

В большинстве случаев приложение должно запрашивать диспетчер Фильтров Graph для этого интерфейса, а не вызывать фильтр напрямую из-за описанной проблемы с сообщениями. Однако если в графе фильтра есть несколько отрисовщика видео, диспетчер графа фильтров взаимодействует только с одним из них, выбранным произвольно. Таким образом, если приложение использует несколько видеоокна, используйте IVideoWindow интерфейс непосредственно в фильтрах. В этом случае сообщения окна необходимо пересылать в каждый экземпляр Отрисовщика видео с помощью метода IVideoWindow::NotifyOwnerMessage .

Чтобы предотвратить мерцание окна видео во время перерисовки, переопределите обработку по умолчанию для WM_ERASEBKGND сообщения и не стирайте окно. (Для приложений MFC переопределите CWnd::OnEraseBkgnd пустым обработчиком.)

Свойства, заданные в отрисовщике видео, сохраняются между последовательными подключениями и отключениями.

Так как этот интерфейс совместим с автоматизацией, все логические значения определяются как OAFALSE (0) и OATRUE (–1).

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

Разработчики фильтров: Для реализации этого интерфейса можно использовать класс CBaseVideoWindow .

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

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

Методы

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

 
IVideoWindow::get_AutoShow

Метод get_AutoShow запрашивает, отображает ли отрисовщик видео автоматически окно видео при получении видеоданных.
IVideoWindow::get_BackgroundPalette

Метод get_BackgroundPalette запрашивает, реализует ли окно видео свою палитру в фоновом режиме.
IVideoWindow::get_BorderColor

Метод get_BorderColor извлекает цвет, который отображается по краям прямоугольника назначения.
IVideoWindow::get_Caption

Метод get_Caption извлекает подпись окна видео.
IVideoWindow::get_FullScreenMode

Метод get_FullScreenMode запрашивает, находится ли отрисовщик видео в полноэкранном режиме.
IVideoWindow::get_Height

Метод get_Height извлекает высоту окна видео.
IVideoWindow::get_Left

Метод get_Left извлекает координату оси X окна видео.
IVideoWindow::get_MessageDrain

Метод get_MessageDrain извлекает окно, которое получает сообщения с помощью мыши и клавиатуры из окна видео, если таковые есть.
IVideoWindow::get_Owner

Метод get_Owner извлекает родительское окно окна видео, если оно есть.
IVideoWindow::get_Top

Метод get_Top извлекает координату окна видео по оси Y.
IVideoWindow::get_Visible

Метод get_Visible запрашивает, отображается ли окно видео.
IVideoWindow::get_Width

Метод get_Width извлекает ширину окна видео.
IVideoWindow::get_WindowState

Метод get_WindowState запрашивает, является ли окно видео видимым, скрытым, свернутым или развернутым.
IVideoWindow::get_WindowStyle

Метод get_WindowStyle извлекает стили окна в окне видео.
IVideoWindow::get_WindowStyleEx

Метод get_WindowStyleEx извлекает расширенные стили окна в окне видео.
IVideoWindow::GetMaxIdealImageSize

Метод GetMaxIdealImageSize извлекает максимальный идеальный размер изображения для видео.
IVideoWindow::GetMinIdealImageSize

Метод GetMinIdealImageSize извлекает минимальный идеальный размер видеоимока.
IVideoWindow::GetRestorePosition

Метод GetRestorePosition извлекает восстановленную позицию окна.
IVideoWindow::GetWindowPosition

Метод GetWindowPosition извлекает положение окна видео.
IVideoWindow::HideCursor

Метод HideCursor отображает или скрывает курсор, когда указатель мыши расположен над окном видео.
IVideoWindow::IsCursorHidden

Метод IsCursorHidden запрашивает, скрыт ли курсор.
IVideoWindow::NotifyOwnerMessage

Метод NotifyOwnerMessage пересылает сообщение в окно видео.
IVideoWindow::p ut_AutoShow

Метод put_AutoShow указывает, будет ли отрисовщик видео автоматически отображать окно видео при получении видеоданных.
IVideoWindow::p ut_BackgroundPalette

Метод put_BackgroundPalette указывает, реализует ли окно видео свою палитру в фоновом режиме.
IVideoWindow::p ut_BorderColor

Метод put_BorderColor задает цвет, который отображается по краям прямоугольника назначения.
IVideoWindow::p ut_Caption

Метод put_Caption задает подпись окна видео.
IVideoWindow::p ut_FullScreenMode

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

Метод put_Height задает высоту окна видео.
IVideoWindow::p ut_Left

Метод put_Left задает координату X окна видео.
IVideoWindow::p ut_MessageDrain

Метод put_MessageDrain указывает окно для получения сообщений с помощью мыши и клавиатуры из окна видео.
IVideoWindow::p ut_Owner

Метод put_Owner задает родительское окно для окна видео.
IVideoWindow::p ut_Top

Метод put_Top задает координату Y окна видео.
IVideoWindow::p ut_Visible

Метод put_Visible отображает или скрывает окно видео.
IVideoWindow::p ut_Width

Метод put_Width задает ширину окна видео.
IVideoWindow::p ut_WindowState

Метод put_WindowState показывает, скрывает, свертывает или разворачивает окно видео.
IVideoWindow::p ut_WindowStyle

Метод put_WindowStyle задает стили окна в окне видео.
IVideoWindow::p ut_WindowStyleEx

Метод put_WindowStyleEx задает расширенные стили окна в окне видео.
IVideoWindow::SetWindowForeground

Метод SetWindowForeground помещает окно видео в верхней части порядка Z.
IVideoWindow::SetWindowPosition

Метод SetWindowPosition задает положение окна видео.

Требования

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

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

IDispatch