IDWriteLocalizedStrings-Schnittstelle (dwrite.h)
Stellt eine Auflistung von Zeichenfolgen dar, die nach Gebietsschemanamen indiziert sind.
Vererbung
Die IDWriteLocalizedStrings-Schnittstelle erbt von der IUnknown-Schnittstelle . IDWriteLocalizedStrings verfügt auch über folgende Membertypen:
Methoden
Die IDWriteLocalizedStrings-Schnittstelle verfügt über diese Methoden.
IDWriteLocalizedStrings::FindLocaleName Ruft den nullbasierten Index des Gebietsschemanamens-Zeichenfolgenpaars mit dem angegebenen Gebietsschemanamen ab. |
IDWriteLocalizedStrings::GetCount Ruft die Anzahl der Sprach-Zeichenfolgenpaare ab. |
IDWriteLocalizedStrings::GetLocaleName Kopiert den Gebietsschemanamen mit dem angegebenen Index in das angegebene Array. (IDWriteLocalizedStrings.GetLocaleName) |
IDWriteLocalizedStrings::GetLocaleNameLength Ruft die Länge des Gebietsschemanamens mit dem angegebenen Index in Zeichen (ohne null-Abschlussator) ab. (IDWriteLocalizedStrings.GetLocaleNameLength) |
IDWriteLocalizedStrings::GetString Kopiert die Zeichenfolge mit dem angegebenen Index in das angegebene Array. (IDWriteLocalizedStrings.GetString) |
IDWriteLocalizedStrings::GetStringLength Ruft die Länge der Zeichenfolge mit dem angegebenen Index in Zeichen (ohne null-Abschlussator) ab. (IDWriteLocalizedStrings.GetStringLength) |
Hinweise
Der Satz von Zeichenfolgen, die durch eine IDWriteLocalizedStrings dargestellt werden, werden durch eine nullbasierte UINT32-Zahl indiziert, die einem Gebietsschema zugeordnet ist. Der numerische Index für ein bestimmtes Gebietsschema wird mithilfe der FindLocaleName-Methode erneut überprüft.
Eine häufige Verwendung für die IDWriteLocalizedStrings-Schnittstelle besteht darin, eine Liste lokalisierter Schriftartfamiliennamen zu enthalten, die mithilfe der IDWriteFontFamily::GetFamilyNames-Methode erstellt wurden. Das folgende Beispiel zeigt, wie Sie den Familiennamen für das Gebietsschema "en-us" abrufen.
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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | dwrite.h |