VerInstallFileA-Funktion (winver.h)
Installiert die angegebene Datei basierend auf informationen, die von der VerFindFile-Funktion zurückgegeben werden. VerInstallFile dekomprimiert die Datei, falls erforderlich, weist einen eindeutigen Dateinamen zu und sucht nach Fehlern, z. B. veralteten Dateien.
Syntax
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
);
Parameter
[in] uFlags
Art: DWORD
Dieser Parameter kann einen der folgenden Werte annehmen. Alle anderen Bits sind reserviert.
[in] szSrcFileName
Typ: LPCTSTR
Der Name der zu installierenden Datei. Dies ist der Dateiname im Verzeichnis, auf das vom parameter szSrcDir verwiesen wird. Der Dateiname darf nur den Dateinamen und die Erweiterung enthalten, nicht einen Pfad.
[in] szDestFileName
Typ: LPCTSTR
Der Name VerInstallFile gibt die neue Datei bei der Installation an. Dieser Dateiname kann sich vom Dateinamen im Verzeichnis szSrcFileName unterscheiden. Der neue Name sollte nur den Dateinamen und die Erweiterung enthalten, keinen Pfad.
[in] szSrcDir
Typ: LPCTSTR
Der Name des Verzeichnisses, in dem sich die Datei befindet.
[in] szDestDir
Typ: LPCTSTR
Der Name des Verzeichnisses, in dem die Datei installiert werden soll. VerFindFile gibt diesen Wert im szDestDir-Parameter zurück.
[in] szCurDir
Typ: LPCTSTR
Der Name des Verzeichnisses, in dem eine bereits vorhandene Version dieser Datei gefunden werden kann. VerFindFile gibt diesen Wert im szCurDir-Parameter zurück.
[out] szTmpFile
Typ: LPTSTR
Der Name einer temporären Kopie der Quelldatei. Der Puffer sollte mindestens _MAX_PATH Zeichen lang sein, obwohl dies nicht erforderlich ist, und sollte bei der Eingabe leer sein.
[in, out] puTmpFileLen
Typ: PUINT
Die Länge des szTmpFile-Puffers . Dieser Zeiger darf nicht NULL sein.
Wenn die Funktion zurückgibt, empfängt lpuTmpFileLen die Größe der in szTmpFile zurückgegebenen Daten in Zeichen, einschließlich des beendenden NULL-Zeichens. Wenn der Puffer zu klein ist, um alle Daten zu enthalten, entspricht lpuTmpFileLen der Größe des Puffers, der zum Speichern der Daten erforderlich ist.
Rückgabewert
Art: DWORD
Der Rückgabewert ist eine Bitmaske, die Ausnahmen angibt. Er kann einen der folgenden Werte annehmen. Alle anderen Werte sind reserviert.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Ein Lese-, Erstellungs-, Lösch- oder Umbenennungsvorgang ist aufgrund einer Zugriffsverletzung fehlgeschlagen. |
|
Der Puffer szTmpFile war zu klein, um den Namen der temporären Quelldatei zu enthalten. Wenn die Funktion zurückgibt, enthält lpuTmpFileLen die Größe des Puffers, der zum Speichern des Dateinamens erforderlich ist. |
|
Die Funktion kann die temporäre Datei nicht erstellen. Der spezifische Fehler kann durch ein anderes Flag beschrieben werden. |
|
Die Funktion kann die Zieldatei nicht löschen oder die vorhandene Version der Datei, die sich in einem anderen Verzeichnis befindet, nicht löschen. Wenn das VIF_TEMPFILE Bit festgelegt ist, ist die Installation fehlgeschlagen, und die Zieldatei kann wahrscheinlich nicht gelöscht werden. |
|
Die vorhandene Version der Datei konnte nicht gelöscht werden, und VIFF_DONTDELETEOLD wurde nicht angegeben. |
|
Die Funktion kann die Ablagedatei nicht laden. |
|
Die Funktion kann die komprimierte Datei nicht laden. |
|
Die Funktion kann die (vorhandenen) Zieldateien nicht lesen. Dadurch wird verhindert, dass die Funktion die Attribute der Datei untersucht. |
|
Die Funktion kann die Quelldatei nicht lesen. Dies kann bedeuten, dass der Pfad nicht ordnungsgemäß angegeben wurde. |
|
Die Funktion kann die temporäre Datei nicht umbenennen, aber die Zieldatei wurde bereits gelöscht. |
|
Die neue Datei erfordert eine Codepage, die von der derzeit ausgeführten Systemversion nicht angezeigt werden kann. Dieser Fehler kann überschrieben werden, indem VerInstallFile mit dem VIFF_FORCEINSTALL-Flag festgelegt wird. |
|
Die neuen und bereits vorhandenen Dateien weisen unterschiedliche Sprach- oder Codepagewerte auf. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut aufgerufen wird, wobei das VIFF_FORCEINSTALL-Flag festgelegt ist. |
|
Die neue Datei weist einen anderen Typ, Subtyp oder Betriebssystem als die bereits vorhandene Datei auf. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut aufgerufen wird, wobei das VIFF_FORCEINSTALL-Flag festgelegt ist. |
|
Die bereits vorhandene Datei wird vom System verwendet und kann nicht gelöscht werden. |
|
Die neuen und bereits vorhandenen Dateien unterscheiden sich in einem oder mehreren Attributen. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut aufgerufen wird, wobei das VIFF_FORCEINSTALL-Flag festgelegt ist. |
|
Die Funktion kann den angeforderten Vorgang aufgrund von unzureichendem Arbeitsspeicher nicht abschließen. Im Allgemeinen bedeutet dies, dass der Anwendung der Arbeitsspeicher beim Erweitern einer komprimierten Datei ausging. |
|
Die Funktion kann die temporäre Datei aufgrund des unzureichenden Speicherplatzes auf dem Ziellaufwerk nicht erstellen. |
|
Ein Lese-, Erstellungs-, Lösch- oder Umbenennungsvorgang ist aufgrund einer Freigabeverletzung fehlgeschlagen. |
|
Die zu installierende Datei ist älter als die bereits vorhandene Datei. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut aufgerufen wird, wobei das VIFF_FORCEINSTALL-Flag festgelegt ist. |
|
Die temporäre Kopie der neuen Datei befindet sich im Zielverzeichnis. Die Fehlerursache spiegelt sich in anderen Flags wider. |
|
Die bereits vorhandene Datei ist schreibgeschützt. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut aufgerufen wird, wobei das VIFF_FORCEINSTALL-Flag festgelegt ist. |
Hinweise
Diese Funktion funktioniert auf 16-, 32- und 64-Bit-Dateiimages.
VerInstallFile kopiert die Datei aus dem Quellverzeichnis in das Zielverzeichnis. Wenn szCurDir angibt, dass eine frühere Version der Datei auf dem System vorhanden ist, vergleicht VerInstallFile die Versionsstempelinformationen der Dateien. Wenn die zuvor installierte Version der Datei aktueller ist als die neue Version, oder wenn sich die Attribute der Dateien erheblich unterscheiden, z. B. wenn sie sich in verschiedenen Sprachen befinden, wird VerInstallFile mit einem oder mehreren wiederherstellbaren Fehlercodes zurückgegeben.
VerInstallFile belässt die temporäre Datei im Zielverzeichnis. Die Anwendung kann entweder den Fehler überschreiben oder die temporäre Datei löschen. Wenn die Anwendung den Fehler außer Kraft setzt, löscht VerInstallFile die zuvor installierte Version und benennt die temporäre Datei mit dem ursprünglichen Dateinamen um.
Hinweis
Der winver.h-Header definiert VerInstallFile als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winver.h (einschließen von Windows.h) |
Bibliothek | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
Siehe auch
Konzept
Referenz