共用方式為


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

另請參閱

IDWriteLocalizedStrings