Partager via


VerInstallFileW, fonction (winver.h)

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

Syntaxe

DWORD VerInstallFileW(
  [in]      DWORD   uFlags,
  [in]      LPCWSTR szSrcFileName,
  [in]      LPCWSTR szDestFileName,
  [in]      LPCWSTR szSrcDir,
  [in]      LPCWSTR szDestDir,
  [in]      LPCWSTR szCurDir,
  [out]     LPWSTR  szTmpFile,
  [in, out] PUINT   puTmpFileLen
);

Paramètres

[in] uFlags

Type : DWORD

Ce paramètre peut être l’une des valeurs suivantes. Tous les autres bits sont réservés.

Valeur Signification
VIFF_FORCEINSTALL
0x0001
Installe le fichier indépendamment des 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é n’est 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, et non 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, et non 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 être au moins _MAX_PATH caractères longs, bien que cela ne soit 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 être NULL.

Lorsque la fonction est retournée, 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 sera la taille de la mémoire tampon requise pour contenir les données.

Valeur de retour

Type : DWORD

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

Retourner le code/la valeur 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 est retournée, 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ée.
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 elle a déjà supprimé le fichier de destination.
VIF_DIFFCODEPG
0x00000010L
Le nouveau fichier nécessite une page de codes 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 de VIFF_FORCEINSTALL défini.
VIF_DIFFLANG
0x0000008L
Les nouveaux fichiers préexistants ont des valeurs de langue ou de page de codes différentes. Cette erreur peut être remplacée en appelant VerInstallFile à nouveau avec l’indicateur de VIFF_FORCEINSTALL défini.
VIF_DIFFTYPE
0x00000020L
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 VerInstallFile à nouveau avec l’indicateur de 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 nouveaux fichiers préexistants diffèrent dans un ou plusieurs attributs. Cette erreur peut être remplacée en appelant VerInstallFile à nouveau avec l’indicateur de 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 a manqué de mémoire pour 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 antérieur au fichier préexistant. Cette erreur peut être remplacée en appelant VerInstallFile à nouveau avec l’indicateur de 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 VerInstallFile à nouveau avec l’indicateur de VIFF_FORCEINSTALL défini.

Remarques

Cette fonction fonctionne sur les images de fichier 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’horodatage des fichiers. Si la version précédemment installée 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 se trouvent 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.

Note

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. 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

VerFindFile

informations de version