Classe CBasePropertyPage
[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.]
A CBasePropertyPage
classe é uma classe abstrata para implementar uma página de propriedades. Use essa classe se você estiver escrevendo um filtro (ou outro objeto) que dê suporte a páginas de propriedades.
Variáveis de membro protegidas | Descrição |
---|---|
m_bDirty | Indica se alguma das propriedades foi alterada. |
m_DialogId | Identificador de recurso para a caixa de diálogo. |
m_Dlg | Manipule para a janela da caixa de diálogo. |
M_hwnd | Manipule para a janela da caixa de diálogo. |
m_pPageSite | Ponteiro para a interface IPropertyPageSite do site da página de propriedades. |
m_TitleId | Identificador de recurso para uma cadeia de caracteres que contém o título da caixa de diálogo. |
Métodos públicos | Descrição |
Cbasepropertypage | Método de construtor. |
~Cbasepropertypage | Método de destruidor. Virtual. |
Onactivate | Chamado quando a página de propriedades é ativada. Virtual. |
Onapplychanges | Chamado quando o usuário aplica alterações à página de propriedades. Virtual. |
Onconnect | Fornece um ponteiro IUnknown para o objeto associado à página de propriedades. Virtual. |
Ondeactivate | Chamado quando a janela da caixa de diálogo é destruída. Virtual. |
OnDisconnect | Chamado quando a página de propriedades deve liberar o objeto associado. Virtual. |
OnReceiveMessage | Chamado quando a caixa de diálogo recebe uma mensagem. Virtual. |
Métodos IPropertyPage | Descrição |
Ativar | Cria a janela da caixa de diálogo. |
Aplicar | Aplica os valores da página de propriedades atual ao objeto associado à página de propriedades |
Desativar | Destrói a janela da caixa de diálogo. |
Getpageinfo | Recupera informações sobre a página de propriedade. |
Ajuda | Invoca a ajuda da página de propriedades. |
IsPageDirty | Indica se a página de propriedades foi alterada desde que foi ativada ou desde a chamada mais recente para IPropertyPage::Apply. |
Mover | Posiciona e redimensiona a caixa de diálogo. |
SetObjects | Fornece ponteiros IUnknown para os objetos associados à página de propriedades. |
SetPageSite | Inicializa a página de propriedades. |
Mostrar | Mostra ou oculta a caixa de diálogo. |
TranslateAccelerator | Instrui a página de propriedades a processar um pressionamento de tecla. |
Comentários
Uma página de propriedades é um objeto COM, portanto, você deve gerar um GUID para o CLSID (identificador de classe) e fornecer uma entrada na matriz CFactoryTemplate . Para obter mais informações, consulte DirectShow e COM. O exemplo a seguir mostra uma entrada típica de fábrica de classes:
CFactoryTemplate g_Templates[] =
{
{
L"My Property Page",
&CLSID_MyPropPage,
CMyProp::CreateInstance,
NULL,
NULL
},
/* Also include the template for your filter (not shown). */
};
Seu filtro deve expor a interface ISpecifyPropertyPages . Essa interface contém um único método, GetPages, que retorna o CLSID da página de propriedades. O exemplo a seguir mostra como implementar esse método:
STDMETHODIMP CMyFilter::GetPages(CAUUID *pPages)
{
if (!pPages) return E_POINTER;
pPages->cElems = 1;
pPages->pElems = reinterpret_cast<GUID*>(CoTaskMemAlloc(sizeof(GUID)));
if (pPages->pElems == NULL)
{
return E_OUTOFMEMORY;
}
*(pPages->pElems) = CLSID_MyPropPage;
return S_OK;
}
Lembre-se de substituir o método NonDelegatingQueryInterface do filtro também. Para obter mais informações, consulte DirectShow e COM e INonDelegatingUnknown.
Em seguida, crie a caixa de diálogo como um recurso em seu projeto e crie um recurso de cadeia de caracteres que contenha o título da caixa de diálogo. Ambas as IDs de recurso são parâmetros para o construtor CBasePropertyPage . Manter a cadeia de caracteres de título em um recurso facilita a localização da página de propriedades.
A classe CBasePropertyPage fornece uma estrutura para a interface IPropertyPage . Essa estrutura chama vários métodos virtuais, incluindo CBasePropertyPage::OnActivate, CBasePropertyPage::OnApplyChanges e assim por diante. Na classe base, esses métodos simplesmente retornam S_OK. Sua classe derivada precisará substituir alguns ou todos esses métodos virtuais. Para obter detalhes, consulte os comentários para os métodos individuais.
Para obter um exemplo estendido de como usar essa classe para criar uma página de propriedades, consulte Criando uma página de propriedades de filtro.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|