Partager via


Fonction VerFindFileA (winver.h)

Détermine l’emplacement d’installation d’un fichier en fonction de la localisation d’une autre version du fichier dans le système. Les valeurs renvoyées par VerFindFile dans les mémoires tampons spécifiées sont utilisées dans un appel ultérieur à la fonction VerInstallFile .

Syntaxe

DWORD VerFindFileA(
  [in]           DWORD  uFlags,
  [in]           LPCSTR szFileName,
  [in, optional] LPCSTR szWinDir,
  [in]           LPCSTR szAppDir,
  [out]          LPSTR  szCurDir,
  [in, out]      PUINT  puCurDirLen,
  [out]          LPSTR  szDestDir,
  [in, out]      PUINT  puDestDirLen
);

Paramètres

[in] uFlags

Type : DWORD

Ce paramètre peut être la valeur suivante. Tous les autres bits sont réservés.

Valeur Signification
VFFF_ISSHAREDFILE
0x0001
Le fichier source peut être partagé par plusieurs applications. Une application peut utiliser ces informations pour déterminer où le fichier doit être copié.

[in] szFileName

Type : LPCTSTR

Nom du fichier à installer. Incluez uniquement le nom et l’extension de fichier, pas un chemin d’accès.

[in, optional] szWinDir

Type : LPCTSTR

Répertoire dans lequel Windows s’exécute ou sera exécuté. Cette chaîne est retournée par la fonction GetWindowsDirectory .

[in] szAppDir

Type : LPCTSTR

Répertoire dans lequel le programme d’installation installe un ensemble de fichiers associés. Si le programme d’installation installe une application, il s’agit du répertoire dans lequel l’application résidera. Ce paramètre pointe également vers le répertoire actuel de l’application, sauf indication contraire.

[out] szCurDir

Type : LPWSTR

Mémoire tampon qui reçoit le chemin d’accès à une version actuelle du fichier en cours d’installation. Le chemin d’accès est une chaîne sans fin. Si une version actuelle n’est pas installée, la mémoire tampon contient une chaîne de longueur nulle. La mémoire tampon doit comporter au moins _MAX_PATH caractères, bien que cela ne soit pas obligatoire.

[in, out] puCurDirLen

Type : PUINT

Longueur de la mémoire tampon szCurDir . Ce pointeur ne doit pas avoir la valeur NULL.

Lorsque la fonction retourne, lpuCurDirLen contient la taille, en caractères, des données retournées dans szCurDir, y compris le caractère null de fin. Si la mémoire tampon est trop petite pour contenir toutes les données, lpuCurDirLen correspondra à la taille de la mémoire tampon requise pour contenir le chemin d’accès.

[out] szDestDir

Type : LPTSTR

Mémoire tampon qui reçoit le chemin d’accès à l’emplacement d’installation recommandé par VerFindFile. Le chemin d’accès est une chaîne sans fin. La mémoire tampon doit comporter au moins _MAX_PATH caractères, bien que cela ne soit pas obligatoire.

[in, out] puDestDirLen

Type : PUINT

Pointeur vers une variable qui spécifie la longueur de la mémoire tampon szDestDir . Ce pointeur ne doit pas avoir la valeur NULL.

Lorsque la fonction retourne, lpuDestDirLen contient la taille, en caractères, des données retournées dans szDestDir, y compris le caractère null de fin. Si la mémoire tampon est trop petite pour contenir toutes les données, lpuDestDirLen correspondra à la taille de la mémoire tampon nécessaire pour contenir le chemin.

Valeur retournée

Type : DWORD

La valeur de retour est un masque de bits qui indique le status du fichier. Il peut s’agir de l’une ou de plusieurs des valeurs suivantes. Toutes les autres valeurs sont réservées.

Code/valeur de retour Description
VFF_CURNEDEST
0x0001
La version actuellement installée du fichier ne se trouve pas dans la destination recommandée.
VFF_FILEINUSE
0x0002
Le système utilise la version actuellement installée du fichier ; par conséquent, le fichier ne peut pas être remplacé ou supprimé.
VFF_BUFFTOOSMALL
0x0004
Au moins l’une des mémoires tampons était trop petite pour contenir la chaîne correspondante. Une application doit case activée les mémoires tampons de sortie pour déterminer quelle mémoire tampon était trop petite.

Remarques

Cette fonction fonctionne sur les images de fichiers 16, 32 et 64 bits.

VerFindFile recherche une copie du fichier spécifié à l’aide de la fonction OpenFile . Toutefois, il détermine le répertoire système à partir du répertoire Windows spécifié ou recherche le chemin d’accès.

Si le paramètre dwFlags indique que le fichier est privé pour cette application (et non VFFF_ISSHAREDFILE), VerFindFile recommande d’installer le fichier dans le répertoire de l’application. Sinon, si le système exécute une copie partagée du système, la fonction recommande d’installer le fichier dans le répertoire Windows. Si le système exécute une copie privée du système, la fonction recommande d’installer le fichier dans le répertoire système.

Notes

L’en-tête winver.h définit VerFindFile comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winver.h (inclure Windows.h)
Bibliothèque Version.lib
DLL Api-ms-win-core-version-l1-1-0.dll

Voir aussi

Conceptuel

GetWindowsDirectory

OpenFile

Autres ressources

Référence

VerInstallFile

Informations sur la version