次の方法で共有


手順 4: クライアント領域にビットマップを描画する

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

[この API はサポートされていないため、今後変更または使用できない可能性があります。]

このトピックは、 ポスター フレームをつかむ手順 4 です。

最後の手順では、 SetDIBitsToDevice 関数を使用して、アプリケーション ウィンドウのクライアント領域にビットマップを描画します。 次の使用例は、ウィンドウ サイズに関係なく、クライアント領域の左上隅にビットマップを描画します。

case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hwnd, &ps);
        if (pbmi)
        {
            int result = SetDIBitsToDevice(hdc, 0, 0, 
                pbmi->biWidth,
                pbmi->biHeight,
                0, 0, 0,
                pbmi->biHeight,
                pBuffer,
                reinterpret_cast<BITMAPINFO*>(pbmi),
                DIB_RGB_COLORS);
        }
        EndPaint(hwnd, &ps);
    }
    break;

pBuffer 変数と pbmi 変数は、「手順 1: Windows Framework を作成する」で宣言されており、その値は「手順 3: Frame-Grabbing関数を実装する」で取得します。

ポスターフレームのつかみ取り