Passaggio 4. Creare la pagina delle proprietà
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di utilizzare nel nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
A questo punto il filtro supporta tutto il necessario per una pagina delle proprietà. Il passaggio successivo consiste nell'implementare la pagina delle proprietà stessa. Iniziare derivando una nuova classe da CBasePropertyPage. L'esempio seguente illustra parte della dichiarazione, incluse alcune variabili membro private che verranno usate più avanti nell'esempio:
class CGrayProp : public CBasePropertyPage
{
private:
ISaturation *m_pGray; // Pointer to the filter's custom interface.
long m_lVal // Store the old value, so we can revert.
long m_lNewVal; // New value.
public:
/* ... */
};
Creare quindi una risorsa della finestra di dialogo nell'editor di risorse, insieme a una risorsa stringa per il titolo della finestra di dialogo. La stringa verrà visualizzata nella scheda per la pagina delle proprietà. I due ID risorsa sono argomenti del costruttore CBasePropertyPage:
CGrayProp::CGrayProp(IUnknown *pUnk) :
CBasePropertyPage(NAME("GrayProp"), pUnk, IDD_PROPPAGE, IDS_PROPPAGE_TITLE),
m_pGray(0)
{ }
La figura seguente mostra la risorsa della finestra di dialogo per la pagina delle proprietà di esempio.
A questo momento è possibile implementare la pagina delle proprietà. Ecco i metodi in CBasePropertyPage per eseguire l'override:
- OnConnect viene chiamato quando il client crea la pagina delle proprietà. Imposta il puntatore IUnknown sul filtro.
- OnActivate viene chiamato quando viene creata la finestra di dialogo.
- OnReceiveMessage viene chiamato quando la finestra di dialogo riceve un messaggio.
- OnApplyChanges viene chiamato quando l'utente conferma le modifiche delle proprietà facendo clic sul pulsante OK o Applica.
- OnDisconnect viene chiamato quando l'utente chiude il foglio delle proprietà.
Nella parte restante di questa esercitazione vengono descritti ognuno di questi metodi.
Avanti: Passaggio 5. Memorizzare un puntatore al filtro.