Freigeben über


IDWriteFontFace5::GetFontAxisValues-Methode (dwrite_3.h)

Ruft die Liste der Achsenwerte ab, die von der Schriftart verwendet werden.

Syntax

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

Parameter

[out] fontAxisValues

Typ: DWRITE_FONT_AXIS_VALUE*

Ein Zeiger auf ein Array von DWRITE_FONT_AXIS_VALUE Strukturen, in das GetFontAxisValues die Liste der Schriftachsenwerte schreibt. Sie sind für die Verwaltung der Größe und lebensdauer dieses Arrays verantwortlich. Rufen Sie GetFontAxisValueCount auf, um die Größe des zuzuordnenden Arrays zu bestimmen.

fontAxisValueCount

Typ: UINT32

Die maximale Anzahl von Schriftachsenwerten, auf die in den Speicherblock geschrieben werden soll, auf den von verwiesen wird fontAxisValues.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Rückgabewert Beschreibung
E_INVALIDARG fontAxisValueCount entspricht nicht dem von GetFontAxisValueCount zurückgegebenen Wert.

Hinweise

Die Werte werden in der kanonischen Reihenfolge zurückgegeben, die durch die Schriftart definiert ist und an den tatsächlich unterstützten Bereich gebunden ist. Es ist nicht unbedingt dasselbe Achsenwertarray, das Sie an CreateFontFace übergeben haben.

Beispiele

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Zielplattform Windows
Kopfzeile dwrite_3.h
Bibliothek Dwrite.lib