2015-11-27 5 views
0

У меня есть список фильтров DirectShow на C# с использованием DirectShow.NET. Я получаю список фильтров IFilterMapper2.EnumMatchingFilters(). Но у меня есть только FriendlyName и FilterData:Список фильтров DirectShow с подробностями

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

Я хотел бы, чтобы получить «Имя файла» и «Версия файла», который показывает GraphStudioNext и другие инструменты. Как я могу получить эту информацию?

ответ

2

Я посмотрел в источники 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; 
Смежные вопросы