Condividi tramite


Funzione EnumResourceTypesExA (libloaderapi.h)

Enumera i tipi di risorse associati a un modulo binario specificato. La ricerca può includere sia un file eseguibile portabile indipendente dal linguaggio (file LN) sia i file con estensione mui associati. In alternativa, può essere limitato a un singolo modulo binario di qualsiasi tipo o ai file mui associati a un singolo file LN. La ricerca può essere limitata anche a un singolo file con estensione mui associato che contiene risorse per una lingua specifica.

Per ogni tipo di risorsa trovato, EnumResourceTypesEx chiama una funzione di callback definita dall'applicazione lpEnumFunc, passando il tipo di risorsa trovato, nonché i vari altri parametri passati a EnumResourceTypesEx.

Sintassi

BOOL EnumResourceTypesExA(
  [in, optional] HMODULE          hModule,
  [in]           ENUMRESTYPEPROCA lpEnumFunc,
  [in]           LONG_PTR         lParam,
  [in]           DWORD            dwFlags,
  [in]           LANGID           LangId
);

Parametri

[in, optional] hModule

Tipo: HMODULE

Handle a un modulo da cercare. In genere si tratta di un file LN e, se il flag RESOURCE_ENUM_MUI è impostato, i file con estensione mui appropriati possono essere inclusi nella ricerca. In alternativa, questo può essere un handle per un file con estensione mui o un altro file LN.

Se questo parametro è NULL, equivale a passare un handle al modulo usato per creare il processo corrente.

[in] lpEnumFunc

Tipo: ENUMRESTYPEPROC

Puntatore alla funzione di callback da chiamare per ogni tipo di risorsa enumerato. Per altre informazioni, vedere EnumResTypeProc.

[in] lParam

Tipo: LONG_PTR

Valore definito dall'applicazione passato alla funzione di callback.

[in] dwFlags

Tipo: DWORD

Tipo di file da cercare. Sono supportati i valori seguenti. Si noti che se dwFlags è zero, verranno specificati i flag di RESOURCE_ENUM_LN e RESOURCE_ENUM_MUI .

Valore Significato
RESOURCE_ENUM_MUI
0x0002
Cercare i tipi di risorse in uno dei file mui associati al file specificato da hModule e con le preferenze di lingua correnti, seguendo la consueta strategia del caricatore risorse (vedere Gestione linguaggio interfaccia utente). In alternativa, se LangId è diverso da zero, verrà eseguito la ricerca solo del file con estensione mui della lingua, come specificato da LangId . In genere, questo flag deve essere usato solo se hModule fa riferimento a un file LN. Se hModule fa riferimento a un file con estensione mui, tale file è effettivamente coperto dal flag RESOURCE_ENUM_LN , nonostante il nome del flag.
RESOURCE_ENUM_LN
0x0001
Cerca solo il file specificato da hModule, indipendentemente dal fatto che il file sia un file LN o un file mui.
RESOURCE_ENUM_VALIDATE
0x0008
Esegue una convalida aggiuntiva nella sezione della risorsa e il relativo riferimento nell'intestazione PE durante l'enumerazione per assicurarsi che le risorse siano formattate correttamente. La convalida imposta un limite massimo di 260 caratteri per ogni tipo enumerato.

[in] LangId

Tipo: LANGID

Lingua usata per filtrare la ricerca nel modulo MUI. Questo parametro viene usato solo quando il flag di RESOURCE_ENUM_MUI è impostato in dwFlags. Se viene specificato zero, tutti i file con estensione mui che corrispondono alle preferenze di lingua correnti vengono inclusi nella ricerca, seguendo la consueta strategia del caricatore di risorse (vedere Gestione linguaggio interfaccia utente). Se viene specificato un file nonzero LangId , l'unico file con estensione mui ricercato sarà quello corrispondente a LangId specificato.

Valore restituito

Tipo: BOOL

Restituisce TRUE se ha esito positivo o FALSE se la funzione non trova una risorsa del tipo specificato o se la funzione ha esito negativo per un altro motivo. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

La funzione EnumResourceTypesEx continua ad enumerare i tipi di risorse fino a quando la funzione di callback restituisce FALSE o tutti i tipi di risorse sono stati enumerati.

Se hModule specifica un file LN e vengono selezionati entrambi i flag, i tipi enumerati corrispondono alle risorse che risiedono nel file LN o nei file mui associati. Se non vengono trovati file con estensione mui, vengono restituiti solo tipi dal file LN. Una volta trovato un file con estensione mui appropriato, la ricerca non continuerà ulteriormente, perché tutti i file con estensione mui corrispondenti a un singolo file LN hanno gli stessi tipi di risorse.

Se dwFlags e LangId sono entrambi zero, la funzione si comporta come EnumResourceTypes.

Se LangId è diverso da zero, verrà eseguito la ricerca solo del file con estensione mui corrispondente a tale identificatore di lingua. I fallback del linguaggio non verranno usati. Se non esiste un file con estensione mui per tale lingua, l'enumerazione sarà vuota (a meno che non esistano risorse per tale lingua nel file LN e il flag sia impostato anche per cercare il file LN).

L'enumerazione non include mai duplicati: se le risorse per un determinato linguaggio sono contenute nel file LN e in un file con estensione mui, il tipo verrà enumerato una sola volta.

Esempio

Per un esempio, vedere Creazione di un elenco di risorse.

Nota

L'intestazione libloaderapi.h definisce EnumResourceTypesEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione libloaderapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Informazioni concettuali

EnumResTypeProc

EnumResourceLanguagesEx

EnumResourceNamesEx

EnumResourceTypes

Riferimento

Risorse