VerInstallFileW-Funktion (winver.h)
Installiert die angegebene Datei basierend auf informationen, die von der VerFindFile--Funktion zurückgegeben werden. VerInstallFile die Datei dekomprimiert, falls erforderlich, weist einen eindeutigen Dateinamen zu und sucht nach Fehlern, z. B. veralteten Dateien.
Syntax
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
);
Parameter
[in] uFlags
Typ: DWORD-
Dieser Parameter kann einer der folgenden Werte sein: Alle anderen Bits sind reserviert.
[in] szSrcFileName
Typ: LPCTSTR-
Der Name der zu installierenden Datei. Dies ist der Dateiname im Verzeichnis, auf das der szSrcDir Parameter verweist; Der Dateiname kann nur den Dateinamen und die Erweiterung enthalten, nicht einen Pfad.
[in] szDestFileName
Typ: LPCTSTR-
Der Name VerInstallFile- gibt der neuen Datei bei der Installation. Dieser Dateiname unterscheidet sich möglicherweise vom Dateinamen im szSrcFileName Verzeichnis. Der neue Name sollte nur den Dateinamen und die Erweiterung enthalten, nicht einen Pfad.
[in] szSrcDir
Typ: LPCTSTR-
Der Name des Verzeichnisses, in dem die Datei gefunden werden kann.
[in] szDestDir
Typ: LPCTSTR-
Der Name des Verzeichnisses, in dem die Datei installiert werden soll. VerFindFile- gibt diesen Wert in seinem 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 in seinem 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 bei der Eingabe leer sein sollte.
[in, out] puTmpFileLen
Typ: PUINT-
Die Länge des szTmpFile Puffers. Dieser Zeiger darf nicht NULL-sein.
Wenn die Funktion zurückgegeben wird, erhält lpuTmpFileLen die Größe der in szTmpFilezurückgegebenen Daten in Zeichen, einschließlich des endenden Nullzeichens. Wenn der Puffer zu klein ist, um alle Daten zu enthalten, ist lpuTmpFileLen- die Größe des Puffers, der zum Speichern der Daten erforderlich ist.
Rückgabewert
Typ: DWORD-
Der Rückgabewert ist eine Bitmaske, die Ausnahmen angibt. Dabei kann es sich um einen oder mehrere der folgenden Werte handeln. Alle anderen Werte sind reserviert.
Zurückgeben von Code/Wert | Beschreibung |
---|---|
|
Ein Lese-, Erstellungs-, Lösch- oder Umbenennungsvorgang ist aufgrund einer Zugriffsverletzung fehlgeschlagen. |
|
Der szTmpFile Puffer war zu klein, um den Namen der temporären Quelldatei zu enthalten. Wenn die Funktion zurückgegeben wird, 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 nicht angegeben wurde. |
|
Die Funktion kann die CAB-Datei nicht laden. |
|
Die Funktion kann die komprimierte Datei nicht laden. |
|
Die Funktion kann die Zieldateien (vorhandene) 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, die Zieldatei wurde jedoch bereits gelöscht. |
|
Für die neue Datei ist eine Codeseite erforderlich, die von der derzeit ausgeführten Version des Systems nicht angezeigt werden kann. Dieser Fehler kann überschrieben werden, indem VerInstallFile- mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
|
Die neuen und bereits vorhandenen Dateien weisen unterschiedliche Sprach- oder Codeseitenwerte auf. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
|
Die neue Datei weist einen anderen Typ, Untertyp oder Betriebssystem als die bereits vorhandene Datei auf. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
|
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 mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
|
Die Funktion kann den angeforderten Vorgang aufgrund unzureichendem Arbeitsspeicher nicht abschließen. Im Allgemeinen bedeutet dies, dass die Anwendung nicht genügend Arbeitsspeicher hat, um eine komprimierte Datei zu erweitern. |
|
Die Funktion kann die temporäre Datei nicht erstellen, da nicht genügend Speicherplatz auf dem Ziellaufwerk vorhanden ist. |
|
Ein Lese-, Erstellungs-, Lösch- oder Umbenennungsvorgang ist aufgrund eines Freigabeverstoßes fehlgeschlagen. |
|
Die zu installierende Datei ist älter als die bereits vorhandene Datei. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
|
Die temporäre Kopie der neuen Datei befindet sich im Zielverzeichnis. Die Ursache des Fehlers wird in anderen Flags widerverspiegelt. |
|
Die bereits vorhandene Datei ist schreibgeschützt. Dieser Fehler kann überschrieben werden, indem VerInstallFile erneut mit dem VIFF_FORCEINSTALL Flagsatz aufgerufen wird. |
Bemerkungen
Diese Funktion funktioniert in 16-, 32- und 64-Bit-Dateibildern.
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, VerInstallFile vergleicht die Versionsstempelinformationen der Dateien. Wenn die zuvor installierte Version der Datei aktueller als die neue Version ist oder die Attribute der Dateien erheblich unterschiedlich sind, z. B. wenn sie sich in verschiedenen Sprachen befinden, gibt VerInstallFile- mit mindestens einem behebbaren Fehlercode zurück.
VerInstallFile- die temporäre Datei im Zielverzeichnis belässt. 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.
Anmerkung
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 Code, der nicht codierungsneutral ist, 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 |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winver.h (enthalten Windows.h) |
Library | Version.lib |
DLL- | Api-ms-win-core-version-l1-1-0.dll |
Siehe auch
Konzeptionelle
Referenz-