Etapa 4. Criar a página de propriedades
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Neste ponto, o filtro dá suporte a tudo o que precisa para uma página de propriedades. A próxima etapa é implementar a própria página de propriedades. Comece derivando uma nova classe de CBasePropertyPage. O exemplo a seguir mostra parte da declaração, incluindo algumas variáveis de membro privado que serão usadas posteriormente no exemplo:
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:
/* ... */
};
Em seguida, crie um recurso de caixa de diálogo no editor de recursos, juntamente com um recurso de cadeia de caracteres para o título da caixa de diálogo. A cadeia de caracteres aparecerá na guia da página de propriedades. As duas IDs de recurso são argumentos para o construtor CBasePropertyPage :
CGrayProp::CGrayProp(IUnknown *pUnk) :
CBasePropertyPage(NAME("GrayProp"), pUnk, IDD_PROPPAGE, IDS_PROPPAGE_TITLE),
m_pGray(0)
{ }
A ilustração a seguir mostra o recurso de caixa de diálogo para a página de propriedades de exemplo.
Agora você está pronto para implementar a página de propriedades. Aqui estão os métodos em CBasePropertyPage para substituir:
- OnConnect é chamado quando o cliente cria a página de propriedades. Ele define o ponteiro IUnknown como o filtro.
- OnActivate é chamado quando a caixa de diálogo é criada.
- OnReceiveMessage é chamado quando a caixa de diálogo recebe uma mensagem de janela.
- OnApplyChanges é chamado quando o usuário confirma as alterações de propriedade clicando no botão OK ou Aplicar .
- OnDisconnect é chamado quando o usuário descarta a folha de propriedades.
O restante deste tutorial descreve cada um desses métodos.
Próximo: Etapa 5. Armazene um ponteiro para o filtro.
Tópicos relacionados