Función GetFileMUIInfo (winnls.h)
Recupera información relacionada con los recursos sobre un archivo.
Sintaxis
BOOL GetFileMUIInfo(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PFILEMUIINFO pFileMUIInfo,
[in, out] DWORD *pcbFileMUIInfo
);
Parámetros
[in] dwFlags
Marcas que especifican la información que se va a recuperar. Se permite cualquier combinación de las marcas siguientes. El valor predeterminado de las marcas es MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.
Valor | Significado |
---|---|
|
Recupere uno de los valores siguientes en el miembro dwFileType de FILEMUIINFO:
|
|
Recupere la suma de comprobación de recursos del archivo de entrada en el miembro pChecksum de FILEMUIINFO. Si el archivo de entrada no tiene datos de configuración de recursos, este miembro de la estructura contiene 0. |
|
Recupere el idioma asociado al archivo de entrada. Para un archivo de recursos específico del idioma, esta marca solicita el idioma asociado. Para un archivo LN, esta marca solicita el idioma de los recursos de reserva finales para el módulo, que puede estar en el archivo LN o en un archivo de recursos específico del lenguaje independiente al que hacen referencia los datos de configuración de recursos del archivo LN. Para obtener más información, vea la sección Comentarios. |
|
Recupere listas de tipos de recursos en los archivos de recursos específicos del lenguaje y los archivos LN tal como se especifican en los datos de configuración de recursos. Consulte la sección Comentarios para obtener acceso a esta información. |
[in] pcwszFilePath
Puntero a una cadena terminada en null que indica la ruta de acceso al archivo. Normalmente, el archivo es un archivo LN o un archivo de recursos específico del lenguaje. Si no es uno de estos tipos, el único valor significativo que recupera la función es MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. La función solo recupera este valor si se establece la marca MUI_QUERY_RESOURCE_TYPES.
[in, out, optional] pFileMUIInfo
Puntero a un búfer que contiene información de archivo en una estructura FILEMUIINFO y, posiblemente, en los datos siguientes a esa estructura. Es posible que el búfer de información tenga que ser mucho mayor que el tamaño de la propia estructura. Según la configuración de la marca, la función puede almacenar información considerable después de la estructura, en desplazamientos recuperados en la estructura. Para obtener más información, vea la sección Comentarios.
Como alternativa, la aplicación puede establecer este parámetro en NULL si pcbFileMUIInfo está establecido en 0. En este caso, la función recupera el tamaño necesario para el búfer de información en pcbFileMUIInfo.
[in, out] pcbFileMUIInfo
Puntero al tamaño del búfer, en bytes, para la información del archivo indicada por pFileMUIInfo. Si la función se devuelve correctamente, este parámetro contiene el tamaño del búfer de información de archivo recuperado y la estructura FILEMUIINFO que lo contiene.
Como alternativa, la aplicación puede establecer este parámetro en 0 si establece NULL en pFileMUIInfo. En este caso, la función recupera el tamaño de búfer de información de archivo necesario en pcbFileMUIInfo. Para asignar la cantidad correcta de memoria, este valor debe agregarse al tamaño de la propia estructura FILEMUIINFO .
Valor devuelto
Devuelve TRUE si es correcto o FALSE de lo contrario. Para obtener información de error extendida, la aplicación puede llamar a GetLastError.
Comentarios
Para la marca MUI_QUERY_LANGUAGE_NAME, esta función recupera un desplazamiento, en bytes, desde el principio de FILEMUIINFO en el miembro dwLanguageNameOffset .
A continuación se muestra el código de ejemplo que tiene acceso al nombre del idioma asociado al archivo de entrada:
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwLanguageNameOffset);
Para la marca MUI_QUERY_RESOURCE_TYPES, esta función recupera información del archivo de recursos específico del lenguaje en los siguientes miembros FILEMUIINFO :
- El miembro dwTypeIDMUIOffset contiene el desplazamiento a una matriz de identificadores de recursos contenidos en el archivo de recursos específico del idioma.
- El miembro dwTypeIDMUISize contiene el tamaño de la matriz de identificadores de recursos para el archivo de recursos específico del idioma.
- El miembro dwTypeNameMUIOffset contiene el desplazamiento a una matriz de nombres de recursos contenidos en el archivo de recursos específico del lenguaje.
- El miembro dwTypeIDMainOffset contiene el desplazamiento a una matriz de identificadores de recursos contenidos en el archivo LN.
- El miembro dwTypeIDMainSize contiene el tamaño de la matriz de identificadores de recursos para el archivo LN.
- El miembro dwTypeNameMainOffset contiene el desplazamiento a una matriz de nombres de recursos contenidos en el archivo.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeIDMainOffset);
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeNameMainOffset);
Otro enfoque consiste en escribir lo siguiente en lugar del código que se muestra en los ejemplos. El efecto es el mismo y la elección es estrictamente uno de los estilos.
DWORD ix = pFileMUIInfo->dwLanguageNameOffset -
offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
Firma de C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetFileMUIInfo(
System.UInt32 dwFlags,
System.String pcwszFilePath,
ref FILEMUIINFO pFileMUIInfo,
ref System.UInt32 pcbFileMUIInfo
);
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