Hello All,
I am using DirectShow to get video-data from the PS3Eye and it works fine.
Now I also want to add a button to my form, which displays the Camera (or Filter) settings dialog. You know, the one that is also shown when using the “Video Capture Filter” button of the PS3Eye Test software.
The code I use to show the dialog is “standard DirectX” and was adapted by Theo Watson in his videoInput library:
// ----------------------------------------------------------------------
// Show the property pages for a filter
// This is stolen from the DX9 SDK
// ----------------------------------------------------------------------
HRESULT videoInput::ShowFilterPropertyPages(IBaseFilter *pFilter, HWND hWindow){
ISpecifyPropertyPages *pProp;
HRESULT hr = pFilter->QueryInterface(IID_ISpecifyPropertyPages, (void **)&pProp;);
if (SUCCEEDED(hr))
{
// Get the filter's name and IUnknown pointer.
FILTER_INFO FilterInfo;
hr = pFilter->QueryFilterInfo(&FilterInfo;);
if (!SUCCEEDED(hr))
{
return hr;
}
IUnknown *pFilterUnk;
hr = pFilter->QueryInterface(IID_IUnknown, (void **)&pFilterUnk;);
if (!SUCCEEDED(hr))
{
return hr;
}
// Show the page.
CAUUID caGUID;
pProp->GetPages(&caGUID;);
pProp->Release();
hr = OleCreatePropertyFrame(
hWindow, // Parent window
0, 0, // Reserved
FilterInfo.achName, // Caption for the dialog box
1, // Number of objects (just the filter)
&pFilterUnk;, // Array of object pointers.
caGUID.cElems, // Number of property pages
caGUID.pElems, // Array of property page CLSIDs
0, // Locale identifier
0, NULL // Reserved
);
// Clean up.
if(pFilterUnk)pFilterUnk->Release();
if(FilterInfo.pGraph)FilterInfo.pGraph->Release();
CoTaskMemFree(caGUID.pElems);
}
return hr;
}
The dialog shows fine and is exactly the same as the one from PS3Eye Test. But: all controls on the dialog are disabled and seem disconnected from the camera.
Can anyone help me with this? The developers of the PS3Eye test-software can maybe check their source-code to see, what is different?
Thanks in advance!