CBaseControlVideo.GetStaticImage 方法
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
衍生類別所覆寫的純虛擬方法。
語法
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;
}
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|