Condividi tramite


Funzione EnumResourceLanguagesExA (libloaderapi.h)

Enumera le risorse specifiche della lingua, del tipo e del nome specificati, associate a un modulo binario specificato. Estende EnumResourceLanguages consentendo un maggiore controllo sull'enumerazione.

Sintassi

BOOL EnumResourceLanguagesExA(
  [in] HMODULE          hModule,
  [in] LPCSTR           lpType,
  [in] LPCSTR           lpName,
  [in] ENUMRESLANGPROCA lpEnumFunc,
  [in] LONG_PTR         lParam,
  [in] DWORD            dwFlags,
  [in] LANGID           LangId
);

Parametri

[in] hModule

Tipo: HMODULE

Handle di un modulo da cercare. In genere si tratta di un file eseguibile portabile indipendente dal linguaggio (file LN) e se il flag RESOURCE_ENUM_MUI è impostato, i file con estensione mui appropriati vengono inclusi nella ricerca. In alternativa, questo può essere un handle per un file mui o un altro file LN. Se si tratta di un file con estensione mui specifico, viene cercato solo il file per le risorse.

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

[in] lpType

Tipo: LPCTSTR

Tipo della risorsa per la quale viene enumerata la lingua. 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

informazioni, vedere la sezione Osservazioni di seguito.

[in] lpName

Tipo: LPCTSTR

Nome della risorsa per cui viene enumerata la lingua. In alternativa, anziché un puntatore, questo parametro può essere MAKEINTRESOURCE(ID), dove ID è l'identificatore integer della risorsa. Per altre informazioni, vedere la sezione Osservazioni di seguito.

[in] lpEnumFunc

Tipo: ENUMRESLANGPROC

Puntatore alla funzione di callback da chiamare per ogni linguaggio di risorse enumerato. Per altre informazioni, vedere EnumResLangProcA.

[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 specifiche della lingua nei file con estensione mui associati al file LN specificato da hModule. In alternativa, se LangId è diverso da zero, l'unico file mui cercato sarà quello corrispondente all'LangId specificato. In genere, questo flag deve essere usato solo se hModule fa riferimento a un file LN. Se hModule fa riferimento a un file mui, tale file è effettivamente coperto dal flag RESOURCE_LN, nonostante il nome del flag. Vedere la sezione Osservazioni di seguito per la sequenza di ricerca.
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_MUI_SYSTEM
0x0004
Limita la ricerca dei file mui alle lingue MUI installate dal sistema.
RESOURCE_ENUM_VALIDATE
0x0008
Esegue una convalida aggiuntiva nella sezione della risorsa e il relativo riferimento nell'intestazione PE durante l'enumerazione per garantire che le risorse siano formattate correttamente.

[in] LangId

Tipo: LANGID

Lingua di localizzazione usata per filtrare la ricerca nel file 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 vengono inclusi nella ricerca. Se viene specificato un langid diverso da zero, l'unico file mui cercato sarà quello corrispondente all'LangId specificato.

Valore restituito

Tipo: bool

Restituisce TRUE se la funzione 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 ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

Se IS_INTRESOURCE(lpType) è TRUE, lpType specifica l'identificatore integer del tipo di risorsa specificato. In caso contrario, è 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 l'oggetto

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

Analogamente, se IS_INTRESOURCE(lpName) è TRUE, lpName specifica l'identificatore intero della risorsa specificata. In caso contrario, è 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 l'oggetto

identificatore integer della risorsa.

A partire da Windows Vista, il modulo binario è in genere un file LN e l'enumerazione includerà anche le risorse dei file di risorse specifici della lingua corrispondenti (file mui) che contengono risorse localizzabili del linguaggio.

Per ogni risorsa trovata, EnumResourceLanguagesEx chiama una funzione di callback definita dall'applicazione lpEnumFunc, passando alla funzione di callback l'identificatore della lingua (vedere Language Identifiers) della lingua per cui è stata trovata una risorsa (nonché i vari altri parametri passati a EnumResourceLanguagesEx).

La ricerca può includere sia un file LN che i relativi file mui associati oppure può essere limitato a un singolo modulo binario di qualsiasi tipo o ai file mui associati a un singolo file LN. Specificando inoltre un file LN per il parametro hModule e un parametro langId diverso da zero langId, la ricerca può essere limitata al file mui univoco associato a tale file e lingua LN.

La funzione EnumResourceLanguagesEx continua ad enumerare le lingue delle risorse fino a quando la funzione di callback non restituisce FALSE o tutte le lingue delle risorse sono state enumerate.

Se hModule specifica un file LN e vengono selezionati entrambi i flag, le lingue enumerate includono tutte le lingue le cui risorse risiedono nel file LN o in qualsiasi file mui associato. Se non vengono trovati file con estensione mui, vengono restituite solo le lingue del file LN.

Se dwFlags contiene RESOURCE_ENUM_MUI o NULL e LangId è 0, l'enumerazione include innanzitutto le lingue associate a tutti i file mui installati dal sistema, usando le lingue recuperate da EnumUILanguages.. Infine, se viene impostato anche il flag RESOURCE_ENUM_LN, viene eseguita anche la ricerca del file designato da hModule.

Se il 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 le risorse per tale lingua non esistano 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 tipo verrà enumerato una sola volta.

Esempi

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

Nota

L'intestazione libloaderapi.h definisce EnumResourceLanguagesEx 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 di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2008 [solo app desktop]
piattaforma di destinazione Finestre
intestazione libloaderapi.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

concettuale

EnumResLangProcA

EnumResourceNamesEx

EnumResourceTypesEx

MAKEINTRESOURCE

riferimento

risorse