XPackageGetUserLocale
获取当前用户区域设置。
语法
HRESULT XPackageGetUserLocale(
size_t localeSize,
char* locale
)
参数
localeSize _In_
类型:size_t
成功后,locale 中字符串的大小。
locale _Out_writes_(localeSize)
类型:char*
在成功时,包含用户区域设置。
返回值
类型:HRESULT
HRESULT 成功或错误代码。
备注
注意
在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程。
此函数可获取与程序包区域设置最接近的用户区域设置。 如果没有为程序包声明区域设置信息,则此函数将成功,但不会返回 locale
中的用户区域设置。 如果程序包区域设置与已安装的用户区域设置相匹配,此函数将成功并返回 locale
中的用户区域设置。 如果程序包区域设置与已安装的用户区域设置不完全匹配,此函数将尝试查找与所安装的用户区域设置最接近的匹配项。 如果此函数找不到接近的匹配,则会出现错误;否则,函数将成功,并在 locale
中返回最匹配的已安装用户区域设置。
如果你正在使用智能交付功能控制为你的游戏安装哪些语言,则可能用户已为主机设置的区域设置具有当前未安装的区块。 这要求游戏始终验证是否安装了所需的区块,如果未安装,则回退到另一种语言:一个需要大量有关区域设置及如何回退到最接近的语言的知识的过程。 此函数提供了一种方法,可用于获取当前用户区域设置或最接近的匹配回退,无需实现自己的区域设置分析和回退过程。
以下代码示例说明了如何使用此函数。
char gameLocale[LOCALE_NAME_MAX_LENGTH];
// Get the best user locale that is installed
HRESULT hr = XPackageGetUserLocale(_countof(gameLocale), gameLocale);
if (SUCCEEDED(hr))
{
printf("Game using locale: %s\n", gameLocale);
}
要求
头文件:XPackage.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机