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


Метод CBaseControlVideo.IsDefaultSourceRect

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

Метод IsDefaultSourceRect определяет, использует ли отрисовщик исходный прямоугольник по умолчанию (чисто виртуальный).

Синтаксис

virtual HRESULT IsDefaultSourceRect() = 0;

Параметры

Этот метод не имеет параметров.

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

Возвращает S_OK, если отрисовщик использует источник по умолчанию; в противном случае возвращает S_FALSE.

Комментарии

Эта функция-член должна быть реализована в производном классе. Он вызывается функцией-членом CBaseControlVideo::IsUsingDefaultSource .

В следующем примере показана реализация этой функции в производном классе.

// Return S_OK if using the default source; otherwise, S_FALSE.
HRESULT CVideoText::IsDefaultSourceRect()
{
    RECT SourceRect;

    VIDEOINFO *pVideoInfo = (VIDEOINFO *) m_pRenderer->m_mtIn.Format();
    BITMAPINFOHEADER *pHeader = HEADER(pVideoInfo);
    m_pRenderer->m_DrawImage.GetSourceRect(&SourceRect);

    // Check the coordinates that match the video dimensions.

    if (SourceRect.left != 0 || SourceRect.top != 0 ||
            SourceRect.right != pHeader->biWidth ||
                SourceRect.bottom != pHeader->biHeight) {
                    return S_FALSE;
    }
    return S_OK;
}

В этом примере CVideoText является классом, производным от CBaseControlVideo, m_pRenderer содержит объект класса, производного от CBaseVideoRenderer, а элемент данных m_DrawImage, определенный в производном классе, содержит объект CDrawImage . Элемент данных m_mtIn, также определенный в производном классе, содержит объект CMediaType с типом носителя входного контакта.

Требования

Требование Значение
Заголовок
Ctlutil.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CBaseControlVideo