2016-10-08 6 views
0

하드웨어 (카메라)를 통합하기 위해 DirectShow-Filter * .ax를 작성했습니다. 모두 내 filter.ax와 함께 잘 작동 Skype 성공에 이미지를 전송합니다.DirectShow 필터에 속성 페이지를 추가하는 방법

이제 카메라 옵션을 UI로 처리하는 Dialog를 통합하려고합니다. 내 Filter.ax에서

함수 riid == IID_ISpecifyPropertyPages

내가 대화가 컴과 같은 다른 DLL에 있어야 보았다하고 QueryInterface(REFIID riid, void **ppv)

를 호출?

직접 대화 상자를 열려고 시도하지만 창은 표시되지 않습니다. 메시지가 수신됩니다.

PropertyPage IIID에서 시작하는 MFC DLL도 작성해야합니다. My Propertypage는 일부 항목에 대해 큰 MFC Control TabControl입니다. MFC 테스트 응용 프로그램에서 필터를 시작하면 볼 수 있습니다. AfxInit 실행할 수 없습니다. (잘못된 해방 버전은 내 대화가 어떤 메시지도 없어 왜 지금, 올바른 방법으로 무엇을하지 않는 DirectShow에서의 base class (지식 예)

를 사용해야합니다?

답변

0

을 당신은 속성 페이지를 구현 할 필요가 없습니다 별도의 DLL (그것이 가능하다하더라도).

의 DirectShow 필터 속성 페이지가 ISpecifyPropertyPages를 사용하여 구현 일반 COM 속성 페이지입니다. 속성 페이지 IPropertyPage처럼 잘 알려진 인터페이스를 구현하는 별도의 COM 개체입니다.

윈도우 SDK Ezrgb24 sample에서 쇼 간단한 변환 필터를 구현하는 방법 및 속성 페이지 (CEZrgb24Properties class)도 제공합니다. 필터의 속성 페이지 구현을 시작하는 것이 좋습니다.

속성 페이지를 별도의 DLL로 구현하려는 경우 일반적인 방법은 공유 COM 인터페이스를 정의하고 필터가이를 구현하고 CLSID로 속성 페이지를 참조하면 속성 페이지에서이 인터페이스를 쿼리합니다. 필터 인스턴스를 만들고 구성 작업에 사용합니다.

관련 문제