Annulation de l’inscription d’un filtre

Pour annuler l’inscription d’un filtre, implémentez la fonction DllUnregisterServer . dans cette fonction, appelez la fonction DirectShow AMovieDllRegisterServer2 avec la valeur false. Si vous avez appelé IFilterMapper2 :: RegisterFilter lorsque vous avez inscrit le filtre, appelez la méthode IFilterMapper2 :: UnregisterFilter ici.

L’exemple suivant montre comment annuler l’inscription d’un filtre :

STDAPI DllUnregisterServer()
{
    HRESULT hr;
    IFilterMapper2 *pFM2 = NULL;

    hr = AMovieDllRegisterServer2(FALSE);
    if (FAILED(hr))
        return hr;
 
    hr = CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
            IID_IFilterMapper2, (void **)&pFM2);

    if (FAILED(hr))
        return hr;

    hr = pFM2->UnregisterFilter(&CLSID_VideoCompressorCategory, 
            g_wszName, CLSID_SomeFilter);

    pFM2->Release();
    return hr;
}