Freigeben über


Aufheben der Registrierung eines Filters

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Um die Registrierung eines Filters aufzuheben, implementieren Sie die DllUnregisterServer-Funktion . Rufen Sie in dieser Funktion die DirectShow AMovieDllRegisterServer2-Funktion mit dem Wert FALSE auf. Wenn Sie bei der Registrierung des Filters IFilterMapper2::RegisterFilter aufgerufen haben, rufen Sie hier die IFilterMapper2::UnregisterFilter-Methode auf.

Das folgende Beispiel zeigt, wie Sie die Registrierung eines Filters aufheben:

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;
}