IDWriteFactory::CreateFontFace Method
Creates an object that represents a font face.
Syntax
virtual HRESULT CreateFontFace(
DWRITE_FONT_FACE_TYPE fontFaceType,
UINT32 numberOfFiles,
[in] const IDWriteFontFile * fontFiles,
UINT32 faceIndex,
DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
[out] IDWriteFontFace ** fontFace
) = 0;
Parameter
fontFaceType
A value that indicates the type of file format of the font face.numberOfFiles
The number of font files, in element count, required to represent the font face.fontFiles [in]
A font file object representing the font face. Because IDWriteFontFace maintains its own references to the input font file objects, you may release them after this call.faceIndex
The zero-based index of a font face, in cases when the font files contain a collection of font faces. If the font files contain a single face, this value should be zero.fontFaceSimulationFlags
A value that indicates which, if any, font face simulation flags for algorithmic means of making text bold or italic are applied to the current font face.fontFace [out]
When this method returns, contains an address of a pointer to the newly created font face object, or NULL in case of failure.
Rückgabewert
Ist Methode erfolgreich, wird "S_OK" zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.
Beispiele
The following code example demonstrates creating a font face from a font file's file name.
HRESULT CreateFontFaceFromFontFile(wchar_t* filename, IDWriteFontFace **ppFontFace)
{
HRESULT hr = S_OK;
IDWriteFactory* pDWriteFactory = NULL;
IDWriteFontFace* pFontFace = NULL;
IDWriteFontFile* pFontFiles = NULL;
// Create the DirectWrite factory.
hr = DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(IDWriteFactory),
reinterpret_cast<IUnknown**>(&pDWriteFactory)
);
//Gets a filename from a application directory
WCHAR fontFolderPath[MAX_PATH];
UINT curDirLength = GetCurrentDirectory(
sizeof(fontFolderPath),
fontFolderPath
);
if (curDirLength == 0)
{
return E_UNEXPECTED;
}
if (SUCCEEDED(hr))
{
hr = StringCchCatW(
fontFolderPath,
sizeof(fontFolderPath),
L"\\"
);
}
if (SUCCEEDED(hr))
{
hr = StringCchCatW(
fontFolderPath,
sizeof(fontFolderPath),
(STRSAFE_LPCWSTR)filename
);
}
if (SUCCEEDED(hr))
{
hr = pDWriteFactory->CreateFontFileReference(
fontFolderPath,
NULL,
&pFontFiles);
}
IDWriteFontFile* fontFileArray[] = {pFontFiles};
if (SUCCEEDED(hr))
{
hr = pDWriteFactory->CreateFontFace(
DWRITE_FONT_FACE_TYPE_TRUETYPE,
1, // file count
fontFileArray,
0,
DWRITE_FONT_SIMULATIONS_NONE,
&pFontFace
);
}
//Return the pointer to the caller
*ppFontFace = pFontFace;
SafeRelease(&pDWriteFactory);
SafeRelease(&pFontFiles);
return hr;
}
Anforderungen
Mindestens unterstützter Client |
Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista |
Mindestens unterstützter Server |
Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 |
Header |
Dwrite.h |
Bibliothek |
Dwrite.lib |
DLL |
Dwrite.dll |