Funzione VerInstallFileW (winver.h)
Installa il file specificato in base alle informazioni restituite dalla funzione VerFindFile . VerInstallFile decompresse il file, se necessario, assegna un nome file univoco e verifica gli errori, ad esempio i file obsoleti.
Sintassi
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
);
Parametri
[in] uFlags
Tipo: DWORD
Questo parametro può avere uno dei valori seguenti. Tutti gli altri bit sono riservati.
[in] szSrcFileName
Tipo: LPCTSTR
Nome del file da installare. Si tratta del nome file nella directory a cui fa riferimento il parametro szSrcDir ; il nome del file può includere solo il nome file e l'estensione, non un percorso.
[in] szDestFileName
Tipo: LPCTSTR
Il nome VerInstallFile darà il nuovo file all'installazione. Questo nome file può essere diverso dal nome del file nella directory szSrcFileName . Il nuovo nome deve includere solo il nome e l'estensione del file, non un percorso.
[in] szSrcDir
Tipo: LPCTSTR
Nome della directory in cui è possibile trovare il file.
[in] szDestDir
Tipo: LPCTSTR
Nome della directory in cui deve essere installato il file. VerFindFile restituisce questo valore nel parametro szDestDir .
[in] szCurDir
Tipo: LPCTSTR
Nome della directory in cui è possibile trovare una versione preesistente di questo file. VerFindFile restituisce questo valore nel parametro szCurDir .
[out] szTmpFile
Tipo: LPTSTR
Nome di una copia temporanea del file di origine. Il buffer deve essere almeno _MAX_PATH caratteri lunghi, anche se questo non è obbligatorio e deve essere vuoto in input.
[in, out] puTmpFileLen
Tipo: PUINT
Lunghezza del buffer szTmpFile . Questo puntatore non deve essere NULL.
Quando la funzione restituisce, lpuTmpFileLen riceve le dimensioni, in caratteri, dei dati restituiti in szTmpFile, incluso il carattere Null di terminazione. Se il buffer è troppo piccolo per contenere tutti i dati, lpuTmpFileLen sarà la dimensione del buffer necessaria per contenere i dati.
Valore restituito
Tipo: DWORD
Il valore restituito è una maschera bit che indica le eccezioni. Può essere uno o più dei valori seguenti. Tutti gli altri valori sono riservati.
Codice/valore restituito | Descrizione |
---|---|
|
Operazione di lettura, creazione, eliminazione o ridenominazione non riuscita a causa di una violazione di accesso. |
|
Il buffer szTmpFile era troppo piccolo per contenere il nome del file di origine temporaneo. Quando la funzione restituisce, lpuTmpFileLen contiene le dimensioni del buffer necessario per contenere il nome file. |
|
La funzione non può creare il file temporaneo. L'errore specifico può essere descritto da un altro flag. |
|
La funzione non può eliminare il file di destinazione o non può eliminare la versione esistente del file che si trova in un'altra directory. Se il bit di VIF_TEMPFILE è impostato, l'installazione non è riuscita e il file di destinazione probabilmente non può essere eliminato. |
|
Impossibile eliminare la versione esistente del file e non è stata specificata VIFF_DONTDELETEOLD . |
|
La funzione non può caricare il file cabinet. |
|
La funzione non può caricare il file compresso. |
|
La funzione non può leggere i file di destinazione (esistenti). Ciò impedisce alla funzione di esaminare gli attributi del file. |
|
La funzione non può leggere il file di origine. Ciò potrebbe significare che il percorso non è stato specificato correttamente. |
|
La funzione non può rinominare il file temporaneo, ma già eliminato il file di destinazione. |
|
Il nuovo file richiede una tabella codici che non può essere visualizzata dalla versione del sistema attualmente in esecuzione. Questo errore può essere sottoposto a override chiamando VerInstallFile con il set di flag VIFF_FORCEINSTALL . |
|
I file nuovi e preesistenti hanno valori di lingua o di tabella codici diversi. Questo errore può essere sottoposto a override chiamando di nuovo VerInstallFile con il set di flag VIFF_FORCEINSTALL . |
|
Il nuovo file ha un tipo, un sottotipo o un sistema operativo diverso dal file preesistente. Questo errore può essere sottoposto a override chiamando di nuovo VerInstallFile con il set di flag VIFF_FORCEINSTALL . |
|
Il file preesistente è in uso dal sistema e non può essere eliminato. |
|
I file nuovi e preesistenti differiscono in uno o più attributi. Questo errore può essere sottoposto a override chiamando di nuovo VerInstallFile con il flag VIFF_FORCEINSTALL impostato. |
|
La funzione non può completare l'operazione richiesta a causa di memoria insufficiente. In genere, ciò significa che l'applicazione ha esaurito la memoria tentando di espandere un file compresso. |
|
La funzione non può creare il file temporaneo a causa di spazio su disco insufficiente nell'unità di destinazione. |
|
Operazione di lettura, creazione, eliminazione o ridenominazione non riuscita a causa di una violazione di condivisione. |
|
Il file da installare è precedente al file preesistente. Questo errore può essere sottoposto a override chiamando di nuovo VerInstallFile con il flag VIFF_FORCEINSTALL impostato. |
|
La copia temporanea del nuovo file si trova nella directory di destinazione. La causa dell'errore si riflette in altri flag. |
|
Il file preesistente è protetto da scrittura. Questo errore può essere sottoposto a override chiamando di nuovo VerInstallFile con il flag VIFF_FORCEINSTALL impostato. |
Commenti
Questa funzione funziona su immagini di file a 16, 32 e 64 bit.
VerInstallFile copia il file dalla directory di origine alla directory di destinazione. Se szCurDir indica che esiste una versione precedente del file nel sistema, VerInstallFile confronta le informazioni sul timbro della versione dei file. Se la versione installata in precedenza del file è più recente della nuova versione o se gli attributi dei file sono significativamente diversi, ad esempio se si trovano in lingue diverse, VerInstallFile restituisce uno o più codici di errore ripristinabili.
VerInstallFile lascia il file temporaneo nella directory di destinazione. L'applicazione può eseguire l'override dell'errore o eliminare il file temporaneo. Se l'applicazione esegue l'override dell'errore, VerInstallFile elimina la versione installata in precedenza e rinomina il file temporaneo con il nome file originale.
Nota
L'intestazione winver.h definisce VerInstallFile come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winver.h (include Windows.h) |
Libreria | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
Vedi anche
Informazioni concettuali
Riferimento