これは質問に対する最終的または完全な回答ではありませんが、私が尋ねた質問に対する部分的な回答が含まれています...
私はいろいろなことを試して、さまざまな程度の成功を収めました。
この種の問題に取り組む際の最初の問題は、目的を変更しようとしているビデオが DirectX 経由でレンダリングされているかどうかを判断することです。
ビデオが DirectX でレンダリングされていない場合は、実際にウィンドウからビデオをキャプチャして、好きな場所でリアルタイムに再生できます。ウィンドウからビットマップをキャプチャする方法について、Web 上にさまざまなサンプルがあります。秘訣は、不透明度によってウィンドウを非表示にすることはできますが、最小化することはできません (最小化すると更新されません)! ビデオがあるウィンドウに見つけたhwndを使用するだけで、ループ内でさまざまな方法でこれらのビットマップのコピーを取得し、必要に応じて他の場所に表示します。コンピュータの速度とビデオのサイズにもよりますが、この方法は問題なく機能します。
ハイジャックしようとしているビデオが DirectX 経由でレンダリングされている場合は、完全ではありませんが、ほとんどの場合、うまくいきません。DirectX ビデオはグラフィックス カード (OS ではなく) によって OS サーフェスに直接レンダリングされるため、ビデオをフレームとして取得して別の場所に表示するには、まったく異なるアプローチを使用する必要があります。DirectX スクリーン キャプチャの実行方法には、さまざまな例があります。ただし、大きな問題は、DirectX ウィンドウが非表示になっている、重なっている、または不透明度がゼロに設定されている場合、何もキャプチャできないことです! 仮想デスクトップ マネージャー ソフトウェアを使用して、システムをだまして仮想ウィンドウで DirectX ビデオを再生させ、それをキャプチャして好きな場所で再生できるかどうかを試してみましたが、もちろん、それは私よりも賢く、空白になりました。画像。そう、要するに、仮想グラフィックス カード ドライバを作成するなど、本当に極端なことをしない限り、運が悪いようです。(グラフィックス カードに向かう途中でビデオ/静止画をキャプチャできる DirectX プロキシを作成することを含むさまざまな興味深い方法がありますが、表示面が表示されているため、レンダリングする価値があることを納得させるために、仮想グラフィックス ドライバーが必要になる場合があると思います。)