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


Метод IVMRWindowlessControl::GetCurrentImage (strmif.h)

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

Метод GetCurrentImage извлекает копию текущего изображения, отображаемого vmr.

Синтаксис

HRESULT GetCurrentImage(
  [out] BYTE **lpDib
);

Параметры

[out] lpDib

Адрес указателя на массив BYTE.

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

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Код возврата Описание
VFW_E_WRONG_STATE
VMR не находится в режиме без окон.

Комментарии

Этот метод возвращает текущее отображаемое изображение. Изображение возвращается в виде упакованного DIB-файла Windows. Изображение начинается со структуры BITMAPINFOHEADER , которая может включать записи палитры и/или цветовые маски, за которыми следуют данные изображения.

VMR выделяет память для образа и возвращает указатель на него в переменной lpDib . Вызывающий объект должен освободить память, вызвав CoTaskMemFree.

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

Примеры

C++
BYTE *lpDib = NULL;
hr = pWindowlessControl->GetCurrentImage(&lpDib);
if (SUCCEEDED(hr))
{
    BITMAPINFOHEADER *pBMIH = (BITMAPINFOHEADER*)lpDib;
    /* .... */
    CoTaskMemFree(lpDib);
}

Требования

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

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

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

Интерфейс IVMRWindowlessControl

Использование отрисовщика для смешанного видео