Fonction VerQueryValueA (winver.h)
Récupère les informations de version spécifiées à partir de la ressource d’informations de version spécifiée. Pour récupérer la ressource appropriée, avant d’appeler VerQueryValue, vous devez d’abord appeler la fonction GetFileVersionInfoSize, puis la fonction GetFileVersionInfo.
Syntaxe
BOOL VerQueryValueA(
[in] LPCVOID pBlock,
[in] LPCSTR lpSubBlock,
[out] LPVOID *lplpBuffer,
[out] PUINT puLen
);
Paramètres
[in] pBlock
Type : LPCVOID
Ressource d’informations de version retournée par la fonction GetFileVersionInfo.
[in] lpSubBlock
Type : LPCTSTR
Valeur d’informations de version à récupérer. La chaîne doit se composer de noms séparés par des barres obliques inverses (\) et doit avoir l’une des formes suivantes.
\
Bloc racine. La fonction récupère un pointeur vers la structure VS_FIXEDFILEINFO pour la ressource d’informations de version.
\VarFileInfo\Translation
Tableau de traduction dans une structure d’informations de variable Var , membre Valeur de cette structure. La fonction récupère un pointeur vers ce tableau d’identificateurs de langue et de page de codes. Une application peut utiliser ces identificateurs pour accéder à une structure de stringTable spécifique à une langue (à l’aide de la szKey membre) dans la ressource d’informations de version.
\StringFileInfo\lang-codepage\string-name
Valeur dans une structure StringTable spécifique au langage. La
[out] lplpBuffer
Type : LPVOID*
Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers les informations de version demandées dans la mémoire tampon pointée par pBlock. La mémoire pointée par lplpBuffer est libérée lorsque la mémoire p Block associée est libérée.
[out] puLen
Type : PUINT
Lorsque cette méthode est retournée, contient un pointeur vers la taille des données demandées pointées par lplpBuffer: pour les valeurs d’informations de version, longueur en caractères de la chaîne stockée à lplpBuffer; pour les valeurs du tableau de traduction, la taille en octets du tableau stockée à lplpBuffer; et pour le bloc racine, la taille en octets de la structure.
Valeur de retour
Type : BOOL
Si la structure d’informations de version spécifiée existe et que les informations de version sont disponibles, la valeur de retour est différente de zéro. Si l’adresse de la mémoire tampon de longueur est égale à zéro, aucune valeur n’est disponible pour le nom d’informations de version spécifié.
Si le nom spécifié n’existe pas ou si la ressource spécifiée n’est pas valide, la valeur de retour est égale à zéro.
Remarques
Cette fonction fonctionne sur les images de fichier 16,32 et 64 bits.
Les chaînes Unicode des informations de version prédéfinies sont les suivantes.
Commentaires | InternalName | ProductName |
CompanyName | LegalCopyright | ProductVersion |
FileDescription | LegalTrademarks | PrivateBuild |
FileVersion | OriginalFilename | SpecialBuild |
Exemples
L’exemple suivant montre comment énumérer les langues de version disponibles et récupérer la valeur de chaîne FileDescription pour chaque langue.
Veillez à appeler les fonctions GetFileVersionInfoSize et GetFileVersionInfo avant d’appeler VerQueryValue pour initialiser correctement la mémoire tampon pBlock.
// Structure used to store enumerated languages and code pages.
HRESULT hr;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
// Read the list of languages and code pages.
VerQueryValue(pBlock,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
// Read the file description for each language and code page.
for( i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
hr = StringCchPrintf(SubBlock, 50,
TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
if (FAILED(hr))
{
// TODO: write error handler.
}
// Retrieve file description for language and code page "i".
VerQueryValue(pBlock,
SubBlock,
&lpBuffer,
&dwBytes);
}
Note
L’en-tête winver.h définit VerQueryValue comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winver.h (inclure Windows.h) |
bibliothèque | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
Voir aussi
conceptuelle
de référence