CBasePropertyPage (clase)
[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.
La CBasePropertyPage
clase es una clase abstracta para implementar una página de propiedades. Use esta clase si está escribiendo un filtro (u otro objeto) que admita páginas de propiedades.
Variables miembro protegidas | Descripción |
---|---|
m_bDirty | Indica si alguna de las propiedades ha cambiado. |
m_DialogId | Identificador de recurso para el cuadro de diálogo. |
m_Dlg | Identificador de la ventana del cuadro de diálogo. |
m_hwnd | Identificador de la ventana del cuadro de diálogo. |
m_pPageSite | Puntero a la interfaz IPropertyPageSite del sitio de página de propiedades. |
m_TitleId | Identificador de recurso de una cadena que contiene el título del cuadro de diálogo. |
Métodos públicos | Descripción |
CBasePropertyPage | Método constructor. |
~CBasePropertyPage | Método de destructor. Virtual. |
OnActivate | Se llama cuando se activa la página de propiedades. Virtual. |
OnApplyChanges | Se llama cuando el usuario aplica cambios a la página de propiedades. Virtual. |
OnConnect | Proporciona un puntero IUnknown al objeto asociado a la página de propiedades. Virtual. |
OnDeactivate | Se llama cuando se destruye la ventana del cuadro de diálogo. Virtual. |
OnDisconnect | Se llama cuando la página de propiedades debe liberar el objeto asociado. Virtual. |
OnReceiveMessage | Se llama cuando el cuadro de diálogo recibe un mensaje. Virtual. |
Métodos IPropertyPage | Descripción |
Activar | Crea la ventana del cuadro de diálogo. |
Aplicar | Aplica los valores de página de propiedades actuales al objeto asociado a la página de propiedades. |
Desactivación | Destruye la ventana de diálogo. |
GetPageInfo | Recupera información sobre la página de propiedades. |
Ayuda | Invoca la ayuda de la página de propiedades. |
IsPageDirty | Indica si la página de propiedades ha cambiado desde que se activó o desde la llamada más reciente a IPropertyPage::Apply. |
Move | Coloca y cambia el tamaño del cuadro de diálogo. |
SetObjects | Proporciona punteros IUnknown para los objetos asociados a la página de propiedades. |
SetPageSite | Inicializa la página de propiedades. |
Mostrar | Muestra u oculta el cuadro de diálogo. |
TranslateAccelerator | Indica a la página de propiedades que procese una pulsación de tecla. |
Observaciones
Una página de propiedades es un objeto COM, por lo que debe generar un GUID para el identificador de clase (CLSID) y proporcionar una entrada en la matriz CFactoryTemplate . Para obtener más información, vea DirectShow y COM. En el ejemplo siguiente se muestra una entrada típica de generador de clases:
CFactoryTemplate g_Templates[] =
{
{
L"My Property Page",
&CLSID_MyPropPage,
CMyProp::CreateInstance,
NULL,
NULL
},
/* Also include the template for your filter (not shown). */
};
El filtro debe exponer la interfaz ISpecifyPropertyPages . Esta interfaz contiene un único método, GetPages, que devuelve el CLSID de la página de propiedades. En el ejemplo siguiente se muestra cómo implementar este 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;
}
No olvide invalidar también el método NonDelegatingQueryInterface del filtro. Para obtener más información, vea DirectShow y COM eINonDelegatingUnknown.
A continuación, cree el cuadro de diálogo como un recurso en el proyecto y cree un recurso de cadena que contenga el título del diálogo. Ambos identificadores de recursos son parámetros para el constructor CBasePropertyPage . Mantener la cadena de título en un recurso facilita la localización de la página de propiedades.
La clase CBasePropertyPage proporciona un marco para la interfaz IPropertyPage . Este marco llama a una serie de métodos virtuales, incluidos CBasePropertyPage::OnActivate, CBasePropertyPage::OnApplyChanges, etc. En la clase base, estos métodos simplemente devuelven S_OK. La clase derivada deberá invalidar algunos o todos estos métodos virtuales. Para obtener más información, consulte los comentarios de los métodos individuales.
Para obtener un ejemplo extendido de cómo usar esta clase para crear una página de propiedades, vea Creating a Filter Property Page.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|