Freigeben über


UpdateResourceW-Funktion (winbase.h)

Fügt eine Ressource in einer portablen ausführbaren Datei (PE) hinzu, löscht oder ersetzt sie. Es gibt einige Einschränkungen für Ressourcenaktualisierungen in Dateien, die RC Config-Daten enthalten: sprachneutralen-Dateien (LN) und sprachspezifische Ressourcendateien (MUI).

Syntax

BOOL UpdateResourceW(
  [in]           HANDLE  hUpdate,
  [in]           LPCWSTR lpType,
  [in]           LPCWSTR lpName,
  [in]           WORD    wLanguage,
  [in, optional] LPVOID  lpData,
  [in]           DWORD   cb
);

Parameter

[in] hUpdate

Typ: HANDLE

Ein Modulhandle, das von der BeginUpdateResource--Funktion zurückgegeben wird und auf die zu aktualisierende Datei verweist.

[in] lpType

Typ: LPCTSTR-

Der zu aktualisierende Ressourcentyp. Alternativ kann dieser Parameter anstelle eines Zeigers MAKEINTRESOURCE(ID) sein, wobei die ID ein ganzzahliger Wert ist, der einen vordefinierten Ressourcentyp darstellt. Wenn das erste Zeichen der Zeichenfolge ein Nummernzeichen (#) ist, stellen die verbleibenden Zeichen eine Dezimalzahl dar, die den ganzzahligen Bezeichner des Ressourcentyps angibt. Beispielsweise stellt die Zeichenfolge "#258" den Bezeichner 258 dar.

Eine Liste der vordefinierten Ressourcentypen finden Sie unter Ressourcentypen.

[in] lpName

Typ: LPCTSTR-

Der Name der zu aktualisierenden Ressource. Alternativ kann dieser Parameter anstelle eines Zeigers MAKEINTRESOURCE(ID) werden, wobei die ID eine Ressourcen-ID ist. Beim Erstellen einer neuen Ressource wird keine Zeichenfolge verwendet, die mit einem "#"-Zeichen für diesen Parameter beginnt.

[in] wLanguage

Typ: WORD-

Der Sprachbezeichner der zu aktualisierenden Ressource. Eine Liste der primären Sprach-IDs und Unterlanguierungen, aus denen ein Sprachbezeichner besteht, finden Sie im MAKELANGID Makros.

[in, optional] lpData

Typ: LPVOID-

Die Ressourcendaten, die in die datei eingefügt werden sollen, die durch hUpdateangegeben wird. Wenn es sich bei der Ressource um einen der vordefinierten Typen handelt, müssen die Daten gültig und ordnungsgemäß ausgerichtet sein. Beachten Sie, dass dies die rohen Binärdaten sind, die in der datei gespeichert werden sollen, die durch hUpdateangegeben ist, nicht die von LoadIcon, LoadStringoder anderen ressourcenspezifischen Ladefunktionen bereitgestellt werden. Alle Daten, die Zeichenfolgen oder Text enthalten, müssen im Unicode-Format vorliegen. lpData- dürfen nicht auf ANSI-Daten verweisen.

Wenn lpData- null ist und cbData- 0 ist, wird die angegebene Ressource aus der datei gelöscht, die durch hUpdateangegeben wird.

[in] cb

Typ: DWORD-

Die Größe der Ressourcendaten in Bytes bei lpData-.

Rückgabewert

Typ: BOOL-

Gibt TRUE zurück, wenn die erfolgreich oder falsch ist. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Es wird empfohlen, dass die Ressourcendatei nicht geladen wird, bevor diese Funktion aufgerufen wird. Wenn diese Datei jedoch bereits geladen ist, wird kein Fehler zurückgegeben.

Eine Anwendung kann UpdateResource- wiederholt verwenden, um Änderungen an den Ressourcendaten vorzunehmen. Jeder Aufruf von UpdateResource trägt zu einer internen Liste von Ergänzungen, Löschungen und Ersetzungen bei, schreibt aber nicht tatsächlich die Daten in die Datei, die durch hUpdateangegeben ist. Die Anwendung muss die EndUpdateResource--Funktion verwenden, um die gesammelten Änderungen in die Datei zu schreiben.

Diese Funktion kann Ressourcen in Modulen aktualisieren, die sowohl Code als auch Ressourcen enthalten.

Vor Windows 7: Wenn lpData-NULL- ist und cbData- ungleich Null ist, wird die angegebene Ressource NICHT gelöscht und eine Ausnahme ausgelöst.

Ab Windows Vista: Wie oben erwähnt, gibt es Einschränkungen für Ressourcenupdates in Dateien, die RC Config-Daten enthalten: LN-Dateien und MUI-Dateien. Die Einschränkungen sind wie folgt:

Aktion LN-Datei MUI-Datei
1. Fügen Sie einen neuen Typ hinzu, der in den LN- oder MUI-Dateien nicht vorhanden ist. Add type in the LN file and treat as language-neutral (non-localizable) and add new type or item in the RC Config data Die einzigen Zulässigen Ergänzungen sind die folgenden Typen: Dateiversion, RC Config-Daten, XML-Manifest für parallele Assembly.
2. Hinzufügen eines neuen Ressourcenelements zu einem vorhandenen Typ. Verwendet die RC Config-Daten, um zu überprüfen, ob der Typ in den MUI-Dateien vorhanden ist, die dieser LN-Datei zugeordnet sind. Wenn der Typ in den MUI-Dateien nicht vorhanden ist, fügen Sie das Element hinzu, und behandeln Sie das neue Element als nicht lokalisierbar. Wenn der Typ in den MUI-Dateien vorhanden ist, ist das Hinzufügen nicht zulässig. Es können nur Elemente der folgenden Typen hinzugefügt werden: Dateiversion, RC Config-Daten, XML-Manifest für parallele Assembly.
3. Aktualisieren eines Ressourcenelements. Verwendet die RC Config-Daten, um zu überprüfen, ob der Typ in den MUI-Dateien vorhanden ist, die der LN-Datei zugeordnet sind. Wenn der Typ in den MUI-Dateien nicht vorhanden ist, ist diese Ressourcenelementaktualisierung in der LN-Datei zulässig. Andernfalls, wenn der Typ in den MUI-Dateien vorhanden ist, die dieser LN-Datei zugeordnet sind, ist dieses Update nicht zulässig. Die einzigen zulässigen Updates sind Elemente der folgenden Typen: Dateiversion, RC Config-Daten, XML-Manifest für parallele Assembly.
4. Fügen Sie einen Typ/Element für eine neue Sprache hinzu. Unstatthaft. Unstatthaft.
5. Entfernen Eines vorhandenen Typs/Elements. Funktioniert ähnlich wie bei Fall 3. Verwendet die RC Config-Daten, um zu überprüfen, ob der Typ in den MUI-Dateien vorhanden ist, die der LN-Datei zugeordnet sind. Wenn nicht, ist das Entfernen des Typs/Elements aus der LN-Datei zulässig. Andernfalls ist das Entfernen nicht zulässig, wenn der Typ/Element in den MUI-Dateien vorhanden ist, die dieser LN-Datei zugeordnet sind. Die einzigen Zu entfernenden Typen sind: Dateiversion, RC Config-Daten, XML-Manifest für parallele Assemblys; Außerdem können nur Elemente dieser Typen entfernt werden.
6. Hinzufügen/Löschen/Aktualisieren eines Typs, der nicht in den RC Config-Daten enthalten ist (z. B. Version, Paralleles Assembly-XML-Manifest oder RC Config-Daten selbst). Erlaubt. Erlaubt.
7. Andere Aktualisierungen nicht lokalisierbarer Daten, z. B. TYPELIB, reginst usw. Aktualisieren Sie den Typ oder das Element in der LN-Datei, behandeln Sie sie als nicht lokalisierbar, und fügen Sie neue Typen oder Elemente in den RC Config-Daten hinzu. Nicht zutreffend.
8. Fügen Sie RC Config-Daten hinzu. Dies kann erfolgen, aber die Integrität der RC Config-Daten wird nicht überprüft. Dies kann erfolgen, aber die Integrität der RC Config-Daten wird nicht überprüft.
 

Beispiele

Ein Beispiel finden Sie unter Aktualisieren von Ressourcen.

Anmerkung

Der winbase.h-Header definiert UpdateResource 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- winbase.h (enthalten Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

BeginUpdateResource-

Konzeptionelle

EndUpdateResource-

LoadIcon-

LoadString-

LockResource-

MAKEINTRESOURCE-

MAKELANGID-

andere Ressourcen

Referenz-

Ressourcen

SizeofResource-