Pour afficher correctement le contenu d'un objet snap-in, vous devez énumérer les éléments enfants de l'objet, si elles existent. Le meilleur endroit pour cette modification est dans la méthode de notification de la classe snap-in de données (dans cette discussion, CSnapNameData ).
&Notenbsp ; La classe snap-in de données est dérivée de CSnapInItemImpl.
Par défaut, l'Assistant objet ATL crée un gestionnaire d'événements pour cette notification. Dans ce gestionnaire, vous devez modifier l'existant switch déclaration pour gérer la MMCN_EXPAND et MMCN_SHOW notifications.
La MMCN_EXPAND notification est envoyée lorsque le dossier enfichable objet doit être élargie ou contracté. Dans ce cas, vous besoin d'énumérer uniquement les éléments de volet de portée. Cette énumération est faite le case déclaration de la notification de MMCN_EXPAND.
Pour insérer les éléments de volet de portée, tout d'abord récupérer le IConsoleNameSpace d'interface pour l'objet snap-in et ensuite appeler la méthode InsertItem . Le code suivant illustre la récupération des interfaces nécessaires
CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole) ;
/ / TODO : énumérer les éléments de volet de portée avec une fonction définie par l'utilisateur
La MMCN_SHOW notification est envoyée lorsqu'un élément est sélectionné ou désélectionnée pour la première fois. Cette énumération est faite le case déclaration de la notification de la MMCN_SHOW . Contrairement à l'avis de MMCN_EXPAND , vous devez énumérer tant le résultat volet éléments et les éléments de volet de portée.
Tout d'abord, énumérer les éléments de portée en récupérant la IConsoleNameSpace interface pour le composant logiciel enfichable objet et puis appeler le méthode InsertItem . Après vous avez énuméré les éléments du volet portée, faire de même pour le résultat des éléments de volet en récupérant la IResultData interface et un appel à InsertItem.
CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole) ;
/ / TODO : énumérer les éléments de volet de portée avec une fonction définie par l'utilisateur
CComQIPtr < IResultData, & IID_IResultData > spResultData(pConsole) ;
/ / TODO : énumérer les éléments de volet de résultat avec une fonction définie par l'utilisateur