Función GetFileMUIPath (winnls.h)
Recupera la ruta de acceso a todos los archivos de recursos específicos del lenguaje asociados al archivo LN proporcionado. La aplicación debe llamar a esta función repetidamente para obtener la ruta de acceso de cada archivo de recursos.
Sintaxis
BOOL GetFileMUIPath(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PWSTR pwszLanguage,
[in, out] PULONG pcchLanguage,
[out, optional] PWSTR pwszFileMUIPath,
[in, out] PULONG pcchFileMUIPath,
[in, out] PULONGLONG pululEnumerator
);
Parámetros
[in] dwFlags
Marcas que identifican el formato de idioma y el filtrado. Las marcas siguientes especifican el formato del idioma indicado por pwszLanguage. Las marcas son mutuamente excluyentes y el valor predeterminado es MUI_LANGUAGE_NAME.
Valor | Significado |
---|---|
|
Recupere la cadena de idioma en formato de identificador de idioma . |
|
Recupere la cadena de idioma en formato de nombre de idioma . |
Las marcas siguientes especifican el filtrado de la función que se va a usar en la búsqueda de archivos de recursos específicos del lenguaje si pwszLanguage está establecido en NULL. Las marcas de filtrado son mutuamente excluyentes y el valor predeterminado es MUI_USER_PREFERRED_UI_LANGUAGES.
Las marcas siguientes permiten al usuario indicar el tipo de archivo especificado por pcwszFilePath para que la función pueda determinar si debe agregar ".mui" al nombre de archivo. Las marcas son mutuamente excluyentes. Si la aplicación pasa ambas marcas, se produce un error en la función. Si la aplicación no pasa ninguna marca, la función comprueba el archivo en la carpeta raíz para comprobar el tipo de archivo y decidir la nomenclatura de archivos.
[in] pcwszFilePath
Puntero a una cadena terminada en null que especifica una ruta de acceso de archivo. La ruta de acceso es para un archivo LN existente o para un archivo como un archivo .txt, .inf o .msc. Si el archivo es un archivo LN, la función busca los archivos que contienen los recursos específicos del idioma asociados. Para todos los demás tipos de archivos, la función busca archivos que se correspondan exactamente con el nombre de archivo y la ruta de acceso indicadas. La aplicación puede sobrescribir el comportamiento de la comprobación de tipo de archivo mediante la marca MUI_LANG_NEUTRAL_PE_FILE o MUI_NON_LANG_NEUTRAL_FILE. Para obtener más información, vea la sección Comentarios.
[in, out, optional] pwszLanguage
Puntero a un búfer que contiene una cadena de idioma. En la entrada, este búfer contiene el identificador de idioma o el nombre de idioma para el que la aplicación debe encontrar archivos de recursos específicos del idioma, según la configuración de dwFlags. Si la función se devuelve correctamente, este parámetro contiene el idioma del archivo de recursos específico del lenguaje que ha encontrado la función.
Como alternativa, la aplicación puede establecer este parámetro en NULL, con el valor al que hace referencia pcchLanguage establecido en 0. En este caso, la función recupera el tamaño de búfer necesario en pcchLanguage.
[in, out] pcchLanguage
Puntero al tamaño del búfer, en caracteres, para la cadena de idioma indicada por pwszLanguage. Si la aplicación establece el valor al que hace referencia este parámetro en 0 y pasa NULL para pwszLanguage, el tamaño de búfer necesario se devolverá en pcchLanguage y el tamaño del búfer devuelto siempre se LOCALE_NAME_MAX_LENGTH, ya que la función suele llamarse varias veces sucesivamente. La función no puede determinar el tamaño exacto del nombre del lenguaje para todas las llamadas sucesivas y no puede extender el búfer en llamadas posteriores. Por lo tanto, LOCALE_NAME_MAX_LENGTH es el único máximo seguro.
[out, optional] pwszFileMUIPath
Puntero a un búfer que contiene la ruta de acceso al archivo de recursos específico del idioma. Se recomienda encarecidamente asignar este búfer para que sea de tamaño MAX_PATH.
Como alternativa, este parámetro puede recuperar NULL si el valor al que hace referencia pcchFileMUIPath se establece en 0. En este caso, la función recupera el tamaño necesario para el búfer de ruta de acceso de archivo en pcchFileMUIPath.
[in, out] pcchFileMUIPath
Puntero al tamaño del búfer, en caracteres, para la ruta de acceso del archivo indicada por pwszFileMUIPath. Si la función se devuelve correctamente, este parámetro indica el tamaño de la ruta de acceso del archivo recuperado. Si la aplicación establece el valor al que hace referencia este parámetro en 0, la función recupera NULL para pwszFileMUIPath, el tamaño de búfer necesario se devolverá en pcchFileMUIPath y el tamaño del búfer devuelto siempre se MAX_PATH, ya que la función suele llamarse varias veces sucesivamente. La función no puede determinar el tamaño exacto de la ruta de acceso para todas las llamadas sucesivas y no puede extender el búfer en llamadas posteriores. Por lo tanto, MAX_PATH es el único máximo seguro.
[in, out] pululEnumerator
Puntero a una variable de enumeración. La primera vez que se llama a esta función, el valor de la variable debe ser 0. Entre las llamadas posteriores, la aplicación no debe cambiar el valor de este parámetro. Después de que la función recupere todas las posibles rutas de acceso del archivo de recursos específicas del lenguaje, devuelve FALSE.
Valor devuelto
Devuelve TRUE si es correcto o FALSE en caso contrario. Si se produce un error en la función, los parámetros de salida no cambian.
Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver los siguientes códigos de error:
- ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
- ERROR_NO_MORE_FILES. No había más archivos para procesar.
Comentarios
Esta función comprueba que existen archivos de recursos específicos del lenguaje, pero no comprueba que sean correctos. Requiere que los archivos de recursos se almacenen según la convención de almacenamiento que se explica en Implementación de aplicaciones.
Si la llamada a esta función especifica la marca MUI_LANGUAGE_ID, la cadena de idioma proporcionada debe
usa un identificador de idioma hexadecimal que no incluye el 0x inicial y tiene 4 caracteres de longitud.
Por ejemplo, en-US debe pasarse como "0409" y en como "0009". La cadena de idioma devuelta estará en
mismo formato.
Cuando se especifica MUI_LANGUAGE_ID, cada valor hexadecimal de la cadena de idioma proporcionada debe representar un identificador de idioma real. En concreto, no se pueden especificar los valores correspondientes a las configuraciones regionales siguientes:
- LOCALE_USER_DEFAULT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
Normalmente, el cargador de recursos se usa para buscar archivos de recursos. Sin embargo, la aplicación también puede usar esta función para buscar los archivos. Si la ruta de acceso del archivo de entrada es para un archivo LN, la función adjunta un sufijo de ".mui" al buscar los archivos de recursos específicos del idioma correspondientes.
Por ejemplo, la función recupera los siguientes archivos cuando la aplicación pasa la cadena "C:\mydir\Example1.dll" en pcwszFilePath como ruta de acceso del archivo raíz, con dwFlags establecido en MUI_LANGUAGE_NAME | MUI_USE_SEARCH_ALL_LANGUAGES:
- C:\mydir\Example1.dll
- C:\mydir\en-US\Example1.dll.mui
- C:\mydir\ja-JP\Example1.dll.mui
Si el archivo indicado por pcwszFilePath no tiene datos de configuración de recursos, o si el archivo no existe, la función deja el nombre de archivo tal cual cuando busca los archivos de recursos específicos del idioma correspondientes.
Por ejemplo, la aplicación pasa la cadena "C:\mydir\Example2.txt" en pcwszFilePath como ruta de acceso del archivo raíz, con dwFlags establecido en MUI_LANGUAGE_NAME | MUI_USER_PREFERRED_UI_LANGUAGES. Consideremos el caso en el que los idiomas de interfaz de usuario preferidos por el usuario (en orden) son catalán, "ca-ES" y español (España), "es-ES" y dónde existen los siguientes archivos:
- (no hay ningún archivo correspondiente en C:\mydir)
- C:\mydir\en-US\Example2.txt
- C:\mydir\en\Example2.txt
- C:\mydir\es-ES\Example2.txt
- C:\mydir\es\Example2.txt
- C:\mydir\ja-JP\Example2.txt
Si el archivo de destino y sus archivos de recursos asociados son realmente ensamblados habilitados en paralelo, GetFileMUIPath no se puede usar para recuperar la ruta de acceso al archivo de recursos. Consulte Using Assemblies with a Multilanguage User Interface (Usar ensamblados con una interfaz de usuario multilanguage ) para obtener más información sobre cómo usar ensamblados en paralelo con compatibilidad con MUI.
Firma de C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetFileMUIPath(
System.UInt32 dwFlags,
System.String pcwszFilePath,
System.Text.StringBuilder pwszLanguage,
ref System.UInt32 pcchLanguage,
System.Text.StringBuilder pwszFileMUIPath,
ref System.UInt32 pcchFileMUIPath,
ref System.UInt64 pululEnumerator
);
Requisitos
Requisito | Value |
---|---|
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 | winnls.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Interfaz de usuario multilingüe