Как найти IMoniker, используемый для создания исходного фильтра?

В настоящее время я пишу приложение на основе DirectShow, которое должно помочь пользователям настраивать свои карты видеозахвата, поскольку GraphEdit кажется слишком сложным для понимания большинством. Идея состоит в том, что это приложение экспортирует сгенерированный график в файл.GRF, который будет использоваться в другом приложении.

Пользователи могут выбрать, какое устройство ( IMoniker) следует использовать для создания фильтра источника, и могут изменить некоторые настройки, касающиеся видео / аудио.

Помимо экспорта файлов.GRF, мое приложение также должно иметь функцию импорта таких файлов. Мой вопрос: как я могу найти, какое имя / устройство использовалось для создания исходного фильтра в импортированном графике?

Я попытался создать список исходных фильтров для всех подключенных устройств и сравнить их с исходным фильтром в импортированном графике, но это не сработало.

1 ответ

Решение

Вы не можете отличить моникера от созданного экземпляра. Чтобы отличить моникеры и найти то, что вам нужно, используйте их IMoniker::GetDisplayName Строка как уникальный постоянный идентификатор.

Другие вопросы по тегам