Partager via


Fonction VerInstallFileA (winver.h)

Installe le fichier spécifié en fonction des informations retournées par la fonction VerFindFile . VerInstallFile décompresse le fichier, si nécessaire, attribue un nom de fichier unique et recherche les erreurs, telles que les fichiers obsolètes.

Syntaxe

DWORD VerInstallFileA(
  [in]      DWORD  uFlags,
  [in]      LPCSTR szSrcFileName,
  [in]      LPCSTR szDestFileName,
  [in]      LPCSTR szSrcDir,
  [in]      LPCSTR szDestDir,
  [in]      LPCSTR szCurDir,
  [out]     LPSTR  szTmpFile,
  [in, out] PUINT  puTmpFileLen
);

Paramètres

[in] uFlags

Type : DWORD

Ce paramètre peut prendre les valeurs suivantes. Tous les autres bits sont réservés.

Valeur Signification
VIFF_FORCEINSTALL
0x0001
Installe le fichier, quels que soient les numéros de version incompatibles. La fonction vérifie uniquement les erreurs physiques pendant l’installation.
VIFF_DONTDELETEOLD
0x0002
Installe le fichier sans supprimer le fichier précédemment installé, si le fichier précédemment installé ne se trouve pas dans le répertoire de destination.

[in] szSrcFileName

Type : LPCTSTR

Nom du fichier à installer. Il s’agit du nom de fichier dans le répertoire vers lequel pointe le paramètre szSrcDir ; le nom de fichier peut inclure uniquement le nom de fichier et l’extension, pas un chemin d’accès.

[in] szDestFileName

Type : LPCTSTR

Le nom VerInstallFile donnera le nouveau fichier lors de l’installation. Ce nom de fichier peut être différent du nom de fichier dans le répertoire szSrcFileName . Le nouveau nom doit inclure uniquement le nom de fichier et l’extension, pas un chemin d’accès.

[in] szSrcDir

Type : LPCTSTR

Nom du répertoire dans lequel se trouve le fichier.

[in] szDestDir

Type : LPCTSTR

Nom du répertoire dans lequel le fichier doit être installé. VerFindFile retourne cette valeur dans son paramètre szDestDir .

[in] szCurDir

Type : LPCTSTR

Nom du répertoire dans lequel se trouve une version préexistante de ce fichier. VerFindFile retourne cette valeur dans son paramètre szCurDir .

[out] szTmpFile

Type : LPTSTR

Nom d’une copie temporaire du fichier source. La mémoire tampon doit comporter au moins _MAX_PATH caractères, même si cela n’est pas obligatoire et doit être vide lors de l’entrée.

[in, out] puTmpFileLen

Type : PUINT

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

Lorsque la fonction retourne, lpuTmpFileLen reçoit la taille, en caractères, des données retournées dans szTmpFile, y compris le caractère null de fin. Si la mémoire tampon est trop petite pour contenir toutes les données, lpuTmpFileLen correspond à la taille de la mémoire tampon requise pour contenir les données.

Valeur retournée

Type : DWORD

La valeur de retour est un masque de bits qui indique des exceptions. 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
VIF_ACCESSVIOLATION
0x00000200L
Une opération de lecture, de création, de suppression ou de renommage a échoué en raison d’une violation d’accès.
VIF_BUFFTOOSMALL
0x00040000L
La mémoire tampon szTmpFile était trop petite pour contenir le nom du fichier source temporaire. Lorsque la fonction retourne, lpuTmpFileLen contient la taille de la mémoire tampon requise pour contenir le nom de fichier.
VIF_CANNOTCREATE
0x00000800L
La fonction ne peut pas créer le fichier temporaire. L’erreur spécifique peut être décrite par un autre indicateur.
VIF_CANNOTDELETE
0x00001000L
La fonction ne peut pas supprimer le fichier de destination ou ne peut pas supprimer la version existante du fichier situé dans un autre répertoire. Si le bit VIF_TEMPFILE est défini, l’installation a échoué et le fichier de destination ne peut probablement pas être supprimé.
VIF_CANNOTDELETECUR
0x00004000L
La version existante du fichier n’a pas pu être supprimée et VIFF_DONTDELETEOLD n’a pas été spécifié.
VIF_CANNOTLOADCABINET
0x00100000L
La fonction ne peut pas charger le fichier d’armoire.
VIF_CANNOTLOADLZ32
0x00080000L
La fonction ne peut pas charger le fichier compressé.
VIF_CANNOTREADDST
0x00020000L
La fonction ne peut pas lire les fichiers de destination (existants). Cela empêche la fonction d’examiner les attributs du fichier.
VIF_CANNOTREADSRC
0x00010000L
La fonction ne peut pas lire le fichier source. Cela peut signifier que le chemin d’accès n’a pas été spécifié correctement.
VIF_CANNOTRENAME
0x00002000L
La fonction ne peut pas renommer le fichier temporaire, mais a déjà supprimé le fichier de destination.
VIF_DIFFCODEPG
0x00000010L
Le nouveau fichier nécessite une page de code qui ne peut pas être affichée par la version du système en cours d’exécution. Cette erreur peut être remplacée en appelant VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.
VIF_DIFFLANG
0x00000008L
Les fichiers nouveaux et préexistants ont des valeurs de langue ou de page de code différentes. Cette erreur peut être remplacée en appelant à nouveau VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.
VIF_DIFFTYPE
0x000000020L
Le nouveau fichier a un type, un sous-type ou un système d’exploitation différent du fichier préexistant. Cette erreur peut être remplacée en appelant à nouveau VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.
VIF_FILEINUSE
0x00000080L
Le fichier préexistant est utilisé par le système et ne peut pas être supprimé.
VIF_MISMATCH
0x00000002L
Les fichiers nouveaux et préexistants diffèrent par un ou plusieurs attributs. Cette erreur peut être remplacée en appelant à nouveau VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.
VIF_OUTOFMEMORY
0x00008000L
La fonction ne peut pas terminer l’opération demandée en raison d’une mémoire insuffisante. En règle générale, cela signifie que l’application est à court de mémoire pour tenter de développer un fichier compressé.
VIF_OUTOFSPACE
0x00000100L
La fonction ne peut pas créer le fichier temporaire en raison d’un espace disque insuffisant sur le lecteur de destination.
VIF_SHARINGVIOLATION
0x00000400L
Une opération de lecture, de création, de suppression ou de renommage a échoué en raison d’une violation de partage.
VIF_SRCOLD
0x00000004L
Le fichier à installer est plus ancien que le fichier préexistant. Cette erreur peut être remplacée en appelant à nouveau VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.
VIF_TEMPFILE
0x00000001L
La copie temporaire du nouveau fichier se trouve dans le répertoire de destination. La cause de l’échec est reflétée dans d’autres indicateurs.
VIF_WRITEPROT
0x00000040L
Le fichier préexistant est protégé en écriture. Cette erreur peut être remplacée en appelant à nouveau VerInstallFile avec l’indicateur VIFF_FORCEINSTALL défini.

Remarques

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

VerInstallFile copie le fichier du répertoire source vers le répertoire de destination. Si szCurDir indique qu’une version précédente du fichier existe sur le système, VerInstallFile compare les informations d’empreinte de version des fichiers. Si la version installée précédemment du fichier est plus récente que la nouvelle version, ou si les attributs des fichiers sont considérablement différents, par exemple, s’ils sont dans des langues différentes, VerInstallFile retourne avec un ou plusieurs codes d’erreur récupérables.

VerInstallFile laisse le fichier temporaire dans le répertoire de destination. L’application peut remplacer l’erreur ou supprimer le fichier temporaire. Si l’application remplace l’erreur, VerInstallFile supprime la version précédemment installée et renomme le fichier temporaire avec le nom de fichier d’origine.

Notes

L’en-tête winver.h définit VerInstallFile 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. La combinaison 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

Référence

VerFindFile

Informations sur la version