2018年2月18日日曜日

GraphEdit と proppage.dll / evrprop.dll の入手方法

2019/11/6 追記

いつの間にか SDK に GraphEdit が復活していました。
デフォルトのパスでは C:\Program Files (x86)\Windows Kits\10\bin\(SDK のバージョン)\x64|x86 にあります。
しかし、evrprop.dll が見当たらないのですが…。

以下元記事

DirectShow を利用したプログラムの開発に有用なツールとして GraphEdit があります。
GraphEdit は Windows 7 までの Windows SDK に含まれていたのですが、Windows 8 以降の SDK からは削除されてしまいました。
Microsoft 的には「DirectShow なんか止めて Media Foundation を使え」ということなのでしょうが、未だに多くのプレイヤーやフィルタが DirectShow 向けに開発されているのが現状です。

GraphEdit は Windows 7 の SDK をインストールすれば手に入る訳ですが、GraphEdit のためだけに大きい SDK をインストールしたくはないし、Windows 10 では素直にインストールできなかったりします。
そこで、SDK をインストールせずに必要なファイルだけを取り出す方法をメモとして残します。

まず、Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO) をダウンロードします。
ダウンロードするのは x86 (GRMSDK_EN_DVD.iso) か x64 (GRMSDKX_EN_DVD.iso) のどちらでも OK です。
ダウンロードした ISO ファイルをマウントしたら、ドライブ内の Setup\WinSDKWin32Tools (x86 の場合) か Setup\WinSDKWin32Tools_amd64 (x64 の場合) フォルダにある cab1.cab ファイルを開きます。
cab1.cab 内に以下のファイルがあるはずなので、それを取り出して元の名前にリネームすれば OK です。

CAB 内のファイル名元のファイル名サイズプラットフォーム
FL_graphedt.exe_all_enu_D896AD3A_9326_4993_BB5D_66D057CE598Agraphedt.exe221,008x86
FL_graphedt.exe_all_enu_B8D975E5_4672_4DC7_B785_6BF7687298E2graphedt.exe295,760x64
FL_proppage.dll_all_enu_03743315_FEB8_4E4E_93F4_5CCEF2278603proppage.dll378,192x86
FL_proppage.dll_all_enu_F2EA5901_4115_454E_9AA1_C195C284D256proppage.dll616,272x64
FL_evrprop.dll_all_enu_500CE973_7DD1_40D7_852B_1F752C00EAC2evrprop.dll203,088x86
FL_evrprop.dll_all_enu_7182E778_EE86_4085_8E2A_1D9EAC0860CCevrprop.dll216,400x64

proppage.dll と evrprop.dll をそれぞれ regsvr32 で登録すれば、GraphEdit から他のプロセスのフィルタグラフにアクセスできます(メニューの [File] -> [Connect to Remote Graph...])。
OS が x64 の場合、32ビットと64ビット両方のプログラムで使えるようにするには、x86 と x64 の DLL を両方登録する必要があります。
登録はコマンドプロンプトを管理者権限で起動してから、cd で DLL のあるフォルダに移動して regsvr32 で登録すれば OK です。

cd "DLLのあるフォルダ"
regsvr32 proppage.dll
regsvr32 evrprop.dll

GraphEdit に似たオープンソースのツールとして MONOGRAM GraphStudio があります。
ただこちらも開発が止まってしまったので、それをフォークした GraphStudioNext も開発されています。
GraphStudioNext でも、他のプロセスのフィルタグラフを見るには proppage.dll と evrprop.dll の登録が必要です。

0 件のコメント:

コメントを投稿