Localisation des chaînes redirigées

Cette rubrique décrit les instructions de programmation pour localiser les chaînes de Registre redirigées. Pour plus d’informations, consultez Utilisation de la redirection de chaînes du Registre.

Charger une valeur de Registre Language-Neutral

Sur Windows Vista et versions ultérieures, l’application MUI utilise une valeur de Registre indépendante de la langue pour autoriser l’accès aux chaînes spécifiques à la langue stockées dans une table de ressources de chaîne. Pour plus d’informations, consultez Créer une ressource Language-Neutral dans Utilisation de la redirection de chaînes du Registre.

Le code d’application qui lit la valeur non linguistique du Registre doit charger les chaînes dans la langue d’interface utilisateur appropriée en appelant RegLoadMUIStringW. Si vous utilisez cette fonction, votre application n’a pas besoin de traiter explicitement le chargement des ressources.

Si vous mettez à jour une application existante vers l’utilisation non linguistique du Registre, vous conservez généralement les valeurs de chaîne existantes, localisées en anglais ou dans une autre langue unique dans le Registre, comme secours et pour la compatibilité descendante. Le fait de conserver une chaîne littérale dans le Registre permet à l’application de revenir à la chaîne littérale en cas d’échec d’un appel à RegLoadMUIStringW . Vous devez décider comment implémenter un tel secours, car MUI ne fournit aucune prise en charge pour une telle implémentation.

Utiliser l’API Shell pour définir des chaînes de raccourci à partir du Registre

Votre application peut utiliser l’API shell pour créer des chaînes pour les raccourcis qui lient des fichiers ou dossiers dans le menu Démarrer ou sur le bureau. Pour plus d’informations, consultez Créer des ressources pour des chaînes de raccourci dans Utilisation de la redirection de chaînes du Registre.

L’application peut utiliser SHSetLocalizedName pour charger le nom d’affichage compatible MUI pour un raccourci. Il doit utiliser IShellLink::SetDescription pour définir l’info-bulle associée. Les appels inscrivent les chaînes auprès du Registre. Considérez les exemples suivants, pour lesquels « HKCR » représente la clé de Registre HKEY_CLASSES_ROOT :

HKCR,"CLSID\%CLSID_AntiSpyware%",,,"Windows AntiSpyware"

HKCR,"CLSID\%CLSID_AntiSpyware%","LocalizedString",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-104"

HKCR,"CLSID\%CLSID_AntiSpyware%","InfoTip",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-208"

La première ligne fournit une chaîne littérale non localisée pour la compatibilité descendante et de secours. La deuxième ligne montre la méthode compatible MUI pour inscrire le nom d’affichage. Cette ligne indique l’identificateur de chaîne 104 stocké dans Msascui.exe (pour Windows XP) ou dans son fichier propre à la langue associé (pour Windows Vista). Cet identificateur de chaîne correspond à « Mes emplacements réseau ». La troisième ligne de l’exemple gère l’inscription d’InfoTip. %CLSID_AntiSpyware% spécifie une variable d’environnement représentant le GUID qui correspond à l’identificateur de classe de ce composant.

Pour l’exemple ci-dessus, l’application appelle SHSetLocalizedName pour spécifier le chemin d’accès de l’exécutable pour les deux premiers paramètres et spécifier idsRes comme « @%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104 ». Un appel à IShellLink::SetDescription spécifie le chemin d’accès de l’info-bulle comme « @%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208 ».

Interroger des noms de types de document conviviaux dans le Registre

La création de ressources pour des noms de type de document conviviaux est abordée dans Créer des ressources pour des noms de type de document conviviaux dans Utilisation de la redirection de chaînes du Registre. Pour interroger un nom de document convivial, l’application doit utiliser IQueryAssociations::Init, suivie d’un appel à IQueryAssociations::GetString. L’appel à IQueryAssociations::Init spécifie le type de document, par exemple « .txt ». L’appel à IQueryAssociations::GetString doit spécifier ASSOCSTR_FRIENDLYDOCNAME comme identificateur de chaîne.

Inscrire les chaînes de composant logiciel enfichable de la console de gestion Microsoft non lues à partir du Registre

Votre application peut utiliser un composant logiciel enfichable MMC (Microsoft Management Console) pour héberger ses tâches de gestion. La plupart des chaînes sont gérées en tant que ressources à l’aide des paramètres de Registre décrits dans Créer des ressources de chaîne pour Microsoft Management Console Snap-Ins dans Utilisation de la redirection de chaînes du Registre. Toutefois, certains composants logiciels enfichables inscrivent des valeurs de chaîne de Registre que MMC ne peut pas lire à partir du Registre. Dans ce cas, le composant logiciel enfichable doit obtenir les valeurs à l’aide de l’interface ISnapinAbout , qui est compatible MUI.

Définir le nom complet et la description d’un service Windows à partir du Registre

Si votre application MUI utilise un service Windows, elle doit afficher le nom d’affichage et la description du service. Les ressources associées sont décrites dans « Créer des ressources de chaîne pour un service Windows » dans Utilisation de la redirection de chaînes du Registre.

Pour définir le nom d’affichage du service, l’application MUI appelle CreateService ou ChangeServiceConfig. Le nom est une chaîne de la forme «@<PE-path>,-<stringID>[;<comment>] ». Par exemple, si votre service est implémenté par un fichier .dll avec le chemin %ProgramFiles%\%MyPath%\MyDll.dll et que l’identificateur de chaîne du nom d’affichage spécifique à la langue est 347, le paramètre est spécifié comme «@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347 ». Les barres obliques inverses doubles (\\) sont nécessaires, car C/C++ utilise la barre oblique inverse comme caractère d’échappement dans les chaînes.

Pour définir la description du service spécifique à la langue, l’application MUI doit faire en sorte que le membre lpDescription d’une structure SERVICE_DESCRIPTION indique une chaîne de forme «@<PE-path>,-<stringID>[;<comment>] », en référençant l’identificateur de chaîne approprié. Ensuite, l’application appelle ChangeServiceConfig2 avec le paramètre dwInfoLevel spécifié comme SERVICE_CONFIG_DESCRIPTION et le paramètre lpInfo spécifié comme structure SERVICE_DESCRIPTION .

Localisation des ressources Win32 PE

Utilisation de la redirection de chaînes du Registre