1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef __INC_DWRITE__ 7#define __INC_DWRITE__ 8 9#define DWRITEAPI DECLSPEC_IMPORT 10 11#ifdef __MINGW_USE_BROKEN_INTERFACE 12#define __MINGW_POISON_NAME(__IFACE) __IFACE 13#else 14#define __MINGW_POISON_NAME(__IFACE)\ 15 __IFACE##_layout_has_not_been_verified_and_its_declaration_is_most_likely_incorrect 16#endif 17 18#include <unknwn.h> 19 20#ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__ 21#define __IDWriteBitmapRenderTarget_FWD_DEFINED__ 22typedef struct IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; 23#endif 24 25#ifndef __IDWriteFactory_FWD_DEFINED__ 26#define __IDWriteFactory_FWD_DEFINED__ 27typedef struct IDWriteFactory IDWriteFactory; 28#endif 29 30#ifndef __IDWriteFont_FWD_DEFINED__ 31#define __IDWriteFont_FWD_DEFINED__ 32typedef struct IDWriteFont IDWriteFont; 33#endif 34 35#ifndef __IDWriteFontCollection_FWD_DEFINED__ 36#define __IDWriteFontCollection_FWD_DEFINED__ 37typedef struct IDWriteFontCollection IDWriteFontCollection; 38#endif 39 40#ifndef __IDWriteFontFace_FWD_DEFINED__ 41#define __IDWriteFontFace_FWD_DEFINED__ 42typedef struct IDWriteFontFace IDWriteFontFace; 43#endif 44 45#ifndef __IDWriteFontFamily_FWD_DEFINED__ 46#define __IDWriteFontFamily_FWD_DEFINED__ 47typedef struct IDWriteFontFamily IDWriteFontFamily; 48#endif 49 50#ifndef __IDWriteFontList_FWD_DEFINED__ 51#define __IDWriteFontList_FWD_DEFINED__ 52typedef struct IDWriteFontList IDWriteFontList; 53#endif 54 55#ifndef __IDWriteFontFile_FWD_DEFINED__ 56#define __IDWriteFontFile_FWD_DEFINED__ 57typedef struct IDWriteFontFile IDWriteFontFile; 58#endif 59 60#ifndef __IDWriteFontFileLoader_FWD_DEFINED__ 61#define __IDWriteFontFileLoader_FWD_DEFINED__ 62typedef struct IDWriteFontFileLoader IDWriteFontFileLoader; 63#endif 64 65#ifndef __IDWriteFontFileStream_FWD_DEFINED__ 66#define __IDWriteFontFileStream_FWD_DEFINED__ 67typedef struct IDWriteFontFileStream IDWriteFontFileStream; 68#endif 69 70#ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ 71#define __IDWriteFontCollectionLoader_FWD_DEFINED__ 72typedef struct IDWriteFontCollectionLoader IDWriteFontCollectionLoader; 73#endif 74 75#ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ 76#define __IDWriteFontFileEnumerator_FWD_DEFINED__ 77typedef struct IDWriteFontFileEnumerator IDWriteFontFileEnumerator; 78#endif 79 80#ifndef __IDWriteGdiInterop_FWD_DEFINED__ 81#define __IDWriteGdiInterop_FWD_DEFINED__ 82typedef struct IDWriteGdiInterop IDWriteGdiInterop; 83#endif 84 85/* Fixme: MSDN says its a typedef, needs verification */ 86/* http://msdn.microsoft.com/en-us/library/dd756614%28v=VS.85%29.aspx */ 87#ifndef __IDWriteGeometrySink_FWD_DEFINED__ 88#define __IDWriteGeometrySink_FWD_DEFINED__ 89typedef struct ID2D1SimplifiedGeometrySink IDWriteGeometrySink; 90#endif 91 92#ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ 93#define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ 94typedef struct IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; 95#endif 96 97#ifndef __IDWriteInlineObject_FWD_DEFINED__ 98#define __IDWriteInlineObject_FWD_DEFINED__ 99typedef struct IDWriteInlineObject IDWriteInlineObject; 100#endif 101 102#ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ 103#define __IDWriteLocalFontFileLoader_FWD_DEFINED__ 104typedef struct IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; 105#endif 106 107#ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ 108#define __IDWriteLocalizedStrings_FWD_DEFINED__ 109typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings; 110#endif 111 112#ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ 113#define __IDWriteNumberSubstitution_FWD_DEFINED__ 114typedef struct IDWriteNumberSubstitution IDWriteNumberSubstitution; 115#endif 116 117#ifndef __IDWritePixelSnapping_FWD_DEFINED__ 118#define __IDWritePixelSnapping_FWD_DEFINED__ 119typedef struct IDWritePixelSnapping IDWritePixelSnapping; 120#endif 121 122#ifndef __IDWriteRenderingParams_FWD_DEFINED__ 123#define __IDWriteRenderingParams_FWD_DEFINED__ 124typedef struct IDWriteRenderingParams IDWriteRenderingParams; 125#endif 126 127#ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ 128#define __IDWriteTextAnalysisSink_FWD_DEFINED__ 129typedef struct IDWriteTextAnalysisSink IDWriteTextAnalysisSink; 130#endif 131 132#ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ 133#define __IDWriteTextAnalysisSource_FWD_DEFINED__ 134typedef struct IDWriteTextAnalysisSource IDWriteTextAnalysisSource; 135#endif 136 137#ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ 138#define __IDWriteTextAnalyzer_FWD_DEFINED__ 139typedef struct IDWriteTextAnalyzer IDWriteTextAnalyzer; 140#endif 141 142#ifndef __IDWriteTextFormat_FWD_DEFINED__ 143#define __IDWriteTextFormat_FWD_DEFINED__ 144typedef struct IDWriteTextFormat IDWriteTextFormat; 145#endif 146 147#ifndef __IDWriteTextLayout_FWD_DEFINED__ 148#define __IDWriteTextLayout_FWD_DEFINED__ 149typedef struct IDWriteTextLayout IDWriteTextLayout; 150#endif 151 152#ifndef __IDWriteTextRenderer_FWD_DEFINED__ 153#define __IDWriteTextRenderer_FWD_DEFINED__ 154typedef struct IDWriteTextRenderer IDWriteTextRenderer; 155#endif 156 157#ifndef __IDWriteTypography_FWD_DEFINED__ 158#define __IDWriteTypography_FWD_DEFINED__ 159typedef struct IDWriteTypography IDWriteTypography; 160#endif 161 162#include <dcommon.h> 163 164typedef enum DWRITE_INFORMATIONAL_STRING_ID { 165 DWRITE_INFORMATIONAL_STRING_NONE = 0, 166 DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE, 167 DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS, 168 DWRITE_INFORMATIONAL_STRING_TRADEMARK, 169 DWRITE_INFORMATIONAL_STRING_MANUFACTURER, 170 DWRITE_INFORMATIONAL_STRING_DESIGNER, 171 DWRITE_INFORMATIONAL_STRING_DESIGNER_URL, 172 DWRITE_INFORMATIONAL_STRING_DESCRIPTION, 173 DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL, 174 DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION, 175 DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL, 176 DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, 177 DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, 178 DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES, 179 DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, 180 DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT, 181 DWRITE_INFORMATIONAL_STRING_FULL_NAME, 182 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, 183 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME 184} DWRITE_INFORMATIONAL_STRING_ID; 185 186typedef enum DWRITE_BREAK_CONDITION { 187 DWRITE_BREAK_CONDITION_NEUTRAL = 0, 188 DWRITE_BREAK_CONDITION_CAN_BREAK = 1, 189 DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, 190 DWRITE_BREAK_CONDITION_MUST_BREAK = 3 191} DWRITE_BREAK_CONDITION; 192 193typedef enum DWRITE_FACTORY_TYPE { 194 DWRITE_FACTORY_TYPE_SHARED = 0, 195 DWRITE_FACTORY_TYPE_ISOLATED 196} DWRITE_FACTORY_TYPE; 197 198typedef enum DWRITE_FLOW_DIRECTION { 199 DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM 200} DWRITE_FLOW_DIRECTION; 201 202typedef enum DWRITE_FONT_FACE_TYPE { 203 DWRITE_FONT_FACE_TYPE_CFF = 0, 204 DWRITE_FONT_FACE_TYPE_TRUETYPE, 205 DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION, 206 DWRITE_FONT_FACE_TYPE_TYPE1, 207 DWRITE_FONT_FACE_TYPE_VECTOR, 208 DWRITE_FONT_FACE_TYPE_BITMAP, 209 DWRITE_FONT_FACE_TYPE_UNKNOWN 210} DWRITE_FONT_FACE_TYPE; 211 212typedef enum DWRITE_FONT_FEATURE_TAG { 213 DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, 214 DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, 215 DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, 216 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, 217 DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, 218 DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, 219 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, 220 DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, 221 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, 222 DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, 223 DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, 224 DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, 225 DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, 226 DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, 227 DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, 228 DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, 229 DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, 230 DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, 231 DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, 232 DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, 233 DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, 234 DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, 235 DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, 236 DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, 237 DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, 238 DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, 239 DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, 240 DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, 241 DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, 242 DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, 243 DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, 244 DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, 245 DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, 246 DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, 247 DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, 248 DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, 249 DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, 250 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, 251 DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, 252 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, 253 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, 254 DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, 255 DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, 256 DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, 257 DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, 258 DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, 259 DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, 260 DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, 261 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, 262 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, 263 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, 264 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, 265 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, 266 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, 267 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, 268 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, 269 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, 270 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, 271 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, 272 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, 273 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, 274 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, 275 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, 276 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, 277 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, 278 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, 279 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, 280 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, 281 DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, 282 DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, 283 DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, 284 DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, 285 DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, 286 DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, 287 DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, 288 DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, 289 DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, 290 DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a 291} DWRITE_FONT_FEATURE_TAG; 292 293typedef enum DWRITE_FONT_FILE_TYPE { 294 DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, 295 DWRITE_FONT_FILE_TYPE_CFF, 296 DWRITE_FONT_FILE_TYPE_TRUETYPE, 297 DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION, 298 DWRITE_FONT_FILE_TYPE_TYPE1_PFM, 299 DWRITE_FONT_FILE_TYPE_TYPE1_PFB, 300 DWRITE_FONT_FILE_TYPE_VECTOR, 301 DWRITE_FONT_FILE_TYPE_BITMAP 302} DWRITE_FONT_FILE_TYPE; 303 304typedef enum DWRITE_FONT_SIMULATIONS { 305 DWRITE_FONT_SIMULATIONS_NONE = 0x0000, 306 DWRITE_FONT_SIMULATIONS_BOLD = 0x0001, 307 DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002 308} DWRITE_FONT_SIMULATIONS; 309 310#ifdef DEFINE_ENUM_FLAG_OPERATORS 311DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); 312#endif 313 314typedef enum DWRITE_FONT_STRETCH { 315 DWRITE_FONT_STRETCH_UNDEFINED = 0, 316 DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, 317 DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, 318 DWRITE_FONT_STRETCH_CONDENSED = 3, 319 DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, 320 DWRITE_FONT_STRETCH_NORMAL = 5, 321 DWRITE_FONT_STRETCH_MEDIUM = 5, 322 DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, 323 DWRITE_FONT_STRETCH_EXPANDED = 7, 324 DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, 325 DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 326} DWRITE_FONT_STRETCH; 327 328typedef enum DWRITE_FONT_STYLE { 329 DWRITE_FONT_STYLE_NORMAL = 0, 330 DWRITE_FONT_STYLE_OBLIQUE, 331 DWRITE_FONT_STYLE_ITALIC 332} DWRITE_FONT_STYLE; 333 334typedef enum DWRITE_FONT_WEIGHT { 335 DWRITE_FONT_WEIGHT_THIN = 100, 336 DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, 337 DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, 338 DWRITE_FONT_WEIGHT_LIGHT = 300, 339 DWRITE_FONT_WEIGHT_NORMAL = 400, 340 DWRITE_FONT_WEIGHT_REGULAR = 400, 341 DWRITE_FONT_WEIGHT_MEDIUM = 500, 342 DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, 343 DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, 344 DWRITE_FONT_WEIGHT_BOLD = 700, 345 DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, 346 DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, 347 DWRITE_FONT_WEIGHT_BLACK = 900, 348 DWRITE_FONT_WEIGHT_HEAVY = 900, 349 DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, 350 DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 351} DWRITE_FONT_WEIGHT; 352 353typedef enum DWRITE_LINE_SPACING_METHOD { 354 DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, 355 DWRITE_LINE_SPACING_METHOD_UNIFORM 356} DWRITE_LINE_SPACING_METHOD; 357 358typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { 359 DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, 360 DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, 361 DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, 362 DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL, 363 DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL 364} DWRITE_NUMBER_SUBSTITUTION_METHOD; 365 366typedef enum DWRITE_PARAGRAPH_ALIGNMENT { 367 DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, 368 DWRITE_PARAGRAPH_ALIGNMENT_FAR, 369 DWRITE_PARAGRAPH_ALIGNMENT_CENTER 370} DWRITE_PARAGRAPH_ALIGNMENT; 371 372typedef enum DWRITE_PIXEL_GEOMETRY { 373 DWRITE_PIXEL_GEOMETRY_FLAT = 0, 374 DWRITE_PIXEL_GEOMETRY_RGB, 375 DWRITE_PIXEL_GEOMETRY_BGR 376} DWRITE_PIXEL_GEOMETRY; 377 378typedef enum DWRITE_READING_DIRECTION { 379 DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, 380 DWRITE_READING_DIRECTION_RIGHT_TO_LEFT 381} DWRITE_READING_DIRECTION; 382 383typedef enum DWRITE_RENDERING_MODE { 384 DWRITE_RENDERING_MODE_DEFAULT = 0, 385 DWRITE_RENDERING_MODE_ALIASED, 386 DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC, 387 DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL, 388 DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL, 389 DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC, 390 DWRITE_RENDERING_MODE_OUTLINE 391} DWRITE_RENDERING_MODE; 392 393typedef enum DWRITE_SCRIPT_SHAPES { 394 DWRITE_SCRIPT_SHAPES_DEFAULT = 0, 395 DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 396} DWRITE_SCRIPT_SHAPES; 397 398typedef enum DWRITE_TEXT_ALIGNMENT { 399 DWRITE_TEXT_ALIGNMENT_LEADING = 0, 400 DWRITE_TEXT_ALIGNMENT_TRAILING, 401 DWRITE_TEXT_ALIGNMENT_CENTER 402} DWRITE_TEXT_ALIGNMENT; 403 404typedef enum DWRITE_TEXTURE_TYPE { 405 DWRITE_TEXTURE_ALIASED_1x1 = 0, 406 DWRITE_TEXTURE_CLEARTYPE_3x1 407} DWRITE_TEXTURE_TYPE; 408 409typedef enum DWRITE_TRIMMING_GRANULARITY { 410 DWRITE_TRIMMING_GRANULARITY_NONE, 411 DWRITE_TRIMMING_GRANULARITY_CHARACTER, 412 DWRITE_TRIMMING_GRANULARITY_WORD 413} DWRITE_TRIMMING_GRANULARITY; 414 415typedef enum DWRITE_WORD_WRAPPING { 416 DWRITE_WORD_WRAPPING_WRAP, 417 DWRITE_WORD_WRAPPING_NO_WRAP 418} DWRITE_WORD_WRAPPING; 419 420typedef struct _DWRITE_OVERHANG_METRICS { 421 FLOAT left; 422 FLOAT top; 423 FLOAT right; 424 FLOAT bottom; 425} DWRITE_OVERHANG_METRICS, *PDWRITE_OVERHANG_METRICS; 426 427typedef struct DWRITE_CLUSTER_METRICS { 428 FLOAT width; 429 UINT16 length; 430 UINT16 canWrapLineAfter :1; 431 UINT16 isWhitespace :1; 432 UINT16 isNewline :1; 433 UINT16 isSoftHyphen :1; 434 UINT16 isRightToLeft :1; 435 UINT16 padding :11; 436} DWRITE_CLUSTER_METRICS; 437 438typedef struct DWRITE_FONT_FEATURE { 439 DWRITE_FONT_FEATURE_TAG nameTag; 440 UINT32 parameter; 441} DWRITE_FONT_FEATURE; 442 443typedef struct DWRITE_FONT_METRICS { 444 UINT16 designUnitsPerEm; 445 UINT16 ascent; 446 UINT16 descent; 447 INT16 lineGap; 448 UINT16 capHeight; 449 UINT16 xHeight; 450 INT16 underlinePosition; 451 UINT16 underlineThickness; 452 INT16 strikethroughPosition; 453 UINT16 strikethroughThickness; 454} DWRITE_FONT_METRICS; 455 456typedef struct DWRITE_GLYPH_METRICS { 457 INT32 leftSideBearing; 458 UINT32 advanceWidth; 459 INT32 rightSideBearing; 460 INT32 topSideBearing; 461 UINT32 advanceHeight; 462 INT32 bottomSideBearing; 463 INT32 verticalOriginY; 464} DWRITE_GLYPH_METRICS; 465 466typedef struct DWRITE_GLYPH_OFFSET { 467 FLOAT advanceOffset; 468 FLOAT ascenderOffset; 469} DWRITE_GLYPH_OFFSET; 470 471typedef struct DWRITE_GLYPH_RUN { 472 IDWriteFontFace *fontFace; 473 FLOAT fontEmSize; 474 UINT32 glyphCount; 475 const UINT16 *glyphIndices; 476 const FLOAT *glyphAdvances; 477 const DWRITE_GLYPH_OFFSET *glyphOffsets; 478 WINBOOL isSideways; 479 UINT32 bidiLevel; 480} DWRITE_GLYPH_RUN; 481 482typedef struct DWRITE_GLYPH_RUN_DESCRIPTION { 483 const WCHAR *localeName; 484 const WCHAR *string; 485 UINT32 stringLength; 486 const UINT16 *clusterMap; 487 UINT32 textPosition; 488} DWRITE_GLYPH_RUN_DESCRIPTION; 489 490typedef struct DWRITE_HIT_TEST_METRICS { 491 UINT32 textPosition; 492 UINT32 length; 493 FLOAT left; 494 FLOAT top; 495 FLOAT width; 496 FLOAT height; 497 UINT32 bidiLevel; 498 WINBOOL isText; 499} DWRITE_HIT_TEST_METRICS; 500 501typedef struct DWRITE_INLINE_OBJECT_METRICS { 502 FLOAT width; 503 FLOAT height; 504 FLOAT baseline; 505 WINBOOL supportsSideways; 506} DWRITE_INLINE_OBJECT_METRICS; 507 508typedef struct DWRITE_LINE_BREAKPOINT { 509 UINT8 breakConditionBefore :2; 510 UINT8 breakConditionAfter :2; 511 UINT8 isWhitespace :1; 512 UINT8 isSoftHyphen :1; 513 UINT8 padding :2; 514} DWRITE_LINE_BREAKPOINT; 515 516typedef struct DWRITE_LINE_METRICS { 517 UINT32 length; 518 UINT32 trailingWhitespaceLength; 519 UINT32 newlineLength; 520 FLOAT height; 521 FLOAT baseline; 522 WINBOOL isTrimmed; 523} DWRITE_LINE_METRICS; 524 525typedef struct DWRITE_MATRIX { 526 FLOAT m11; 527 FLOAT m12; 528 FLOAT m21; 529 FLOAT m22; 530 FLOAT dx; 531 FLOAT dy; 532} DWRITE_MATRIX; 533 534typedef struct DWRITE_SCRIPT_ANALYSIS { 535 UINT16 script; 536 DWRITE_SCRIPT_SHAPES shapes; 537} DWRITE_SCRIPT_ANALYSIS; 538 539typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { 540 UINT16 justification :4; 541 UINT16 isClusterStart :1; 542 UINT16 isDiacritic :1; 543 UINT16 isZeroWidthSpace :1; 544 UINT16 reserved :9; 545} DWRITE_SHAPING_GLYPH_PROPERTIES; 546 547typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { 548 UINT16 isShapedAlone :1; 549 UINT16 reserved :15; 550} DWRITE_SHAPING_TEXT_PROPERTIES; 551 552typedef struct DWRITE_STRIKETHROUGH { 553 FLOAT width; 554 FLOAT thickness; 555 FLOAT offset; 556 DWRITE_READING_DIRECTION readingDirection; 557 DWRITE_FLOW_DIRECTION flowDirection; 558 const WCHAR *localeName; 559 DWRITE_MEASURING_MODE measuringMode; 560} DWRITE_STRIKETHROUGH; 561 562typedef struct DWRITE_TEXT_METRICS { 563 FLOAT left; 564 FLOAT top; 565 FLOAT width; 566 FLOAT widthIncludingTrailingWhitespace; 567 FLOAT height; 568 FLOAT layoutWidth; 569 FLOAT layoutHeight; 570 UINT32 maxBidiReorderingDepth; 571 UINT32 lineCount; 572} DWRITE_TEXT_METRICS; 573 574typedef struct DWRITE_TEXT_RANGE { 575 UINT32 startPosition; 576 UINT32 length; 577} DWRITE_TEXT_RANGE; 578 579typedef struct DWRITE_TRIMMING { 580 DWRITE_TRIMMING_GRANULARITY granularity; 581 UINT32 delimiter; 582 UINT32 delimiterCount; 583} DWRITE_TRIMMING; 584 585typedef struct DWRITE_TYPOGRAPHIC_FEATURES { 586 DWRITE_FONT_FEATURE *features; 587 UINT32 featureCount; 588} DWRITE_TYPOGRAPHIC_FEATURES; 589 590typedef struct DWRITE_UNDERLINE { 591 FLOAT width; 592 FLOAT thickness; 593 FLOAT offset; 594 FLOAT runHeight; 595 DWRITE_READING_DIRECTION readingDirection; 596 DWRITE_FLOW_DIRECTION flowDirection; 597 const WCHAR *localeName; 598 DWRITE_MEASURING_MODE measuringMode; 599} DWRITE_UNDERLINE; 600 601#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ 602 (static_cast<UINT32>(static_cast<UINT8>(d)) << 24) | \ 603 (static_cast<UINT32>(static_cast<UINT8>(c)) << 16) | \ 604 (static_cast<UINT32>(static_cast<UINT8>(b)) << 8) | \ 605 static_cast<UINT32>(static_cast<UINT8>(a))) 606 607#ifndef __MINGW_DEF_ARG_VAL 608#ifdef __cplusplus 609#define __MINGW_DEF_ARG_VAL(x) = x 610#else 611#define __MINGW_DEF_ARG_VAL(x) 612#endif 613#endif 614 615#undef INTERFACE 616#define INTERFACE IDWriteBitmapRenderTarget 617DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown) 618{ 619 BEGIN_INTERFACE 620 621#ifndef __cplusplus 622 /* IUnknown methods */ 623 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 624 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 625 STDMETHOD_(ULONG, Release)(THIS) PURE; 626#endif 627 628 /* IDWriteBitmapRenderTarget methods */ 629 STDMETHOD(DrawGlyphRun)(THIS_ 630 FLOAT baselineOriginX, 631 FLOAT baselineOriginY, 632 DWRITE_MEASURING_MODE measuringMode, 633 DWRITE_GLYPH_RUN const *glyphRun, 634 IDWriteRenderingParams *renderingParams, 635 COLORREF textColor, 636 RECT *blackBoxRect __MINGW_DEF_ARG_VAL(NULL)) PURE; 637 638 STDMETHOD_(HDC, GetMemoryDC)(THIS) PURE; 639 STDMETHOD_(FLOAT, GetPixelsPerDip)(THIS) PURE; 640 641 STDMETHOD(SetPixelsPerDip)(THIS_ 642 FLOAT pixelsPerDip) PURE; 643 644 STDMETHOD(GetCurrentTransform)(THIS_ 645 DWRITE_MATRIX* transform) PURE; 646 647 STDMETHOD(SetCurrentTransform)(THIS_ 648 DWRITE_MATRIX const *transform) PURE; 649 650 STDMETHOD(GetSize)(THIS_ 651 SIZE *size) PURE; 652 653 STDMETHOD(Resize)(THIS_ 654 UINT32 width, 655 UINT32 height) PURE; 656 657 END_INTERFACE 658}; 659#ifdef COBJMACROS 660#define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 661#define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This) 662#define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This) 663#define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) 664#define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) 665#define IDWriteBitmapRenderTarget_GetMemoryDC() (This)->lpVtbl->GetMemoryDC(This) 666#define IDWriteBitmapRenderTarget_GetPixelsPerDip() (This)->lpVtbl->GetPixelsPerDip(This) 667#define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) 668#define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) 669#define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) 670#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixelsPerDip) (This)->lpVtbl->SetPixelsPerDip(This,pixelsPerDip) 671#endif /*COBJMACROS*/ 672 673#undef INTERFACE 674#define INTERFACE IDWriteFactory 675DECLARE_INTERFACE_(IDWriteFactory,IUnknown) 676{ 677 BEGIN_INTERFACE 678 679#ifndef __cplusplus 680 /* IUnknown methods */ 681 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 682 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 683 STDMETHOD_(ULONG, Release)(THIS) PURE; 684#endif 685 686 /* IDWriteFactory methods */ 687 STDMETHOD(GetSystemFontCollection)(THIS_ 688 IDWriteFontCollection **fontCollection, 689 WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; 690 691 STDMETHOD(CreateCustomFontCollection)(THIS_ 692 IDWriteFontCollectionLoader *collectionLoader, 693 void const *collectionKey, 694 UINT32 collectionKeySize, 695 IDWriteFontCollection **fontCollection) PURE; 696 697 STDMETHOD(RegisterFontCollectionLoader)(THIS_ 698 IDWriteFontCollectionLoader *fontCollectionLoader) PURE; 699 700 STDMETHOD(UnregisterFontCollectionLoader)(THIS_ 701 IDWriteFontCollectionLoader *fontCollectionLoader) PURE; 702 703 STDMETHOD(CreateFontFileReference)(THIS_ 704 WCHAR const *filePath, 705 FILETIME const *lastWriteTime, 706 IDWriteFontFile **fontFile) PURE; 707 708 STDMETHOD(CreateCustomFontFileReference)(THIS_ 709 void const *fontFileReferenceKey, 710 UINT32 fontFileReferenceKeySize, 711 IDWriteFontFileLoader *fontFileLoader, 712 IDWriteFontFile **fontFile) PURE; 713 714 STDMETHOD(CreateFontFace)(THIS_ 715 DWRITE_FONT_FACE_TYPE fontFaceType, 716 UINT32 numberOfFiles, 717 IDWriteFontFile *const *fontFiles, 718 UINT32 faceIndex, 719 DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, 720 IDWriteFontFace **fontFace) PURE; 721 722 STDMETHOD(CreateRenderingParams)(THIS_ 723 IDWriteRenderingParams **renderingParams) PURE; 724 725 STDMETHOD(CreateMonitorRenderingParams)(THIS_ 726 HMONITOR monitor, 727 IDWriteRenderingParams **renderingParams) PURE; 728 729 STDMETHOD(CreateCustomRenderingParams)(THIS_ 730 FLOAT gamma, 731 FLOAT enhancedContrast, 732 FLOAT clearTypeLevel, 733 DWRITE_PIXEL_GEOMETRY pixelGeometry, 734 DWRITE_RENDERING_MODE renderingMode, 735 IDWriteRenderingParams **renderingParams) PURE; 736 737 STDMETHOD(RegisterFontFileLoader)(THIS_ 738 IDWriteFontFileLoader *fontFileLoader) PURE; 739 740 STDMETHOD(UnregisterFontFileLoader)(THIS_ 741 IDWriteFontFileLoader *fontFileLoader) PURE; 742 743 STDMETHOD(CreateTextFormat)(THIS_ 744 WCHAR const *fontFamilyName, 745 IDWriteFontCollection *fontCollection, 746 DWRITE_FONT_WEIGHT fontWeight, 747 DWRITE_FONT_STYLE fontStyle, 748 DWRITE_FONT_STRETCH fontStretch, 749 FLOAT fontSize, 750 WCHAR const *localeName, 751 IDWriteTextFormat **textFormat) PURE; 752 753 STDMETHOD(CreateTypography)(THIS_ 754 IDWriteTypography **typography) PURE; 755 756 STDMETHOD(GetGdiInterop)(THIS_ 757 IDWriteGdiInterop **gdiInterop) PURE; 758 759 STDMETHOD(CreateTextLayout)(THIS_ 760 WCHAR const *string, 761 UINT32 stringLength, 762 IDWriteTextFormat *textFormat, 763 FLOAT maxWidth, 764 FLOAT maxHeight, 765 IDWriteTextLayout **textLayout) PURE; 766 767 STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_ 768 WCHAR const *string, 769 UINT32 stringLength, 770 IDWriteTextFormat *textFormat, 771 FLOAT layoutWidth, 772 FLOAT layoutHeight, 773 FLOAT pixelsPerDip, 774 DWRITE_MATRIX const *transform, 775 WINBOOL useGdiNatural, 776 IDWriteTextLayout **textLayout) PURE; 777 778 STDMETHOD(CreateEllipsisTrimmingSign)(THIS_ 779 IDWriteTextFormat *textFormat, 780 IDWriteInlineObject **trimmingSign) PURE; 781 782 STDMETHOD(CreateTextAnalyzer)(THIS_ 783 IDWriteTextAnalyzer **textAnalyzer) PURE; 784 785 STDMETHOD(CreateNumberSubstitution)(THIS_ 786 DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, 787 WCHAR const *localeName, 788 WINBOOL ignoreUserOverride, 789 IDWriteNumberSubstitution **numberSubstitution) PURE; 790 791 STDMETHOD(CreateGlyphRunAnalysis)(THIS_ 792 DWRITE_GLYPH_RUN const *glyphRun, 793 FLOAT pixelsPerDip, 794 DWRITE_MATRIX const *transform, 795 DWRITE_RENDERING_MODE renderingMode, 796 DWRITE_MEASURING_MODE measuringMode, 797 FLOAT baselineOriginX, 798 FLOAT baselineOriginY, 799 IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; 800 801 END_INTERFACE 802}; 803#ifdef COBJMACROS 804#define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 805#define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This) 806#define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This) 807#define IDWriteFactory_CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) (This)->lpVtbl->CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) 808#define IDWriteFactory_CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) (This)->lpVtbl->CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) 809#define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) 810#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) 811#define IDWriteFactory_CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) 812#define IDWriteFactory_CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) 813#define IDWriteFactory_CreateFontFileReference(This,filePath,lastWriteTime,fontFile) (This)->lpVtbl->CreateFontFileReference(This,filePath,lastWriteTime,fontFile) 814#define IDWriteFactory_CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) 815#define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,renderingParams) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,renderingParams) 816#define IDWriteFactory_CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) (This)->lpVtbl->CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) 817#define IDWriteFactory_CreateRenderingParams(This,renderingParams) (This)->lpVtbl->CreateRenderingParams(This,renderingParams) 818#define IDWriteFactory_CreateTextAnalyzer(This,textAnalyzer) (This)->lpVtbl->CreateTextAnalyzer(This,textAnalyzer) 819#define IDWriteFactory_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) 820#define IDWriteFactory_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) 821#define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) 822#define IDWriteFactory_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop) 823#define IDWriteFactory_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates) 824#define IDWriteFactory_RegisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->RegisterFontCollectionLoader(This,fontCollectionLoader) 825#define IDWriteFactory_RegisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->RegisterFontFileLoader(This,fontFileLoader) 826#define IDWriteFactory_UnregisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,fontCollectionLoader) 827#define IDWriteFactory_UnregisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->UnregisterFontFileLoader(This,fontFileLoader) 828#endif /*COBJMACROS*/ 829 830#undef INTERFACE 831#define INTERFACE IDWriteFont 832DECLARE_INTERFACE_(IDWriteFont,IUnknown) 833{ 834 BEGIN_INTERFACE 835 836#ifndef __cplusplus 837 /* IUnknown methods */ 838 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 839 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 840 STDMETHOD_(ULONG, Release)(THIS) PURE; 841#endif 842 843 /* IDWriteFont methods */ 844 STDMETHOD(GetFontFamily)(THIS_ 845 IDWriteFontFamily **fontFamily) PURE; 846 847 STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE; 848 STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE; 849 STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE; 850 STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE; 851 852 STDMETHOD(GetFaceNames)(THIS_ 853 IDWriteLocalizedStrings **names) PURE; 854 855 STDMETHOD(GetInformationalStrings)(THIS_ 856 DWRITE_INFORMATIONAL_STRING_ID informationalStringID, 857 IDWriteLocalizedStrings **informationalStrings, 858 WINBOOL *exists) PURE; 859 860 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE; 861 862 STDMETHOD_(void, GetMetrics)(THIS_ 863 DWRITE_FONT_METRICS *fontMetrics) PURE; 864 865 STDMETHOD(HasCharacter)(THIS_ 866 UINT32 unicodeValue, 867 WINBOOL *exists) PURE; 868 869 STDMETHOD(CreateFontFace)(THIS_ 870 IDWriteFontFace **fontFace) PURE; 871 872 END_INTERFACE 873}; 874#ifdef COBJMACROS 875#define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 876#define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This) 877#define IDWriteFont_Release(This) (This)->lpVtbl->Release(This) 878#define IDWriteFont_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace) 879#define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) 880#define IDWriteFont_GetFontFamily(This,fontFamily) (This)->lpVtbl->GetFontFamily(This,fontFamily) 881#define IDWriteFont_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists) 882#define IDWriteFont_GetMetrics(This,fontMetrics) (This)->lpVtbl->GetMetrics(This,fontMetrics) 883#define IDWriteFont_GetSimulations() (This)->lpVtbl->GetSimulations(This) 884#define IDWriteFont_GetStretch() (This)->lpVtbl->GetStretch(This) 885#define IDWriteFont_GetStyle() (This)->lpVtbl->GetStyle(This) 886#define IDWriteFont_GetWeight() (This)->lpVtbl->GetWeight(This) 887#define IDWriteFont_HasCharacter(This,unicodeValue,exists) (This)->lpVtbl->HasCharacter(This,unicodeValue,exists) 888#define IDWriteFont_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This) 889#endif /*COBJMACROS*/ 890 891#undef INTERFACE 892#define INTERFACE IDWriteFontCollection 893DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown) 894{ 895 BEGIN_INTERFACE 896 897#ifndef __cplusplus 898 /* IUnknown methods */ 899 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 900 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 901 STDMETHOD_(ULONG, Release)(THIS) PURE; 902#endif 903 904 /* IDWriteFontCollection methods */ 905 STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE; 906 907 STDMETHOD(GetFontFamily)(THIS_ 908 UINT32 index, 909 IDWriteFontFamily **fontFamily) PURE; 910 911 STDMETHOD(FindFamilyName)(THIS_ 912 WCHAR const *familyName, 913 UINT32 *index, 914 WINBOOL *exists) PURE; 915 916 STDMETHOD(GetFontFromFontFace)(THIS_ 917 IDWriteFontFace* fontFace, 918 IDWriteFont **font) PURE; 919 920 END_INTERFACE 921}; 922#ifdef COBJMACROS 923#define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 924#define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This) 925#define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This) 926#define IDWriteFontCollection_FindFamilyName(This,familyName,index,exists) (This)->lpVtbl->FindFamilyName(This,familyName,index,exists) 927#define IDWriteFontCollection_GetFontFamily(This,index,fontFamily) (This)->lpVtbl->GetFontFamily(This,index,fontFamily) 928#define IDWriteFontCollection_GetFontFamilyCount() (This)->lpVtbl->GetFontFamilyCount(This) 929#define IDWriteFontCollection_GetFontFromFontFace(This,fontFace,font) (This)->lpVtbl->GetFontFromFontFace(This,fontFace,font) 930#endif /*COBJMACROS*/ 931 932#undef INTERFACE 933#define INTERFACE IDWriteFontFace 934DECLARE_INTERFACE_(IDWriteFontFace,IUnknown) 935{ 936 BEGIN_INTERFACE 937 938#ifndef __cplusplus 939 /* IUnknown methods */ 940 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 941 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 942 STDMETHOD_(ULONG, Release)(THIS) PURE; 943#endif 944 945 /* IDWriteFontFace methods */ 946 STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE; 947 948 STDMETHOD(GetFiles)(THIS_ 949 UINT32 *numberOfFiles, 950 IDWriteFontFile **fontFiles) PURE; 951 952 STDMETHOD_(UINT32, GetIndex)(THIS) PURE; 953 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE; 954 STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE; 955 956 STDMETHOD_(void, GetMetrics)(THIS_ 957 DWRITE_FONT_METRICS *fontFaceMetrics) PURE; 958 959 STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE; 960 961 STDMETHOD(GetDesignGlyphMetrics)(THIS_ 962 UINT16 const *glyphIndices, 963 UINT32 glyphCount, 964 DWRITE_GLYPH_METRICS *glyphMetrics, 965 WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE; 966 967 STDMETHOD(GetGlyphIndices)(THIS_ 968 UINT32 const *codePoints, 969 UINT32 codePointCount, 970 UINT16 *glyphIndices) PURE; 971 972 STDMETHOD(TryGetFontTable)(THIS_ 973 UINT32 openTypeTableTag, 974 const void **tableData, 975 UINT32 *tableSize, 976 void **tableContext, 977 WINBOOL *exists) PURE; 978 979 STDMETHOD_(void, ReleaseFontTable)(THIS_ 980 void *tableContext) PURE; 981 982 STDMETHOD(GetGlyphRunOutline)(THIS_ 983 FLOAT emSize, 984 UINT16 const *glyphIndices, 985 FLOAT const *glyphAdvances, 986 DWRITE_GLYPH_OFFSET const *glyphOffsets, 987 UINT32 glyphCount, 988 WINBOOL isSideways, 989 WINBOOL isRightToLeft, 990 IDWriteGeometrySink *geometrySink) PURE; 991 992 STDMETHOD(GetRecommendedRenderingMode)(THIS_ 993 FLOAT emSize, 994 FLOAT pixelsPerDip, 995 DWRITE_MEASURING_MODE measuringMode, 996 IDWriteRenderingParams *renderingParams, 997 DWRITE_RENDERING_MODE *renderingMode) PURE; 998 999 STDMETHOD(GetGdiCompatibleMetrics)(THIS_ 1000 FLOAT emSize, 1001 FLOAT pixelsPerDip, 1002 DWRITE_MATRIX const *transform, 1003 DWRITE_FONT_METRICS *fontFaceMetrics) PURE; 1004 1005 1006 STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_ 1007 FLOAT emSize, 1008 FLOAT pixelsPerDip, 1009 DWRITE_MATRIX const *transform, 1010 WINBOOL useGdiNatural, 1011 UINT16 const *glyphIndices, 1012 UINT32 glyphCount, 1013 DWRITE_GLYPH_METRICS *glyphMetrics, 1014 WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE; 1015 1016 END_INTERFACE 1017}; 1018#ifdef COBJMACROS 1019#define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1020#define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This) 1021#define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) 1022#define IDWriteFontFace_GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) 1023#define IDWriteFontFace_GetFiles(This,fontFiles) (This)->lpVtbl->GetFiles(This,fontFiles) 1024#define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) 1025#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) 1026#define IDWriteFontFace_GetGlyphCount() (This)->lpVtbl->GetGlyphCount(This) 1027#define IDWriteFontFace_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) 1028#define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) 1029#define IDWriteFontFace_GetIndex() (This)->lpVtbl->GetIndex(This) 1030#define IDWriteFontFace_GetMetrics(This,fontFaceMetrics) (This)->lpVtbl->GetMetrics(This,fontFaceMetrics) 1031#define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) 1032#define IDWriteFontFace_GetSimulations() (This)->lpVtbl->GetSimulations(This) 1033#define IDWriteFontFace_GetType() (This)->lpVtbl->GetType(This) 1034#define IDWriteFontFace_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This) 1035#define IDWriteFontFace_ReleaseFontTable(This,tableContext) (This)->lpVtbl->ReleaseFontTable(This,tableContext) 1036#define IDWriteFontFace_TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) (This)->lpVtbl->TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) 1037#endif /*COBJMACROS*/ 1038 1039#undef INTERFACE 1040#define INTERFACE IDWriteFontList 1041DECLARE_INTERFACE_(IDWriteFontList,IUnknown) 1042{ 1043 BEGIN_INTERFACE 1044 1045#ifndef __cplusplus 1046 /* IUnknown methods */ 1047 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1048 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1049 STDMETHOD_(ULONG, Release)(THIS) PURE; 1050#endif 1051 1052 /* IDWriteFontList methods */ 1053 STDMETHOD(GetFontCollection)(THIS_ 1054 IDWriteFontCollection** fontCollection) PURE; 1055 1056 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE; 1057 1058 STDMETHOD(GetFont)(THIS_ 1059 UINT32 index, 1060 IDWriteFont **font) PURE; 1061 1062 END_INTERFACE 1063}; 1064#ifdef COBJMACROS 1065#define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1066#define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This) 1067#define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This) 1068#define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) 1069#define IDWriteFontList_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) 1070#define IDWriteFontList_GetFontCount() (This)->lpVtbl->GetFontCount(This) 1071#endif /*COBJMACROS*/ 1072 1073#undef INTERFACE 1074#define INTERFACE IDWriteFontFamily 1075DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList) 1076{ 1077 BEGIN_INTERFACE 1078 1079#ifndef __cplusplus 1080 /* IUnknown methods */ 1081 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1082 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1083 STDMETHOD_(ULONG, Release)(THIS) PURE; 1084 1085 /* IDWriteFontList methods */ 1086 STDMETHOD(GetFontCollection)(THIS_ 1087 IDWriteFontCollection** fontCollection) PURE; 1088 1089 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE; 1090 1091 STDMETHOD(GetFont)(THIS_ 1092 UINT32 index, 1093 IDWriteFont **font) PURE; 1094#endif 1095 1096 /* IDWriteFontFamily methods */ 1097 STDMETHOD(GetFamilyNames)(THIS_ 1098 IDWriteLocalizedStrings **names) PURE; 1099 1100 STDMETHOD(GetFirstMatchingFont)(THIS_ 1101 DWRITE_FONT_WEIGHT weight, 1102 DWRITE_FONT_STRETCH stretch, 1103 DWRITE_FONT_STYLE style, 1104 IDWriteFont **matchingFont) PURE; 1105 1106 STDMETHOD(GetMatchingFonts)(THIS_ 1107 DWRITE_FONT_WEIGHT weight, 1108 DWRITE_FONT_STRETCH stretch, 1109 DWRITE_FONT_STYLE style, 1110 IDWriteFontList **matchingFonts) PURE; 1111 1112 END_INTERFACE 1113}; 1114#ifdef COBJMACROS 1115#define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1116#define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This) 1117#define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This) 1118#define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) 1119#define IDWriteFontFamily_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) 1120#define IDWriteFontFamily_GetFontCount() (This)->lpVtbl->GetFontCount(This) 1121#define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) 1122#define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,matchingFont) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,matchingFont) 1123#define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,matchingFonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,matchingFonts) 1124#endif /*COBJMACROS*/ 1125 1126#undef INTERFACE 1127#define INTERFACE IDWriteFontFile 1128DECLARE_INTERFACE_(IDWriteFontFile,IUnknown) 1129{ 1130 BEGIN_INTERFACE 1131 1132#ifndef __cplusplus 1133 /* IUnknown methods */ 1134 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1135 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1136 STDMETHOD_(ULONG, Release)(THIS) PURE; 1137#endif 1138 1139 /* IDWriteFontFile methods */ 1140 STDMETHOD(GetReferenceKey)(THIS_ 1141 void const **fontFileReferenceKey, 1142 UINT32 *fontFileReferenceKeySize) PURE; 1143 1144 STDMETHOD(GetLoader)(THIS_ 1145 IDWriteFontFileLoader **fontFileLoader) PURE; 1146 1147 STDMETHOD(Analyze)(THIS_ 1148 WINBOOL *isSupportedFontType, 1149 DWRITE_FONT_FILE_TYPE *fontFileType, 1150 DWRITE_FONT_FACE_TYPE *fontFaceType, 1151 UINT32 *numberOfFaces) PURE; 1152 1153 END_INTERFACE 1154}; 1155#ifdef COBJMACROS 1156#define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1157#define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This) 1158#define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This) 1159#define IDWriteFontFile_Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) (This)->lpVtbl->Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) 1160#define IDWriteFontFile_GetLoader(This,fontFileLoader) (This)->lpVtbl->GetLoader(This,fontFileLoader) 1161#define IDWriteFontFile_GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) (This)->lpVtbl->GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) 1162#endif /*COBJMACROS*/ 1163 1164#undef INTERFACE 1165#define INTERFACE IDWriteFontFileLoader 1166DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown) 1167{ 1168 BEGIN_INTERFACE 1169 1170#ifndef __cplusplus 1171 /* IUnknown methods */ 1172 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1173 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1174 STDMETHOD_(ULONG, Release)(THIS) PURE; 1175#endif 1176 1177 /* IDWriteFontFileLoader methods */ 1178 STDMETHOD(CreateStreamFromKey)( 1179 void const *fontFileReferenceKey, 1180 UINT32 fontFileReferenceKeySize, 1181 IDWriteFontFileStream **fontFileStream) PURE; 1182 1183 END_INTERFACE 1184}; 1185#ifdef COBJMACROS 1186#define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1187#define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) 1188#define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) 1189#define IDWriteFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) 1190#endif /*COBJMACROS*/ 1191 1192#undef INTERFACE 1193#define INTERFACE IDWriteFontFileStream 1194DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown) 1195{ 1196 BEGIN_INTERFACE 1197 1198#ifndef __cplusplus 1199 /* IUnknown methods */ 1200 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1201 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1202 STDMETHOD_(ULONG, Release)(THIS) PURE; 1203#endif 1204 1205 /* IDWriteFontFileStream methods */ 1206 STDMETHOD(ReadFileFragment)(THIS_ 1207 void const **fragmentStart, 1208 UINT64 fileOffset, 1209 UINT64 fragmentSize, 1210 void** fragmentContext) PURE; 1211 1212 STDMETHOD_(void, ReleaseFileFragment)(THIS_ 1213 void *fragmentContext) PURE; 1214 1215 STDMETHOD(GetFileSize)(THIS_ 1216 UINT64 *fileSize) PURE; 1217 1218 STDMETHOD(GetLastWriteTime)(THIS_ 1219 UINT64 *lastWriteTime) PURE; 1220 1221 END_INTERFACE 1222}; 1223#ifdef COBJMACROS 1224#define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1225#define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) 1226#define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This) 1227#define IDWriteFontFileStream_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize) 1228#define IDWriteFontFileStream_GetLastWriteTime(This,lastWriteTime) (This)->lpVtbl->GetLastWriteTime(This,lastWriteTime) 1229#define IDWriteFontFileStream_ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) (This)->lpVtbl->ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) 1230#define IDWriteFontFileStream_ReleaseFileFragment(This,fragmentContext) (This)->lpVtbl->ReleaseFileFragment(This,fragmentContext) 1231#endif /*COBJMACROS*/ 1232 1233#undef INTERFACE 1234#define INTERFACE IDWriteFontCollectionLoader 1235DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown) 1236{ 1237 BEGIN_INTERFACE 1238 1239#ifndef __cplusplus 1240 /* IUnknown methods */ 1241 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1242 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1243 STDMETHOD_(ULONG, Release)(THIS) PURE; 1244#endif 1245 1246 /* IDWriteFontCollectionLoader methods */ 1247 STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32 collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE; 1248 1249 END_INTERFACE 1250}; 1251#ifdef COBJMACROS 1252#define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1253#define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This) 1254#define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This) 1255#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) 1256#endif /*COBJMACROS*/ 1257 1258#undef INTERFACE 1259#define INTERFACE IDWriteFontFileEnumerator 1260DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown) 1261{ 1262 BEGIN_INTERFACE 1263 1264#ifndef __cplusplus 1265 /* IUnknown methods */ 1266 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1267 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1268 STDMETHOD_(ULONG, Release)(THIS) PURE; 1269#endif 1270 1271 /* IDWriteFontFileEnumerator methods */ 1272 STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE; 1273 STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE; 1274 1275 END_INTERFACE 1276}; 1277#ifdef COBJMACROS 1278#define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1279#define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) 1280#define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This) 1281#define IDWriteFontFileEnumerator_GetCurrentFontFile(This,fontFile) (This)->lpVtbl->GetCurrentFontFile(This,fontFile) 1282#define IDWriteFontFileEnumerator_MoveNext(This,hasCurrentFile) (This)->lpVtbl->MoveNext(This,hasCurrentFile) 1283#endif /*COBJMACROS*/ 1284 1285#undef INTERFACE 1286#define INTERFACE IDWriteGdiInterop 1287DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown) 1288{ 1289 BEGIN_INTERFACE 1290 1291#ifndef __cplusplus 1292 /* IUnknown methods */ 1293 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1294 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1295 STDMETHOD_(ULONG, Release)(THIS) PURE; 1296#endif 1297 1298 /* IDWriteGdiInterop methods */ 1299 STDMETHOD(CreateFontFromLOGFONT)(THIS_ 1300 LOGFONTW const *logFont, 1301 IDWriteFont **font) PURE; 1302 1303 STDMETHOD(ConvertFontToLOGFONT)(THIS_ 1304 IDWriteFont *font, 1305 LOGFONTW *logFont, 1306 WINBOOL *isSystemFont) PURE; 1307 1308 STDMETHOD(ConvertFontFaceToLOGFONT)(THIS_ 1309 IDWriteFontFace *font, 1310 LOGFONTW *logFont) PURE; 1311 1312 STDMETHOD(CreateFontFaceFromHdc)(THIS_ 1313 HDC hdc, 1314 IDWriteFontFace **fontFace) PURE; 1315 1316 STDMETHOD(CreateBitmapRenderTarget)(THIS_ 1317 HDC hdc, 1318 UINT32 width, 1319 UINT32 height, 1320 IDWriteBitmapRenderTarget **renderTarget) PURE; 1321 1322 END_INTERFACE 1323}; 1324#ifdef COBJMACROS 1325#define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1326#define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This) 1327#define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This) 1328#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logFont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logFont) 1329#define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logFont,isSystemFont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logFont,isSystemFont) 1330#define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) 1331#define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontFace) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontFace) 1332#define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logFont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logFont,font) 1333#endif /*COBJMACROS*/ 1334 1335#undef INTERFACE 1336#define INTERFACE IDWriteGlyphRunAnalysis 1337DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown) 1338{ 1339 BEGIN_INTERFACE 1340 1341#ifndef __cplusplus 1342 /* IUnknown methods */ 1343 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1344 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1345 STDMETHOD_(ULONG, Release)(THIS) PURE; 1346#endif 1347 1348 /* IDWriteGlyphRunAnalysis methods */ 1349 STDMETHOD(GetAlphaTextureBounds)(THIS_ 1350 DWRITE_TEXTURE_TYPE textureType, 1351 RECT *textureBounds) PURE; 1352 1353 STDMETHOD(CreateAlphaTexture)(THIS_ 1354 DWRITE_TEXTURE_TYPE textureType, 1355 RECT const *textureBounds, 1356 BYTE *alphaValues, 1357 UINT32 bufferSize) PURE; 1358 1359 STDMETHOD(GetAlphaBlendParams)(THIS_ 1360 IDWriteRenderingParams *renderingParams, 1361 FLOAT *blendGamma, 1362 FLOAT *blendEnhancedContrast, 1363 FLOAT *blendClearTypeLevel) PURE; 1364 1365 END_INTERFACE 1366}; 1367#ifdef COBJMACROS 1368#define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1369#define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This) 1370#define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This) 1371#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) 1372#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) 1373#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,textureType,textureBounds) (This)->lpVtbl->GetAlphaTextureBounds(This,textureType,textureBounds) 1374#endif /*COBJMACROS*/ 1375 1376#undef INTERFACE 1377#define INTERFACE IDWriteInlineObject 1378DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown) 1379{ 1380 BEGIN_INTERFACE 1381 1382#ifndef __cplusplus 1383 /* IUnknown methods */ 1384 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1385 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1386 STDMETHOD_(ULONG, Release)(THIS) PURE; 1387#endif 1388 1389 /* IDWriteInlineObject methods */ 1390 STDMETHOD(Draw)(THIS_ 1391 void *clientDrawingContext, 1392 IDWriteTextRenderer *renderer, 1393 FLOAT originX, 1394 FLOAT originY, 1395 WINBOOL isSideways, 1396 WINBOOL isRightToLeft, 1397 IUnknown *clientDrawingEffect) PURE; 1398 STDMETHOD(GetMetrics)(THIS_ 1399 DWRITE_INLINE_OBJECT_METRICS *metrics) PURE; 1400 STDMETHOD(GetOverhangMetrics)(THIS_ 1401 DWRITE_OVERHANG_METRICS *overhangs) PURE; 1402 STDMETHOD(GetBreakConditions)(THIS_ 1403 DWRITE_BREAK_CONDITION *breakConditionBefore, 1404 DWRITE_BREAK_CONDITION *breakConditionAfter) PURE; 1405 1406 END_INTERFACE 1407}; 1408#ifdef COBJMACROS 1409#define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1410#define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This) 1411#define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This) 1412#define IDWriteInlineObject_Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) 1413#define IDWriteInlineObject_GetBreakConditions(This,breakConditionBefore,breakConditionAfter) (This)->lpVtbl->GetBreakConditions(This,breakConditionBefore,breakConditionAfter) 1414#define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) 1415#define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) 1416#endif /*COBJMACROS*/ 1417 1418#undef INTERFACE 1419#define INTERFACE IDWriteLocalFontFileLoader 1420DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IUnknown) 1421{ 1422 BEGIN_INTERFACE 1423 1424#ifndef __cplusplus 1425 /* IUnknown methods */ 1426 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1427 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1428 STDMETHOD_(ULONG, Release)(THIS) PURE; 1429#endif 1430 1431 /* IDWriteLocalFontFileLoader methods */ 1432 STDMETHOD_(HRESULT,GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE; 1433 STDMETHOD_(HRESULT,GetFilePathFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,WCHAR *filePath,UINT32 filePathSize) PURE; 1434 STDMETHOD_(HRESULT,GetLastWriteTimeFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,FILETIME *lastWriteTime) PURE; 1435 1436 END_INTERFACE 1437}; 1438#ifdef COBJMACROS 1439#define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1440#define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) 1441#define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This) 1442#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) (This)->lpVtbl->GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) 1443#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) (This)->lpVtbl->GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) 1444#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) 1445#endif /*COBJMACROS*/ 1446 1447#undef INTERFACE 1448#define INTERFACE IDWriteLocalizedStrings 1449DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown) 1450{ 1451 BEGIN_INTERFACE 1452 1453#ifndef __cplusplus 1454 /* IUnknown methods */ 1455 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1456 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1457 STDMETHOD_(ULONG, Release)(THIS) PURE; 1458#endif 1459 1460 /* IDWriteLocalizedStrings methods */ 1461 STDMETHOD_(UINT32, GetCount)(THIS) PURE; 1462 1463 STDMETHOD(FindLocaleName)(THIS_ 1464 WCHAR const *localeName, 1465 UINT32 *index, 1466 WINBOOL *exists) PURE; 1467 1468 STDMETHOD(GetLocaleNameLength)(THIS_ 1469 UINT32 index, 1470 UINT32 *length) PURE; 1471 1472 STDMETHOD(GetLocaleName)(THIS_ 1473 UINT32 index, 1474 WCHAR *localeName, 1475 UINT32 size) PURE; 1476 1477 STDMETHOD(GetStringLength)(THIS_ 1478 UINT32 index, 1479 UINT32 *length) PURE; 1480 1481 STDMETHOD(GetString)(THIS_ 1482 UINT32 index, 1483 WCHAR *stringBuffer, 1484 UINT32 size) PURE; 1485 1486 END_INTERFACE 1487}; 1488#ifdef COBJMACROS 1489#define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1490#define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This) 1491#define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This) 1492#define IDWriteLocalizedStrings_FindLocaleName(This,localeName,index,exists) (This)->lpVtbl->FindLocaleName(This,localeName,index,exists) 1493#define IDWriteLocalizedStrings_GetCount() (This)->lpVtbl->GetCount(This) 1494#define IDWriteLocalizedStrings_GetLocaleName(This,index,localeName,size) (This)->lpVtbl->GetLocaleName(This,index,localeName,size) 1495#define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) 1496#define IDWriteLocalizedStrings_GetString(This,index,stringBuffer,size) (This)->lpVtbl->GetString(This,index,stringBuffer,size) 1497#define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) 1498#endif /*COBJMACROS*/ 1499 1500#undef INTERFACE 1501#define INTERFACE IDWriteNumberSubstitution 1502DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown) 1503{ 1504 BEGIN_INTERFACE 1505 1506#ifndef __cplusplus 1507 /* IUnknown methods */ 1508 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1509 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1510 STDMETHOD_(ULONG, Release)(THIS) PURE; 1511#endif 1512 1513 /* IDWriteNumberSubstitution methods */ 1514 1515 END_INTERFACE 1516}; 1517#ifdef COBJMACROS 1518#define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1519#define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This) 1520#define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This) 1521#endif /*COBJMACROS*/ 1522 1523#undef INTERFACE 1524#define INTERFACE IDWritePixelSnapping 1525DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown) 1526{ 1527 BEGIN_INTERFACE 1528 1529#ifndef __cplusplus 1530 /* IUnknown methods */ 1531 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1532 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1533 STDMETHOD_(ULONG, Release)(THIS) PURE; 1534#endif 1535 1536 /* IDWritePixelSnapping methods */ 1537 STDMETHOD(IsPixelSnappingDisabled)(THIS_ 1538 void *clientDrawingContext, 1539 WINBOOL *isDisabled) PURE; 1540 STDMETHOD(GetCurrentTransform)(THIS_ 1541 void *clientDrawingContext, 1542 DWRITE_MATRIX *transform) PURE; 1543 STDMETHOD(GetPixelsPerDip)(THIS_ 1544 void *clientDrawingContext, 1545 FLOAT *pixelsPerDip) PURE; 1546 1547 END_INTERFACE 1548}; 1549#ifdef COBJMACROS 1550#define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1551#define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This) 1552#define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This) 1553#define IDWritePixelSnapping_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform) 1554#define IDWritePixelSnapping_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) 1555#define IDWritePixelSnapping_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) 1556#endif /*COBJMACROS*/ 1557 1558#undef INTERFACE 1559#define INTERFACE IDWriteRenderingParams 1560DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown) 1561{ 1562 BEGIN_INTERFACE 1563 1564#ifndef __cplusplus 1565 /* IUnknown methods */ 1566 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1567 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1568 STDMETHOD_(ULONG, Release)(THIS) PURE; 1569#endif 1570 1571 /* IDWriteRenderingParams methods */ 1572 STDMETHOD_(FLOAT, GetGamma)(THIS) PURE; 1573 STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE; 1574 STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE; 1575 STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE; 1576 STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE; 1577 1578 END_INTERFACE 1579}; 1580#ifdef COBJMACROS 1581#define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1582#define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This) 1583#define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This) 1584#define IDWriteRenderingParams_GetClearTypeLevel() (This)->lpVtbl->GetClearTypeLevel(This) 1585#define IDWriteRenderingParams_GetEnhancedContrast() (This)->lpVtbl->GetEnhancedContrast(This) 1586#define IDWriteRenderingParams_GetGamma() (This)->lpVtbl->GetGamma(This) 1587#define IDWriteRenderingParams_GetPixelGeometry() (This)->lpVtbl->GetPixelGeometry(This) 1588#define IDWriteRenderingParams_GetRenderingMode() (This)->lpVtbl->GetRenderingMode(This) 1589#endif /*COBJMACROS*/ 1590 1591#undef INTERFACE 1592#define INTERFACE IDWriteTextAnalysisSink 1593DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown) 1594{ 1595 BEGIN_INTERFACE 1596 1597#ifndef __cplusplus 1598 /* IUnknown methods */ 1599 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1600 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1601 STDMETHOD_(ULONG, Release)(THIS) PURE; 1602#endif 1603 1604 /* IDWriteTextAnalysisSink methods */ 1605 STDMETHOD(SetScriptAnalysis)( 1606 UINT32 textPosition, 1607 UINT32 textLength, 1608 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis) PURE; 1609 1610 STDMETHOD(SetLineBreakpoints)( 1611 UINT32 textPosition, 1612 UINT32 textLength, 1613 DWRITE_LINE_BREAKPOINT const *lineBreakpoints) PURE; 1614 1615 STDMETHOD(SetBidiLevel)( 1616 UINT32 textPosition, 1617 UINT32 textLength, 1618 UINT8 explicitLevel, 1619 UINT8 resolvedLevel) PURE; 1620 1621 STDMETHOD(SetNumberSubstitution)( 1622 UINT32 textPosition, 1623 UINT32 textLength, 1624 IDWriteNumberSubstitution *numberSubstitution) PURE; 1625 1626 END_INTERFACE 1627}; 1628#ifdef COBJMACROS 1629#define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1630#define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This) 1631#define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This) 1632#define IDWriteTextAnalysisSink_SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) 1633#define IDWriteTextAnalysisSink_SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) (This)->lpVtbl->SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) 1634#define IDWriteTextAnalysisSink_SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) 1635#define IDWriteTextAnalysisSink_SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) (This)->lpVtbl->SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) 1636#endif /*COBJMACROS*/ 1637 1638#undef INTERFACE 1639#define INTERFACE IDWriteTextAnalysisSource 1640DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown) 1641{ 1642 BEGIN_INTERFACE 1643 1644#ifndef __cplusplus 1645 /* IUnknown methods */ 1646 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1647 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1648 STDMETHOD_(ULONG, Release)(THIS) PURE; 1649#endif 1650 1651 /* IDWriteTextAnalysisSource methods */ 1652 STDMETHOD(GetTextAtPosition)(THIS_ 1653 UINT32 textPosition, 1654 WCHAR const **textString, 1655 UINT32 *textLength) PURE; 1656 1657 STDMETHOD(GetTextBeforePosition)(THIS_ 1658 UINT32 textPosition, 1659 WCHAR const **textString, 1660 UINT32 *textLength) PURE; 1661 1662 STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)(THIS) PURE; 1663 1664 STDMETHOD(GetLocaleName)(THIS_ 1665 UINT32 textPosition, 1666 UINT32 *textLength, 1667 WCHAR const **localeName) PURE; 1668 1669 STDMETHOD(GetNumberSubstitution)(THIS_ 1670 UINT32 textPosition, 1671 UINT32 *textLength, 1672 IDWriteNumberSubstitution **numberSubstitution) PURE; 1673 1674 END_INTERFACE 1675}; 1676#ifdef COBJMACROS 1677#define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1678#define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This) 1679#define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This) 1680#define IDWriteTextAnalysisSource_GetLocaleName(This,textPosition,textLength,localeName) (This)->lpVtbl->GetLocaleName(This,textPosition,textLength,localeName) 1681#define IDWriteTextAnalysisSource_GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) 1682#define IDWriteTextAnalysisSource_GetParagraphReadingDirection() (This)->lpVtbl->GetParagraphReadingDirection(This) 1683#define IDWriteTextAnalysisSource_GetTextAtPosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextAtPosition(This,textPosition,textString,textLength) 1684#define IDWriteTextAnalysisSource_GetTextBeforePosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextBeforePosition(This,textPosition,textString,textLength) 1685#endif /*COBJMACROS*/ 1686 1687#undef INTERFACE 1688#define INTERFACE IDWriteTextAnalyzer 1689DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown) 1690{ 1691 BEGIN_INTERFACE 1692 1693#ifndef __cplusplus 1694 /* IUnknown methods */ 1695 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1696 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1697 STDMETHOD_(ULONG, Release)(THIS) PURE; 1698#endif 1699 1700 /* IDWriteTextAnalyzer methods */ 1701 STDMETHOD(AnalyzeScript)(THIS_ 1702 IDWriteTextAnalysisSource* analysisSource, 1703 UINT32 textPosition, 1704 UINT32 textLength, 1705 IDWriteTextAnalysisSink *analysisSink) PURE; 1706 1707 STDMETHOD(AnalyzeBidi)(THIS_ 1708 IDWriteTextAnalysisSource *analysisSource, 1709 UINT32 textPosition, 1710 UINT32 textLength, 1711 IDWriteTextAnalysisSink *analysisSink) PURE; 1712 1713 STDMETHOD(AnalyzeNumberSubstitution)(THIS_ 1714 IDWriteTextAnalysisSource *analysisSource, 1715 UINT32 textPosition, 1716 UINT32 textLength, 1717 IDWriteTextAnalysisSink *analysisSink) PURE; 1718 1719 STDMETHOD(AnalyzeLineBreakpoints)(THIS_ 1720 IDWriteTextAnalysisSource *analysisSource, 1721 UINT32 textPosition, 1722 UINT32 textLength, 1723 IDWriteTextAnalysisSink *analysisSink) PURE; 1724 1725 STDMETHOD(GetGlyphs)(THIS_ 1726 WCHAR const *textString, 1727 UINT32 textLength, 1728 IDWriteFontFace *fontFace, 1729 WINBOOL isSideways, 1730 WINBOOL isRightToLeft, 1731 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis, 1732 WCHAR const *localeName, 1733 IDWriteNumberSubstitution *numberSubstitution, 1734 DWRITE_TYPOGRAPHIC_FEATURES const **features, 1735 UINT32 const *featureRangeLengths, 1736 UINT32 featureRanges, 1737 UINT32 maxGlyphCount, 1738 UINT16 *clusterMap, 1739 DWRITE_SHAPING_TEXT_PROPERTIES *textProps, 1740 UINT16 *glyphIndices, 1741 DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps, 1742 UINT32 *actualGlyphCount) PURE; 1743 1744 STDMETHOD(GetGlyphPlacements)(THIS_ 1745 WCHAR const *textString, 1746 UINT16 const *clusterMap, 1747 DWRITE_SHAPING_TEXT_PROPERTIES *textProps, 1748 UINT32 textLength, 1749 UINT16 const *glyphIndices, 1750 DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps, 1751 UINT32 glyphCount, 1752 IDWriteFontFace *fontFace, 1753 FLOAT fontEmSize, 1754 WINBOOL isSideways, 1755 WINBOOL isRightToLeft, 1756 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis, 1757 WCHAR const *localeName, 1758 DWRITE_TYPOGRAPHIC_FEATURES const **features, 1759 UINT32 const *featureRangeLengths, 1760 UINT32 featureRanges, 1761 FLOAT *glyphAdvances, 1762 DWRITE_GLYPH_OFFSET *glyphOffsets) PURE; 1763 1764 STDMETHOD(GetGdiCompatibleGlyphPlacements)(THIS_ 1765 WCHAR const *textString, 1766 UINT16 const *clusterMap, 1767 DWRITE_SHAPING_TEXT_PROPERTIES *textProps, 1768 UINT32 textLength, 1769 UINT16 const *glyphIndices, 1770 DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps, 1771 UINT32 glyphCount, 1772 IDWriteFontFace *fontFace, 1773 FLOAT fontEmSize, 1774 FLOAT pixelsPerDip, 1775 DWRITE_MATRIX const *transform, 1776 WINBOOL useGdiNatural, 1777 WINBOOL isSideways, 1778 WINBOOL isRightToLeft, 1779 DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, 1780 WCHAR const *localeName, 1781 DWRITE_TYPOGRAPHIC_FEATURES const **features, 1782 UINT32 const *featureRangeLengths, 1783 UINT32 featureRanges, 1784 FLOAT *glyphAdvances, 1785 DWRITE_GLYPH_OFFSET *glyphOffsets) PURE; 1786 1787 END_INTERFACE 1788}; 1789#ifdef COBJMACROS 1790#define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1791#define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This) 1792#define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This) 1793#define IDWriteTextAnalyzer_AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) 1794#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) 1795#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) 1796#define IDWriteTextAnalyzer_AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) 1797#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) 1798#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) 1799#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) 1800#endif /*COBJMACROS*/ 1801 1802#undef INTERFACE 1803#define INTERFACE IDWriteTextFormat 1804DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown) 1805{ 1806 BEGIN_INTERFACE 1807 1808#ifndef __cplusplus 1809 /* IUnknown methods */ 1810 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1811 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1812 STDMETHOD_(ULONG, Release)(THIS) PURE; 1813#endif 1814 1815 /* IDWriteTextFormat methods */ 1816 STDMETHOD(SetTextAlignment)(THIS_ 1817 DWRITE_TEXT_ALIGNMENT textAlignment) PURE; 1818 STDMETHOD(SetParagraphAlignment)(THIS_ 1819 DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE; 1820 STDMETHOD(SetWordWrapping)(THIS_ 1821 DWRITE_WORD_WRAPPING wordWrapping) PURE; 1822 STDMETHOD(SetReadingDirection)(THIS_ 1823 DWRITE_READING_DIRECTION readingDirection) PURE; 1824 STDMETHOD(SetFlowDirection)(THIS_ 1825 DWRITE_FLOW_DIRECTION flowDirection) PURE; 1826 STDMETHOD(SetIncrementalTabStop)(THIS_ 1827 FLOAT incrementalTabStop) PURE; 1828 STDMETHOD(SetTrimming)(THIS_ 1829 DWRITE_TRIMMING const *trimmingOptions, 1830 IDWriteInlineObject *trimmingSign) PURE; 1831 STDMETHOD(SetLineSpacing)(THIS_ 1832 DWRITE_LINE_SPACING_METHOD lineSpacingMethod, 1833 FLOAT lineSpacing, 1834 FLOAT baseline) PURE; 1835 STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE; 1836 STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE; 1837 STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE; 1838 STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE; 1839 STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE; 1840 STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE; 1841 STDMETHOD(GetTrimming)(THIS_ 1842 DWRITE_TRIMMING* trimmingOptions, 1843 IDWriteInlineObject **trimmingSign) PURE; 1844 STDMETHOD(GetLineSpacing)(THIS_ 1845 DWRITE_LINE_SPACING_METHOD *lineSpacingMethod, 1846 FLOAT *lineSpacing, 1847 FLOAT *baseline) PURE; 1848 STDMETHOD(GetFontCollection)(THIS_ 1849 IDWriteFontCollection **fontCollection) PURE; 1850 STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE; 1851 STDMETHOD(GetFontFamilyName)(THIS_ 1852 WCHAR *fontFamilyName, 1853 UINT32 nameSize) PURE; 1854 STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE; 1855 STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE; 1856 STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE; 1857 STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE; 1858 STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE; 1859 STDMETHOD(GetLocaleName)(THIS_ 1860 WCHAR *localeName, 1861 UINT32 nameSize) PURE; 1862 1863 END_INTERFACE 1864}; 1865#ifdef COBJMACROS 1866#define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1867#define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This) 1868#define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This) 1869#define IDWriteTextFormat_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This) 1870#define IDWriteTextFormat_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) 1871#define IDWriteTextFormat_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize) 1872#define IDWriteTextFormat_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This) 1873#define IDWriteTextFormat_GetFontSize() (This)->lpVtbl->GetFontSize(This) 1874#define IDWriteTextFormat_GetFontStretch() (This)->lpVtbl->GetFontStretch(This) 1875#define IDWriteTextFormat_GetFontStyle() (This)->lpVtbl->GetFontStyle(This) 1876#define IDWriteTextFormat_GetFontWeight() (This)->lpVtbl->GetFontWeight(This) 1877#define IDWriteTextFormat_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This) 1878#define IDWriteTextFormat_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) 1879#define IDWriteTextFormat_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize) 1880#define IDWriteTextFormat_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This) 1881#define IDWriteTextFormat_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This) 1882#define IDWriteTextFormat_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This) 1883#define IDWriteTextFormat_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This) 1884#define IDWriteTextFormat_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign) 1885#define IDWriteTextFormat_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This) 1886#define IDWriteTextFormat_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection) 1887#define IDWriteTextFormat_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop) 1888#define IDWriteTextFormat_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) 1889#define IDWriteTextFormat_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment) 1890#define IDWriteTextFormat_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection) 1891#define IDWriteTextFormat_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment) 1892#define IDWriteTextFormat_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign) 1893#define IDWriteTextFormat_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping) 1894#endif /*COBJMACROS*/ 1895 1896#undef INTERFACE 1897#define INTERFACE IDWriteTextLayout 1898DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat) 1899{ 1900 BEGIN_INTERFACE 1901 1902#ifndef __cplusplus 1903 /* IUnknown methods */ 1904 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 1905 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 1906 STDMETHOD_(ULONG, Release)(THIS) PURE; 1907 1908 /* IDWriteTextFormat methods */ 1909 STDMETHOD(SetTextAlignment)(THIS_ 1910 DWRITE_TEXT_ALIGNMENT textAlignment) PURE; 1911 STDMETHOD(SetParagraphAlignment)(THIS_ 1912 DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE; 1913 STDMETHOD(SetWordWrapping)(THIS_ 1914 DWRITE_WORD_WRAPPING wordWrapping) PURE; 1915 STDMETHOD(SetReadingDirection)(THIS_ 1916 DWRITE_READING_DIRECTION readingDirection) PURE; 1917 STDMETHOD(SetFlowDirection)(THIS_ 1918 DWRITE_FLOW_DIRECTION flowDirection) PURE; 1919 STDMETHOD(SetIncrementalTabStop)(THIS_ 1920 FLOAT incrementalTabStop) PURE; 1921 STDMETHOD(SetTrimming)(THIS_ 1922 DWRITE_TRIMMING const *trimmingOptions, 1923 IDWriteInlineObject *trimmingSign) PURE; 1924 STDMETHOD(SetLineSpacing)(THIS_ 1925 DWRITE_LINE_SPACING_METHOD lineSpacingMethod, 1926 FLOAT lineSpacing, 1927 FLOAT baseline) PURE; 1928 STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE; 1929 STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE; 1930 STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE; 1931 STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE; 1932 STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE; 1933 STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE; 1934 STDMETHOD(GetTrimming)(THIS_ 1935 DWRITE_TRIMMING* trimmingOptions, 1936 IDWriteInlineObject **trimmingSign) PURE; 1937 STDMETHOD(GetLineSpacing)(THIS_ 1938 DWRITE_LINE_SPACING_METHOD *lineSpacingMethod, 1939 FLOAT *lineSpacing, 1940 FLOAT *baseline) PURE; 1941 STDMETHOD(GetFontCollection)(THIS_ 1942 IDWriteFontCollection **fontCollection) PURE; 1943 STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE; 1944 STDMETHOD(GetFontFamilyName)(THIS_ 1945 WCHAR *fontFamilyName, 1946 UINT32 nameSize) PURE; 1947 STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE; 1948 STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE; 1949 STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE; 1950 STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE; 1951 STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE; 1952 STDMETHOD(GetLocaleName)(THIS_ 1953 WCHAR *localeName, 1954 UINT32 nameSize) PURE; 1955#endif 1956 1957 /* IDWriteTextLayout methods */ 1958 STDMETHOD(SetMaxWidth)(THIS_ 1959 FLOAT maxWidth) PURE; 1960 STDMETHOD(SetMaxHeight)(THIS_ 1961 FLOAT maxHeight) PURE; 1962 STDMETHOD(SetFontCollection)(THIS_ 1963 IDWriteFontCollection *fontCollection, 1964 DWRITE_TEXT_RANGE textRange) PURE; 1965 STDMETHOD(SetFontFamilyName)(THIS_ 1966 WCHAR const *fontFamilyName, 1967 DWRITE_TEXT_RANGE textRange) PURE; 1968 STDMETHOD(SetFontWeight)(THIS_ 1969 DWRITE_FONT_WEIGHT fontWeight, 1970 DWRITE_TEXT_RANGE textRange) PURE; 1971 STDMETHOD(SetFontStyle)(THIS_ 1972 DWRITE_FONT_STYLE fontStyle, 1973 DWRITE_TEXT_RANGE textRange) PURE; 1974 STDMETHOD(SetFontStretch)(THIS_ 1975 DWRITE_FONT_STRETCH fontStretch, 1976 DWRITE_TEXT_RANGE textRange) PURE; 1977 STDMETHOD(SetFontSize)(THIS_ 1978 FLOAT fontSize, 1979 DWRITE_TEXT_RANGE textRange) PURE; 1980 STDMETHOD(SetUnderline)(THIS_ 1981 WINBOOL hasUnderline, 1982 DWRITE_TEXT_RANGE textRange) PURE; 1983 STDMETHOD(SetStrikethrough)(THIS_ 1984 WINBOOL hasStrikethrough, 1985 DWRITE_TEXT_RANGE textRange) PURE; 1986 STDMETHOD(SetDrawingEffect)(THIS_ 1987 IUnknown *drawingEffect, 1988 DWRITE_TEXT_RANGE textRange) PURE; 1989 STDMETHOD(SetInlineObject)(THIS_ 1990 IDWriteInlineObject *inlineObject, 1991 DWRITE_TEXT_RANGE textRange) PURE; 1992 STDMETHOD(SetTypography)(THIS_ 1993 IDWriteTypography *typography, 1994 DWRITE_TEXT_RANGE textRange) PURE; 1995 STDMETHOD(SetLocaleName)(THIS_ 1996 WCHAR const *localeName, 1997 DWRITE_TEXT_RANGE textRange) PURE; 1998 STDMETHOD_(FLOAT, GetMaxWidth)(THIS) PURE; 1999 STDMETHOD_(FLOAT, GetMaxHeight)(THIS) PURE; 2000 STDMETHOD(GetFontCollection)(THIS_ 2001 UINT32 currentPosition, 2002 IDWriteFontCollection** fontCollection, 2003 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2004 STDMETHOD(GetFontFamilyNameLength)(THIS_ 2005 UINT32 currentPosition, 2006 UINT32 *nameLength, 2007 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2008 STDMETHOD(GetFontFamilyName)(THIS_ 2009 UINT32 currentPosition, 2010 WCHAR *fontFamilyName, 2011 UINT32 nameSize, 2012 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2013 STDMETHOD(GetFontWeight)(THIS_ 2014 UINT32 currentPosition, 2015 DWRITE_FONT_WEIGHT *fontWeight, 2016 DWRITE_TEXT_RANGE* textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2017 STDMETHOD(GetFontStyle)(THIS_ 2018 UINT32 currentPosition, 2019 DWRITE_FONT_STYLE *fontStyle, 2020 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2021 STDMETHOD(GetFontStretch)(THIS_ 2022 UINT32 currentPosition, 2023 DWRITE_FONT_STRETCH* fontStretch, 2024 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2025 STDMETHOD(GetFontSize)(THIS_ 2026 UINT32 currentPosition, 2027 FLOAT *fontSize, 2028 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2029 STDMETHOD(GetUnderline)(THIS_ 2030 UINT32 currentPosition, 2031 WINBOOL *hasUnderline, 2032 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2033 STDMETHOD(GetStrikethrough)(THIS_ 2034 UINT32 currentPosition, 2035 WINBOOL *hasStrikethrough, 2036 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2037 STDMETHOD(GetDrawingEffect)(THIS_ 2038 UINT32 currentPosition, 2039 IUnknown **drawingEffect, 2040 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2041 STDMETHOD(GetInlineObject)(THIS_ 2042 UINT32 currentPosition, 2043 IDWriteInlineObject **inlineObject, 2044 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2045 STDMETHOD(GetTypography)(THIS_ 2046 UINT32 currentPosition, 2047 IDWriteTypography **typography, 2048 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2049 STDMETHOD(GetLocaleNameLength)(THIS_ 2050 UINT32 currentPosition, 2051 UINT32 *nameLength, 2052 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2053 STDMETHOD(GetLocaleName)(THIS_ 2054 UINT32 currentPosition, 2055 WCHAR *localeName, 2056 UINT32 nameSize, 2057 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE; 2058 STDMETHOD(Draw)(THIS_ 2059 void *clientDrawingContext, 2060 IDWriteTextRenderer *renderer, 2061 FLOAT originX, 2062 FLOAT originY) PURE; 2063 STDMETHOD(GetLineMetrics)(THIS_ 2064 DWRITE_LINE_METRICS *lineMetrics, 2065 UINT32 maxLineCount, 2066 UINT32 *actualLineCount) PURE; 2067 STDMETHOD(GetMetrics)(THIS_ 2068 DWRITE_TEXT_METRICS *textMetrics) PURE; 2069 STDMETHOD(GetOverhangMetrics)(THIS_ 2070 DWRITE_OVERHANG_METRICS *overhangs) PURE; 2071 STDMETHOD(GetClusterMetrics)(THIS_ 2072 DWRITE_CLUSTER_METRICS *clusterMetrics, 2073 UINT32 maxClusterCount, 2074 UINT32 *actualClusterCount) PURE; 2075 STDMETHOD(DetermineMinWidth)(THIS_ 2076 FLOAT *minWidth) PURE; 2077 STDMETHOD(HitTestPoint)(THIS_ 2078 FLOAT pointX, 2079 FLOAT pointY, 2080 WINBOOL *isTrailingHit, 2081 WINBOOL *isInside, 2082 DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE; 2083 STDMETHOD(HitTestTextPosition)(THIS_ 2084 UINT32 textPosition, 2085 WINBOOL isTrailingHit, 2086 FLOAT *pointX, 2087 FLOAT *pointY, 2088 DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE; 2089 STDMETHOD(HitTestTextRange)(THIS_ 2090 UINT32 textPosition, 2091 UINT32 textLength, 2092 FLOAT originX, 2093 FLOAT originY, 2094 DWRITE_HIT_TEST_METRICS *hitTestMetrics, 2095 UINT32 maxHitTestMetricsCount, 2096 UINT32 *actualHitTestMetricsCount) PURE; 2097 2098 END_INTERFACE 2099}; 2100#ifdef COBJMACROS 2101#define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2102#define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This) 2103#define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This) 2104#define IDWriteTextLayout_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This) 2105#define IDWriteTextLayout_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) 2106#define IDWriteTextLayout_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize) 2107#define IDWriteTextLayout_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This) 2108#define IDWriteTextLayout_GetFontSize() (This)->lpVtbl->GetFontSize(This) 2109#define IDWriteTextLayout_GetFontStretch() (This)->lpVtbl->GetFontStretch(This) 2110#define IDWriteTextLayout_GetFontStyle() (This)->lpVtbl->GetFontStyle(This) 2111#define IDWriteTextLayout_GetFontWeight() (This)->lpVtbl->GetFontWeight(This) 2112#define IDWriteTextLayout_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This) 2113#define IDWriteTextLayout_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) 2114#define IDWriteTextLayout_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize) 2115#define IDWriteTextLayout_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This) 2116#define IDWriteTextLayout_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This) 2117#define IDWriteTextLayout_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This) 2118#define IDWriteTextLayout_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This) 2119#define IDWriteTextLayout_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign) 2120#define IDWriteTextLayout_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This) 2121#define IDWriteTextLayout_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection) 2122#define IDWriteTextLayout_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop) 2123#define IDWriteTextLayout_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) 2124#define IDWriteTextLayout_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment) 2125#define IDWriteTextLayout_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection) 2126#define IDWriteTextLayout_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment) 2127#define IDWriteTextLayout_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign) 2128#define IDWriteTextLayout_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping) 2129#define IDWriteTextLayout_Draw(This,clientDrawingContext,renderer,originX,originY) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY) 2130#define IDWriteTextLayout_GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) (This)->lpVtbl->GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) 2131#define IDWriteTextLayout_DetermineMinWidth(This,minWidth) (This)->lpVtbl->DetermineMinWidth(This,minWidth) 2132#define IDWriteTextLayout_GetDrawingEffect(This,currentPosition,drawingEffect,textRange) (This)->lpVtbl->GetDrawingEffect(This,currentPosition,drawingEffect,textRange) 2133#define IDWriteTextLayout_GetFontCollection(This,currentPosition,fontCollection,textRange) (This)->lpVtbl->GetFontCollection(This,currentPosition,fontCollection,textRange) 2134#define IDWriteTextLayout_GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) (This)->lpVtbl->GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) 2135#define IDWriteTextLayout_GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) 2136#define IDWriteTextLayout_GetFontSize(This,currentPosition,fontSize,textRange) (This)->lpVtbl->GetFontSize(This,currentPosition,fontSize,textRange) 2137#define IDWriteTextLayout_GetFontStretch(This,currentPosition,fontStretch,textRange) (This)->lpVtbl->GetFontStretch(This,currentPosition,fontStretch,textRange) 2138#define IDWriteTextLayout_GetFontStyle(This,currentPosition,fontStyle,textRange) (This)->lpVtbl->GetFontStyle(This,currentPosition,fontStyle,textRange) 2139#define IDWriteTextLayout_GetFontWeight(This,currentPosition,fontWeight,textRange) (This)->lpVtbl->GetFontWeight(This,currentPosition,fontWeight,textRange) 2140#define IDWriteTextLayout_GetInlineObject(This,currentPosition,inlineObject,textRange) (This)->lpVtbl->GetInlineObject(This,currentPosition,inlineObject,textRange) 2141#define IDWriteTextLayout_GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) (This)->lpVtbl->GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) 2142#define IDWriteTextLayout_GetLocaleName(This,currentPosition,localeName,nameSize,textRange) (This)->lpVtbl->GetLocaleName(This,currentPosition,localeName,nameSize,textRange) 2143#define IDWriteTextLayout_GetLocaleNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetLocaleNameLength(This,currentPosition,nameLength,textRange) 2144#define IDWriteTextLayout_GetMaxHeight() (This)->lpVtbl->GetMaxHeight(This) 2145#define IDWriteTextLayout_GetMaxWidth() (This)->lpVtbl->GetMaxWidth(This) 2146#define IDWriteTextLayout_GetMetrics(This,textMetrics) (This)->lpVtbl->GetMetrics(This,textMetrics) 2147#define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) 2148#define IDWriteTextLayout_GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) (This)->lpVtbl->GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) 2149#define IDWriteTextLayout_GetTypography(This,currentPosition,typography,textRange) (This)->lpVtbl->GetTypography(This,currentPosition,typography,textRange) 2150#define IDWriteTextLayout_GetUnderline(This,currentPosition,hasUnderline,textRange) (This)->lpVtbl->GetUnderline(This,currentPosition,hasUnderline,textRange) 2151#define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) 2152#define IDWriteTextLayout_HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) 2153#define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) 2154#define IDWriteTextLayout_SetDrawingEffect(This,drawingEffect,textRange) (This)->lpVtbl->SetDrawingEffect(This,drawingEffect,textRange) 2155#define IDWriteTextLayout_SetFontCollection(This,fontCollection,textRange) (This)->lpVtbl->SetFontCollection(This,fontCollection,textRange) 2156#define IDWriteTextLayout_SetFontFamilyName(This,fontFamilyName,textRange) (This)->lpVtbl->SetFontFamilyName(This,fontFamilyName,textRange) 2157#define IDWriteTextLayout_SetFontSize(This,fontSize,textRange) (This)->lpVtbl->SetFontSize(This,fontSize,textRange) 2158#define IDWriteTextLayout_SetFontStretch(This,fontStretch,textRange) (This)->lpVtbl->SetFontStretch(This,fontStretch,textRange) 2159#define IDWriteTextLayout_SetFontStyle(This,fontStyle,textRange) (This)->lpVtbl->SetFontStyle(This,fontStyle,textRange) 2160#define IDWriteTextLayout_SetFontWeight(This,fontWeight,textRange) (This)->lpVtbl->SetFontWeight(This,fontWeight,textRange) 2161#define IDWriteTextLayout_SetInlineObject(This,inlineObject,textRange) (This)->lpVtbl->SetInlineObject(This,inlineObject,textRange) 2162#define IDWriteTextLayout_SetLocaleName(This,localeName,textRange) (This)->lpVtbl->SetLocaleName(This,localeName,textRange) 2163#define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) 2164#define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) 2165#define IDWriteTextLayout_SetStrikethrough(This,hasStrikethrough,textRange) (This)->lpVtbl->SetStrikethrough(This,hasStrikethrough,textRange) 2166#define IDWriteTextLayout_SetTypography(This,typography,textRange) (This)->lpVtbl->SetTypography(This,typography,textRange) 2167#define IDWriteTextLayout_SetUnderline(This,hasUnderline,textRange) (This)->lpVtbl->SetUnderline(This,hasUnderline,textRange) 2168#endif /*COBJMACROS*/ 2169 2170#undef INTERFACE 2171#define INTERFACE IDWriteTextRenderer 2172DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping) 2173{ 2174 BEGIN_INTERFACE 2175 2176#ifndef __cplusplus 2177 /* IUnknown methods */ 2178 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 2179 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 2180 STDMETHOD_(ULONG, Release)(THIS) PURE; 2181 2182 /* IDWritePixelSnapping methods */ 2183 STDMETHOD(IsPixelSnappingDisabled)(THIS_ 2184 void *clientDrawingContext, 2185 WINBOOL *isDisabled) PURE; 2186 STDMETHOD(GetCurrentTransform)(THIS_ 2187 void *clientDrawingContext, 2188 DWRITE_MATRIX *transform) PURE; 2189 STDMETHOD(GetPixelsPerDip)(THIS_ 2190 void *clientDrawingContext, 2191 FLOAT *pixelsPerDip) PURE; 2192#endif 2193 2194 /* IDWriteTextRenderer methods */ 2195 STDMETHOD(DrawGlyphRun)(THIS_ 2196 void *clientDrawingContext, 2197 FLOAT baselineOriginX, 2198 FLOAT baselineOriginY, 2199 DWRITE_MEASURING_MODE measuringMode, 2200 DWRITE_GLYPH_RUN const *glyphRun, 2201 DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, 2202 IUnknown* clientDrawingEffect) PURE; 2203 STDMETHOD(DrawUnderline)(THIS_ 2204 void *clientDrawingContext, 2205 FLOAT baselineOriginX, 2206 FLOAT baselineOriginY, 2207 DWRITE_UNDERLINE const *underline, 2208 IUnknown *clientDrawingEffect) PURE; 2209 STDMETHOD(DrawStrikethrough)(THIS_ 2210 void *clientDrawingContext, 2211 FLOAT baselineOriginX, 2212 FLOAT baselineOriginY, 2213 DWRITE_STRIKETHROUGH const *strikethrough, 2214 IUnknown* clientDrawingEffect) PURE; 2215 STDMETHOD(DrawInlineObject)( 2216 void *clientDrawingContext, 2217 FLOAT originX, 2218 FLOAT originY, 2219 IDWriteInlineObject *inlineObject, 2220 WINBOOL isSideways, 2221 WINBOOL isRightToLeft, 2222 IUnknown *clientDrawingEffect) PURE; 2223 2224 END_INTERFACE 2225}; 2226#ifdef COBJMACROS 2227#define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2228#define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) 2229#define IDWriteTextRenderer_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform) 2230#define IDWriteTextRenderer_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) 2231#define IDWriteTextRenderer_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) 2232#define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This) 2233#define IDWriteTextRenderer_DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) (This)->lpVtbl->DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) 2234#define IDWriteTextRenderer_DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) 2235#define IDWriteTextRenderer_DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) (This)->lpVtbl->DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) 2236#define IDWriteTextRenderer_DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) (This)->lpVtbl->DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) 2237#endif /*COBJMACROS*/ 2238 2239#undef INTERFACE 2240#define INTERFACE IDWriteTypography 2241DECLARE_INTERFACE_(IDWriteTypography,IUnknown) 2242{ 2243 BEGIN_INTERFACE 2244 2245#ifndef __cplusplus 2246 /* IUnknown methods */ 2247 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 2248 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 2249 STDMETHOD_(ULONG, Release)(THIS) PURE; 2250#endif 2251 2252 /* IDWriteTypography methods */ 2253 STDMETHOD_(HRESULT,AddFontFeature)(THIS_ DWRITE_FONT_FEATURE fontFeature) PURE; 2254 STDMETHOD_(HRESULT,GetFontFeature)(THIS_ UINT32 fontFeatureIndex,DWRITE_FONT_FEATURE * fontFeature) PURE; 2255 STDMETHOD_(UINT32,GetFontFeatureCount)(THIS) PURE; 2256 2257 END_INTERFACE 2258}; 2259#ifdef COBJMACROS 2260#define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2261#define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This) 2262#define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This) 2263#define IDWriteTypography_AddFontFeature(This,fontFeature) (This)->lpVtbl->AddFontFeature(This,fontFeature) 2264#define IDWriteTypography_GetFontFeature(This,fontFeatureIndex,fontFeature) (This)->lpVtbl->GetFontFeature(This,fontFeatureIndex,fontFeature) 2265#define IDWriteTypography_GetFontFeatureCount() (This)->lpVtbl->GetFontFeatureCount(This) 2266#endif /*COBJMACROS*/ 2267 2268#ifdef __cplusplus 2269extern "C" { 2270#endif 2271 2272DWRITEAPI HRESULT WINAPI DWriteCreateFactory( 2273 DWRITE_FACTORY_TYPE factoryType, 2274 REFIID iid, 2275 IUnknown **factory 2276); 2277 2278#ifdef __cplusplus 2279} 2280#endif 2281 2282__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3,0x8dff,0x4773,0x9f,0xf6,0x06,0x96,0xea,0xb7,0x72,0x67); 2283__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48); 2284__CRT_UUID_DECL(IDWriteFont, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x37); 2285__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02,0x3eea,0x4eee,0xa8,0x27,0x87,0xc1,0xa0,0x2a,0x0f,0xcc); 2286__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d,0x7024,0x4d43,0xbf,0xa9,0xd2,0x59,0x84,0xf5,0x38,0x49); 2287__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438,0x1d97,0x4ec1,0xae,0xf9,0xa2,0xfb,0x86,0xed,0x6a,0xcb); 2288__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef,0x812a,0x4c43,0x98,0x02,0x62,0xec,0x4a,0xbd,0x7a,0xdd); 2289__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a,0xcef5,0x47dc,0x87,0x69,0x1a,0x8b,0x41,0xbe,0xbb,0xb0); 2290__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e,0xd6af,0x4c9e,0x8a,0x08,0xd6,0x95,0xb1,0x1c,0xaa,0x49); 2291__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe,0x0ab8,0x4d91,0x8f,0x62,0x5d,0xd6,0xbe,0x34,0xa3,0xe0); 2292__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491,0x9853,0x4299,0x89,0x8f,0x64,0x32,0x98,0x3b,0x6f,0x3a); 2293__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7,0xe085,0x42d4,0x81,0xe3,0x6a,0x88,0x3b,0xde,0xd1,0x18); 2294__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209,0x099a,0x4b34,0xb8,0x6d,0xc2,0x2b,0x11,0x0e,0x77,0x71); 2295__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a,0x2add,0x47cd,0x82,0xee,0xd9,0xec,0x34,0x68,0x8e,0x75); 2296__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44,0x0ca0,0x4701,0xb3,0xfa,0xbe,0xc5,0x18,0x2a,0xe4,0xf6); 2297__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58,0x5094,0x47c8,0xad,0xc8,0xfb,0xce,0xa6,0x0a,0xe9,0x2b); 2298__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e,0x7f46,0x43b4,0x84,0xb3,0xe4,0xe6,0x24,0x9c,0x36,0x5d); 2299__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da,0xecf4,0x4d24,0xb6,0x44,0xb3,0x4f,0x68,0x42,0x02,0x4b); 2300__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa0,0x72,0x4e,0xb8,0x19); 2301__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3,0x106f,0x47ab,0x83,0x73,0x1c,0x62,0x95,0xeb,0x10,0xb3); 2302__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818,0x31d7,0x4fd3,0xa1,0x51,0x7c,0x5e,0x22,0x5d,0xb5,0x5a); 2303__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037,0x6d14,0x410b,0x9b,0xfe,0x0b,0x18,0x2b,0xb7,0x09,0x61); 2304__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049,0x5ff7,0x435d,0x83,0x48,0x4b,0xe9,0x7c,0xfa,0x6c,0x7c); 2305__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4,0x52f0,0x492b,0xbf,0xa8,0x29,0xc7,0x2e,0xe0,0xa4,0x68); 2306 2307#define IDWriteLocalFontFileLoader __MINGW_POISON_NAME(IDWriteLocalFontFileLoader) 2308#define IDWriteTypography __MINGW_POISON_NAME(IDWriteTypography) 2309 2310#endif /* __INC_DWRITE__ */ 2311