Partager via


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