Schritt 9 Trennen der Eigenschaftenseite

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Überschreiben Sie die CBasePropertyPage::OnDisconnect-Methode , um alle Schnittstellen freizugeben, die Sie in der OnConnect-Methode abgerufen haben. Wenn der Benutzer das Eigenschaftenblatt schließt, ohne die Änderungen zu übernehmen, sollten Sie die ursprünglichen Werte wiederherstellen, wenn sie sich geändert haben. Es gibt keine "OnCancel"-Methode, die aufgerufen wird, wenn der Benutzer abbricht. Daher müssen Sie nachverfolgen, ob der Benutzer OnApplyChanges aufgerufen hat. In diesem Beispiel wird die zuvor beschriebene variable m_lVal verwendet:

HRESULT CGrayProp::OnDisconnect(void)
{
    if (m_pGray)
    {
        // If the user clicked OK, m_lVal holds the new value.
        // Otherwise, if the user clicked Cancel, m_lVal is the old value.
        m_pGray->SetSaturation(m_lVal);  
        m_pGray->Release();
        m_pGray = NULL;
    }
    return S_OK;
}

Weiter: Schritt 10. Unterstützung der COM-Registrierung

Erstellen einer Filtereigenschaftenseite