Création d’un connecteur de recherche pour un gestionnaire de protocole

L’Explorateur Windows contrôle la création d’un connecteur de recherche pour un gestionnaire de protocole via des entrées de clé de Registre. Grâce au Registre, les implémenteurs et les tiers peuvent permettre aux gestionnaires de protocoles nouveaux et hérités de participer à la recherche Windows 7.

Cette rubrique est organisée comme suit :

À propos des connecteurs de recherche pour les gestionnaires de protocole dans Windows 7

Dans Windows 7, les recherches à partir du menu Démarrer ou de l’Explorateur Windows incluent uniquement des fichiers dans des emplacements indexés et des éléments de système non de fichiers tels que les magasins de données distants ou les éléments de gestionnaire de protocole qui ont un connecteur de recherche. Outre l’inclusion des éléments du gestionnaire de protocole dans l’étendue du menu Démarrer et des recherches Shell, le connecteur de recherche permet au menu Démarrer de regrouper les éléments du gestionnaire de protocole dans les résultats du menu Démarrer , avec l’avantage résultant que l’utilisateur peut cliquer sur l’en-tête du groupe et afficher les résultats à partir du seul gestionnaire de protocole. L’utilisateur peut également accéder au dossier Recherches , ouvrir le fichier du connecteur de recherche et effectuer une recherche qui inclut uniquement les éléments du gestionnaire de protocole spécifique associé à ce connecteur de recherche.

Lorsqu’un utilisateur démarre d’abord une application qui inscrit un gestionnaire de protocole, l’Explorateur Windows génère un fichier de connecteur de recherche (.searchConnector-ms) pour le gestionnaire de protocole dans le dossier Recherches de l’utilisateur. Les applications avec des gestionnaires de protocole peuvent choisir de désactiver ce comportement ou de personnaliser le nom et la description du connecteur de recherche de gestionnaire de protocole.

Note

L’emplacement du dossier Recherches de l’utilisateur est %userprofile%\Recherches ou FOLDERID_SavedSearches. Le GUID de FOLDERID_SavedSearches est {7d1d3a04-debb-4115-95cf-2f29da2920da}.

 

L’Explorateur Windows contrôle la création d’un connecteur de recherche pour un gestionnaire de protocole par le biais d’entrées de clé de Registre décrites dans les sections suivantes :

Note

Il n’existe aucun moyen programmatique de créer un connecteur de recherche pour un gestionnaire de protocole. Ils doivent être configurés via le Registre.

 

Les clés de Registre et leurs valeurs possibles sont décrites dans le tableau suivant. Un gestionnaire de protocole peut remplir certaines ou toutes ces clés de Registre où <le protocole> est remplacé par le nom réel de son protocole, tel que MAPI, fichier ou csc, par exemple.

Clé du Registre Valeur(s) possible(s) Type Commentaires
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocole>\Version N’existe pas (valeur par défaut). Sinon, il est supérieur ou égal à 1. REG_DWORD Cette valeur est utilisée pour détecter les modifications apportées aux inscriptions de modèles d’emplacement pour les racines de recherche qui ont déjà été traitées. S’il n’existe pas, utilisez 0 comme valeur par défaut. Vous pouvez également incrémenter la version pour informer l’Explorateur Windows que le connecteur de recherche doit être régénéré, car une version plus récente du gestionnaire de protocole a été installée.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocole>\DoNotCreateSearchConnectors N’existe pas (valeur par défaut). Sinon, réglez sur 1. REG_DWORD S’il n’existe pas, créez un fichier .searchconnector-ms dans le dossier Recherches. Si la valeur est 1, marquez comme étant traité et ne faites rien.
<HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\protocol>\Default\Description Chaîne localisable contenant la description du connecteur de recherche. REG_SZ Optional. Il est utilisé dans l’élément Description du fichier .searchconnector-ms.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocole>\Default\Name Chaîne localisée pour nommer le connecteur de recherche. Utilisé comme nom du fichier .searchconnector-ms. REG_SZ Chaque emplacement doit avoir un nom unique. En l'absence de cette valeur, le nom d'affichage fourni par l'interface IShellFolder du gestionnaire de protocole sera utilisé.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\FolderType Un GUID identifiant le FOLDERTYPEID à appliquer au connecteur de recherche. REG_SZ Optional. Utilisé dans l’élément folderType du fichier .searchconnector-ms pour indiquer quels modèles doivent être utilisés pour afficher les résultats. Par exemple, la valeur GUID de FOLDERTYPEID_Documents.

 

Désactivation de la création d’un connecteur de recherche de gestionnaire de protocole

Si votre application expose des éléments via un gestionnaire de protocole à utiliser dans l’application elle-même et que vous ne souhaitez pas exposer les éléments via l’interpréteur de commandes (dans le menu Démarrer et les recherches de l’Explorateur Windows), vous devez désactiver la création d’un connecteur de recherche pour votre gestionnaire de protocole.

Pour désactiver la création du connecteur de recherche, définissez DoNotCreateSearchConnectors sur 0x00000001(1), comme indiqué dans l’exemple de clé de Registre suivant.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  DoNotCreateSearchConnectors

Si DoNotCreateSearchConnectors est défini sur 1, nous vous recommandons d’exposer la propriété System.Shell.OmitFromView sur chaque élément exposé par le gestionnaire de protocole et de définir la valeur de cette propriété sur TRUE. Cela empêche les éléments du gestionnaire de protocole d’apparaître sous le groupe Fichiers du menu Démarrer.

Si DoNotCreateSearchConnectors est présent et défini sur zéro, l’Explorateur Windows crée un connecteur de recherche pour le gestionnaire de protocole, et les éléments du gestionnaire de protocole sont retournés dans le menu Démarrer et les recherches de l’Explorateur Windows.

Personnalisation du nom, de la description ou du FolderType pour un connecteur de recherche de gestionnaire de protocole

Le nom du connecteur de recherche est utilisé non seulement pour identifier le connecteur de recherche dans le dossier Recherches , mais en tant qu’en-tête de groupe pour les résultats dans les recherches de menu Démarrer . Par conséquent, il est important de fournir un nom descriptif pour le connecteur de recherche. Si un nom n’est pas fourni dans la clé de Registre, par défaut, l’Explorateur Windows utilise le nom fourni par l’interface IShellFolder pour la racine de recherche et la description vide du gestionnaire de protocole. Vous pouvez remplacer le nom par défaut par le biais d’une entrée de clé de Registre sans avoir à renommer l’interface IShellFolder. Bien qu’il ne soit pas aussi visible que le nom du connecteur de recherche, vous pouvez également remplacer la description du connecteur de recherche en fournissant votre propre description.

Pour remplacer le nom ou la description par défaut, définissez les entrées comme indiqué dans l’exemple de Registre suivant.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     Name
                     Description

En outre, l’entrée FolderType peut être définie sur l’un des GUID FOLDERTYPEID . La valeur doit être le GUID réel, et non son nom. Par exemple, {94d6ddcc-4a68-4175-a374-bd584a510b78} plutôt que FOLDERTYPEID_Music. Le GUID d’un FOLDERTYPEID peut être obtenu dans le fichier d’en-tête Shlguid.h dans le Kit de développement logiciel (SDK) Windows.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}

Utilisation de la redirection des chaînes de caractères du Registre

Vous pouvez utiliser une chaîne redirigée pour vous assurer que le nom que vous fournissez pour le connecteur de recherche peut être localisé. Vous pouvez inclure des chaînes localisables pour les clés de Registre de nom et de description au lieu d’entrer la chaîne réelle dans le Registre.

Pour inclure une chaîne localisable pour les valeurs Name ou Description, définissez la valeur comme indiqué dans l’exemple de clé de Registre suivant.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Name = @dllname.dll,-resourceID

La chaîne localisable prend le format suivant :

  • @dllname.dll,-resourceIDoù:
    • @dllname.dll est le chemin d’accès à la DLL qui contient la ressource de chaîne
    • resourceID est l’ID de ressource entier de la ressource de chaîne

Le format d’une chaîne indirecte et d’une chaîne indirecte ajoutée avec un modificateur de version est décrit dans SHLoadIndirectString Function.

Restauration d’un connecteur de recherche de gestionnaire de protocole supprimé

Étant donné que les connecteurs de recherche sont des fichiers sur l’ordinateur de l’utilisateur, ils peuvent être supprimés par erreur. Pour restaurer tous les connecteurs de recherche de gestionnaire de protocole supprimés, restaurez les bibliothèques par défaut. Pour ce faire, ouvrez l’Explorateur Windows, cliquez avec le bouton droit sur le dossier Bibliothèques , puis sélectionnez Restaurer les bibliothèques par défaut.

capture d’écran montrant l’option de menu Restaurer les bibliothèques par défaut

Ressources supplémentaires

conceptuelle

Présentation des gestionnaires de protocole

Développement de gestionnaires de protocole

Notification de l’index des modifications

Ajout d’icônes et de menus contextuels

Exemple de code : Extensions shell pour les gestionnaires de protocole

Installation et inscription de gestionnaires de protocole

Débogage des gestionnaires de protocole