Compartilhar via


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.

caixa de diálogo da página de propriedades

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.

Criando uma página de propriedades de filtro