1 /*** Autogenerated by WIDL 6.4 from include/dwrite_1.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __dwrite_1_h__ 17 #define __dwrite_1_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IDWriteFactory1_FWD_DEFINED__ 22 #define __IDWriteFactory1_FWD_DEFINED__ 23 typedef interface IDWriteFactory1 IDWriteFactory1; 24 #ifdef __cplusplus 25 interface IDWriteFactory1; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IDWriteFontFace1_FWD_DEFINED__ 30 #define __IDWriteFontFace1_FWD_DEFINED__ 31 typedef interface IDWriteFontFace1 IDWriteFontFace1; 32 #ifdef __cplusplus 33 interface IDWriteFontFace1; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IDWriteFont1_FWD_DEFINED__ 38 #define __IDWriteFont1_FWD_DEFINED__ 39 typedef interface IDWriteFont1 IDWriteFont1; 40 #ifdef __cplusplus 41 interface IDWriteFont1; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IDWriteRenderingParams1_FWD_DEFINED__ 46 #define __IDWriteRenderingParams1_FWD_DEFINED__ 47 typedef interface IDWriteRenderingParams1 IDWriteRenderingParams1; 48 #ifdef __cplusplus 49 interface IDWriteRenderingParams1; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IDWriteTextAnalyzer1_FWD_DEFINED__ 54 #define __IDWriteTextAnalyzer1_FWD_DEFINED__ 55 typedef interface IDWriteTextAnalyzer1 IDWriteTextAnalyzer1; 56 #ifdef __cplusplus 57 interface IDWriteTextAnalyzer1; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IDWriteTextAnalysisSource1_FWD_DEFINED__ 62 #define __IDWriteTextAnalysisSource1_FWD_DEFINED__ 63 typedef interface IDWriteTextAnalysisSource1 IDWriteTextAnalysisSource1; 64 #ifdef __cplusplus 65 interface IDWriteTextAnalysisSource1; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IDWriteTextAnalysisSink1_FWD_DEFINED__ 70 #define __IDWriteTextAnalysisSink1_FWD_DEFINED__ 71 typedef interface IDWriteTextAnalysisSink1 IDWriteTextAnalysisSink1; 72 #ifdef __cplusplus 73 interface IDWriteTextAnalysisSink1; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IDWriteTextLayout1_FWD_DEFINED__ 78 #define __IDWriteTextLayout1_FWD_DEFINED__ 79 typedef interface IDWriteTextLayout1 IDWriteTextLayout1; 80 #ifdef __cplusplus 81 interface IDWriteTextLayout1; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __IDWriteBitmapRenderTarget1_FWD_DEFINED__ 86 #define __IDWriteBitmapRenderTarget1_FWD_DEFINED__ 87 typedef interface IDWriteBitmapRenderTarget1 IDWriteBitmapRenderTarget1; 88 #ifdef __cplusplus 89 interface IDWriteBitmapRenderTarget1; 90 #endif /* __cplusplus */ 91 #endif 92 93 /* Headers for imported files */ 94 95 #include <dwrite.h> 96 97 #ifdef __cplusplus 98 extern "C" { 99 #endif 100 101 typedef enum DWRITE_PANOSE_FAMILY { 102 DWRITE_PANOSE_FAMILY_ANY = 0, 103 DWRITE_PANOSE_FAMILY_NO_FIT = 1, 104 DWRITE_PANOSE_FAMILY_TEXT_DISPLAY = 2, 105 DWRITE_PANOSE_FAMILY_SCRIPT = 3, 106 DWRITE_PANOSE_FAMILY_DECORATIVE = 4, 107 DWRITE_PANOSE_FAMILY_SYMBOL = 5, 108 DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY_SYMBOL 109 } DWRITE_PANOSE_FAMILY; 110 typedef enum DWRITE_PANOSE_SERIF_STYLE { 111 DWRITE_PANOSE_SERIF_STYLE_ANY = 0, 112 DWRITE_PANOSE_SERIF_STYLE_NO_FIT = 1, 113 DWRITE_PANOSE_SERIF_STYLE_COVE = 2, 114 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE = 3, 115 DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE = 4, 116 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE = 5, 117 DWRITE_PANOSE_SERIF_STYLE_SQUARE = 6, 118 DWRITE_PANOSE_SERIF_STYLE_THIN = 7, 119 DWRITE_PANOSE_SERIF_STYLE_OVAL = 8, 120 DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED = 9, 121 DWRITE_PANOSE_SERIF_STYLE_TRIANGLE = 10, 122 DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS = 11, 123 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS = 12, 124 DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS = 13, 125 DWRITE_PANOSE_SERIF_STYLE_FLARED = 14, 126 DWRITE_PANOSE_SERIF_STYLE_ROUNDED = 15, 127 DWRITE_PANOSE_SERIF_STYLE_SCRIPT = 16, 128 DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS, 129 DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE_OVAL 130 } DWRITE_PANOSE_SERIF_STYLE; 131 typedef enum DWRITE_PANOSE_WEIGHT { 132 DWRITE_PANOSE_WEIGHT_ANY = 0, 133 DWRITE_PANOSE_WEIGHT_NO_FIT = 1, 134 DWRITE_PANOSE_WEIGHT_VERY_LIGHT = 2, 135 DWRITE_PANOSE_WEIGHT_LIGHT = 3, 136 DWRITE_PANOSE_WEIGHT_THIN = 4, 137 DWRITE_PANOSE_WEIGHT_BOOK = 5, 138 DWRITE_PANOSE_WEIGHT_MEDIUM = 6, 139 DWRITE_PANOSE_WEIGHT_DEMI = 7, 140 DWRITE_PANOSE_WEIGHT_BOLD = 8, 141 DWRITE_PANOSE_WEIGHT_HEAVY = 9, 142 DWRITE_PANOSE_WEIGHT_BLACK = 10, 143 DWRITE_PANOSE_WEIGHT_EXTRA_BLACK = 11, 144 DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT_EXTRA_BLACK 145 } DWRITE_PANOSE_WEIGHT; 146 typedef enum DWRITE_PANOSE_PROPORTION { 147 DWRITE_PANOSE_PROPORTION_ANY = 0, 148 DWRITE_PANOSE_PROPORTION_NO_FIT = 1, 149 DWRITE_PANOSE_PROPORTION_OLD_STYLE = 2, 150 DWRITE_PANOSE_PROPORTION_MODERN = 3, 151 DWRITE_PANOSE_PROPORTION_EVEN_WIDTH = 4, 152 DWRITE_PANOSE_PROPORTION_EXPANDED = 5, 153 DWRITE_PANOSE_PROPORTION_CONDENSED = 6, 154 DWRITE_PANOSE_PROPORTION_VERY_EXPANDED = 7, 155 DWRITE_PANOSE_PROPORTION_VERY_CONDENSED = 8, 156 DWRITE_PANOSE_PROPORTION_MONOSPACED = 9 157 } DWRITE_PANOSE_PROPORTION; 158 typedef enum DWRITE_PANOSE_CONTRAST { 159 DWRITE_PANOSE_CONTRAST_ANY = 0, 160 DWRITE_PANOSE_CONTRAST_NO_FIT = 1, 161 DWRITE_PANOSE_CONTRAST_NONE = 2, 162 DWRITE_PANOSE_CONTRAST_VERY_LOW = 3, 163 DWRITE_PANOSE_CONTRAST_LOW = 4, 164 DWRITE_PANOSE_CONTRAST_MEDIUM_LOW = 5, 165 DWRITE_PANOSE_CONTRAST_MEDIUM = 6, 166 DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH = 7, 167 DWRITE_PANOSE_CONTRAST_HIGH = 8, 168 DWRITE_PANOSE_CONTRAST_VERY_HIGH = 9, 169 DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW = 10, 170 DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM = 11, 171 DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH = 12, 172 DWRITE_PANOSE_CONTRAST_BROKEN = 13 173 } DWRITE_PANOSE_CONTRAST; 174 typedef enum DWRITE_PANOSE_STROKE_VARIATION { 175 DWRITE_PANOSE_STROKE_VARIATION_ANY = 0, 176 DWRITE_PANOSE_STROKE_VARIATION_NO_FIT = 1, 177 DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION = 2, 178 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL = 3, 179 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL = 4, 180 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL = 5, 181 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL = 6, 182 DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL = 7, 183 DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL = 8, 184 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL = 9, 185 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL = 10 186 } DWRITE_PANOSE_STROKE_VARIATION; 187 typedef enum DWRITE_PANOSE_ARM_STYLE { 188 DWRITE_PANOSE_ARM_STYLE_ANY = 0, 189 DWRITE_PANOSE_ARM_STYLE_NO_FIT = 1, 190 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL = 2, 191 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE = 3, 192 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL = 4, 193 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF = 5, 194 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF = 6, 195 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL = 7, 196 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE = 8, 197 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL = 9, 198 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF = 10, 199 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF = 11, 200 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL, 201 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL, 202 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL, 203 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE, 204 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL, 205 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF, 206 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF 207 } DWRITE_PANOSE_ARM_STYLE; 208 typedef enum DWRITE_PANOSE_LETTERFORM { 209 DWRITE_PANOSE_LETTERFORM_ANY = 0, 210 DWRITE_PANOSE_LETTERFORM_NO_FIT = 1, 211 DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT = 2, 212 DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED = 3, 213 DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED = 4, 214 DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED = 5, 215 DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED = 6, 216 DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER = 7, 217 DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE = 8, 218 DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT = 9, 219 DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED = 10, 220 DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED = 11, 221 DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED = 12, 222 DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED = 13, 223 DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER = 14, 224 DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE = 15 225 } DWRITE_PANOSE_LETTERFORM; 226 typedef enum DWRITE_PANOSE_MIDLINE { 227 DWRITE_PANOSE_MIDLINE_ANY = 0, 228 DWRITE_PANOSE_MIDLINE_NO_FIT = 1, 229 DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED = 2, 230 DWRITE_PANOSE_MIDLINE_STANDARD_POINTED = 3, 231 DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED = 4, 232 DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED = 5, 233 DWRITE_PANOSE_MIDLINE_HIGH_POINTED = 6, 234 DWRITE_PANOSE_MIDLINE_HIGH_SERIFED = 7, 235 DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED = 8, 236 DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED = 9, 237 DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED = 10, 238 DWRITE_PANOSE_MIDLINE_LOW_TRIMMED = 11, 239 DWRITE_PANOSE_MIDLINE_LOW_POINTED = 12, 240 DWRITE_PANOSE_MIDLINE_LOW_SERIFED = 13 241 } DWRITE_PANOSE_MIDLINE; 242 typedef enum DWRITE_PANOSE_XHEIGHT { 243 DWRITE_PANOSE_XHEIGHT_ANY = 0, 244 DWRITE_PANOSE_XHEIGHT_NO_FIT = 1, 245 DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL = 2, 246 DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD = 3, 247 DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE = 4, 248 DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL = 5, 249 DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD = 6, 250 DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE = 7, 251 DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD, 252 DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD 253 } DWRITE_PANOSE_XHEIGHT; 254 typedef enum DWRITE_PANOSE_TOOL_KIND { 255 DWRITE_PANOSE_TOOL_KIND_ANY = 0, 256 DWRITE_PANOSE_TOOL_KIND_NO_FIT = 1, 257 DWRITE_PANOSE_TOOL_KIND_FLAT_NIB = 2, 258 DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT = 3, 259 DWRITE_PANOSE_TOOL_KIND_ENGRAVED = 4, 260 DWRITE_PANOSE_TOOL_KIND_BALL = 5, 261 DWRITE_PANOSE_TOOL_KIND_BRUSH = 6, 262 DWRITE_PANOSE_TOOL_KIND_ROUGH = 7, 263 DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP = 8, 264 DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH = 9 265 } DWRITE_PANOSE_TOOL_KIND; 266 typedef enum DWRITE_PANOSE_SPACING { 267 DWRITE_PANOSE_SPACING_ANY = 0, 268 DWRITE_PANOSE_SPACING_NO_FIT = 1, 269 DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED = 2, 270 DWRITE_PANOSE_SPACING_MONOSPACED = 3 271 } DWRITE_PANOSE_SPACING; 272 typedef enum DWRITE_PANOSE_ASPECT_RATIO { 273 DWRITE_PANOSE_ASPECT_RATIO_ANY = 0, 274 DWRITE_PANOSE_ASPECT_RATIO_NO_FIT = 1, 275 DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED = 2, 276 DWRITE_PANOSE_ASPECT_RATIO_CONDENSED = 3, 277 DWRITE_PANOSE_ASPECT_RATIO_NORMAL = 4, 278 DWRITE_PANOSE_ASPECT_RATIO_EXPANDED = 5, 279 DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED = 6 280 } DWRITE_PANOSE_ASPECT_RATIO; 281 typedef enum DWRITE_PANOSE_SCRIPT_TOPOLOGY { 282 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY = 0, 283 DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT = 1, 284 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED = 2, 285 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING = 3, 286 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED = 4, 287 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED = 5, 288 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING = 6, 289 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED = 7, 290 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED = 8, 291 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING = 9, 292 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED = 10 293 } DWRITE_PANOSE_SCRIPT_TOPOLOGY; 294 typedef enum DWRITE_PANOSE_SCRIPT_FORM { 295 DWRITE_PANOSE_SCRIPT_FORM_ANY = 0, 296 DWRITE_PANOSE_SCRIPT_FORM_NO_FIT = 1, 297 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING = 2, 298 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING = 3, 299 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING = 4, 300 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING = 5, 301 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING = 6, 302 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING = 7, 303 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING = 8, 304 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING = 9, 305 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING = 10, 306 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING = 11, 307 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING = 12, 308 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING = 13 309 } DWRITE_PANOSE_SCRIPT_FORM; 310 typedef enum DWRITE_PANOSE_FINIALS { 311 DWRITE_PANOSE_FINIALS_ANY = 0, 312 DWRITE_PANOSE_FINIALS_NO_FIT = 1, 313 DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS = 2, 314 DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS = 3, 315 DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS = 4, 316 DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS = 5, 317 DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS = 6, 318 DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS = 7, 319 DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS = 8, 320 DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS = 9, 321 DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS = 10, 322 DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS = 11, 323 DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS = 12, 324 DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS = 13 325 } DWRITE_PANOSE_FINIALS; 326 typedef enum DWRITE_PANOSE_XASCENT { 327 DWRITE_PANOSE_XASCENT_ANY = 0, 328 DWRITE_PANOSE_XASCENT_NO_FIT = 1, 329 DWRITE_PANOSE_XASCENT_VERY_LOW = 2, 330 DWRITE_PANOSE_XASCENT_LOW = 3, 331 DWRITE_PANOSE_XASCENT_MEDIUM = 4, 332 DWRITE_PANOSE_XASCENT_HIGH = 5, 333 DWRITE_PANOSE_XASCENT_VERY_HIGH = 6 334 } DWRITE_PANOSE_XASCENT; 335 typedef enum DWRITE_PANOSE_DECORATIVE_CLASS { 336 DWRITE_PANOSE_DECORATIVE_CLASS_ANY = 0, 337 DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT = 1, 338 DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE = 2, 339 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY = 3, 340 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS = 4, 341 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT = 5, 342 DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS = 6, 343 DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON = 7, 344 DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS = 8, 345 DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED = 9, 346 DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND = 10, 347 DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE = 11, 348 DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE = 12 349 } DWRITE_PANOSE_DECORATIVE_CLASS; 350 typedef enum DWRITE_PANOSE_ASPECT { 351 DWRITE_PANOSE_ASPECT_ANY = 0, 352 DWRITE_PANOSE_ASPECT_NO_FIT = 1, 353 DWRITE_PANOSE_ASPECT_SUPER_CONDENSED = 2, 354 DWRITE_PANOSE_ASPECT_VERY_CONDENSED = 3, 355 DWRITE_PANOSE_ASPECT_CONDENSED = 4, 356 DWRITE_PANOSE_ASPECT_NORMAL = 5, 357 DWRITE_PANOSE_ASPECT_EXTENDED = 6, 358 DWRITE_PANOSE_ASPECT_VERY_EXTENDED = 7, 359 DWRITE_PANOSE_ASPECT_SUPER_EXTENDED = 8, 360 DWRITE_PANOSE_ASPECT_MONOSPACED = 9 361 } DWRITE_PANOSE_ASPECT; 362 typedef enum DWRITE_PANOSE_FILL { 363 DWRITE_PANOSE_FILL_ANY = 0, 364 DWRITE_PANOSE_FILL_NO_FIT = 1, 365 DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL = 2, 366 DWRITE_PANOSE_FILL_NO_FILL = 3, 367 DWRITE_PANOSE_FILL_PATTERNED_FILL = 4, 368 DWRITE_PANOSE_FILL_COMPLEX_FILL = 5, 369 DWRITE_PANOSE_FILL_SHAPED_FILL = 6, 370 DWRITE_PANOSE_FILL_DRAWN_DISTRESSED = 7 371 } DWRITE_PANOSE_FILL; 372 typedef enum DWRITE_PANOSE_LINING { 373 DWRITE_PANOSE_LINING_ANY = 0, 374 DWRITE_PANOSE_LINING_NO_FIT = 1, 375 DWRITE_PANOSE_LINING_NONE = 2, 376 DWRITE_PANOSE_LINING_INLINE = 3, 377 DWRITE_PANOSE_LINING_OUTLINE = 4, 378 DWRITE_PANOSE_LINING_ENGRAVED = 5, 379 DWRITE_PANOSE_LINING_SHADOW = 6, 380 DWRITE_PANOSE_LINING_RELIEF = 7, 381 DWRITE_PANOSE_LINING_BACKDROP = 8 382 } DWRITE_PANOSE_LINING; 383 typedef enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY { 384 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY = 0, 385 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT = 1, 386 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD = 2, 387 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE = 3, 388 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT = 4, 389 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO = 5, 390 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING = 6, 391 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS = 7, 392 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS = 8, 393 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS = 9, 394 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE = 10, 395 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY = 11, 396 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A = 12, 397 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE = 13, 398 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER = 14, 399 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE = 15 400 } DWRITE_PANOSE_DECORATIVE_TOPOLOGY; 401 typedef enum DWRITE_PANOSE_CHARACTER_RANGES { 402 DWRITE_PANOSE_CHARACTER_RANGES_ANY = 0, 403 DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT = 1, 404 DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION = 2, 405 DWRITE_PANOSE_CHARACTER_RANGES_LITERALS = 3, 406 DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE = 4, 407 DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS = 5 408 } DWRITE_PANOSE_CHARACTER_RANGES; 409 typedef enum DWRITE_PANOSE_SYMBOL_KIND { 410 DWRITE_PANOSE_SYMBOL_KIND_ANY = 0, 411 DWRITE_PANOSE_SYMBOL_KIND_NO_FIT = 1, 412 DWRITE_PANOSE_SYMBOL_KIND_MONTAGES = 2, 413 DWRITE_PANOSE_SYMBOL_KIND_PICTURES = 3, 414 DWRITE_PANOSE_SYMBOL_KIND_SHAPES = 4, 415 DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC = 5, 416 DWRITE_PANOSE_SYMBOL_KIND_MUSIC = 6, 417 DWRITE_PANOSE_SYMBOL_KIND_EXPERT = 7, 418 DWRITE_PANOSE_SYMBOL_KIND_PATTERNS = 8, 419 DWRITE_PANOSE_SYMBOL_KIND_BOARDERS = 9, 420 DWRITE_PANOSE_SYMBOL_KIND_ICONS = 10, 421 DWRITE_PANOSE_SYMBOL_KIND_LOGOS = 11, 422 DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC = 12 423 } DWRITE_PANOSE_SYMBOL_KIND; 424 typedef enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO { 425 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY = 0, 426 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT = 1, 427 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH = 2, 428 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE = 3, 429 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE = 4, 430 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE = 5, 431 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE = 6, 432 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL = 7, 433 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW = 8, 434 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW = 9 435 } DWRITE_PANOSE_SYMBOL_ASPECT_RATIO; 436 typedef enum DWRITE_OUTLINE_THRESHOLD { 437 DWRITE_OUTLINE_THRESHOLD_ANTIALIASED = 0, 438 DWRITE_OUTLINE_THRESHOLD_ALIASED = 1 439 } DWRITE_OUTLINE_THRESHOLD; 440 typedef enum DWRITE_BASELINE { 441 DWRITE_BASELINE_DEFAULT = 0, 442 DWRITE_BASELINE_ROMAN = 1, 443 DWRITE_BASELINE_CENTRAL = 2, 444 DWRITE_BASELINE_MATH = 3, 445 DWRITE_BASELINE_HANGING = 4, 446 DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM = 5, 447 DWRITE_BASELINE_IDEOGRAPHIC_TOP = 6, 448 DWRITE_BASELINE_MINIMUM = 7, 449 DWRITE_BASELINE_MAXIMUM = 8 450 } DWRITE_BASELINE; 451 typedef enum DWRITE_VERTICAL_GLYPH_ORIENTATION { 452 DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT = 0, 453 DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED = 1 454 } DWRITE_VERTICAL_GLYPH_ORIENTATION; 455 typedef enum DWRITE_GLYPH_ORIENTATION_ANGLE { 456 DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES = 0, 457 DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES = 1, 458 DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES = 2, 459 DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES = 3 460 } DWRITE_GLYPH_ORIENTATION_ANGLE; 461 typedef struct DWRITE_FONT_METRICS1 { 462 UINT16 designUnitsPerEm; 463 UINT16 ascent; 464 UINT16 descent; 465 INT16 lineGap; 466 UINT16 capHeight; 467 UINT16 xHeight; 468 INT16 underlinePosition; 469 UINT16 underlineThickness; 470 INT16 strikethroughPosition; 471 UINT16 strikethroughThickness; 472 INT16 glyphBoxLeft; 473 INT16 glyphBoxTop; 474 INT16 glyphBoxRight; 475 INT16 glyphBoxBottom; 476 INT16 subscriptPositionX; 477 INT16 subscriptPositionY; 478 INT16 subscriptSizeX; 479 INT16 subscriptSizeY; 480 INT16 superscriptPositionX; 481 INT16 superscriptPositionY; 482 INT16 superscriptSizeX; 483 INT16 superscriptSizeY; 484 WINBOOL hasTypographicMetrics; 485 } DWRITE_FONT_METRICS1; 486 typedef struct DWRITE_CARET_METRICS { 487 INT16 slopeRise; 488 INT16 slopeRun; 489 INT16 offset; 490 } DWRITE_CARET_METRICS; 491 typedef union DWRITE_PANOSE { 492 UINT8 values[10]; 493 UINT8 familyKind; 494 struct { 495 UINT8 familyKind; 496 UINT8 serifStyle; 497 UINT8 weight; 498 UINT8 proportion; 499 UINT8 contrast; 500 UINT8 strokeVariation; 501 UINT8 armStyle; 502 UINT8 letterform; 503 UINT8 midline; 504 UINT8 xHeight; 505 } text; 506 struct { 507 UINT8 familyKind; 508 UINT8 toolKind; 509 UINT8 weight; 510 UINT8 spacing; 511 UINT8 aspectRatio; 512 UINT8 contrast; 513 UINT8 scriptTopology; 514 UINT8 scriptForm; 515 UINT8 finials; 516 UINT8 xAscent; 517 } script; 518 struct { 519 UINT8 familyKind; 520 UINT8 decorativeClass; 521 UINT8 weight; 522 UINT8 aspect; 523 UINT8 contrast; 524 UINT8 serifVariant; 525 UINT8 fill; 526 UINT8 lining; 527 UINT8 decorativeTopology; 528 UINT8 characterRange; 529 } decorative; 530 struct { 531 UINT8 familyKind; 532 UINT8 symbolKind; 533 UINT8 weight; 534 UINT8 spacing; 535 UINT8 aspectRatioAndContrast; 536 UINT8 aspectRatio94; 537 UINT8 aspectRatio119; 538 UINT8 aspectRatio157; 539 UINT8 aspectRatio163; 540 UINT8 aspectRatio211; 541 } symbol; 542 } DWRITE_PANOSE; 543 typedef struct DWRITE_UNICODE_RANGE { 544 UINT32 first; 545 UINT32 last; 546 } DWRITE_UNICODE_RANGE; 547 typedef struct DWRITE_SCRIPT_PROPERTIES { 548 UINT32 isoScriptCode; 549 UINT32 isoScriptNumber; 550 UINT32 clusterLookahead; 551 UINT32 justificationCharacter; 552 UINT32 restrictCaretToClusters : 1; 553 UINT32 usesWordDividers : 1; 554 UINT32 isDiscreteWriting : 1; 555 UINT32 isBlockWriting : 1; 556 UINT32 isDistributedWithinCluster : 1; 557 UINT32 isConnectedWriting : 1; 558 UINT32 isCursiveWriting : 1; 559 UINT32 reserved : 25; 560 } DWRITE_SCRIPT_PROPERTIES; 561 typedef struct DWRITE_JUSTIFICATION_OPPORTUNITY { 562 FLOAT expansionMinimum; 563 FLOAT expansionMaximum; 564 FLOAT compressionMaximum; 565 UINT32 expansionPriority : 8; 566 UINT32 compressionPriority : 8; 567 UINT32 allowResidualExpansion : 1; 568 UINT32 allowResidualCompression : 1; 569 UINT32 applyToLeadingEdge : 1; 570 UINT32 applyToTrailingEdge : 1; 571 UINT32 reserved : 12; 572 } DWRITE_JUSTIFICATION_OPPORTUNITY; 573 #ifndef __IDWriteTextAnalysisSource1_FWD_DEFINED__ 574 #define __IDWriteTextAnalysisSource1_FWD_DEFINED__ 575 typedef interface IDWriteTextAnalysisSource1 IDWriteTextAnalysisSource1; 576 #ifdef __cplusplus 577 interface IDWriteTextAnalysisSource1; 578 #endif /* __cplusplus */ 579 #endif 580 581 #ifndef __IDWriteTextAnalysisSink1_FWD_DEFINED__ 582 #define __IDWriteTextAnalysisSink1_FWD_DEFINED__ 583 typedef interface IDWriteTextAnalysisSink1 IDWriteTextAnalysisSink1; 584 #ifdef __cplusplus 585 interface IDWriteTextAnalysisSink1; 586 #endif /* __cplusplus */ 587 #endif 588 589 #ifndef __IDWriteRenderingParams1_FWD_DEFINED__ 590 #define __IDWriteRenderingParams1_FWD_DEFINED__ 591 typedef interface IDWriteRenderingParams1 IDWriteRenderingParams1; 592 #ifdef __cplusplus 593 interface IDWriteRenderingParams1; 594 #endif /* __cplusplus */ 595 #endif 596 597 /***************************************************************************** 598 * IDWriteFactory1 interface 599 */ 600 #ifndef __IDWriteFactory1_INTERFACE_DEFINED__ 601 #define __IDWriteFactory1_INTERFACE_DEFINED__ 602 603 DEFINE_GUID(IID_IDWriteFactory1, 0x30572f99, 0xdac6, 0x41db, 0xa1,0x6e, 0x04,0x86,0x30,0x7e,0x60,0x6a); 604 #if defined(__cplusplus) && !defined(CINTERFACE) 605 MIDL_INTERFACE("30572f99-dac6-41db-a16e-0486307e606a") 606 IDWriteFactory1 : public IDWriteFactory 607 { 608 virtual HRESULT STDMETHODCALLTYPE GetEudcFontCollection( 609 IDWriteFontCollection **collection, 610 WINBOOL check_for_updates = FALSE) = 0; 611 612 virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( 613 FLOAT gamma, 614 FLOAT enhcontrast, 615 FLOAT enhcontrast_grayscale, 616 FLOAT cleartype_level, 617 DWRITE_PIXEL_GEOMETRY geometry, 618 DWRITE_RENDERING_MODE mode, 619 IDWriteRenderingParams1 **params) = 0; 620 621 }; 622 #ifdef __CRT_UUID_DECL 623 __CRT_UUID_DECL(IDWriteFactory1, 0x30572f99, 0xdac6, 0x41db, 0xa1,0x6e, 0x04,0x86,0x30,0x7e,0x60,0x6a) 624 #endif 625 #else 626 typedef struct IDWriteFactory1Vtbl { 627 BEGIN_INTERFACE 628 629 /*** IUnknown methods ***/ 630 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 631 IDWriteFactory1 *This, 632 REFIID riid, 633 void **ppvObject); 634 635 ULONG (STDMETHODCALLTYPE *AddRef)( 636 IDWriteFactory1 *This); 637 638 ULONG (STDMETHODCALLTYPE *Release)( 639 IDWriteFactory1 *This); 640 641 /*** IDWriteFactory methods ***/ 642 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( 643 IDWriteFactory1 *This, 644 IDWriteFontCollection **collection, 645 WINBOOL check_for_updates); 646 647 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( 648 IDWriteFactory1 *This, 649 IDWriteFontCollectionLoader *loader, 650 const void *key, 651 UINT32 key_size, 652 IDWriteFontCollection **collection); 653 654 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( 655 IDWriteFactory1 *This, 656 IDWriteFontCollectionLoader *loader); 657 658 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( 659 IDWriteFactory1 *This, 660 IDWriteFontCollectionLoader *loader); 661 662 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( 663 IDWriteFactory1 *This, 664 const WCHAR *path, 665 const FILETIME *writetime, 666 IDWriteFontFile **font_file); 667 668 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( 669 IDWriteFactory1 *This, 670 const void *reference_key, 671 UINT32 key_size, 672 IDWriteFontFileLoader *loader, 673 IDWriteFontFile **font_file); 674 675 HRESULT (STDMETHODCALLTYPE *CreateFontFace)( 676 IDWriteFactory1 *This, 677 DWRITE_FONT_FACE_TYPE facetype, 678 UINT32 files_number, 679 IDWriteFontFile *const *font_files, 680 UINT32 index, 681 DWRITE_FONT_SIMULATIONS sim_flags, 682 IDWriteFontFace **font_face); 683 684 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( 685 IDWriteFactory1 *This, 686 IDWriteRenderingParams **params); 687 688 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( 689 IDWriteFactory1 *This, 690 HMONITOR monitor, 691 IDWriteRenderingParams **params); 692 693 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( 694 IDWriteFactory1 *This, 695 FLOAT gamma, 696 FLOAT enhancedContrast, 697 FLOAT cleartype_level, 698 DWRITE_PIXEL_GEOMETRY geometry, 699 DWRITE_RENDERING_MODE mode, 700 IDWriteRenderingParams **params); 701 702 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( 703 IDWriteFactory1 *This, 704 IDWriteFontFileLoader *loader); 705 706 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( 707 IDWriteFactory1 *This, 708 IDWriteFontFileLoader *loader); 709 710 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( 711 IDWriteFactory1 *This, 712 const WCHAR *family_name, 713 IDWriteFontCollection *collection, 714 DWRITE_FONT_WEIGHT weight, 715 DWRITE_FONT_STYLE style, 716 DWRITE_FONT_STRETCH stretch, 717 FLOAT size, 718 const WCHAR *locale, 719 IDWriteTextFormat **format); 720 721 HRESULT (STDMETHODCALLTYPE *CreateTypography)( 722 IDWriteFactory1 *This, 723 IDWriteTypography **typography); 724 725 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( 726 IDWriteFactory1 *This, 727 IDWriteGdiInterop **gdi_interop); 728 729 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( 730 IDWriteFactory1 *This, 731 const WCHAR *string, 732 UINT32 len, 733 IDWriteTextFormat *format, 734 FLOAT max_width, 735 FLOAT max_height, 736 IDWriteTextLayout **layout); 737 738 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( 739 IDWriteFactory1 *This, 740 const WCHAR *string, 741 UINT32 len, 742 IDWriteTextFormat *format, 743 FLOAT layout_width, 744 FLOAT layout_height, 745 FLOAT pixels_per_dip, 746 const DWRITE_MATRIX *transform, 747 WINBOOL use_gdi_natural, 748 IDWriteTextLayout **layout); 749 750 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( 751 IDWriteFactory1 *This, 752 IDWriteTextFormat *format, 753 IDWriteInlineObject **trimming_sign); 754 755 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( 756 IDWriteFactory1 *This, 757 IDWriteTextAnalyzer **analyzer); 758 759 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( 760 IDWriteFactory1 *This, 761 DWRITE_NUMBER_SUBSTITUTION_METHOD method, 762 const WCHAR *locale, 763 WINBOOL ignore_user_override, 764 IDWriteNumberSubstitution **substitution); 765 766 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( 767 IDWriteFactory1 *This, 768 const DWRITE_GLYPH_RUN *glyph_run, 769 FLOAT pixels_per_dip, 770 const DWRITE_MATRIX *transform, 771 DWRITE_RENDERING_MODE rendering_mode, 772 DWRITE_MEASURING_MODE measuring_mode, 773 FLOAT baseline_x, 774 FLOAT baseline_y, 775 IDWriteGlyphRunAnalysis **analysis); 776 777 /*** IDWriteFactory1 methods ***/ 778 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( 779 IDWriteFactory1 *This, 780 IDWriteFontCollection **collection, 781 WINBOOL check_for_updates); 782 783 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( 784 IDWriteFactory1 *This, 785 FLOAT gamma, 786 FLOAT enhcontrast, 787 FLOAT enhcontrast_grayscale, 788 FLOAT cleartype_level, 789 DWRITE_PIXEL_GEOMETRY geometry, 790 DWRITE_RENDERING_MODE mode, 791 IDWriteRenderingParams1 **params); 792 793 END_INTERFACE 794 } IDWriteFactory1Vtbl; 795 796 interface IDWriteFactory1 { 797 CONST_VTBL IDWriteFactory1Vtbl* lpVtbl; 798 }; 799 800 #ifdef COBJMACROS 801 #ifndef WIDL_C_INLINE_WRAPPERS 802 /*** IUnknown methods ***/ 803 #define IDWriteFactory1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 804 #define IDWriteFactory1_AddRef(This) (This)->lpVtbl->AddRef(This) 805 #define IDWriteFactory1_Release(This) (This)->lpVtbl->Release(This) 806 /*** IDWriteFactory methods ***/ 807 #define IDWriteFactory1_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) 808 #define IDWriteFactory1_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) 809 #define IDWriteFactory1_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) 810 #define IDWriteFactory1_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) 811 #define IDWriteFactory1_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) 812 #define IDWriteFactory1_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) 813 #define IDWriteFactory1_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) 814 #define IDWriteFactory1_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) 815 #define IDWriteFactory1_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) 816 #define IDWriteFactory1_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) 817 #define IDWriteFactory1_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) 818 #define IDWriteFactory1_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) 819 #define IDWriteFactory1_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) 820 #define IDWriteFactory1_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) 821 #define IDWriteFactory1_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) 822 #define IDWriteFactory1_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) 823 #define IDWriteFactory1_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) 824 #define IDWriteFactory1_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) 825 #define IDWriteFactory1_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) 826 #define IDWriteFactory1_CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) 827 /*** IDWriteFactory1 methods ***/ 828 #define IDWriteFactory1_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) 829 #define IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params) (This)->lpVtbl->IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params) 830 #else 831 /*** IUnknown methods ***/ 832 static FORCEINLINE HRESULT IDWriteFactory1_QueryInterface(IDWriteFactory1* This,REFIID riid,void **ppvObject) { 833 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 834 } 835 static FORCEINLINE ULONG IDWriteFactory1_AddRef(IDWriteFactory1* This) { 836 return This->lpVtbl->AddRef(This); 837 } 838 static FORCEINLINE ULONG IDWriteFactory1_Release(IDWriteFactory1* This) { 839 return This->lpVtbl->Release(This); 840 } 841 /*** IDWriteFactory methods ***/ 842 static FORCEINLINE HRESULT IDWriteFactory1_GetSystemFontCollection(IDWriteFactory1* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { 843 return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); 844 } 845 static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomFontCollection(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { 846 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); 847 } 848 static FORCEINLINE HRESULT IDWriteFactory1_RegisterFontCollectionLoader(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader) { 849 return This->lpVtbl->RegisterFontCollectionLoader(This,loader); 850 } 851 static FORCEINLINE HRESULT IDWriteFactory1_UnregisterFontCollectionLoader(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader) { 852 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); 853 } 854 static FORCEINLINE HRESULT IDWriteFactory1_CreateFontFileReference(IDWriteFactory1* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { 855 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); 856 } 857 static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomFontFileReference(IDWriteFactory1* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { 858 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); 859 } 860 static FORCEINLINE HRESULT IDWriteFactory1_CreateFontFace(IDWriteFactory1* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { 861 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); 862 } 863 static FORCEINLINE HRESULT IDWriteFactory1_CreateRenderingParams(IDWriteFactory1* This,IDWriteRenderingParams **params) { 864 return This->lpVtbl->CreateRenderingParams(This,params); 865 } 866 static FORCEINLINE HRESULT IDWriteFactory1_CreateMonitorRenderingParams(IDWriteFactory1* This,HMONITOR monitor,IDWriteRenderingParams **params) { 867 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); 868 } 869 static FORCEINLINE HRESULT IDWriteFactory1_RegisterFontFileLoader(IDWriteFactory1* This,IDWriteFontFileLoader *loader) { 870 return This->lpVtbl->RegisterFontFileLoader(This,loader); 871 } 872 static FORCEINLINE HRESULT IDWriteFactory1_UnregisterFontFileLoader(IDWriteFactory1* This,IDWriteFontFileLoader *loader) { 873 return This->lpVtbl->UnregisterFontFileLoader(This,loader); 874 } 875 static FORCEINLINE HRESULT IDWriteFactory1_CreateTextFormat(IDWriteFactory1* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { 876 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); 877 } 878 static FORCEINLINE HRESULT IDWriteFactory1_CreateTypography(IDWriteFactory1* This,IDWriteTypography **typography) { 879 return This->lpVtbl->CreateTypography(This,typography); 880 } 881 static FORCEINLINE HRESULT IDWriteFactory1_GetGdiInterop(IDWriteFactory1* This,IDWriteGdiInterop **gdi_interop) { 882 return This->lpVtbl->GetGdiInterop(This,gdi_interop); 883 } 884 static FORCEINLINE HRESULT IDWriteFactory1_CreateTextLayout(IDWriteFactory1* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { 885 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); 886 } 887 static FORCEINLINE HRESULT IDWriteFactory1_CreateGdiCompatibleTextLayout(IDWriteFactory1* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { 888 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); 889 } 890 static FORCEINLINE HRESULT IDWriteFactory1_CreateEllipsisTrimmingSign(IDWriteFactory1* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { 891 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); 892 } 893 static FORCEINLINE HRESULT IDWriteFactory1_CreateTextAnalyzer(IDWriteFactory1* This,IDWriteTextAnalyzer **analyzer) { 894 return This->lpVtbl->CreateTextAnalyzer(This,analyzer); 895 } 896 static FORCEINLINE HRESULT IDWriteFactory1_CreateNumberSubstitution(IDWriteFactory1* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { 897 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); 898 } 899 static FORCEINLINE HRESULT IDWriteFactory1_CreateGlyphRunAnalysis(IDWriteFactory1* This,const DWRITE_GLYPH_RUN *glyph_run,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE rendering_mode,DWRITE_MEASURING_MODE measuring_mode,FLOAT baseline_x,FLOAT baseline_y,IDWriteGlyphRunAnalysis **analysis) { 900 return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis); 901 } 902 /*** IDWriteFactory1 methods ***/ 903 static FORCEINLINE HRESULT IDWriteFactory1_GetEudcFontCollection(IDWriteFactory1* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { 904 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); 905 } 906 static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomRenderingParams(IDWriteFactory1* This,FLOAT gamma,FLOAT enhcontrast,FLOAT enhcontrast_grayscale,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams1 **params) { 907 return This->lpVtbl->IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params); 908 } 909 #endif 910 #endif 911 912 #endif 913 914 915 #endif /* __IDWriteFactory1_INTERFACE_DEFINED__ */ 916 917 /***************************************************************************** 918 * IDWriteFontFace1 interface 919 */ 920 #ifndef __IDWriteFontFace1_INTERFACE_DEFINED__ 921 #define __IDWriteFontFace1_INTERFACE_DEFINED__ 922 923 DEFINE_GUID(IID_IDWriteFontFace1, 0xa71efdb4, 0x9fdb, 0x4838, 0xad,0x90, 0xcf,0xc3,0xbe,0x8c,0x3d,0xaf); 924 #if defined(__cplusplus) && !defined(CINTERFACE) 925 MIDL_INTERFACE("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf") 926 IDWriteFontFace1 : public IDWriteFontFace 927 { 928 virtual void STDMETHODCALLTYPE GetMetrics( 929 DWRITE_FONT_METRICS1 *metrics) = 0; 930 931 virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( 932 FLOAT em_size, 933 FLOAT pixels_per_dip, 934 const DWRITE_MATRIX *transform, 935 DWRITE_FONT_METRICS1 *metrics) = 0; 936 937 virtual void STDMETHODCALLTYPE GetCaretMetrics( 938 DWRITE_CARET_METRICS *metrics) = 0; 939 940 virtual HRESULT STDMETHODCALLTYPE GetUnicodeRanges( 941 UINT32 max_count, 942 DWRITE_UNICODE_RANGE *ranges, 943 UINT32 *count) = 0; 944 945 virtual WINBOOL STDMETHODCALLTYPE IsMonospacedFont( 946 ) = 0; 947 948 virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphAdvances( 949 UINT32 glyph_count, 950 const UINT16 *indices, 951 INT32 *advances, 952 WINBOOL is_sideways = FALSE) = 0; 953 954 virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphAdvances( 955 FLOAT em_size, 956 FLOAT pixels_per_dip, 957 const DWRITE_MATRIX *transform, 958 WINBOOL use_gdi_natural, 959 WINBOOL is_sideways, 960 UINT32 glyph_count, 961 const UINT16 *indices, 962 INT32 *advances) = 0; 963 964 virtual HRESULT STDMETHODCALLTYPE GetKerningPairAdjustments( 965 UINT32 glyph_count, 966 const UINT16 *indices, 967 INT32 *adjustments) = 0; 968 969 virtual WINBOOL STDMETHODCALLTYPE HasKerningPairs( 970 ) = 0; 971 972 virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( 973 FLOAT font_emsize, 974 FLOAT dpiX, 975 FLOAT dpiY, 976 const DWRITE_MATRIX *transform, 977 WINBOOL is_sideways, 978 DWRITE_OUTLINE_THRESHOLD threshold, 979 DWRITE_MEASURING_MODE measuring_mode, 980 DWRITE_RENDERING_MODE *rendering_mode) = 0; 981 982 virtual HRESULT STDMETHODCALLTYPE GetVerticalGlyphVariants( 983 UINT32 glyph_count, 984 const UINT16 *nominal_indices, 985 UINT16 *vertical_indices) = 0; 986 987 virtual WINBOOL STDMETHODCALLTYPE HasVerticalGlyphVariants( 988 ) = 0; 989 990 }; 991 #ifdef __CRT_UUID_DECL 992 __CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4, 0x9fdb, 0x4838, 0xad,0x90, 0xcf,0xc3,0xbe,0x8c,0x3d,0xaf) 993 #endif 994 #else 995 typedef struct IDWriteFontFace1Vtbl { 996 BEGIN_INTERFACE 997 998 /*** IUnknown methods ***/ 999 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1000 IDWriteFontFace1 *This, 1001 REFIID riid, 1002 void **ppvObject); 1003 1004 ULONG (STDMETHODCALLTYPE *AddRef)( 1005 IDWriteFontFace1 *This); 1006 1007 ULONG (STDMETHODCALLTYPE *Release)( 1008 IDWriteFontFace1 *This); 1009 1010 /*** IDWriteFontFace methods ***/ 1011 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( 1012 IDWriteFontFace1 *This); 1013 1014 HRESULT (STDMETHODCALLTYPE *GetFiles)( 1015 IDWriteFontFace1 *This, 1016 UINT32 *number_of_files, 1017 IDWriteFontFile **fontfiles); 1018 1019 UINT32 (STDMETHODCALLTYPE *GetIndex)( 1020 IDWriteFontFace1 *This); 1021 1022 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( 1023 IDWriteFontFace1 *This); 1024 1025 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( 1026 IDWriteFontFace1 *This); 1027 1028 void (STDMETHODCALLTYPE *GetMetrics)( 1029 IDWriteFontFace1 *This, 1030 DWRITE_FONT_METRICS *metrics); 1031 1032 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( 1033 IDWriteFontFace1 *This); 1034 1035 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( 1036 IDWriteFontFace1 *This, 1037 const UINT16 *glyph_indices, 1038 UINT32 glyph_count, 1039 DWRITE_GLYPH_METRICS *metrics, 1040 WINBOOL is_sideways); 1041 1042 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( 1043 IDWriteFontFace1 *This, 1044 const UINT32 *codepoints, 1045 UINT32 count, 1046 UINT16 *glyph_indices); 1047 1048 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( 1049 IDWriteFontFace1 *This, 1050 UINT32 table_tag, 1051 const void **table_data, 1052 UINT32 *table_size, 1053 void **context, 1054 WINBOOL *exists); 1055 1056 void (STDMETHODCALLTYPE *ReleaseFontTable)( 1057 IDWriteFontFace1 *This, 1058 void *table_context); 1059 1060 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( 1061 IDWriteFontFace1 *This, 1062 FLOAT emSize, 1063 const UINT16 *glyph_indices, 1064 const FLOAT *glyph_advances, 1065 const DWRITE_GLYPH_OFFSET *glyph_offsets, 1066 UINT32 glyph_count, 1067 WINBOOL is_sideways, 1068 WINBOOL is_rtl, 1069 IDWriteGeometrySink *geometrysink); 1070 1071 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( 1072 IDWriteFontFace1 *This, 1073 FLOAT emSize, 1074 FLOAT pixels_per_dip, 1075 DWRITE_MEASURING_MODE mode, 1076 IDWriteRenderingParams *params, 1077 DWRITE_RENDERING_MODE *rendering_mode); 1078 1079 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( 1080 IDWriteFontFace1 *This, 1081 FLOAT emSize, 1082 FLOAT pixels_per_dip, 1083 const DWRITE_MATRIX *transform, 1084 DWRITE_FONT_METRICS *metrics); 1085 1086 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( 1087 IDWriteFontFace1 *This, 1088 FLOAT emSize, 1089 FLOAT pixels_per_dip, 1090 const DWRITE_MATRIX *transform, 1091 WINBOOL use_gdi_natural, 1092 const UINT16 *glyph_indices, 1093 UINT32 glyph_count, 1094 DWRITE_GLYPH_METRICS *metrics, 1095 WINBOOL is_sideways); 1096 1097 /*** IDWriteFontFace1 methods ***/ 1098 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( 1099 IDWriteFontFace1 *This, 1100 DWRITE_FONT_METRICS1 *metrics); 1101 1102 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( 1103 IDWriteFontFace1 *This, 1104 FLOAT em_size, 1105 FLOAT pixels_per_dip, 1106 const DWRITE_MATRIX *transform, 1107 DWRITE_FONT_METRICS1 *metrics); 1108 1109 void (STDMETHODCALLTYPE *GetCaretMetrics)( 1110 IDWriteFontFace1 *This, 1111 DWRITE_CARET_METRICS *metrics); 1112 1113 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( 1114 IDWriteFontFace1 *This, 1115 UINT32 max_count, 1116 DWRITE_UNICODE_RANGE *ranges, 1117 UINT32 *count); 1118 1119 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( 1120 IDWriteFontFace1 *This); 1121 1122 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( 1123 IDWriteFontFace1 *This, 1124 UINT32 glyph_count, 1125 const UINT16 *indices, 1126 INT32 *advances, 1127 WINBOOL is_sideways); 1128 1129 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( 1130 IDWriteFontFace1 *This, 1131 FLOAT em_size, 1132 FLOAT pixels_per_dip, 1133 const DWRITE_MATRIX *transform, 1134 WINBOOL use_gdi_natural, 1135 WINBOOL is_sideways, 1136 UINT32 glyph_count, 1137 const UINT16 *indices, 1138 INT32 *advances); 1139 1140 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( 1141 IDWriteFontFace1 *This, 1142 UINT32 glyph_count, 1143 const UINT16 *indices, 1144 INT32 *adjustments); 1145 1146 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( 1147 IDWriteFontFace1 *This); 1148 1149 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( 1150 IDWriteFontFace1 *This, 1151 FLOAT font_emsize, 1152 FLOAT dpiX, 1153 FLOAT dpiY, 1154 const DWRITE_MATRIX *transform, 1155 WINBOOL is_sideways, 1156 DWRITE_OUTLINE_THRESHOLD threshold, 1157 DWRITE_MEASURING_MODE measuring_mode, 1158 DWRITE_RENDERING_MODE *rendering_mode); 1159 1160 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( 1161 IDWriteFontFace1 *This, 1162 UINT32 glyph_count, 1163 const UINT16 *nominal_indices, 1164 UINT16 *vertical_indices); 1165 1166 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( 1167 IDWriteFontFace1 *This); 1168 1169 END_INTERFACE 1170 } IDWriteFontFace1Vtbl; 1171 1172 interface IDWriteFontFace1 { 1173 CONST_VTBL IDWriteFontFace1Vtbl* lpVtbl; 1174 }; 1175 1176 #ifdef COBJMACROS 1177 #ifndef WIDL_C_INLINE_WRAPPERS 1178 /*** IUnknown methods ***/ 1179 #define IDWriteFontFace1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1180 #define IDWriteFontFace1_AddRef(This) (This)->lpVtbl->AddRef(This) 1181 #define IDWriteFontFace1_Release(This) (This)->lpVtbl->Release(This) 1182 /*** IDWriteFontFace methods ***/ 1183 #define IDWriteFontFace1_GetType(This) (This)->lpVtbl->GetType(This) 1184 #define IDWriteFontFace1_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) 1185 #define IDWriteFontFace1_GetIndex(This) (This)->lpVtbl->GetIndex(This) 1186 #define IDWriteFontFace1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) 1187 #define IDWriteFontFace1_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) 1188 #define IDWriteFontFace1_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) 1189 #define IDWriteFontFace1_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) 1190 #define IDWriteFontFace1_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) 1191 #define IDWriteFontFace1_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) 1192 #define IDWriteFontFace1_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) 1193 #define IDWriteFontFace1_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) 1194 #define IDWriteFontFace1_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) 1195 /*** IDWriteFontFace1 methods ***/ 1196 #define IDWriteFontFace1_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) 1197 #define IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) 1198 #define IDWriteFontFace1_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) 1199 #define IDWriteFontFace1_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) 1200 #define IDWriteFontFace1_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) 1201 #define IDWriteFontFace1_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) 1202 #define IDWriteFontFace1_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) 1203 #define IDWriteFontFace1_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) 1204 #define IDWriteFontFace1_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) 1205 #define IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode) (This)->lpVtbl->IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode) 1206 #define IDWriteFontFace1_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) 1207 #define IDWriteFontFace1_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) 1208 #else 1209 /*** IUnknown methods ***/ 1210 static FORCEINLINE HRESULT IDWriteFontFace1_QueryInterface(IDWriteFontFace1* This,REFIID riid,void **ppvObject) { 1211 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1212 } 1213 static FORCEINLINE ULONG IDWriteFontFace1_AddRef(IDWriteFontFace1* This) { 1214 return This->lpVtbl->AddRef(This); 1215 } 1216 static FORCEINLINE ULONG IDWriteFontFace1_Release(IDWriteFontFace1* This) { 1217 return This->lpVtbl->Release(This); 1218 } 1219 /*** IDWriteFontFace methods ***/ 1220 static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace1_GetType(IDWriteFontFace1* This) { 1221 return This->lpVtbl->GetType(This); 1222 } 1223 static FORCEINLINE HRESULT IDWriteFontFace1_GetFiles(IDWriteFontFace1* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { 1224 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); 1225 } 1226 static FORCEINLINE UINT32 IDWriteFontFace1_GetIndex(IDWriteFontFace1* This) { 1227 return This->lpVtbl->GetIndex(This); 1228 } 1229 static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace1_GetSimulations(IDWriteFontFace1* This) { 1230 return This->lpVtbl->GetSimulations(This); 1231 } 1232 static FORCEINLINE WINBOOL IDWriteFontFace1_IsSymbolFont(IDWriteFontFace1* This) { 1233 return This->lpVtbl->IsSymbolFont(This); 1234 } 1235 static FORCEINLINE UINT16 IDWriteFontFace1_GetGlyphCount(IDWriteFontFace1* This) { 1236 return This->lpVtbl->GetGlyphCount(This); 1237 } 1238 static FORCEINLINE HRESULT IDWriteFontFace1_GetDesignGlyphMetrics(IDWriteFontFace1* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { 1239 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); 1240 } 1241 static FORCEINLINE HRESULT IDWriteFontFace1_GetGlyphIndices(IDWriteFontFace1* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { 1242 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); 1243 } 1244 static FORCEINLINE HRESULT IDWriteFontFace1_TryGetFontTable(IDWriteFontFace1* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { 1245 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); 1246 } 1247 static FORCEINLINE void IDWriteFontFace1_ReleaseFontTable(IDWriteFontFace1* This,void *table_context) { 1248 This->lpVtbl->ReleaseFontTable(This,table_context); 1249 } 1250 static FORCEINLINE HRESULT IDWriteFontFace1_GetGlyphRunOutline(IDWriteFontFace1* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { 1251 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); 1252 } 1253 static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleGlyphMetrics(IDWriteFontFace1* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { 1254 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); 1255 } 1256 /*** IDWriteFontFace1 methods ***/ 1257 static FORCEINLINE void IDWriteFontFace1_GetMetrics(IDWriteFontFace1* This,DWRITE_FONT_METRICS1 *metrics) { 1258 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); 1259 } 1260 static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleMetrics(IDWriteFontFace1* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { 1261 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); 1262 } 1263 static FORCEINLINE void IDWriteFontFace1_GetCaretMetrics(IDWriteFontFace1* This,DWRITE_CARET_METRICS *metrics) { 1264 This->lpVtbl->GetCaretMetrics(This,metrics); 1265 } 1266 static FORCEINLINE HRESULT IDWriteFontFace1_GetUnicodeRanges(IDWriteFontFace1* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { 1267 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); 1268 } 1269 static FORCEINLINE WINBOOL IDWriteFontFace1_IsMonospacedFont(IDWriteFontFace1* This) { 1270 return This->lpVtbl->IsMonospacedFont(This); 1271 } 1272 static FORCEINLINE HRESULT IDWriteFontFace1_GetDesignGlyphAdvances(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { 1273 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); 1274 } 1275 static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleGlyphAdvances(IDWriteFontFace1* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { 1276 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); 1277 } 1278 static FORCEINLINE HRESULT IDWriteFontFace1_GetKerningPairAdjustments(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { 1279 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); 1280 } 1281 static FORCEINLINE WINBOOL IDWriteFontFace1_HasKerningPairs(IDWriteFontFace1* This) { 1282 return This->lpVtbl->HasKerningPairs(This); 1283 } 1284 static FORCEINLINE HRESULT IDWriteFontFace1_GetRecommendedRenderingMode(IDWriteFontFace1* This,FLOAT font_emsize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,DWRITE_RENDERING_MODE *rendering_mode) { 1285 return This->lpVtbl->IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode); 1286 } 1287 static FORCEINLINE HRESULT IDWriteFontFace1_GetVerticalGlyphVariants(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { 1288 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); 1289 } 1290 static FORCEINLINE WINBOOL IDWriteFontFace1_HasVerticalGlyphVariants(IDWriteFontFace1* This) { 1291 return This->lpVtbl->HasVerticalGlyphVariants(This); 1292 } 1293 #endif 1294 #endif 1295 1296 #endif 1297 1298 1299 #endif /* __IDWriteFontFace1_INTERFACE_DEFINED__ */ 1300 1301 /***************************************************************************** 1302 * IDWriteFont1 interface 1303 */ 1304 #ifndef __IDWriteFont1_INTERFACE_DEFINED__ 1305 #define __IDWriteFont1_INTERFACE_DEFINED__ 1306 1307 DEFINE_GUID(IID_IDWriteFont1, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x38); 1308 #if defined(__cplusplus) && !defined(CINTERFACE) 1309 MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32738") 1310 IDWriteFont1 : public IDWriteFont 1311 { 1312 virtual void STDMETHODCALLTYPE GetMetrics( 1313 DWRITE_FONT_METRICS1 *metrics) = 0; 1314 1315 virtual void STDMETHODCALLTYPE GetPanose( 1316 DWRITE_PANOSE *panose) = 0; 1317 1318 virtual HRESULT STDMETHODCALLTYPE GetUnicodeRanges( 1319 UINT32 max_count, 1320 DWRITE_UNICODE_RANGE *ranges, 1321 UINT32 *count) = 0; 1322 1323 virtual WINBOOL STDMETHODCALLTYPE IsMonospacedFont( 1324 ) = 0; 1325 1326 }; 1327 #ifdef __CRT_UUID_DECL 1328 __CRT_UUID_DECL(IDWriteFont1, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x38) 1329 #endif 1330 #else 1331 typedef struct IDWriteFont1Vtbl { 1332 BEGIN_INTERFACE 1333 1334 /*** IUnknown methods ***/ 1335 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1336 IDWriteFont1 *This, 1337 REFIID riid, 1338 void **ppvObject); 1339 1340 ULONG (STDMETHODCALLTYPE *AddRef)( 1341 IDWriteFont1 *This); 1342 1343 ULONG (STDMETHODCALLTYPE *Release)( 1344 IDWriteFont1 *This); 1345 1346 /*** IDWriteFont methods ***/ 1347 HRESULT (STDMETHODCALLTYPE *GetFontFamily)( 1348 IDWriteFont1 *This, 1349 IDWriteFontFamily **family); 1350 1351 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( 1352 IDWriteFont1 *This); 1353 1354 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( 1355 IDWriteFont1 *This); 1356 1357 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( 1358 IDWriteFont1 *This); 1359 1360 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( 1361 IDWriteFont1 *This); 1362 1363 HRESULT (STDMETHODCALLTYPE *GetFaceNames)( 1364 IDWriteFont1 *This, 1365 IDWriteLocalizedStrings **names); 1366 1367 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( 1368 IDWriteFont1 *This, 1369 DWRITE_INFORMATIONAL_STRING_ID stringid, 1370 IDWriteLocalizedStrings **strings, 1371 WINBOOL *exists); 1372 1373 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( 1374 IDWriteFont1 *This); 1375 1376 void (STDMETHODCALLTYPE *GetMetrics)( 1377 IDWriteFont1 *This, 1378 DWRITE_FONT_METRICS *metrics); 1379 1380 HRESULT (STDMETHODCALLTYPE *HasCharacter)( 1381 IDWriteFont1 *This, 1382 UINT32 value, 1383 WINBOOL *exists); 1384 1385 HRESULT (STDMETHODCALLTYPE *CreateFontFace)( 1386 IDWriteFont1 *This, 1387 IDWriteFontFace **face); 1388 1389 /*** IDWriteFont1 methods ***/ 1390 void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( 1391 IDWriteFont1 *This, 1392 DWRITE_FONT_METRICS1 *metrics); 1393 1394 void (STDMETHODCALLTYPE *GetPanose)( 1395 IDWriteFont1 *This, 1396 DWRITE_PANOSE *panose); 1397 1398 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( 1399 IDWriteFont1 *This, 1400 UINT32 max_count, 1401 DWRITE_UNICODE_RANGE *ranges, 1402 UINT32 *count); 1403 1404 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( 1405 IDWriteFont1 *This); 1406 1407 END_INTERFACE 1408 } IDWriteFont1Vtbl; 1409 1410 interface IDWriteFont1 { 1411 CONST_VTBL IDWriteFont1Vtbl* lpVtbl; 1412 }; 1413 1414 #ifdef COBJMACROS 1415 #ifndef WIDL_C_INLINE_WRAPPERS 1416 /*** IUnknown methods ***/ 1417 #define IDWriteFont1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1418 #define IDWriteFont1_AddRef(This) (This)->lpVtbl->AddRef(This) 1419 #define IDWriteFont1_Release(This) (This)->lpVtbl->Release(This) 1420 /*** IDWriteFont methods ***/ 1421 #define IDWriteFont1_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) 1422 #define IDWriteFont1_GetWeight(This) (This)->lpVtbl->GetWeight(This) 1423 #define IDWriteFont1_GetStretch(This) (This)->lpVtbl->GetStretch(This) 1424 #define IDWriteFont1_GetStyle(This) (This)->lpVtbl->GetStyle(This) 1425 #define IDWriteFont1_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) 1426 #define IDWriteFont1_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) 1427 #define IDWriteFont1_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) 1428 #define IDWriteFont1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) 1429 #define IDWriteFont1_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) 1430 #define IDWriteFont1_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) 1431 /*** IDWriteFont1 methods ***/ 1432 #define IDWriteFont1_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) 1433 #define IDWriteFont1_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) 1434 #define IDWriteFont1_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) 1435 #define IDWriteFont1_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) 1436 #else 1437 /*** IUnknown methods ***/ 1438 static FORCEINLINE HRESULT IDWriteFont1_QueryInterface(IDWriteFont1* This,REFIID riid,void **ppvObject) { 1439 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1440 } 1441 static FORCEINLINE ULONG IDWriteFont1_AddRef(IDWriteFont1* This) { 1442 return This->lpVtbl->AddRef(This); 1443 } 1444 static FORCEINLINE ULONG IDWriteFont1_Release(IDWriteFont1* This) { 1445 return This->lpVtbl->Release(This); 1446 } 1447 /*** IDWriteFont methods ***/ 1448 static FORCEINLINE HRESULT IDWriteFont1_GetFontFamily(IDWriteFont1* This,IDWriteFontFamily **family) { 1449 return This->lpVtbl->GetFontFamily(This,family); 1450 } 1451 static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont1_GetWeight(IDWriteFont1* This) { 1452 return This->lpVtbl->GetWeight(This); 1453 } 1454 static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont1_GetStretch(IDWriteFont1* This) { 1455 return This->lpVtbl->GetStretch(This); 1456 } 1457 static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont1_GetStyle(IDWriteFont1* This) { 1458 return This->lpVtbl->GetStyle(This); 1459 } 1460 static FORCEINLINE WINBOOL IDWriteFont1_IsSymbolFont(IDWriteFont1* This) { 1461 return This->lpVtbl->IsSymbolFont(This); 1462 } 1463 static FORCEINLINE HRESULT IDWriteFont1_GetFaceNames(IDWriteFont1* This,IDWriteLocalizedStrings **names) { 1464 return This->lpVtbl->GetFaceNames(This,names); 1465 } 1466 static FORCEINLINE HRESULT IDWriteFont1_GetInformationalStrings(IDWriteFont1* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { 1467 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); 1468 } 1469 static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont1_GetSimulations(IDWriteFont1* This) { 1470 return This->lpVtbl->GetSimulations(This); 1471 } 1472 static FORCEINLINE HRESULT IDWriteFont1_HasCharacter(IDWriteFont1* This,UINT32 value,WINBOOL *exists) { 1473 return This->lpVtbl->HasCharacter(This,value,exists); 1474 } 1475 static FORCEINLINE HRESULT IDWriteFont1_CreateFontFace(IDWriteFont1* This,IDWriteFontFace **face) { 1476 return This->lpVtbl->CreateFontFace(This,face); 1477 } 1478 /*** IDWriteFont1 methods ***/ 1479 static FORCEINLINE void IDWriteFont1_GetMetrics(IDWriteFont1* This,DWRITE_FONT_METRICS1 *metrics) { 1480 This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); 1481 } 1482 static FORCEINLINE void IDWriteFont1_GetPanose(IDWriteFont1* This,DWRITE_PANOSE *panose) { 1483 This->lpVtbl->GetPanose(This,panose); 1484 } 1485 static FORCEINLINE HRESULT IDWriteFont1_GetUnicodeRanges(IDWriteFont1* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { 1486 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); 1487 } 1488 static FORCEINLINE WINBOOL IDWriteFont1_IsMonospacedFont(IDWriteFont1* This) { 1489 return This->lpVtbl->IsMonospacedFont(This); 1490 } 1491 #endif 1492 #endif 1493 1494 #endif 1495 1496 1497 #endif /* __IDWriteFont1_INTERFACE_DEFINED__ */ 1498 1499 /***************************************************************************** 1500 * IDWriteRenderingParams1 interface 1501 */ 1502 #ifndef __IDWriteRenderingParams1_INTERFACE_DEFINED__ 1503 #define __IDWriteRenderingParams1_INTERFACE_DEFINED__ 1504 1505 DEFINE_GUID(IID_IDWriteRenderingParams1, 0x94413cf4, 0xa6fc, 0x4248, 0x8b,0x50, 0x66,0x74,0x34,0x8f,0xca,0xd3); 1506 #if defined(__cplusplus) && !defined(CINTERFACE) 1507 MIDL_INTERFACE("94413cf4-a6fc-4248-8b50-6674348fcad3") 1508 IDWriteRenderingParams1 : public IDWriteRenderingParams 1509 { 1510 virtual FLOAT STDMETHODCALLTYPE GetGrayscaleEnhancedContrast( 1511 ) = 0; 1512 1513 }; 1514 #ifdef __CRT_UUID_DECL 1515 __CRT_UUID_DECL(IDWriteRenderingParams1, 0x94413cf4, 0xa6fc, 0x4248, 0x8b,0x50, 0x66,0x74,0x34,0x8f,0xca,0xd3) 1516 #endif 1517 #else 1518 typedef struct IDWriteRenderingParams1Vtbl { 1519 BEGIN_INTERFACE 1520 1521 /*** IUnknown methods ***/ 1522 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1523 IDWriteRenderingParams1 *This, 1524 REFIID riid, 1525 void **ppvObject); 1526 1527 ULONG (STDMETHODCALLTYPE *AddRef)( 1528 IDWriteRenderingParams1 *This); 1529 1530 ULONG (STDMETHODCALLTYPE *Release)( 1531 IDWriteRenderingParams1 *This); 1532 1533 /*** IDWriteRenderingParams methods ***/ 1534 FLOAT (STDMETHODCALLTYPE *GetGamma)( 1535 IDWriteRenderingParams1 *This); 1536 1537 FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( 1538 IDWriteRenderingParams1 *This); 1539 1540 FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( 1541 IDWriteRenderingParams1 *This); 1542 1543 DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( 1544 IDWriteRenderingParams1 *This); 1545 1546 DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( 1547 IDWriteRenderingParams1 *This); 1548 1549 /*** IDWriteRenderingParams1 methods ***/ 1550 FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( 1551 IDWriteRenderingParams1 *This); 1552 1553 END_INTERFACE 1554 } IDWriteRenderingParams1Vtbl; 1555 1556 interface IDWriteRenderingParams1 { 1557 CONST_VTBL IDWriteRenderingParams1Vtbl* lpVtbl; 1558 }; 1559 1560 #ifdef COBJMACROS 1561 #ifndef WIDL_C_INLINE_WRAPPERS 1562 /*** IUnknown methods ***/ 1563 #define IDWriteRenderingParams1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1564 #define IDWriteRenderingParams1_AddRef(This) (This)->lpVtbl->AddRef(This) 1565 #define IDWriteRenderingParams1_Release(This) (This)->lpVtbl->Release(This) 1566 /*** IDWriteRenderingParams methods ***/ 1567 #define IDWriteRenderingParams1_GetGamma(This) (This)->lpVtbl->GetGamma(This) 1568 #define IDWriteRenderingParams1_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) 1569 #define IDWriteRenderingParams1_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) 1570 #define IDWriteRenderingParams1_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) 1571 #define IDWriteRenderingParams1_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) 1572 /*** IDWriteRenderingParams1 methods ***/ 1573 #define IDWriteRenderingParams1_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) 1574 #else 1575 /*** IUnknown methods ***/ 1576 static FORCEINLINE HRESULT IDWriteRenderingParams1_QueryInterface(IDWriteRenderingParams1* This,REFIID riid,void **ppvObject) { 1577 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1578 } 1579 static FORCEINLINE ULONG IDWriteRenderingParams1_AddRef(IDWriteRenderingParams1* This) { 1580 return This->lpVtbl->AddRef(This); 1581 } 1582 static FORCEINLINE ULONG IDWriteRenderingParams1_Release(IDWriteRenderingParams1* This) { 1583 return This->lpVtbl->Release(This); 1584 } 1585 /*** IDWriteRenderingParams methods ***/ 1586 static FORCEINLINE FLOAT IDWriteRenderingParams1_GetGamma(IDWriteRenderingParams1* This) { 1587 return This->lpVtbl->GetGamma(This); 1588 } 1589 static FORCEINLINE FLOAT IDWriteRenderingParams1_GetEnhancedContrast(IDWriteRenderingParams1* This) { 1590 return This->lpVtbl->GetEnhancedContrast(This); 1591 } 1592 static FORCEINLINE FLOAT IDWriteRenderingParams1_GetClearTypeLevel(IDWriteRenderingParams1* This) { 1593 return This->lpVtbl->GetClearTypeLevel(This); 1594 } 1595 static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams1_GetPixelGeometry(IDWriteRenderingParams1* This) { 1596 return This->lpVtbl->GetPixelGeometry(This); 1597 } 1598 static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams1_GetRenderingMode(IDWriteRenderingParams1* This) { 1599 return This->lpVtbl->GetRenderingMode(This); 1600 } 1601 /*** IDWriteRenderingParams1 methods ***/ 1602 static FORCEINLINE FLOAT IDWriteRenderingParams1_GetGrayscaleEnhancedContrast(IDWriteRenderingParams1* This) { 1603 return This->lpVtbl->GetGrayscaleEnhancedContrast(This); 1604 } 1605 #endif 1606 #endif 1607 1608 #endif 1609 1610 1611 #endif /* __IDWriteRenderingParams1_INTERFACE_DEFINED__ */ 1612 1613 /***************************************************************************** 1614 * IDWriteTextAnalyzer1 interface 1615 */ 1616 #ifndef __IDWriteTextAnalyzer1_INTERFACE_DEFINED__ 1617 #define __IDWriteTextAnalyzer1_INTERFACE_DEFINED__ 1618 1619 DEFINE_GUID(IID_IDWriteTextAnalyzer1, 0x80dad800, 0xe21f, 0x4e83, 0x96,0xce, 0xbf,0xcc,0xe5,0x00,0xdb,0x7c); 1620 #if defined(__cplusplus) && !defined(CINTERFACE) 1621 MIDL_INTERFACE("80dad800-e21f-4e83-96ce-bfcce500db7c") 1622 IDWriteTextAnalyzer1 : public IDWriteTextAnalyzer 1623 { 1624 virtual HRESULT STDMETHODCALLTYPE ApplyCharacterSpacing( 1625 FLOAT leading_spacing, 1626 FLOAT trailing_spacing, 1627 FLOAT min_advance_width, 1628 UINT32 len, 1629 UINT32 glyph_count, 1630 const UINT16 *clustermap, 1631 const FLOAT *advances, 1632 const DWRITE_GLYPH_OFFSET *offsets, 1633 const DWRITE_SHAPING_GLYPH_PROPERTIES *props, 1634 FLOAT *modified_advances, 1635 DWRITE_GLYPH_OFFSET *modified_offsets) = 0; 1636 1637 virtual HRESULT STDMETHODCALLTYPE GetBaseline( 1638 IDWriteFontFace *face, 1639 DWRITE_BASELINE baseline, 1640 WINBOOL vertical, 1641 WINBOOL is_simulation_allowed, 1642 DWRITE_SCRIPT_ANALYSIS sa, 1643 const WCHAR *localeName, 1644 INT32 *baseline_coord, 1645 WINBOOL *exists) = 0; 1646 1647 virtual HRESULT STDMETHODCALLTYPE AnalyzeVerticalGlyphOrientation( 1648 IDWriteTextAnalysisSource1 *source, 1649 UINT32 text_pos, 1650 UINT32 len, 1651 IDWriteTextAnalysisSink1 *sink) = 0; 1652 1653 virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( 1654 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 1655 WINBOOL is_sideways, 1656 DWRITE_MATRIX *transform) = 0; 1657 1658 virtual HRESULT STDMETHODCALLTYPE GetScriptProperties( 1659 DWRITE_SCRIPT_ANALYSIS sa, 1660 DWRITE_SCRIPT_PROPERTIES *props) = 0; 1661 1662 virtual HRESULT STDMETHODCALLTYPE GetTextComplexity( 1663 const WCHAR *text, 1664 UINT32 len, 1665 IDWriteFontFace *face, 1666 WINBOOL *is_simple, 1667 UINT32 *len_read, 1668 UINT16 *indices) = 0; 1669 1670 virtual HRESULT STDMETHODCALLTYPE GetJustificationOpportunities( 1671 IDWriteFontFace *face, 1672 FLOAT font_em_size, 1673 DWRITE_SCRIPT_ANALYSIS sa, 1674 UINT32 length, 1675 UINT32 glyph_count, 1676 const WCHAR *text, 1677 const UINT16 *clustermap, 1678 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1679 DWRITE_JUSTIFICATION_OPPORTUNITY *jo) = 0; 1680 1681 virtual HRESULT STDMETHODCALLTYPE JustifyGlyphAdvances( 1682 FLOAT width, 1683 UINT32 glyph_count, 1684 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, 1685 const FLOAT *advances, 1686 const DWRITE_GLYPH_OFFSET *offsets, 1687 FLOAT *justifiedadvances, 1688 DWRITE_GLYPH_OFFSET *justifiedoffsets) = 0; 1689 1690 virtual HRESULT STDMETHODCALLTYPE GetJustifiedGlyphs( 1691 IDWriteFontFace *face, 1692 FLOAT font_em_size, 1693 DWRITE_SCRIPT_ANALYSIS sa, 1694 UINT32 length, 1695 UINT32 glyph_count, 1696 UINT32 max_glyphcount, 1697 const UINT16 *clustermap, 1698 const UINT16 *indices, 1699 const FLOAT *advances, 1700 const FLOAT *justifiedadvances, 1701 const DWRITE_GLYPH_OFFSET *justifiedoffsets, 1702 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1703 UINT32 *actual_count, 1704 UINT16 *modified_clustermap, 1705 UINT16 *modified_indices, 1706 FLOAT *modified_advances, 1707 DWRITE_GLYPH_OFFSET *modified_offsets) = 0; 1708 1709 }; 1710 #ifdef __CRT_UUID_DECL 1711 __CRT_UUID_DECL(IDWriteTextAnalyzer1, 0x80dad800, 0xe21f, 0x4e83, 0x96,0xce, 0xbf,0xcc,0xe5,0x00,0xdb,0x7c) 1712 #endif 1713 #else 1714 typedef struct IDWriteTextAnalyzer1Vtbl { 1715 BEGIN_INTERFACE 1716 1717 /*** IUnknown methods ***/ 1718 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1719 IDWriteTextAnalyzer1 *This, 1720 REFIID riid, 1721 void **ppvObject); 1722 1723 ULONG (STDMETHODCALLTYPE *AddRef)( 1724 IDWriteTextAnalyzer1 *This); 1725 1726 ULONG (STDMETHODCALLTYPE *Release)( 1727 IDWriteTextAnalyzer1 *This); 1728 1729 /*** IDWriteTextAnalyzer methods ***/ 1730 HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( 1731 IDWriteTextAnalyzer1 *This, 1732 IDWriteTextAnalysisSource *source, 1733 UINT32 position, 1734 UINT32 length, 1735 IDWriteTextAnalysisSink *sink); 1736 1737 HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( 1738 IDWriteTextAnalyzer1 *This, 1739 IDWriteTextAnalysisSource *source, 1740 UINT32 position, 1741 UINT32 length, 1742 IDWriteTextAnalysisSink *sink); 1743 1744 HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( 1745 IDWriteTextAnalyzer1 *This, 1746 IDWriteTextAnalysisSource *source, 1747 UINT32 position, 1748 UINT32 length, 1749 IDWriteTextAnalysisSink *sink); 1750 1751 HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( 1752 IDWriteTextAnalyzer1 *This, 1753 IDWriteTextAnalysisSource *source, 1754 UINT32 position, 1755 UINT32 length, 1756 IDWriteTextAnalysisSink *sink); 1757 1758 HRESULT (STDMETHODCALLTYPE *GetGlyphs)( 1759 IDWriteTextAnalyzer1 *This, 1760 const WCHAR *text, 1761 UINT32 length, 1762 IDWriteFontFace *font_face, 1763 WINBOOL is_sideways, 1764 WINBOOL is_rtl, 1765 const DWRITE_SCRIPT_ANALYSIS *analysis, 1766 const WCHAR *locale, 1767 IDWriteNumberSubstitution *substitution, 1768 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1769 const UINT32 *feature_range_len, 1770 UINT32 feature_ranges, 1771 UINT32 max_glyph_count, 1772 UINT16 *clustermap, 1773 DWRITE_SHAPING_TEXT_PROPERTIES *text_props, 1774 UINT16 *glyph_indices, 1775 DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1776 UINT32 *actual_glyph_count); 1777 1778 HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( 1779 IDWriteTextAnalyzer1 *This, 1780 const WCHAR *text, 1781 const UINT16 *clustermap, 1782 DWRITE_SHAPING_TEXT_PROPERTIES *props, 1783 UINT32 text_len, 1784 const UINT16 *glyph_indices, 1785 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1786 UINT32 glyph_count, 1787 IDWriteFontFace *font_face, 1788 FLOAT fontEmSize, 1789 WINBOOL is_sideways, 1790 WINBOOL is_rtl, 1791 const DWRITE_SCRIPT_ANALYSIS *analysis, 1792 const WCHAR *locale, 1793 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1794 const UINT32 *feature_range_len, 1795 UINT32 feature_ranges, 1796 FLOAT *glyph_advances, 1797 DWRITE_GLYPH_OFFSET *glyph_offsets); 1798 1799 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( 1800 IDWriteTextAnalyzer1 *This, 1801 const WCHAR *text, 1802 const UINT16 *clustermap, 1803 DWRITE_SHAPING_TEXT_PROPERTIES *props, 1804 UINT32 text_len, 1805 const UINT16 *glyph_indices, 1806 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1807 UINT32 glyph_count, 1808 IDWriteFontFace *font_face, 1809 FLOAT fontEmSize, 1810 FLOAT pixels_per_dip, 1811 const DWRITE_MATRIX *transform, 1812 WINBOOL use_gdi_natural, 1813 WINBOOL is_sideways, 1814 WINBOOL is_rtl, 1815 const DWRITE_SCRIPT_ANALYSIS *analysis, 1816 const WCHAR *locale, 1817 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1818 const UINT32 *feature_range_lengths, 1819 UINT32 feature_ranges, 1820 FLOAT *glyph_advances, 1821 DWRITE_GLYPH_OFFSET *glyph_offsets); 1822 1823 /*** IDWriteTextAnalyzer1 methods ***/ 1824 HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)( 1825 IDWriteTextAnalyzer1 *This, 1826 FLOAT leading_spacing, 1827 FLOAT trailing_spacing, 1828 FLOAT min_advance_width, 1829 UINT32 len, 1830 UINT32 glyph_count, 1831 const UINT16 *clustermap, 1832 const FLOAT *advances, 1833 const DWRITE_GLYPH_OFFSET *offsets, 1834 const DWRITE_SHAPING_GLYPH_PROPERTIES *props, 1835 FLOAT *modified_advances, 1836 DWRITE_GLYPH_OFFSET *modified_offsets); 1837 1838 HRESULT (STDMETHODCALLTYPE *GetBaseline)( 1839 IDWriteTextAnalyzer1 *This, 1840 IDWriteFontFace *face, 1841 DWRITE_BASELINE baseline, 1842 WINBOOL vertical, 1843 WINBOOL is_simulation_allowed, 1844 DWRITE_SCRIPT_ANALYSIS sa, 1845 const WCHAR *localeName, 1846 INT32 *baseline_coord, 1847 WINBOOL *exists); 1848 1849 HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)( 1850 IDWriteTextAnalyzer1 *This, 1851 IDWriteTextAnalysisSource1 *source, 1852 UINT32 text_pos, 1853 UINT32 len, 1854 IDWriteTextAnalysisSink1 *sink); 1855 1856 HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)( 1857 IDWriteTextAnalyzer1 *This, 1858 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 1859 WINBOOL is_sideways, 1860 DWRITE_MATRIX *transform); 1861 1862 HRESULT (STDMETHODCALLTYPE *GetScriptProperties)( 1863 IDWriteTextAnalyzer1 *This, 1864 DWRITE_SCRIPT_ANALYSIS sa, 1865 DWRITE_SCRIPT_PROPERTIES *props); 1866 1867 HRESULT (STDMETHODCALLTYPE *GetTextComplexity)( 1868 IDWriteTextAnalyzer1 *This, 1869 const WCHAR *text, 1870 UINT32 len, 1871 IDWriteFontFace *face, 1872 WINBOOL *is_simple, 1873 UINT32 *len_read, 1874 UINT16 *indices); 1875 1876 HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)( 1877 IDWriteTextAnalyzer1 *This, 1878 IDWriteFontFace *face, 1879 FLOAT font_em_size, 1880 DWRITE_SCRIPT_ANALYSIS sa, 1881 UINT32 length, 1882 UINT32 glyph_count, 1883 const WCHAR *text, 1884 const UINT16 *clustermap, 1885 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1886 DWRITE_JUSTIFICATION_OPPORTUNITY *jo); 1887 1888 HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)( 1889 IDWriteTextAnalyzer1 *This, 1890 FLOAT width, 1891 UINT32 glyph_count, 1892 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, 1893 const FLOAT *advances, 1894 const DWRITE_GLYPH_OFFSET *offsets, 1895 FLOAT *justifiedadvances, 1896 DWRITE_GLYPH_OFFSET *justifiedoffsets); 1897 1898 HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)( 1899 IDWriteTextAnalyzer1 *This, 1900 IDWriteFontFace *face, 1901 FLOAT font_em_size, 1902 DWRITE_SCRIPT_ANALYSIS sa, 1903 UINT32 length, 1904 UINT32 glyph_count, 1905 UINT32 max_glyphcount, 1906 const UINT16 *clustermap, 1907 const UINT16 *indices, 1908 const FLOAT *advances, 1909 const FLOAT *justifiedadvances, 1910 const DWRITE_GLYPH_OFFSET *justifiedoffsets, 1911 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1912 UINT32 *actual_count, 1913 UINT16 *modified_clustermap, 1914 UINT16 *modified_indices, 1915 FLOAT *modified_advances, 1916 DWRITE_GLYPH_OFFSET *modified_offsets); 1917 1918 END_INTERFACE 1919 } IDWriteTextAnalyzer1Vtbl; 1920 1921 interface IDWriteTextAnalyzer1 { 1922 CONST_VTBL IDWriteTextAnalyzer1Vtbl* lpVtbl; 1923 }; 1924 1925 #ifdef COBJMACROS 1926 #ifndef WIDL_C_INLINE_WRAPPERS 1927 /*** IUnknown methods ***/ 1928 #define IDWriteTextAnalyzer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1929 #define IDWriteTextAnalyzer1_AddRef(This) (This)->lpVtbl->AddRef(This) 1930 #define IDWriteTextAnalyzer1_Release(This) (This)->lpVtbl->Release(This) 1931 /*** IDWriteTextAnalyzer methods ***/ 1932 #define IDWriteTextAnalyzer1_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) 1933 #define IDWriteTextAnalyzer1_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) 1934 #define IDWriteTextAnalyzer1_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) 1935 #define IDWriteTextAnalyzer1_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) 1936 #define IDWriteTextAnalyzer1_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) 1937 #define IDWriteTextAnalyzer1_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) 1938 #define IDWriteTextAnalyzer1_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) 1939 /*** IDWriteTextAnalyzer1 methods ***/ 1940 #define IDWriteTextAnalyzer1_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) 1941 #define IDWriteTextAnalyzer1_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) 1942 #define IDWriteTextAnalyzer1_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) 1943 #define IDWriteTextAnalyzer1_GetGlyphOrientationTransform(This,angle,is_sideways,transform) (This)->lpVtbl->GetGlyphOrientationTransform(This,angle,is_sideways,transform) 1944 #define IDWriteTextAnalyzer1_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props) 1945 #define IDWriteTextAnalyzer1_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices) 1946 #define IDWriteTextAnalyzer1_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) 1947 #define IDWriteTextAnalyzer1_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) 1948 #define IDWriteTextAnalyzer1_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) 1949 #else 1950 /*** IUnknown methods ***/ 1951 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_QueryInterface(IDWriteTextAnalyzer1* This,REFIID riid,void **ppvObject) { 1952 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1953 } 1954 static FORCEINLINE ULONG IDWriteTextAnalyzer1_AddRef(IDWriteTextAnalyzer1* This) { 1955 return This->lpVtbl->AddRef(This); 1956 } 1957 static FORCEINLINE ULONG IDWriteTextAnalyzer1_Release(IDWriteTextAnalyzer1* This) { 1958 return This->lpVtbl->Release(This); 1959 } 1960 /*** IDWriteTextAnalyzer methods ***/ 1961 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeScript(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1962 return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); 1963 } 1964 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeBidi(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1965 return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); 1966 } 1967 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeNumberSubstitution(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1968 return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); 1969 } 1970 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeLineBreakpoints(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1971 return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); 1972 } 1973 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphs(IDWriteTextAnalyzer1* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { 1974 return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); 1975 } 1976 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphPlacements(IDWriteTextAnalyzer1* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { 1977 return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); 1978 } 1979 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer1* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { 1980 return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); 1981 } 1982 /*** IDWriteTextAnalyzer1 methods ***/ 1983 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_ApplyCharacterSpacing(IDWriteTextAnalyzer1* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { 1984 return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets); 1985 } 1986 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetBaseline(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) { 1987 return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists); 1988 } 1989 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) { 1990 return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink); 1991 } 1992 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphOrientationTransform(IDWriteTextAnalyzer1* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,DWRITE_MATRIX *transform) { 1993 return This->lpVtbl->GetGlyphOrientationTransform(This,angle,is_sideways,transform); 1994 } 1995 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetScriptProperties(IDWriteTextAnalyzer1* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) { 1996 return This->lpVtbl->GetScriptProperties(This,sa,props); 1997 } 1998 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetTextComplexity(IDWriteTextAnalyzer1* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) { 1999 return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices); 2000 } 2001 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetJustificationOpportunities(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) { 2002 return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo); 2003 } 2004 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_JustifyGlyphAdvances(IDWriteTextAnalyzer1* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) { 2005 return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets); 2006 } 2007 static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetJustifiedGlyphs(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { 2008 return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets); 2009 } 2010 #endif 2011 #endif 2012 2013 #endif 2014 2015 2016 #endif /* __IDWriteTextAnalyzer1_INTERFACE_DEFINED__ */ 2017 2018 /***************************************************************************** 2019 * IDWriteTextAnalysisSource1 interface 2020 */ 2021 #ifndef __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__ 2022 #define __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__ 2023 2024 DEFINE_GUID(IID_IDWriteTextAnalysisSource1, 0x639cfad8, 0x0fb4, 0x4b21, 0xa5,0x8a, 0x06,0x79,0x20,0x12,0x00,0x09); 2025 #if defined(__cplusplus) && !defined(CINTERFACE) 2026 MIDL_INTERFACE("639cfad8-0fb4-4b21-a58a-067920120009") 2027 IDWriteTextAnalysisSource1 : public IDWriteTextAnalysisSource 2028 { 2029 virtual HRESULT STDMETHODCALLTYPE GetVerticalGlyphOrientation( 2030 UINT32 pos, 2031 UINT32 *length, 2032 DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation, 2033 UINT8 *bidi_level) = 0; 2034 2035 }; 2036 #ifdef __CRT_UUID_DECL 2037 __CRT_UUID_DECL(IDWriteTextAnalysisSource1, 0x639cfad8, 0x0fb4, 0x4b21, 0xa5,0x8a, 0x06,0x79,0x20,0x12,0x00,0x09) 2038 #endif 2039 #else 2040 typedef struct IDWriteTextAnalysisSource1Vtbl { 2041 BEGIN_INTERFACE 2042 2043 /*** IUnknown methods ***/ 2044 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2045 IDWriteTextAnalysisSource1 *This, 2046 REFIID riid, 2047 void **ppvObject); 2048 2049 ULONG (STDMETHODCALLTYPE *AddRef)( 2050 IDWriteTextAnalysisSource1 *This); 2051 2052 ULONG (STDMETHODCALLTYPE *Release)( 2053 IDWriteTextAnalysisSource1 *This); 2054 2055 /*** IDWriteTextAnalysisSource methods ***/ 2056 HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)( 2057 IDWriteTextAnalysisSource1 *This, 2058 UINT32 position, 2059 const WCHAR **text, 2060 UINT32 *text_len); 2061 2062 HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)( 2063 IDWriteTextAnalysisSource1 *This, 2064 UINT32 position, 2065 const WCHAR **text, 2066 UINT32 *text_len); 2067 2068 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)( 2069 IDWriteTextAnalysisSource1 *This); 2070 2071 HRESULT (STDMETHODCALLTYPE *GetLocaleName)( 2072 IDWriteTextAnalysisSource1 *This, 2073 UINT32 position, 2074 UINT32 *text_len, 2075 const WCHAR **locale); 2076 2077 HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)( 2078 IDWriteTextAnalysisSource1 *This, 2079 UINT32 position, 2080 UINT32 *text_len, 2081 IDWriteNumberSubstitution **substitution); 2082 2083 /*** IDWriteTextAnalysisSource1 methods ***/ 2084 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( 2085 IDWriteTextAnalysisSource1 *This, 2086 UINT32 pos, 2087 UINT32 *length, 2088 DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation, 2089 UINT8 *bidi_level); 2090 2091 END_INTERFACE 2092 } IDWriteTextAnalysisSource1Vtbl; 2093 2094 interface IDWriteTextAnalysisSource1 { 2095 CONST_VTBL IDWriteTextAnalysisSource1Vtbl* lpVtbl; 2096 }; 2097 2098 #ifdef COBJMACROS 2099 #ifndef WIDL_C_INLINE_WRAPPERS 2100 /*** IUnknown methods ***/ 2101 #define IDWriteTextAnalysisSource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2102 #define IDWriteTextAnalysisSource1_AddRef(This) (This)->lpVtbl->AddRef(This) 2103 #define IDWriteTextAnalysisSource1_Release(This) (This)->lpVtbl->Release(This) 2104 /*** IDWriteTextAnalysisSource methods ***/ 2105 #define IDWriteTextAnalysisSource1_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len) 2106 #define IDWriteTextAnalysisSource1_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len) 2107 #define IDWriteTextAnalysisSource1_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This) 2108 #define IDWriteTextAnalysisSource1_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale) 2109 #define IDWriteTextAnalysisSource1_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution) 2110 /*** IDWriteTextAnalysisSource1 methods ***/ 2111 #define IDWriteTextAnalysisSource1_GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level) (This)->lpVtbl->GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level) 2112 #else 2113 /*** IUnknown methods ***/ 2114 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_QueryInterface(IDWriteTextAnalysisSource1* This,REFIID riid,void **ppvObject) { 2115 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2116 } 2117 static FORCEINLINE ULONG IDWriteTextAnalysisSource1_AddRef(IDWriteTextAnalysisSource1* This) { 2118 return This->lpVtbl->AddRef(This); 2119 } 2120 static FORCEINLINE ULONG IDWriteTextAnalysisSource1_Release(IDWriteTextAnalysisSource1* This) { 2121 return This->lpVtbl->Release(This); 2122 } 2123 /*** IDWriteTextAnalysisSource methods ***/ 2124 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetTextAtPosition(IDWriteTextAnalysisSource1* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { 2125 return This->lpVtbl->GetTextAtPosition(This,position,text,text_len); 2126 } 2127 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetTextBeforePosition(IDWriteTextAnalysisSource1* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { 2128 return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len); 2129 } 2130 static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextAnalysisSource1_GetParagraphReadingDirection(IDWriteTextAnalysisSource1* This) { 2131 return This->lpVtbl->GetParagraphReadingDirection(This); 2132 } 2133 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetLocaleName(IDWriteTextAnalysisSource1* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) { 2134 return This->lpVtbl->GetLocaleName(This,position,text_len,locale); 2135 } 2136 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetNumberSubstitution(IDWriteTextAnalysisSource1* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) { 2137 return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution); 2138 } 2139 /*** IDWriteTextAnalysisSource1 methods ***/ 2140 static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetVerticalGlyphOrientation(IDWriteTextAnalysisSource1* This,UINT32 pos,UINT32 *length,DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,UINT8 *bidi_level) { 2141 return This->lpVtbl->GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level); 2142 } 2143 #endif 2144 #endif 2145 2146 #endif 2147 2148 2149 #endif /* __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__ */ 2150 2151 /***************************************************************************** 2152 * IDWriteTextAnalysisSink1 interface 2153 */ 2154 #ifndef __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__ 2155 #define __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__ 2156 2157 DEFINE_GUID(IID_IDWriteTextAnalysisSink1, 0xb0d941a0, 0x85e7, 0x4d8b, 0x9f,0xd3, 0x5c,0xed,0x99,0x34,0x48,0x2a); 2158 #if defined(__cplusplus) && !defined(CINTERFACE) 2159 MIDL_INTERFACE("b0d941a0-85e7-4d8b-9fd3-5ced9934482a") 2160 IDWriteTextAnalysisSink1 : public IDWriteTextAnalysisSink 2161 { 2162 virtual HRESULT STDMETHODCALLTYPE SetGlyphOrientation( 2163 UINT32 pos, 2164 UINT32 length, 2165 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 2166 UINT8 adjusted_bidilevel, 2167 WINBOOL is_sideways, 2168 WINBOOL is_rtl) = 0; 2169 2170 }; 2171 #ifdef __CRT_UUID_DECL 2172 __CRT_UUID_DECL(IDWriteTextAnalysisSink1, 0xb0d941a0, 0x85e7, 0x4d8b, 0x9f,0xd3, 0x5c,0xed,0x99,0x34,0x48,0x2a) 2173 #endif 2174 #else 2175 typedef struct IDWriteTextAnalysisSink1Vtbl { 2176 BEGIN_INTERFACE 2177 2178 /*** IUnknown methods ***/ 2179 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2180 IDWriteTextAnalysisSink1 *This, 2181 REFIID riid, 2182 void **ppvObject); 2183 2184 ULONG (STDMETHODCALLTYPE *AddRef)( 2185 IDWriteTextAnalysisSink1 *This); 2186 2187 ULONG (STDMETHODCALLTYPE *Release)( 2188 IDWriteTextAnalysisSink1 *This); 2189 2190 /*** IDWriteTextAnalysisSink methods ***/ 2191 HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)( 2192 IDWriteTextAnalysisSink1 *This, 2193 UINT32 position, 2194 UINT32 length, 2195 const DWRITE_SCRIPT_ANALYSIS *scriptanalysis); 2196 2197 HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)( 2198 IDWriteTextAnalysisSink1 *This, 2199 UINT32 position, 2200 UINT32 length, 2201 const DWRITE_LINE_BREAKPOINT *breakpoints); 2202 2203 HRESULT (STDMETHODCALLTYPE *SetBidiLevel)( 2204 IDWriteTextAnalysisSink1 *This, 2205 UINT32 position, 2206 UINT32 length, 2207 UINT8 explicitLevel, 2208 UINT8 resolvedLevel); 2209 2210 HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)( 2211 IDWriteTextAnalysisSink1 *This, 2212 UINT32 position, 2213 UINT32 length, 2214 IDWriteNumberSubstitution *substitution); 2215 2216 /*** IDWriteTextAnalysisSink1 methods ***/ 2217 HRESULT (STDMETHODCALLTYPE *SetGlyphOrientation)( 2218 IDWriteTextAnalysisSink1 *This, 2219 UINT32 pos, 2220 UINT32 length, 2221 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 2222 UINT8 adjusted_bidilevel, 2223 WINBOOL is_sideways, 2224 WINBOOL is_rtl); 2225 2226 END_INTERFACE 2227 } IDWriteTextAnalysisSink1Vtbl; 2228 2229 interface IDWriteTextAnalysisSink1 { 2230 CONST_VTBL IDWriteTextAnalysisSink1Vtbl* lpVtbl; 2231 }; 2232 2233 #ifdef COBJMACROS 2234 #ifndef WIDL_C_INLINE_WRAPPERS 2235 /*** IUnknown methods ***/ 2236 #define IDWriteTextAnalysisSink1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2237 #define IDWriteTextAnalysisSink1_AddRef(This) (This)->lpVtbl->AddRef(This) 2238 #define IDWriteTextAnalysisSink1_Release(This) (This)->lpVtbl->Release(This) 2239 /*** IDWriteTextAnalysisSink methods ***/ 2240 #define IDWriteTextAnalysisSink1_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis) 2241 #define IDWriteTextAnalysisSink1_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints) 2242 #define IDWriteTextAnalysisSink1_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) 2243 #define IDWriteTextAnalysisSink1_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution) 2244 /*** IDWriteTextAnalysisSink1 methods ***/ 2245 #define IDWriteTextAnalysisSink1_SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl) (This)->lpVtbl->SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl) 2246 #else 2247 /*** IUnknown methods ***/ 2248 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_QueryInterface(IDWriteTextAnalysisSink1* This,REFIID riid,void **ppvObject) { 2249 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2250 } 2251 static FORCEINLINE ULONG IDWriteTextAnalysisSink1_AddRef(IDWriteTextAnalysisSink1* This) { 2252 return This->lpVtbl->AddRef(This); 2253 } 2254 static FORCEINLINE ULONG IDWriteTextAnalysisSink1_Release(IDWriteTextAnalysisSink1* This) { 2255 return This->lpVtbl->Release(This); 2256 } 2257 /*** IDWriteTextAnalysisSink methods ***/ 2258 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetScriptAnalysis(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) { 2259 return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis); 2260 } 2261 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetLineBreakpoints(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) { 2262 return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints); 2263 } 2264 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetBidiLevel(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) { 2265 return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel); 2266 } 2267 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetNumberSubstitution(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) { 2268 return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution); 2269 } 2270 /*** IDWriteTextAnalysisSink1 methods ***/ 2271 static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetGlyphOrientation(IDWriteTextAnalysisSink1* This,UINT32 pos,UINT32 length,DWRITE_GLYPH_ORIENTATION_ANGLE angle,UINT8 adjusted_bidilevel,WINBOOL is_sideways,WINBOOL is_rtl) { 2272 return This->lpVtbl->SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl); 2273 } 2274 #endif 2275 #endif 2276 2277 #endif 2278 2279 2280 #endif /* __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__ */ 2281 2282 /***************************************************************************** 2283 * IDWriteTextLayout1 interface 2284 */ 2285 #ifndef __IDWriteTextLayout1_INTERFACE_DEFINED__ 2286 #define __IDWriteTextLayout1_INTERFACE_DEFINED__ 2287 2288 DEFINE_GUID(IID_IDWriteTextLayout1, 0x9064d822, 0x80a7, 0x465c, 0xa9,0x86, 0xdf,0x65,0xf7,0x8b,0x8f,0xeb); 2289 #if defined(__cplusplus) && !defined(CINTERFACE) 2290 MIDL_INTERFACE("9064d822-80a7-465c-a986-df65f78b8feb") 2291 IDWriteTextLayout1 : public IDWriteTextLayout 2292 { 2293 virtual HRESULT STDMETHODCALLTYPE SetPairKerning( 2294 WINBOOL is_pairkerning_enabled, 2295 DWRITE_TEXT_RANGE range) = 0; 2296 2297 virtual HRESULT STDMETHODCALLTYPE GetPairKerning( 2298 UINT32 position, 2299 WINBOOL *is_pairkerning_enabled, 2300 DWRITE_TEXT_RANGE *range) = 0; 2301 2302 virtual HRESULT STDMETHODCALLTYPE SetCharacterSpacing( 2303 FLOAT leading_spacing, 2304 FLOAT trailing_spacing, 2305 FLOAT minimum_advance_width, 2306 DWRITE_TEXT_RANGE range) = 0; 2307 2308 virtual HRESULT STDMETHODCALLTYPE GetCharacterSpacing( 2309 UINT32 position, 2310 FLOAT *leading_spacing, 2311 FLOAT *trailing_spacing, 2312 FLOAT *minimum_advance_width, 2313 DWRITE_TEXT_RANGE *range = 0) = 0; 2314 2315 }; 2316 #ifdef __CRT_UUID_DECL 2317 __CRT_UUID_DECL(IDWriteTextLayout1, 0x9064d822, 0x80a7, 0x465c, 0xa9,0x86, 0xdf,0x65,0xf7,0x8b,0x8f,0xeb) 2318 #endif 2319 #else 2320 typedef struct IDWriteTextLayout1Vtbl { 2321 BEGIN_INTERFACE 2322 2323 /*** IUnknown methods ***/ 2324 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2325 IDWriteTextLayout1 *This, 2326 REFIID riid, 2327 void **ppvObject); 2328 2329 ULONG (STDMETHODCALLTYPE *AddRef)( 2330 IDWriteTextLayout1 *This); 2331 2332 ULONG (STDMETHODCALLTYPE *Release)( 2333 IDWriteTextLayout1 *This); 2334 2335 /*** IDWriteTextFormat methods ***/ 2336 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( 2337 IDWriteTextLayout1 *This, 2338 DWRITE_TEXT_ALIGNMENT alignment); 2339 2340 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( 2341 IDWriteTextLayout1 *This, 2342 DWRITE_PARAGRAPH_ALIGNMENT alignment); 2343 2344 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( 2345 IDWriteTextLayout1 *This, 2346 DWRITE_WORD_WRAPPING wrapping); 2347 2348 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( 2349 IDWriteTextLayout1 *This, 2350 DWRITE_READING_DIRECTION direction); 2351 2352 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( 2353 IDWriteTextLayout1 *This, 2354 DWRITE_FLOW_DIRECTION direction); 2355 2356 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( 2357 IDWriteTextLayout1 *This, 2358 FLOAT tabstop); 2359 2360 HRESULT (STDMETHODCALLTYPE *SetTrimming)( 2361 IDWriteTextLayout1 *This, 2362 const DWRITE_TRIMMING *trimming, 2363 IDWriteInlineObject *trimming_sign); 2364 2365 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( 2366 IDWriteTextLayout1 *This, 2367 DWRITE_LINE_SPACING_METHOD spacing, 2368 FLOAT line_spacing, 2369 FLOAT baseline); 2370 2371 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( 2372 IDWriteTextLayout1 *This); 2373 2374 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( 2375 IDWriteTextLayout1 *This); 2376 2377 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( 2378 IDWriteTextLayout1 *This); 2379 2380 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( 2381 IDWriteTextLayout1 *This); 2382 2383 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( 2384 IDWriteTextLayout1 *This); 2385 2386 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( 2387 IDWriteTextLayout1 *This); 2388 2389 HRESULT (STDMETHODCALLTYPE *GetTrimming)( 2390 IDWriteTextLayout1 *This, 2391 DWRITE_TRIMMING *options, 2392 IDWriteInlineObject **trimming_sign); 2393 2394 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( 2395 IDWriteTextLayout1 *This, 2396 DWRITE_LINE_SPACING_METHOD *method, 2397 FLOAT *spacing, 2398 FLOAT *baseline); 2399 2400 HRESULT (STDMETHODCALLTYPE *GetFontCollection)( 2401 IDWriteTextLayout1 *This, 2402 IDWriteFontCollection **collection); 2403 2404 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( 2405 IDWriteTextLayout1 *This); 2406 2407 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( 2408 IDWriteTextLayout1 *This, 2409 WCHAR *name, 2410 UINT32 size); 2411 2412 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( 2413 IDWriteTextLayout1 *This); 2414 2415 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( 2416 IDWriteTextLayout1 *This); 2417 2418 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( 2419 IDWriteTextLayout1 *This); 2420 2421 FLOAT (STDMETHODCALLTYPE *GetFontSize)( 2422 IDWriteTextLayout1 *This); 2423 2424 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( 2425 IDWriteTextLayout1 *This); 2426 2427 HRESULT (STDMETHODCALLTYPE *GetLocaleName)( 2428 IDWriteTextLayout1 *This, 2429 WCHAR *name, 2430 UINT32 size); 2431 2432 /*** IDWriteTextLayout methods ***/ 2433 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( 2434 IDWriteTextLayout1 *This, 2435 FLOAT maxWidth); 2436 2437 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( 2438 IDWriteTextLayout1 *This, 2439 FLOAT maxHeight); 2440 2441 HRESULT (STDMETHODCALLTYPE *SetFontCollection)( 2442 IDWriteTextLayout1 *This, 2443 IDWriteFontCollection *collection, 2444 DWRITE_TEXT_RANGE range); 2445 2446 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( 2447 IDWriteTextLayout1 *This, 2448 const WCHAR *name, 2449 DWRITE_TEXT_RANGE range); 2450 2451 HRESULT (STDMETHODCALLTYPE *SetFontWeight)( 2452 IDWriteTextLayout1 *This, 2453 DWRITE_FONT_WEIGHT weight, 2454 DWRITE_TEXT_RANGE range); 2455 2456 HRESULT (STDMETHODCALLTYPE *SetFontStyle)( 2457 IDWriteTextLayout1 *This, 2458 DWRITE_FONT_STYLE style, 2459 DWRITE_TEXT_RANGE range); 2460 2461 HRESULT (STDMETHODCALLTYPE *SetFontStretch)( 2462 IDWriteTextLayout1 *This, 2463 DWRITE_FONT_STRETCH stretch, 2464 DWRITE_TEXT_RANGE range); 2465 2466 HRESULT (STDMETHODCALLTYPE *SetFontSize)( 2467 IDWriteTextLayout1 *This, 2468 FLOAT size, 2469 DWRITE_TEXT_RANGE range); 2470 2471 HRESULT (STDMETHODCALLTYPE *SetUnderline)( 2472 IDWriteTextLayout1 *This, 2473 WINBOOL underline, 2474 DWRITE_TEXT_RANGE range); 2475 2476 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( 2477 IDWriteTextLayout1 *This, 2478 WINBOOL strikethrough, 2479 DWRITE_TEXT_RANGE range); 2480 2481 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( 2482 IDWriteTextLayout1 *This, 2483 IUnknown *effect, 2484 DWRITE_TEXT_RANGE range); 2485 2486 HRESULT (STDMETHODCALLTYPE *SetInlineObject)( 2487 IDWriteTextLayout1 *This, 2488 IDWriteInlineObject *object, 2489 DWRITE_TEXT_RANGE range); 2490 2491 HRESULT (STDMETHODCALLTYPE *SetTypography)( 2492 IDWriteTextLayout1 *This, 2493 IDWriteTypography *typography, 2494 DWRITE_TEXT_RANGE range); 2495 2496 HRESULT (STDMETHODCALLTYPE *SetLocaleName)( 2497 IDWriteTextLayout1 *This, 2498 const WCHAR *locale, 2499 DWRITE_TEXT_RANGE range); 2500 2501 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( 2502 IDWriteTextLayout1 *This); 2503 2504 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( 2505 IDWriteTextLayout1 *This); 2506 2507 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( 2508 IDWriteTextLayout1 *This, 2509 UINT32 pos, 2510 IDWriteFontCollection **collection, 2511 DWRITE_TEXT_RANGE *range); 2512 2513 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( 2514 IDWriteTextLayout1 *This, 2515 UINT32 pos, 2516 UINT32 *len, 2517 DWRITE_TEXT_RANGE *range); 2518 2519 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( 2520 IDWriteTextLayout1 *This, 2521 UINT32 position, 2522 WCHAR *name, 2523 UINT32 name_size, 2524 DWRITE_TEXT_RANGE *range); 2525 2526 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( 2527 IDWriteTextLayout1 *This, 2528 UINT32 position, 2529 DWRITE_FONT_WEIGHT *weight, 2530 DWRITE_TEXT_RANGE *range); 2531 2532 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( 2533 IDWriteTextLayout1 *This, 2534 UINT32 currentPosition, 2535 DWRITE_FONT_STYLE *style, 2536 DWRITE_TEXT_RANGE *range); 2537 2538 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( 2539 IDWriteTextLayout1 *This, 2540 UINT32 position, 2541 DWRITE_FONT_STRETCH *stretch, 2542 DWRITE_TEXT_RANGE *range); 2543 2544 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( 2545 IDWriteTextLayout1 *This, 2546 UINT32 position, 2547 FLOAT *size, 2548 DWRITE_TEXT_RANGE *range); 2549 2550 HRESULT (STDMETHODCALLTYPE *GetUnderline)( 2551 IDWriteTextLayout1 *This, 2552 UINT32 position, 2553 WINBOOL *has_underline, 2554 DWRITE_TEXT_RANGE *range); 2555 2556 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( 2557 IDWriteTextLayout1 *This, 2558 UINT32 position, 2559 WINBOOL *has_strikethrough, 2560 DWRITE_TEXT_RANGE *range); 2561 2562 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( 2563 IDWriteTextLayout1 *This, 2564 UINT32 position, 2565 IUnknown **effect, 2566 DWRITE_TEXT_RANGE *range); 2567 2568 HRESULT (STDMETHODCALLTYPE *GetInlineObject)( 2569 IDWriteTextLayout1 *This, 2570 UINT32 position, 2571 IDWriteInlineObject **object, 2572 DWRITE_TEXT_RANGE *range); 2573 2574 HRESULT (STDMETHODCALLTYPE *GetTypography)( 2575 IDWriteTextLayout1 *This, 2576 UINT32 position, 2577 IDWriteTypography **typography, 2578 DWRITE_TEXT_RANGE *range); 2579 2580 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( 2581 IDWriteTextLayout1 *This, 2582 UINT32 position, 2583 UINT32 *length, 2584 DWRITE_TEXT_RANGE *range); 2585 2586 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( 2587 IDWriteTextLayout1 *This, 2588 UINT32 position, 2589 WCHAR *name, 2590 UINT32 name_size, 2591 DWRITE_TEXT_RANGE *range); 2592 2593 HRESULT (STDMETHODCALLTYPE *Draw)( 2594 IDWriteTextLayout1 *This, 2595 void *context, 2596 IDWriteTextRenderer *renderer, 2597 FLOAT originX, 2598 FLOAT originY); 2599 2600 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( 2601 IDWriteTextLayout1 *This, 2602 DWRITE_LINE_METRICS *metrics, 2603 UINT32 max_count, 2604 UINT32 *actual_count); 2605 2606 HRESULT (STDMETHODCALLTYPE *GetMetrics)( 2607 IDWriteTextLayout1 *This, 2608 DWRITE_TEXT_METRICS *metrics); 2609 2610 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( 2611 IDWriteTextLayout1 *This, 2612 DWRITE_OVERHANG_METRICS *overhangs); 2613 2614 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( 2615 IDWriteTextLayout1 *This, 2616 DWRITE_CLUSTER_METRICS *metrics, 2617 UINT32 max_count, 2618 UINT32 *act_count); 2619 2620 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( 2621 IDWriteTextLayout1 *This, 2622 FLOAT *min_width); 2623 2624 HRESULT (STDMETHODCALLTYPE *HitTestPoint)( 2625 IDWriteTextLayout1 *This, 2626 FLOAT pointX, 2627 FLOAT pointY, 2628 WINBOOL *is_trailinghit, 2629 WINBOOL *is_inside, 2630 DWRITE_HIT_TEST_METRICS *metrics); 2631 2632 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( 2633 IDWriteTextLayout1 *This, 2634 UINT32 textPosition, 2635 WINBOOL is_trailinghit, 2636 FLOAT *pointX, 2637 FLOAT *pointY, 2638 DWRITE_HIT_TEST_METRICS *metrics); 2639 2640 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( 2641 IDWriteTextLayout1 *This, 2642 UINT32 textPosition, 2643 UINT32 textLength, 2644 FLOAT originX, 2645 FLOAT originY, 2646 DWRITE_HIT_TEST_METRICS *metrics, 2647 UINT32 max_metricscount, 2648 UINT32 *actual_metricscount); 2649 2650 /*** IDWriteTextLayout1 methods ***/ 2651 HRESULT (STDMETHODCALLTYPE *SetPairKerning)( 2652 IDWriteTextLayout1 *This, 2653 WINBOOL is_pairkerning_enabled, 2654 DWRITE_TEXT_RANGE range); 2655 2656 HRESULT (STDMETHODCALLTYPE *GetPairKerning)( 2657 IDWriteTextLayout1 *This, 2658 UINT32 position, 2659 WINBOOL *is_pairkerning_enabled, 2660 DWRITE_TEXT_RANGE *range); 2661 2662 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( 2663 IDWriteTextLayout1 *This, 2664 FLOAT leading_spacing, 2665 FLOAT trailing_spacing, 2666 FLOAT minimum_advance_width, 2667 DWRITE_TEXT_RANGE range); 2668 2669 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( 2670 IDWriteTextLayout1 *This, 2671 UINT32 position, 2672 FLOAT *leading_spacing, 2673 FLOAT *trailing_spacing, 2674 FLOAT *minimum_advance_width, 2675 DWRITE_TEXT_RANGE *range); 2676 2677 END_INTERFACE 2678 } IDWriteTextLayout1Vtbl; 2679 2680 interface IDWriteTextLayout1 { 2681 CONST_VTBL IDWriteTextLayout1Vtbl* lpVtbl; 2682 }; 2683 2684 #ifdef COBJMACROS 2685 #ifndef WIDL_C_INLINE_WRAPPERS 2686 /*** IUnknown methods ***/ 2687 #define IDWriteTextLayout1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2688 #define IDWriteTextLayout1_AddRef(This) (This)->lpVtbl->AddRef(This) 2689 #define IDWriteTextLayout1_Release(This) (This)->lpVtbl->Release(This) 2690 /*** IDWriteTextFormat methods ***/ 2691 #define IDWriteTextLayout1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) 2692 #define IDWriteTextLayout1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) 2693 #define IDWriteTextLayout1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) 2694 #define IDWriteTextLayout1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) 2695 #define IDWriteTextLayout1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) 2696 #define IDWriteTextLayout1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) 2697 #define IDWriteTextLayout1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) 2698 #define IDWriteTextLayout1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) 2699 #define IDWriteTextLayout1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) 2700 #define IDWriteTextLayout1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) 2701 #define IDWriteTextLayout1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) 2702 #define IDWriteTextLayout1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) 2703 #define IDWriteTextLayout1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) 2704 #define IDWriteTextLayout1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) 2705 #define IDWriteTextLayout1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) 2706 #define IDWriteTextLayout1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) 2707 /*** IDWriteTextLayout methods ***/ 2708 #define IDWriteTextLayout1_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) 2709 #define IDWriteTextLayout1_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) 2710 #define IDWriteTextLayout1_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) 2711 #define IDWriteTextLayout1_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) 2712 #define IDWriteTextLayout1_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) 2713 #define IDWriteTextLayout1_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) 2714 #define IDWriteTextLayout1_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) 2715 #define IDWriteTextLayout1_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) 2716 #define IDWriteTextLayout1_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) 2717 #define IDWriteTextLayout1_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) 2718 #define IDWriteTextLayout1_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) 2719 #define IDWriteTextLayout1_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) 2720 #define IDWriteTextLayout1_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) 2721 #define IDWriteTextLayout1_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) 2722 #define IDWriteTextLayout1_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) 2723 #define IDWriteTextLayout1_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) 2724 #define IDWriteTextLayout1_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) 2725 #define IDWriteTextLayout1_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) 2726 #define IDWriteTextLayout1_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) 2727 #define IDWriteTextLayout1_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) 2728 #define IDWriteTextLayout1_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) 2729 #define IDWriteTextLayout1_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) 2730 #define IDWriteTextLayout1_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) 2731 #define IDWriteTextLayout1_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) 2732 #define IDWriteTextLayout1_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) 2733 #define IDWriteTextLayout1_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) 2734 #define IDWriteTextLayout1_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) 2735 #define IDWriteTextLayout1_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) 2736 #define IDWriteTextLayout1_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) 2737 #define IDWriteTextLayout1_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) 2738 #define IDWriteTextLayout1_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) 2739 #define IDWriteTextLayout1_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) 2740 #define IDWriteTextLayout1_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) 2741 #define IDWriteTextLayout1_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) 2742 #define IDWriteTextLayout1_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) 2743 #define IDWriteTextLayout1_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) 2744 #define IDWriteTextLayout1_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) 2745 #define IDWriteTextLayout1_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) 2746 #define IDWriteTextLayout1_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) 2747 /*** IDWriteTextLayout1 methods ***/ 2748 #define IDWriteTextLayout1_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) 2749 #define IDWriteTextLayout1_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) 2750 #define IDWriteTextLayout1_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) 2751 #define IDWriteTextLayout1_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) 2752 #else 2753 /*** IUnknown methods ***/ 2754 static FORCEINLINE HRESULT IDWriteTextLayout1_QueryInterface(IDWriteTextLayout1* This,REFIID riid,void **ppvObject) { 2755 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2756 } 2757 static FORCEINLINE ULONG IDWriteTextLayout1_AddRef(IDWriteTextLayout1* This) { 2758 return This->lpVtbl->AddRef(This); 2759 } 2760 static FORCEINLINE ULONG IDWriteTextLayout1_Release(IDWriteTextLayout1* This) { 2761 return This->lpVtbl->Release(This); 2762 } 2763 /*** IDWriteTextFormat methods ***/ 2764 static FORCEINLINE HRESULT IDWriteTextLayout1_SetTextAlignment(IDWriteTextLayout1* This,DWRITE_TEXT_ALIGNMENT alignment) { 2765 return This->lpVtbl->SetTextAlignment(This,alignment); 2766 } 2767 static FORCEINLINE HRESULT IDWriteTextLayout1_SetParagraphAlignment(IDWriteTextLayout1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { 2768 return This->lpVtbl->SetParagraphAlignment(This,alignment); 2769 } 2770 static FORCEINLINE HRESULT IDWriteTextLayout1_SetWordWrapping(IDWriteTextLayout1* This,DWRITE_WORD_WRAPPING wrapping) { 2771 return This->lpVtbl->SetWordWrapping(This,wrapping); 2772 } 2773 static FORCEINLINE HRESULT IDWriteTextLayout1_SetReadingDirection(IDWriteTextLayout1* This,DWRITE_READING_DIRECTION direction) { 2774 return This->lpVtbl->SetReadingDirection(This,direction); 2775 } 2776 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFlowDirection(IDWriteTextLayout1* This,DWRITE_FLOW_DIRECTION direction) { 2777 return This->lpVtbl->SetFlowDirection(This,direction); 2778 } 2779 static FORCEINLINE HRESULT IDWriteTextLayout1_SetIncrementalTabStop(IDWriteTextLayout1* This,FLOAT tabstop) { 2780 return This->lpVtbl->SetIncrementalTabStop(This,tabstop); 2781 } 2782 static FORCEINLINE HRESULT IDWriteTextLayout1_SetTrimming(IDWriteTextLayout1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { 2783 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); 2784 } 2785 static FORCEINLINE HRESULT IDWriteTextLayout1_SetLineSpacing(IDWriteTextLayout1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { 2786 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); 2787 } 2788 static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout1_GetTextAlignment(IDWriteTextLayout1* This) { 2789 return This->lpVtbl->GetTextAlignment(This); 2790 } 2791 static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout1_GetParagraphAlignment(IDWriteTextLayout1* This) { 2792 return This->lpVtbl->GetParagraphAlignment(This); 2793 } 2794 static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout1_GetWordWrapping(IDWriteTextLayout1* This) { 2795 return This->lpVtbl->GetWordWrapping(This); 2796 } 2797 static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout1_GetReadingDirection(IDWriteTextLayout1* This) { 2798 return This->lpVtbl->GetReadingDirection(This); 2799 } 2800 static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout1_GetFlowDirection(IDWriteTextLayout1* This) { 2801 return This->lpVtbl->GetFlowDirection(This); 2802 } 2803 static FORCEINLINE FLOAT IDWriteTextLayout1_GetIncrementalTabStop(IDWriteTextLayout1* This) { 2804 return This->lpVtbl->GetIncrementalTabStop(This); 2805 } 2806 static FORCEINLINE HRESULT IDWriteTextLayout1_GetTrimming(IDWriteTextLayout1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { 2807 return This->lpVtbl->GetTrimming(This,options,trimming_sign); 2808 } 2809 static FORCEINLINE HRESULT IDWriteTextLayout1_GetLineSpacing(IDWriteTextLayout1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { 2810 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); 2811 } 2812 /*** IDWriteTextLayout methods ***/ 2813 static FORCEINLINE HRESULT IDWriteTextLayout1_SetMaxWidth(IDWriteTextLayout1* This,FLOAT maxWidth) { 2814 return This->lpVtbl->SetMaxWidth(This,maxWidth); 2815 } 2816 static FORCEINLINE HRESULT IDWriteTextLayout1_SetMaxHeight(IDWriteTextLayout1* This,FLOAT maxHeight) { 2817 return This->lpVtbl->SetMaxHeight(This,maxHeight); 2818 } 2819 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontCollection(IDWriteTextLayout1* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { 2820 return This->lpVtbl->SetFontCollection(This,collection,range); 2821 } 2822 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontFamilyName(IDWriteTextLayout1* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { 2823 return This->lpVtbl->SetFontFamilyName(This,name,range); 2824 } 2825 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontWeight(IDWriteTextLayout1* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { 2826 return This->lpVtbl->SetFontWeight(This,weight,range); 2827 } 2828 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontStyle(IDWriteTextLayout1* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { 2829 return This->lpVtbl->SetFontStyle(This,style,range); 2830 } 2831 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontStretch(IDWriteTextLayout1* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { 2832 return This->lpVtbl->SetFontStretch(This,stretch,range); 2833 } 2834 static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontSize(IDWriteTextLayout1* This,FLOAT size,DWRITE_TEXT_RANGE range) { 2835 return This->lpVtbl->SetFontSize(This,size,range); 2836 } 2837 static FORCEINLINE HRESULT IDWriteTextLayout1_SetUnderline(IDWriteTextLayout1* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { 2838 return This->lpVtbl->SetUnderline(This,underline,range); 2839 } 2840 static FORCEINLINE HRESULT IDWriteTextLayout1_SetStrikethrough(IDWriteTextLayout1* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { 2841 return This->lpVtbl->SetStrikethrough(This,strikethrough,range); 2842 } 2843 static FORCEINLINE HRESULT IDWriteTextLayout1_SetDrawingEffect(IDWriteTextLayout1* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { 2844 return This->lpVtbl->SetDrawingEffect(This,effect,range); 2845 } 2846 static FORCEINLINE HRESULT IDWriteTextLayout1_SetInlineObject(IDWriteTextLayout1* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { 2847 return This->lpVtbl->SetInlineObject(This,object,range); 2848 } 2849 static FORCEINLINE HRESULT IDWriteTextLayout1_SetTypography(IDWriteTextLayout1* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { 2850 return This->lpVtbl->SetTypography(This,typography,range); 2851 } 2852 static FORCEINLINE HRESULT IDWriteTextLayout1_SetLocaleName(IDWriteTextLayout1* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { 2853 return This->lpVtbl->SetLocaleName(This,locale,range); 2854 } 2855 static FORCEINLINE FLOAT IDWriteTextLayout1_GetMaxWidth(IDWriteTextLayout1* This) { 2856 return This->lpVtbl->GetMaxWidth(This); 2857 } 2858 static FORCEINLINE FLOAT IDWriteTextLayout1_GetMaxHeight(IDWriteTextLayout1* This) { 2859 return This->lpVtbl->GetMaxHeight(This); 2860 } 2861 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontCollection(IDWriteTextLayout1* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { 2862 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); 2863 } 2864 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontFamilyNameLength(IDWriteTextLayout1* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { 2865 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); 2866 } 2867 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontFamilyName(IDWriteTextLayout1* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { 2868 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); 2869 } 2870 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontWeight(IDWriteTextLayout1* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { 2871 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); 2872 } 2873 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontStyle(IDWriteTextLayout1* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { 2874 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); 2875 } 2876 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontStretch(IDWriteTextLayout1* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { 2877 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); 2878 } 2879 static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontSize(IDWriteTextLayout1* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { 2880 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); 2881 } 2882 static FORCEINLINE HRESULT IDWriteTextLayout1_GetUnderline(IDWriteTextLayout1* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { 2883 return This->lpVtbl->GetUnderline(This,position,has_underline,range); 2884 } 2885 static FORCEINLINE HRESULT IDWriteTextLayout1_GetStrikethrough(IDWriteTextLayout1* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { 2886 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); 2887 } 2888 static FORCEINLINE HRESULT IDWriteTextLayout1_GetDrawingEffect(IDWriteTextLayout1* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { 2889 return This->lpVtbl->GetDrawingEffect(This,position,effect,range); 2890 } 2891 static FORCEINLINE HRESULT IDWriteTextLayout1_GetInlineObject(IDWriteTextLayout1* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { 2892 return This->lpVtbl->GetInlineObject(This,position,object,range); 2893 } 2894 static FORCEINLINE HRESULT IDWriteTextLayout1_GetTypography(IDWriteTextLayout1* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { 2895 return This->lpVtbl->GetTypography(This,position,typography,range); 2896 } 2897 static FORCEINLINE HRESULT IDWriteTextLayout1_GetLocaleNameLength(IDWriteTextLayout1* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { 2898 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); 2899 } 2900 static FORCEINLINE HRESULT IDWriteTextLayout1_GetLocaleName(IDWriteTextLayout1* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { 2901 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); 2902 } 2903 static FORCEINLINE HRESULT IDWriteTextLayout1_Draw(IDWriteTextLayout1* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { 2904 return This->lpVtbl->Draw(This,context,renderer,originX,originY); 2905 } 2906 static FORCEINLINE HRESULT IDWriteTextLayout1_GetLineMetrics(IDWriteTextLayout1* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { 2907 return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); 2908 } 2909 static FORCEINLINE HRESULT IDWriteTextLayout1_GetMetrics(IDWriteTextLayout1* This,DWRITE_TEXT_METRICS *metrics) { 2910 return This->lpVtbl->GetMetrics(This,metrics); 2911 } 2912 static FORCEINLINE HRESULT IDWriteTextLayout1_GetOverhangMetrics(IDWriteTextLayout1* This,DWRITE_OVERHANG_METRICS *overhangs) { 2913 return This->lpVtbl->GetOverhangMetrics(This,overhangs); 2914 } 2915 static FORCEINLINE HRESULT IDWriteTextLayout1_GetClusterMetrics(IDWriteTextLayout1* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { 2916 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); 2917 } 2918 static FORCEINLINE HRESULT IDWriteTextLayout1_DetermineMinWidth(IDWriteTextLayout1* This,FLOAT *min_width) { 2919 return This->lpVtbl->DetermineMinWidth(This,min_width); 2920 } 2921 static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestPoint(IDWriteTextLayout1* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { 2922 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); 2923 } 2924 static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestTextPosition(IDWriteTextLayout1* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { 2925 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); 2926 } 2927 static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestTextRange(IDWriteTextLayout1* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { 2928 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); 2929 } 2930 /*** IDWriteTextLayout1 methods ***/ 2931 static FORCEINLINE HRESULT IDWriteTextLayout1_SetPairKerning(IDWriteTextLayout1* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { 2932 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); 2933 } 2934 static FORCEINLINE HRESULT IDWriteTextLayout1_GetPairKerning(IDWriteTextLayout1* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { 2935 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); 2936 } 2937 static FORCEINLINE HRESULT IDWriteTextLayout1_SetCharacterSpacing(IDWriteTextLayout1* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { 2938 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); 2939 } 2940 static FORCEINLINE HRESULT IDWriteTextLayout1_GetCharacterSpacing(IDWriteTextLayout1* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { 2941 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); 2942 } 2943 #endif 2944 #endif 2945 2946 #endif 2947 2948 2949 #endif /* __IDWriteTextLayout1_INTERFACE_DEFINED__ */ 2950 2951 typedef enum DWRITE_TEXT_ANTIALIAS_MODE { 2952 DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE = 0, 2953 DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE = 1 2954 } DWRITE_TEXT_ANTIALIAS_MODE; 2955 /***************************************************************************** 2956 * IDWriteBitmapRenderTarget1 interface 2957 */ 2958 #ifndef __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__ 2959 #define __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__ 2960 2961 DEFINE_GUID(IID_IDWriteBitmapRenderTarget1, 0x791e8298, 0x3ef3, 0x4230, 0x98,0x80, 0xc9,0xbd,0xec,0xc4,0x20,0x64); 2962 #if defined(__cplusplus) && !defined(CINTERFACE) 2963 MIDL_INTERFACE("791e8298-3ef3-4230-9880-c9bdecc42064") 2964 IDWriteBitmapRenderTarget1 : public IDWriteBitmapRenderTarget 2965 { 2966 virtual DWRITE_TEXT_ANTIALIAS_MODE STDMETHODCALLTYPE GetTextAntialiasMode( 2967 ) = 0; 2968 2969 virtual HRESULT STDMETHODCALLTYPE SetTextAntialiasMode( 2970 DWRITE_TEXT_ANTIALIAS_MODE mode) = 0; 2971 2972 }; 2973 #ifdef __CRT_UUID_DECL 2974 __CRT_UUID_DECL(IDWriteBitmapRenderTarget1, 0x791e8298, 0x3ef3, 0x4230, 0x98,0x80, 0xc9,0xbd,0xec,0xc4,0x20,0x64) 2975 #endif 2976 #else 2977 typedef struct IDWriteBitmapRenderTarget1Vtbl { 2978 BEGIN_INTERFACE 2979 2980 /*** IUnknown methods ***/ 2981 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2982 IDWriteBitmapRenderTarget1 *This, 2983 REFIID riid, 2984 void **ppvObject); 2985 2986 ULONG (STDMETHODCALLTYPE *AddRef)( 2987 IDWriteBitmapRenderTarget1 *This); 2988 2989 ULONG (STDMETHODCALLTYPE *Release)( 2990 IDWriteBitmapRenderTarget1 *This); 2991 2992 /*** IDWriteBitmapRenderTarget methods ***/ 2993 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( 2994 IDWriteBitmapRenderTarget1 *This, 2995 FLOAT baselineOriginX, 2996 FLOAT baselineOriginY, 2997 DWRITE_MEASURING_MODE measuring_mode, 2998 const DWRITE_GLYPH_RUN *glyph_run, 2999 IDWriteRenderingParams *params, 3000 COLORREF textColor, 3001 RECT *blackbox_rect); 3002 3003 HDC (STDMETHODCALLTYPE *GetMemoryDC)( 3004 IDWriteBitmapRenderTarget1 *This); 3005 3006 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( 3007 IDWriteBitmapRenderTarget1 *This); 3008 3009 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( 3010 IDWriteBitmapRenderTarget1 *This, 3011 FLOAT pixels_per_dip); 3012 3013 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( 3014 IDWriteBitmapRenderTarget1 *This, 3015 DWRITE_MATRIX *transform); 3016 3017 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( 3018 IDWriteBitmapRenderTarget1 *This, 3019 const DWRITE_MATRIX *transform); 3020 3021 HRESULT (STDMETHODCALLTYPE *GetSize)( 3022 IDWriteBitmapRenderTarget1 *This, 3023 SIZE *size); 3024 3025 HRESULT (STDMETHODCALLTYPE *Resize)( 3026 IDWriteBitmapRenderTarget1 *This, 3027 UINT32 width, 3028 UINT32 height); 3029 3030 /*** IDWriteBitmapRenderTarget1 methods ***/ 3031 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( 3032 IDWriteBitmapRenderTarget1 *This); 3033 3034 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( 3035 IDWriteBitmapRenderTarget1 *This, 3036 DWRITE_TEXT_ANTIALIAS_MODE mode); 3037 3038 END_INTERFACE 3039 } IDWriteBitmapRenderTarget1Vtbl; 3040 3041 interface IDWriteBitmapRenderTarget1 { 3042 CONST_VTBL IDWriteBitmapRenderTarget1Vtbl* lpVtbl; 3043 }; 3044 3045 #ifdef COBJMACROS 3046 #ifndef WIDL_C_INLINE_WRAPPERS 3047 /*** IUnknown methods ***/ 3048 #define IDWriteBitmapRenderTarget1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3049 #define IDWriteBitmapRenderTarget1_AddRef(This) (This)->lpVtbl->AddRef(This) 3050 #define IDWriteBitmapRenderTarget1_Release(This) (This)->lpVtbl->Release(This) 3051 /*** IDWriteBitmapRenderTarget methods ***/ 3052 #define IDWriteBitmapRenderTarget1_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) 3053 #define IDWriteBitmapRenderTarget1_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) 3054 #define IDWriteBitmapRenderTarget1_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) 3055 #define IDWriteBitmapRenderTarget1_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) 3056 #define IDWriteBitmapRenderTarget1_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) 3057 #define IDWriteBitmapRenderTarget1_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) 3058 #define IDWriteBitmapRenderTarget1_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) 3059 #define IDWriteBitmapRenderTarget1_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) 3060 /*** IDWriteBitmapRenderTarget1 methods ***/ 3061 #define IDWriteBitmapRenderTarget1_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) 3062 #define IDWriteBitmapRenderTarget1_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) 3063 #else 3064 /*** IUnknown methods ***/ 3065 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_QueryInterface(IDWriteBitmapRenderTarget1* This,REFIID riid,void **ppvObject) { 3066 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3067 } 3068 static FORCEINLINE ULONG IDWriteBitmapRenderTarget1_AddRef(IDWriteBitmapRenderTarget1* This) { 3069 return This->lpVtbl->AddRef(This); 3070 } 3071 static FORCEINLINE ULONG IDWriteBitmapRenderTarget1_Release(IDWriteBitmapRenderTarget1* This) { 3072 return This->lpVtbl->Release(This); 3073 } 3074 /*** IDWriteBitmapRenderTarget methods ***/ 3075 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_DrawGlyphRun(IDWriteBitmapRenderTarget1* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { 3076 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); 3077 } 3078 static FORCEINLINE HDC IDWriteBitmapRenderTarget1_GetMemoryDC(IDWriteBitmapRenderTarget1* This) { 3079 return This->lpVtbl->GetMemoryDC(This); 3080 } 3081 static FORCEINLINE FLOAT IDWriteBitmapRenderTarget1_GetPixelsPerDip(IDWriteBitmapRenderTarget1* This) { 3082 return This->lpVtbl->GetPixelsPerDip(This); 3083 } 3084 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetPixelsPerDip(IDWriteBitmapRenderTarget1* This,FLOAT pixels_per_dip) { 3085 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); 3086 } 3087 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_GetCurrentTransform(IDWriteBitmapRenderTarget1* This,DWRITE_MATRIX *transform) { 3088 return This->lpVtbl->GetCurrentTransform(This,transform); 3089 } 3090 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetCurrentTransform(IDWriteBitmapRenderTarget1* This,const DWRITE_MATRIX *transform) { 3091 return This->lpVtbl->SetCurrentTransform(This,transform); 3092 } 3093 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_GetSize(IDWriteBitmapRenderTarget1* This,SIZE *size) { 3094 return This->lpVtbl->GetSize(This,size); 3095 } 3096 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_Resize(IDWriteBitmapRenderTarget1* This,UINT32 width,UINT32 height) { 3097 return This->lpVtbl->Resize(This,width,height); 3098 } 3099 /*** IDWriteBitmapRenderTarget1 methods ***/ 3100 static FORCEINLINE DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget1_GetTextAntialiasMode(IDWriteBitmapRenderTarget1* This) { 3101 return This->lpVtbl->GetTextAntialiasMode(This); 3102 } 3103 static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetTextAntialiasMode(IDWriteBitmapRenderTarget1* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { 3104 return This->lpVtbl->SetTextAntialiasMode(This,mode); 3105 } 3106 #endif 3107 #endif 3108 3109 #endif 3110 3111 3112 #endif /* __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__ */ 3113 3114 /* Begin additional prototypes for all interfaces */ 3115 3116 3117 /* End additional prototypes */ 3118 3119 #ifdef __cplusplus 3120 } 3121 #endif 3122 3123 #endif /* __dwrite_1_h__ */ 3124