Condividi tramite


Funzione EnumResourceNamesExA (libloaderapi.h)

Enumera le risorse di un tipo specificato associate a un modulo binario specificato. La ricerca può includere sia un file LN che i relativi file con estensione mui associati oppure può essere limitato in diversi modi.

Sintassi

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

Parametri

[in, optional] hModule

Tipo: HMODULE

Handle di 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 vengono inclusi nella ricerca. In alternativa, può trattarsi di un handle per un file mui o un altro file LN.

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

lpType

Tipo: LPCSTR

Tipo della risorsa per cui viene enumerato il nome. In alternativa, anziché un puntatore, questo parametro può essere MAKEINTRESOURCE(ID), dove ID è un valore intero che rappresenta un tipo di risorsa predefinito. Per un elenco dei tipi di risorse predefiniti, vedere Tipi di risorse. Per altre informazioni, vedere la sezione Osservazioni di seguito.

[in] lpEnumFunc

Tipo: ENUMRESNAMEPROC

Puntatore alla funzione di callback da chiamare per ogni nome di risorsa enumerata. Per altre informazioni, vedere EnumResNameProc.

[in] lParam

Tipo: LONG_PTR

Valore definito dall'applicazione passato alla funzione di callback. Questo parametro può essere usato nel controllo degli errori.

[in] dwFlags

Tipo: DWORD

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

Valore Significato
RESOURCE_ENUM_MUI
0x0002
Cercare le risorse nei file mui associati al file LN specificato da hModule e alle preferenze di lingua correnti, seguendo la consueta strategia di Resource Loader (vedere Gestione del linguaggio dell'interfaccia utente). In alternativa, se LangId è diverso da zero, verrà eseguita la ricerca solo del file con estensione mui specificato. 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 viene effettivamente coperto dal flag RESOURCE_ENUM_LN , nonostante il nome del flag.
RESOURCE_ENUM_LN
0x0001
Cerca il file specificato da hModule, indipendentemente dal fatto che il file sia un file LN, un altro tipo di file LN o un file mui.
RESOURCE_ENUM_VALIDATE
0x0008
Esegue una convalida aggiuntiva nella sezione della risorsa e nel relativo riferimento nell'intestazione PE durante l'enumerazione per garantire che le risorse siano formattate correttamente. La convalida imposta un limite massimo di 260 caratteri per ogni nome enumerato.

[in] LangId

Tipo: LANGID

Lingua di localizzazione usata per filtrare la ricerca nel modulo MUI. Questo parametro viene usato solo quando il flag 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 di Resource Loader (vedere Gestione del linguaggio dell'interfaccia utente). Se viene specificato un Valore LangId diverso da zero, l'unico file con estensione mui cercato sarà quello corrispondente al valore LangId specificato.

Valore restituito

Tipo: BOOL

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

Commenti

Se IS_INTRESOURCE(lpszType) è TRUE, lpszType specifica l'identificatore integer del tipo di risorsa specificato. In caso contrario, si tratta di un puntatore a una stringa con terminazione Null. Se il primo carattere della stringa è un segno di cancelletto (#), i caratteri rimanenti rappresentano un numero decimale che specifica il

identificatore integer del tipo di risorsa. Ad esempio, la stringa "#258" rappresenta l'identificatore 258.

La ricerca di enumerazione può includere sia un file LN che i file mui associati. Può essere limitato a un singolo modulo binario di qualsiasi tipo. Può anche essere limitato ai file mui associati a un singolo file LN. Specificando un file LN per il parametro hModule e un parametro nonzero LangId , la ricerca può essere limitata al file con estensione mui univoco associato a tale file e lingua LN.

Per ogni risorsa trovata, EnumResourceNamesEx chiama una funzione di callback definita dall'applicazione lpEnumFunc, passando il nome o l'ID di ogni risorsa trovata, nonché i vari altri parametri passati a EnumResourceNamesEx.

Se una risorsa ha un ID, l'ID viene restituito alla funzione di callback; in caso contrario, il nome della risorsa viene restituito alla funzione di callback. Per altre informazioni, vedere EnumResNameProc.

La funzione EnumResourceNamesEx continua ad enumerare i nomi delle risorse fino a quando la funzione di callback non restituisce FALSE o tutti i nomi di risorse per questo tipo sono stati enumerati.

Se hModule specifica un file LN e vengono selezionati entrambi i flag, i nomi 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 i nomi del file LN. Dopo aver trovato un file mui appropriato, la ricerca non continuerà ulteriormente, perché tutti i file mui corrispondenti a un singolo file LN hanno gli stessi nomi di risorse.

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

Se LangId è diverso da zero, verrà eseguita la ricerca solo del file mui corrispondente a tale identificatore di lingua. I fallback del linguaggio non verranno usati. Se non esiste un file 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 la ricerca nel file LN).

L'enumerazione non include mai duplicati: se le risorse per una determinata lingua sono contenute sia nel file LN che in un file mui, il nome verrà enumerato una sola volta.

Esempio

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

Nota

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

Requisiti

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

Vedere anche

Informazioni concettuali

EnumResNameProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypesEx

Riferimento

Risorse