Função GetFileMUIInfo (winnls.h)
Recupera informações relacionadas a recursos sobre um arquivo.
Sintaxe
BOOL GetFileMUIInfo(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PFILEMUIINFO pFileMUIInfo,
[in, out] DWORD *pcbFileMUIInfo
);
Parâmetros
[in] dwFlags
Sinalizadores que especificam as informações a serem recuperadas. Qualquer combinação dos sinalizadores a seguir é permitida. O valor padrão dos sinalizadores é MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.
Valor | Significado |
---|---|
|
Recupere um dos seguintes valores no membro dwFileType de FILEMUIINFO:
|
|
Recupere a soma de verificação de recursos do arquivo de entrada no membro pChecksum de FILEMUIINFO. Se o arquivo de entrada não tiver dados de configuração de recurso, esse membro da estrutura conterá 0. |
|
Recupere o idioma associado ao arquivo de entrada. Para um arquivo de recurso específico do idioma, esse sinalizador solicita o idioma associado. Para um arquivo LN, esse sinalizador solicita o idioma dos recursos de fallback finais para o módulo, que pode estar no arquivo LN ou em um arquivo de recurso específico de linguagem separado referenciado pelos dados de configuração de recurso do arquivo LN. Para obter mais informações, consulte a seção Comentários. |
|
Recupere listas de tipos de recursos nos arquivos de recursos específicos do idioma e nos arquivos LN conforme eles são especificados nos dados de configuração do recurso. Consulte a seção Comentários para obter uma maneira de acessar essas informações. |
[in] pcwszFilePath
Ponteiro para uma cadeia de caracteres terminada em nulo que indica o caminho para o arquivo. Normalmente, o arquivo é um arquivo LN ou um arquivo de recurso específico do idioma. Se não for um desses tipos, o único valor significativo recuperado pela função será MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. A função só recuperará esse valor se o sinalizador MUI_QUERY_RESOURCE_TYPES estiver definido.
[in, out, optional] pFileMUIInfo
Ponteiro para um buffer que contém informações de arquivo em uma estrutura FILEMUIINFO e possivelmente em dados que seguem essa estrutura. O buffer de informações pode ter que ser muito maior do que o tamanho da própria estrutura. Dependendo das configurações do sinalizador, a função pode armazenar informações consideráveis após a estrutura, em deslocamentos recuperados na estrutura . Para obter mais informações, consulte a seção Comentários.
Como alternativa, o aplicativo poderá definir esse parâmetro como NULL se pcbFileMUIInfo estiver definido como 0. Nesse caso, a função recupera o tamanho necessário para o buffer de informações em pcbFileMUIInfo.
[in, out] pcbFileMUIInfo
Ponteiro para o tamanho do buffer, em bytes, para as informações de arquivo indicadas por pFileMUIInfo. No retorno bem-sucedido da função, esse parâmetro contém o tamanho do buffer de informações de arquivo recuperado e a estrutura FILEMUIINFO que o contém.
Como alternativa, o aplicativo poderá definir esse parâmetro como 0 se definir NULL em pFileMUIInfo. Nesse caso, a função recupera o tamanho do buffer de informações de arquivo necessário em pcbFileMUIInfo. Para alocar a quantidade correta de memória, esse valor deve ser adicionado ao tamanho da própria estrutura FILEMUIINFO .
Retornar valor
Retornará TRUE se tiver êxito ou FALSE caso contrário. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError.
Comentários
Para o sinalizador MUI_QUERY_LANGUAGE_NAME, essa função recupera um deslocamento, em bytes, do início de FILEMUIINFO no membro dwLanguageNameOffset .
Veja a seguir o código de exemplo que acessa o nome do idioma associado ao arquivo de entrada:
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwLanguageNameOffset);
Para o sinalizador MUI_QUERY_RESOURCE_TYPES, essa função recupera informações de arquivo de recurso específicas do idioma nos seguintes membros FILEMUIINFO :
- O membro dwTypeIDMUIOffset contém o deslocamento para uma matriz de identificadores de recursos contidos no arquivo de recurso específico do idioma.
- O membro dwTypeIDMUISize contém o tamanho da matriz de identificadores de recursos para o arquivo de recurso específico da linguagem.
- O membro dwTypeNameMUIOffset contém o deslocamento para uma matriz de nomes de recursos contidos no arquivo de recurso específico do idioma.
- O membro dwTypeIDMainOffset contém o deslocamento para uma matriz de identificadores de recursos contidos no arquivo LN.
- O membro dwTypeIDMainSize contém o tamanho da matriz de identificadores de recurso para o arquivo LN.
- O membro dwTypeNameMainOffset contém o deslocamento para uma matriz de nomes de recursos contidos no arquivo.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeIDMainOffset);
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeNameMainOffset);
Outra abordagem é escrever o seguinte em vez do código mostrado nos exemplos. O efeito é o mesmo e a escolha é estritamente de estilo.
DWORD ix = pFileMUIInfo->dwLanguageNameOffset -
offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
Assinatura do 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 | 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] |
Plataforma de Destino | Windows |
Cabeçalho | winnls.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Interface do Usuário Multilíngue