Condividi tramite


Passaggio 9. Disconnettere la pagina delle proprietà

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Eseguire l'override del metodo CBasePropertyPage::OnDisconnect per rilasciare tutte le interfacce ottenute nel metodo OnConnect . Inoltre, se l'utente ignora la finestra delle proprietà senza eseguire il commit delle modifiche, è necessario ripristinare i valori originali se sono stati modificati. Non esiste alcun metodo "OnCancel" che viene chiamato quando l'utente annulla, quindi è necessario tenere traccia del fatto che l'utente abbia chiamato OnApplyChanges. In questo esempio viene usata la variabile m_lVal descritta in precedenza:

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

Successivo: Passaggio 10. Supporto della registrazione COM

Creazione di una pagina delle proprietà filtro