包含详细信息的 DirectShow 过滤器列表

List of DirectShow filters with details

我有一个使用 DirectShow.NET 在 C# 中编写的 DirectShow 过滤器列表。我通过 IFilterMapper2.EnumMatchingFilters() 获得了过滤器列表。但我只有 FriendlyNameFilterData:

hr = propertyBag.Read("FriendlyName", out friendlyName, null);
hr = propertyBag.Read("FilterData", out filterDataObj, null);

我想要得到 "File Name",和 "File Version",其中显示 GraphStudioNext 和其他工具。我如何检索这些信息?

我查看了 GraphStudioNext 源,发现我必须获取 CLSID 并从注册表中获取 dll 文件名:

hr = propertyBag.Read("CLSID", out clsid, null);
string dllFile = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("CLSID\" + clsid + "\InProcServer32").GetValue("") as string;

最后,可以通过以下方式检索文件版本:

string fileVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(dllFile).FileVersion;