CBaseControlVideo.IsDefaultTargetRect メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 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 クラス