Partager via


Interface IDWriteLocalizedStrings (dwrite.h)

Représente une collection de chaînes indexées par nom de paramètres régionaux.

Héritage

L’interface IDWriteLocalizedStrings hérite de l’interface IUnknown. IDWriteLocalizedStrings a également les types de membres suivants :

Méthodes

L’interface IDWriteLocalizedStrings utilise ces méthodes.

 
IDWriteLocalizedStrings ::FindLocaleName

Obtient l’index de base zéro de la paire nom/chaîne de paramètres régionaux avec le nom de paramètres régionaux spécifié.
IDWriteLocalizedStrings ::GetCount

Obtient le nombre de paires langue/chaîne.
IDWriteLocalizedStrings ::GetLocaleName

Copie le nom des paramètres régionaux avec l’index spécifié dans le tableau spécifié. (IDWriteLocalizedStrings.GetLocaleName)
IDWriteLocalizedStrings ::GetLocaleNameLength

Obtient la longueur en caractères (sans inclure la marque de fin Null) du nom des paramètres régionaux avec l’index spécifié. (IDWriteLocalizedStrings.GetLocaleNameLength)
IDWriteLocalizedStrings ::GetString

Copie la chaîne avec l’index spécifié dans le tableau spécifié. (IDWriteLocalizedStrings.GetString)
IDWriteLocalizedStrings ::GetStringLength

Obtient la longueur en caractères (sans inclure la marque de fin Null) de la chaîne avec l’index spécifié. (IDWriteLocalizedStrings.GetStringLength)

Remarques

L’ensemble de chaînes représentées par un IDWriteLocalizedStrings est indexé par un nombre UINT32 de base zéro mappé à un paramètre régional. L’index numérique d’un paramètre régional spécifique est récupéré à l’aide de la méthode FindLocaleName .

Une utilisation courante de l’interface IDWriteLocalizedStrings consiste à contenir une liste de noms de familles de polices localisés créés à l’aide de la méthode IDWriteFontFamily ::GetFamilyNames . L’exemple suivant montre comment obtenir le nom de famille pour les paramètres régionaux « en-us ».

IDWriteLocalizedStrings* pFamilyNames = NULL;

// Get a list of localized strings for the family name.
if (SUCCEEDED(hr))
{
    hr = pFontFamily->GetFamilyNames(&pFamilyNames);
}

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;

UINT32 length = 0;

// Get the string length.
if (SUCCEEDED(hr))
{
    hr = pFamilyNames->GetStringLength(index, &length);
}

// Allocate a string big enough to hold the name.
wchar_t* name = new (std::nothrow) wchar_t[length+1];
if (name == NULL)
{
    hr = E_OUTOFMEMORY;
}

// Get the family name.
if (SUCCEEDED(hr))
{
    hr = pFamilyNames->GetString(index, name, length+1);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête dwrite.h