質問

I'm new to directshow to show capturing device video. I need to have video decoder (NTSC/PAL) and CrossBar tabs on a single propertPage dialog (see image). I'm able to show propertyPage separately but I want both in one dialog, as in the image.

In my attempts I was able to get tabs on a page but not getting any inputPin and outputPins in the crossbar tab. I could not get them all to work together. If I manage to get crossbar to work, then the rest of the tabs crash on click???

Please guide me on how to have multiple propertyPages tabs on the same dialog. I'm working in vs2010. Code sample in C++ or .net will be appreciated. Thanks a lot !!!

enter image description here

役に立ちましたか?

解決

This is a screenshot of standard property page, such as popped up with OleCreatePropertyFrame API for specific filter. It is using standard APIs to read and write settings for given COM object (DirectShow filter).

To put the settings onto one page, you can create your own property page, or other UI which talks programmatically to the filter and calls the respective methods via IAMCrossbar and IAMTVTuner interfaces.

You won't be able to replace existing property pages for existing (not yours) filter, for use with OleCreatePropertyFrame API, but other conbinations are doable:

  • custom property page for your filter, with/without OleCreatePropertyFrame API
  • custom property page for existing filter, without OleCreatePropertyFrame API
  • custom UI for existing filter

UPD. Another thing is that some standard pages might be filter specific, and other might be pin specific. Standard API shows pages for one object only, that is either filter or pin. In order to combine pages within one sheet, with standard API, you need to enumerate property pages on all objects, merge into single array, then create a fake COM object which forwards IUnknown::QueryInterface calls to specific COM objects (or just iterate through through array until you find first one implementing requested interface) and then use OleCreatePropertyFrame API against this proxy COM object. This can gather pages under one sheet/dialog.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top