Comment inscrire et implémenter un gestionnaire de feuille de propriétés pour une application Panneau de configuration

De nombreuses applications Panneau de configuration affichent une feuille de propriétés pour permettre aux utilisateurs d’afficher et de modifier différents paramètres système et d’appareil. Deux de ces applications, souris et affichage, permettent aux gestionnaires de feuilles de propriétés de remplacer une ou plusieurs de leurs pages par une page personnalisée. La capture d’écran suivante montre la feuille de propriétés Propriétés de la souris .

feuille de propriétés de la souris

Les gestionnaires de feuilles de propriétés pour les applications Panneau de configuration sont similaires à ceux des types de fichiers, à deux principales exceptions près :

  • Ils sont appelés par une application Panneau de configuration, et non par l’interpréteur de commandes.
  • Ils sont enregistrés différemment.

Bon à savoir

Technologies

  • Shell

Prérequis

  • Compréhension des Panneau de configuration
  • Compréhension des menus contextuels

Instructions

Étape 1 : Inscription d’un gestionnaire de feuilles de propriétés pour une application Panneau de configuration

Un gestionnaire de feuilles de propriétés d’application Panneau de configuration doit être inscrit sous la sous-clé Panneau de configuration. Cette clé peut se trouver dans l’un des deux emplacements, selon que le gestionnaire doit être par utilisateur ou par ordinateur. Pour l’inscription par utilisateur, la sous-clé Panneau de configuration est HKEY_CURRENT_USER\Panneau de configuration. La macro REGSTR_PATH_CONTROLPANEL telle que définie dans Regstr.h peut être utilisée dans le code à la place de « Panneau de configuration ». Pour l’inscription par ordinateur, l’emplacement est :

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            Current Version
               Controls Folder

Ce chemin d’accès peut être appelé HKEY_LOCAL_MACHINE\REGSTR_PATH_CONTROLSFOLDER dans le code, à l’aide de la macro REGSTR_PATH_CONTROLSFOLDER définie dans Regstr.h.

Le Panneau de configuration les applications qui autorisent les gestionnaires de feuilles de propriétés à remplacer des pages ont une sous-clé sous la sous-clé du Panneau de configuration, nommée pour l’application, telle que Souris et Affichage. La sous-clé de l’application doit avoir une sous-clé shellex avec une sous-clé PropertySheetHandlers . Pour inscrire un gestionnaire de feuilles de propriétés, ajoutez son GUID à la sous-clé PropertySheetHandlers associée à l’application Panneau de configuration. Pour ce faire, créez une sous-clé de la sous-clé PropertySheetHandlers , nommée pour le gestionnaire de feuille de propriétés, et définissez sa valeur par défaut sur la forme de chaîne du GUID du gestionnaire.

L’exemple suivant inscrit un gestionnaire de feuilles de propriétés pour l’application Mouse Panneau de configuration par ordinateur. Pour l’inscrire par utilisateur, remplacez HKEY_LOCAL_MACHINE REGSTR_PATH_CONTROLSFOLDER\ par HKEY_CURRENT_USER\REGSTR_PATH_CONTROLPANEL.

HKEY_LOCAL_MACHINE
   REGSTR_PATH_CONTROLSFOLDER
      Mouse
         shellex
            PropertySheetHandlers
               MyPropHandler
                  (Default) = {MyPropHandler CLSID GUID}

Étape 2 : Implémentation d’un gestionnaire de feuilles de propriétés pour une application Panneau de configuration

La procédure d’implémentation d’un gestionnaire de feuilles de propriétés Panneau de configuration est très similaire à celle décrite dans Comment inscrire et implémenter un gestionnaire de feuilles de propriétés pour un type de fichier. La principale différence est que maintenant IShellPropSheetExt::ReplacePage a besoin d’une implémentation non actuelle au lieu de IShellPropSheetExt::AddPages.

Lorsqu’une application Panneau de configuration est sur le point d’afficher sa feuille de propriétés, elle appelle une fois la méthode IShellPropSheetExt::ReplacePage du gestionnaire de feuilles de propriétés pour chaque page qui peut être remplacée. Le paramètre uPageID est défini sur l’ID de la page. Les ID des pages disponibles sont définis dans Cplext.h. Les ID actuellement disponibles sont répertoriés dans le tableau suivant.

ID de page Description application Panneau de configuration
CPLPAGE_MOUSE_BUTTONS Page Boutons Souris
CPLPAGE_MOUSE_PTRMOTION Page Mouvement Souris
CPLPAGE_MOUSE_WHEEL Page Wheel Souris
CPLPAGE_KEYBOARD_SPEED Page Vitesse Clavier
CPLPAGE_DISPLAY_BACKGROUND Page Arrière-plan Affichage

 

Notes

La procédure de création et de remplacement d’une page est identique à celle de l’ajout d’une page. Pour plus d’informations, consultez Inscription et implémentation d’un gestionnaire de feuilles de propriétés pour un type de fichier.