Partager via


Intégrer un fournisseur de stockage cloud

Lorsque vous avez un fournisseur de stockage cloud, vous devez suivre quelques étapes afin de fournir une expérience cohérente et préférée à l’utilisateur. Ces deux éléments sont l’inscription en tant que fournisseur racine de synchronisation et l’intégration de votre application au niveau racine du volet de navigation.

Important

L’intégration de votre fournisseur de stockage cloud n’est prise en charge qu’à partir de Windows 10.

 

La première chose consiste à s’inscrire en tant que fournisseur racine de synchronisation. Cela permet à Windows Shell d’être au courant de votre application et du fait que celle-ci sera responsable de la synchronisation des fichiers sous votre racine de synchronisation. Cela permet également aux autres applications de savoir que vous synchronisez ces fichiers afin qu’elles puissent répondre de manière appropriée. D’autres applications peuvent ensuite utiliser StorageFile.Provider pour obtenir le DisplayName et l’ID de votre application.

Pour vous inscrire en tant que fournisseur racine de synchronisation, vous devez créer plusieurs entrées de Registre. Avant de fournir la liste des paires clé-valeur, voici quelques espaces réservés que vous devez remplacer par vos propres données d’application.

  • [ID de fournisseur de stockage] : nom de votre fournisseur de stockage cloud. Ce nom doit être cohérent quelle que soit la version de votre application. OneDrive en est un exemple.
  • [Windows SID] : sid Windows unique qui identifie l’utilisateur. Si votre application prend en charge plusieurs installations pour plusieurs utilisateurs sur un seul ordinateur, cette pièce est requise.
  • [ID de compte] : identificateur du fournisseur de services pour le compte actuel de cet utilisateur. Certains fournisseurs nécessitent la possibilité de fournir plusieurs racines de synchronisation pour un utilisateur. Un travail et un compte personnel en sont un exemple. L’ID de compte vous permet d’avoir plusieurs comptes inscrits pour un seul utilisateur. Si votre fournisseur prend en charge plusieurs racines de synchronisation par utilisateur, cet élément est requis.

Ces espaces réservés sont combinés pour former l’ID racine de synchronisation. Vous devez placer un caractère ! entre chacun des espaces réservés lors de la formation de l’ID racine de synchronisation. Voici les paires clé-valeur qui doivent être créées.

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[ID du fournisseur de stockage]![Windows SID]![ID de compte]\DisplayNameResource : pointe vers la ressource où l’interpréteur de commandes Windows ou d’autres applications peuvent obtenir un nom convivial pour votre racine de synchronisation.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[ID du fournisseur de stockage]![Windows SID]![ID de compte]\IconResource : pointe vers la ressource où l’interpréteur de commandes Windows ou d’autres applications peuvent obtenir une icône pour votre racine de synchronisation.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[ID du fournisseur de stockage]![Windows SID]![ID de compte]\UserSyncRoots\[Windows SID] : emplacement sur le disque où se trouve la racine de synchronisation.

Outre l’inscription en tant que fournisseur racine de synchronisation, vous souhaitez également que les utilisateurs aient facilement accès aux données que vous fournissez. L’espace de noms Explorateur de fichiers est conçu pour fournir une méthode d’accès facile. La création d’une extension d’espace de noms pour votre fournisseur et son incorporation dans la fenêtre Explorateur de fichiers permettront aux utilisateurs d’interagir avec le niveau racine de vos services comme ils le font avec d’autres éléments Explorateur de fichiers. Cette rubrique explique comment étendre l’espace de noms Explorateur de fichiers afin que votre fournisseur apparaisse au niveau racine dans le volet de navigation.

Le volet de navigation de la fenêtre Explorateur de fichiers est la partie de la fenêtre affichée sur le côté gauche. Dans l’image ci-dessous, vous pouvez voir la structure de l’espace de noms pour cet utilisateur. Le niveau racine du volet de navigation inclut les objets pour OneDrive, Ce PC et Réseau. En suivant ces étapes, votre extension sera ajoutée au même niveau.

volet de navigation

Pour ajouter votre extension au volet de navigation, vous devez disposer des éléments suivants avant de modifier le Registre :

  • Dossier de système de fichiers qui contient les données à afficher pour l’utilisateur.

  • Nom de votre service cloud qui apparaîtra dans le volet de navigation. Il peut également s’agir du nom du instance si votre service prend en charge plusieurs comptes.

  • Icône d’identification pour votre application.

  • CLSID pour votre application. Une façon de générer un CLSID pour votre application consiste à utiliser le Uuidgen.exe. Pour plus d’informations sur LE CLSID, consultez Clé CLSID .

Les étapes suivantes modifient le Registre afin d’obtenir les informations nécessaires dans l’espace de noms Explorateur de fichiers. Les étapes spécifiques font trois choses.

  • Créez des clés dans le Registre pour votre CLSID qui inclut des valeurs pour le nom et l’icône de votre extension, ainsi que d’autres informations qui définissent son comportement.

  • Configurez votre extension pour qu’elle soit intégrée dans le volet de navigation à l’emplacement approprié et avec la visibilité appropriée.

  • Configurez votre extension pour qu’elle ait le comportement attendu pour un élément dans le volet de navigation.

Ces instructions utilisent spécifiquement la commande reg.exe , mais vous pouvez utiliser n’importe quel outil de modification du Registre de votre choix. Vous pouvez même intégrer ces étapes dans un programme d’installation qui met à jour le Registre par programme.

Instructions

Étape 1 : Ajouter votre CLSID et nommer votre extension

Ajoutez le nom de votre extension au Registre sous HKEY_CURRENT_USER. Vous allez également ajouter l’identificateur unique pour cette extension. Il est possible d’ajouter plusieurs extensions par utilisateur, mais dans ce cas, vous aurez besoin d’un nom et d’un identificateur uniques pour chaque extension. Ce nom et cet identificateur doivent être cohérents tout au long de ces étapes. Dans cet exemple, le nom est MyCloudStorageApp.

Important

L’identificateur fourni (0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3) dans ces étapes est simplement utilisé comme exemple. Vous devrez le remplacer par votre CLSID unique.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d « MyCloudStorageApp » /f

Étape 2 : Définir l’image de votre icône

Indiquez le chemin d’accès à l’icône qui doit être affichée dans le volet de navigation. Dans l’exemple ci-dessous, 1043 fait référence à l’identificateur de ressource de l’icône dans la DLL indiquée.

Important

Vous devez mettre à jour le chemin d’accès de l’image. Il doit pointer vers un chemin générique où votre application a installé une image.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\DefaultIcon /ve /t REG_EXPAND_SZ /d %%SystemRoot%%\system32\imageres.dll,-1043 /f

Étape 3 : Ajouter votre extension au volet de navigation et la rendre visible

La définition de cette valeur sur 0x1 indique que l’extension doit être épinglée. Cela permet de s’assurer qu’il est affiché aux utilisateurs par défaut. La configuration par défaut d’un utilisateur est que seuls les éléments épinglés s’affichent dans le volet de navigation. Un utilisateur peut modifier ce paramètre en cliquant avec le bouton droit dans le volet de navigation et en sélectionnant Afficher tous les dossiers. Si vous ne souhaitez pas épingler votre extension, vous pouvez définir cette valeur sur 0x0. Cela ne supprimera pas votre extension, mais empêchera simplement son affichage pour l’utilisateur par défaut.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v System.IsPinnedToNameSpaceTree /t REG_DWORD /d 0x1 /f

Étape 4 : Définir l’emplacement de votre extension dans le volet de navigation

Cela est essentiel pour s’assurer que le volet de navigation offre une expérience cohérente pour l’utilisateur.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v SortOrderIndex /t REG_DWORD /d 0x42 /f

Étape 5 : Fournissez la dll qui héberge votre extension.

Utilisez le shell32.dll pour émuler les dossiers Windows par défaut. Modifiez cela uniquement si vous avez une raison spécifique de le faire et que vous êtes familiarisé avec les extensions d’espace de noms.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\InProcServer32 /ve /t REG_EXPAND_SZ /d %%systemroot%%\system32\shell32.dll /f

Étape 6 : Définir l’objet instance

Indiquez que votre extension d’espace de noms doit fonctionner comme d’autres structures de dossiers de fichiers dans Explorateur de fichiers. Pour plus d’informations sur les objets instance shell, consultez Création d’extensions d’interpréteur de commandes avec des objets d’instance shell.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance /v CLSID /t REG_SZ /d {0E5AAE11-A475-4c5b-AB00-C66DE400274E} /f

Étape 7 : Fournir les attributs du système de fichiers du dossier cible

Cela est nécessaire pour s’assurer que le Explorateur de fichiers offre une expérience cohérente et attendue pour les utilisateurs. Cette commande définit FILE_ATTRIBUTE_DIRECTORY et FILE_ATTRIBUTE_READONLY, qui sont des constantes d’attribut de fichier.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v Attributes /t REG_DWORD /d 0x11 /f

Étape 8 : Définir le chemin d’accès pour la racine de synchronisation

Définissez le chemin d’accès de la racine de synchronisation.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v TargetFolderPath /t REG_EXPAND_SZ /d %%USERPROFILE%%\MyCloudStorageApp /f

Étape 9 : Définir les indicateurs d’interpréteur de commandes appropriés

Définissez certains indicateurs nécessaires pour épingler votre extension d’espace de noms à l’arborescence Explorateur de fichiers.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v FolderValueFlags /t REG_DWORD /d 0x28 /f

Étape 10 : Définir les indicateurs appropriés pour contrôler le comportement de votre interpréteur de commandes

Définissez les indicateurs SFGAO appropriés. Les indicateurs appropriés sont SFGAO_CANCOPY, SFGAO_CANLINK, SFGAO_STORAGE, SFGAO_HASPROPSHEET, SFGAO_STORAGEANCESTOR, SFGAO_FILESYSANCESTOR, SFGAO_FOLDER, SFGAO_FILESYSTEM et SFGAO_HASSUBFOLDER.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v Attributes /t REG_DWORD /d 0xF080004D /f

Étape 11 : Inscrire votre extension à la racine de l’espace de noms

Configurez l’extension d’espace de noms pour qu’elle soit enfant du dossier de bureau.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d MyCloudStorageApp /f

Étape 12 : Masquer votre extension du Bureau

Il est important que votre extension s’affiche uniquement dans le volet de navigation du Explorateur de fichiers. Une extension d’espace de noms ne fonctionne pas comme un raccourci normal. Par conséquent, vous ne devez pas utiliser cette méthode pour créer un raccourci Bureau.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /t REG_DWORD /d 0x1 /f