Función EnumResourceNamesExW (libloaderapi.h)
Enumera los recursos de un tipo especificado que están asociados a un módulo binario especificado. La búsqueda puede incluir un archivo LN y sus archivos .mui asociados, o puede estar limitado de varias maneras.
Sintaxis
BOOL EnumResourceNamesExW(
[in, optional] HMODULE hModule,
LPCWSTR lpType,
[in] ENUMRESNAMEPROCW lpEnumFunc,
[in] LONG_PTR lParam,
[in] DWORD dwFlags,
[in] LANGID LangId
);
Parámetros
[in, optional] hModule
Tipo: HMODULE
Identificador de un módulo que se va a buscar. Normalmente se trata de un archivo LN y, si se establece la marca RESOURCE_ENUM_MUI , los archivos .mui adecuados se incluyen en la búsqueda. Como alternativa, puede ser un identificador para un archivo .mui u otro archivo LN.
Si este parámetro es NULL, equivale a pasar un identificador al módulo usado para crear el proceso actual.
lpType
Tipo: LPCTSTR
Tipo del recurso para el que se enumera el nombre. Como alternativa, en lugar de un puntero, este parámetro puede ser MAKEINTRESOURCE(ID), donde ID es un valor entero que representa un tipo de recurso predefinido. Para obtener una lista de los tipos de recursos predefinidos, consulte Tipos de recursos. Para obtener más información, vea la sección Comentarios a continuación.
[in] lpEnumFunc
Tipo: ENUMRESNAMEPROC
Puntero a la función de devolución de llamada que se va a llamar para cada nombre de recurso enumerado. Para obtener más información, vea EnumResNameProc.
[in] lParam
Tipo: LONG_PTR
Valor definido por la aplicación que se pasa a la función de devolución de llamada. Este parámetro se puede usar en la comprobación de errores.
[in] dwFlags
Tipo: DWORD
Tipo de archivo que se va a buscar. Se admiten los valores siguientes. Tenga en cuenta que si dwFlags es cero, se supone que se especifican las marcas RESOURCE_ENUM_LN y RESOURCE_ENUM_MUI .
Valor | Significado |
---|---|
|
Busque recursos en archivos .mui asociados con el archivo LN especificado por hModule y con las preferencias de idioma actuales, siguiendo la estrategia habitual de Resource Loader (consulte Administración de lenguajes de la interfaz de usuario). Como alternativa, si LangId es distinto de cero, solo se buscará en el archivo .mui especificado. Normalmente, esta marca solo se debe usar si hModule hace referencia a un archivo LN. Si hModule hace referencia a un archivo .mui, ese archivo está realmente cubierto por la marca RESOURCE_ENUM_LN , a pesar del nombre de la marca. |
|
Busca en el archivo especificado por hModule, independientemente de si el archivo es un archivo LN, otro tipo de archivo LN o un archivo .mui. |
|
Realiza una validación adicional en la sección de recursos y su referencia en el encabezado PE mientras realiza la enumeración para asegurarse de que los recursos tienen el formato correcto. La validación establece un límite máximo de 260 caracteres para cada nombre que se enumera. |
[in] LangId
Tipo: LANGID
Idioma de localización que se usa para filtrar la búsqueda en el módulo MUI. Este parámetro solo se usa cuando la marca RESOURCE_ENUM_MUI se establece en dwFlags. Si se especifica cero, todos los archivos .mui que coinciden con las preferencias de idioma actuales se incluyen en la búsqueda, siguiendo la estrategia habitual del cargador de recursos (consulte Administración del lenguaje de la interfaz de usuario). Si se especifica un langId distinto de cero, el único archivo .mui buscado será el que coincida con el LangId especificado.
Valor devuelto
Tipo: BOOL
La función TRUE si se ejecuta correctamente o FALSE si la función no encuentra un recurso del tipo especificado, o si se produce un error en la función por otro motivo. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Si IS_INTRESOURCE(lpszType) es TRUE, lpszType especifica el identificador entero del tipo de recurso especificado. De lo contrario, es un puntero a una cadena terminada en null. Si el primer carácter de la cadena es un signo de libra (#), los caracteres restantes representan un número decimal que especifica el
identificador entero del tipo de recurso. Por ejemplo, la cadena "#258" representa el identificador 258.
La búsqueda de enumeración puede incluir un archivo LN y sus archivos .mui asociados. Puede limitarse a un único módulo binario de cualquier tipo. También puede limitarse a los archivos .mui asociados a un único archivo LN. Al especificar un archivo LN para el parámetro hModule y un parámetro LangId distinto de cero, la búsqueda se puede limitar al archivo .mui único asociado con ese archivo LN y el idioma.
Para cada recurso encontrado, EnumResourceNamesEx llama a una función de devolución de llamada definida por la aplicación lpEnumFunc, pasando el nombre o el identificador de cada recurso que encuentra, así como los demás parámetros que se pasaron a EnumResourceNamesEx.
Si un recurso tiene un identificador, el identificador se devuelve a la función de devolución de llamada; De lo contrario, el nombre del recurso se devuelve a la función de devolución de llamada. Para obtener más información, vea EnumResNameProc.
La función EnumResourceNamesEx continúa enumerando los nombres de recursos hasta que la función de devolución de llamada devuelve FALSE o se han enumerado todos los nombres de recursos de este tipo.
Si hModule especifica un archivo LN y se seleccionan ambas marcas, los nombres enumerados corresponden a los recursos que residen en ese archivo LN o en los archivos .mui asociados. Si no se encuentra ningún archivo .mui, solo se devuelven nombres del archivo LN. Después de encontrar un archivo .mui adecuado, la búsqueda no continuará, ya que todos los archivos .mui correspondientes a un único archivo LN tienen los mismos nombres de recursos.
Si dwFlags y LangId son cero, la función se comporta como EnumResourceNames.
Si LangId no es cero, solo se buscará en el archivo .mui correspondiente a ese identificador de idioma. No se usarán las reservas de idioma. Si no existe un archivo .mui para ese idioma, la enumeración estará vacía (a menos que existan recursos para ese idioma en el archivo LN y la marca se establezca para buscar también el archivo LN).
La enumeración nunca incluye duplicados: si los recursos de un idioma determinado se incluyen en el archivo LN y en un archivo .mui, el nombre solo se enumerará una vez.
Ejemplos
Para obtener un ejemplo, consulte Creación de una lista de recursos.
Nota:
El encabezado libloaderapi.h define EnumResourceNamesEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | libloaderapi.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Consulte también
Conceptual
Referencia
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de