Função GetFileMUIPath (winnls.h)
Recupera o caminho para todos os arquivos de recursos específicos do idioma associados ao arquivo LN fornecido. O aplicativo deve chamar essa função repetidamente para obter o caminho para cada arquivo de recurso.
Sintaxe
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
Sinalizadores que identificam o formato de linguagem e a filtragem. Os sinalizadores a seguir especificam o formato do idioma indicado por pwszLanguage. Os sinalizadores são mutuamente exclusivos e o padrão é MUI_LANGUAGE_NAME.
Valor | Significado |
---|---|
|
Recupere a cadeia de caracteres de idioma no formato de identificador de idioma . |
|
Recupere a cadeia de caracteres de idioma no formato de nome do idioma . |
Os sinalizadores a seguir especificam a filtragem para a função a ser usada na localização de arquivos de recursos específicos da linguagem se pwszLanguage estiver definido como NULL. Os sinalizadores de filtragem são mutuamente exclusivos e o padrão é MUI_USER_PREFERRED_UI_LANGUAGES.
Os sinalizadores a seguir permitem que o usuário indique o tipo de arquivo especificado por pcwszFilePath para que a função possa determinar se deve adicionar ".mui" ao nome do arquivo. Os sinalizadores são mutuamente exclusivos. Se o aplicativo passar os dois sinalizadores, a função falhará. Se o aplicativo não passar nenhum sinalizador, a função verificará o arquivo na pasta raiz para verificar o tipo de arquivo e decidir sobre a nomenclatura de arquivo.
[in] pcwszFilePath
Ponteiro para uma cadeia de caracteres terminada em nulo especificando um caminho de arquivo. O caminho é para um arquivo LN existente ou para um arquivo como um arquivo .txt, .inf ou .msc. Se o arquivo for um arquivo LN, a função procurará arquivos que contenham os recursos específicos do idioma associados. Para todos os outros tipos de arquivos, a função busca arquivos que correspondem exatamente ao nome do arquivo e ao caminho indicados. Seu aplicativo pode substituir o comportamento do tipo de arquivo marcar usando o sinalizador MUI_LANG_NEUTRAL_PE_FILE ou MUI_NON_LANG_NEUTRAL_FILE. Para obter mais informações, consulte a seção Comentários.
[in, out, optional] pwszLanguage
Ponteiro para um buffer que contém uma cadeia de caracteres de idioma. Na entrada, esse buffer contém o identificador de idioma ou o nome do idioma para o qual o aplicativo deve encontrar arquivos de recurso específicos do idioma, dependendo das configurações de dwFlags. No retorno bem-sucedido da função, esse parâmetro contém o idioma do arquivo de recurso específico da linguagem que a função encontrou.
Como alternativa, o aplicativo pode definir esse parâmetro como NULL, com o valor referenciado por pcchLanguage definido como 0. Nesse caso, a função recupera o tamanho do buffer necessário em pcchLanguage.
[in, out] pcchLanguage
Ponteiro para o tamanho do buffer, em caracteres, para a cadeia de caracteres de idioma indicada por pwszLanguage. Se o aplicativo definir o valor referenciado por esse parâmetro como 0 e passar NULL para pwszLanguage, o tamanho do buffer necessário será retornado em pcchLanguage e o tamanho do buffer retornado será sempre LOCALE_NAME_MAX_LENGTH, pois a função normalmente é chamada várias vezes em sucessão. A função não pode determinar o tamanho exato do nome do idioma para todas as chamadas sucessivas e não pode estender o buffer em chamadas subsequentes. Portanto, LOCALE_NAME_MAX_LENGTH é o único máximo seguro.
[out, optional] pwszFileMUIPath
Ponteiro para um buffer que contém o caminho para o arquivo de recurso específico do idioma. É altamente recomendável alocar esse buffer para ser de tamanho MAX_PATH.
Como alternativa, esse parâmetro poderá recuperar NULL se o valor referenciado por pcchFileMUIPath estiver definido como 0. Nesse caso, a função recupera o tamanho necessário para o buffer de caminho de arquivo no pcchFileMUIPath.
[in, out] pcchFileMUIPath
Ponteiro para o tamanho do buffer, em caracteres, para o caminho do arquivo indicado por pwszFileMUIPath. No retorno bem-sucedido da função, esse parâmetro indica o tamanho do caminho do arquivo recuperado. Se o aplicativo definir o valor referenciado por esse parâmetro como 0, a função recuperará NULL para pwszFileMUIPath, o tamanho do buffer necessário será retornado em pcchFileMUIPath e o tamanho do buffer retornado será sempre MAX_PATH, pois a função normalmente é chamada várias vezes em sucessão. A função não pode determinar o tamanho exato do caminho para todas as chamadas sucessivas e não pode estender o buffer em chamadas subsequentes. Portanto, MAX_PATH é o único máximo seguro.
[in, out] pululEnumerator
Ponteiro para uma variável de enumeração. Na primeira vez que essa função for chamada, o valor da variável deverá ser 0. Entre chamadas subsequentes, o aplicativo não deve alterar o valor desse parâmetro. Depois que a função recuperar todos os possíveis caminhos de arquivo de recurso específicos da linguagem, ela retornará FALSE.
Retornar valor
Retornará TRUE se tiver êxito ou FALSE caso contrário. Se a função falhar, os parâmetros de saída não serão alterados.
Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar os seguintes códigos de erro:
- ERROR_INSUFFICIENT_BUFFER. Um tamanho de buffer fornecido não era grande o suficiente ou foi definido incorretamente como NULL.
- ERROR_NO_MORE_FILES. Não havia mais arquivos a serem processados.
Comentários
Essa função verifica se há arquivos de recurso específicos do idioma, mas não verifica se eles estão corretos. Ele exige que os arquivos de recurso sejam armazenados de acordo com a convenção de armazenamento explicada na Implantação de Aplicativos.
Se a chamada para essa função especificar o sinalizador MUI_LANGUAGE_ID, a cadeia de caracteres de idioma fornecida deverá
use um identificador de linguagem hexadecimal que não inclua o 0x à esquerda e tem 4 caracteres de comprimento.
Por exemplo, en-US deve ser passado como "0409" e en como "0009". A cadeia de caracteres de idioma retornada estará no
mesmo formato.
Quando MUI_LANGUAGE_ID é especificado, cada valor hexadecimal na cadeia de caracteres de idioma fornecida deve representar um identificador de idioma real. Em particular, os valores correspondentes às seguintes localidades não podem ser especificados:
- LOCALE_USER_DEFAULT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
Normalmente, o carregador de recursos é usado para localizar arquivos de recurso. No entanto, seu aplicativo também pode usar essa função para localizar os arquivos. Se o caminho do arquivo de entrada for para um arquivo LN, a função anexa um sufixo ".mui" ao procurar os arquivos de recurso específicos do idioma correspondentes.
Por exemplo, a função recupera os seguintes arquivos quando o aplicativo passa a cadeia de caracteres "C:\mydir\Example1.dll" em pcwszFilePath como o caminho do arquivo raiz, com dwFlags definido como 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
Se o arquivo indicado por pcwszFilePath não tiver dados de configuração de recurso ou se o arquivo não existir, a função deixará o nome do arquivo como está ao procurar os arquivos de recurso específicos do idioma correspondentes.
Por exemplo, o aplicativo passa a cadeia de caracteres "C:\mydir\Example2.txt" em pcwszFilePath como o caminho do arquivo raiz, com dwFlags definido como MUI_LANGUAGE_NAME | MUI_USER_PREFERRED_UI_LANGUAGES. Vamos considerar o caso em que os idiomas de interface do usuário preferenciais do usuário (em ordem) são catalão, "ca-ES" e espanhol (Espanha), "es-ES" e onde os seguintes arquivos existem:
- (nenhum arquivo correspondente em 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
Se o arquivo de destino e seus arquivos de recurso associados forem, na verdade, assemblies habilitados lado a lado, GetFileMUIPath não poderá ser usado para recuperar o caminho para o arquivo de recurso. Consulte Usando assemblies com uma interface do usuário multilanguage para obter detalhes sobre como usar assemblies lado a lado com suporte a MUI.
Assinatura do 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 | 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