捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
19 2017.06

GetLocaleInfoEx

点击次数:1524 更新时间:2017-6-19 19:47:43  【打印此页

原文链接 -> 传送门

函数功能:

GetLocaleInfoEx 函数用于获取名称指定的区域设置相关信息。

注意1:如果应用程序被设计为仅在 Windows Vista 和以后的版本中使用,则应该优先使用该函数而不是 GetLocaleInfo函数。

注意2:GetLocaleInfoEx 函数可以获取版本之间的变化。比如基于定制的语言环境数据。如果您的应用程序必须持续或传输数据,见 Using Persistent Locale Data


API 函数原型:

注释:_In_ 说明该参数是输入的;_Out_ 说明该参数是输出的;_opt_ 说明该参数是可选的

int GetLocaleInfoEx(
  _In_opt_  LPCWSTR lpLocaleName,
  _In_      LCTYPE  LCType,
  _Out_opt_ LPWSTR  lpLCData,
  _In_      int     cchData
);

参数解析:
 

参数

含义

lpLocaleName

指向区域名称的指针,或者是下列预定义值中的某一个:
 

·         LOCALE_NAME_INVARIANT

·         LOCALE_NAME_SYSTEM_DEFAULT

·         LOCALE_NAME_USER_DEFAULT

LCType

1. 指向需要获取的区域相关信息。对于可能的取值,参看 Locale Information Constants 中 "Constants Used in the LCType Parameter of GetLocaleInfo, GetLocaleInfoEx, and SetLocaleInfo" 一节。注意每次调用该函数只能指定一种区域信息

2. 应用程序可以使用二进制 OR 操作符来将 LOCALE_RETURN_NUMBER 与其他任意允许的常量相结合。在这种情况下,函数获取的值为一个数而不是字符串。接收该值的缓冲区的大小必须至少为 DWORD 的长度(也就是 2)
注意:也可能将 LOCALE_NOUSEROVERRIDE 与任何常量进行组合。然而,强烈建议不要使用此常量(即使不使用当前用户覆盖,数据在不同计算机中不同,并且自定义区域设置可以更改该数据。例如,甚至月或天的名字是受拼写改革决定的)

3. 如果 LCType 参数被设置为 LOCALE_IOPTIONALCALENDAR,则函数仅获取第一备用日历
注意:获取所有的备用日历,应用程序应该使用 EnumCalendarInfoEx 函数

4. 从 Windows Vista 开始,你的应用程序不应该在 LCType 参数中使用 LOCALE_ILANGUAGE,从而避免调用失败或是获取到意料之外的数据。相反,建议你的应用程序调用 GetLocaleInfoEx 函数

lpLCData

1. 指向一个缓冲区的指针,该缓冲区在函数中用来获取所需的区域信息
2. 如果 cchData 设置为 0,则不使用该指针。

cchData

1. 指定 lpLCData 参数指示的数据缓冲区的大小,以字符为单位
2. 另外,应用程序可以设置该参数为 0,在这种情况下,函数将不会使用 lpLCData 参数,并且返回所需的缓冲区大小,包括终止空字符



返回值:

1. 如果函数调用成功,并且 cchData 为非零值,则返回获取的区域数据缓冲区中字符的个数。如果函数调用成功,cchData 为非零值,并且指定了 LOCALE_RETURN_NUMBER,则返回值为获取的数据缓冲区中整形数据的大小(也就是 2)。如果函数调用成功,并且 cchData 的值为 0,则返回值为以字符为单位,获取的区域数据缓冲区的大小,包括空字符。

2. 如果函数调用失败,则返回 0。

获取有关错误的更多信息,请调用 GetLastError 函数,该函数将返回下列的错误代码:
 

错误码

含义

ERROR_INSUFFICIENT_BUFFER

提供的缓冲区大小不够大,或者是错误地设置为 NULL

ERROR_INVALID_FLAGS

提供的标识符无效

ERROR_INVALID_PARAMETER

任何一个参数无效



备注:

1. 该函数通常获取文本格式的信息。如果信息是一个数值,并且 LCType 值为 LOCALE_ILANGUAGE 或 LOCALE_IDEFAULTLANGUAGE,则该函数获取包含十六进制数的字符串。否则,获取的数值型信息为一个十进制数。

2. 这个规则有两个例外。第一,应用程序可以通过在 LCType 参数中指定 LOCALE_RETURN_NUMBER 来获取整形的数值型值。第二种例外情况是,LOCALE_FONTSIGNATURE 不同于其他所有区域设置信息常量的行为。应用程序必须提供至少 sizeof(LOCALESIGNATURE) 字节大小的数据缓冲区。一旦从函数中成功返回,缓冲区就被填充为一个 LOCALESIGNATURE 结构。

注意:即使 LCType 参数被指定为 LOCALE_FONTSIGNATURE,cchData 和函数返回仍然是 字符数。当应用程序调用 GetLocaleInfoEx,并且指定LCType 参数为 LOCALE_FONTSIGNATURE,则 cchData 可以安全地指定为 sizeof(LOCALESIGNATURE) / sizeof(WCHAR)。

3. 下面的例子展示了非文本值缓冲器大小的直接处理:
 

int   ret;
CALID calid;
DWORD value;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
                    (LPTSTR)&value,
                    sizeof(value) / sizeof(TCHAR) );
calid = value;

LOCALESIGNATURE LocSig;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_FONTSIGNATURE,
                    (LPWSTR)&LocSig,
                    sizeof(LocSig) / sizeof(TCHAR) );


4. 该函数可以获取自定义区域设置的数据。数据在不同计算机之间或者应用程序的使用中不保证取得相同的值。

5. 从 Windows 8 开始:如果你的应用程序从 Windows.Globalization 命名空间传递语言标记到这个函数,必须首先调用 ResolveLocaleName 函数转换该标记。


需求:
 

Minimum supported client

Windows Vista [桌面应用程序 | Windows 商店应用程序]

Minimum supported server

Windows Server 2008 [桌面应用程序 | Windows 商店应用程序]

Minimum supported phone

Windows Phone 8

Header

Winnls.h (包含于 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1524 更新时间:2017-6-19 19:47:43  【打印此页

上一条:CREATESTRUCT 结构

下一条:MENUINFO 结构

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修