#ifndef DWRITE_H_INCLUDED
#define DWRITE_H_INCLUDED
#pragma once
#ifndef DWRITE_NO_WINDOWS_H
#include <specstrings.h>
#include <unknwn.h>
#endif // DWRITE_NO_WINDOWS_H
#include <dcommon.h>
#ifndef DWRITE_DECLARE_INTERFACE
#define DWRITE_DECLARE_INTERFACE(iid) DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE
#endif
#ifndef DWRITE_EXPORT
#define DWRITE_EXPORT __declspec(dllimport) WINAPI
#endif
enum
{
DWRITE_FONT_FILE_TYPE_UNKNOWN
,
DWRITE_FONT_FILE_TYPE_CFF
,
DWRITE_FONT_FILE_TYPE_TRUETYPE
,
DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION
,
DWRITE_FONT_FILE_TYPE_TYPE1_PFM
,
DWRITE_FONT_FILE_TYPE_TYPE1_PFB
,
DWRITE_FONT_FILE_TYPE_VECTOR
,
DWRITE_FONT_FILE_TYPE_BITMAP
,
DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION
=
DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION
,
};
enum
{
DWRITE_FONT_FACE_TYPE_CFF
,
DWRITE_FONT_FACE_TYPE_TRUETYPE
,
DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION
,
DWRITE_FONT_FACE_TYPE_TYPE1
,
DWRITE_FONT_FACE_TYPE_VECTOR
,
DWRITE_FONT_FACE_TYPE_BITMAP
,
DWRITE_FONT_FACE_TYPE_UNKNOWN
,
DWRITE_FONT_FACE_TYPE_RAW_CFF
,
DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION
=
DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION
,
};
enum
{
DWRITE_FONT_SIMULATIONS_NONE
=
0x0000
,
DWRITE_FONT_SIMULATIONS_BOLD
=
0x0001
,
DWRITE_FONT_SIMULATIONS_OBLIQUE
=
0x0002
};
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS);
#endif
extern
"C++"
{
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) | ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) |= ((
<
>::
)
)); }
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) & ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) &= ((
<
>::
)
)); }
inline
constexpr
(
)
throw
() {
return
(~((
<
>::
)
)); }
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) ^ ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) ^= ((
<
>::
)
)); } };
enum
{
=
100
,
=
200
,
DWRITE_FONT_WEIGHT_ULTRA_LIGHT
=
200
,
=
300
,
DWRITE_FONT_WEIGHT_SEMI_LIGHT
=
350
,
DWRITE_FONT_WEIGHT_NORMAL
=
400
,
DWRITE_FONT_WEIGHT_REGULAR
=
400
,
DWRITE_FONT_WEIGHT_MEDIUM
=
500
,
DWRITE_FONT_WEIGHT_DEMI_BOLD
=
600
,
DWRITE_FONT_WEIGHT_SEMI_BOLD
=
600
,
=
700
,
=
800
,
DWRITE_FONT_WEIGHT_ULTRA_BOLD
=
800
,
=
900
,
=
900
,
=
950
,
DWRITE_FONT_WEIGHT_ULTRA_BLACK
=
950
};
enum
{
DWRITE_FONT_STRETCH_UNDEFINED
=
0
,
DWRITE_FONT_STRETCH_ULTRA_CONDENSED
=
1
,
=
2
,
DWRITE_FONT_STRETCH_CONDENSED
=
3
,
DWRITE_FONT_STRETCH_SEMI_CONDENSED
=
4
,
DWRITE_FONT_STRETCH_NORMAL
=
5
,
DWRITE_FONT_STRETCH_MEDIUM
=
5
,
DWRITE_FONT_STRETCH_SEMI_EXPANDED
=
6
,
DWRITE_FONT_STRETCH_EXPANDED
=
7
,
DWRITE_FONT_STRETCH_EXTRA_EXPANDED
=
8
,
DWRITE_FONT_STRETCH_ULTRA_EXPANDED
=
9
};
enum
{
,
DWRITE_FONT_STYLE_OBLIQUE
,
};
enum
{
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT
,
,
DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME
,
DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME
,
,
,
,
=
DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES
,
=
DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES
,
=
DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME
,
};
struct
{
;
;
;
;
;
;
;
;
;
;
};
struct
{
;
;
;
;
;
;
;
};
struct
{
;
;
};
enum
{
DWRITE_FACTORY_TYPE_SHARED
,
DWRITE_FACTORY_TYPE_ISOLATED
};
#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \
(static_cast<UINT32>(static_cast<UINT8>(d)) << 24) | \
(static_cast<UINT32>(static_cast<UINT8>(c)) << 16) | \
(static_cast<UINT32>(static_cast<UINT8>(b)) << 8) | \
static_cast<UINT32>(static_cast<UINT8>(a)))
#define DWRITE_MAKE_FONT_FEATURE_TAG(a,b,c,d) (static_cast<DWRITE_FONT_FEATURE_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
interface IDWriteFontFileStream;
interface DWRITE_DECLARE_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") IDWriteFontFileLoader : public IUnknown
struct
__declspec
(uuid(
"727cad4e-d6af-4c9e-8a08-d695b11caa49"
))
__declspec
(novtable)
:
public
{
STDMETHOD(CreateStreamFromKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
,
_COM_Outptr_ IDWriteFontFileStream** fontFileStream
};
interface DWRITE_DECLARE_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") IDWriteLocalFontFileLoader : public IDWriteFontFileLoader
struct
__declspec
(uuid(
"b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2"
))
__declspec
(novtable)
IDWriteLocalFontFileLoader
:
public
{
STDMETHOD(GetFilePathLengthFromKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
,
_Out_ UINT32* filePathLength
STDMETHOD(GetFilePathFromKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
,
_Out_writes_z_(filePathSize) WCHAR* filePath,
STDMETHOD(GetLastWriteTimeFromKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
,
_Out_ FILETIME* lastWriteTime
};
interface DWRITE_DECLARE_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") IDWriteFontFileStream : public IUnknown
struct
__declspec
(uuid(
"6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0"
))
__declspec
(novtable)
:
public
{
STDMETHOD(ReadFileFragment)(
virtual
__declspec
(nothrow)
__stdcall
(
_Outptr_result_bytebuffer_(fragmentSize) void const** fragmentStart,
,
,
_Out_ void** fragmentContext
STDMETHOD_(void, ReleaseFileFragment)(
virtual
__declspec
(nothrow)
void
__stdcall
(
void
*
STDMETHOD(GetFileSize)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(GetLastWriteTime)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ UINT64* lastWriteTime
};
interface DWRITE_DECLARE_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") IDWriteFontFile : public IUnknown
struct
__declspec
(uuid(
"739d886a-cef5-47dc-8769-1a8b41bebbb0"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetReferenceKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_Outptr_result_bytebuffer_(*fontFileReferenceKeySize) void const** fontFileReferenceKey,
_Out_ UINT32* fontFileReferenceKeySize
STDMETHOD(GetLoader)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontFileLoader** fontFileLoader
STDMETHOD(Analyze)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ BOOL* isSupportedFontType,
_Out_ DWRITE_FONT_FILE_TYPE* fontFileType,
_Out_opt_ DWRITE_FONT_FACE_TYPE* fontFaceType,
_Out_ UINT32* numberOfFaces
};
#ifndef DWRITE_PIXEL_GEOMETRY_DEFINED
enum
{
DWRITE_PIXEL_GEOMETRY_FLAT
,
DWRITE_PIXEL_GEOMETRY_RGB
,
DWRITE_PIXEL_GEOMETRY_BGR
};
#define DWRITE_PIXEL_GEOMETRY_DEFINED
#endif
enum
{
DWRITE_RENDERING_MODE_DEFAULT
,
DWRITE_RENDERING_MODE_ALIASED
,
DWRITE_RENDERING_MODE_GDI_CLASSIC
,
DWRITE_RENDERING_MODE_GDI_NATURAL
,
DWRITE_RENDERING_MODE_NATURAL
,
DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
,
DWRITE_RENDERING_MODE_OUTLINE
,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
=
DWRITE_RENDERING_MODE_GDI_CLASSIC
,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL
=
DWRITE_RENDERING_MODE_GDI_NATURAL
,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL
=
DWRITE_RENDERING_MODE_NATURAL
,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC
=
DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
};
struct
{
;
;
;
;
;
;
};
interface DWRITE_DECLARE_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") IDWriteRenderingParams : public IUnknown
struct
__declspec
(uuid(
"2f0da53a-2add-47cd-82ee-d9ec34688e75"
))
__declspec
(novtable)
:
public
{
STDMETHOD_(FLOAT, GetGamma)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetEnhancedContrast)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetClearTypeLevel)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
};
interface ID2D1SimplifiedGeometrySink;
struct
ID2D1SimplifiedGeometrySink
;
typedef
ID2D1SimplifiedGeometrySink
;
interface DWRITE_DECLARE_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") IDWriteFontFace : public IUnknown
struct
__declspec
(uuid(
"5f49804d-7024-4d43-bfa9-d25984f53849"
))
__declspec
(novtable)
:
public
{
STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFiles)(
virtual
__declspec
(nothrow)
__stdcall
(
_Inout_ UINT32* numberOfFiles,
_Out_writes_opt_(*numberOfFiles) IDWriteFontFile** fontFiles
STDMETHOD_(UINT32, GetIndex)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(BOOL, IsSymbolFont)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(void, GetMetrics)(
virtual
__declspec
(nothrow)
void
__stdcall
(
_Out_ DWRITE_FONT_METRICS* fontFaceMetrics
STDMETHOD_(UINT16, GetGlyphCount)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetDesignGlyphMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_(glyphCount) UINT16 const* glyphIndices,
,
_Out_writes_(glyphCount) DWRITE_GLYPH_METRICS* glyphMetrics,
STDMETHOD(GetGlyphIndices)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_(codePointCount) UINT32 const* codePoints,
,
_Out_writes_(codePointCount) UINT16* glyphIndices
STDMETHOD(TryGetFontTable)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ UINT32 openTypeTableTag,
_Outptr_result_bytebuffer_(*tableSize) const void** tableData,
_Out_ void** tableContext,
STDMETHOD_(void, ReleaseFontTable)(
virtual
__declspec
(nothrow)
void
__stdcall
(
STDMETHOD(GetGlyphRunOutline)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_In_reads_(glyphCount) UINT16 const* glyphIndices,
_In_reads_opt_(glyphCount) FLOAT const* glyphAdvances,
_In_reads_opt_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets,
,
,
,
_In_ IDWriteGeometrySink* geometrySink
STDMETHOD(GetRecommendedRenderingMode)(
virtual
__declspec
(nothrow)
__stdcall
GetRecommendedRenderingMode
(
,
,
,
*
,
_Out_ DWRITE_RENDERING_MODE* renderingMode
STDMETHOD(GetGdiCompatibleMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_In_opt_ DWRITE_MATRIX const* transform,
_Out_ DWRITE_FONT_METRICS* fontFaceMetrics
STDMETHOD(GetGdiCompatibleGlyphMetrics)(
virtual
__declspec
(nothrow)
__stdcall
GetGdiCompatibleGlyphMetrics
(
,
,
_In_opt_ DWRITE_MATRIX const* transform,
,
_In_reads_(glyphCount) UINT16 const* glyphIndices,
,
_Out_writes_(glyphCount) DWRITE_GLYPH_METRICS* glyphMetrics,
};
interface IDWriteFactory;
interface IDWriteFontFileEnumerator;
struct
IDWriteFontFileEnumerator
;
interface DWRITE_DECLARE_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") IDWriteFontCollectionLoader : public IUnknown
struct
__declspec
(uuid(
"cca920e4-52f0-492b-bfa8-29c72ee0a468"
))
__declspec
(novtable)
IDWriteFontCollectionLoader
:
public
{
STDMETHOD(CreateEnumeratorFromKey)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFactory* factory,
_In_reads_bytes_(collectionKeySize) void const* collectionKey,
,
_COM_Outptr_ IDWriteFontFileEnumerator** fontFileEnumerator
IDWriteFontFileEnumerator
**
};
interface DWRITE_DECLARE_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") IDWriteFontFileEnumerator : public IUnknown
struct
__declspec
(uuid(
"72755049-5ff7-435d-8348-4be97cfa6c7c"
))
__declspec
(novtable)
IDWriteFontFileEnumerator
:
public
{
STDMETHOD(MoveNext)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ BOOL* hasCurrentFile
STDMETHOD(GetCurrentFontFile)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontFile** fontFile
};
interface DWRITE_DECLARE_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") IDWriteLocalizedStrings : public IUnknown
struct
__declspec
(uuid(
"08256209-099a-4b34-b86d-c22b110e7771"
))
__declspec
(novtable)
:
public
{
STDMETHOD_(UINT32, GetCount)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(FindLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* localeName,
STDMETHOD(GetLocaleNameLength)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(GetLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_writes_z_(size) WCHAR* localeName,
STDMETHOD(GetStringLength)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(GetString)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_writes_z_(size) WCHAR* stringBuffer,
};
interface IDWriteFontFamily;
interface DWRITE_DECLARE_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") IDWriteFontCollection : public IUnknown
struct
__declspec
(uuid(
"a84cee02-3eea-4eee-a827-87c1a02a0fcc"
))
__declspec
(novtable)
:
public
{
STDMETHOD_(UINT32, GetFontFamilyCount)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFontFamily)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteFontFamily** fontFamily
STDMETHOD(FindFamilyName)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* familyName,
STDMETHOD(GetFontFromFontFace)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFontFace* fontFace,
_COM_Outptr_ IDWriteFont** font
};
interface DWRITE_DECLARE_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") IDWriteFontList : public IUnknown
struct
__declspec
(uuid(
"1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontCollection** fontCollection
STDMETHOD_(UINT32, GetFontCount)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFont)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteFont** font
};
interface DWRITE_DECLARE_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") IDWriteFontFamily : public IDWriteFontList
struct
__declspec
(uuid(
"da20d8ef-812a-4c43-9802-62ec4abd7add"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetFamilyNames)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteLocalizedStrings** names
STDMETHOD(GetFirstMatchingFont)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
,
_COM_Outptr_ IDWriteFont** matchingFont
STDMETHOD(GetMatchingFonts)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
,
_COM_Outptr_ IDWriteFontList** matchingFonts
};
interface DWRITE_DECLARE_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") IDWriteFont : public IUnknown
struct
__declspec
(uuid(
"acd16696-8c14-4f5d-877e-fe3fc1d32737"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetFontFamily)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontFamily** fontFamily
STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(BOOL, IsSymbolFont)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFaceNames)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteLocalizedStrings** names
STDMETHOD(GetInformationalStrings)(
virtual
__declspec
(nothrow)
__stdcall
(
DWRITE_INFORMATIONAL_STRING_ID
,
_COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** informationalStrings,
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(void, GetMetrics)(
virtual
__declspec
(nothrow)
void
__stdcall
(
_Out_ DWRITE_FONT_METRICS* fontMetrics
STDMETHOD(HasCharacter)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(CreateFontFace)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontFace** fontFace
};
enum
{
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
=
0
,
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT
=
1
,
DWRITE_READING_DIRECTION_TOP_TO_BOTTOM
=
2
,
DWRITE_READING_DIRECTION_BOTTOM_TO_TOP
=
3
,
};
enum
{
DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM
=
0
,
DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP
=
1
,
DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT
=
2
,
DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT
=
3
,
};
enum
{
DWRITE_TEXT_ALIGNMENT_LEADING
,
DWRITE_TEXT_ALIGNMENT_TRAILING
,
DWRITE_TEXT_ALIGNMENT_CENTER
,
DWRITE_TEXT_ALIGNMENT_JUSTIFIED
};
enum
DWRITE_PARAGRAPH_ALIGNMENT
{
DWRITE_PARAGRAPH_ALIGNMENT_NEAR
,
DWRITE_PARAGRAPH_ALIGNMENT_FAR
,
DWRITE_PARAGRAPH_ALIGNMENT_CENTER
};
enum
{
DWRITE_WORD_WRAPPING_WRAP
=
0
,
DWRITE_WORD_WRAPPING_NO_WRAP
=
1
,
DWRITE_WORD_WRAPPING_EMERGENCY_BREAK
=
2
,
DWRITE_WORD_WRAPPING_WHOLE_WORD
=
3
,
DWRITE_WORD_WRAPPING_CHARACTER
=
4
,
};
enum
DWRITE_LINE_SPACING_METHOD
{
DWRITE_LINE_SPACING_METHOD_DEFAULT
,
,
DWRITE_LINE_SPACING_METHOD_PROPORTIONAL
};
enum
DWRITE_TRIMMING_GRANULARITY
{
DWRITE_TRIMMING_GRANULARITY_NONE
,
DWRITE_TRIMMING_GRANULARITY_CHARACTER
,
DWRITE_TRIMMING_GRANULARITY_WORD
};
enum
{
DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = DWRITE_MAKE_OPENTYPE_TAG('a','f','r','c'),
DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS
= ( (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'f'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'a'
))),
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('c','2','p','c'),
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS
= ( (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('c','2','s','c'),
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS
= ( (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('c','a','l','t'),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = DWRITE_MAKE_OPENTYPE_TAG('c','a','s','e'),
= ( (
static_cast
<
>(
static_cast
<
>(
'e'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = DWRITE_MAKE_OPENTYPE_TAG('c','c','m','p'),
DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION
= ( (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('c','l','i','g'),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES
= ( (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = DWRITE_MAKE_OPENTYPE_TAG('c','p','s','p'),
DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING
= ( (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = DWRITE_MAKE_OPENTYPE_TAG('c','s','w','h'),
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH
= ( (
static_cast
<
>(
static_cast
<
>(
'h'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('c','u','r','s'),
DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING
= ( (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'c'
))),
DWRITE_FONT_FEATURE_TAG_DEFAULT = DWRITE_MAKE_OPENTYPE_TAG('d','f','l','t'),
DWRITE_FONT_FEATURE_TAG_DEFAULT
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'f'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'd'
))),
DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('d','l','i','g'),
DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES
= ( (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'd'
))),
DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = DWRITE_MAKE_OPENTYPE_TAG('e','x','p','t'),
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'x'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'e'
))),
DWRITE_FONT_FEATURE_TAG_FRACTIONS = DWRITE_MAKE_OPENTYPE_TAG('f','r','a','c'),
DWRITE_FONT_FEATURE_TAG_FRACTIONS
= ( (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'f'
))),
DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('f','w','i','d'),
DWRITE_FONT_FEATURE_TAG_FULL_WIDTH
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'f'
))),
DWRITE_FONT_FEATURE_TAG_HALF_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','f'),
= ( (
static_cast
<
>(
static_cast
<
>(
'f'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','n'),
= ( (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','t'),
DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','i','s','t'),
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('h','k','n','a'),
DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES
= ( (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('h','l','i','g'),
DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES
= ( (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('h','w','i','d'),
DWRITE_FONT_FEATURE_TAG_HALF_WIDTH
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','o','j','o'),
= ( (
static_cast
<
>(
static_cast
<
>(
'o'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'j'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'o'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'h'
))),
DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','0','4'),
= ( (
static_cast
<
>(
static_cast
<
>(
'4'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'j'
))),
DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','7','8'),
= ( (
static_cast
<
>(
static_cast
<
>(
'8'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'7'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'j'
))),
DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','8','3'),
= ( (
static_cast
<
>(
static_cast
<
>(
'3'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'8'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'j'
))),
DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','9','0'),
= ( (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'9'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'j'
))),
DWRITE_FONT_FEATURE_TAG_KERNING = DWRITE_MAKE_OPENTYPE_TAG('k','e','r','n'),
DWRITE_FONT_FEATURE_TAG_KERNING
= ( (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'e'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'k'
))),
DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('l','i','g','a'),
DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES
= ( (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'l'
))),
DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('l','n','u','m'),
= ( (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'l'
))),
DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = DWRITE_MAKE_OPENTYPE_TAG('l','o','c','l'),
= ( (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'o'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'l'
))),
DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('m','a','r','k'),
DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING
= ( (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'm'
))),
DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = DWRITE_MAKE_OPENTYPE_TAG('m','g','r','k'),
DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK
= ( (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'm'
))),
DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('m','k','m','k'),
DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING
= ( (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'm'
))),
DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = DWRITE_MAKE_OPENTYPE_TAG('n','a','l','t'),
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'n'
))),
DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = DWRITE_MAKE_OPENTYPE_TAG('n','l','c','k'),
= ( (
static_cast
<
>(
static_cast
<
>(
'k'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'n'
))),
DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('o','n','u','m'),
= ( (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'o'
))),
DWRITE_FONT_FEATURE_TAG_ORDINALS = DWRITE_MAKE_OPENTYPE_TAG('o','r','d','n'),
DWRITE_FONT_FEATURE_TAG_ORDINALS
= ( (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'o'
))),
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('p','a','l','t'),
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'p'
))),
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('p','c','a','p'),
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS
= ( (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'p'
))),
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('p','n','u','m'),
= ( (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'p'
))),
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('p','w','i','d'),
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'p'
))),
DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('q','w','i','d'),
DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'q'
))),
DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('r','l','i','g'),
DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES
= ( (
static_cast
<
>(
static_cast
<
>(
'g'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'r'
))),
DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = DWRITE_MAKE_OPENTYPE_TAG('r','u','b','y'),
= ( (
static_cast
<
>(
static_cast
<
>(
'y'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'b'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'r'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('s','a','l','t'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = DWRITE_MAKE_OPENTYPE_TAG('s','i','n','f'),
DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS
= ( (
static_cast
<
>(
static_cast
<
>(
'f'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('s','m','c','p'),
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS
= ( (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = DWRITE_MAKE_OPENTYPE_TAG('s','m','p','l'),
= ( (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','1'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1
= ( (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','2'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2
= ( (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','3'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3
= ( (
static_cast
<
>(
static_cast
<
>(
'3'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','4'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4
= ( (
static_cast
<
>(
static_cast
<
>(
'4'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','5'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5
= ( (
static_cast
<
>(
static_cast
<
>(
'5'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','6'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6
= ( (
static_cast
<
>(
static_cast
<
>(
'6'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','7'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7
= ( (
static_cast
<
>(
static_cast
<
>(
'7'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','8'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8
= ( (
static_cast
<
>(
static_cast
<
>(
'8'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','9'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9
= ( (
static_cast
<
>(
static_cast
<
>(
'9'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','0'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10
= ( (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','1'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11
= ( (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','2'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12
= ( (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','3'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13
= ( (
static_cast
<
>(
static_cast
<
>(
'3'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','4'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14
= ( (
static_cast
<
>(
static_cast
<
>(
'4'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','5'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15
= ( (
static_cast
<
>(
static_cast
<
>(
'5'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','6'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16
= ( (
static_cast
<
>(
static_cast
<
>(
'6'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','7'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17
= ( (
static_cast
<
>(
static_cast
<
>(
'7'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','8'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18
= ( (
static_cast
<
>(
static_cast
<
>(
'8'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','9'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19
= ( (
static_cast
<
>(
static_cast
<
>(
'9'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'1'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = DWRITE_MAKE_OPENTYPE_TAG('s','s','2','0'),
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20
= ( (
static_cast
<
>(
static_cast
<
>(
'0'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = DWRITE_MAKE_OPENTYPE_TAG('s','u','b','s'),
DWRITE_FONT_FEATURE_TAG_SUBSCRIPT
= ( (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'b'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = DWRITE_MAKE_OPENTYPE_TAG('s','u','p','s'),
DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT
= ( (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'p'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_SWASH = DWRITE_MAKE_OPENTYPE_TAG('s','w','s','h'),
DWRITE_FONT_FEATURE_TAG_SWASH
= ( (
static_cast
<
>(
static_cast
<
>(
'h'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
's'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
's'
))),
DWRITE_FONT_FEATURE_TAG_TITLING = DWRITE_MAKE_OPENTYPE_TAG('t','i','t','l'),
DWRITE_FONT_FEATURE_TAG_TITLING
= ( (
static_cast
<
>(
static_cast
<
>(
'l'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
't'
))),
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = DWRITE_MAKE_OPENTYPE_TAG('t','n','a','m'),
= ( (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
't'
))),
DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('t','n','u','m'),
= ( (
static_cast
<
>(
static_cast
<
>(
'm'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'u'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
't'
))),
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = DWRITE_MAKE_OPENTYPE_TAG('t','r','a','d'),
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'a'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
't'
))),
DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('t','w','i','d'),
DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS
= ( (
static_cast
<
>(
static_cast
<
>(
'd'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'w'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
't'
))),
DWRITE_FONT_FEATURE_TAG_UNICASE = DWRITE_MAKE_OPENTYPE_TAG('u','n','i','c'),
DWRITE_FONT_FEATURE_TAG_UNICASE
= ( (
static_cast
<
>(
static_cast
<
>(
'c'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'i'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'n'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'u'
))),
DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = DWRITE_MAKE_OPENTYPE_TAG('v','e','r','t'),
DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING
= ( (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'e'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'v'
))),
DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = DWRITE_MAKE_OPENTYPE_TAG('v','r','t','2'),
DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION
= ( (
static_cast
<
>(
static_cast
<
>(
'2'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
't'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'v'
))),
DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = DWRITE_MAKE_OPENTYPE_TAG('z','e','r','o'),
DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO
= ( (
static_cast
<
>(
static_cast
<
>(
'o'
)) <<
24
) | (
static_cast
<
>(
static_cast
<
>(
'r'
)) <<
16
) | (
static_cast
<
>(
static_cast
<
>(
'e'
)) <<
8
) |
static_cast
<
>(
static_cast
<
>(
'z'
))),
};
struct
{
;
;
};
struct
{
;
;
};
struct
DWRITE_TYPOGRAPHIC_FEATURES
{
_Field_size_(featureCount) DWRITE_FONT_FEATURE* features;
;
};
struct
{
DWRITE_TRIMMING_GRANULARITY
;
;
;
};
interface IDWriteTypography;
interface IDWriteInlineObject;
interface DWRITE_DECLARE_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") IDWriteTextFormat : public IUnknown
struct
__declspec
(uuid(
"9c906818-31d7-4fd3-a151-7c5e225db55a"
))
__declspec
(novtable)
:
public
{
STDMETHOD(SetTextAlignment)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetParagraphAlignment)(
virtual
__declspec
(nothrow)
__stdcall
(
DWRITE_PARAGRAPH_ALIGNMENT
STDMETHOD(SetWordWrapping)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetReadingDirection)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetFlowDirection)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetIncrementalTabStop)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetTrimming)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ DWRITE_TRIMMING const* trimmingOptions,
_In_opt_ IDWriteInlineObject* trimmingSign
STDMETHOD(SetLineSpacing)(
virtual
__declspec
(nothrow)
__stdcall
(
DWRITE_LINE_SPACING_METHOD
,
,
STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)() PURE;
virtual
__declspec
(nothrow)
DWRITE_PARAGRAPH_ALIGNMENT
__stdcall
() =
0
;
STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetIncrementalTabStop)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetTrimming)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_TRIMMING* trimmingOptions,
_COM_Outptr_ IDWriteInlineObject** trimmingSign
STDMETHOD(GetLineSpacing)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_LINE_SPACING_METHOD* lineSpacingMethod,
DWRITE_LINE_SPACING_METHOD
*
,
_Out_ FLOAT* lineSpacing,
STDMETHOD(GetFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontCollection** fontCollection
STDMETHOD_(UINT32, GetFontFamilyNameLength)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFontFamilyName)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_writes_z_(nameSize) WCHAR* fontFamilyName,
STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetFontSize)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(UINT32, GetLocaleNameLength)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_writes_z_(nameSize) WCHAR* localeName,
};
interface DWRITE_DECLARE_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") IDWriteTypography : public IUnknown
struct
__declspec
(uuid(
"55f1112b-1dc2-4b3c-9541-f46894ed85b6"
))
__declspec
(novtable)
:
public
{
STDMETHOD(AddFontFeature)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD_(UINT32, GetFontFeatureCount)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFontFeature)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ DWRITE_FONT_FEATURE* fontFeature
};
enum
{
DWRITE_SCRIPT_SHAPES_DEFAULT
=
0
,
DWRITE_SCRIPT_SHAPES_NO_VISUAL
=
1
};
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES);
#endif
extern
"C++"
{
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) | ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) |= ((
<
>::
)
)); }
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) & ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) &= ((
<
>::
)
)); }
inline
constexpr
(
)
throw
() {
return
(~((
<
>::
)
)); }
inline
constexpr
(
,
)
throw
() {
return
(((
<
>::
)
) ^ ((
<
>::
)
)); }
inline
&
(
&
,
)
throw
() {
return
(
&)(((
<
>::
&)
) ^= ((
<
>::
)
)); } };
struct
{
;
;
};
enum
{
DWRITE_BREAK_CONDITION_NEUTRAL
,
DWRITE_BREAK_CONDITION_CAN_BREAK
,
DWRITE_BREAK_CONDITION_MAY_NOT_BREAK
,
DWRITE_BREAK_CONDITION_MUST_BREAK
};
struct
{
:
2
;
:
2
;
:
1
;
:
1
;
:
2
;
};
enum
DWRITE_NUMBER_SUBSTITUTION_METHOD
{
DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE
,
DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL
,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE
,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL
,
DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL
};
interface DWRITE_DECLARE_INTERFACE("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D") IDWriteNumberSubstitution : public IUnknown
struct
__declspec
(uuid(
"14885CC9-BAB0-4f90-B6ED-5C366A2CD03D"
))
__declspec
(novtable)
IDWriteNumberSubstitution
:
public
{
};
struct
DWRITE_SHAPING_TEXT_PROPERTIES
{
:
1
;
:
1
;
:
1
;
:
13
;
};
struct
DWRITE_SHAPING_GLYPH_PROPERTIES
{
:
4
;
:
1
;
:
1
;
:
1
;
:
9
;
};
interface DWRITE_DECLARE_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") IDWriteTextAnalysisSource : public IUnknown
struct
__declspec
(uuid(
"688e1a58-5094-47c8-adc8-fbcea60ae92b"
))
__declspec
(novtable)
IDWriteTextAnalysisSource
:
public
{
STDMETHOD(GetTextAtPosition)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Outptr_result_buffer_(*textLength) WCHAR const** textString,
STDMETHOD(GetTextBeforePosition)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Outptr_result_buffer_(*textLength) WCHAR const** textString,
STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)() PURE;
virtual
__declspec
(nothrow)
__stdcall
GetParagraphReadingDirection
() =
0
;
STDMETHOD(GetLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ UINT32* textLength,
_Outptr_result_z_ WCHAR const** localeName
STDMETHOD(GetNumberSubstitution)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ UINT32* textLength,
_COM_Outptr_ IDWriteNumberSubstitution** numberSubstitution
IDWriteNumberSubstitution
**
};
interface DWRITE_DECLARE_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") IDWriteTextAnalysisSink : public IUnknown
struct
__declspec
(uuid(
"5810cd44-0ca0-4701-b3fa-bec5182ae4f6"
))
__declspec
(novtable)
:
public
{
STDMETHOD(SetScriptAnalysis)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis
STDMETHOD(SetLineBreakpoints)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_In_reads_(textLength) DWRITE_LINE_BREAKPOINT const* lineBreakpoints
STDMETHOD(SetBidiLevel)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
,
STDMETHOD(SetNumberSubstitution)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_In_ IDWriteNumberSubstitution* numberSubstitution
IDWriteNumberSubstitution
*
};
interface DWRITE_DECLARE_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") IDWriteTextAnalyzer : public IUnknown
struct
__declspec
(uuid(
"b7e6163e-7f46-43b4-84b3-e4e6249c365d"
))
__declspec
(novtable)
:
public
{
STDMETHOD(AnalyzeScript)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteTextAnalysisSource* analysisSource,
IDWriteTextAnalysisSource
*
,
,
,
_In_ IDWriteTextAnalysisSink* analysisSink
STDMETHOD(AnalyzeBidi)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteTextAnalysisSource* analysisSource,
IDWriteTextAnalysisSource
*
,
,
,
_In_ IDWriteTextAnalysisSink* analysisSink
STDMETHOD(AnalyzeNumberSubstitution)(
virtual
__declspec
(nothrow)
__stdcall
AnalyzeNumberSubstitution
(
_In_ IDWriteTextAnalysisSource* analysisSource,
IDWriteTextAnalysisSource
*
,
,
,
_In_ IDWriteTextAnalysisSink* analysisSink
STDMETHOD(AnalyzeLineBreakpoints)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteTextAnalysisSource* analysisSource,
IDWriteTextAnalysisSource
*
,
,
,
_In_ IDWriteTextAnalysisSink* analysisSink
STDMETHOD(GetGlyphs)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_(textLength) WCHAR const* textString,
,
_In_ IDWriteFontFace* fontFace,
,
,
_In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
_In_opt_z_ WCHAR const* localeName,
_In_opt_ IDWriteNumberSubstitution* numberSubstitution,
IDWriteNumberSubstitution
*
,
_In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features,
DWRITE_TYPOGRAPHIC_FEATURES
const
**
,
_In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths,
,
,
_Out_writes_(textLength) UINT16* clusterMap,
_Out_writes_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps,
DWRITE_SHAPING_TEXT_PROPERTIES
*
,
_Out_writes_(maxGlyphCount) UINT16* glyphIndices,
_Out_writes_(maxGlyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,
DWRITE_SHAPING_GLYPH_PROPERTIES
*
,
_Out_ UINT32* actualGlyphCount
STDMETHOD(GetGlyphPlacements)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_(textLength) WCHAR const* textString,
_In_reads_(textLength) UINT16 const* clusterMap,
_Inout_updates_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps,
DWRITE_SHAPING_TEXT_PROPERTIES
*
,
,
_In_reads_(glyphCount) UINT16 const* glyphIndices,
_In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps,
DWRITE_SHAPING_GLYPH_PROPERTIES
const
*
,
,
_In_ IDWriteFontFace* fontFace,
,
,
,
_In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
_In_opt_z_ WCHAR const* localeName,
_In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features,
DWRITE_TYPOGRAPHIC_FEATURES
const
**
,
_In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths,
,
_Out_writes_(glyphCount) FLOAT* glyphAdvances,
_Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* glyphOffsets
STDMETHOD(GetGdiCompatibleGlyphPlacements)(
virtual
__declspec
(nothrow)
__stdcall
GetGdiCompatibleGlyphPlacements
(
_In_reads_(textLength) WCHAR const* textString,
_In_reads_(textLength) UINT16 const* clusterMap,
_In_reads_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps,
DWRITE_SHAPING_TEXT_PROPERTIES
*
,
,
_In_reads_(glyphCount) UINT16 const* glyphIndices,
_In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps,
DWRITE_SHAPING_GLYPH_PROPERTIES
const
*
,
,
_In_ IDWriteFontFace * fontFace,
,
,
_In_opt_ DWRITE_MATRIX const* transform,
,
,
,
_In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
_In_opt_z_ WCHAR const* localeName,
_In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features,
DWRITE_TYPOGRAPHIC_FEATURES
const
**
,
_In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths,
,
_Out_writes_(glyphCount) FLOAT* glyphAdvances,
_Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* glyphOffsets
};
struct
{
_Notnull_ IDWriteFontFace* fontFace;
;
;
_Field_size_(glyphCount) UINT16 const* glyphIndices;
_Field_size_opt_(glyphCount) FLOAT const* glyphAdvances;
_Field_size_opt_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets;
;
;
};
struct
DWRITE_GLYPH_RUN_DESCRIPTION
{
_Field_z_ WCHAR const* localeName;
_Field_size_(stringLength) WCHAR const* string;
;
_Field_size_opt_(stringLength) UINT16 const* clusterMap;
;
};
struct
{
;
;
;
;
;
;
_Field_z_ WCHAR const* localeName;
;
};
struct
{
;
;
;
;
;
_Field_z_ WCHAR const* localeName;
;
};
struct
{
;
;
;
;
;
;
};
struct
{
;
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
11
;
};
struct
{
;
;
;
widthIncludingTrailingWhitespace
;
;
;
;
;
;
};
struct
DWRITE_INLINE_OBJECT_METRICS
{
;
;
;
;
};
struct
{
;
;
;
;
};
struct
{
;
;
;
;
;
;
;
;
;
};
interface IDWriteTextRenderer;
interface DWRITE_DECLARE_INTERFACE("8339FDE3-106F-47ab-8373-1C6295EB10B3") IDWriteInlineObject : public IUnknown
struct
__declspec
(uuid(
"8339FDE3-106F-47ab-8373-1C6295EB10B3"
))
__declspec
(novtable)
:
public
{
STDMETHOD(Draw)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
_In_ IDWriteTextRenderer* renderer,
,
,
,
,
_In_opt_ IUnknown* clientDrawingEffect
STDMETHOD(GetMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_INLINE_OBJECT_METRICS* metrics
DWRITE_INLINE_OBJECT_METRICS
*
STDMETHOD(GetOverhangMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_OVERHANG_METRICS* overhangs
STDMETHOD(GetBreakConditions)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_BREAK_CONDITION* breakConditionBefore,
_Out_ DWRITE_BREAK_CONDITION* breakConditionAfter
};
interface DWRITE_DECLARE_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") IDWritePixelSnapping : public IUnknown
struct
__declspec
(uuid(
"eaf3a2da-ecf4-4d24-b644-b34f6842024b"
))
__declspec
(novtable)
:
public
{
STDMETHOD(IsPixelSnappingDisabled)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
STDMETHOD(GetCurrentTransform)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
_Out_ DWRITE_MATRIX* transform
STDMETHOD(GetPixelsPerDip)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
_Out_ FLOAT* pixelsPerDip
};
interface DWRITE_DECLARE_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") IDWriteTextRenderer : public IDWritePixelSnapping
struct
__declspec
(uuid(
"ef8a8135-5cc6-45fe-8825-c5a0724eb819"
))
__declspec
(novtable)
:
public
{
STDMETHOD(DrawGlyphRun)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
,
,
,
_In_ DWRITE_GLYPH_RUN const* glyphRun,
_In_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
DWRITE_GLYPH_RUN_DESCRIPTION
const
*
,
_In_opt_ IUnknown* clientDrawingEffect
STDMETHOD(DrawUnderline)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
,
,
_In_ DWRITE_UNDERLINE const* underline,
_In_opt_ IUnknown* clientDrawingEffect
STDMETHOD(DrawStrikethrough)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
,
,
_In_ DWRITE_STRIKETHROUGH const* strikethrough,
_In_opt_ IUnknown* clientDrawingEffect
STDMETHOD(DrawInlineObject)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
,
,
_In_ IDWriteInlineObject* inlineObject,
,
,
_In_opt_ IUnknown* clientDrawingEffect
};
interface DWRITE_DECLARE_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") IDWriteTextLayout : public IDWriteTextFormat
struct
__declspec
(uuid(
"53737037-6d14-410b-9bfe-0b182bb70961"
))
__declspec
(novtable)
:
public
{
STDMETHOD(SetMaxWidth)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetMaxHeight)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(SetFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFontCollection* fontCollection,
STDMETHOD(SetFontFamilyName)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* fontFamilyName,
STDMETHOD(SetFontWeight)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetFontStyle)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetFontStretch)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetFontSize)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetUnderline)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetStrikethrough)(
virtual
__declspec
(nothrow)
__stdcall
(
,
STDMETHOD(SetDrawingEffect)(
virtual
__declspec
(nothrow)
__stdcall
(
*
,
STDMETHOD(SetInlineObject)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteInlineObject* inlineObject,
STDMETHOD(SetTypography)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteTypography* typography,
STDMETHOD(SetLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* localeName,
STDMETHOD_(FLOAT, GetMaxWidth)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetMaxHeight)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(GetFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteFontCollection** fontCollection,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontFamilyNameLength)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ UINT32* nameLength,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontFamilyName)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_writes_z_(nameSize) WCHAR* fontFamilyName,
,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontWeight)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ DWRITE_FONT_WEIGHT* fontWeight,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontStyle)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ DWRITE_FONT_STYLE* fontStyle,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontStretch)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ DWRITE_FONT_STRETCH* fontStretch,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetFontSize)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetUnderline)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ BOOL* hasUnderline,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetStrikethrough)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ BOOL* hasStrikethrough,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetDrawingEffect)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IUnknown** drawingEffect,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetInlineObject)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteInlineObject** inlineObject,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetTypography)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteTypography** typography,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetLocaleNameLength)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ UINT32* nameLength,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(GetLocaleName)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_writes_z_(nameSize) WCHAR* localeName,
,
_Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
STDMETHOD(Draw)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ void* clientDrawingContext,
_In_ IDWriteTextRenderer* renderer,
,
STDMETHOD(GetLineMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_writes_opt_(maxLineCount) DWRITE_LINE_METRICS* lineMetrics,
,
_Out_ UINT32* actualLineCount
STDMETHOD(GetMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_TEXT_METRICS* textMetrics
STDMETHOD(GetOverhangMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_OVERHANG_METRICS* overhangs
STDMETHOD(GetClusterMetrics)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_writes_opt_(maxClusterCount) DWRITE_CLUSTER_METRICS* clusterMetrics,
,
_Out_ UINT32* actualClusterCount
STDMETHOD(DetermineMinWidth)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(HitTestPoint)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_Out_ BOOL* isTrailingHit,
_Out_ DWRITE_HIT_TEST_METRICS* hitTestMetrics
STDMETHOD(HitTestTextPosition)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_Out_ DWRITE_HIT_TEST_METRICS* hitTestMetrics
STDMETHOD(HitTestTextRange)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
,
,
_Out_writes_opt_(maxHitTestMetricsCount) DWRITE_HIT_TEST_METRICS* hitTestMetrics,
,
_Out_ UINT32* actualHitTestMetricsCount
using
::
;
using
::
;
using
::
;
using
::
;
using
::
;
using
::
;
using
::
;
using
::
;
using
::
;
};
interface DWRITE_DECLARE_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") IDWriteBitmapRenderTarget : public IUnknown
struct
__declspec
(uuid(
"5e5a32a3-8dff-4773-9ff6-0696eab77267"
))
__declspec
(novtable)
IDWriteBitmapRenderTarget
:
public
{
STDMETHOD(DrawGlyphRun)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
,
_In_ DWRITE_GLYPH_RUN const* glyphRun,
_In_ IDWriteRenderingParams* renderingParams,
,
_Out_opt_ RECT* blackBoxRect = NULL
STDMETHOD_(HDC, GetMemoryDC)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD_(FLOAT, GetPixelsPerDip)() PURE;
virtual
__declspec
(nothrow)
__stdcall
() =
0
;
STDMETHOD(SetPixelsPerDip)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(GetCurrentTransform)(
virtual
__declspec
(nothrow)
__stdcall
(
_Out_ DWRITE_MATRIX* transform
STDMETHOD(SetCurrentTransform)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_opt_ DWRITE_MATRIX const* transform
STDMETHOD(GetSize)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(Resize)(
virtual
__declspec
(nothrow)
__stdcall
(
,
};
interface DWRITE_DECLARE_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") IDWriteGdiInterop : public IUnknown
struct
__declspec
(uuid(
"1edd9491-9853-4299-898f-6432983b6f3a"
))
__declspec
(novtable)
:
public
{
STDMETHOD(CreateFontFromLOGFONT)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ LOGFONTW const* logFont,
_COM_Outptr_ IDWriteFont** font
STDMETHOD(ConvertFontToLOGFONT)(
virtual
__declspec
(nothrow)
__stdcall
(
STDMETHOD(ConvertFontFaceToLOGFONT)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFontFace* font,
STDMETHOD(CreateFontFaceFromHdc)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_COM_Outptr_ IDWriteFontFace** fontFace
STDMETHOD(CreateBitmapRenderTarget)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_COM_Outptr_ IDWriteBitmapRenderTarget** renderTarget
IDWriteBitmapRenderTarget
**
};
enum
{
DWRITE_TEXTURE_ALIASED_1x1
,
DWRITE_TEXTURE_CLEARTYPE_3x1
};
#define DWRITE_ALPHA_MAX 255
interface DWRITE_DECLARE_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") IDWriteGlyphRunAnalysis : public IUnknown
struct
__declspec
(uuid(
"7d97dbf7-e085-42d4-81e3-6a883bded118"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetAlphaTextureBounds)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_Out_ RECT* textureBounds
STDMETHOD(CreateAlphaTexture)(
virtual
__declspec
(nothrow)
__stdcall
(
,
_In_ RECT const* textureBounds,
_Out_writes_bytes_(bufferSize) BYTE* alphaValues,
STDMETHOD(GetAlphaBlendParams)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteRenderingParams* renderingParams,
_Out_ FLOAT* blendEnhancedContrast,
_Out_ FLOAT* blendClearTypeLevel
};
interface DWRITE_DECLARE_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") IDWriteFactory : public IUnknown
struct
__declspec
(uuid(
"b859ee5a-d838-4b5b-a2e8-1adc7d93db48"
))
__declspec
(novtable)
:
public
{
STDMETHOD(GetSystemFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteFontCollection** fontCollection,
BOOL checkForUpdates = FALSE
STDMETHOD(CreateCustomFontCollection)(
virtual
__declspec
(nothrow)
__stdcall
CreateCustomFontCollection
(
_In_ IDWriteFontCollectionLoader* collectionLoader,
IDWriteFontCollectionLoader
*
,
_In_reads_bytes_(collectionKeySize) void const* collectionKey,
,
_COM_Outptr_ IDWriteFontCollection** fontCollection
STDMETHOD(RegisterFontCollectionLoader)(
virtual
__declspec
(nothrow)
__stdcall
RegisterFontCollectionLoader
(
_In_ IDWriteFontCollectionLoader* fontCollectionLoader
IDWriteFontCollectionLoader
*
STDMETHOD(UnregisterFontCollectionLoader)(
virtual
__declspec
(nothrow)
__stdcall
UnregisterFontCollectionLoader
(
_In_ IDWriteFontCollectionLoader* fontCollectionLoader
IDWriteFontCollectionLoader
*
STDMETHOD(CreateFontFileReference)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* filePath,
_In_opt_ FILETIME const* lastWriteTime,
_COM_Outptr_ IDWriteFontFile** fontFile
STDMETHOD(CreateCustomFontFileReference)(
virtual
__declspec
(nothrow)
__stdcall
CreateCustomFontFileReference
(
_In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
,
_In_ IDWriteFontFileLoader* fontFileLoader,
_COM_Outptr_ IDWriteFontFile** fontFile
STDMETHOD(CreateFontFace)(
virtual
__declspec
(nothrow)
__stdcall
(
,
,
_In_reads_(numberOfFiles) IDWriteFontFile* const* fontFiles,
,
,
_COM_Outptr_ IDWriteFontFace** fontFace
STDMETHOD(CreateRenderingParams)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteRenderingParams** renderingParams
STDMETHOD(CreateMonitorRenderingParams)(
virtual
__declspec
(nothrow)
__stdcall
CreateMonitorRenderingParams
(
,
_COM_Outptr_ IDWriteRenderingParams** renderingParams
STDMETHOD(CreateCustomRenderingParams)(
virtual
__declspec
(nothrow)
__stdcall
CreateCustomRenderingParams
(
,
,
,
,
,
_COM_Outptr_ IDWriteRenderingParams** renderingParams
STDMETHOD(RegisterFontFileLoader)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFontFileLoader* fontFileLoader
STDMETHOD(UnregisterFontFileLoader)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ IDWriteFontFileLoader* fontFileLoader
STDMETHOD(CreateTextFormat)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_z_ WCHAR const* fontFamilyName,
_In_opt_ IDWriteFontCollection* fontCollection,
,
,
,
,
_In_z_ WCHAR const* localeName,
_COM_Outptr_ IDWriteTextFormat** textFormat
STDMETHOD(CreateTypography)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteTypography** typography
STDMETHOD(GetGdiInterop)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteGdiInterop** gdiInterop
STDMETHOD(CreateTextLayout)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_reads_(stringLength) WCHAR const* string,
,
_In_ IDWriteTextFormat* textFormat,
,
,
_COM_Outptr_ IDWriteTextLayout** textLayout
STDMETHOD(CreateGdiCompatibleTextLayout)(
virtual
__declspec
(nothrow)
__stdcall
CreateGdiCompatibleTextLayout
(
_In_reads_(stringLength) WCHAR const* string,
,
_In_ IDWriteTextFormat* textFormat,
,
,
,
_In_opt_ DWRITE_MATRIX const* transform,
,
_COM_Outptr_ IDWriteTextLayout** textLayout
STDMETHOD(CreateEllipsisTrimmingSign)(
virtual
__declspec
(nothrow)
__stdcall
CreateEllipsisTrimmingSign
(
_In_ IDWriteTextFormat* textFormat,
_COM_Outptr_ IDWriteInlineObject** trimmingSign
STDMETHOD(CreateTextAnalyzer)(
virtual
__declspec
(nothrow)
__stdcall
(
_COM_Outptr_ IDWriteTextAnalyzer** textAnalyzer
STDMETHOD(CreateNumberSubstitution)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
DWRITE_NUMBER_SUBSTITUTION_METHOD
,
_In_z_ WCHAR const* localeName,
_In_ BOOL ignoreUserOverride,
_COM_Outptr_ IDWriteNumberSubstitution** numberSubstitution
IDWriteNumberSubstitution
**
STDMETHOD(CreateGlyphRunAnalysis)(
virtual
__declspec
(nothrow)
__stdcall
(
_In_ DWRITE_GLYPH_RUN const* glyphRun,
,
_In_opt_ DWRITE_MATRIX const* transform,
,
,
,
,
_COM_Outptr_ IDWriteGlyphRunAnalysis** glyphRunAnalysis
};
EXTERN_C HRESULT DWRITE_EXPORT DWriteCreateFactory(
extern
"C"
__declspec
(dllimport)
__stdcall
(
_In_ DWRITE_FACTORY_TYPE factoryType,
_COM_Outptr_ IUnknown **factory
);
#define FACILITY_DWRITE 0x898
#define DWRITE_ERR_BASE 0x5000
#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))
#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code)
#endif /* DWRITE_H_INCLUDED */