IDWriteLocalizedStrings::FindLocaleName 方法 (dwrite.h)
取得地區設定名稱/字串組與指定地區設定名稱之以零起始的索引。
語法
HRESULT FindLocaleName(
[in] WCHAR const *localeName,
[out] UINT32 *index,
[out] BOOL *exists
);
參數
[in] localeName
類型: const WCHAR*
以 Null 結尾的字元陣列,其中包含要尋找的地區設定名稱。
[out] index
類型: UINT32*
地區設定名稱/字串組之以零起始的索引。 這個方法會將 索引 初始化為 UINT_MAX。
[out] exists
類型: BOOL*
當這個方法傳回時,如果地區設定名稱存在,則包含 TRUE ;否則為 FALSE。 這個方法會將 這個 方法初始化為 FALSE。
傳回值
類型: HRESULT
如果指定的地區設定名稱不存在,則會S_OK傳回值,但索引UINT_MAX且存在為FALSE。
備註
請注意,如果地區設定名稱不存在,傳回值為成功,而 exists 參數為 FALSE。 如果您要取得字型的字型系列名稱,且指定的地區設定名稱不存在,其中一個選項是將索引設定為 0,如下所示。 字型系列一律至少有一個地區設定。
UINT32 index = 0;
BOOL exists = false;
wchar_t localeName[LOCALE_NAME_MAX_LENGTH];
if (SUCCEEDED(hr))
{
// Get the default locale for this user.
int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH);
// If the default locale is returned, find that locale name, otherwise use "en-us".
if (defaultLocaleSuccess)
{
hr = pFamilyNames->FindLocaleName(localeName, &index, &exists);
}
if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English
{
hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists);
}
}
// If the specified locale doesn't exist, select the first on the list.
if (!exists)
index = 0;
需求
最低支援的用戶端 | 適用于 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dwrite.h |
程式庫 | Dwrite.lib |
Dll | Dwrite.dll |