CBaseControlVideo.GetStaticImage-Methode

Reine virtuelle Methode, die von abgeleiteten Klassen überschrieben wird.

Syntax

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

Parameter

pBufferSize

Zeiger auf die Größe des Ausgabepuffers.

pDIBImage

Zeiger auf den Ausgabepuffer.

Rückgabewert

Gibt einen HRESULT-Wert zurück.

Hinweise

Über die IBasicVideo-Schnittstelle kann eine Anwendung anfordern, dass sie eine Kopie des aktuellen Bilds in einem Speicherpuffer erhält (einige Renderer können E NOTIMPL an diese zurückgeben, wenn sie es nicht _ unterstützen). Die abgeleitete Klasse bestimmt, wie das Bild abgerufen wird. Wenn die Anwendung CBaseControlVideo::GetStaticImage aufruft, ruft sie diese reine virtuelle Methode auf, die die abgeleitete Klasse überschreiben sollte, um sie zu implementieren. Dies wird auch von der CBaseControlVideo::GetCurrentImage-Memberfunktion aufgerufen.

Die -Klasse stellt die Hilfsfunktion CBaseControlVideo::CopyImagezur Verfügung, der ein Beispiel mit einem Bild gegeben werden kann, und die Memberfunktion kopiert den relevanten Abschnitt davon (basierend auf dem aktuellen Quellrechteck) in den von der Anwendung bereitgestellten Ausgabepuffer.

Im folgenden Beispiel wird eine Implementierung dieser Memberfunktion in einer abgeleiteten Klasse veranschaulicht. In diesem Beispiel enthält m pRenderer ein Objekt einer Klasse, die von _ CBaseVideoRenderer abgeleitet wurde.

// 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;
}

Anforderungen

Anforderung Wert
Header
Ctlutil.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandels-Builds);
Strmbasd.lib (Debugbuilds)

Weitere Informationen

CBaseControlVideo-Klasse