EnumResourceNamesExA-Funktion (libloaderapi.h)

Listet Ressourcen eines angegebenen Typs auf, die einem angegebenen binären Modul zugeordnet sind. Die Suche kann sowohl eine LN-Datei als auch die zugehörigen MUI-Dateien enthalten oder auf verschiedene Arten eingeschränkt werden.

Syntax

BOOL EnumResourceNamesExA(
  [in, optional] HMODULE          hModule,
                 LPCSTR           lpType,
  [in]           ENUMRESNAMEPROCA lpEnumFunc,
  [in]           LONG_PTR         lParam,
  [in]           DWORD            dwFlags,
  [in]           LANGID           LangId
);

Parameter

[in, optional] hModule

Typ: HMODULE

Das Handle für ein zu durchsuchende Modul. In der Regel handelt es sich um eine LN-Datei, und wenn das Flag RESOURCE_ENUM_MUI festgelegt ist, werden entsprechende MUI-Dateien in die Suche einbezogen. Alternativ kann dies ein Handle für eine MUI-Datei oder eine andere LN-Datei sein.

Wenn dieser Parameter NULL ist, entspricht dies der Übergabe eines Handles an das Modul, das zum Erstellen des aktuellen Prozesses verwendet wird.

lpType

Typ: LPCSTR

Der Typ der Ressource, für die der Name aufgezählt wird. Alternativ kann dieser Parameter anstelle eines Zeigers MAKEINTRESOURCE(ID) sein, wobei ID ein ganzzahliger Wert ist, der einen vordefinierten Ressourcentyp darstellt. Eine Liste der vordefinierten Ressourcentypen finden Sie unter Ressourcentypen. Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".

[in] lpEnumFunc

Typ: ENUMRESNAMEPROC

Ein Zeiger auf die Rückruffunktion, die für jeden aufgezählten Ressourcennamen aufgerufen werden soll. Weitere Informationen finden Sie unter EnumResNameProc.

[in] lParam

Typ: LONG_PTR

Ein anwendungsdefinierter Wert, der an die Rückruffunktion übergeben wird. Dieser Parameter kann bei der Fehlerüberprüfung verwendet werden.

[in] dwFlags

Art: DWORD

Der Typ der zu durchsuchenden Datei. Die folgenden Werte werden unterstützt. Wenn dwFlags null ist, wird davon ausgegangen, dass die flags RESOURCE_ENUM_LN und RESOURCE_ENUM_MUI angegeben werden.

Wert Bedeutung
RESOURCE_ENUM_MUI
0x0002
Suchen Sie nach Ressourcen in MUI-Dateien, die der von hModule angegebenen LN-Datei und den aktuellen Spracheinstellungen zugeordnet sind, und folgen Sie dabei der üblichen Resource Loader-Strategie (siehe Benutzeroberflächensprachverwaltung). Wenn LangId ungleich null ist, wird alternativ nur die angegebene MUI-Datei durchsucht. In der Regel sollte dieses Flag nur verwendet werden, wenn hModule auf eine LN-Datei verweist. Wenn hModule auf eine MUI-Datei verweist, wird diese Datei trotz des Namens des Flags tatsächlich vom flag RESOURCE_ENUM_LN abgedeckt.
RESOURCE_ENUM_LN
0x0001
Durchsucht die von hModule angegebene Datei, unabhängig davon, ob es sich bei der Datei um eine LN-Datei, einen anderen Typ von LN-Datei oder eine MUI-Datei handelt.
RESOURCE_ENUM_VALIDATE
0x0008
Führt eine zusätzliche Überprüfung für den Ressourcenabschnitt und den zugehörigen Verweis im PE-Header aus, während die Enumeration ausgeführt wird, um sicherzustellen, dass Die Ressourcen ordnungsgemäß formatiert sind. Bei der Überprüfung wird für jeden Aufzählungsnamen ein Höchstwert von 260 Zeichen festgelegt.

[in] LangId

Typ: LANGID

Die Lokalisierungssprache, die zum Filtern der Suche im MUI-Modul verwendet wird. Dieser Parameter wird nur verwendet, wenn das RESOURCE_ENUM_MUI-Flag in dwFlags festgelegt ist. Wenn null angegeben wird, werden alle MUI-Dateien, die den aktuellen Spracheinstellungen entsprechen, gemäß der üblichen Resource Loader-Strategie in die Suche einbezogen (siehe Benutzeroberflächensprachverwaltung). Wenn eine LangId ungleich 0 (null) angegeben wird, ist die einzige durchsuchte MUI-Datei diejenige, die der angegebenen LangId entspricht.

Rückgabewert

Typ: BOOL

Die Funktion TRUE , wenn erfolgreich, oder FALSE , wenn die Funktion keine Ressource des angegebenen Typs findet oder wenn die Funktion aus einem anderen Grund fehlschlägt. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn IS_INTRESOURCE(lpszType) TRUE ist, gibt lpszType den ganzzahligen Bezeichner des angegebenen Ressourcentyps an. Andernfalls handelt es sich um einen Zeiger auf eine NULL-endende Zeichenfolge. Wenn das erste Zeichen der Zeichenfolge ein Pfundzeichen (#) ist, stellen die verbleibenden Zeichen eine Dezimalzahl dar, die die

ganzzahliger Bezeichner des Ressourcentyps. Die Zeichenfolge "#258" stellt beispielsweise den Bezeichner 258 dar.

Die Enumerationssuche kann sowohl eine LN-Datei als auch die zugehörigen MUI-Dateien enthalten. Es kann auf ein einzelnes binäres Modul eines beliebigen Typs beschränkt werden. Es kann auch auf die MUI-Dateien beschränkt werden, die einer einzelnen LN-Datei zugeordnet sind. Durch Angeben einer LN-Datei für den hModule-Parameter und eines LangId-Parameters ungleich null kann die Suche auf die eindeutige MUI-Datei beschränkt werden, die dieser LN-Datei und -Sprache zugeordnet ist.

Für jede gefundene Ressource ruft EnumResourceNamesEx die anwendungsdefinierte Rückruffunktion lpEnumFunc auf und übergibt den Namen oder die ID jeder gefundenen Ressource sowie die verschiedenen anderen Parameter, die an EnumResourceNamesEx übergeben wurden.

Wenn eine Ressource über eine ID verfügt, wird die ID an die Rückruffunktion zurückgegeben. Andernfalls wird der Ressourcenname an die Rückruffunktion zurückgegeben. Weitere Informationen finden Sie unter EnumResNameProc.

Die EnumResourceNamesEx-Funktion listet weiterhin Ressourcennamen auf, bis die Rückruffunktion FALSE zurückgibt oder alle Ressourcennamen für diesen Typ aufgelistet wurden.

Wenn hModule eine LN-Datei angibt und beide Flags ausgewählt sind, entsprechen die aufgezählten Namen ressourcen, die sich entweder in dieser LN-Datei oder den zugeordneten MUI-Dateien befinden. Wenn keine MUI-Dateien gefunden werden, werden nur Namen aus der LN-Datei zurückgegeben. Nachdem eine entsprechende MUI-Datei gefunden wurde, wird die Suche nicht weiter fortgesetzt, da alle MUI-Dateien, die einer einzelnen LN-Datei entsprechen, dieselben Ressourcennamen aufweisen.

Wenn dwFlags und LangId beide null sind, verhält sich die Funktion wie EnumResourceNames.

Wenn LangId ungleich null ist, wird nur die MUI-Datei, die diesem Sprachbezeichner entspricht, durchsucht. Sprachfallbacks werden nicht verwendet. Wenn keine MUI-Datei für diese Sprache vorhanden ist, ist die Enumeration leer (es sei denn, ressourcen für diese Sprache sind in der LN-Datei vorhanden, und das Flag ist so festgelegt, dass auch die LN-Datei durchsucht wird).

Die Enumeration enthält nie Duplikate: Wenn Ressourcen für eine bestimmte Sprache sowohl in der LN-Datei als auch in einer MUI-Datei enthalten sind, wird der Name nur einmal aufgezählt.

Beispiele

Ein Beispiel finden Sie unter Erstellen einer Ressourcenliste.

Hinweis

Der libloaderapi.h-Header definiert EnumResourceNamesEx 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

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile libloaderapi.h (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Konzept

EnumResNameProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypesEx

Referenz

Ressourcen