Função GetLocaleInfoEx (winnls.h)
Recupera informações sobre uma localidade especificada por nome.
Sintaxe
int GetLocaleInfoEx(
[in, optional] LPCWSTR lpLocaleName,
[in] LCTYPE LCType,
[out, optional] LPWSTR lpLCData,
[in] int cchData
);
Parâmetros
[in, optional] lpLocaleName
Ponteiro para um nome de localidade ou um dos valores predefinidos a seguir.
[in] LCType
As informações de localidade a serem recuperadas. Para obter valores possíveis, consulte a seção "Constantes usadas no parâmetro LCType de GetLocaleInfo, GetLocaleInfoEx e SetLocaleInfo" em Constantes de informações de localidade. Observe que apenas uma parte das informações de localidade pode ser especificada por chamada.
O aplicativo pode usar o operador OR binário para combinar LOCALE_RETURN_NUMBER com qualquer outra constante permitida. Nesse caso, a função recupera o valor como um número em vez de uma cadeia de caracteres. O buffer que recebe o valor deve ter pelo menos o comprimento de um valor DWORD, que é 2.
[out, optional] lpLCData
Ponteiro para um buffer no qual essa função recupera as informações de localidade solicitadas. Esse ponteiro não será usado se cchData estiver definido como 0.
[in] cchData
Tamanho, em caracteres, do buffer de dados indicado por lpLCData. Como alternativa, o aplicativo pode definir esse parâmetro como 0. Nesse caso, a função não usa o parâmetro lpLCData e retorna o tamanho do buffer necessário, incluindo o caractere nulo de terminação.
Retornar valor
Retorna o número de caracteres recuperados no buffer de dados de localidade se bem-sucedido e cchData é um valor diferente de zero. Se a função for bem-sucedida, cchData será diferente de zero e LOCALE_RETURN_NUMBER for especificado, o valor retornado será o tamanho do inteiro recuperado no buffer de dados, ou seja, 2. Se a função for bem-sucedida e o valor de cchData for 0, o valor retornado será o tamanho necessário, em caracteres, incluindo um caractere nulo, para o buffer de dados de localidade.
A função retornará 0 se não for bem-sucedida. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar um dos seguintes códigos de erro:
- ERROR_INSUFFICIENT_BUFFER. Um tamanho de buffer fornecido não era grande o suficiente ou estava definido incorretamente como NULL.
- ERROR_INVALID_FLAGS. Os valores fornecidos para sinalizadores não eram válidos.
- ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.
Comentários
Essa função normalmente recupera informações no formato de texto. Se as informações forem um valor numérico e o valor de LCType for LOCALE_ILANGUAGE ou LOCALE_IDEFAULTLANGUAGE, essa função recuperará cadeias de caracteres que contêm números hexadecimais. Caso contrário, o texto recuperado para informações numéricas é um número decimal.
Há duas exceções a essa regra. Primeiro, o aplicativo pode recuperar valores numéricos como inteiros especificando LOCALE_RETURN_NUMBER no parâmetro LCType . A segunda exceção é que LOCALE_FONTSIGNATURE se comporta de forma diferente de todas as outras constantes de informações de localidade. O aplicativo deve fornecer um buffer de dados de pelo menos bytes sizeof(LOCALESIGNATURE). No retorno bem-sucedido da função, o buffer é preenchido como uma estrutura LOCALESIGNATURE .
int ret;
CALID calid;
DWORD value;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
(LPWSTR)&value,
sizeof(value) / sizeof(WCHAR) );
calid = value;
LOCALESIGNATURE LocSig;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_FONTSIGNATURE,
(LPWSTR)&LocSig,
sizeof(LocSig) / sizeof(WCHAR) );
Essa função pode recuperar dados de localidades personalizadas. Não há garantia de que os dados sejam iguais de computador para computador ou entre execuções de um aplicativo. Se o aplicativo precisar persistir ou transmitir dados, consulte Usando dados de localidade persistente.
Começando no Windows 8: se o aplicativo passar marcas de idioma para essa função do namespace Windows.Globalization, ele deverá primeiro converter as marcas chamando ResolveLocaleName.
Exemplos
Exemplos que mostram o uso dessa função podem ser encontrados em NLS: Exemplo de APIs baseadas em nome e NLS: exemplo de mitigação de IDN (nome de domínio internacionalizado).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | winnls.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Funções de suporte à linguagem nacional