Función VerInstallFileW (winver.h)

Instala el archivo especificado en función de la información devuelta de la función VerFindFile . VerInstallFile descomprime el archivo, si es necesario, asigna un nombre de archivo único y comprueba si hay errores, como archivos obsoletos.

Sintaxis

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
);

Parámetros

[in] uFlags

Tipo: DWORD

Este parámetro puede ser uno de los valores siguientes. Todos los demás bits están reservados.

Value Significado
VIFF_FORCEINSTALL
0x0001
Instala el archivo independientemente de los números de versión no coincidentes. La función solo comprueba si hay errores físicos durante la instalación.
VIFF_DONTDELETEOLD
0x0002
Instala el archivo sin eliminar el archivo instalado anteriormente, si el archivo instalado anteriormente no está en el directorio de destino.

[in] szSrcFileName

Tipo: LPCTSTR

Nombre del archivo que se va a instalar. Este es el nombre de archivo del directorio al que apunta el parámetro szSrcDir ; el nombre de archivo solo puede incluir el nombre de archivo y la extensión, no una ruta de acceso.

[in] szDestFileName

Tipo: LPCTSTR

El nombre VerInstallFile proporcionará el nuevo archivo tras la instalación. Este nombre de archivo puede ser diferente del nombre de archivo en el directorio szSrcFileName . El nuevo nombre debe incluir solo el nombre de archivo y la extensión, no una ruta de acceso.

[in] szSrcDir

Tipo: LPCTSTR

Nombre del directorio donde se puede encontrar el archivo.

[in] szDestDir

Tipo: LPCTSTR

Nombre del directorio donde se debe instalar el archivo. VerFindFile devuelve este valor en su parámetro szDestDir .

[in] szCurDir

Tipo: LPCTSTR

Nombre del directorio donde se puede encontrar una versión preexistente de este archivo. VerFindFile devuelve este valor en su parámetro szCurDir .

[out] szTmpFile

Tipo: LPTSTR

Nombre de una copia temporal del archivo de origen. El búfer debe tener al menos _MAX_PATH caracteres, aunque esto no es necesario y debe estar vacío en la entrada.

[in, out] puTmpFileLen

Tipo: PUINT

Longitud del búfer szTmpFile . Este puntero no debe ser NULL.

Cuando la función devuelve, lpuTmpFileLen recibe el tamaño, en caracteres, de los datos devueltos en szTmpFile, incluido el carácter nulo de terminación. Si el búfer es demasiado pequeño para contener todos los datos, lpuTmpFileLen será el tamaño del búfer necesario para contener los datos.

Valor devuelto

Tipo: DWORD

El valor devuelto es una máscara de bits que indica excepciones. Este puede ser uno o varios de los valores siguientes. Todos los demás valores están reservados.

Código o valor devuelto Descripción
VIF_ACCESSVIOLATION
0x00000200L
Error en una operación de lectura, creación, eliminación o cambio de nombre debido a una infracción de acceso.
VIF_BUFFTOOSMALL
0x00040000L
El búfer szTmpFile era demasiado pequeño para contener el nombre del archivo de origen temporal. Cuando se devuelve la función, lpuTmpFileLen contiene el tamaño del búfer necesario para contener el nombre de archivo.
VIF_CANNOTCREATE
0x00000800L
La función no puede crear el archivo temporal. Otro marcador puede describir el error específico.
VIF_CANNOTDELETE
0x00001000L
La función no puede eliminar el archivo de destino o no puede eliminar la versión existente del archivo ubicado en otro directorio. Si se establece el bit de VIF_TEMPFILE , se produjo un error en la instalación y es probable que no se pueda eliminar el archivo de destino.
VIF_CANNOTDELETECUR
0x00004000L
No se pudo eliminar la versión existente del archivo y no se especificó VIFF_DONTDELETEOLD .
VIF_CANNOTLOADCABINET
0x00100000L
La función no puede cargar el archivo de archivador.
VIF_CANNOTLOADLZ32
0x00080000L
La función no puede cargar el archivo comprimido.
VIF_CANNOTREADDST
0x00020000L
La función no puede leer los archivos de destino (existentes). Esto impide que la función examine los atributos del archivo.
VIF_CANNOTREADSRC
0x00010000L
La función no puede leer el archivo de origen. Esto podría significar que la ruta de acceso no se especificó correctamente.
VIF_CANNOTRENAME
0x00002000L
La función no puede cambiar el nombre del archivo temporal, pero ya eliminó el archivo de destino.
VIF_DIFFCODEPG
0x00000010L
El nuevo archivo requiere una página de códigos que no se puede mostrar mediante la versión del sistema que se está ejecutando actualmente. Este error se puede invalidar llamando a VerInstallFile con la marca VIFF_FORCEINSTALL establecida.
VIF_DIFFLANG
0x00000008L
Los archivos nuevos y preexistentes tienen valores de idioma o página de códigos diferentes. Este error se puede invalidar llamando a VerInstallFile de nuevo con la marca VIFF_FORCEINSTALL establecida.
VIF_DIFFTYPE
0x00000020L
El nuevo archivo tiene un tipo, subtipo o sistema operativo diferente del archivo preexistente. Este error se puede invalidar llamando a VerInstallFile de nuevo con la marca VIFF_FORCEINSTALL establecida.
VIF_FILEINUSE
0x00000080L
El sistema está usando el archivo preexistente y no se puede eliminar.
VIF_MISMATCH
0x00000002L
Los archivos nuevos y preexistentes difieren en uno o varios atributos. Este error se puede invalidar llamando a VerInstallFile de nuevo con la marca VIFF_FORCEINSTALL establecida.
VIF_OUTOFMEMORY
0x00008000L
La función no puede completar la operación solicitada debido a una memoria insuficiente. Por lo general, esto significa que la aplicación se quedó sin memoria intentando expandir un archivo comprimido.
VIF_OUTOFSPACE
0x00000100L
La función no puede crear el archivo temporal debido a un espacio en disco insuficiente en la unidad de destino.
VIF_SHARINGVIOLATION
0x00000400L
Error en una operación de lectura, creación, eliminación o cambio de nombre debido a una infracción de uso compartido.
VIF_SRCOLD
0x00000004L
El archivo que se va a instalar es anterior al archivo preexistente. Este error se puede invalidar llamando a VerInstallFile de nuevo con la marca VIFF_FORCEINSTALL establecida.
VIF_TEMPFILE
0x00000001L
La copia temporal del nuevo archivo se encuentra en el directorio de destino. La causa del error se refleja en otras marcas.
VIF_WRITEPROT
0x00000040L
El archivo preexistente está protegido por escritura. Este error se puede invalidar llamando a VerInstallFile de nuevo con la marca VIFF_FORCEINSTALL establecida.

Observaciones

Esta función funciona en imágenes de archivo de 16, 32 y 64 bits.

VerInstallFile copia el archivo del directorio de origen en el directorio de destino. Si szCurDir indica que existe una versión anterior del archivo en el sistema, VerInstallFile compara la información de la marca de versión de los archivos. Si la versión instalada anteriormente del archivo es más reciente que la nueva versión, o si los atributos de los archivos son significativamente diferentes, por ejemplo, si están en distintos idiomas, VerInstallFile devuelve con uno o varios códigos de error recuperables.

VerInstallFile deja el archivo temporal en el directorio de destino. La aplicación puede invalidar el error o eliminar el archivo temporal. Si la aplicación invalida el error, VerInstallFile elimina la versión instalada anteriormente y cambia el nombre del archivo temporal con el nombre de archivo original.

Nota

El encabezado winver.h define VerInstallFile como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winver.h (incluye Windows.h)
Library Version.lib
Archivo DLL Api-ms-win-core-version-l1-1-0.dll

Consulte también

Conceptual

Referencia

VerFindFile

Información de versión