Well it looks like Nero implemented some anti-debuging mechanizm . When you try to access one of the Nero's filters when running in debug mode - it crashes your program .
It's in general OK with me BUT GOD DAMN IT !!! It took me 3 days to discover and ger rid of the problem !
The problem is that I am programmer writing my own filters and use someone else's filters , some of them I find by their names , so it's looks something like this :
// Create the System Device Enumerator.
ICreateDevEnum *pSysDevEnum = NULL;
hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
IID_ICreateDevEnum, (void **)&pSysDevEnum);
// Obtain a class enumerator for the video compressor category.
IEnumMoniker *pEnumCat = NULL;
hr = pSysDevEnum->CreateClassEnumerator(CLSID_VideoCompressorCategory, &pEnumCat, 0);
if (hr == S_OK)
// Enumerate the monikers.
IMoniker *pMoniker = NULL;
while(pEnumCat->Next(1, &pMoniker, &cFetched) == S_OK)
hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag,
// To retrieve the filter's friendly name, do the following:
hr = pPropBag->Read(L"FriendlyName", &varName, 0);
// Display the name in your UI somehow.
// To create an instance of the filter, do the following:
hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter,
// Now add the filter to the graph.
//Remember to release pFilter later.
You see this code ACEEDENTLY goes over all filters in category , I do not need Nero Filters, all I wanted is to check filter name to see if it matches the one I am looking for but this untidebug measures prevents me from debugging my own code !!!!