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