共用方式為


步驟 1:建立 Windows Framework

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

[不支援此 API,未來可能會改變或無法使用。]

首先,建立 Windows 應用程式的基本架構,包括 WinMain 和視窗程式。 此處未顯示 WinMain 函式;在訊息迴圈之前呼叫 CoInitialize 以初始化 COM 程式庫,並在訊息迴圈結束之後呼叫 CoUninitialize 。 從下列最小視窗程式開始:

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
    static BITMAPINFOHEADER *pbmi = NULL;
    static BYTE *pBuffer = NULL;
    switch (msg)
    {
    case WM_CLOSE:
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        if (pbmi) delete [] pbmi;
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, msg, wparam, lparam);
    }
    return 0;
}

當您從媒體偵測器擷取海報框架時,它會傳回緩衝區,其中包含 BITMAPINFOHEADER 結構,後面接著影像位。 因此,在視窗程式中定義兩個靜態變數: pbmi 會保存 BITMAPINFOHEADER 結構的指標, 而 pBuffer 會保存點陣圖的指標。 應用程式會使用 newpbmi中配置緩衝區,因此它必須先刪除緩衝區,才能終結視窗。 pBuffer指標會計算為pbmi的位移,因此不需要刪除它。

一步:步驟 2:新增功能表命令以擷取海報框架

擷取海報框架