Nero Recode makes problems to programmers!

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);
if (FAILED(hr))
    return hr;

// 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;
    ULONG cFetched;
    while(pEnumCat->Next(1, &pMoniker, &cFetched) == S_OK)
        IPropertyBag *pPropBag;
        hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, 
            (void **)&pPropBag);
        if (SUCCEEDED(hr))
            // To retrieve the filter's friendly name, do the following:
            VARIANT varName;
            hr = pPropBag->Read(L"FriendlyName", &varName, 0);
            if (SUCCEEDED(hr))
                // Display the name in your UI somehow.

            // To create an instance of the filter, do the following:
            IBaseFilter *pFilter;
            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 !!!