CBasePropertyPage, classe

La CBasePropertyPage classe est une classe abstraite pour l’implémentation d’une page de propriétés. Utilisez cette classe si vous écrivez un filtre (ou un autre objet) qui prend en charge les pages de propriétés.
| Variables membres protégées | Description |
|---|---|
| m _ bDirty | Indique si l’une des propriétés a changé. |
| m _ DialogId | Identificateur de ressource pour la boîte de dialogue. |
| m _ DLG | Handle de la fenêtre de boîte de dialogue. |
| HWND de m _ | Handle de la fenêtre de boîte de dialogue. |
| m _ pPageSite | Pointeur vers l’interface IPropertyPageSite du site de la page de propriétés. |
| m _ TitleId | Identificateur de ressource pour une chaîne qui contient le titre de la boîte de dialogue. |
| Méthodes publiques | Description |
| CBasePropertyPage | Méthode de constructeur. |
| ~ CBasePropertyPage | Méthode de destructeur. Virtuels. |
| Activé | Appelé lorsque la page de propriétés est activée. Virtuels. |
| OnApplyChanges | Appelé lorsque l’utilisateur applique des modifications à la page de propriétés. Virtuels. |
| OnConnect | Fournit un pointeur IUnknown vers l’objet associé à la page de propriétés. Virtuels. |
| Désactivé | Appelé lorsque la fenêtre de boîte de dialogue est détruite. Virtuels. |
| OnDisconnect | Appelé lorsque la page de propriétés doit libérer l’objet associé. Virtuels. |
| OnReceiveMessage | Appelé lorsque la boîte de dialogue reçoit un message. Virtuels. |
| Méthodes IPropertyPage | Description |
| Activer | Crée la fenêtre de boîte de dialogue. |
| Appliquer | Applique les valeurs de page de propriétés actuelles à l’objet associé à la page de propriétés. |
| Désactivation | Détruit la fenêtre de boîte de dialogue. |
| GetPageInfo | Récupère des informations sur la page de propriétés. |
| Aide | Appelle l’aide de la page de propriétés. |
| IsPageDirty | Indique si la page de propriétés a été modifiée depuis son activation ou depuis l’appel le plus récent à IPropertyPage :: apply. |
| Activer | Positionne et redimensionne la boîte de dialogue. |
| SetObjects | Fournit des pointeurs IUnknown pour les objets associés à la page de propriétés. |
| SetPageSite | Initialise la page de propriétés. |
| Afficher | Affiche ou masque la boîte de dialogue. |
| TranslateAccelerator | Indique à la page de propriétés de traiter une séquence de touches. |
Remarques
Une page de propriétés étant un objet COM, vous devez générer un GUID pour l’identificateur de classe (CLSID) et fournir une entrée dans le tableau CFactoryTemplate . pour plus d’informations, consultez DirectShow et COM. L’exemple suivant illustre une entrée de fabrique de classes typique :
CFactoryTemplate g_Templates[] =
{
{
L"My Property Page",
&CLSID_MyPropPage,
CMyProp::CreateInstance,
NULL,
NULL
},
/* Also include the template for your filter (not shown). */
};
Votre filtre doit exposer l’interface ISpecifyPropertyPages . Cette interface contient une méthode unique, GetPages, qui retourne le CLSID de la page de propriétés. L’exemple suivant montre comment implémenter cette méthode :
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;
}
N’oubliez pas de remplacer la méthode NonDelegatingQueryInterface du filtre. pour plus d’informations, consultez DirectShow et COM et INonDelegatingUnknown.
Ensuite, créez la boîte de dialogue en tant que ressource dans votre projet, puis créez une ressource de type chaîne qui contient le titre de la boîte de dialogue. Ces deux ID de ressource sont des paramètres du constructeur CBasePropertyPage . Si vous conservez la chaîne de titre dans une ressource, il est plus facile de localiser la page de propriétés.
La classe CBasePropertyPage fournit une infrastructure pour l’interface IPropertyPage . Ce Framework appelle plusieurs méthodes virtuelles, notamment CBasePropertyPage :: OnActivate, CBasePropertyPage :: OnApplyChanges, etc. Dans la classe de base, ces méthodes retournent simplement S _ OK. Votre classe dérivée doit substituer une partie ou l’ensemble de ces méthodes virtuelles. Pour plus d’informations, consultez les notes relatives aux différentes méthodes.
Pour obtenir un exemple étendu de l’utilisation de cette classe pour créer une page de propriétés, consultez création d’une page de propriétés de filtre.
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|