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__ 22 typedef struct IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; 23 #endif 24 25 #ifndef __IDWriteFactory_FWD_DEFINED__ 26 #define __IDWriteFactory_FWD_DEFINED__ 27 typedef struct IDWriteFactory IDWriteFactory; 28 #endif 29 30 #ifndef __IDWriteFont_FWD_DEFINED__ 31 #define __IDWriteFont_FWD_DEFINED__ 32 typedef struct IDWriteFont IDWriteFont; 33 #endif 34 35 #ifndef __IDWriteFontCollection_FWD_DEFINED__ 36 #define __IDWriteFontCollection_FWD_DEFINED__ 37 typedef struct IDWriteFontCollection IDWriteFontCollection; 38 #endif 39 40 #ifndef __IDWriteFontFace_FWD_DEFINED__ 41 #define __IDWriteFontFace_FWD_DEFINED__ 42 typedef struct IDWriteFontFace IDWriteFontFace; 43 #endif 44 45 #ifndef __IDWriteFontFamily_FWD_DEFINED__ 46 #define __IDWriteFontFamily_FWD_DEFINED__ 47 typedef struct IDWriteFontFamily IDWriteFontFamily; 48 #endif 49 50 #ifndef __IDWriteFontList_FWD_DEFINED__ 51 #define __IDWriteFontList_FWD_DEFINED__ 52 typedef struct IDWriteFontList IDWriteFontList; 53 #endif 54 55 #ifndef __IDWriteFontFile_FWD_DEFINED__ 56 #define __IDWriteFontFile_FWD_DEFINED__ 57 typedef struct IDWriteFontFile IDWriteFontFile; 58 #endif 59 60 #ifndef __IDWriteFontFileLoader_FWD_DEFINED__ 61 #define __IDWriteFontFileLoader_FWD_DEFINED__ 62 typedef struct IDWriteFontFileLoader IDWriteFontFileLoader; 63 #endif 64 65 #ifndef __IDWriteFontFileStream_FWD_DEFINED__ 66 #define __IDWriteFontFileStream_FWD_DEFINED__ 67 typedef struct IDWriteFontFileStream IDWriteFontFileStream; 68 #endif 69 70 #ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ 71 #define __IDWriteFontCollectionLoader_FWD_DEFINED__ 72 typedef struct IDWriteFontCollectionLoader IDWriteFontCollectionLoader; 73 #endif 74 75 #ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ 76 #define __IDWriteFontFileEnumerator_FWD_DEFINED__ 77 typedef struct IDWriteFontFileEnumerator IDWriteFontFileEnumerator; 78 #endif 79 80 #ifndef __IDWriteGdiInterop_FWD_DEFINED__ 81 #define __IDWriteGdiInterop_FWD_DEFINED__ 82 typedef 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__ 89 typedef struct ID2D1SimplifiedGeometrySink IDWriteGeometrySink; 90 #endif 91 92 #ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ 93 #define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ 94 typedef struct IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; 95 #endif 96 97 #ifndef __IDWriteInlineObject_FWD_DEFINED__ 98 #define __IDWriteInlineObject_FWD_DEFINED__ 99 typedef struct IDWriteInlineObject IDWriteInlineObject; 100 #endif 101 102 #ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ 103 #define __IDWriteLocalFontFileLoader_FWD_DEFINED__ 104 typedef struct IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; 105 #endif 106 107 #ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ 108 #define __IDWriteLocalizedStrings_FWD_DEFINED__ 109 typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings; 110 #endif 111 112 #ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ 113 #define __IDWriteNumberSubstitution_FWD_DEFINED__ 114 typedef struct IDWriteNumberSubstitution IDWriteNumberSubstitution; 115 #endif 116 117 #ifndef __IDWritePixelSnapping_FWD_DEFINED__ 118 #define __IDWritePixelSnapping_FWD_DEFINED__ 119 typedef struct IDWritePixelSnapping IDWritePixelSnapping; 120 #endif 121 122 #ifndef __IDWriteRenderingParams_FWD_DEFINED__ 123 #define __IDWriteRenderingParams_FWD_DEFINED__ 124 typedef struct IDWriteRenderingParams IDWriteRenderingParams; 125 #endif 126 127 #ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ 128 #define __IDWriteTextAnalysisSink_FWD_DEFINED__ 129 typedef struct IDWriteTextAnalysisSink IDWriteTextAnalysisSink; 130 #endif 131 132 #ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ 133 #define __IDWriteTextAnalysisSource_FWD_DEFINED__ 134 typedef struct IDWriteTextAnalysisSource IDWriteTextAnalysisSource; 135 #endif 136 137 #ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ 138 #define __IDWriteTextAnalyzer_FWD_DEFINED__ 139 typedef struct IDWriteTextAnalyzer IDWriteTextAnalyzer; 140 #endif 141 142 #ifndef __IDWriteTextFormat_FWD_DEFINED__ 143 #define __IDWriteTextFormat_FWD_DEFINED__ 144 typedef struct IDWriteTextFormat IDWriteTextFormat; 145 #endif 146 147 #ifndef __IDWriteTextLayout_FWD_DEFINED__ 148 #define __IDWriteTextLayout_FWD_DEFINED__ 149 typedef struct IDWriteTextLayout IDWriteTextLayout; 150 #endif 151 152 #ifndef __IDWriteTextRenderer_FWD_DEFINED__ 153 #define __IDWriteTextRenderer_FWD_DEFINED__ 154 typedef struct IDWriteTextRenderer IDWriteTextRenderer; 155 #endif 156 157 #ifndef __IDWriteTypography_FWD_DEFINED__ 158 #define __IDWriteTypography_FWD_DEFINED__ 159 typedef struct IDWriteTypography IDWriteTypography; 160 #endif 161 162 #include <dcommon.h> 163 164 typedef 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 186 typedef 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 193 typedef enum DWRITE_FACTORY_TYPE { 194 DWRITE_FACTORY_TYPE_SHARED = 0, 195 DWRITE_FACTORY_TYPE_ISOLATED 196 } DWRITE_FACTORY_TYPE; 197 198 typedef enum DWRITE_FLOW_DIRECTION { 199 DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM 200 } DWRITE_FLOW_DIRECTION; 201 202 typedef 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 212 typedef 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 293 typedef 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 304 typedef 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 311 DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); 312 #endif 313 314 typedef 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 328 typedef 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 334 typedef 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 353 typedef enum DWRITE_LINE_SPACING_METHOD { 354 DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, 355 DWRITE_LINE_SPACING_METHOD_UNIFORM 356 } DWRITE_LINE_SPACING_METHOD; 357 358 typedef 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 366 typedef 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 372 typedef 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 378 typedef enum DWRITE_READING_DIRECTION { 379 DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, 380 DWRITE_READING_DIRECTION_RIGHT_TO_LEFT 381 } DWRITE_READING_DIRECTION; 382 383 typedef 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 393 typedef enum DWRITE_SCRIPT_SHAPES { 394 DWRITE_SCRIPT_SHAPES_DEFAULT = 0, 395 DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 396 } DWRITE_SCRIPT_SHAPES; 397 398 typedef 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 404 typedef enum DWRITE_TEXTURE_TYPE { 405 DWRITE_TEXTURE_ALIASED_1x1 = 0, 406 DWRITE_TEXTURE_CLEARTYPE_3x1 407 } DWRITE_TEXTURE_TYPE; 408 409 typedef enum DWRITE_TRIMMING_GRANULARITY { 410 DWRITE_TRIMMING_GRANULARITY_NONE, 411 DWRITE_TRIMMING_GRANULARITY_CHARACTER, 412 DWRITE_TRIMMING_GRANULARITY_WORD 413 } DWRITE_TRIMMING_GRANULARITY; 414 415 typedef enum DWRITE_WORD_WRAPPING { 416 DWRITE_WORD_WRAPPING_WRAP, 417 DWRITE_WORD_WRAPPING_NO_WRAP 418 } DWRITE_WORD_WRAPPING; 419 420 typedef struct _DWRITE_OVERHANG_METRICS { 421 FLOAT left; 422 FLOAT top; 423 FLOAT right; 424 FLOAT bottom; 425 } DWRITE_OVERHANG_METRICS, *PDWRITE_OVERHANG_METRICS; 426 427 typedef 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 438 typedef struct DWRITE_FONT_FEATURE { 439 DWRITE_FONT_FEATURE_TAG nameTag; 440 UINT32 parameter; 441 } DWRITE_FONT_FEATURE; 442 443 typedef 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 456 typedef 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 466 typedef struct DWRITE_GLYPH_OFFSET { 467 FLOAT advanceOffset; 468 FLOAT ascenderOffset; 469 } DWRITE_GLYPH_OFFSET; 470 471 typedef 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 482 typedef 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 490 typedef 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 501 typedef struct DWRITE_INLINE_OBJECT_METRICS { 502 FLOAT width; 503 FLOAT height; 504 FLOAT baseline; 505 WINBOOL supportsSideways; 506 } DWRITE_INLINE_OBJECT_METRICS; 507 508 typedef 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 516 typedef 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 525 typedef 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 534 typedef struct DWRITE_SCRIPT_ANALYSIS { 535 UINT16 script; 536 DWRITE_SCRIPT_SHAPES shapes; 537 } DWRITE_SCRIPT_ANALYSIS; 538 539 typedef 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 547 typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { 548 UINT16 isShapedAlone :1; 549 UINT16 reserved :15; 550 } DWRITE_SHAPING_TEXT_PROPERTIES; 551 552 typedef 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 562 typedef 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 574 typedef struct DWRITE_TEXT_RANGE { 575 UINT32 startPosition; 576 UINT32 length; 577 } DWRITE_TEXT_RANGE; 578 579 typedef struct DWRITE_TRIMMING { 580 DWRITE_TRIMMING_GRANULARITY granularity; 581 UINT32 delimiter; 582 UINT32 delimiterCount; 583 } DWRITE_TRIMMING; 584 585 typedef struct DWRITE_TYPOGRAPHIC_FEATURES { 586 DWRITE_FONT_FEATURE *features; 587 UINT32 featureCount; 588 } DWRITE_TYPOGRAPHIC_FEATURES; 589 590 typedef 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 617 DECLARE_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 675 DECLARE_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 832 DECLARE_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 893 DECLARE_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 934 DECLARE_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 1041 DECLARE_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 1075 DECLARE_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 1128 DECLARE_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 1166 DECLARE_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 1194 DECLARE_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 1235 DECLARE_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 1260 DECLARE_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 1287 DECLARE_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 1337 DECLARE_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 1378 DECLARE_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 1420 DECLARE_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 1449 DECLARE_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 1502 DECLARE_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 1525 DECLARE_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 1560 DECLARE_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 1593 DECLARE_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 1640 DECLARE_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 1689 DECLARE_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 1804 DECLARE_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 1898 DECLARE_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 2172 DECLARE_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 2241 DECLARE_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 2269 extern "C" { 2270 #endif 2271 2272 DWRITEAPI 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