CBaseControlVideo.GetStaticImage メソッド

派生クラスがオーバーライドする純粋仮想メソッド。

構文

virtual HRESULT GetStaticImage(
   long *pBufferSize,
   long *pDIBImage
) = 0;

パラメーター

pBufferSize

出力バッファーのサイズへのポインター。

pDIBImage

出力バッファーへのポインター。

戻り値

HRESULT 値を返 します。

解説

アプリケーションでは 、IBasicVideo インターフェイスを使用して、メモリ バッファー内の現在のイメージのコピーを提供する必要があります (一部のレンダラーでは、サポートされていない場合に E _ NOTIMPL を返す場合があります)。 派生クラスは、イメージを取得する方法を決定します。 アプリケーションが CBaseControlVideo::GetStaticImage を呼び出す場合は、派生クラスがオーバーライドして実装する必要がある、この純粋仮想メソッドを呼び出します。 これは 、CBaseControlVideo::GetCurrentImage メンバー関数によっても呼び 出されます。

クラスには、イメージを含むサンプルを指定できるヘルパー メンバー関数 CBaseControlVideo::CopyImageが用意されています。メンバー関数は、(現在のソース四角形に基づいて) その関連セクションを、アプリケーションによって提供される出力バッファーにコピーします。

次の例は、派生クラスでのこのメンバー関数の実装を示しています。 この例では、m _ pRenderer は CBaseVideoRendererから派生したクラスのオブジェクトを保持しています。

// Return a copy of the current image in the video renderer
HRESULT CVideoText::GetStaticImage(long *pBufferSize,long *pDIBImage)
{
    // Get any sample the renderer may be holding.

    IMediaSample *pMediaSample = m_pRenderer->GetCurrentSample();
    if (pMediaSample == NULL) {
        return E_UNEXPECTED;
    }

    // Call the base class helper method to do the work.

    HRESULT hr = CopyImage(pMediaSample,       // Buffer containing image
                      &m_pRenderer->m_mtIn,    // Type representing bitmap
                      pBufferSize,             // Size of buffer for DIB
                     (BYTE*) pDIBImage);       // Data buffer for output

    pMediaSample->Release();
    return hr;
}

要件

要件
ヘッダー
Ctlutil.h (ストリーム.h を含む)
ライブラリ
Strmbase.lib (小売りビルド)
Str str strsd.lib (デバッグ ビルド)

関連項目

CBaseControlVideo クラス