Compartir a través de


Método IDWriteFontFace5::GetFontAxisValues (dwrite_3.h)

Recupera la lista de valores de eje utilizados por la fuente.

Sintaxis

HRESULT GetFontAxisValues(
  [out] DWRITE_FONT_AXIS_VALUE *fontAxisValues,
        UINT32                 fontAxisValueCount
);

Parámetros

[out] fontAxisValues

Tipo: DWRITE_FONT_AXIS_VALUE*

Puntero a una matriz de estructuras de DWRITE_FONT_AXIS_VALUE en las que GetFontAxisValues escribe la lista de valores del eje de fuentes. Es responsable de administrar el tamaño y la duración de esta matriz. Llame a GetFontAxisValueCount para determinar el tamaño de la matriz que se va a asignar.

fontAxisValueCount

Tipo: UINT32

Número máximo de valores de eje de fuentes a escribir en el bloque de memoria al que apunta fontAxisValues.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT.

Valor devuelto Descripción
E_INVALIDARG fontAxisValueCount no coincide con el valor devuelto por GetFontAxisValueCount.

Observaciones

Los valores se devuelven en el orden canónico definido por la fuente, abrazado al intervalo real admitido. No es necesariamente la misma matriz de valores de eje que pasó a CreateFontFace.

Ejemplos

// 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;
}

Requisitos

Requisito Valor
cliente mínimo admitido Compilación 16299 de Windows 10
servidor mínimo admitido Compilación 16299 de Windows 10
de la plataforma de destino de Windows
encabezado de dwrite_3.h
biblioteca de Dwrite.lib