Estrutura FILEMUIINFO (winnls.h)
Contém informações sobre um arquivo, relacionadas ao seu uso com MUI. A maioria desses dados é armazenada nos dados de configuração de recursos para o arquivo específico. Quando essa estrutura é recuperada por GetFileMUIInfo, nem todos os campos são necessariamente preenchidos. Os campos usados dependem dos sinalizadores que o aplicativo passou para essa função.
Sintaxe
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;
Membros
dwSize
Tamanho da estrutura, incluindo o buffer, que pode ser estendido além dos 8 bytes declarados. O valor mínimo permitido é sizeof(FILEMUIINFO)
.
dwVersion
Versão da estrutura. A versão atual é 0x001.
dwFileType
O tipo de arquivo. Os valores possíveis são:
- MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. O arquivo de entrada não tem dados de configuração de recurso. Esse tipo de arquivo é típico para arquivos executáveis mais antigos. Se esse tipo de arquivo for especificado, os outros tipos de arquivo não fornecerão informações úteis.
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. O arquivo de entrada é um arquivo LN.
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. O arquivo de entrada é um arquivo de recurso específico do idioma.
pChecksum[16]
Ponteiro para uma soma de verificação de 128 bits para o arquivo, se for um arquivo LN ou um arquivo de recurso específico do idioma.
pServiceChecksum[16]
Ponteiro para uma soma de verificação de 128 bits para o arquivo, usado para manutenção.
dwLanguageNameOffset
Deslocamento, em bytes, desde o início da estrutura até a cadeia de caracteres de nome de idioma para um arquivo de recurso específico de linguagem ou para a cadeia de caracteres de nome de linguagem de fallback final para um arquivo LN.
dwTypeIDMainSize
Tamanho da matriz para a qual o deslocamento é indicado por dwTypeIDMainOffset. O tamanho também corresponde ao número de cadeias de caracteres na matriz de várias cadeias de caracteres indicada por dwTypeNameMainOffset.
dwTypeIDMainOffset
Deslocamento, em bytes, desde o início da estrutura até uma matriz DWORD enumerando os tipos de recursos contidos no arquivo LN.
dwTypeNameMainOffset
Deslocamento, em bytes, desde o início da estrutura até uma série de cadeias de caracteres terminadas em nulo em uma matriz de várias cadeias de caracteres enumerando os nomes de recursos contidos no arquivo LN.
dwTypeIDMUISize
Tamanho da matriz com o deslocamento indicado por dwTypeIDMUIOffset. O tamanho também corresponde ao número de cadeias de caracteres na série de cadeias de caracteres indicadas por dwTypeNameMUIOffset.
dwTypeIDMUIOffset
Deslocamento, em bytes, desde o início da estrutura até uma matriz DWORD enumerando os tipos de recursos contidos no arquivo LN.
dwTypeNameMUIOffset
Deslocamento, em bytes, desde o início da estrutura até uma matriz de várias cadeias de caracteres enumerando os nomes de recursos contidos no arquivo LN.
abBuffer[8]
Restante da memória alocada para essa estrutura. Consulte a seção Comentários para obter o uso correto dessa matriz.
Comentários
Todos os deslocamentos são da base da estrutura. Um deslocamento de 0 indica que os dados não estão disponíveis.
Veja a seguir um exemplo que mostra como acessar dados para a posição na estrutura descrita por um deslocamento. Este exemplo acessa a cadeia de caracteres de nome de idioma com a posição definida por dwLanguageNameOffset.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);
Este exemplo usa duas conversões reinterpretas. Primeiro, o código é convertido em BYTE* para que a aritmética do ponteiro para o deslocamento seja feita em bytes. Em seguida, o código converte o ponteiro resultante para o tipo desejado.
Como alternativa, o código pode ser escrito conforme mostrado abaixo. O efeito é o mesmo; a escolha é estritamente um estilo.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
Assinatura do 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | winnls.h (inclua Windows.h) |
Confira também
Interface do Usuário Multilíngue