/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef __INC_DWRITE__
#define __INC_DWRITE__
#define DWRITEAPI DECLSPEC_IMPORT
#ifdef __MINGW_USE_BROKEN_INTERFACE
#define __MINGW_POISON_NAME(__IFACE) __IFACE
#else
#define __MINGW_POISON_NAME(__IFACE)\
__IFACE##_layout_has_not_been_verified_and_its_declaration_is_most_likely_incorrect
#endif
#include <unknwn.h>
#ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__
#define __IDWriteBitmapRenderTarget_FWD_DEFINED__
typedef struct IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget;
#endif
#ifndef __IDWriteFactory_FWD_DEFINED__
#define __IDWriteFactory_FWD_DEFINED__
typedef struct IDWriteFactory IDWriteFactory;
#endif
#ifndef __IDWriteFont_FWD_DEFINED__
#define __IDWriteFont_FWD_DEFINED__
typedef struct IDWriteFont IDWriteFont;
#endif
#ifndef __IDWriteFontCollection_FWD_DEFINED__
#define __IDWriteFontCollection_FWD_DEFINED__
typedef struct IDWriteFontCollection IDWriteFontCollection;
#endif
#ifndef __IDWriteFontFace_FWD_DEFINED__
#define __IDWriteFontFace_FWD_DEFINED__
typedef struct IDWriteFontFace IDWriteFontFace;
#endif
#ifndef __IDWriteFontFamily_FWD_DEFINED__
#define __IDWriteFontFamily_FWD_DEFINED__
typedef struct IDWriteFontFamily IDWriteFontFamily;
#endif
#ifndef __IDWriteFontList_FWD_DEFINED__
#define __IDWriteFontList_FWD_DEFINED__
typedef struct IDWriteFontList IDWriteFontList;
#endif
#ifndef __IDWriteFontFile_FWD_DEFINED__
#define __IDWriteFontFile_FWD_DEFINED__
typedef struct IDWriteFontFile IDWriteFontFile;
#endif
#ifndef __IDWriteFontFileLoader_FWD_DEFINED__
#define __IDWriteFontFileLoader_FWD_DEFINED__
typedef struct IDWriteFontFileLoader IDWriteFontFileLoader;
#endif
#ifndef __IDWriteFontFileStream_FWD_DEFINED__
#define __IDWriteFontFileStream_FWD_DEFINED__
typedef struct IDWriteFontFileStream IDWriteFontFileStream;
#endif
#ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__
#define __IDWriteFontCollectionLoader_FWD_DEFINED__
typedef struct IDWriteFontCollectionLoader IDWriteFontCollectionLoader;
#endif
#ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__
#define __IDWriteFontFileEnumerator_FWD_DEFINED__
typedef struct IDWriteFontFileEnumerator IDWriteFontFileEnumerator;
#endif
#ifndef __IDWriteGdiInterop_FWD_DEFINED__
#define __IDWriteGdiInterop_FWD_DEFINED__
typedef struct IDWriteGdiInterop IDWriteGdiInterop;
#endif
/* Fixme: MSDN says its a typedef, needs verification */
/* http://msdn.microsoft.com/en-us/library/dd756614%28v=VS.85%29.aspx */
#ifndef __IDWriteGeometrySink_FWD_DEFINED__
#define __IDWriteGeometrySink_FWD_DEFINED__
typedef struct ID2D1SimplifiedGeometrySink IDWriteGeometrySink;
#endif
#ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__
#define __IDWriteGlyphRunAnalysis_FWD_DEFINED__
typedef struct IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis;
#endif
#ifndef __IDWriteInlineObject_FWD_DEFINED__
#define __IDWriteInlineObject_FWD_DEFINED__
typedef struct IDWriteInlineObject IDWriteInlineObject;
#endif
#ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__
#define __IDWriteLocalFontFileLoader_FWD_DEFINED__
typedef struct IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader;
#endif
#ifndef __IDWriteLocalizedStrings_FWD_DEFINED__
#define __IDWriteLocalizedStrings_FWD_DEFINED__
typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings;
#endif
#ifndef __IDWriteNumberSubstitution_FWD_DEFINED__
#define __IDWriteNumberSubstitution_FWD_DEFINED__
typedef struct IDWriteNumberSubstitution IDWriteNumberSubstitution;
#endif
#ifndef __IDWritePixelSnapping_FWD_DEFINED__
#define __IDWritePixelSnapping_FWD_DEFINED__
typedef struct IDWritePixelSnapping IDWritePixelSnapping;
#endif
#ifndef __IDWriteRenderingParams_FWD_DEFINED__
#define __IDWriteRenderingParams_FWD_DEFINED__
typedef struct IDWriteRenderingParams IDWriteRenderingParams;
#endif
#ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__
#define __IDWriteTextAnalysisSink_FWD_DEFINED__
typedef struct IDWriteTextAnalysisSink IDWriteTextAnalysisSink;
#endif
#ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__
#define __IDWriteTextAnalysisSource_FWD_DEFINED__
typedef struct IDWriteTextAnalysisSource IDWriteTextAnalysisSource;
#endif
#ifndef __IDWriteTextAnalyzer_FWD_DEFINED__
#define __IDWriteTextAnalyzer_FWD_DEFINED__
typedef struct IDWriteTextAnalyzer IDWriteTextAnalyzer;
#endif
#ifndef __IDWriteTextFormat_FWD_DEFINED__
#define __IDWriteTextFormat_FWD_DEFINED__
typedef struct IDWriteTextFormat IDWriteTextFormat;
#endif
#ifndef __IDWriteTextLayout_FWD_DEFINED__
#define __IDWriteTextLayout_FWD_DEFINED__
typedef struct IDWriteTextLayout IDWriteTextLayout;
#endif
#ifndef __IDWriteTextRenderer_FWD_DEFINED__
#define __IDWriteTextRenderer_FWD_DEFINED__
typedef struct IDWriteTextRenderer IDWriteTextRenderer;
#endif
#ifndef __IDWriteTypography_FWD_DEFINED__
#define __IDWriteTypography_FWD_DEFINED__
typedef struct IDWriteTypography IDWriteTypography;
#endif
#include <dcommon.h>
typedef enum DWRITE_INFORMATIONAL_STRING_ID {
DWRITE_INFORMATIONAL_STRING_NONE = 0,
DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE,
DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS,
DWRITE_INFORMATIONAL_STRING_TRADEMARK,
DWRITE_INFORMATIONAL_STRING_MANUFACTURER,
DWRITE_INFORMATIONAL_STRING_DESIGNER,
DWRITE_INFORMATIONAL_STRING_DESIGNER_URL,
DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL,
DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION,
DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL,
DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT
} DWRITE_INFORMATIONAL_STRING_ID;
typedef enum DWRITE_BREAK_CONDITION {
DWRITE_BREAK_CONDITION_NEUTRAL = 0,
DWRITE_BREAK_CONDITION_CAN_BREAK = 1,
DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2,
DWRITE_BREAK_CONDITION_MUST_BREAK = 3
} DWRITE_BREAK_CONDITION;
typedef enum DWRITE_FACTORY_TYPE {
DWRITE_FACTORY_TYPE_SHARED = 0,
DWRITE_FACTORY_TYPE_ISOLATED
} DWRITE_FACTORY_TYPE;
typedef enum DWRITE_FLOW_DIRECTION {
DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM
} DWRITE_FLOW_DIRECTION;
typedef enum DWRITE_FONT_FACE_TYPE {
DWRITE_FONT_FACE_TYPE_CFF = 0,
DWRITE_FONT_FACE_TYPE_TRUETYPE,
DWRITE_FONT_FACE_TYPE_TRUETYPE_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;
typedef enum DWRITE_FONT_FEATURE_TAG {
DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661,
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263,
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263,
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163,
DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163,
DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363,
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63,
DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063,
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363,
DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563,
DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64,
DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865,
DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266,
DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766,
DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168,
DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168,
DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168,
DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968,
DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68,
DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68,
DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768,
DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68,
DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a,
DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a,
DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a,
DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a,
DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b,
DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c,
DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c,
DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c,
DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d,
DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d,
DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d,
DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e,
DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e,
DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f,
DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f,
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170,
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370,
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70,
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770,
DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771,
DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72,
DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173,
DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973,
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73,
DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373,
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373,
DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573,
DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573,
DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773,
DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974,
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74,
DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74,
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274,
DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774,
DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75,
DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a
} DWRITE_FONT_FEATURE_TAG;
typedef enum DWRITE_FONT_FILE_TYPE {
DWRITE_FONT_FILE_TYPE_UNKNOWN = 0,
DWRITE_FONT_FILE_TYPE_CFF,
DWRITE_FONT_FILE_TYPE_TRUETYPE,
DWRITE_FONT_FILE_TYPE_TRUETYPE_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;
typedef enum DWRITE_FONT_SIMULATIONS {
DWRITE_FONT_SIMULATIONS_NONE = 0x0000,
DWRITE_FONT_SIMULATIONS_BOLD = 0x0001,
DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002
} DWRITE_FONT_SIMULATIONS;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS);
#endif
typedef enum DWRITE_FONT_STRETCH {
DWRITE_FONT_STRETCH_UNDEFINED = 0,
DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1,
DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 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
} DWRITE_FONT_STRETCH;
typedef enum DWRITE_FONT_STYLE {
DWRITE_FONT_STYLE_NORMAL = 0,
DWRITE_FONT_STYLE_OBLIQUE,
DWRITE_FONT_STYLE_ITALIC
} DWRITE_FONT_STYLE;
typedef enum DWRITE_FONT_WEIGHT {
DWRITE_FONT_WEIGHT_THIN = 100,
DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200,
DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200,
DWRITE_FONT_WEIGHT_LIGHT = 300,
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,
DWRITE_FONT_WEIGHT_BOLD = 700,
DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800,
DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800,
DWRITE_FONT_WEIGHT_BLACK = 900,
DWRITE_FONT_WEIGHT_HEAVY = 900,
DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950,
DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950
} DWRITE_FONT_WEIGHT;
typedef enum DWRITE_LINE_SPACING_METHOD {
DWRITE_LINE_SPACING_METHOD_DEFAULT = 0,
DWRITE_LINE_SPACING_METHOD_UNIFORM
} DWRITE_LINE_SPACING_METHOD;
typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD {
DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0,
DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL,
DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL
} DWRITE_NUMBER_SUBSTITUTION_METHOD;
typedef enum DWRITE_PARAGRAPH_ALIGNMENT {
DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0,
DWRITE_PARAGRAPH_ALIGNMENT_FAR,
DWRITE_PARAGRAPH_ALIGNMENT_CENTER
} DWRITE_PARAGRAPH_ALIGNMENT;
typedef enum DWRITE_PIXEL_GEOMETRY {
DWRITE_PIXEL_GEOMETRY_FLAT = 0,
DWRITE_PIXEL_GEOMETRY_RGB,
DWRITE_PIXEL_GEOMETRY_BGR
} DWRITE_PIXEL_GEOMETRY;
typedef enum DWRITE_READING_DIRECTION {
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0,
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT
} DWRITE_READING_DIRECTION;
typedef enum DWRITE_RENDERING_MODE {
DWRITE_RENDERING_MODE_DEFAULT = 0,
DWRITE_RENDERING_MODE_ALIASED,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC,
DWRITE_RENDERING_MODE_OUTLINE
} DWRITE_RENDERING_MODE;
typedef enum DWRITE_SCRIPT_SHAPES {
DWRITE_SCRIPT_SHAPES_DEFAULT = 0,
DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1
} DWRITE_SCRIPT_SHAPES;
typedef enum DWRITE_TEXT_ALIGNMENT {
DWRITE_TEXT_ALIGNMENT_LEADING = 0,
DWRITE_TEXT_ALIGNMENT_TRAILING,
DWRITE_TEXT_ALIGNMENT_CENTER
} DWRITE_TEXT_ALIGNMENT;
typedef enum DWRITE_TEXTURE_TYPE {
DWRITE_TEXTURE_ALIASED_1x1 = 0,
DWRITE_TEXTURE_CLEARTYPE_3x1
} DWRITE_TEXTURE_TYPE;
typedef enum DWRITE_TRIMMING_GRANULARITY {
DWRITE_TRIMMING_GRANULARITY_NONE,
DWRITE_TRIMMING_GRANULARITY_CHARACTER,
DWRITE_TRIMMING_GRANULARITY_WORD
} DWRITE_TRIMMING_GRANULARITY;
typedef enum DWRITE_WORD_WRAPPING {
DWRITE_WORD_WRAPPING_WRAP,
DWRITE_WORD_WRAPPING_NO_WRAP
} DWRITE_WORD_WRAPPING;
typedef struct _DWRITE_OVERHANG_METRICS {
FLOAT left;
FLOAT top;
FLOAT right;
FLOAT bottom;
} DWRITE_OVERHANG_METRICS, *PDWRITE_OVERHANG_METRICS;
typedef struct DWRITE_CLUSTER_METRICS {
FLOAT width;
UINT16 length;
UINT16 canWrapLineAfter :1;
UINT16 isWhitespace :1;
UINT16 isNewline :1;
UINT16 isSoftHyphen :1;
UINT16 isRightToLeft :1;
UINT16 padding :11;
} DWRITE_CLUSTER_METRICS;
typedef struct DWRITE_FONT_FEATURE {
DWRITE_FONT_FEATURE_TAG nameTag;
UINT32 parameter;
} DWRITE_FONT_FEATURE;
typedef struct DWRITE_FONT_METRICS {
UINT16 designUnitsPerEm;
UINT16 ascent;
UINT16 descent;
INT16 lineGap;
UINT16 capHeight;
UINT16 xHeight;
INT16 underlinePosition;
UINT16 underlineThickness;
INT16 strikethroughPosition;
UINT16 strikethroughThickness;
} DWRITE_FONT_METRICS;
typedef struct DWRITE_GLYPH_METRICS {
INT32 leftSideBearing;
UINT32 advanceWidth;
INT32 rightSideBearing;
INT32 topSideBearing;
UINT32 advanceHeight;
INT32 bottomSideBearing;
INT32 verticalOriginY;
} DWRITE_GLYPH_METRICS;
typedef struct DWRITE_GLYPH_OFFSET {
FLOAT advanceOffset;
FLOAT ascenderOffset;
} DWRITE_GLYPH_OFFSET;
typedef struct DWRITE_GLYPH_RUN {
IDWriteFontFace *fontFace;
FLOAT fontEmSize;
UINT32 glyphCount;
const UINT16 *glyphIndices;
const FLOAT *glyphAdvances;
const DWRITE_GLYPH_OFFSET *glyphOffsets;
WINBOOL isSideways;
UINT32 bidiLevel;
} DWRITE_GLYPH_RUN;
typedef struct DWRITE_GLYPH_RUN_DESCRIPTION {
const WCHAR *localeName;
const WCHAR *string;
UINT32 stringLength;
const UINT16 *clusterMap;
UINT32 textPosition;
} DWRITE_GLYPH_RUN_DESCRIPTION;
typedef struct DWRITE_HIT_TEST_METRICS {
UINT32 textPosition;
UINT32 length;
FLOAT left;
FLOAT top;
FLOAT width;
FLOAT height;
UINT32 bidiLevel;
WINBOOL isText;
} DWRITE_HIT_TEST_METRICS;
typedef struct DWRITE_INLINE_OBJECT_METRICS {
FLOAT width;
FLOAT height;
FLOAT baseline;
WINBOOL supportsSideways;
} DWRITE_INLINE_OBJECT_METRICS;
typedef struct DWRITE_LINE_BREAKPOINT {
UINT8 breakConditionBefore :2;
UINT8 breakConditionAfter :2;
UINT8 isWhitespace :1;
UINT8 isSoftHyphen :1;
UINT8 padding :2;
} DWRITE_LINE_BREAKPOINT;
typedef struct DWRITE_LINE_METRICS {
UINT32 length;
UINT32 trailingWhitespaceLength;
UINT32 newlineLength;
FLOAT height;
FLOAT baseline;
WINBOOL isTrimmed;
} DWRITE_LINE_METRICS;
typedef struct DWRITE_MATRIX {
FLOAT m11;
FLOAT m12;
FLOAT m21;
FLOAT m22;
FLOAT dx;
FLOAT dy;
} DWRITE_MATRIX;
typedef struct DWRITE_SCRIPT_ANALYSIS {
UINT16 script;
DWRITE_SCRIPT_SHAPES shapes;
} DWRITE_SCRIPT_ANALYSIS;
typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES {
UINT16 justification :4;
UINT16 isClusterStart :1;
UINT16 isDiacritic :1;
UINT16 isZeroWidthSpace :1;
UINT16 reserved :9;
} DWRITE_SHAPING_GLYPH_PROPERTIES;
typedef struct DWRITE_SHAPING_TEXT_PROPERTIES {
UINT16 isShapedAlone :1;
UINT16 reserved :15;
} DWRITE_SHAPING_TEXT_PROPERTIES;
typedef struct DWRITE_STRIKETHROUGH {
FLOAT width;
FLOAT thickness;
FLOAT offset;
DWRITE_READING_DIRECTION readingDirection;
DWRITE_FLOW_DIRECTION flowDirection;
const WCHAR *localeName;
DWRITE_MEASURING_MODE measuringMode;
} DWRITE_STRIKETHROUGH;
typedef struct DWRITE_TEXT_METRICS {
FLOAT left;
FLOAT top;
FLOAT width;
FLOAT widthIncludingTrailingWhitespace;
FLOAT height;
FLOAT layoutWidth;
FLOAT layoutHeight;
UINT32 maxBidiReorderingDepth;
} DWRITE_TEXT_METRICS;
typedef struct DWRITE_TEXT_RANGE {
UINT32 startPosition;
UINT32 length;
} DWRITE_TEXT_RANGE;
typedef struct DWRITE_TRIMMING {
DWRITE_TRIMMING_GRANULARITY granularity;
UINT32 delimiter;
UINT32 delimiterCount;
} DWRITE_TRIMMING;
typedef struct DWRITE_TYPOGRAPHIC_FEATURES {
DWRITE_FONT_FEATURE *features;
UINT32 featureCount;
} DWRITE_TYPOGRAPHIC_FEATURES;
typedef struct DWRITE_UNDERLINE {
FLOAT width;
FLOAT thickness;
FLOAT offset;
FLOAT runHeight;
DWRITE_READING_DIRECTION readingDirection;
DWRITE_FLOW_DIRECTION flowDirection;
const WCHAR *localeName;
DWRITE_MEASURING_MODE measuringMode;
} DWRITE_UNDERLINE;
#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)))
#ifndef __MINGW_DEF_ARG_VAL
#ifdef __cplusplus
#define __MINGW_DEF_ARG_VAL(x) = x
#else
#define __MINGW_DEF_ARG_VAL(x)
#endif
#endif
#undef INTERFACE
#define INTERFACE IDWriteBitmapRenderTarget
DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteBitmapRenderTarget methods */
STDMETHOD(DrawGlyphRun)(THIS_
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_MEASURING_MODE measuringMode,
DWRITE_GLYPH_RUN const *glyphRun,
IDWriteRenderingParams *renderingParams,
COLORREF textColor,
RECT *blackBoxRect __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD_(HDC, GetMemoryDC)(THIS) PURE;
STDMETHOD_(FLOAT, GetPixelsPerDip)(THIS) PURE;
STDMETHOD(SetPixelsPerDip)(THIS_
FLOAT pixelsPerDip) PURE;
STDMETHOD(GetCurrentTransform)(THIS_
DWRITE_MATRIX* transform) PURE;
STDMETHOD(SetCurrentTransform)(THIS_
DWRITE_MATRIX const *transform) PURE;
STDMETHOD(GetSize)(THIS_
SIZE *size) PURE;
STDMETHOD(Resize)(THIS_
UINT32 width,
UINT32 height) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect)
#define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
#define IDWriteBitmapRenderTarget_GetMemoryDC() (This)->lpVtbl->GetMemoryDC(This)
#define IDWriteBitmapRenderTarget_GetPixelsPerDip() (This)->lpVtbl->GetPixelsPerDip(This)
#define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
#define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
#define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixelsPerDip) (This)->lpVtbl->SetPixelsPerDip(This,pixelsPerDip)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFactory
DECLARE_INTERFACE_(IDWriteFactory,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFactory methods */
STDMETHOD(GetSystemFontCollection)(THIS_
IDWriteFontCollection **fontCollection,
WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(CreateCustomFontCollection)(THIS_
IDWriteFontCollectionLoader *collectionLoader,
void const *collectionKey,
UINT32 collectionKeySize,
IDWriteFontCollection **fontCollection) PURE;
STDMETHOD(RegisterFontCollectionLoader)(THIS_
IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
STDMETHOD(UnregisterFontCollectionLoader)(THIS_
IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
STDMETHOD(CreateFontFileReference)(THIS_
WCHAR const *filePath,
FILETIME const *lastWriteTime,
IDWriteFontFile **fontFile) PURE;
STDMETHOD(CreateCustomFontFileReference)(THIS_
void const *fontFileReferenceKey,
UINT32 fontFileReferenceKeySize,
IDWriteFontFileLoader *fontFileLoader,
IDWriteFontFile **fontFile) PURE;
STDMETHOD(CreateFontFace)(THIS_
DWRITE_FONT_FACE_TYPE fontFaceType,
UINT32 numberOfFiles,
IDWriteFontFile *const *fontFiles,
UINT32 faceIndex,
DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
IDWriteFontFace **fontFace) PURE;
STDMETHOD(CreateRenderingParams)(THIS_
IDWriteRenderingParams **renderingParams) PURE;
STDMETHOD(CreateMonitorRenderingParams)(THIS_
HMONITOR monitor,
IDWriteRenderingParams **renderingParams) PURE;
STDMETHOD(CreateCustomRenderingParams)(THIS_
FLOAT gamma,
FLOAT enhancedContrast,
FLOAT clearTypeLevel,
DWRITE_PIXEL_GEOMETRY pixelGeometry,
DWRITE_RENDERING_MODE renderingMode,
IDWriteRenderingParams **renderingParams) PURE;
STDMETHOD(RegisterFontFileLoader)(THIS_
IDWriteFontFileLoader *fontFileLoader) PURE;
STDMETHOD(UnregisterFontFileLoader)(THIS_
IDWriteFontFileLoader *fontFileLoader) PURE;
STDMETHOD(CreateTextFormat)(THIS_
WCHAR const *fontFamilyName,
IDWriteFontCollection *fontCollection,
DWRITE_FONT_WEIGHT fontWeight,
DWRITE_FONT_STYLE fontStyle,
DWRITE_FONT_STRETCH fontStretch,
FLOAT fontSize,
WCHAR const *localeName,
IDWriteTextFormat **textFormat) PURE;
STDMETHOD(CreateTypography)(THIS_
IDWriteTypography **typography) PURE;
STDMETHOD(GetGdiInterop)(THIS_
IDWriteGdiInterop **gdiInterop) PURE;
STDMETHOD(CreateTextLayout)(THIS_
WCHAR const *string,
UINT32 stringLength,
IDWriteTextFormat *textFormat,
FLOAT maxWidth,
FLOAT maxHeight,
IDWriteTextLayout **textLayout) PURE;
STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_
WCHAR const *string,
UINT32 stringLength,
IDWriteTextFormat *textFormat,
FLOAT layoutWidth,
FLOAT layoutHeight,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
IDWriteTextLayout **textLayout) PURE;
STDMETHOD(CreateEllipsisTrimmingSign)(THIS_
IDWriteTextFormat *textFormat,
IDWriteInlineObject **trimmingSign) PURE;
STDMETHOD(CreateTextAnalyzer)(THIS_
IDWriteTextAnalyzer **textAnalyzer) PURE;
STDMETHOD(CreateNumberSubstitution)(THIS_
DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
WCHAR const *localeName,
WINBOOL ignoreUserOverride,
IDWriteNumberSubstitution **numberSubstitution) PURE;
STDMETHOD(CreateGlyphRunAnalysis)(THIS_
DWRITE_GLYPH_RUN const *glyphRun,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
DWRITE_RENDERING_MODE renderingMode,
DWRITE_MEASURING_MODE measuringMode,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFactory_CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) (This)->lpVtbl->CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection)
#define IDWriteFactory_CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) (This)->lpVtbl->CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile)
#define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams)
#define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout)
#define IDWriteFactory_CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,textFormat,trimmingSign)
#define IDWriteFactory_CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace)
#define IDWriteFactory_CreateFontFileReference(This,filePath,lastWriteTime,fontFile) (This)->lpVtbl->CreateFontFileReference(This,filePath,lastWriteTime,fontFile)
#define IDWriteFactory_CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis)
#define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,renderingParams) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,renderingParams)
#define IDWriteFactory_CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) (This)->lpVtbl->CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution)
#define IDWriteFactory_CreateRenderingParams(This,renderingParams) (This)->lpVtbl->CreateRenderingParams(This,renderingParams)
#define IDWriteFactory_CreateTextAnalyzer(This,textAnalyzer) (This)->lpVtbl->CreateTextAnalyzer(This,textAnalyzer)
#define IDWriteFactory_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat)
#define IDWriteFactory_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout)
#define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
#define IDWriteFactory_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop)
#define IDWriteFactory_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates)
#define IDWriteFactory_RegisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->RegisterFontCollectionLoader(This,fontCollectionLoader)
#define IDWriteFactory_RegisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->RegisterFontFileLoader(This,fontFileLoader)
#define IDWriteFactory_UnregisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,fontCollectionLoader)
#define IDWriteFactory_UnregisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->UnregisterFontFileLoader(This,fontFileLoader)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFont
DECLARE_INTERFACE_(IDWriteFont,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFont methods */
STDMETHOD(GetFontFamily)(THIS_
IDWriteFontFamily **fontFamily) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
STDMETHOD(GetFaceNames)(THIS_
IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetInformationalStrings)(THIS_
DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
IDWriteLocalizedStrings **informationalStrings,
WINBOOL *exists) PURE;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
STDMETHOD_(void, GetMetrics)(THIS_
DWRITE_FONT_METRICS *fontMetrics) PURE;
STDMETHOD(HasCharacter)(THIS_
UINT32 unicodeValue,
WINBOOL *exists) PURE;
STDMETHOD(CreateFontFace)(THIS_
IDWriteFontFace **fontFace) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFont_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFont_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace)
#define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
#define IDWriteFont_GetFontFamily(This,fontFamily) (This)->lpVtbl->GetFontFamily(This,fontFamily)
#define IDWriteFont_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists)
#define IDWriteFont_GetMetrics(This,fontMetrics) (This)->lpVtbl->GetMetrics(This,fontMetrics)
#define IDWriteFont_GetSimulations() (This)->lpVtbl->GetSimulations(This)
#define IDWriteFont_GetStretch() (This)->lpVtbl->GetStretch(This)
#define IDWriteFont_GetStyle() (This)->lpVtbl->GetStyle(This)
#define IDWriteFont_GetWeight() (This)->lpVtbl->GetWeight(This)
#define IDWriteFont_HasCharacter(This,unicodeValue,exists) (This)->lpVtbl->HasCharacter(This,unicodeValue,exists)
#define IDWriteFont_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontCollection
DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontCollection methods */
STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE;
STDMETHOD(GetFontFamily)(THIS_
UINT32 index,
IDWriteFontFamily **fontFamily) PURE;
STDMETHOD(FindFamilyName)(THIS_
WCHAR const *familyName,
UINT32 *index,
WINBOOL *exists) PURE;
STDMETHOD(GetFontFromFontFace)(THIS_
IDWriteFontFace* fontFace,
IDWriteFont **font) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontCollection_FindFamilyName(This,familyName,index,exists) (This)->lpVtbl->FindFamilyName(This,familyName,index,exists)
#define IDWriteFontCollection_GetFontFamily(This,index,fontFamily) (This)->lpVtbl->GetFontFamily(This,index,fontFamily)
#define IDWriteFontCollection_GetFontFamilyCount() (This)->lpVtbl->GetFontFamilyCount(This)
#define IDWriteFontCollection_GetFontFromFontFace(This,fontFace,font) (This)->lpVtbl->GetFontFromFontFace(This,fontFace,font)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFace
DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFace methods */
STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
STDMETHOD(GetFiles)(THIS_
UINT32 *numberOfFiles,
IDWriteFontFile **fontFiles) PURE;
STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
STDMETHOD_(void, GetMetrics)(THIS_
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
STDMETHOD(GetDesignGlyphMetrics)(THIS_
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGlyphIndices)(THIS_
UINT32 const *codePoints,
UINT32 codePointCount,
UINT16 *glyphIndices) PURE;
STDMETHOD(TryGetFontTable)(THIS_
UINT32 openTypeTableTag,
const void **tableData,
UINT32 *tableSize,
void **tableContext,
WINBOOL *exists) PURE;
STDMETHOD_(void, ReleaseFontTable)(THIS_
void *tableContext) PURE;
STDMETHOD(GetGlyphRunOutline)(THIS_
FLOAT emSize,
UINT16 const *glyphIndices,
FLOAT const *glyphAdvances,
DWRITE_GLYPH_OFFSET const *glyphOffsets,
UINT32 glyphCount,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IDWriteGeometrySink *geometrySink) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE *renderingMode) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFace_GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways)
#define IDWriteFontFace_GetFiles(This,fontFiles) (This)->lpVtbl->GetFiles(This,fontFiles)
#define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics)
#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways)
#define IDWriteFontFace_GetGlyphCount() (This)->lpVtbl->GetGlyphCount(This)
#define IDWriteFontFace_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices)
#define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink)
#define IDWriteFontFace_GetIndex() (This)->lpVtbl->GetIndex(This)
#define IDWriteFontFace_GetMetrics(This,fontFaceMetrics) (This)->lpVtbl->GetMetrics(This,fontFaceMetrics)
#define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode)
#define IDWriteFontFace_GetSimulations() (This)->lpVtbl->GetSimulations(This)
#define IDWriteFontFace_GetType() (This)->lpVtbl->GetType(This)
#define IDWriteFontFace_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This)
#define IDWriteFontFace_ReleaseFontTable(This,tableContext) (This)->lpVtbl->ReleaseFontTable(This,tableContext)
#define IDWriteFontFace_TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) (This)->lpVtbl->TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontList
DECLARE_INTERFACE_(IDWriteFontList,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontList methods */
STDMETHOD(GetFontCollection)(THIS_
IDWriteFontCollection** fontCollection) PURE;
STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
STDMETHOD(GetFont)(THIS_
UINT32 index,
IDWriteFont **font) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
#define IDWriteFontList_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
#define IDWriteFontList_GetFontCount() (This)->lpVtbl->GetFontCount(This)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFamily
DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontList methods */
STDMETHOD(GetFontCollection)(THIS_
IDWriteFontCollection** fontCollection) PURE;
STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
STDMETHOD(GetFont)(THIS_
UINT32 index,
IDWriteFont **font) PURE;
/* IDWriteFontFamily methods */
STDMETHOD(GetFamilyNames)(THIS_
IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetFirstMatchingFont)(THIS_
DWRITE_FONT_WEIGHT weight,
DWRITE_FONT_STRETCH stretch,
DWRITE_FONT_STYLE style,
IDWriteFont **matchingFont) PURE;
STDMETHOD(GetMatchingFonts)(THIS_
DWRITE_FONT_WEIGHT weight,
DWRITE_FONT_STRETCH stretch,
DWRITE_FONT_STYLE style,
IDWriteFontList **matchingFonts) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
#define IDWriteFontFamily_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
#define IDWriteFontFamily_GetFontCount() (This)->lpVtbl->GetFontCount(This)
#define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
#define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,matchingFont) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,matchingFont)
#define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,matchingFonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,matchingFonts)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFile
DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFile methods */
STDMETHOD(GetReferenceKey)(THIS_
void const **fontFileReferenceKey,
UINT32 *fontFileReferenceKeySize) PURE;
STDMETHOD(GetLoader)(THIS_
IDWriteFontFileLoader **fontFileLoader) PURE;
STDMETHOD(Analyze)(THIS_
WINBOOL *isSupportedFontType,
DWRITE_FONT_FILE_TYPE *fontFileType,
DWRITE_FONT_FACE_TYPE *fontFaceType,
UINT32 *numberOfFaces) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFile_Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) (This)->lpVtbl->Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces)
#define IDWriteFontFile_GetLoader(This,fontFileLoader) (This)->lpVtbl->GetLoader(This,fontFileLoader)
#define IDWriteFontFile_GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) (This)->lpVtbl->GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFileLoader
DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFileLoader methods */
STDMETHOD(CreateStreamFromKey)(
void const *fontFileReferenceKey,
UINT32 fontFileReferenceKeySize,
IDWriteFontFileStream **fontFileStream) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFileStream
DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFileStream methods */
STDMETHOD(ReadFileFragment)(THIS_
void const **fragmentStart,
UINT64 fileOffset,
UINT64 fragmentSize,
void** fragmentContext) PURE;
STDMETHOD_(void, ReleaseFileFragment)(THIS_
void *fragmentContext) PURE;
STDMETHOD(GetFileSize)(THIS_
UINT64 *fileSize) PURE;
STDMETHOD(GetLastWriteTime)(THIS_
UINT64 *lastWriteTime) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFileStream_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
#define IDWriteFontFileStream_GetLastWriteTime(This,lastWriteTime) (This)->lpVtbl->GetLastWriteTime(This,lastWriteTime)
#define IDWriteFontFileStream_ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) (This)->lpVtbl->ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext)
#define IDWriteFontFileStream_ReleaseFileFragment(This,fragmentContext) (This)->lpVtbl->ReleaseFileFragment(This,fragmentContext)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontCollectionLoader
DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontCollectionLoader methods */
STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32 collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteFontFileEnumerator
DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFileEnumerator methods */
STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteFontFileEnumerator_GetCurrentFontFile(This,fontFile) (This)->lpVtbl->GetCurrentFontFile(This,fontFile)
#define IDWriteFontFileEnumerator_MoveNext(This,hasCurrentFile) (This)->lpVtbl->MoveNext(This,hasCurrentFile)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteGdiInterop
DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteGdiInterop methods */
STDMETHOD(CreateFontFromLOGFONT)(THIS_
LOGFONTW const *logFont,
IDWriteFont **font) PURE;
STDMETHOD(ConvertFontToLOGFONT)(THIS_
IDWriteFont *font,
LOGFONTW *logFont,
WINBOOL *isSystemFont) PURE;
STDMETHOD(ConvertFontFaceToLOGFONT)(THIS_
IDWriteFontFace *font,
LOGFONTW *logFont) PURE;
STDMETHOD(CreateFontFaceFromHdc)(THIS_
HDC hdc,
IDWriteFontFace **fontFace) PURE;
STDMETHOD(CreateBitmapRenderTarget)(THIS_
HDC hdc,
UINT32 width,
UINT32 height,
IDWriteBitmapRenderTarget **renderTarget) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logFont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logFont)
#define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logFont,isSystemFont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logFont,isSystemFont)
#define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,renderTarget)
#define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontFace) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontFace)
#define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logFont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logFont,font)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteGlyphRunAnalysis
DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteGlyphRunAnalysis methods */
STDMETHOD(GetAlphaTextureBounds)(THIS_
DWRITE_TEXTURE_TYPE textureType,
RECT *textureBounds) PURE;
STDMETHOD(CreateAlphaTexture)(THIS_
DWRITE_TEXTURE_TYPE textureType,
RECT const *textureBounds,
BYTE *alphaValues,
UINT32 bufferSize) PURE;
STDMETHOD(GetAlphaBlendParams)(THIS_
IDWriteRenderingParams *renderingParams,
FLOAT *blendGamma,
FLOAT *blendEnhancedContrast,
FLOAT *blendClearTypeLevel) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize)
#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel)
#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,textureType,textureBounds) (This)->lpVtbl->GetAlphaTextureBounds(This,textureType,textureBounds)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteInlineObject
DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteInlineObject methods */
STDMETHOD(Draw)(THIS_
void *clientDrawingContext,
IDWriteTextRenderer *renderer,
FLOAT originX,
FLOAT originY,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IUnknown *clientDrawingEffect) PURE;
STDMETHOD(GetMetrics)(THIS_
DWRITE_INLINE_OBJECT_METRICS *metrics) PURE;
STDMETHOD(GetOverhangMetrics)(THIS_
DWRITE_OVERHANG_METRICS *overhangs) PURE;
STDMETHOD(GetBreakConditions)(THIS_
DWRITE_BREAK_CONDITION *breakConditionBefore,
DWRITE_BREAK_CONDITION *breakConditionAfter) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteInlineObject_Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect)
#define IDWriteInlineObject_GetBreakConditions(This,breakConditionBefore,breakConditionAfter) (This)->lpVtbl->GetBreakConditions(This,breakConditionBefore,breakConditionAfter)
#define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
#define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteLocalFontFileLoader
DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteLocalFontFileLoader methods */
STDMETHOD_(HRESULT,GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE;
STDMETHOD_(HRESULT,GetFilePathFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,WCHAR *filePath,UINT32 filePathSize) PURE;
STDMETHOD_(HRESULT,GetLastWriteTimeFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,FILETIME *lastWriteTime) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) (This)->lpVtbl->GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength)
#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) (This)->lpVtbl->GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize)
#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteLocalizedStrings
DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteLocalizedStrings methods */
STDMETHOD_(UINT32, GetCount)(THIS) PURE;
STDMETHOD(FindLocaleName)(THIS_
WCHAR const *localeName,
UINT32 *index,
WINBOOL *exists) PURE;
STDMETHOD(GetLocaleNameLength)(THIS_
UINT32 index,
UINT32 *length) PURE;
STDMETHOD(GetLocaleName)(THIS_
UINT32 index,
WCHAR *localeName,
UINT32 size) PURE;
STDMETHOD(GetStringLength)(THIS_
UINT32 index,
UINT32 *length) PURE;
STDMETHOD(GetString)(THIS_
UINT32 index,
WCHAR *stringBuffer,
UINT32 size) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteLocalizedStrings_FindLocaleName(This,localeName,index,exists) (This)->lpVtbl->FindLocaleName(This,localeName,index,exists)
#define IDWriteLocalizedStrings_GetCount() (This)->lpVtbl->GetCount(This)
#define IDWriteLocalizedStrings_GetLocaleName(This,index,localeName,size) (This)->lpVtbl->GetLocaleName(This,index,localeName,size)
#define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
#define IDWriteLocalizedStrings_GetString(This,index,stringBuffer,size) (This)->lpVtbl->GetString(This,index,stringBuffer,size)
#define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteNumberSubstitution
DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteNumberSubstitution methods */
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWritePixelSnapping
DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWritePixelSnapping methods */
STDMETHOD(IsPixelSnappingDisabled)(THIS_
void *clientDrawingContext,
WINBOOL *isDisabled) PURE;
STDMETHOD(GetCurrentTransform)(THIS_
void *clientDrawingContext,
DWRITE_MATRIX *transform) PURE;
STDMETHOD(GetPixelsPerDip)(THIS_
void *clientDrawingContext,
FLOAT *pixelsPerDip) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This)
#define IDWritePixelSnapping_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform)
#define IDWritePixelSnapping_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip)
#define IDWritePixelSnapping_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteRenderingParams
DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteRenderingParams methods */
STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE;
STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE;
STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE;
STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteRenderingParams_GetClearTypeLevel() (This)->lpVtbl->GetClearTypeLevel(This)
#define IDWriteRenderingParams_GetEnhancedContrast() (This)->lpVtbl->GetEnhancedContrast(This)
#define IDWriteRenderingParams_GetGamma() (This)->lpVtbl->GetGamma(This)
#define IDWriteRenderingParams_GetPixelGeometry() (This)->lpVtbl->GetPixelGeometry(This)
#define IDWriteRenderingParams_GetRenderingMode() (This)->lpVtbl->GetRenderingMode(This)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextAnalysisSink
DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTextAnalysisSink methods */
STDMETHOD(SetScriptAnalysis)(
UINT32 textPosition,
UINT32 textLength,
DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis) PURE;
STDMETHOD(SetLineBreakpoints)(
UINT32 textPosition,
UINT32 textLength,
DWRITE_LINE_BREAKPOINT const *lineBreakpoints) PURE;
STDMETHOD(SetBidiLevel)(
UINT32 textPosition,
UINT32 textLength,
UINT8 explicitLevel,
UINT8 resolvedLevel) PURE;
STDMETHOD(SetNumberSubstitution)(
UINT32 textPosition,
UINT32 textLength,
IDWriteNumberSubstitution *numberSubstitution) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextAnalysisSink_SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel)
#define IDWriteTextAnalysisSink_SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) (This)->lpVtbl->SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints)
#define IDWriteTextAnalysisSink_SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->SetNumberSubstitution(This,textPosition,textLength,numberSubstitution)
#define IDWriteTextAnalysisSink_SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) (This)->lpVtbl->SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextAnalysisSource
DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTextAnalysisSource methods */
STDMETHOD(GetTextAtPosition)(THIS_
UINT32 textPosition,
WCHAR const **textString,
UINT32 *textLength) PURE;
STDMETHOD(GetTextBeforePosition)(THIS_
UINT32 textPosition,
WCHAR const **textString,
UINT32 *textLength) PURE;
STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)(THIS) PURE;
STDMETHOD(GetLocaleName)(THIS_
UINT32 textPosition,
UINT32 *textLength,
WCHAR const **localeName) PURE;
STDMETHOD(GetNumberSubstitution)(THIS_
UINT32 textPosition,
UINT32 *textLength,
IDWriteNumberSubstitution **numberSubstitution) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextAnalysisSource_GetLocaleName(This,textPosition,textLength,localeName) (This)->lpVtbl->GetLocaleName(This,textPosition,textLength,localeName)
#define IDWriteTextAnalysisSource_GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->GetNumberSubstitution(This,textPosition,textLength,numberSubstitution)
#define IDWriteTextAnalysisSource_GetParagraphReadingDirection() (This)->lpVtbl->GetParagraphReadingDirection(This)
#define IDWriteTextAnalysisSource_GetTextAtPosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextAtPosition(This,textPosition,textString,textLength)
#define IDWriteTextAnalysisSource_GetTextBeforePosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextBeforePosition(This,textPosition,textString,textLength)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextAnalyzer
DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTextAnalyzer methods */
STDMETHOD(AnalyzeScript)(THIS_
IDWriteTextAnalysisSource* analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink *analysisSink) PURE;
STDMETHOD(AnalyzeBidi)(THIS_
IDWriteTextAnalysisSource *analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink *analysisSink) PURE;
STDMETHOD(AnalyzeNumberSubstitution)(THIS_
IDWriteTextAnalysisSource *analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink *analysisSink) PURE;
STDMETHOD(AnalyzeLineBreakpoints)(THIS_
IDWriteTextAnalysisSource *analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink *analysisSink) PURE;
STDMETHOD(GetGlyphs)(THIS_
WCHAR const *textString,
UINT32 textLength,
IDWriteFontFace *fontFace,
WINBOOL isSideways,
WINBOOL isRightToLeft,
DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
WCHAR const *localeName,
IDWriteNumberSubstitution *numberSubstitution,
DWRITE_TYPOGRAPHIC_FEATURES const **features,
UINT32 const *featureRangeLengths,
UINT32 featureRanges,
UINT32 maxGlyphCount,
UINT16 *clusterMap,
DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
UINT16 *glyphIndices,
DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps,
UINT32 *actualGlyphCount) PURE;
STDMETHOD(GetGlyphPlacements)(THIS_
WCHAR const *textString,
UINT16 const *clusterMap,
DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
UINT32 textLength,
UINT16 const *glyphIndices,
DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
UINT32 glyphCount,
IDWriteFontFace *fontFace,
FLOAT fontEmSize,
WINBOOL isSideways,
WINBOOL isRightToLeft,
DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
WCHAR const *localeName,
DWRITE_TYPOGRAPHIC_FEATURES const **features,
UINT32 const *featureRangeLengths,
UINT32 featureRanges,
FLOAT *glyphAdvances,
DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
STDMETHOD(GetGdiCompatibleGlyphPlacements)(THIS_
WCHAR const *textString,
UINT16 const *clusterMap,
DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
UINT32 textLength,
UINT16 const *glyphIndices,
DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
UINT32 glyphCount,
IDWriteFontFace *fontFace,
FLOAT fontEmSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
WINBOOL isSideways,
WINBOOL isRightToLeft,
DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
WCHAR const *localeName,
DWRITE_TYPOGRAPHIC_FEATURES const **features,
UINT32 const *featureRangeLengths,
UINT32 featureRanges,
FLOAT *glyphAdvances,
DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextAnalyzer_AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink)
#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink)
#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink)
#define IDWriteTextAnalyzer_AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink)
#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets)
#define IDWriteTextAnalyzer_GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets)
#define IDWriteTextAnalyzer_GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount) (This)->lpVtbl->GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextFormat
DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTextFormat methods */
STDMETHOD(SetTextAlignment)(THIS_
DWRITE_TEXT_ALIGNMENT textAlignment) PURE;
STDMETHOD(SetParagraphAlignment)(THIS_
DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE;
STDMETHOD(SetWordWrapping)(THIS_
DWRITE_WORD_WRAPPING wordWrapping) PURE;
STDMETHOD(SetReadingDirection)(THIS_
DWRITE_READING_DIRECTION readingDirection) PURE;
STDMETHOD(SetFlowDirection)(THIS_
DWRITE_FLOW_DIRECTION flowDirection) PURE;
STDMETHOD(SetIncrementalTabStop)(THIS_
FLOAT incrementalTabStop) PURE;
STDMETHOD(SetTrimming)(THIS_
DWRITE_TRIMMING const *trimmingOptions,
IDWriteInlineObject *trimmingSign) PURE;
STDMETHOD(SetLineSpacing)(THIS_
DWRITE_LINE_SPACING_METHOD lineSpacingMethod,
FLOAT lineSpacing,
FLOAT baseline) PURE;
STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE;
STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE;
STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE;
STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE;
STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE;
STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE;
STDMETHOD(GetTrimming)(THIS_
DWRITE_TRIMMING* trimmingOptions,
IDWriteInlineObject **trimmingSign) PURE;
STDMETHOD(GetLineSpacing)(THIS_
DWRITE_LINE_SPACING_METHOD *lineSpacingMethod,
FLOAT *lineSpacing,
FLOAT *baseline) PURE;
STDMETHOD(GetFontCollection)(THIS_
IDWriteFontCollection **fontCollection) PURE;
STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE;
STDMETHOD(GetFontFamilyName)(THIS_
WCHAR *fontFamilyName,
UINT32 nameSize) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE;
STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE;
STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE;
STDMETHOD(GetLocaleName)(THIS_
WCHAR *localeName,
UINT32 nameSize) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextFormat_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This)
#define IDWriteTextFormat_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
#define IDWriteTextFormat_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize)
#define IDWriteTextFormat_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This)
#define IDWriteTextFormat_GetFontSize() (This)->lpVtbl->GetFontSize(This)
#define IDWriteTextFormat_GetFontStretch() (This)->lpVtbl->GetFontStretch(This)
#define IDWriteTextFormat_GetFontStyle() (This)->lpVtbl->GetFontStyle(This)
#define IDWriteTextFormat_GetFontWeight() (This)->lpVtbl->GetFontWeight(This)
#define IDWriteTextFormat_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This)
#define IDWriteTextFormat_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
#define IDWriteTextFormat_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize)
#define IDWriteTextFormat_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This)
#define IDWriteTextFormat_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This)
#define IDWriteTextFormat_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This)
#define IDWriteTextFormat_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This)
#define IDWriteTextFormat_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign)
#define IDWriteTextFormat_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This)
#define IDWriteTextFormat_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection)
#define IDWriteTextFormat_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop)
#define IDWriteTextFormat_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
#define IDWriteTextFormat_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment)
#define IDWriteTextFormat_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection)
#define IDWriteTextFormat_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment)
#define IDWriteTextFormat_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign)
#define IDWriteTextFormat_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextLayout
DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTextFormat methods */
STDMETHOD(SetTextAlignment)(THIS_
DWRITE_TEXT_ALIGNMENT textAlignment) PURE;
STDMETHOD(SetParagraphAlignment)(THIS_
DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE;
STDMETHOD(SetWordWrapping)(THIS_
DWRITE_WORD_WRAPPING wordWrapping) PURE;
STDMETHOD(SetReadingDirection)(THIS_
DWRITE_READING_DIRECTION readingDirection) PURE;
STDMETHOD(SetFlowDirection)(THIS_
DWRITE_FLOW_DIRECTION flowDirection) PURE;
STDMETHOD(SetIncrementalTabStop)(THIS_
FLOAT incrementalTabStop) PURE;
STDMETHOD(SetTrimming)(THIS_
DWRITE_TRIMMING const *trimmingOptions,
IDWriteInlineObject *trimmingSign) PURE;
STDMETHOD(SetLineSpacing)(THIS_
DWRITE_LINE_SPACING_METHOD lineSpacingMethod,
FLOAT lineSpacing,
FLOAT baseline) PURE;
STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE;
STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE;
STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE;
STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE;
STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE;
STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE;
STDMETHOD(GetTrimming)(THIS_
DWRITE_TRIMMING* trimmingOptions,
IDWriteInlineObject **trimmingSign) PURE;
STDMETHOD(GetLineSpacing)(THIS_
DWRITE_LINE_SPACING_METHOD *lineSpacingMethod,
FLOAT *lineSpacing,
FLOAT *baseline) PURE;
STDMETHOD(GetFontCollection)(THIS_
IDWriteFontCollection **fontCollection) PURE;
STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE;
STDMETHOD(GetFontFamilyName)(THIS_
WCHAR *fontFamilyName,
UINT32 nameSize) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE;
STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE;
STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE;
STDMETHOD(GetLocaleName)(THIS_
WCHAR *localeName,
UINT32 nameSize) PURE;
/* IDWriteTextLayout methods */
STDMETHOD(SetMaxWidth)(THIS_
FLOAT maxWidth) PURE;
STDMETHOD(SetMaxHeight)(THIS_
FLOAT maxHeight) PURE;
STDMETHOD(SetFontCollection)(THIS_
IDWriteFontCollection *fontCollection,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetFontFamilyName)(THIS_
WCHAR const *fontFamilyName,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetFontWeight)(THIS_
DWRITE_FONT_WEIGHT fontWeight,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetFontStyle)(THIS_
DWRITE_FONT_STYLE fontStyle,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetFontStretch)(THIS_
DWRITE_FONT_STRETCH fontStretch,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetFontSize)(THIS_
FLOAT fontSize,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetUnderline)(THIS_
WINBOOL hasUnderline,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetStrikethrough)(THIS_
WINBOOL hasStrikethrough,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetDrawingEffect)(THIS_
IUnknown *drawingEffect,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetInlineObject)(THIS_
IDWriteInlineObject *inlineObject,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetTypography)(THIS_
IDWriteTypography *typography,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(SetLocaleName)(THIS_
WCHAR const *localeName,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD_(FLOAT, GetMaxWidth)(THIS) PURE;
STDMETHOD_(FLOAT, GetMaxHeight)(THIS) PURE;
STDMETHOD(GetFontCollection)(THIS_
UINT32 currentPosition,
IDWriteFontCollection** fontCollection,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontFamilyNameLength)(THIS_
UINT32 currentPosition,
UINT32 *nameLength,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontFamilyName)(THIS_
UINT32 currentPosition,
WCHAR *fontFamilyName,
UINT32 nameSize,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontWeight)(THIS_
UINT32 currentPosition,
DWRITE_FONT_WEIGHT *fontWeight,
DWRITE_TEXT_RANGE* textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontStyle)(THIS_
UINT32 currentPosition,
DWRITE_FONT_STYLE *fontStyle,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontStretch)(THIS_
UINT32 currentPosition,
DWRITE_FONT_STRETCH* fontStretch,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetFontSize)(THIS_
UINT32 currentPosition,
FLOAT *fontSize,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetUnderline)(THIS_
UINT32 currentPosition,
WINBOOL *hasUnderline,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetStrikethrough)(THIS_
UINT32 currentPosition,
WINBOOL *hasStrikethrough,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetDrawingEffect)(THIS_
UINT32 currentPosition,
IUnknown **drawingEffect,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetInlineObject)(THIS_
UINT32 currentPosition,
IDWriteInlineObject **inlineObject,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetTypography)(THIS_
UINT32 currentPosition,
IDWriteTypography **typography,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetLocaleNameLength)(THIS_
UINT32 currentPosition,
UINT32 *nameLength,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(GetLocaleName)(THIS_
UINT32 currentPosition,
WCHAR *localeName,
UINT32 nameSize,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(Draw)(THIS_
void *clientDrawingContext,
IDWriteTextRenderer *renderer,
FLOAT originX,
FLOAT originY) PURE;
STDMETHOD(GetLineMetrics)(THIS_
DWRITE_LINE_METRICS *lineMetrics,
UINT32 maxLineCount,
UINT32 *actualLineCount) PURE;
STDMETHOD(GetMetrics)(THIS_
DWRITE_TEXT_METRICS *textMetrics) PURE;
STDMETHOD(GetOverhangMetrics)(THIS_
DWRITE_OVERHANG_METRICS *overhangs) PURE;
STDMETHOD(GetClusterMetrics)(THIS_
DWRITE_CLUSTER_METRICS *clusterMetrics,
UINT32 maxClusterCount,
UINT32 *actualClusterCount) PURE;
STDMETHOD(DetermineMinWidth)(THIS_
FLOAT *minWidth) PURE;
STDMETHOD(HitTestPoint)(THIS_
FLOAT pointX,
FLOAT pointY,
WINBOOL *isTrailingHit,
WINBOOL *isInside,
DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
STDMETHOD(HitTestTextPosition)(THIS_
UINT32 textPosition,
WINBOOL isTrailingHit,
FLOAT *pointX,
FLOAT *pointY,
DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
STDMETHOD(HitTestTextRange)(THIS_
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
DWRITE_HIT_TEST_METRICS *hitTestMetrics,
UINT32 maxHitTestMetricsCount,
UINT32 *actualHitTestMetricsCount) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextLayout_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This)
#define IDWriteTextLayout_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
#define IDWriteTextLayout_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize)
#define IDWriteTextLayout_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This)
#define IDWriteTextLayout_GetFontSize() (This)->lpVtbl->GetFontSize(This)
#define IDWriteTextLayout_GetFontStretch() (This)->lpVtbl->GetFontStretch(This)
#define IDWriteTextLayout_GetFontStyle() (This)->lpVtbl->GetFontStyle(This)
#define IDWriteTextLayout_GetFontWeight() (This)->lpVtbl->GetFontWeight(This)
#define IDWriteTextLayout_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This)
#define IDWriteTextLayout_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
#define IDWriteTextLayout_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize)
#define IDWriteTextLayout_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This)
#define IDWriteTextLayout_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This)
#define IDWriteTextLayout_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This)
#define IDWriteTextLayout_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This)
#define IDWriteTextLayout_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign)
#define IDWriteTextLayout_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This)
#define IDWriteTextLayout_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection)
#define IDWriteTextLayout_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop)
#define IDWriteTextLayout_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
#define IDWriteTextLayout_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment)
#define IDWriteTextLayout_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection)
#define IDWriteTextLayout_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment)
#define IDWriteTextLayout_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign)
#define IDWriteTextLayout_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping)
#define IDWriteTextLayout_Draw(This,clientDrawingContext,renderer,originX,originY) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY)
#define IDWriteTextLayout_GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) (This)->lpVtbl->GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount)
#define IDWriteTextLayout_DetermineMinWidth(This,minWidth) (This)->lpVtbl->DetermineMinWidth(This,minWidth)
#define IDWriteTextLayout_GetDrawingEffect(This,currentPosition,drawingEffect,textRange) (This)->lpVtbl->GetDrawingEffect(This,currentPosition,drawingEffect,textRange)
#define IDWriteTextLayout_GetFontCollection(This,currentPosition,fontCollection,textRange) (This)->lpVtbl->GetFontCollection(This,currentPosition,fontCollection,textRange)
#define IDWriteTextLayout_GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) (This)->lpVtbl->GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange)
#define IDWriteTextLayout_GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetFontFamilyNameLength(This,currentPosition,nameLength,textRange)
#define IDWriteTextLayout_GetFontSize(This,currentPosition,fontSize,textRange) (This)->lpVtbl->GetFontSize(This,currentPosition,fontSize,textRange)
#define IDWriteTextLayout_GetFontStretch(This,currentPosition,fontStretch,textRange) (This)->lpVtbl->GetFontStretch(This,currentPosition,fontStretch,textRange)
#define IDWriteTextLayout_GetFontStyle(This,currentPosition,fontStyle,textRange) (This)->lpVtbl->GetFontStyle(This,currentPosition,fontStyle,textRange)
#define IDWriteTextLayout_GetFontWeight(This,currentPosition,fontWeight,textRange) (This)->lpVtbl->GetFontWeight(This,currentPosition,fontWeight,textRange)
#define IDWriteTextLayout_GetInlineObject(This,currentPosition,inlineObject,textRange) (This)->lpVtbl->GetInlineObject(This,currentPosition,inlineObject,textRange)
#define IDWriteTextLayout_GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) (This)->lpVtbl->GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount)
#define IDWriteTextLayout_GetLocaleName(This,currentPosition,localeName,nameSize,textRange) (This)->lpVtbl->GetLocaleName(This,currentPosition,localeName,nameSize,textRange)
#define IDWriteTextLayout_GetLocaleNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetLocaleNameLength(This,currentPosition,nameLength,textRange)
#define IDWriteTextLayout_GetMaxHeight() (This)->lpVtbl->GetMaxHeight(This)
#define IDWriteTextLayout_GetMaxWidth() (This)->lpVtbl->GetMaxWidth(This)
#define IDWriteTextLayout_GetMetrics(This,textMetrics) (This)->lpVtbl->GetMetrics(This,textMetrics)
#define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
#define IDWriteTextLayout_GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) (This)->lpVtbl->GetStrikethrough(This,currentPosition,hasStrikethrough,textRange)
#define IDWriteTextLayout_GetTypography(This,currentPosition,typography,textRange) (This)->lpVtbl->GetTypography(This,currentPosition,typography,textRange)
#define IDWriteTextLayout_GetUnderline(This,currentPosition,hasUnderline,textRange) (This)->lpVtbl->GetUnderline(This,currentPosition,hasUnderline,textRange)
#define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics)
#define IDWriteTextLayout_HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics)
#define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount)
#define IDWriteTextLayout_SetDrawingEffect(This,drawingEffect,textRange) (This)->lpVtbl->SetDrawingEffect(This,drawingEffect,textRange)
#define IDWriteTextLayout_SetFontCollection(This,fontCollection,textRange) (This)->lpVtbl->SetFontCollection(This,fontCollection,textRange)
#define IDWriteTextLayout_SetFontFamilyName(This,fontFamilyName,textRange) (This)->lpVtbl->SetFontFamilyName(This,fontFamilyName,textRange)
#define IDWriteTextLayout_SetFontSize(This,fontSize,textRange) (This)->lpVtbl->SetFontSize(This,fontSize,textRange)
#define IDWriteTextLayout_SetFontStretch(This,fontStretch,textRange) (This)->lpVtbl->SetFontStretch(This,fontStretch,textRange)
#define IDWriteTextLayout_SetFontStyle(This,fontStyle,textRange) (This)->lpVtbl->SetFontStyle(This,fontStyle,textRange)
#define IDWriteTextLayout_SetFontWeight(This,fontWeight,textRange) (This)->lpVtbl->SetFontWeight(This,fontWeight,textRange)
#define IDWriteTextLayout_SetInlineObject(This,inlineObject,textRange) (This)->lpVtbl->SetInlineObject(This,inlineObject,textRange)
#define IDWriteTextLayout_SetLocaleName(This,localeName,textRange) (This)->lpVtbl->SetLocaleName(This,localeName,textRange)
#define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
#define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
#define IDWriteTextLayout_SetStrikethrough(This,hasStrikethrough,textRange) (This)->lpVtbl->SetStrikethrough(This,hasStrikethrough,textRange)
#define IDWriteTextLayout_SetTypography(This,typography,textRange) (This)->lpVtbl->SetTypography(This,typography,textRange)
#define IDWriteTextLayout_SetUnderline(This,hasUnderline,textRange) (This)->lpVtbl->SetUnderline(This,hasUnderline,textRange)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTextRenderer
DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWritePixelSnapping methods */
STDMETHOD(IsPixelSnappingDisabled)(THIS_
void *clientDrawingContext,
WINBOOL *isDisabled) PURE;
STDMETHOD(GetCurrentTransform)(THIS_
void *clientDrawingContext,
DWRITE_MATRIX *transform) PURE;
STDMETHOD(GetPixelsPerDip)(THIS_
void *clientDrawingContext,
FLOAT *pixelsPerDip) PURE;
/* IDWriteTextRenderer methods */
STDMETHOD(DrawGlyphRun)(THIS_
void *clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_MEASURING_MODE measuringMode,
DWRITE_GLYPH_RUN const *glyphRun,
DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription,
IUnknown* clientDrawingEffect) PURE;
STDMETHOD(DrawUnderline)(THIS_
void *clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_UNDERLINE const *underline,
IUnknown *clientDrawingEffect) PURE;
STDMETHOD(DrawStrikethrough)(THIS_
void *clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_STRIKETHROUGH const *strikethrough,
IUnknown* clientDrawingEffect) PURE;
STDMETHOD(DrawInlineObject)(
void *clientDrawingContext,
FLOAT originX,
FLOAT originY,
IDWriteInlineObject *inlineObject,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IUnknown *clientDrawingEffect) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTextRenderer_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform)
#define IDWriteTextRenderer_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip)
#define IDWriteTextRenderer_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled)
#define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTextRenderer_DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) (This)->lpVtbl->DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect)
#define IDWriteTextRenderer_DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect)
#define IDWriteTextRenderer_DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) (This)->lpVtbl->DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect)
#define IDWriteTextRenderer_DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) (This)->lpVtbl->DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect)
#endif /*COBJMACROS*/
#undef INTERFACE
#define INTERFACE IDWriteTypography
DECLARE_INTERFACE_(IDWriteTypography,IUnknown)
{
BEGIN_INTERFACE
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteTypography methods */
STDMETHOD_(HRESULT,AddFontFeature)(THIS_ DWRITE_FONT_FEATURE fontFeature) PURE;
STDMETHOD_(HRESULT,GetFontFeature)(THIS_ UINT32 fontFeatureIndex,DWRITE_FONT_FEATURE * fontFeature) PURE;
STDMETHOD_(UINT32,GetFontFeatureCount)(THIS) PURE;
END_INTERFACE
};
#ifdef COBJMACROS
#define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This)
#define IDWriteTypography_AddFontFeature(This,fontFeature) (This)->lpVtbl->AddFontFeature(This,fontFeature)
#define IDWriteTypography_GetFontFeature(This,fontFeatureIndex,fontFeature) (This)->lpVtbl->GetFontFeature(This,fontFeatureIndex,fontFeature)
#define IDWriteTypography_GetFontFeatureCount() (This)->lpVtbl->GetFontFeatureCount(This)
#endif /*COBJMACROS*/
#ifdef __cplusplus
extern "C" {
#endif
DWRITEAPI HRESULT WINAPI DWriteCreateFactory(
DWRITE_FACTORY_TYPE factoryType,
REFIID iid,
IUnknown **factory
);
#ifdef __cplusplus
}
#endif
__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3,0x8dff,0x4773,0x9f,0xf6,0x06,0x96,0xea,0xb7,0x72,0x67);
__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48);
__CRT_UUID_DECL(IDWriteFont, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x37);
__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02,0x3eea,0x4eee,0xa8,0x27,0x87,0xc1,0xa0,0x2a,0x0f,0xcc);
__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d,0x7024,0x4d43,0xbf,0xa9,0xd2,0x59,0x84,0xf5,0x38,0x49);
__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438,0x1d97,0x4ec1,0xae,0xf9,0xa2,0xfb,0x86,0xed,0x6a,0xcb);
__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef,0x812a,0x4c43,0x98,0x02,0x62,0xec,0x4a,0xbd,0x7a,0xdd);
__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a,0xcef5,0x47dc,0x87,0x69,0x1a,0x8b,0x41,0xbe,0xbb,0xb0);
__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e,0xd6af,0x4c9e,0x8a,0x08,0xd6,0x95,0xb1,0x1c,0xaa,0x49);
__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe,0x0ab8,0x4d91,0x8f,0x62,0x5d,0xd6,0xbe,0x34,0xa3,0xe0);
__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491,0x9853,0x4299,0x89,0x8f,0x64,0x32,0x98,0x3b,0x6f,0x3a);
__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7,0xe085,0x42d4,0x81,0xe3,0x6a,0x88,0x3b,0xde,0xd1,0x18);
__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209,0x099a,0x4b34,0xb8,0x6d,0xc2,0x2b,0x11,0x0e,0x77,0x71);
__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a,0x2add,0x47cd,0x82,0xee,0xd9,0xec,0x34,0x68,0x8e,0x75);
__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44,0x0ca0,0x4701,0xb3,0xfa,0xbe,0xc5,0x18,0x2a,0xe4,0xf6);
__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58,0x5094,0x47c8,0xad,0xc8,0xfb,0xce,0xa6,0x0a,0xe9,0x2b);
__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e,0x7f46,0x43b4,0x84,0xb3,0xe4,0xe6,0x24,0x9c,0x36,0x5d);
__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da,0xecf4,0x4d24,0xb6,0x44,0xb3,0x4f,0x68,0x42,0x02,0x4b);
__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa0,0x72,0x4e,0xb8,0x19);
__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3,0x106f,0x47ab,0x83,0x73,0x1c,0x62,0x95,0xeb,0x10,0xb3);
__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818,0x31d7,0x4fd3,0xa1,0x51,0x7c,0x5e,0x22,0x5d,0xb5,0x5a);
__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037,0x6d14,0x410b,0x9b,0xfe,0x0b,0x18,0x2b,0xb7,0x09,0x61);
#define IDWriteFontFileEnumerator __MINGW_POISON_NAME(IDWriteFontFileEnumerator)
#define IDWriteLocalFontFileLoader __MINGW_POISON_NAME(IDWriteLocalFontFileLoader)
#define IDWriteTypography __MINGW_POISON_NAME(IDWriteTypography)
#endif /* __INC_DWRITE__ */