Partager via


Fonction EnumResourceNamesExW (libloaderapi.h)

Énumère les ressources d’un type spécifié qui sont associées à un module binaire spécifié. La recherche peut inclure à la fois un fichier LN et ses fichiers .mui associés, ou elle peut être limitée de plusieurs façons.

Syntaxe

BOOL EnumResourceNamesExW(
  [in, optional] HMODULE          hModule,
                 LPCWSTR          lpType,
  [in]           ENUMRESNAMEPROCW lpEnumFunc,
  [in]           LONG_PTR         lParam,
  [in]           DWORD            dwFlags,
  [in]           LANGID           LangId
);

Paramètres

[in, optional] hModule

Type : HMODULE

Handle d’un module à rechercher. En règle générale, il s’agit d’un fichier LN et, si l’indicateur RESOURCE_ENUM_MUI est défini, les fichiers .mui appropriés sont inclus dans la recherche. Il peut également s’agir d’un handle vers un fichier .mui ou un autre fichier LN.

Si ce paramètre a la valeur NULL, cela équivaut à passer un handle au module utilisé pour créer le processus actuel.

lpType

Type : LPCTSTR

Type de la ressource pour laquelle le nom est énuméré. Sinon, plutôt qu’un pointeur, ce paramètre peut être MAKEINTRESOURCE(ID), où ID est une valeur entière représentant un type de ressource prédéfini. Pour obtenir la liste des types de ressources prédéfinis, consultez Types de ressources. Pour plus d’informations, consultez la section Remarques ci-dessous.

[in] lpEnumFunc

Type : ENUMRESNAMEPROC

Pointeur vers la fonction de rappel à appeler pour chaque nom de ressource énuméré. Pour plus d’informations, consultez EnumResNameProc.

[in] lParam

Type : LONG_PTR

Valeur définie par l’application passée à la fonction de rappel. Ce paramètre peut être utilisé dans la vérification des erreurs.

[in] dwFlags

Type : DWORD

Type de fichier à rechercher. Les valeurs suivantes sont admises : Notez que si dwFlags est égal à zéro, les indicateurs RESOURCE_ENUM_LN et RESOURCE_ENUM_MUI sont supposés être spécifiés.

Valeur Signification
RESOURCE_ENUM_MUI
0x0002
Recherchez des ressources dans les fichiers .mui associés au fichier LN spécifié par hModule et aux préférences de langue actuelles, en suivant la stratégie habituelle resource Loader (voir Gestion des langues de l’interface utilisateur). Si LangId est différent de zéro, seul le fichier .mui spécifié fait l’objet d’une recherche. En règle générale, cet indicateur doit être utilisé uniquement si hModule fait référence à un fichier LN. Si hModule fait référence à un fichier .mui, ce fichier est en fait couvert par l’indicateur RESOURCE_ENUM_LN , malgré le nom de l’indicateur.
RESOURCE_ENUM_LN
0x0001
Recherche le fichier spécifié par hModule, qu’il s’agisse d’un fichier LN, d’un autre type de fichier LN ou d’un fichier .mui.
RESOURCE_ENUM_VALIDATE
0x0008
Effectue une validation supplémentaire sur la section des ressources et sa référence dans l’en-tête PE lors de l’énumération pour s’assurer que les ressources sont correctement mises en forme. La validation définit une limite maximale de 260 caractères pour chaque nom énuméré.

[in] LangId

Type : LANGID

Langue de localisation utilisée pour filtrer la recherche dans le module MUI. Ce paramètre est utilisé uniquement lorsque l’indicateur RESOURCE_ENUM_MUI est défini dans dwFlags. Si zéro est spécifié, tous les fichiers .mui qui correspondent aux préférences de langue actuelles sont inclus dans la recherche, en suivant la stratégie habituelle resource Loader (voir Gestion de la langue de l’interface utilisateur). Si un LangId différent de zéro est spécifié, le seul fichier .mui recherché sera celui correspondant au LangId spécifié.

Valeur retournée

Type : BOOL

La fonction TRUE si elle réussit, ou FALSE si la fonction ne trouve pas de ressource du type spécifié, ou si la fonction échoue pour une autre raison. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

Si IS_INTRESOURCE(lpszType) a la valeur TRUE, lpszType spécifie l’identificateur entier du type de ressource donné. Sinon, il s’agit d’un pointeur vers une chaîne terminée par null. Si le premier caractère de la chaîne est un signe dièse (#), les caractères restants représentent un nombre décimal qui spécifie le signe

identificateur entier du type de ressource. Par exemple, la chaîne « #258 » représente l’identificateur 258.

La recherche d’énumération peut inclure à la fois un fichier LN et ses fichiers .mui associés. Il peut être limité à un seul module binaire de n’importe quel type. Il peut également être limité aux fichiers .mui associés à un seul fichier LN. En spécifiant un fichier LN pour le paramètre hModule et un paramètre LangId différent de zéro, la recherche peut être limitée au fichier .mui unique associé à ce fichier LN et à cette langue.

Pour chaque ressource trouvée, EnumResourceNamesEx appelle une fonction de rappel définie par l’application lpEnumFunc, en passant le nom ou l’ID de chaque ressource trouvée, ainsi que les différents autres paramètres qui ont été passés à EnumResourceNamesEx.

Si une ressource a un ID, l’ID est retourné à la fonction de rappel ; sinon, le nom de la ressource est retourné à la fonction de rappel. Pour plus d’informations, consultez EnumResNameProc.

La fonction EnumResourceNamesEx continue d’énumérer les noms de ressources jusqu’à ce que la fonction de rappel retourne FALSE ou que tous les noms de ressources pour ce type aient été énumérés.

Si hModule spécifie un fichier LN et que les deux indicateurs sont sélectionnés, les noms énumérés correspondent aux ressources résidant dans ce fichier LN ou les fichiers .mui qui lui sont associés. Si aucun fichier .mui n’est trouvé, seuls les noms du fichier LN sont retournés. Une fois qu’un fichier .mui approprié est trouvé, la recherche ne se poursuivra plus, car tous les fichiers .mui correspondant à un seul fichier LN ont les mêmes noms de ressources.

Si dwFlags et LangId sont tous deux zéro, la fonction se comporte comme EnumResourceNames.

Si LangId est différent de zéro, seul le fichier .mui correspondant à cet identificateur language sera recherché. Les secours linguistiques ne seront pas utilisés. Si un fichier .mui pour cette langue n’existe pas, l’énumération est vide (sauf si des ressources pour cette langue existent dans le fichier LN et que l’indicateur est défini pour rechercher également le fichier LN).

L’énumération n’inclut jamais de doublons : si les ressources d’une langue particulière sont contenues à la fois dans le fichier LN et dans un fichier .mui, le nom n’est énuméré qu’une seule fois.

Exemples

Pour obtenir un exemple, consultez Création d’une liste de ressources.

Notes

L’en-tête libloaderapi.h définit EnumResourceNamesEx comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête libloaderapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Conceptuel

EnumResNameProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypesEx

Référence

Ressources