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 Search.

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 qui ne sont pas des 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, ce qui permet à l’utilisateur de cliquer sur l’en-tête du groupe et d’afficher les résultats du gestionnaire de protocole uniquement. 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.

Remarque

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 via des entrées de clé de Registre décrites dans les sections suivantes :

Remarque

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\<protocol>\Version N’existe pas (valeur par défaut). Sinon, elle est supérieure ou égale à 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. Si elle 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\<protocol>\DoNotCreateSearchConnectors N’existe pas (valeur par défaut). Sinon, définissez la valeur sur 1. REG_DWORD Si elle n’existe pas, créez un fichier .searchconnector-ms dans le dossier Recherches. Si la valeur est 1, marquez comme 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 facultatif. Elle est utilisée dans l’élément Description du fichier .searchconnector-ms.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\Name Chaîne localisée pour nommer le connecteur de recherche. Utilisée 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 GUID identifiant le FOLDERTYPEID à appliquer au connecteur de recherche. REG_SZ facultatif. 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 (Shell) (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 d’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 également en tant qu’en-tête de groupe pour les résultats dans les recherches du 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, l’Explorateur Windows utilise par défaut 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 SDK Windows.

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

Utilisation de la redirection de chaînes de 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 Nom 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,-resourceID, où :
    • @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 la Fonction SHLoadIndirectString.

Restaurer 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èquespar défaut.

screen shot showing the restore default libraries menu option

Ressources supplémentaires

Conceptuel

Comprendre les gestionnaires de protocole

Développer des gestionnaires de protocoles

Notifier l’index des modifications

Ajouter des ’icônes et des menus contextuels

Exemple de code : extensions Shell pour les gestionnaires de protocoles

Installer et inscrire des gestionnaires de protocoles

Déboguer des gestionnaires de protocoles