CBaseControlVideo.IsDefaultTargetRect 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 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 类