これはおそらく、私が長い間読んだ中で最も奇妙な要求です。まず悪いニュース: いいえ、Windows Media Player のビデオ ウィンドウで ".exe" によって生成された出力を再生するためのオープン ソース コーデックはありません。「.exe」またはより正確には PE ファイル (Portable Executables) には、プログラム コード、つまり CPU によってプログラムとして解釈されるデータが含まれています。ただし、ビデオはプログラムではなく、画像データです。
ビデオコーデックは、ビデオデータをフォーマット間で変換するプログラムです。たとえば、圧縮された h.264 を表示に適した生の RGB データにデコードできます。ビデオ コーデックには一定の制約があります。たとえば、一連のフレームをデコードする必要があります。
ここで朗報です。技術的には、このようなコーデックを作成することは可能です。ただし、WMP では解釈できないため、WMP で .exe を開くことはできません。ただし、特定のビデオ エンコーディング形式を識別する 4 文字のコードである新しい FOURCC を導入し、その FOURCC に特別な目的のコードを登録することもできます。次に、その FOURCC を使用し、フレーム内のビデオ データの代わりにターゲット .exe への参照を含む特別な AVI ファイルを作成します。WMP がこのファイルを再生しようとすると、この「コーデック」が起動され、.exe が起動されます。起動したアプリケーションと「コーデック」間の通信プロトコルを確立する必要があります。オフスクリーン レンダリング サーフェスを作成する必要があります。プロセス間で共有される PBuffer DC、つまり「コーデック」がこれに最適です。PBuffer を作成し、.exe はその上に OpenGL コンテキストを作成します。次に、コーデックは PBuffer の内容をデコードされたビデオ フレームとして WMP に渡します。
そうです、そのようなハッキングを行うことができます。しかし、それは醜くて奇妙でしょう。
なぜ単純に WMP 用の視覚化プラグインを作成しないのですか? これらはビデオ ウィンドウでも実行されますが、そのような醜いハックは必要ありません。