Estructura FILEMUIINFO (winnls.h)

Contiene información sobre un archivo, relacionado con su uso con MUI. La mayoría de estos datos se almacenan en los datos de configuración de recursos para el archivo determinado. Cuando GetFileMUIInfo recupera esta estructura, no todos los campos se rellenan necesariamente. Los campos usados dependen de las marcas que la aplicación ha pasado a esa función.

Nota Las aplicaciones MUI pueden usar las macros MUI para acceder a esta estructura.
 

Sintaxis

typedef struct _FILEMUIINFO {
  DWORD dwSize;
  DWORD dwVersion;
  DWORD dwFileType;
  BYTE  pChecksum[16];
  BYTE  pServiceChecksum[16];
  DWORD dwLanguageNameOffset;
  DWORD dwTypeIDMainSize;
  DWORD dwTypeIDMainOffset;
  DWORD dwTypeNameMainOffset;
  DWORD dwTypeIDMUISize;
  DWORD dwTypeIDMUIOffset;
  DWORD dwTypeNameMUIOffset;
  BYTE  abBuffer[8];
} FILEMUIINFO, *PFILEMUIINFO;

Miembros

dwSize

Tamaño de la estructura, incluido el búfer, que se puede extender más allá de los 8 bytes declarados. El valor mínimo permitido es sizeof(FILEMUIINFO).

dwVersion

Versión de la estructura. La versión actual es 0x001.

dwFileType

Tipo de archivo. Los valores posibles son:

  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. El archivo de entrada no tiene datos de configuración de recursos. Este tipo de archivo es típico para los archivos ejecutables anteriores. Si se especifica este tipo de archivo, los demás tipos de archivo no proporcionarán información útil.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. El archivo de entrada es un archivo LN.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. El archivo de entrada es un archivo de recursos específico del idioma.

pChecksum[16]

Puntero a una suma de comprobación de 128 bits para el archivo, si es un archivo LN o un archivo de recursos específico del idioma.

pServiceChecksum[16]

Puntero a una suma de comprobación de 128 bits para el archivo, que se usa para el mantenimiento.

dwLanguageNameOffset

Desplazamiento, en bytes, desde el principio de la estructura hasta la cadena de nombre de idioma para un archivo de recursos específico del idioma, o hasta la cadena final del nombre del idioma de reserva para un archivo LN.

dwTypeIDMainSize

Tamaño de la matriz para la que el desplazamiento se indica mediante dwTypeIDMainOffset. El tamaño también corresponde al número de cadenas de la matriz de varias cadenas indicada por dwTypeNameMainOffset.

dwTypeIDMainOffset

Desplazamiento, en bytes, desde el principio de la estructura hasta una matriz DWORD que enumera los tipos de recursos contenidos en el archivo LN.

dwTypeNameMainOffset

Desplazamiento, en bytes, desde el principio de la estructura hasta una serie de cadenas terminadas en null en una matriz de varias cadenas que enumera los nombres de recursos contenidos en el archivo LN.

dwTypeIDMUISize

Tamaño de la matriz con el desplazamiento indicado por dwTypeIDMUIOffset. El tamaño también corresponde al número de cadenas de la serie de cadenas indicadas por dwTypeNameMUIOffset.

dwTypeIDMUIOffset

Desplazamiento, en bytes, desde el principio de la estructura hasta una matriz DWORD que enumera los tipos de recursos contenidos en el archivo LN.

dwTypeNameMUIOffset

Desplazamiento, en bytes, desde el principio de la estructura hasta una matriz de varias cadenas que enumera los nombres de recursos incluidos en el archivo LN.

abBuffer[8]

Resto de la memoria asignada para esta estructura. Consulte la sección Comentarios para obtener el uso correcto de esta matriz.

Comentarios

Todos los desplazamientos proceden de la base de la estructura. Un desplazamiento de 0 indica que los datos no están disponibles.

A continuación se muestra un ejemplo que muestra cómo obtener acceso a los datos de la posición en la estructura que se describe mediante un desplazamiento. En este ejemplo se obtiene acceso a la cadena de nombre de idioma con la posición definida por dwLanguageNameOffset.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);

En este ejemplo se usan dos conversiones de reinterpretación. En primer lugar, el código se convierte en BYTE*, por lo que el puntero aritmético para el desplazamiento se realizará en bytes. A continuación, el código convierte el puntero resultante al tipo deseado.

Como alternativa, el código se puede escribir como se muestra a continuación. El efecto es el mismo; la elección es estrictamente uno de los estilos.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));

Firma de C#

unsafe public struct FILEMUIINFO
        {
            public System.UInt32 dwSize;
            public System.UInt32 dwVersion;
            public System.UInt32 dwFileType;
            public fixed System.Byte pChecksum[16];
            public fixed System.Byte pServiceChecksum[16];
            public System.UInt32 dwLanguageNameOffset;
            public System.UInt32 dwTypeIDMainSize;
            public System.UInt32 dwTypeIDMainOffset;
            public System.UInt32 dwTypeNameMainOffset;
            public System.UInt32 dwTypeIDMUISize;
            public System.UInt32 dwTypeIDMUIOffset;
            public System.UInt32 dwTypeNameMUIOffset;
            public fixed System.Byte abBuffer[8];
        }

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado winnls.h (incluye Windows.h)

Consulte también

GetFileMUIInfo

Interfaz de usuario multilingüe

Macros de interfaz de usuario multilingüe

Estructuras de interfaz de usuario multilingües