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


Метод CBaseControlVideo.IsDefaultTargetRect

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

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

Синтаксис

virtual HRESULT IsDefaultTargetRect() = 0;

Параметры

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

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

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

Комментарии

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

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

// Return S_OK if using the default target; otherwise, S_FALSE.
HRESULT CVideoText::IsDefaultTargetRect()
{
    RECT TargetRect;

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

    // Check the destination that matches the initial client area.

    if (TargetRect.left != 0 || TargetRect.top != 0 ||
            TargetRect.right != m_Size.cx ||
                TargetRect.bottom != m_Size.cy) {
                    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