Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’Explorateur Windows fournit une représentation graphique de l’espace de noms Shell combinée à des outils qui permettent aux utilisateurs d’interagir avec des objets Shell. Avec une extension d’espace de noms, vous pouvez prendre n’importe quel corps de données et faire en sorte que l’Explorateur Windows le présente à l’utilisateur en tant que dossier virtuel. Lorsqu’un utilisateur accède à ce dossier, vos données sont présentées sous la forme d’une hiérarchie arborescence de dossiers et de fichiers, comme le reste de l’espace de noms Shell. Les utilisateurs et les applications peuvent interagir avec le contenu de ce dossier virtuel de la même façon qu’avec n’importe quel autre objet d’espace de noms. Ce document explique comment créer une extension d’espace de noms.
- Fonctionnement d’une extension d’espace de noms
- l’objet DefView (System Folder View) par défaut
- comment l’Explorateur Windows interagit avec une extension d’espace de noms
Fonctionnement d’une extension d’espace de noms
En arrière-plan, chaque dossier affiché par l’Explorateur Windows est représenté par un objet COM (Component Object Model) appelé objet dossier. Chaque fois que l’utilisateur interagit avec un dossier ou son contenu, l’interpréteur de commandes communique avec l’objet dossier associé via l’une des interfaces standard. L’objet dossier effectue ensuite tout ce qui est nécessaire pour répondre à l’action de l’utilisateur, et l’interpréteur de commandes met à jour l’affichage de l’Explorateur Windows.
La majorité des fichiers et dossiers avec lesquels les utilisateurs interagissent font partie du système de fichiers ou d’un dossier virtuel système tel que la Corbeille. D’autres documents expliquent comment personnaliser le comportement de ces dossiers standard pour répondre aux exigences de votre application en modifiant le Registre ou en implémentant gestionnaires d’extensions Shell. Toutefois, l’extension de l’interpréteur de commandes de ces façons est la plus utile lorsque vos informations peuvent être facilement empaquetées sous la forme de fichiers ou de dossiers normaux du système de fichiers.
Il existe un certain nombre de situations où le stockage des données sous la forme d’une collection de dossiers et de fichiers de système de fichiers peut être indésirable ou même impossible. Voici quelques exemples de ce type de données :
- Collection d’éléments qui est le plus efficacement empaqueté dans un seul fichier, tel qu’une base de données.
- Collection d’éléments stockés sur un ordinateur distant qui n’a pas de système de fichiers Windows standard. Par exemple, ces données sont les informations stockées sur un assistant numérique personnel (PDA) ou une caméra numérique.
- Collection d’éléments qui ne représentent pas les données stockées. Voici un exemple de ces données : les liens d’imprimante contenus dans le dossier Imprimantes standard.
Une façon de présenter ce type de données à un utilisateur consiste à écrire une application pour permettre aux utilisateurs d’afficher et d’interagir avec les différents éléments. Toutefois, si vos données peuvent être présentées sous la forme d’une hiérarchie de dossiers/fichiers, une grande partie des fonctionnalités que vous devez implémenter peut être des services d’interface utilisateur déjà fournis par l’Explorateur Windows. Une approche beaucoup plus efficace pourrait être d’écrire une extension d’espace de noms et de permettre à l’Explorateur Windows de devenir votre interface graphique.
Pour implémenter une extension d’espace de noms, vos informations doivent être organisées en tant qu’espace de noms structurés par arborescence. La racine de l’espace de noms est représentée sous la forme d’un dossier virtuel dans l’espace de noms Shell. Le dossier racine, ainsi que tous ses sous-dossiers et éléments de données, fait partie de l’espace de noms Shell, et l’Explorateur Windows devient votre interface utilisateur. Vous pouvez ainsi présenter vos informations à l’utilisateur d’une manière familière et facilement accessible avec beaucoup moins de programmation d’interface utilisateur que nécessaire pour une application personnalisée.
Une extension d’espace de noms se compose de deux composants de base :
- Un gestionnaire de données
- Interface entre le gestionnaire de données et l’Explorateur Windows
Le premier composant de la liste est entièrement à vous. Vous pouvez stocker et gérer vos données de quelque manière que ce soit, ce qui est le plus efficace. Le deuxième composant est le code nécessaire pour empaqueter vos données en tant qu’objets de dossier et gérer l’interaction avec l’Explorateur Windows. L’Explorateur Windows peut ensuite appeler ces objets pour permettre aux utilisateurs d’afficher et d’interagir avec vos données comme s’il s’agissait d’une collection de dossiers et de fichiers. Les objets de dossier de votre extension d’espace de noms doivent interagir avec l’Explorateur Windows comme s’ils étaient des dossiers normaux. Avant de tenter d’implémenter une extension d’espace de noms, vous devez d’abord comprendre comment l’Explorateur Windows gère un objet de dossier.
Objet d’affichage de dossiers système par défaut (DefView)
L’interpréteur de commandes fournit une implémentation par défaut de la vue dossier, connue sous le nom de DefView, afin que vous puissiez éviter une grande partie du travail d’implémentation de votre propre extension d’espace de noms. Étant donné que certaines fonctionnalités d’affichage ne peuvent pas être obtenues par le biais d’affichages personnalisés, il est souvent recommandé d’utiliser l’objet d’affichage système par défaut à la place d’une vue personnalisée. Pour plus d’informations, consultez SHCreateShellFolderView.
Comment l’Explorateur Windows interagit avec une extension d’espace de noms
L’Explorateur Windows fournit aux utilisateurs une interface utilisateur graphique qui leur permet d’effectuer diverses tâches, notamment :
- Naviguer dans la hiérarchie d’espaces de noms et afficher le contenu des dossiers.
- Gestion des contenus de l’espace de noms en déplaçant, en supprimant et en copiant des objets.
- Récupération de plusieurs types d'informations à propos des objets.
- Lancement d'applications.
L’interface graphique utilisateur de l’Explorateur Windows comporte cinq composants de base. L’illustration suivante nomme les composants et montre où ils sont généralement affichés dans l’Explorateur Windows.
illustration
Lorsqu’un utilisateur affiche un dossier appartenant à une extension d’espace de noms dans l’Explorateur Windows, l’objet dossier a au moins un contrôle partiel sur le contenu des cinq zones.
Arborescence
L’arborescence fournit une vue générale de l’espace de noms. Cette zone héberge un contrôle d’arborescence qui peut afficher chaque dossier de l’espace de noms et la position du dossier dans la hiérarchie de l’espace de noms. Un utilisateur peut effectuer plusieurs opérations avec la zone d’arborescence, notamment :
- Affichage ou masquage du niveau suivant dans l’espace de noms.
- Copie, déplacement ou suppression de dossiers.
- Cliquez avec le bouton droit sur un dossier pour afficher un menu contextuel.
- Sélection d’un dossier et affichage de son contenu dans l’affichage dossier.
L’arborescence communique avec les objets dossier principalement via leur interface IShellFolder. Par exemple, lorsqu’un utilisateur clique sur le signe plus (+) en regard de l’icône du dossier, l’Explorateur Windows développe l’affichage pour afficher les sous-dossiers du dossier. Pour obtenir les informations nécessaires à la mise à jour de la vue arborescente, l'explorateur effectue plusieurs appels à l’interface IShellFolder de l’objet dossier pour :
- Demandez les attributs du dossier.
- Énumérez le contenu du dossier.
- Demander les noms d'affichage pour chaque sous-dossier.
- Demander une icône à afficher en regard de chaque dossier.
L’Explorateur Windows met ensuite à jour l’arborescence pour afficher les sous-dossiers du dossier sélectionné. Si les sous-dossiers ont des sous-dossiers, un caractère « + » s’affiche en regard de son icône de dossier. L'utilisateur peut également effectuer un certain nombre de tâches plus complexes avec l’arborescence, notamment :
- Utilisation du Presse-papiers pour couper ou copier un dossier et le coller dans un autre dossier.
- Utilisation du glisser-déplacer pour couper ou copier un dossier et le déplacer sur un autre dossier.
- Utilisation d’un moteur de recherche pour rechercher des éléments dans un dossier ou ses sous-dossiers.
- Modification des propriétés du dossier.
Pour plus d’informations sur la façon dont une extension d’espace de noms gère ces actions de l'utilisateur, consultez Implémentation des interfaces de base de l'objet dossier.
Vue du dossier
Lorsqu’un utilisateur sélectionne un dossier, le contenu du dossier s’affiche dans l’affichage dossier. Dans une certaine mesure, la fonctionnalité normale de l’affichage du dossier se chevauche avec la vue arborescente. Les utilisateurs peuvent déplacer ou copier des dossiers, modifier les propriétés du dossier, afficher le contenu d’un sous-dossier, afficher un menu contextuel pour un dossier, et ainsi de suite. Il existe cependant des différences entre l’arborescence et la vue de dossier :
- La vue Dossier affiche uniquement le contenu d’un seul dossier, pas partie ou toute la hiérarchie d’espaces de noms.
- La vue Dossier affiche les objets de fichier ainsi que les objets de dossier.
- La vue du dossier peut afficher beaucoup plus d’informations sur les objets que la vue arborescente.
- La vue de dossier permet aux extensions de l'espace de noms de contrôler presque entièrement les informations à afficher ainsi que la manière dont elles le sont. Seuls des aspects mineurs de l’arborescence, comme les icônes de dossier, peuvent être modifiés.
Contrairement à l’arborescence, l’Explorateur Windows ne contrôle pas directement le contenu de l’affichage dossier. La vue dossier est une zone que l’Explorateur Windows fournit aux objets de dossier. L’affichage et la gestion du contenu d’un dossier dans l’affichage dossier sont la responsabilité de l’objet dossier. Bien que la plupart des vues de dossiers suivent un format assez standard, il existe en fait quelques limitations sur ce qui peut être affiché ou comment. Un cas extrême est le dossier Internet, qui est un navigateur complet.
Lorsqu’un utilisateur sélectionne un dossier qui appartient à votre extension d’espace de noms, vous créez une fenêtre et transmettez son handle à l’Explorateur Windows. Cette fenêtre devient un enfant de la fenêtre d’affichage des dossiers. L’Explorateur Windows fournit les dimensions de la fenêtre d’affichage des dossiers, mais ne place aucune restriction sur le contenu de votre fenêtre enfant. Vous pouvez ensuite utiliser la fenêtre enfant pour afficher la vue du dossier correspondant.
Les extensions de l’espace de noms utilisent l’une des deux approches permettant de créer une vue de dossier :
- Utilisez votre fenêtre enfant pour héberger un contrôle de vue de liste. Ce contrôle vous permet d’afficher le contenu d’un dossier de la même façon que l’Explorateur Windows vue classique.
- Utilisez votre fenêtre enfant pour héberger un contrôle WebBrowser et utiliser un document HTML dynamique (DHTML) pour afficher le contenu du dossier.
Les deux approches affichent une vue de dossier qui ressemble beaucoup à celle affichée pour les dossiers système. Toutefois, si vous souhaitez utiliser un autre schéma d’affichage, vous êtes libre de le faire.
Barre de menus et barres d’outils
Comme la plupart des applications Windows, l’Explorateur Windows fournit à l’utilisateur une collection d’outils. Une sélection complète des outils est disponible via la barre de menus. Les outils les plus couramment utilisés sont également représentés par des boutons ou des zones d’édition dans une barre d’outils. Contrairement à de nombreuses applications Windows, la barre de menus de l’Explorateur Windows est en fait un contrôle de barre d’outils qui a été personnalisé pour se comporter comme un menu conventionnel. La barre de menus et la barre d’outils sont toutes deux incorporées dans une barre utile pour permettre aux utilisateurs d’organiser les contrôles individuels en fonction de leurs besoins.
Par défaut, l’Explorateur Windows prend en charge un ensemble standard de boutons et d’éléments de menu, tels que Copier et Propriétés. Votre extension d’espace de noms peut personnaliser la barre de menus et les barres d’outils en supprimant les outils standard et en ajoutant des outils personnalisés. Lorsque votre objet d’affichage de dossiers est initialisé, l’Explorateur Windows transmet un pointeur vers son interface IShellBrowser. Cette interface prend en charge plusieurs méthodes que vous pouvez appeler pour personnaliser la barre de menus et la barre d’outils. Lorsque l’utilisateur sélectionne l’un de vos éléments de menu personnalisés ou boutons de barre d'outils, l’Explorateur Windows transfère les messages WM_COMMAND pour ces éléments personnalisés vers la procédure de fenêtre de votre fenêtre enfant.
Barre d’état
La barre d’état de l’Explorateur Windows affiche des informations sur l’objet actuellement sélectionné. Votre extension d’espace de noms peut utiliser la barre d’état pour afficher des informations d’état, telles qu’une chaîne de texte. Vous pouvez personnaliser la barre d’état en appelant IShellBrowser.