Reputation: 172
My DirectShow application is working on Win7. When I switched it to Win2008 R2 server it failed to initialize NullRender filter with an error code -2147221164 (which is 0x80040154
REGDB_E_CLASSNOTREG
"Class not registered").
HRESULT CDirectShowGraph::AddFilterToGraph(CComPtr<IBaseFilter>& spFilter, GUID filterGuid, LPCWSTR filterName)
{
HRESULT hr = S_OK;
//Create the filter
hr = spFilter.CoCreateInstance(filterGuid);
if (FAILED(hr))
{
CDirectShowGraph::Msg(TEXT("[CDirectShowGraph::AddFilterToGraph] Failed to initialize filter \"%s\" hr=0x%x"), filterName, hr);
return hr;
}
//Add the filter to the graph
if (FAILED(hr = m_spGraph->AddFilter(spFilter, filterName)))
{
CDirectShowGraph::Msg(TEXT("[CDirectShowGraph::AddFilterToGraph] Adding filter failed \"%s\" hr=0x%x"), filterName, hr);
return hr;
}
return hr;
}
...
m_DirectShowGraph.AddFilterToGraph( m_spNullRenderer, CLSID_NullRenderer, L"NullRender")
I have also tried reinstalling Windows SDK.
Even GraphEdit crashes, when I expand the DirectShow Filters node. I tried DirectShowFilterManager (http://www.softella.com/dsfm/index.en.htm) and it also does not show NullRender in the list. However, on Win7 NullRender is appearing.
Upvotes: 2
Views: 369
Reputation: 69734
Microsoft took Null Renderer out of Win Server 2008 (along with other filters like Sample Grabber - all hosted by qedit.dll
). You need to look for replacement, which, for example, can be a similar filter/sample in one of old Platform SDKs.
See also:
Upvotes: 3