2016-10-08 2 views
0

Я написал DirectShow-Filter * .ax для интеграции оборудования (камеры). Все работает отлично с моим filter.ax и там Транспорт Изображения к успеху Skype.Как добавить страницу свойств в фильтр DirectShow

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

В моем Filter.ax является вызов функции QueryInterface(REFIID riid, void **ppv)

когда riid == IID_ISpecifyPropertyPages

Я видел, что диалог должен быть в другой DLL, как Com?

Моя попытка открыть диалог напрямую работает, но нет окон. Сообщения поступают.

Я также должен написать MFC Dll, начиная с PropertyPage IIID? Моя Propertypage - это большой MFC Controles TabControl с некоторыми элементами. Я вижу это, если я запускаю фильтр из приложения MFC Test. AfxInit Я не могу выполнить. (Неправильные версии Lib я должен использовать DirectShow BaseClass (пример знания)

Я не теперь, почему мой диалог не получил сообщения, что это правильный путь?

ответ

0

Вам не нужно реализовать страницу свойств в отдельной DLL (даже если это возможно).

DirectShow страница фильтра собственности являются регулярными страницами COM собственностей реализована с использованием ISpecifyPropertyPages. страницы свойств являются отдельными COM объектов, реализующих хорошо известных интерфейсы, как IPropertyPage.

Windows SDK Ezrgb24 sample шоу как реализовать простой фильтр преобразования, а также имеет страницу свойств (CEZrgb24Properties class). Это должно быть хорошим началом для реализации страницы свойств для вашего фильтра.

Если вы предпочитаете реализовывать страницу свойств в отдельной DLL, типичным способом является определение общего COM-интерфейса, фильтр реализует его и ссылается на страницу свойств по CLSID, страница свойств запрашивает этот интерфейс из экземпляр фильтра и использовать его для действий конфигурации.

Смежные вопросы