Compartir a través de


Interfaz IDWriteLocalizedStrings (dwrite.h)

Representa una colección de cadenas indizada por nombre de configuración regional.

Herencia

La interfaz IDWriteLocalizedStrings hereda de la interfaz IUnknown . IDWriteLocalizedStrings también tiene estos tipos de miembros:

Métodos

La interfaz IDWriteLocalizedStrings tiene estos métodos.

 
IDWriteLocalizedStrings::FindLocaleName

Obtiene el índice de base cero del par nombre/cadena de configuración regional con el nombre de configuración regional especificado.
IDWriteLocalizedStrings::GetCount

Obtiene el número de pares de idioma y cadena.
IDWriteLocalizedStrings::GetLocaleName

Copia el nombre de la configuración regional con el índice especificado en la matriz especificada. (IDWriteLocalizedStrings.GetLocaleName)
IDWriteLocalizedStrings::GetLocaleNameLength

Obtiene la longitud en caracteres (sin incluir el terminador NULL) del nombre de configuración regional con el índice especificado. (IDWriteLocalizedStrings.GetLocaleNameLength)
IDWriteLocalizedStrings::GetString

Copia la cadena con el índice especificado en la matriz especificada. (IDWriteLocalizedStrings.GetString)
IDWriteLocalizedStrings::GetStringLength

Obtiene la longitud en caracteres (sin incluir el terminador NULL) de la cadena con el índice especificado. (IDWriteLocalizedStrings.GetStringLength)

Comentarios

El conjunto de cadenas representadas por un IDWriteLocalizedStrings se indexa mediante un número UINT32 basado en cero que se asigna a una configuración regional. El índice numérico de una configuración regional específica se retreive mediante el método FindLocaleName .

Un uso común de la interfaz IDWriteLocalizedStrings es contener una lista de nombres de familia de fuentes localizados creados mediante el método IDWriteFontFamily::GetFamilyNames . En el ejemplo siguiente se muestra cómo obtener el nombre de familia de la configuración regional "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);
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado dwrite.h