DEVPROP_TYPE_STRING_INDIRECT

L’identificateur DEVPROP_TYPE_STRING_INDIRECT représente l’identificateur de type de données de base pour une chaîne Unicode terminée par NULL qui contient une référence de chaîne indirecte.

Remarks

Une référence de chaîne indirecte décrit une ressource de chaîne qui contient la chaîne réelle. La référence de chaîne indirecte peut apparaître dans l’un des formats suivants :

@[chemin\]FileName,-ResourceID
Windows extrait la chaîne du module spécifié par les entrées chemin d’accès et FileName, et l’identificateur de ressource de la chaîne est fourni par l’entrée ResourceID (à l’exclusion du signe moins requis). La ressource de chaîne est chargée à partir de la section de ressource de module qui correspond le mieux à l’une des langues d’interface utilisateur préférées de l’appelant. L’entrée de chemin d’accès est facultative. Si vous spécifiez l’entrée de chemin d’accès , le module doit se trouver dans un répertoire qui se trouve dans le chemin de recherche défini par le système.

@ InfName,%strkey%
Windows extrait la chaîne de la section Chaînes INF du fichier INF dans le répertoire %SystemRoot%\inf dont le nom est fourni par l’entrée InfName. L’identificateur de jeton strkey doit correspondre à la clé d’une ligne dans la section Chaînes qui correspond le mieux à l’une des langues d’interface utilisateur préférées de l’appelant. Si aucune section Strings spécifique à la langue n’existe, Windows utilise la section Chaînes par défaut.

Vous ne pouvez pas combiner DEVPROP_TYPE_STRING_INDIRECT avec les modificateurs de type propriété-données.

Définition d’une propriété de ce type

Pour définir une propriété dont le type de données de base est DEVPROP_TYPE_STRING_INDIRECT, appelez la fonction de propriété SetupDiSetXxx correspondante et définissez les paramètres d’entrée de fonction comme suit :

  • Définissez le paramètre PropertyType sur DEVPROP_TYPE_STRING_INDIRECT.

  • Définissez le paramètre PropertyBuffer sur un pointeur vers une mémoire tampon qui contient la chaîne terminée par NULL qui fournit une référence de chaîne indirecte.

  • Définissez le paramètre PropertyBufferSize sur la taille, en octets, de la chaîne.

  • Définissez les paramètres de fonction restants selon les besoins pour définir la propriété.

Récupération de la valeur de ce type de propriété

Lorsqu’une application appelle une fonction de propriété SetupDiGetXxx pour récupérer la valeur d’une propriété de ce type de données de base, Windows tente de localiser la chaîne réelle référencée par la propriété. Si Windows pouvez récupérer la chaîne réelle, elle retourne la chaîne réelle à l’appelant et identifie le type de données de base de la propriété récupérée comme DEVPROP_TYPE_STRING. Sinon, Windows retourne la référence de chaîne indirecte et identifie le type de données de base de la propriété récupérée comme DEVPROP_TYPE_STRING_INDIRECT.

Localisation du texte statique

À partir de Windows Vista vous pouvez localiser des propriétés de texte statique PnP de type chaîne personnalisée et standard à l'aide de ressources à partir de la chaîne ou des tables de ressources d'une image PE en définissant des types de propriétés de texte statique sur DEVPROP_TYPE_STRING_INDIRECT. Vous pouvez également ajouter des données de chaîne de remplacement non localisées qui peuvent être mises en forme dans le texte statique.

Les chaînes situées dans la ressource STRINGTABLE d’une image PE (comme généralement effectuées par LoadString) doivent utiliser le format suivant :

« @"System32\mydll.dll,-21[ ; Fallback » String] »

"@System32\mydll.dll,-21[ ; Chaîne de secours avec %1, %2, ... à %n[;( Arg1,Arg2,...,ArgN)]]"

Les chaînes situées dans la ressource de table de messages d’une image PE (comme généralement effectuées par RtlFindMessage, plus couramment utilisées dans les pilotes) doivent utiliser le format suivant :

"@System32\drivers\mydriver.sys,#21[ ; Chaîne de secours]"

"@System32\drivers\mydriver.sys,#21[ ; Chaîne de secours avec %1, %2, ... à %n[;( Arg1,Arg2,...,ArgN)]]"

Une « chaîne de secours » est facultative mais utile, car elle peut être retournée si la ressource n’est pas trouvée ou chargée. La chaîne de secours est également retournée aux processus système non interactifs qui n’empruntent pas l’identité d’un utilisateur, et, par conséquent, ne peuvent pas afficher le texte localisé aux utilisateurs de toute façon.

Cette technique vous permet de localiser le texte statique extrait à partir de la ressource de chaîne ou de table de messages qui correspond le mieux aux paramètres régionaux de l’appelant.

Windows met en forme les arguments de fin dans la chaîne (ou la chaîne de secours) lorsqu’ils sont récupérés à partir de la table de ressources respective, comme dans la même manière que RtlFormatMessage.

Le texte statique PnP de type chaîne personnalisé et standard est localisé lorsque vous définissez la propriété en chargeant la ressource à partir du composant effectuant l’opération de jeu, qui se produit généralement sous les paramètres régionaux par défaut du système pour les composants au niveau du système.

Remarque : les images PE peuvent utiliser un type de table de ressources (ressources STRINGTABLE ou des ressources de table de messages).

Requirements

Version

Windows Vista et versions ultérieures de Windows.

En-tête

Devpropdef.h (include Devpropdef.h)

Voir aussi

DEVPROP_TYPE_STRING