IDWriteFontFace5 ::GetFontAxisValues, méthode (dwrite_3.h)
Récupère la liste des valeurs d’axe utilisées par la police.
Syntaxe
HRESULT GetFontAxisValues(
[out] DWRITE_FONT_AXIS_VALUE *fontAxisValues,
UINT32 fontAxisValueCount
);
Paramètres
[out] fontAxisValues
Type : DWRITE_FONT_AXIS_VALUE*
Pointeur vers un tableau de structures DWRITE_FONT_AXIS_VALUE dans lesquelles GetFontAxisValues écrit la liste des valeurs d’axe de police. Vous êtes responsable de la gestion de la taille et de la durée de vie de ce tableau. Appelez GetFontAxisValueCount pour déterminer la taille du tableau à allouer.
fontAxisValueCount
Type : UINT32
Nombre maximal de valeurs d’axe de police à écrire dans le bloc de mémoire pointé par fontAxisValues
.
Valeur de retour
Type : HRESULT
Si la fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Valeur de retour | Description |
---|---|
E_INVALIDARG |
fontAxisValueCount ne correspond pas à la valeur retournée par GetFontAxisValueCount. |
Remarques
Les valeurs sont retournées dans l’ordre canonique défini par la police, limitées à la plage réelle prise en charge. Ce n’est pas nécessairement le même tableau de valeurs d’axe que celui que vous avez passé à CreateFontFace.
Exemples
// main.cpp
#include <unknwn.h>
#include <winrt/base.h>
#include <dwrite_3.h>
int main()
{
winrt::init_apartment();
winrt::com_ptr<IDWriteFactory> factory;
winrt::check_hresult(::DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(factory),
reinterpret_cast<IUnknown**>(factory.put())));
std::wstring filePath{ L"C:\\WINDOWS\\FONTS\\AGENCYB.TTF" };
winrt::com_ptr<IDWriteFontFile> fontFile;
factory->CreateFontFileReference(
filePath.c_str(),
nullptr,
fontFile.put());
std::array<IDWriteFontFile*, 1> fontFiles{ fontFile.get() };
winrt::com_ptr<IDWriteFontFace> fontFace;
winrt::check_hresult(factory->CreateFontFace(
DWRITE_FONT_FACE_TYPE_TRUETYPE,
1,
fontFiles.data(),
0,
DWRITE_FONT_SIMULATIONS_NONE,
fontFace.put()
));
winrt::com_ptr<IDWriteFontFace5> fontFace5{ fontFace.as<IDWriteFontFace5>() };
UINT32 axisValueCount{ fontFace5->GetFontAxisValueCount() };
DWRITE_FONT_AXIS_VALUE* axisValues{ new DWRITE_FONT_AXIS_VALUE[axisValueCount] };
winrt::check_hresult(
fontFace5->GetFontAxisValues(axisValues, axisValueCount));
DWRITE_FONT_AXIS_VALUE* eachAxisValue{ axisValues };
for (int ix = 0; ix < axisValueCount; ++ix, ++eachAxisValue)
{
printf("%zu,%f\n\r", eachAxisValue->axisTag, eachAxisValue->value);
}
delete[] axisValues;
}
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10 Build 16299 |
serveur minimum pris en charge | Windows 10 Build 16299 |
plateforme cible | Windows |
d’en-tête | dwrite_3.h |
bibliothèque | Dwrite.lib |