Paso 4. Crear la página de propiedades
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
En este momento, el filtro admite todo lo que necesita para una página de propiedades. El siguiente paso consiste en implementar la propia página de propiedades. Empiece derivando una nueva clase de CBasePropertyPage. En el ejemplo siguiente se muestra parte de la declaración, incluidas algunas variables de miembro privado que se usarán más adelante en el ejemplo:
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:
/* ... */
};
A continuación, cree un recurso de diálogo en el editor de recursos, junto con un recurso de cadena para el título del cuadro de diálogo. La cadena aparecerá en la pestaña de la página de propiedades. Los dos identificadores de recursos son argumentos para el constructor CBasePropertyPage :
CGrayProp::CGrayProp(IUnknown *pUnk) :
CBasePropertyPage(NAME("GrayProp"), pUnk, IDD_PROPPAGE, IDS_PROPPAGE_TITLE),
m_pGray(0)
{ }
En la ilustración siguiente se muestra el recurso de diálogo de la página de propiedades de ejemplo.
Ahora está listo para implementar la página de propiedades. Estos son los métodos de CBasePropertyPage para invalidar:
- Se llama a OnConnect cuando el cliente crea la página de propiedades. Establece el puntero IUnknown en el filtro.
- Se llama a OnActivate cuando se crea el cuadro de diálogo.
- Se llama a OnReceiveMessage cuando el cuadro de diálogo recibe un mensaje de ventana.
- Se llama a OnApplyChanges cuando el usuario confirma los cambios de propiedad haciendo clic en el botón Aceptar o Aplicar.
- Se llama a OnDisconnect cuando el usuario descarta la hoja de propiedades.
En el resto de este tutorial se describe cada uno de estos métodos.
Siguiente: Paso 5. Almacene un puntero al filtro.
Temas relacionados