1 /*** Autogenerated by WIDL 6.4 from include/dwrite_2.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_2_h__ 17 #define __dwrite_2_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IDWriteTextRenderer1_FWD_DEFINED__ 22 #define __IDWriteTextRenderer1_FWD_DEFINED__ 23 typedef interface IDWriteTextRenderer1 IDWriteTextRenderer1; 24 #ifdef __cplusplus 25 interface IDWriteTextRenderer1; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IDWriteFontFallback_FWD_DEFINED__ 30 #define __IDWriteFontFallback_FWD_DEFINED__ 31 typedef interface IDWriteFontFallback IDWriteFontFallback; 32 #ifdef __cplusplus 33 interface IDWriteFontFallback; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IDWriteTextFormat1_FWD_DEFINED__ 38 #define __IDWriteTextFormat1_FWD_DEFINED__ 39 typedef interface IDWriteTextFormat1 IDWriteTextFormat1; 40 #ifdef __cplusplus 41 interface IDWriteTextFormat1; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IDWriteTextLayout2_FWD_DEFINED__ 46 #define __IDWriteTextLayout2_FWD_DEFINED__ 47 typedef interface IDWriteTextLayout2 IDWriteTextLayout2; 48 #ifdef __cplusplus 49 interface IDWriteTextLayout2; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IDWriteTextAnalyzer2_FWD_DEFINED__ 54 #define __IDWriteTextAnalyzer2_FWD_DEFINED__ 55 typedef interface IDWriteTextAnalyzer2 IDWriteTextAnalyzer2; 56 #ifdef __cplusplus 57 interface IDWriteTextAnalyzer2; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IDWriteFontFallbackBuilder_FWD_DEFINED__ 62 #define __IDWriteFontFallbackBuilder_FWD_DEFINED__ 63 typedef interface IDWriteFontFallbackBuilder IDWriteFontFallbackBuilder; 64 #ifdef __cplusplus 65 interface IDWriteFontFallbackBuilder; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IDWriteFont2_FWD_DEFINED__ 70 #define __IDWriteFont2_FWD_DEFINED__ 71 typedef interface IDWriteFont2 IDWriteFont2; 72 #ifdef __cplusplus 73 interface IDWriteFont2; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IDWriteFontFace2_FWD_DEFINED__ 78 #define __IDWriteFontFace2_FWD_DEFINED__ 79 typedef interface IDWriteFontFace2 IDWriteFontFace2; 80 #ifdef __cplusplus 81 interface IDWriteFontFace2; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ 86 #define __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ 87 typedef interface IDWriteColorGlyphRunEnumerator IDWriteColorGlyphRunEnumerator; 88 #ifdef __cplusplus 89 interface IDWriteColorGlyphRunEnumerator; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __IDWriteRenderingParams2_FWD_DEFINED__ 94 #define __IDWriteRenderingParams2_FWD_DEFINED__ 95 typedef interface IDWriteRenderingParams2 IDWriteRenderingParams2; 96 #ifdef __cplusplus 97 interface IDWriteRenderingParams2; 98 #endif /* __cplusplus */ 99 #endif 100 101 #ifndef __IDWriteFactory2_FWD_DEFINED__ 102 #define __IDWriteFactory2_FWD_DEFINED__ 103 typedef interface IDWriteFactory2 IDWriteFactory2; 104 #ifdef __cplusplus 105 interface IDWriteFactory2; 106 #endif /* __cplusplus */ 107 #endif 108 109 /* Headers for imported files */ 110 111 #include <dwrite_1.h> 112 113 #ifdef __cplusplus 114 extern "C" { 115 #endif 116 117 typedef enum DWRITE_OPTICAL_ALIGNMENT { 118 DWRITE_OPTICAL_ALIGNMENT_NONE = 0, 119 DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 120 } DWRITE_OPTICAL_ALIGNMENT; 121 typedef enum DWRITE_GRID_FIT_MODE { 122 DWRITE_GRID_FIT_MODE_DEFAULT = 0, 123 DWRITE_GRID_FIT_MODE_DISABLED = 1, 124 DWRITE_GRID_FIT_MODE_ENABLED = 2 125 } DWRITE_GRID_FIT_MODE; 126 typedef struct DWRITE_TEXT_METRICS1 { 127 FLOAT left; 128 FLOAT top; 129 FLOAT width; 130 FLOAT widthIncludingTrailingWhitespace; 131 FLOAT height; 132 FLOAT layoutWidth; 133 FLOAT layoutHeight; 134 UINT32 maxBidiReorderingDepth; 135 UINT32 lineCount; 136 FLOAT heightIncludingTrailingWhitespace; 137 } DWRITE_TEXT_METRICS1; 138 #ifndef D3DCOLORVALUE_DEFINED 139 typedef struct _D3DCOLORVALUE { 140 __C89_NAMELESS union { 141 FLOAT r; 142 FLOAT dvR; 143 } __C89_NAMELESSUNIONNAME1; 144 __C89_NAMELESS union { 145 FLOAT g; 146 FLOAT dvG; 147 } __C89_NAMELESSUNIONNAME2; 148 __C89_NAMELESS union { 149 FLOAT b; 150 FLOAT dvB; 151 } __C89_NAMELESSUNIONNAME3; 152 __C89_NAMELESS union { 153 FLOAT a; 154 FLOAT dvA; 155 } __C89_NAMELESSUNIONNAME4; 156 } D3DCOLORVALUE; 157 #define D3DCOLORVALUE_DEFINED 158 #endif 159 typedef D3DCOLORVALUE DWRITE_COLOR_F; 160 typedef struct DWRITE_COLOR_GLYPH_RUN { 161 DWRITE_GLYPH_RUN glyphRun; 162 DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; 163 FLOAT baselineOriginX; 164 FLOAT baselineOriginY; 165 DWRITE_COLOR_F runColor; 166 UINT16 paletteIndex; 167 } DWRITE_COLOR_GLYPH_RUN; 168 /***************************************************************************** 169 * IDWriteTextRenderer1 interface 170 */ 171 #ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__ 172 #define __IDWriteTextRenderer1_INTERFACE_DEFINED__ 173 174 DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1); 175 #if defined(__cplusplus) && !defined(CINTERFACE) 176 MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1") 177 IDWriteTextRenderer1 : public IDWriteTextRenderer 178 { 179 virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( 180 void *context, 181 FLOAT originX, 182 FLOAT originY, 183 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 184 DWRITE_MEASURING_MODE mode, 185 const DWRITE_GLYPH_RUN *run, 186 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, 187 IUnknown *effect) = 0; 188 189 virtual HRESULT STDMETHODCALLTYPE DrawUnderline( 190 void *context, 191 FLOAT originX, 192 FLOAT originY, 193 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 194 const DWRITE_UNDERLINE *underline, 195 IUnknown *effect) = 0; 196 197 virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( 198 void *context, 199 FLOAT originX, 200 FLOAT originY, 201 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 202 const DWRITE_STRIKETHROUGH *strikethrough, 203 IUnknown *effect) = 0; 204 205 virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( 206 void *context, 207 FLOAT originX, 208 FLOAT originY, 209 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 210 IDWriteInlineObject *inlineObject, 211 WINBOOL is_sideways, 212 WINBOOL is_rtl, 213 IUnknown *effect) = 0; 214 215 }; 216 #ifdef __CRT_UUID_DECL 217 __CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1) 218 #endif 219 #else 220 typedef struct IDWriteTextRenderer1Vtbl { 221 BEGIN_INTERFACE 222 223 /*** IUnknown methods ***/ 224 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 225 IDWriteTextRenderer1 *This, 226 REFIID riid, 227 void **ppvObject); 228 229 ULONG (STDMETHODCALLTYPE *AddRef)( 230 IDWriteTextRenderer1 *This); 231 232 ULONG (STDMETHODCALLTYPE *Release)( 233 IDWriteTextRenderer1 *This); 234 235 /*** IDWritePixelSnapping methods ***/ 236 HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( 237 IDWriteTextRenderer1 *This, 238 void *client_drawingcontext, 239 WINBOOL *disabled); 240 241 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( 242 IDWriteTextRenderer1 *This, 243 void *client_drawingcontext, 244 DWRITE_MATRIX *transform); 245 246 HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( 247 IDWriteTextRenderer1 *This, 248 void *client_drawingcontext, 249 FLOAT *pixels_per_dip); 250 251 /*** IDWriteTextRenderer methods ***/ 252 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( 253 IDWriteTextRenderer1 *This, 254 void *client_drawingcontext, 255 FLOAT baselineOriginX, 256 FLOAT baselineOriginY, 257 DWRITE_MEASURING_MODE mode, 258 const DWRITE_GLYPH_RUN *glyph_run, 259 const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, 260 IUnknown *drawing_effect); 261 262 HRESULT (STDMETHODCALLTYPE *DrawUnderline)( 263 IDWriteTextRenderer1 *This, 264 void *client_drawingcontext, 265 FLOAT baselineOriginX, 266 FLOAT baselineOriginY, 267 const DWRITE_UNDERLINE *underline, 268 IUnknown *drawing_effect); 269 270 HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( 271 IDWriteTextRenderer1 *This, 272 void *client_drawingcontext, 273 FLOAT baselineOriginX, 274 FLOAT baselineOriginY, 275 const DWRITE_STRIKETHROUGH *strikethrough, 276 IUnknown *drawing_effect); 277 278 HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( 279 IDWriteTextRenderer1 *This, 280 void *client_drawingcontext, 281 FLOAT originX, 282 FLOAT originY, 283 IDWriteInlineObject *object, 284 WINBOOL is_sideways, 285 WINBOOL is_rtl, 286 IUnknown *drawing_effect); 287 288 /*** IDWriteTextRenderer1 methods ***/ 289 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawGlyphRun)( 290 IDWriteTextRenderer1 *This, 291 void *context, 292 FLOAT originX, 293 FLOAT originY, 294 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 295 DWRITE_MEASURING_MODE mode, 296 const DWRITE_GLYPH_RUN *run, 297 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, 298 IUnknown *effect); 299 300 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawUnderline)( 301 IDWriteTextRenderer1 *This, 302 void *context, 303 FLOAT originX, 304 FLOAT originY, 305 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 306 const DWRITE_UNDERLINE *underline, 307 IUnknown *effect); 308 309 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawStrikethrough)( 310 IDWriteTextRenderer1 *This, 311 void *context, 312 FLOAT originX, 313 FLOAT originY, 314 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 315 const DWRITE_STRIKETHROUGH *strikethrough, 316 IUnknown *effect); 317 318 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawInlineObject)( 319 IDWriteTextRenderer1 *This, 320 void *context, 321 FLOAT originX, 322 FLOAT originY, 323 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 324 IDWriteInlineObject *inlineObject, 325 WINBOOL is_sideways, 326 WINBOOL is_rtl, 327 IUnknown *effect); 328 329 END_INTERFACE 330 } IDWriteTextRenderer1Vtbl; 331 332 interface IDWriteTextRenderer1 { 333 CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; 334 }; 335 336 #ifdef COBJMACROS 337 #ifndef WIDL_C_INLINE_WRAPPERS 338 /*** IUnknown methods ***/ 339 #define IDWriteTextRenderer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 340 #define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This) 341 #define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This) 342 /*** IDWritePixelSnapping methods ***/ 343 #define IDWriteTextRenderer1_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) 344 #define IDWriteTextRenderer1_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) 345 #define IDWriteTextRenderer1_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) 346 /*** IDWriteTextRenderer methods ***/ 347 /*** IDWriteTextRenderer1 methods ***/ 348 #define IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) 349 #define IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) 350 #define IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) 351 #define IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) 352 #else 353 /*** IUnknown methods ***/ 354 static FORCEINLINE HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This,REFIID riid,void **ppvObject) { 355 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 356 } 357 static FORCEINLINE ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) { 358 return This->lpVtbl->AddRef(This); 359 } 360 static FORCEINLINE ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) { 361 return This->lpVtbl->Release(This); 362 } 363 /*** IDWritePixelSnapping methods ***/ 364 static FORCEINLINE HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This,void *client_drawingcontext,WINBOOL *disabled) { 365 return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); 366 } 367 static FORCEINLINE HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { 368 return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); 369 } 370 static FORCEINLINE HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { 371 return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); 372 } 373 /*** IDWriteTextRenderer methods ***/ 374 /*** IDWriteTextRenderer1 methods ***/ 375 static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,IUnknown *effect) { 376 return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect); 377 } 378 static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_UNDERLINE *underline,IUnknown *effect) { 379 return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect); 380 } 381 static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *effect) { 382 return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect); 383 } 384 static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,IDWriteInlineObject *inlineObject,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *effect) { 385 return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect); 386 } 387 #endif 388 #endif 389 390 #endif 391 392 393 #endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ 394 395 /***************************************************************************** 396 * IDWriteFontFallback interface 397 */ 398 #ifndef __IDWriteFontFallback_INTERFACE_DEFINED__ 399 #define __IDWriteFontFallback_INTERFACE_DEFINED__ 400 401 DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff); 402 #if defined(__cplusplus) && !defined(CINTERFACE) 403 MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff") 404 IDWriteFontFallback : public IUnknown 405 { 406 virtual HRESULT STDMETHODCALLTYPE MapCharacters( 407 IDWriteTextAnalysisSource *source, 408 UINT32 position, 409 UINT32 length, 410 IDWriteFontCollection *basecollection, 411 const WCHAR *baseFamilyName, 412 DWRITE_FONT_WEIGHT baseWeight, 413 DWRITE_FONT_STYLE baseStyle, 414 DWRITE_FONT_STRETCH baseStretch, 415 UINT32 *mappedLength, 416 IDWriteFont **mappedFont, 417 FLOAT *scale) = 0; 418 419 }; 420 #ifdef __CRT_UUID_DECL 421 __CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff) 422 #endif 423 #else 424 typedef struct IDWriteFontFallbackVtbl { 425 BEGIN_INTERFACE 426 427 /*** IUnknown methods ***/ 428 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 429 IDWriteFontFallback *This, 430 REFIID riid, 431 void **ppvObject); 432 433 ULONG (STDMETHODCALLTYPE *AddRef)( 434 IDWriteFontFallback *This); 435 436 ULONG (STDMETHODCALLTYPE *Release)( 437 IDWriteFontFallback *This); 438 439 /*** IDWriteFontFallback methods ***/ 440 HRESULT (STDMETHODCALLTYPE *MapCharacters)( 441 IDWriteFontFallback *This, 442 IDWriteTextAnalysisSource *source, 443 UINT32 position, 444 UINT32 length, 445 IDWriteFontCollection *basecollection, 446 const WCHAR *baseFamilyName, 447 DWRITE_FONT_WEIGHT baseWeight, 448 DWRITE_FONT_STYLE baseStyle, 449 DWRITE_FONT_STRETCH baseStretch, 450 UINT32 *mappedLength, 451 IDWriteFont **mappedFont, 452 FLOAT *scale); 453 454 END_INTERFACE 455 } IDWriteFontFallbackVtbl; 456 457 interface IDWriteFontFallback { 458 CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; 459 }; 460 461 #ifdef COBJMACROS 462 #ifndef WIDL_C_INLINE_WRAPPERS 463 /*** IUnknown methods ***/ 464 #define IDWriteFontFallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 465 #define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This) 466 #define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This) 467 /*** IDWriteFontFallback methods ***/ 468 #define IDWriteFontFallback_MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) (This)->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) 469 #else 470 /*** IUnknown methods ***/ 471 static FORCEINLINE HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This,REFIID riid,void **ppvObject) { 472 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 473 } 474 static FORCEINLINE ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) { 475 return This->lpVtbl->AddRef(This); 476 } 477 static FORCEINLINE ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) { 478 return This->lpVtbl->Release(This); 479 } 480 /*** IDWriteFontFallback methods ***/ 481 static FORCEINLINE HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteFontCollection *basecollection,const WCHAR *baseFamilyName,DWRITE_FONT_WEIGHT baseWeight,DWRITE_FONT_STYLE baseStyle,DWRITE_FONT_STRETCH baseStretch,UINT32 *mappedLength,IDWriteFont **mappedFont,FLOAT *scale) { 482 return This->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale); 483 } 484 #endif 485 #endif 486 487 #endif 488 489 490 #endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ 491 492 /***************************************************************************** 493 * IDWriteTextFormat1 interface 494 */ 495 #ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__ 496 #define __IDWriteTextFormat1_INTERFACE_DEFINED__ 497 498 DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67); 499 #if defined(__cplusplus) && !defined(CINTERFACE) 500 MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67") 501 IDWriteTextFormat1 : public IDWriteTextFormat 502 { 503 virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( 504 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; 505 506 virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( 507 ) = 0; 508 509 virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( 510 WINBOOL lastline_wrapping_enabled) = 0; 511 512 virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( 513 ) = 0; 514 515 virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( 516 DWRITE_OPTICAL_ALIGNMENT alignment) = 0; 517 518 virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( 519 ) = 0; 520 521 virtual HRESULT STDMETHODCALLTYPE SetFontFallback( 522 IDWriteFontFallback *fallback) = 0; 523 524 virtual HRESULT STDMETHODCALLTYPE GetFontFallback( 525 IDWriteFontFallback **fallback) = 0; 526 527 }; 528 #ifdef __CRT_UUID_DECL 529 __CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67) 530 #endif 531 #else 532 typedef struct IDWriteTextFormat1Vtbl { 533 BEGIN_INTERFACE 534 535 /*** IUnknown methods ***/ 536 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 537 IDWriteTextFormat1 *This, 538 REFIID riid, 539 void **ppvObject); 540 541 ULONG (STDMETHODCALLTYPE *AddRef)( 542 IDWriteTextFormat1 *This); 543 544 ULONG (STDMETHODCALLTYPE *Release)( 545 IDWriteTextFormat1 *This); 546 547 /*** IDWriteTextFormat methods ***/ 548 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( 549 IDWriteTextFormat1 *This, 550 DWRITE_TEXT_ALIGNMENT alignment); 551 552 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( 553 IDWriteTextFormat1 *This, 554 DWRITE_PARAGRAPH_ALIGNMENT alignment); 555 556 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( 557 IDWriteTextFormat1 *This, 558 DWRITE_WORD_WRAPPING wrapping); 559 560 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( 561 IDWriteTextFormat1 *This, 562 DWRITE_READING_DIRECTION direction); 563 564 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( 565 IDWriteTextFormat1 *This, 566 DWRITE_FLOW_DIRECTION direction); 567 568 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( 569 IDWriteTextFormat1 *This, 570 FLOAT tabstop); 571 572 HRESULT (STDMETHODCALLTYPE *SetTrimming)( 573 IDWriteTextFormat1 *This, 574 const DWRITE_TRIMMING *trimming, 575 IDWriteInlineObject *trimming_sign); 576 577 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( 578 IDWriteTextFormat1 *This, 579 DWRITE_LINE_SPACING_METHOD spacing, 580 FLOAT line_spacing, 581 FLOAT baseline); 582 583 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( 584 IDWriteTextFormat1 *This); 585 586 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( 587 IDWriteTextFormat1 *This); 588 589 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( 590 IDWriteTextFormat1 *This); 591 592 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( 593 IDWriteTextFormat1 *This); 594 595 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( 596 IDWriteTextFormat1 *This); 597 598 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( 599 IDWriteTextFormat1 *This); 600 601 HRESULT (STDMETHODCALLTYPE *GetTrimming)( 602 IDWriteTextFormat1 *This, 603 DWRITE_TRIMMING *options, 604 IDWriteInlineObject **trimming_sign); 605 606 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( 607 IDWriteTextFormat1 *This, 608 DWRITE_LINE_SPACING_METHOD *method, 609 FLOAT *spacing, 610 FLOAT *baseline); 611 612 HRESULT (STDMETHODCALLTYPE *GetFontCollection)( 613 IDWriteTextFormat1 *This, 614 IDWriteFontCollection **collection); 615 616 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( 617 IDWriteTextFormat1 *This); 618 619 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( 620 IDWriteTextFormat1 *This, 621 WCHAR *name, 622 UINT32 size); 623 624 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( 625 IDWriteTextFormat1 *This); 626 627 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( 628 IDWriteTextFormat1 *This); 629 630 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( 631 IDWriteTextFormat1 *This); 632 633 FLOAT (STDMETHODCALLTYPE *GetFontSize)( 634 IDWriteTextFormat1 *This); 635 636 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( 637 IDWriteTextFormat1 *This); 638 639 HRESULT (STDMETHODCALLTYPE *GetLocaleName)( 640 IDWriteTextFormat1 *This, 641 WCHAR *name, 642 UINT32 size); 643 644 /*** IDWriteTextFormat1 methods ***/ 645 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( 646 IDWriteTextFormat1 *This, 647 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); 648 649 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( 650 IDWriteTextFormat1 *This); 651 652 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( 653 IDWriteTextFormat1 *This, 654 WINBOOL lastline_wrapping_enabled); 655 656 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( 657 IDWriteTextFormat1 *This); 658 659 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( 660 IDWriteTextFormat1 *This, 661 DWRITE_OPTICAL_ALIGNMENT alignment); 662 663 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( 664 IDWriteTextFormat1 *This); 665 666 HRESULT (STDMETHODCALLTYPE *SetFontFallback)( 667 IDWriteTextFormat1 *This, 668 IDWriteFontFallback *fallback); 669 670 HRESULT (STDMETHODCALLTYPE *GetFontFallback)( 671 IDWriteTextFormat1 *This, 672 IDWriteFontFallback **fallback); 673 674 END_INTERFACE 675 } IDWriteTextFormat1Vtbl; 676 677 interface IDWriteTextFormat1 { 678 CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; 679 }; 680 681 #ifdef COBJMACROS 682 #ifndef WIDL_C_INLINE_WRAPPERS 683 /*** IUnknown methods ***/ 684 #define IDWriteTextFormat1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 685 #define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This) 686 #define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This) 687 /*** IDWriteTextFormat methods ***/ 688 #define IDWriteTextFormat1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) 689 #define IDWriteTextFormat1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) 690 #define IDWriteTextFormat1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) 691 #define IDWriteTextFormat1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) 692 #define IDWriteTextFormat1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) 693 #define IDWriteTextFormat1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) 694 #define IDWriteTextFormat1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) 695 #define IDWriteTextFormat1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) 696 #define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) 697 #define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) 698 #define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) 699 #define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) 700 #define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) 701 #define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) 702 #define IDWriteTextFormat1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) 703 #define IDWriteTextFormat1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) 704 #define IDWriteTextFormat1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) 705 #define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) 706 #define IDWriteTextFormat1_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) 707 #define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) 708 #define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) 709 #define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) 710 #define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) 711 #define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) 712 #define IDWriteTextFormat1_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) 713 /*** IDWriteTextFormat1 methods ***/ 714 #define IDWriteTextFormat1_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) 715 #define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) 716 #define IDWriteTextFormat1_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) 717 #define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) 718 #define IDWriteTextFormat1_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) 719 #define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) 720 #define IDWriteTextFormat1_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) 721 #define IDWriteTextFormat1_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) 722 #else 723 /*** IUnknown methods ***/ 724 static FORCEINLINE HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This,REFIID riid,void **ppvObject) { 725 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 726 } 727 static FORCEINLINE ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) { 728 return This->lpVtbl->AddRef(This); 729 } 730 static FORCEINLINE ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) { 731 return This->lpVtbl->Release(This); 732 } 733 /*** IDWriteTextFormat methods ***/ 734 static FORCEINLINE HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This,DWRITE_TEXT_ALIGNMENT alignment) { 735 return This->lpVtbl->SetTextAlignment(This,alignment); 736 } 737 static FORCEINLINE HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { 738 return This->lpVtbl->SetParagraphAlignment(This,alignment); 739 } 740 static FORCEINLINE HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This,DWRITE_WORD_WRAPPING wrapping) { 741 return This->lpVtbl->SetWordWrapping(This,wrapping); 742 } 743 static FORCEINLINE HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This,DWRITE_READING_DIRECTION direction) { 744 return This->lpVtbl->SetReadingDirection(This,direction); 745 } 746 static FORCEINLINE HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This,DWRITE_FLOW_DIRECTION direction) { 747 return This->lpVtbl->SetFlowDirection(This,direction); 748 } 749 static FORCEINLINE HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This,FLOAT tabstop) { 750 return This->lpVtbl->SetIncrementalTabStop(This,tabstop); 751 } 752 static FORCEINLINE HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { 753 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); 754 } 755 static FORCEINLINE HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { 756 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); 757 } 758 static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) { 759 return This->lpVtbl->GetTextAlignment(This); 760 } 761 static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) { 762 return This->lpVtbl->GetParagraphAlignment(This); 763 } 764 static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) { 765 return This->lpVtbl->GetWordWrapping(This); 766 } 767 static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) { 768 return This->lpVtbl->GetReadingDirection(This); 769 } 770 static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) { 771 return This->lpVtbl->GetFlowDirection(This); 772 } 773 static FORCEINLINE FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) { 774 return This->lpVtbl->GetIncrementalTabStop(This); 775 } 776 static FORCEINLINE HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { 777 return This->lpVtbl->GetTrimming(This,options,trimming_sign); 778 } 779 static FORCEINLINE HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { 780 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); 781 } 782 static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This,IDWriteFontCollection **collection) { 783 return This->lpVtbl->GetFontCollection(This,collection); 784 } 785 static FORCEINLINE UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) { 786 return This->lpVtbl->GetFontFamilyNameLength(This); 787 } 788 static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { 789 return This->lpVtbl->GetFontFamilyName(This,name,size); 790 } 791 static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) { 792 return This->lpVtbl->GetFontWeight(This); 793 } 794 static FORCEINLINE DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) { 795 return This->lpVtbl->GetFontStyle(This); 796 } 797 static FORCEINLINE DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) { 798 return This->lpVtbl->GetFontStretch(This); 799 } 800 static FORCEINLINE FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) { 801 return This->lpVtbl->GetFontSize(This); 802 } 803 static FORCEINLINE UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) { 804 return This->lpVtbl->GetLocaleNameLength(This); 805 } 806 static FORCEINLINE HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { 807 return This->lpVtbl->GetLocaleName(This,name,size); 808 } 809 /*** IDWriteTextFormat1 methods ***/ 810 static FORCEINLINE HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { 811 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); 812 } 813 static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) { 814 return This->lpVtbl->GetVerticalGlyphOrientation(This); 815 } 816 static FORCEINLINE HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This,WINBOOL lastline_wrapping_enabled) { 817 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); 818 } 819 static FORCEINLINE WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) { 820 return This->lpVtbl->GetLastLineWrapping(This); 821 } 822 static FORCEINLINE HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This,DWRITE_OPTICAL_ALIGNMENT alignment) { 823 return This->lpVtbl->SetOpticalAlignment(This,alignment); 824 } 825 static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) { 826 return This->lpVtbl->GetOpticalAlignment(This); 827 } 828 static FORCEINLINE HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback *fallback) { 829 return This->lpVtbl->SetFontFallback(This,fallback); 830 } 831 static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback **fallback) { 832 return This->lpVtbl->GetFontFallback(This,fallback); 833 } 834 #endif 835 #endif 836 837 #endif 838 839 840 #endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ 841 842 /***************************************************************************** 843 * IDWriteTextLayout2 interface 844 */ 845 #ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__ 846 #define __IDWriteTextLayout2_INTERFACE_DEFINED__ 847 848 DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e); 849 #if defined(__cplusplus) && !defined(CINTERFACE) 850 MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e") 851 IDWriteTextLayout2 : public IDWriteTextLayout1 852 { 853 virtual HRESULT STDMETHODCALLTYPE GetMetrics( 854 DWRITE_TEXT_METRICS1 *metrics) = 0; 855 856 virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( 857 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; 858 859 virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( 860 ) = 0; 861 862 virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( 863 WINBOOL lastline_wrapping_enabled) = 0; 864 865 virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( 866 ) = 0; 867 868 virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( 869 DWRITE_OPTICAL_ALIGNMENT alignment) = 0; 870 871 virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( 872 ) = 0; 873 874 virtual HRESULT STDMETHODCALLTYPE SetFontFallback( 875 IDWriteFontFallback *fallback) = 0; 876 877 virtual HRESULT STDMETHODCALLTYPE GetFontFallback( 878 IDWriteFontFallback **fallback) = 0; 879 880 }; 881 #ifdef __CRT_UUID_DECL 882 __CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e) 883 #endif 884 #else 885 typedef struct IDWriteTextLayout2Vtbl { 886 BEGIN_INTERFACE 887 888 /*** IUnknown methods ***/ 889 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 890 IDWriteTextLayout2 *This, 891 REFIID riid, 892 void **ppvObject); 893 894 ULONG (STDMETHODCALLTYPE *AddRef)( 895 IDWriteTextLayout2 *This); 896 897 ULONG (STDMETHODCALLTYPE *Release)( 898 IDWriteTextLayout2 *This); 899 900 /*** IDWriteTextFormat methods ***/ 901 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( 902 IDWriteTextLayout2 *This, 903 DWRITE_TEXT_ALIGNMENT alignment); 904 905 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( 906 IDWriteTextLayout2 *This, 907 DWRITE_PARAGRAPH_ALIGNMENT alignment); 908 909 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( 910 IDWriteTextLayout2 *This, 911 DWRITE_WORD_WRAPPING wrapping); 912 913 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( 914 IDWriteTextLayout2 *This, 915 DWRITE_READING_DIRECTION direction); 916 917 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( 918 IDWriteTextLayout2 *This, 919 DWRITE_FLOW_DIRECTION direction); 920 921 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( 922 IDWriteTextLayout2 *This, 923 FLOAT tabstop); 924 925 HRESULT (STDMETHODCALLTYPE *SetTrimming)( 926 IDWriteTextLayout2 *This, 927 const DWRITE_TRIMMING *trimming, 928 IDWriteInlineObject *trimming_sign); 929 930 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( 931 IDWriteTextLayout2 *This, 932 DWRITE_LINE_SPACING_METHOD spacing, 933 FLOAT line_spacing, 934 FLOAT baseline); 935 936 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( 937 IDWriteTextLayout2 *This); 938 939 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( 940 IDWriteTextLayout2 *This); 941 942 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( 943 IDWriteTextLayout2 *This); 944 945 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( 946 IDWriteTextLayout2 *This); 947 948 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( 949 IDWriteTextLayout2 *This); 950 951 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( 952 IDWriteTextLayout2 *This); 953 954 HRESULT (STDMETHODCALLTYPE *GetTrimming)( 955 IDWriteTextLayout2 *This, 956 DWRITE_TRIMMING *options, 957 IDWriteInlineObject **trimming_sign); 958 959 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( 960 IDWriteTextLayout2 *This, 961 DWRITE_LINE_SPACING_METHOD *method, 962 FLOAT *spacing, 963 FLOAT *baseline); 964 965 HRESULT (STDMETHODCALLTYPE *GetFontCollection)( 966 IDWriteTextLayout2 *This, 967 IDWriteFontCollection **collection); 968 969 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( 970 IDWriteTextLayout2 *This); 971 972 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( 973 IDWriteTextLayout2 *This, 974 WCHAR *name, 975 UINT32 size); 976 977 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( 978 IDWriteTextLayout2 *This); 979 980 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( 981 IDWriteTextLayout2 *This); 982 983 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( 984 IDWriteTextLayout2 *This); 985 986 FLOAT (STDMETHODCALLTYPE *GetFontSize)( 987 IDWriteTextLayout2 *This); 988 989 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( 990 IDWriteTextLayout2 *This); 991 992 HRESULT (STDMETHODCALLTYPE *GetLocaleName)( 993 IDWriteTextLayout2 *This, 994 WCHAR *name, 995 UINT32 size); 996 997 /*** IDWriteTextLayout methods ***/ 998 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( 999 IDWriteTextLayout2 *This, 1000 FLOAT maxWidth); 1001 1002 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( 1003 IDWriteTextLayout2 *This, 1004 FLOAT maxHeight); 1005 1006 HRESULT (STDMETHODCALLTYPE *SetFontCollection)( 1007 IDWriteTextLayout2 *This, 1008 IDWriteFontCollection *collection, 1009 DWRITE_TEXT_RANGE range); 1010 1011 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( 1012 IDWriteTextLayout2 *This, 1013 const WCHAR *name, 1014 DWRITE_TEXT_RANGE range); 1015 1016 HRESULT (STDMETHODCALLTYPE *SetFontWeight)( 1017 IDWriteTextLayout2 *This, 1018 DWRITE_FONT_WEIGHT weight, 1019 DWRITE_TEXT_RANGE range); 1020 1021 HRESULT (STDMETHODCALLTYPE *SetFontStyle)( 1022 IDWriteTextLayout2 *This, 1023 DWRITE_FONT_STYLE style, 1024 DWRITE_TEXT_RANGE range); 1025 1026 HRESULT (STDMETHODCALLTYPE *SetFontStretch)( 1027 IDWriteTextLayout2 *This, 1028 DWRITE_FONT_STRETCH stretch, 1029 DWRITE_TEXT_RANGE range); 1030 1031 HRESULT (STDMETHODCALLTYPE *SetFontSize)( 1032 IDWriteTextLayout2 *This, 1033 FLOAT size, 1034 DWRITE_TEXT_RANGE range); 1035 1036 HRESULT (STDMETHODCALLTYPE *SetUnderline)( 1037 IDWriteTextLayout2 *This, 1038 WINBOOL underline, 1039 DWRITE_TEXT_RANGE range); 1040 1041 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( 1042 IDWriteTextLayout2 *This, 1043 WINBOOL strikethrough, 1044 DWRITE_TEXT_RANGE range); 1045 1046 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( 1047 IDWriteTextLayout2 *This, 1048 IUnknown *effect, 1049 DWRITE_TEXT_RANGE range); 1050 1051 HRESULT (STDMETHODCALLTYPE *SetInlineObject)( 1052 IDWriteTextLayout2 *This, 1053 IDWriteInlineObject *object, 1054 DWRITE_TEXT_RANGE range); 1055 1056 HRESULT (STDMETHODCALLTYPE *SetTypography)( 1057 IDWriteTextLayout2 *This, 1058 IDWriteTypography *typography, 1059 DWRITE_TEXT_RANGE range); 1060 1061 HRESULT (STDMETHODCALLTYPE *SetLocaleName)( 1062 IDWriteTextLayout2 *This, 1063 const WCHAR *locale, 1064 DWRITE_TEXT_RANGE range); 1065 1066 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( 1067 IDWriteTextLayout2 *This); 1068 1069 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( 1070 IDWriteTextLayout2 *This); 1071 1072 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( 1073 IDWriteTextLayout2 *This, 1074 UINT32 pos, 1075 IDWriteFontCollection **collection, 1076 DWRITE_TEXT_RANGE *range); 1077 1078 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( 1079 IDWriteTextLayout2 *This, 1080 UINT32 pos, 1081 UINT32 *len, 1082 DWRITE_TEXT_RANGE *range); 1083 1084 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( 1085 IDWriteTextLayout2 *This, 1086 UINT32 position, 1087 WCHAR *name, 1088 UINT32 name_size, 1089 DWRITE_TEXT_RANGE *range); 1090 1091 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( 1092 IDWriteTextLayout2 *This, 1093 UINT32 position, 1094 DWRITE_FONT_WEIGHT *weight, 1095 DWRITE_TEXT_RANGE *range); 1096 1097 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( 1098 IDWriteTextLayout2 *This, 1099 UINT32 currentPosition, 1100 DWRITE_FONT_STYLE *style, 1101 DWRITE_TEXT_RANGE *range); 1102 1103 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( 1104 IDWriteTextLayout2 *This, 1105 UINT32 position, 1106 DWRITE_FONT_STRETCH *stretch, 1107 DWRITE_TEXT_RANGE *range); 1108 1109 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( 1110 IDWriteTextLayout2 *This, 1111 UINT32 position, 1112 FLOAT *size, 1113 DWRITE_TEXT_RANGE *range); 1114 1115 HRESULT (STDMETHODCALLTYPE *GetUnderline)( 1116 IDWriteTextLayout2 *This, 1117 UINT32 position, 1118 WINBOOL *has_underline, 1119 DWRITE_TEXT_RANGE *range); 1120 1121 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( 1122 IDWriteTextLayout2 *This, 1123 UINT32 position, 1124 WINBOOL *has_strikethrough, 1125 DWRITE_TEXT_RANGE *range); 1126 1127 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( 1128 IDWriteTextLayout2 *This, 1129 UINT32 position, 1130 IUnknown **effect, 1131 DWRITE_TEXT_RANGE *range); 1132 1133 HRESULT (STDMETHODCALLTYPE *GetInlineObject)( 1134 IDWriteTextLayout2 *This, 1135 UINT32 position, 1136 IDWriteInlineObject **object, 1137 DWRITE_TEXT_RANGE *range); 1138 1139 HRESULT (STDMETHODCALLTYPE *GetTypography)( 1140 IDWriteTextLayout2 *This, 1141 UINT32 position, 1142 IDWriteTypography **typography, 1143 DWRITE_TEXT_RANGE *range); 1144 1145 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( 1146 IDWriteTextLayout2 *This, 1147 UINT32 position, 1148 UINT32 *length, 1149 DWRITE_TEXT_RANGE *range); 1150 1151 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( 1152 IDWriteTextLayout2 *This, 1153 UINT32 position, 1154 WCHAR *name, 1155 UINT32 name_size, 1156 DWRITE_TEXT_RANGE *range); 1157 1158 HRESULT (STDMETHODCALLTYPE *Draw)( 1159 IDWriteTextLayout2 *This, 1160 void *context, 1161 IDWriteTextRenderer *renderer, 1162 FLOAT originX, 1163 FLOAT originY); 1164 1165 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( 1166 IDWriteTextLayout2 *This, 1167 DWRITE_LINE_METRICS *metrics, 1168 UINT32 max_count, 1169 UINT32 *actual_count); 1170 1171 HRESULT (STDMETHODCALLTYPE *GetMetrics)( 1172 IDWriteTextLayout2 *This, 1173 DWRITE_TEXT_METRICS *metrics); 1174 1175 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( 1176 IDWriteTextLayout2 *This, 1177 DWRITE_OVERHANG_METRICS *overhangs); 1178 1179 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( 1180 IDWriteTextLayout2 *This, 1181 DWRITE_CLUSTER_METRICS *metrics, 1182 UINT32 max_count, 1183 UINT32 *act_count); 1184 1185 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( 1186 IDWriteTextLayout2 *This, 1187 FLOAT *min_width); 1188 1189 HRESULT (STDMETHODCALLTYPE *HitTestPoint)( 1190 IDWriteTextLayout2 *This, 1191 FLOAT pointX, 1192 FLOAT pointY, 1193 WINBOOL *is_trailinghit, 1194 WINBOOL *is_inside, 1195 DWRITE_HIT_TEST_METRICS *metrics); 1196 1197 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( 1198 IDWriteTextLayout2 *This, 1199 UINT32 textPosition, 1200 WINBOOL is_trailinghit, 1201 FLOAT *pointX, 1202 FLOAT *pointY, 1203 DWRITE_HIT_TEST_METRICS *metrics); 1204 1205 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( 1206 IDWriteTextLayout2 *This, 1207 UINT32 textPosition, 1208 UINT32 textLength, 1209 FLOAT originX, 1210 FLOAT originY, 1211 DWRITE_HIT_TEST_METRICS *metrics, 1212 UINT32 max_metricscount, 1213 UINT32 *actual_metricscount); 1214 1215 /*** IDWriteTextLayout1 methods ***/ 1216 HRESULT (STDMETHODCALLTYPE *SetPairKerning)( 1217 IDWriteTextLayout2 *This, 1218 WINBOOL is_pairkerning_enabled, 1219 DWRITE_TEXT_RANGE range); 1220 1221 HRESULT (STDMETHODCALLTYPE *GetPairKerning)( 1222 IDWriteTextLayout2 *This, 1223 UINT32 position, 1224 WINBOOL *is_pairkerning_enabled, 1225 DWRITE_TEXT_RANGE *range); 1226 1227 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( 1228 IDWriteTextLayout2 *This, 1229 FLOAT leading_spacing, 1230 FLOAT trailing_spacing, 1231 FLOAT minimum_advance_width, 1232 DWRITE_TEXT_RANGE range); 1233 1234 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( 1235 IDWriteTextLayout2 *This, 1236 UINT32 position, 1237 FLOAT *leading_spacing, 1238 FLOAT *trailing_spacing, 1239 FLOAT *minimum_advance_width, 1240 DWRITE_TEXT_RANGE *range); 1241 1242 /*** IDWriteTextLayout2 methods ***/ 1243 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( 1244 IDWriteTextLayout2 *This, 1245 DWRITE_TEXT_METRICS1 *metrics); 1246 1247 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( 1248 IDWriteTextLayout2 *This, 1249 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); 1250 1251 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( 1252 IDWriteTextLayout2 *This); 1253 1254 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( 1255 IDWriteTextLayout2 *This, 1256 WINBOOL lastline_wrapping_enabled); 1257 1258 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( 1259 IDWriteTextLayout2 *This); 1260 1261 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( 1262 IDWriteTextLayout2 *This, 1263 DWRITE_OPTICAL_ALIGNMENT alignment); 1264 1265 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( 1266 IDWriteTextLayout2 *This); 1267 1268 HRESULT (STDMETHODCALLTYPE *SetFontFallback)( 1269 IDWriteTextLayout2 *This, 1270 IDWriteFontFallback *fallback); 1271 1272 HRESULT (STDMETHODCALLTYPE *GetFontFallback)( 1273 IDWriteTextLayout2 *This, 1274 IDWriteFontFallback **fallback); 1275 1276 END_INTERFACE 1277 } IDWriteTextLayout2Vtbl; 1278 1279 interface IDWriteTextLayout2 { 1280 CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; 1281 }; 1282 1283 #ifdef COBJMACROS 1284 #ifndef WIDL_C_INLINE_WRAPPERS 1285 /*** IUnknown methods ***/ 1286 #define IDWriteTextLayout2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1287 #define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This) 1288 #define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This) 1289 /*** IDWriteTextFormat methods ***/ 1290 #define IDWriteTextLayout2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) 1291 #define IDWriteTextLayout2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) 1292 #define IDWriteTextLayout2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) 1293 #define IDWriteTextLayout2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) 1294 #define IDWriteTextLayout2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) 1295 #define IDWriteTextLayout2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) 1296 #define IDWriteTextLayout2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) 1297 #define IDWriteTextLayout2_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) 1298 #define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) 1299 #define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) 1300 #define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) 1301 #define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) 1302 #define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) 1303 #define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) 1304 #define IDWriteTextLayout2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) 1305 #define IDWriteTextLayout2_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) 1306 /*** IDWriteTextLayout methods ***/ 1307 #define IDWriteTextLayout2_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) 1308 #define IDWriteTextLayout2_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) 1309 #define IDWriteTextLayout2_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) 1310 #define IDWriteTextLayout2_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) 1311 #define IDWriteTextLayout2_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) 1312 #define IDWriteTextLayout2_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) 1313 #define IDWriteTextLayout2_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) 1314 #define IDWriteTextLayout2_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) 1315 #define IDWriteTextLayout2_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) 1316 #define IDWriteTextLayout2_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) 1317 #define IDWriteTextLayout2_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) 1318 #define IDWriteTextLayout2_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) 1319 #define IDWriteTextLayout2_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) 1320 #define IDWriteTextLayout2_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) 1321 #define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) 1322 #define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) 1323 #define IDWriteTextLayout2_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) 1324 #define IDWriteTextLayout2_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) 1325 #define IDWriteTextLayout2_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) 1326 #define IDWriteTextLayout2_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) 1327 #define IDWriteTextLayout2_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) 1328 #define IDWriteTextLayout2_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) 1329 #define IDWriteTextLayout2_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) 1330 #define IDWriteTextLayout2_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) 1331 #define IDWriteTextLayout2_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) 1332 #define IDWriteTextLayout2_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) 1333 #define IDWriteTextLayout2_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) 1334 #define IDWriteTextLayout2_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) 1335 #define IDWriteTextLayout2_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) 1336 #define IDWriteTextLayout2_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) 1337 #define IDWriteTextLayout2_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) 1338 #define IDWriteTextLayout2_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) 1339 #define IDWriteTextLayout2_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) 1340 #define IDWriteTextLayout2_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) 1341 #define IDWriteTextLayout2_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) 1342 #define IDWriteTextLayout2_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) 1343 #define IDWriteTextLayout2_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) 1344 #define IDWriteTextLayout2_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) 1345 /*** IDWriteTextLayout1 methods ***/ 1346 #define IDWriteTextLayout2_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) 1347 #define IDWriteTextLayout2_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) 1348 #define IDWriteTextLayout2_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) 1349 #define IDWriteTextLayout2_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) 1350 /*** IDWriteTextLayout2 methods ***/ 1351 #define IDWriteTextLayout2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) 1352 #define IDWriteTextLayout2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) 1353 #define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) 1354 #define IDWriteTextLayout2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) 1355 #define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) 1356 #define IDWriteTextLayout2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) 1357 #define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) 1358 #define IDWriteTextLayout2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) 1359 #define IDWriteTextLayout2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) 1360 #else 1361 /*** IUnknown methods ***/ 1362 static FORCEINLINE HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This,REFIID riid,void **ppvObject) { 1363 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1364 } 1365 static FORCEINLINE ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) { 1366 return This->lpVtbl->AddRef(This); 1367 } 1368 static FORCEINLINE ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) { 1369 return This->lpVtbl->Release(This); 1370 } 1371 /*** IDWriteTextFormat methods ***/ 1372 static FORCEINLINE HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This,DWRITE_TEXT_ALIGNMENT alignment) { 1373 return This->lpVtbl->SetTextAlignment(This,alignment); 1374 } 1375 static FORCEINLINE HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { 1376 return This->lpVtbl->SetParagraphAlignment(This,alignment); 1377 } 1378 static FORCEINLINE HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This,DWRITE_WORD_WRAPPING wrapping) { 1379 return This->lpVtbl->SetWordWrapping(This,wrapping); 1380 } 1381 static FORCEINLINE HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This,DWRITE_READING_DIRECTION direction) { 1382 return This->lpVtbl->SetReadingDirection(This,direction); 1383 } 1384 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This,DWRITE_FLOW_DIRECTION direction) { 1385 return This->lpVtbl->SetFlowDirection(This,direction); 1386 } 1387 static FORCEINLINE HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This,FLOAT tabstop) { 1388 return This->lpVtbl->SetIncrementalTabStop(This,tabstop); 1389 } 1390 static FORCEINLINE HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { 1391 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); 1392 } 1393 static FORCEINLINE HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { 1394 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); 1395 } 1396 static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) { 1397 return This->lpVtbl->GetTextAlignment(This); 1398 } 1399 static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) { 1400 return This->lpVtbl->GetParagraphAlignment(This); 1401 } 1402 static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) { 1403 return This->lpVtbl->GetWordWrapping(This); 1404 } 1405 static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) { 1406 return This->lpVtbl->GetReadingDirection(This); 1407 } 1408 static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) { 1409 return This->lpVtbl->GetFlowDirection(This); 1410 } 1411 static FORCEINLINE FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) { 1412 return This->lpVtbl->GetIncrementalTabStop(This); 1413 } 1414 static FORCEINLINE HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { 1415 return This->lpVtbl->GetTrimming(This,options,trimming_sign); 1416 } 1417 static FORCEINLINE HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { 1418 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); 1419 } 1420 /*** IDWriteTextLayout methods ***/ 1421 static FORCEINLINE HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This,FLOAT maxWidth) { 1422 return This->lpVtbl->SetMaxWidth(This,maxWidth); 1423 } 1424 static FORCEINLINE HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This,FLOAT maxHeight) { 1425 return This->lpVtbl->SetMaxHeight(This,maxHeight); 1426 } 1427 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { 1428 return This->lpVtbl->SetFontCollection(This,collection,range); 1429 } 1430 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { 1431 return This->lpVtbl->SetFontFamilyName(This,name,range); 1432 } 1433 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { 1434 return This->lpVtbl->SetFontWeight(This,weight,range); 1435 } 1436 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { 1437 return This->lpVtbl->SetFontStyle(This,style,range); 1438 } 1439 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { 1440 return This->lpVtbl->SetFontStretch(This,stretch,range); 1441 } 1442 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This,FLOAT size,DWRITE_TEXT_RANGE range) { 1443 return This->lpVtbl->SetFontSize(This,size,range); 1444 } 1445 static FORCEINLINE HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { 1446 return This->lpVtbl->SetUnderline(This,underline,range); 1447 } 1448 static FORCEINLINE HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { 1449 return This->lpVtbl->SetStrikethrough(This,strikethrough,range); 1450 } 1451 static FORCEINLINE HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { 1452 return This->lpVtbl->SetDrawingEffect(This,effect,range); 1453 } 1454 static FORCEINLINE HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { 1455 return This->lpVtbl->SetInlineObject(This,object,range); 1456 } 1457 static FORCEINLINE HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { 1458 return This->lpVtbl->SetTypography(This,typography,range); 1459 } 1460 static FORCEINLINE HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { 1461 return This->lpVtbl->SetLocaleName(This,locale,range); 1462 } 1463 static FORCEINLINE FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) { 1464 return This->lpVtbl->GetMaxWidth(This); 1465 } 1466 static FORCEINLINE FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) { 1467 return This->lpVtbl->GetMaxHeight(This); 1468 } 1469 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { 1470 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); 1471 } 1472 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { 1473 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); 1474 } 1475 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { 1476 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); 1477 } 1478 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { 1479 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); 1480 } 1481 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { 1482 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); 1483 } 1484 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { 1485 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); 1486 } 1487 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { 1488 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); 1489 } 1490 static FORCEINLINE HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { 1491 return This->lpVtbl->GetUnderline(This,position,has_underline,range); 1492 } 1493 static FORCEINLINE HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { 1494 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); 1495 } 1496 static FORCEINLINE HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { 1497 return This->lpVtbl->GetDrawingEffect(This,position,effect,range); 1498 } 1499 static FORCEINLINE HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { 1500 return This->lpVtbl->GetInlineObject(This,position,object,range); 1501 } 1502 static FORCEINLINE HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { 1503 return This->lpVtbl->GetTypography(This,position,typography,range); 1504 } 1505 static FORCEINLINE HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { 1506 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); 1507 } 1508 static FORCEINLINE HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { 1509 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); 1510 } 1511 static FORCEINLINE HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { 1512 return This->lpVtbl->Draw(This,context,renderer,originX,originY); 1513 } 1514 static FORCEINLINE HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { 1515 return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); 1516 } 1517 static FORCEINLINE HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This,DWRITE_OVERHANG_METRICS *overhangs) { 1518 return This->lpVtbl->GetOverhangMetrics(This,overhangs); 1519 } 1520 static FORCEINLINE HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { 1521 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); 1522 } 1523 static FORCEINLINE HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This,FLOAT *min_width) { 1524 return This->lpVtbl->DetermineMinWidth(This,min_width); 1525 } 1526 static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { 1527 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); 1528 } 1529 static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { 1530 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); 1531 } 1532 static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { 1533 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); 1534 } 1535 /*** IDWriteTextLayout1 methods ***/ 1536 static FORCEINLINE HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { 1537 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); 1538 } 1539 static FORCEINLINE HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { 1540 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); 1541 } 1542 static FORCEINLINE HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { 1543 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); 1544 } 1545 static FORCEINLINE HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { 1546 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); 1547 } 1548 /*** IDWriteTextLayout2 methods ***/ 1549 static FORCEINLINE HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This,DWRITE_TEXT_METRICS1 *metrics) { 1550 return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); 1551 } 1552 static FORCEINLINE HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { 1553 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); 1554 } 1555 static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) { 1556 return This->lpVtbl->GetVerticalGlyphOrientation(This); 1557 } 1558 static FORCEINLINE HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This,WINBOOL lastline_wrapping_enabled) { 1559 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); 1560 } 1561 static FORCEINLINE WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) { 1562 return This->lpVtbl->GetLastLineWrapping(This); 1563 } 1564 static FORCEINLINE HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { 1565 return This->lpVtbl->SetOpticalAlignment(This,alignment); 1566 } 1567 static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) { 1568 return This->lpVtbl->GetOpticalAlignment(This); 1569 } 1570 static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback *fallback) { 1571 return This->lpVtbl->SetFontFallback(This,fallback); 1572 } 1573 static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback **fallback) { 1574 return This->lpVtbl->GetFontFallback(This,fallback); 1575 } 1576 #endif 1577 #endif 1578 1579 #endif 1580 1581 1582 #endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ 1583 1584 /***************************************************************************** 1585 * IDWriteTextAnalyzer2 interface 1586 */ 1587 #ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ 1588 #define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ 1589 1590 DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9); 1591 #if defined(__cplusplus) && !defined(CINTERFACE) 1592 MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9") 1593 IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 1594 { 1595 virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( 1596 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 1597 WINBOOL is_sideways, 1598 FLOAT originX, 1599 FLOAT originY, 1600 DWRITE_MATRIX *transform) = 0; 1601 1602 virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( 1603 IDWriteFontFace *fontface, 1604 DWRITE_SCRIPT_ANALYSIS analysis, 1605 const WCHAR *localeName, 1606 UINT32 max_tagcount, 1607 UINT32 *actual_tagcount, 1608 DWRITE_FONT_FEATURE_TAG *tags) = 0; 1609 1610 virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( 1611 IDWriteFontFace *fontface, 1612 DWRITE_SCRIPT_ANALYSIS analysis, 1613 const WCHAR *localeName, 1614 DWRITE_FONT_FEATURE_TAG feature, 1615 UINT32 glyph_count, 1616 const UINT16 *indices, 1617 UINT8 *feature_applies) = 0; 1618 1619 }; 1620 #ifdef __CRT_UUID_DECL 1621 __CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9) 1622 #endif 1623 #else 1624 typedef struct IDWriteTextAnalyzer2Vtbl { 1625 BEGIN_INTERFACE 1626 1627 /*** IUnknown methods ***/ 1628 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1629 IDWriteTextAnalyzer2 *This, 1630 REFIID riid, 1631 void **ppvObject); 1632 1633 ULONG (STDMETHODCALLTYPE *AddRef)( 1634 IDWriteTextAnalyzer2 *This); 1635 1636 ULONG (STDMETHODCALLTYPE *Release)( 1637 IDWriteTextAnalyzer2 *This); 1638 1639 /*** IDWriteTextAnalyzer methods ***/ 1640 HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( 1641 IDWriteTextAnalyzer2 *This, 1642 IDWriteTextAnalysisSource *source, 1643 UINT32 position, 1644 UINT32 length, 1645 IDWriteTextAnalysisSink *sink); 1646 1647 HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( 1648 IDWriteTextAnalyzer2 *This, 1649 IDWriteTextAnalysisSource *source, 1650 UINT32 position, 1651 UINT32 length, 1652 IDWriteTextAnalysisSink *sink); 1653 1654 HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( 1655 IDWriteTextAnalyzer2 *This, 1656 IDWriteTextAnalysisSource *source, 1657 UINT32 position, 1658 UINT32 length, 1659 IDWriteTextAnalysisSink *sink); 1660 1661 HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( 1662 IDWriteTextAnalyzer2 *This, 1663 IDWriteTextAnalysisSource *source, 1664 UINT32 position, 1665 UINT32 length, 1666 IDWriteTextAnalysisSink *sink); 1667 1668 HRESULT (STDMETHODCALLTYPE *GetGlyphs)( 1669 IDWriteTextAnalyzer2 *This, 1670 const WCHAR *text, 1671 UINT32 length, 1672 IDWriteFontFace *font_face, 1673 WINBOOL is_sideways, 1674 WINBOOL is_rtl, 1675 const DWRITE_SCRIPT_ANALYSIS *analysis, 1676 const WCHAR *locale, 1677 IDWriteNumberSubstitution *substitution, 1678 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1679 const UINT32 *feature_range_len, 1680 UINT32 feature_ranges, 1681 UINT32 max_glyph_count, 1682 UINT16 *clustermap, 1683 DWRITE_SHAPING_TEXT_PROPERTIES *text_props, 1684 UINT16 *glyph_indices, 1685 DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1686 UINT32 *actual_glyph_count); 1687 1688 HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( 1689 IDWriteTextAnalyzer2 *This, 1690 const WCHAR *text, 1691 const UINT16 *clustermap, 1692 DWRITE_SHAPING_TEXT_PROPERTIES *props, 1693 UINT32 text_len, 1694 const UINT16 *glyph_indices, 1695 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1696 UINT32 glyph_count, 1697 IDWriteFontFace *font_face, 1698 FLOAT fontEmSize, 1699 WINBOOL is_sideways, 1700 WINBOOL is_rtl, 1701 const DWRITE_SCRIPT_ANALYSIS *analysis, 1702 const WCHAR *locale, 1703 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1704 const UINT32 *feature_range_len, 1705 UINT32 feature_ranges, 1706 FLOAT *glyph_advances, 1707 DWRITE_GLYPH_OFFSET *glyph_offsets); 1708 1709 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( 1710 IDWriteTextAnalyzer2 *This, 1711 const WCHAR *text, 1712 const UINT16 *clustermap, 1713 DWRITE_SHAPING_TEXT_PROPERTIES *props, 1714 UINT32 text_len, 1715 const UINT16 *glyph_indices, 1716 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, 1717 UINT32 glyph_count, 1718 IDWriteFontFace *font_face, 1719 FLOAT fontEmSize, 1720 FLOAT pixels_per_dip, 1721 const DWRITE_MATRIX *transform, 1722 WINBOOL use_gdi_natural, 1723 WINBOOL is_sideways, 1724 WINBOOL is_rtl, 1725 const DWRITE_SCRIPT_ANALYSIS *analysis, 1726 const WCHAR *locale, 1727 const DWRITE_TYPOGRAPHIC_FEATURES **features, 1728 const UINT32 *feature_range_lengths, 1729 UINT32 feature_ranges, 1730 FLOAT *glyph_advances, 1731 DWRITE_GLYPH_OFFSET *glyph_offsets); 1732 1733 /*** IDWriteTextAnalyzer1 methods ***/ 1734 HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)( 1735 IDWriteTextAnalyzer2 *This, 1736 FLOAT leading_spacing, 1737 FLOAT trailing_spacing, 1738 FLOAT min_advance_width, 1739 UINT32 len, 1740 UINT32 glyph_count, 1741 const UINT16 *clustermap, 1742 const FLOAT *advances, 1743 const DWRITE_GLYPH_OFFSET *offsets, 1744 const DWRITE_SHAPING_GLYPH_PROPERTIES *props, 1745 FLOAT *modified_advances, 1746 DWRITE_GLYPH_OFFSET *modified_offsets); 1747 1748 HRESULT (STDMETHODCALLTYPE *GetBaseline)( 1749 IDWriteTextAnalyzer2 *This, 1750 IDWriteFontFace *face, 1751 DWRITE_BASELINE baseline, 1752 WINBOOL vertical, 1753 WINBOOL is_simulation_allowed, 1754 DWRITE_SCRIPT_ANALYSIS sa, 1755 const WCHAR *localeName, 1756 INT32 *baseline_coord, 1757 WINBOOL *exists); 1758 1759 HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)( 1760 IDWriteTextAnalyzer2 *This, 1761 IDWriteTextAnalysisSource1 *source, 1762 UINT32 text_pos, 1763 UINT32 len, 1764 IDWriteTextAnalysisSink1 *sink); 1765 1766 HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)( 1767 IDWriteTextAnalyzer2 *This, 1768 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 1769 WINBOOL is_sideways, 1770 DWRITE_MATRIX *transform); 1771 1772 HRESULT (STDMETHODCALLTYPE *GetScriptProperties)( 1773 IDWriteTextAnalyzer2 *This, 1774 DWRITE_SCRIPT_ANALYSIS sa, 1775 DWRITE_SCRIPT_PROPERTIES *props); 1776 1777 HRESULT (STDMETHODCALLTYPE *GetTextComplexity)( 1778 IDWriteTextAnalyzer2 *This, 1779 const WCHAR *text, 1780 UINT32 len, 1781 IDWriteFontFace *face, 1782 WINBOOL *is_simple, 1783 UINT32 *len_read, 1784 UINT16 *indices); 1785 1786 HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)( 1787 IDWriteTextAnalyzer2 *This, 1788 IDWriteFontFace *face, 1789 FLOAT font_em_size, 1790 DWRITE_SCRIPT_ANALYSIS sa, 1791 UINT32 length, 1792 UINT32 glyph_count, 1793 const WCHAR *text, 1794 const UINT16 *clustermap, 1795 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1796 DWRITE_JUSTIFICATION_OPPORTUNITY *jo); 1797 1798 HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)( 1799 IDWriteTextAnalyzer2 *This, 1800 FLOAT width, 1801 UINT32 glyph_count, 1802 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, 1803 const FLOAT *advances, 1804 const DWRITE_GLYPH_OFFSET *offsets, 1805 FLOAT *justifiedadvances, 1806 DWRITE_GLYPH_OFFSET *justifiedoffsets); 1807 1808 HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)( 1809 IDWriteTextAnalyzer2 *This, 1810 IDWriteFontFace *face, 1811 FLOAT font_em_size, 1812 DWRITE_SCRIPT_ANALYSIS sa, 1813 UINT32 length, 1814 UINT32 glyph_count, 1815 UINT32 max_glyphcount, 1816 const UINT16 *clustermap, 1817 const UINT16 *indices, 1818 const FLOAT *advances, 1819 const FLOAT *justifiedadvances, 1820 const DWRITE_GLYPH_OFFSET *justifiedoffsets, 1821 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, 1822 UINT32 *actual_count, 1823 UINT16 *modified_clustermap, 1824 UINT16 *modified_indices, 1825 FLOAT *modified_advances, 1826 DWRITE_GLYPH_OFFSET *modified_offsets); 1827 1828 /*** IDWriteTextAnalyzer2 methods ***/ 1829 HRESULT (STDMETHODCALLTYPE *IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( 1830 IDWriteTextAnalyzer2 *This, 1831 DWRITE_GLYPH_ORIENTATION_ANGLE angle, 1832 WINBOOL is_sideways, 1833 FLOAT originX, 1834 FLOAT originY, 1835 DWRITE_MATRIX *transform); 1836 1837 HRESULT (STDMETHODCALLTYPE *GetTypographicFeatures)( 1838 IDWriteTextAnalyzer2 *This, 1839 IDWriteFontFace *fontface, 1840 DWRITE_SCRIPT_ANALYSIS analysis, 1841 const WCHAR *localeName, 1842 UINT32 max_tagcount, 1843 UINT32 *actual_tagcount, 1844 DWRITE_FONT_FEATURE_TAG *tags); 1845 1846 HRESULT (STDMETHODCALLTYPE *CheckTypographicFeature)( 1847 IDWriteTextAnalyzer2 *This, 1848 IDWriteFontFace *fontface, 1849 DWRITE_SCRIPT_ANALYSIS analysis, 1850 const WCHAR *localeName, 1851 DWRITE_FONT_FEATURE_TAG feature, 1852 UINT32 glyph_count, 1853 const UINT16 *indices, 1854 UINT8 *feature_applies); 1855 1856 END_INTERFACE 1857 } IDWriteTextAnalyzer2Vtbl; 1858 1859 interface IDWriteTextAnalyzer2 { 1860 CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; 1861 }; 1862 1863 #ifdef COBJMACROS 1864 #ifndef WIDL_C_INLINE_WRAPPERS 1865 /*** IUnknown methods ***/ 1866 #define IDWriteTextAnalyzer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1867 #define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This) 1868 #define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This) 1869 /*** IDWriteTextAnalyzer methods ***/ 1870 #define IDWriteTextAnalyzer2_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) 1871 #define IDWriteTextAnalyzer2_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) 1872 #define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) 1873 #define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) 1874 #define IDWriteTextAnalyzer2_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) 1875 #define IDWriteTextAnalyzer2_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) 1876 #define IDWriteTextAnalyzer2_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) 1877 /*** IDWriteTextAnalyzer1 methods ***/ 1878 #define IDWriteTextAnalyzer2_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) 1879 #define IDWriteTextAnalyzer2_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) 1880 #define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) 1881 #define IDWriteTextAnalyzer2_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props) 1882 #define IDWriteTextAnalyzer2_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices) 1883 #define IDWriteTextAnalyzer2_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) 1884 #define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) 1885 #define IDWriteTextAnalyzer2_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) 1886 /*** IDWriteTextAnalyzer2 methods ***/ 1887 #define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) 1888 #define IDWriteTextAnalyzer2_GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) (This)->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) 1889 #define IDWriteTextAnalyzer2_CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) (This)->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) 1890 #else 1891 /*** IUnknown methods ***/ 1892 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This,REFIID riid,void **ppvObject) { 1893 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1894 } 1895 static FORCEINLINE ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) { 1896 return This->lpVtbl->AddRef(This); 1897 } 1898 static FORCEINLINE ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) { 1899 return This->lpVtbl->Release(This); 1900 } 1901 /*** IDWriteTextAnalyzer methods ***/ 1902 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1903 return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); 1904 } 1905 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1906 return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); 1907 } 1908 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1909 return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); 1910 } 1911 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { 1912 return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); 1913 } 1914 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* 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) { 1915 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); 1916 } 1917 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* 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) { 1918 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); 1919 } 1920 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* 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) { 1921 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); 1922 } 1923 /*** IDWriteTextAnalyzer1 methods ***/ 1924 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* 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) { 1925 return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets); 1926 } 1927 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) { 1928 return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists); 1929 } 1930 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) { 1931 return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink); 1932 } 1933 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) { 1934 return This->lpVtbl->GetScriptProperties(This,sa,props); 1935 } 1936 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) { 1937 return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices); 1938 } 1939 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* 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) { 1940 return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo); 1941 } 1942 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* 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) { 1943 return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets); 1944 } 1945 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* 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) { 1946 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); 1947 } 1948 /*** IDWriteTextAnalyzer2 methods ***/ 1949 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,FLOAT originX,FLOAT originY,DWRITE_MATRIX *transform) { 1950 return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform); 1951 } 1952 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,UINT32 max_tagcount,UINT32 *actual_tagcount,DWRITE_FONT_FEATURE_TAG *tags) { 1953 return This->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags); 1954 } 1955 static FORCEINLINE HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,DWRITE_FONT_FEATURE_TAG feature,UINT32 glyph_count,const UINT16 *indices,UINT8 *feature_applies) { 1956 return This->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies); 1957 } 1958 #endif 1959 #endif 1960 1961 #endif 1962 1963 1964 #endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ 1965 1966 /***************************************************************************** 1967 * IDWriteFontFallbackBuilder interface 1968 */ 1969 #ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ 1970 #define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ 1971 1972 DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde); 1973 #if defined(__cplusplus) && !defined(CINTERFACE) 1974 MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de") 1975 IDWriteFontFallbackBuilder : public IUnknown 1976 { 1977 virtual HRESULT STDMETHODCALLTYPE AddMapping( 1978 const DWRITE_UNICODE_RANGE *ranges, 1979 UINT32 rangesCount, 1980 const WCHAR **targetFamilyNames, 1981 UINT32 targetFamilyNamesCount, 1982 IDWriteFontCollection *collection = 0, 1983 const WCHAR *localeName = 0, 1984 const WCHAR *baseFamilyName = 0, 1985 FLOAT scale = 1) = 0; 1986 1987 virtual HRESULT STDMETHODCALLTYPE AddMappings( 1988 IDWriteFontFallback *fallback) = 0; 1989 1990 virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( 1991 IDWriteFontFallback **fallback) = 0; 1992 1993 }; 1994 #ifdef __CRT_UUID_DECL 1995 __CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde) 1996 #endif 1997 #else 1998 typedef struct IDWriteFontFallbackBuilderVtbl { 1999 BEGIN_INTERFACE 2000 2001 /*** IUnknown methods ***/ 2002 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2003 IDWriteFontFallbackBuilder *This, 2004 REFIID riid, 2005 void **ppvObject); 2006 2007 ULONG (STDMETHODCALLTYPE *AddRef)( 2008 IDWriteFontFallbackBuilder *This); 2009 2010 ULONG (STDMETHODCALLTYPE *Release)( 2011 IDWriteFontFallbackBuilder *This); 2012 2013 /*** IDWriteFontFallbackBuilder methods ***/ 2014 HRESULT (STDMETHODCALLTYPE *AddMapping)( 2015 IDWriteFontFallbackBuilder *This, 2016 const DWRITE_UNICODE_RANGE *ranges, 2017 UINT32 rangesCount, 2018 const WCHAR **targetFamilyNames, 2019 UINT32 targetFamilyNamesCount, 2020 IDWriteFontCollection *collection, 2021 const WCHAR *localeName, 2022 const WCHAR *baseFamilyName, 2023 FLOAT scale); 2024 2025 HRESULT (STDMETHODCALLTYPE *AddMappings)( 2026 IDWriteFontFallbackBuilder *This, 2027 IDWriteFontFallback *fallback); 2028 2029 HRESULT (STDMETHODCALLTYPE *CreateFontFallback)( 2030 IDWriteFontFallbackBuilder *This, 2031 IDWriteFontFallback **fallback); 2032 2033 END_INTERFACE 2034 } IDWriteFontFallbackBuilderVtbl; 2035 2036 interface IDWriteFontFallbackBuilder { 2037 CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; 2038 }; 2039 2040 #ifdef COBJMACROS 2041 #ifndef WIDL_C_INLINE_WRAPPERS 2042 /*** IUnknown methods ***/ 2043 #define IDWriteFontFallbackBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2044 #define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) 2045 #define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This) 2046 /*** IDWriteFontFallbackBuilder methods ***/ 2047 #define IDWriteFontFallbackBuilder_AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) (This)->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) 2048 #define IDWriteFontFallbackBuilder_AddMappings(This,fallback) (This)->lpVtbl->AddMappings(This,fallback) 2049 #define IDWriteFontFallbackBuilder_CreateFontFallback(This,fallback) (This)->lpVtbl->CreateFontFallback(This,fallback) 2050 #else 2051 /*** IUnknown methods ***/ 2052 static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This,REFIID riid,void **ppvObject) { 2053 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2054 } 2055 static FORCEINLINE ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) { 2056 return This->lpVtbl->AddRef(This); 2057 } 2058 static FORCEINLINE ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) { 2059 return This->lpVtbl->Release(This); 2060 } 2061 /*** IDWriteFontFallbackBuilder methods ***/ 2062 static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This,const DWRITE_UNICODE_RANGE *ranges,UINT32 rangesCount,const WCHAR **targetFamilyNames,UINT32 targetFamilyNamesCount,IDWriteFontCollection *collection,const WCHAR *localeName,const WCHAR *baseFamilyName,FLOAT scale) { 2063 return This->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale); 2064 } 2065 static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This,IDWriteFontFallback *fallback) { 2066 return This->lpVtbl->AddMappings(This,fallback); 2067 } 2068 static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This,IDWriteFontFallback **fallback) { 2069 return This->lpVtbl->CreateFontFallback(This,fallback); 2070 } 2071 #endif 2072 #endif 2073 2074 #endif 2075 2076 2077 #endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ 2078 2079 /***************************************************************************** 2080 * IDWriteFont2 interface 2081 */ 2082 #ifndef __IDWriteFont2_INTERFACE_DEFINED__ 2083 #define __IDWriteFont2_INTERFACE_DEFINED__ 2084 2085 DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); 2086 #if defined(__cplusplus) && !defined(CINTERFACE) 2087 MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") 2088 IDWriteFont2 : public IDWriteFont1 2089 { 2090 virtual WINBOOL STDMETHODCALLTYPE IsColorFont( 2091 ) = 0; 2092 2093 }; 2094 #ifdef __CRT_UUID_DECL 2095 __CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) 2096 #endif 2097 #else 2098 typedef struct IDWriteFont2Vtbl { 2099 BEGIN_INTERFACE 2100 2101 /*** IUnknown methods ***/ 2102 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2103 IDWriteFont2 *This, 2104 REFIID riid, 2105 void **ppvObject); 2106 2107 ULONG (STDMETHODCALLTYPE *AddRef)( 2108 IDWriteFont2 *This); 2109 2110 ULONG (STDMETHODCALLTYPE *Release)( 2111 IDWriteFont2 *This); 2112 2113 /*** IDWriteFont methods ***/ 2114 HRESULT (STDMETHODCALLTYPE *GetFontFamily)( 2115 IDWriteFont2 *This, 2116 IDWriteFontFamily **family); 2117 2118 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( 2119 IDWriteFont2 *This); 2120 2121 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( 2122 IDWriteFont2 *This); 2123 2124 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( 2125 IDWriteFont2 *This); 2126 2127 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( 2128 IDWriteFont2 *This); 2129 2130 HRESULT (STDMETHODCALLTYPE *GetFaceNames)( 2131 IDWriteFont2 *This, 2132 IDWriteLocalizedStrings **names); 2133 2134 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( 2135 IDWriteFont2 *This, 2136 DWRITE_INFORMATIONAL_STRING_ID stringid, 2137 IDWriteLocalizedStrings **strings, 2138 WINBOOL *exists); 2139 2140 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( 2141 IDWriteFont2 *This); 2142 2143 void (STDMETHODCALLTYPE *GetMetrics)( 2144 IDWriteFont2 *This, 2145 DWRITE_FONT_METRICS *metrics); 2146 2147 HRESULT (STDMETHODCALLTYPE *HasCharacter)( 2148 IDWriteFont2 *This, 2149 UINT32 value, 2150 WINBOOL *exists); 2151 2152 HRESULT (STDMETHODCALLTYPE *CreateFontFace)( 2153 IDWriteFont2 *This, 2154 IDWriteFontFace **face); 2155 2156 /*** IDWriteFont1 methods ***/ 2157 void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( 2158 IDWriteFont2 *This, 2159 DWRITE_FONT_METRICS1 *metrics); 2160 2161 void (STDMETHODCALLTYPE *GetPanose)( 2162 IDWriteFont2 *This, 2163 DWRITE_PANOSE *panose); 2164 2165 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( 2166 IDWriteFont2 *This, 2167 UINT32 max_count, 2168 DWRITE_UNICODE_RANGE *ranges, 2169 UINT32 *count); 2170 2171 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( 2172 IDWriteFont2 *This); 2173 2174 /*** IDWriteFont2 methods ***/ 2175 WINBOOL (STDMETHODCALLTYPE *IsColorFont)( 2176 IDWriteFont2 *This); 2177 2178 END_INTERFACE 2179 } IDWriteFont2Vtbl; 2180 2181 interface IDWriteFont2 { 2182 CONST_VTBL IDWriteFont2Vtbl* lpVtbl; 2183 }; 2184 2185 #ifdef COBJMACROS 2186 #ifndef WIDL_C_INLINE_WRAPPERS 2187 /*** IUnknown methods ***/ 2188 #define IDWriteFont2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2189 #define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This) 2190 #define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This) 2191 /*** IDWriteFont methods ***/ 2192 #define IDWriteFont2_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) 2193 #define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This) 2194 #define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This) 2195 #define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This) 2196 #define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) 2197 #define IDWriteFont2_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) 2198 #define IDWriteFont2_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) 2199 #define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) 2200 #define IDWriteFont2_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) 2201 #define IDWriteFont2_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) 2202 /*** IDWriteFont1 methods ***/ 2203 #define IDWriteFont2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) 2204 #define IDWriteFont2_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) 2205 #define IDWriteFont2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) 2206 #define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) 2207 /*** IDWriteFont2 methods ***/ 2208 #define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) 2209 #else 2210 /*** IUnknown methods ***/ 2211 static FORCEINLINE HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This,REFIID riid,void **ppvObject) { 2212 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2213 } 2214 static FORCEINLINE ULONG IDWriteFont2_AddRef(IDWriteFont2* This) { 2215 return This->lpVtbl->AddRef(This); 2216 } 2217 static FORCEINLINE ULONG IDWriteFont2_Release(IDWriteFont2* This) { 2218 return This->lpVtbl->Release(This); 2219 } 2220 /*** IDWriteFont methods ***/ 2221 static FORCEINLINE HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This,IDWriteFontFamily **family) { 2222 return This->lpVtbl->GetFontFamily(This,family); 2223 } 2224 static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) { 2225 return This->lpVtbl->GetWeight(This); 2226 } 2227 static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) { 2228 return This->lpVtbl->GetStretch(This); 2229 } 2230 static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) { 2231 return This->lpVtbl->GetStyle(This); 2232 } 2233 static FORCEINLINE WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) { 2234 return This->lpVtbl->IsSymbolFont(This); 2235 } 2236 static FORCEINLINE HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This,IDWriteLocalizedStrings **names) { 2237 return This->lpVtbl->GetFaceNames(This,names); 2238 } 2239 static FORCEINLINE HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { 2240 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); 2241 } 2242 static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) { 2243 return This->lpVtbl->GetSimulations(This); 2244 } 2245 static FORCEINLINE HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This,UINT32 value,WINBOOL *exists) { 2246 return This->lpVtbl->HasCharacter(This,value,exists); 2247 } 2248 static FORCEINLINE HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This,IDWriteFontFace **face) { 2249 return This->lpVtbl->CreateFontFace(This,face); 2250 } 2251 /*** IDWriteFont1 methods ***/ 2252 static FORCEINLINE void IDWriteFont2_GetMetrics(IDWriteFont2* This,DWRITE_FONT_METRICS1 *metrics) { 2253 This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); 2254 } 2255 static FORCEINLINE void IDWriteFont2_GetPanose(IDWriteFont2* This,DWRITE_PANOSE *panose) { 2256 This->lpVtbl->GetPanose(This,panose); 2257 } 2258 static FORCEINLINE HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { 2259 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); 2260 } 2261 static FORCEINLINE WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) { 2262 return This->lpVtbl->IsMonospacedFont(This); 2263 } 2264 /*** IDWriteFont2 methods ***/ 2265 static FORCEINLINE WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { 2266 return This->lpVtbl->IsColorFont(This); 2267 } 2268 #endif 2269 #endif 2270 2271 #endif 2272 2273 2274 #endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ 2275 2276 /***************************************************************************** 2277 * IDWriteFontFace2 interface 2278 */ 2279 #ifndef __IDWriteFontFace2_INTERFACE_DEFINED__ 2280 #define __IDWriteFontFace2_INTERFACE_DEFINED__ 2281 2282 DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7); 2283 #if defined(__cplusplus) && !defined(CINTERFACE) 2284 MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") 2285 IDWriteFontFace2 : public IDWriteFontFace1 2286 { 2287 virtual WINBOOL STDMETHODCALLTYPE IsColorFont( 2288 ) = 0; 2289 2290 virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount( 2291 ) = 0; 2292 2293 virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount( 2294 ) = 0; 2295 2296 virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( 2297 UINT32 palette_index, 2298 UINT32 first_entry_index, 2299 UINT32 entry_count, 2300 DWRITE_COLOR_F *entries) = 0; 2301 2302 virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( 2303 FLOAT fontEmSize, 2304 FLOAT dpiX, 2305 FLOAT dpiY, 2306 const DWRITE_MATRIX *transform, 2307 WINBOOL is_sideways, 2308 DWRITE_OUTLINE_THRESHOLD threshold, 2309 DWRITE_MEASURING_MODE measuringmode, 2310 IDWriteRenderingParams *params, 2311 DWRITE_RENDERING_MODE *renderingmode, 2312 DWRITE_GRID_FIT_MODE *gridfitmode) = 0; 2313 2314 }; 2315 #ifdef __CRT_UUID_DECL 2316 __CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7) 2317 #endif 2318 #else 2319 typedef struct IDWriteFontFace2Vtbl { 2320 BEGIN_INTERFACE 2321 2322 /*** IUnknown methods ***/ 2323 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2324 IDWriteFontFace2 *This, 2325 REFIID riid, 2326 void **ppvObject); 2327 2328 ULONG (STDMETHODCALLTYPE *AddRef)( 2329 IDWriteFontFace2 *This); 2330 2331 ULONG (STDMETHODCALLTYPE *Release)( 2332 IDWriteFontFace2 *This); 2333 2334 /*** IDWriteFontFace methods ***/ 2335 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( 2336 IDWriteFontFace2 *This); 2337 2338 HRESULT (STDMETHODCALLTYPE *GetFiles)( 2339 IDWriteFontFace2 *This, 2340 UINT32 *number_of_files, 2341 IDWriteFontFile **fontfiles); 2342 2343 UINT32 (STDMETHODCALLTYPE *GetIndex)( 2344 IDWriteFontFace2 *This); 2345 2346 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( 2347 IDWriteFontFace2 *This); 2348 2349 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( 2350 IDWriteFontFace2 *This); 2351 2352 void (STDMETHODCALLTYPE *GetMetrics)( 2353 IDWriteFontFace2 *This, 2354 DWRITE_FONT_METRICS *metrics); 2355 2356 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( 2357 IDWriteFontFace2 *This); 2358 2359 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( 2360 IDWriteFontFace2 *This, 2361 const UINT16 *glyph_indices, 2362 UINT32 glyph_count, 2363 DWRITE_GLYPH_METRICS *metrics, 2364 WINBOOL is_sideways); 2365 2366 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( 2367 IDWriteFontFace2 *This, 2368 const UINT32 *codepoints, 2369 UINT32 count, 2370 UINT16 *glyph_indices); 2371 2372 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( 2373 IDWriteFontFace2 *This, 2374 UINT32 table_tag, 2375 const void **table_data, 2376 UINT32 *table_size, 2377 void **context, 2378 WINBOOL *exists); 2379 2380 void (STDMETHODCALLTYPE *ReleaseFontTable)( 2381 IDWriteFontFace2 *This, 2382 void *table_context); 2383 2384 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( 2385 IDWriteFontFace2 *This, 2386 FLOAT emSize, 2387 const UINT16 *glyph_indices, 2388 const FLOAT *glyph_advances, 2389 const DWRITE_GLYPH_OFFSET *glyph_offsets, 2390 UINT32 glyph_count, 2391 WINBOOL is_sideways, 2392 WINBOOL is_rtl, 2393 IDWriteGeometrySink *geometrysink); 2394 2395 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( 2396 IDWriteFontFace2 *This, 2397 FLOAT emSize, 2398 FLOAT pixels_per_dip, 2399 DWRITE_MEASURING_MODE mode, 2400 IDWriteRenderingParams *params, 2401 DWRITE_RENDERING_MODE *rendering_mode); 2402 2403 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( 2404 IDWriteFontFace2 *This, 2405 FLOAT emSize, 2406 FLOAT pixels_per_dip, 2407 const DWRITE_MATRIX *transform, 2408 DWRITE_FONT_METRICS *metrics); 2409 2410 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( 2411 IDWriteFontFace2 *This, 2412 FLOAT emSize, 2413 FLOAT pixels_per_dip, 2414 const DWRITE_MATRIX *transform, 2415 WINBOOL use_gdi_natural, 2416 const UINT16 *glyph_indices, 2417 UINT32 glyph_count, 2418 DWRITE_GLYPH_METRICS *metrics, 2419 WINBOOL is_sideways); 2420 2421 /*** IDWriteFontFace1 methods ***/ 2422 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( 2423 IDWriteFontFace2 *This, 2424 DWRITE_FONT_METRICS1 *metrics); 2425 2426 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( 2427 IDWriteFontFace2 *This, 2428 FLOAT em_size, 2429 FLOAT pixels_per_dip, 2430 const DWRITE_MATRIX *transform, 2431 DWRITE_FONT_METRICS1 *metrics); 2432 2433 void (STDMETHODCALLTYPE *GetCaretMetrics)( 2434 IDWriteFontFace2 *This, 2435 DWRITE_CARET_METRICS *metrics); 2436 2437 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( 2438 IDWriteFontFace2 *This, 2439 UINT32 max_count, 2440 DWRITE_UNICODE_RANGE *ranges, 2441 UINT32 *count); 2442 2443 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( 2444 IDWriteFontFace2 *This); 2445 2446 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( 2447 IDWriteFontFace2 *This, 2448 UINT32 glyph_count, 2449 const UINT16 *indices, 2450 INT32 *advances, 2451 WINBOOL is_sideways); 2452 2453 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( 2454 IDWriteFontFace2 *This, 2455 FLOAT em_size, 2456 FLOAT pixels_per_dip, 2457 const DWRITE_MATRIX *transform, 2458 WINBOOL use_gdi_natural, 2459 WINBOOL is_sideways, 2460 UINT32 glyph_count, 2461 const UINT16 *indices, 2462 INT32 *advances); 2463 2464 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( 2465 IDWriteFontFace2 *This, 2466 UINT32 glyph_count, 2467 const UINT16 *indices, 2468 INT32 *adjustments); 2469 2470 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( 2471 IDWriteFontFace2 *This); 2472 2473 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( 2474 IDWriteFontFace2 *This, 2475 FLOAT font_emsize, 2476 FLOAT dpiX, 2477 FLOAT dpiY, 2478 const DWRITE_MATRIX *transform, 2479 WINBOOL is_sideways, 2480 DWRITE_OUTLINE_THRESHOLD threshold, 2481 DWRITE_MEASURING_MODE measuring_mode, 2482 DWRITE_RENDERING_MODE *rendering_mode); 2483 2484 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( 2485 IDWriteFontFace2 *This, 2486 UINT32 glyph_count, 2487 const UINT16 *nominal_indices, 2488 UINT16 *vertical_indices); 2489 2490 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( 2491 IDWriteFontFace2 *This); 2492 2493 /*** IDWriteFontFace2 methods ***/ 2494 WINBOOL (STDMETHODCALLTYPE *IsColorFont)( 2495 IDWriteFontFace2 *This); 2496 2497 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( 2498 IDWriteFontFace2 *This); 2499 2500 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( 2501 IDWriteFontFace2 *This); 2502 2503 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( 2504 IDWriteFontFace2 *This, 2505 UINT32 palette_index, 2506 UINT32 first_entry_index, 2507 UINT32 entry_count, 2508 DWRITE_COLOR_F *entries); 2509 2510 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( 2511 IDWriteFontFace2 *This, 2512 FLOAT fontEmSize, 2513 FLOAT dpiX, 2514 FLOAT dpiY, 2515 const DWRITE_MATRIX *transform, 2516 WINBOOL is_sideways, 2517 DWRITE_OUTLINE_THRESHOLD threshold, 2518 DWRITE_MEASURING_MODE measuringmode, 2519 IDWriteRenderingParams *params, 2520 DWRITE_RENDERING_MODE *renderingmode, 2521 DWRITE_GRID_FIT_MODE *gridfitmode); 2522 2523 END_INTERFACE 2524 } IDWriteFontFace2Vtbl; 2525 2526 interface IDWriteFontFace2 { 2527 CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; 2528 }; 2529 2530 #ifdef COBJMACROS 2531 #ifndef WIDL_C_INLINE_WRAPPERS 2532 /*** IUnknown methods ***/ 2533 #define IDWriteFontFace2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2534 #define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This) 2535 #define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This) 2536 /*** IDWriteFontFace methods ***/ 2537 #define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This) 2538 #define IDWriteFontFace2_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) 2539 #define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This) 2540 #define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) 2541 #define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) 2542 #define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) 2543 #define IDWriteFontFace2_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) 2544 #define IDWriteFontFace2_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) 2545 #define IDWriteFontFace2_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) 2546 #define IDWriteFontFace2_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) 2547 #define IDWriteFontFace2_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) 2548 #define IDWriteFontFace2_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) 2549 /*** IDWriteFontFace1 methods ***/ 2550 #define IDWriteFontFace2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) 2551 #define IDWriteFontFace2_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) 2552 #define IDWriteFontFace2_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) 2553 #define IDWriteFontFace2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) 2554 #define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) 2555 #define IDWriteFontFace2_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) 2556 #define IDWriteFontFace2_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) 2557 #define IDWriteFontFace2_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) 2558 #define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) 2559 #define IDWriteFontFace2_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) 2560 #define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) 2561 /*** IDWriteFontFace2 methods ***/ 2562 #define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) 2563 #define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) 2564 #define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) 2565 #define IDWriteFontFace2_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) 2566 #define IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) 2567 #else 2568 /*** IUnknown methods ***/ 2569 static FORCEINLINE HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This,REFIID riid,void **ppvObject) { 2570 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2571 } 2572 static FORCEINLINE ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) { 2573 return This->lpVtbl->AddRef(This); 2574 } 2575 static FORCEINLINE ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) { 2576 return This->lpVtbl->Release(This); 2577 } 2578 /*** IDWriteFontFace methods ***/ 2579 static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) { 2580 return This->lpVtbl->GetType(This); 2581 } 2582 static FORCEINLINE HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { 2583 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); 2584 } 2585 static FORCEINLINE UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) { 2586 return This->lpVtbl->GetIndex(This); 2587 } 2588 static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) { 2589 return This->lpVtbl->GetSimulations(This); 2590 } 2591 static FORCEINLINE WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) { 2592 return This->lpVtbl->IsSymbolFont(This); 2593 } 2594 static FORCEINLINE UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) { 2595 return This->lpVtbl->GetGlyphCount(This); 2596 } 2597 static FORCEINLINE HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { 2598 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); 2599 } 2600 static FORCEINLINE HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { 2601 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); 2602 } 2603 static FORCEINLINE HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { 2604 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); 2605 } 2606 static FORCEINLINE void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This,void *table_context) { 2607 This->lpVtbl->ReleaseFontTable(This,table_context); 2608 } 2609 static FORCEINLINE HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* 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) { 2610 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); 2611 } 2612 static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* 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) { 2613 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); 2614 } 2615 /*** IDWriteFontFace1 methods ***/ 2616 static FORCEINLINE void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This,DWRITE_FONT_METRICS1 *metrics) { 2617 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); 2618 } 2619 static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { 2620 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); 2621 } 2622 static FORCEINLINE void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This,DWRITE_CARET_METRICS *metrics) { 2623 This->lpVtbl->GetCaretMetrics(This,metrics); 2624 } 2625 static FORCEINLINE HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { 2626 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); 2627 } 2628 static FORCEINLINE WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) { 2629 return This->lpVtbl->IsMonospacedFont(This); 2630 } 2631 static FORCEINLINE HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { 2632 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); 2633 } 2634 static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* 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) { 2635 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); 2636 } 2637 static FORCEINLINE HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { 2638 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); 2639 } 2640 static FORCEINLINE WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) { 2641 return This->lpVtbl->HasKerningPairs(This); 2642 } 2643 static FORCEINLINE HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { 2644 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); 2645 } 2646 static FORCEINLINE WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) { 2647 return This->lpVtbl->HasVerticalGlyphVariants(This); 2648 } 2649 /*** IDWriteFontFace2 methods ***/ 2650 static FORCEINLINE WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) { 2651 return This->lpVtbl->IsColorFont(This); 2652 } 2653 static FORCEINLINE UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) { 2654 return This->lpVtbl->GetColorPaletteCount(This); 2655 } 2656 static FORCEINLINE UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) { 2657 return This->lpVtbl->GetPaletteEntryCount(This); 2658 } 2659 static FORCEINLINE HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { 2660 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); 2661 } 2662 static FORCEINLINE HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This,FLOAT fontEmSize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuringmode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *renderingmode,DWRITE_GRID_FIT_MODE *gridfitmode) { 2663 return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode); 2664 } 2665 #endif 2666 #endif 2667 2668 #endif 2669 2670 2671 #endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ 2672 2673 /***************************************************************************** 2674 * IDWriteColorGlyphRunEnumerator interface 2675 */ 2676 #ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ 2677 #define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ 2678 2679 DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8); 2680 #if defined(__cplusplus) && !defined(CINTERFACE) 2681 MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") 2682 IDWriteColorGlyphRunEnumerator : public IUnknown 2683 { 2684 virtual HRESULT STDMETHODCALLTYPE MoveNext( 2685 WINBOOL *hasRun) = 0; 2686 2687 virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( 2688 const DWRITE_COLOR_GLYPH_RUN **run) = 0; 2689 2690 }; 2691 #ifdef __CRT_UUID_DECL 2692 __CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8) 2693 #endif 2694 #else 2695 typedef struct IDWriteColorGlyphRunEnumeratorVtbl { 2696 BEGIN_INTERFACE 2697 2698 /*** IUnknown methods ***/ 2699 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2700 IDWriteColorGlyphRunEnumerator *This, 2701 REFIID riid, 2702 void **ppvObject); 2703 2704 ULONG (STDMETHODCALLTYPE *AddRef)( 2705 IDWriteColorGlyphRunEnumerator *This); 2706 2707 ULONG (STDMETHODCALLTYPE *Release)( 2708 IDWriteColorGlyphRunEnumerator *This); 2709 2710 /*** IDWriteColorGlyphRunEnumerator methods ***/ 2711 HRESULT (STDMETHODCALLTYPE *MoveNext)( 2712 IDWriteColorGlyphRunEnumerator *This, 2713 WINBOOL *hasRun); 2714 2715 HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( 2716 IDWriteColorGlyphRunEnumerator *This, 2717 const DWRITE_COLOR_GLYPH_RUN **run); 2718 2719 END_INTERFACE 2720 } IDWriteColorGlyphRunEnumeratorVtbl; 2721 2722 interface IDWriteColorGlyphRunEnumerator { 2723 CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; 2724 }; 2725 2726 #ifdef COBJMACROS 2727 #ifndef WIDL_C_INLINE_WRAPPERS 2728 /*** IUnknown methods ***/ 2729 #define IDWriteColorGlyphRunEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2730 #define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) 2731 #define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This) 2732 /*** IDWriteColorGlyphRunEnumerator methods ***/ 2733 #define IDWriteColorGlyphRunEnumerator_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) 2734 #define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This,run) (This)->lpVtbl->GetCurrentRun(This,run) 2735 #else 2736 /*** IUnknown methods ***/ 2737 static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This,REFIID riid,void **ppvObject) { 2738 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2739 } 2740 static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) { 2741 return This->lpVtbl->AddRef(This); 2742 } 2743 static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) { 2744 return This->lpVtbl->Release(This); 2745 } 2746 /*** IDWriteColorGlyphRunEnumerator methods ***/ 2747 static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This,WINBOOL *hasRun) { 2748 return This->lpVtbl->MoveNext(This,hasRun); 2749 } 2750 static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This,const DWRITE_COLOR_GLYPH_RUN **run) { 2751 return This->lpVtbl->GetCurrentRun(This,run); 2752 } 2753 #endif 2754 #endif 2755 2756 #endif 2757 2758 2759 #endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ 2760 2761 /***************************************************************************** 2762 * IDWriteRenderingParams2 interface 2763 */ 2764 #ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__ 2765 #define __IDWriteRenderingParams2_INTERFACE_DEFINED__ 2766 2767 DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48); 2768 #if defined(__cplusplus) && !defined(CINTERFACE) 2769 MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948") 2770 IDWriteRenderingParams2 : public IDWriteRenderingParams1 2771 { 2772 virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode( 2773 ) = 0; 2774 2775 }; 2776 #ifdef __CRT_UUID_DECL 2777 __CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48) 2778 #endif 2779 #else 2780 typedef struct IDWriteRenderingParams2Vtbl { 2781 BEGIN_INTERFACE 2782 2783 /*** IUnknown methods ***/ 2784 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2785 IDWriteRenderingParams2 *This, 2786 REFIID riid, 2787 void **ppvObject); 2788 2789 ULONG (STDMETHODCALLTYPE *AddRef)( 2790 IDWriteRenderingParams2 *This); 2791 2792 ULONG (STDMETHODCALLTYPE *Release)( 2793 IDWriteRenderingParams2 *This); 2794 2795 /*** IDWriteRenderingParams methods ***/ 2796 FLOAT (STDMETHODCALLTYPE *GetGamma)( 2797 IDWriteRenderingParams2 *This); 2798 2799 FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( 2800 IDWriteRenderingParams2 *This); 2801 2802 FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( 2803 IDWriteRenderingParams2 *This); 2804 2805 DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( 2806 IDWriteRenderingParams2 *This); 2807 2808 DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( 2809 IDWriteRenderingParams2 *This); 2810 2811 /*** IDWriteRenderingParams1 methods ***/ 2812 FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( 2813 IDWriteRenderingParams2 *This); 2814 2815 /*** IDWriteRenderingParams2 methods ***/ 2816 DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( 2817 IDWriteRenderingParams2 *This); 2818 2819 END_INTERFACE 2820 } IDWriteRenderingParams2Vtbl; 2821 2822 interface IDWriteRenderingParams2 { 2823 CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; 2824 }; 2825 2826 #ifdef COBJMACROS 2827 #ifndef WIDL_C_INLINE_WRAPPERS 2828 /*** IUnknown methods ***/ 2829 #define IDWriteRenderingParams2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2830 #define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This) 2831 #define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This) 2832 /*** IDWriteRenderingParams methods ***/ 2833 #define IDWriteRenderingParams2_GetGamma(This) (This)->lpVtbl->GetGamma(This) 2834 #define IDWriteRenderingParams2_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) 2835 #define IDWriteRenderingParams2_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) 2836 #define IDWriteRenderingParams2_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) 2837 #define IDWriteRenderingParams2_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) 2838 /*** IDWriteRenderingParams1 methods ***/ 2839 #define IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) 2840 /*** IDWriteRenderingParams2 methods ***/ 2841 #define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) 2842 #else 2843 /*** IUnknown methods ***/ 2844 static FORCEINLINE HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This,REFIID riid,void **ppvObject) { 2845 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2846 } 2847 static FORCEINLINE ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) { 2848 return This->lpVtbl->AddRef(This); 2849 } 2850 static FORCEINLINE ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) { 2851 return This->lpVtbl->Release(This); 2852 } 2853 /*** IDWriteRenderingParams methods ***/ 2854 static FORCEINLINE FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) { 2855 return This->lpVtbl->GetGamma(This); 2856 } 2857 static FORCEINLINE FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) { 2858 return This->lpVtbl->GetEnhancedContrast(This); 2859 } 2860 static FORCEINLINE FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) { 2861 return This->lpVtbl->GetClearTypeLevel(This); 2862 } 2863 static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) { 2864 return This->lpVtbl->GetPixelGeometry(This); 2865 } 2866 static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) { 2867 return This->lpVtbl->GetRenderingMode(This); 2868 } 2869 /*** IDWriteRenderingParams1 methods ***/ 2870 static FORCEINLINE FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) { 2871 return This->lpVtbl->GetGrayscaleEnhancedContrast(This); 2872 } 2873 /*** IDWriteRenderingParams2 methods ***/ 2874 static FORCEINLINE DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) { 2875 return This->lpVtbl->GetGridFitMode(This); 2876 } 2877 #endif 2878 #endif 2879 2880 #endif 2881 2882 2883 #endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ 2884 2885 /***************************************************************************** 2886 * IDWriteFactory2 interface 2887 */ 2888 #ifndef __IDWriteFactory2_INTERFACE_DEFINED__ 2889 #define __IDWriteFactory2_INTERFACE_DEFINED__ 2890 2891 DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec); 2892 #if defined(__cplusplus) && !defined(CINTERFACE) 2893 MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") 2894 IDWriteFactory2 : public IDWriteFactory1 2895 { 2896 virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( 2897 IDWriteFontFallback **fallback) = 0; 2898 2899 virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( 2900 IDWriteFontFallbackBuilder **fallbackbuilder) = 0; 2901 2902 virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( 2903 FLOAT originX, 2904 FLOAT originY, 2905 const DWRITE_GLYPH_RUN *run, 2906 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, 2907 DWRITE_MEASURING_MODE mode, 2908 const DWRITE_MATRIX *transform, 2909 UINT32 palette_index, 2910 IDWriteColorGlyphRunEnumerator **colorlayers) = 0; 2911 2912 virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( 2913 FLOAT gamma, 2914 FLOAT contrast, 2915 FLOAT grayscalecontrast, 2916 FLOAT cleartypeLevel, 2917 DWRITE_PIXEL_GEOMETRY pixelGeometry, 2918 DWRITE_RENDERING_MODE renderingMode, 2919 DWRITE_GRID_FIT_MODE gridFitMode, 2920 IDWriteRenderingParams2 **params) = 0; 2921 2922 virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( 2923 const DWRITE_GLYPH_RUN *run, 2924 const DWRITE_MATRIX *transform, 2925 DWRITE_RENDERING_MODE renderingMode, 2926 DWRITE_MEASURING_MODE measuringMode, 2927 DWRITE_GRID_FIT_MODE gridFitMode, 2928 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, 2929 FLOAT originX, 2930 FLOAT originY, 2931 IDWriteGlyphRunAnalysis **analysis) = 0; 2932 2933 }; 2934 #ifdef __CRT_UUID_DECL 2935 __CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec) 2936 #endif 2937 #else 2938 typedef struct IDWriteFactory2Vtbl { 2939 BEGIN_INTERFACE 2940 2941 /*** IUnknown methods ***/ 2942 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2943 IDWriteFactory2 *This, 2944 REFIID riid, 2945 void **ppvObject); 2946 2947 ULONG (STDMETHODCALLTYPE *AddRef)( 2948 IDWriteFactory2 *This); 2949 2950 ULONG (STDMETHODCALLTYPE *Release)( 2951 IDWriteFactory2 *This); 2952 2953 /*** IDWriteFactory methods ***/ 2954 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( 2955 IDWriteFactory2 *This, 2956 IDWriteFontCollection **collection, 2957 WINBOOL check_for_updates); 2958 2959 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( 2960 IDWriteFactory2 *This, 2961 IDWriteFontCollectionLoader *loader, 2962 const void *key, 2963 UINT32 key_size, 2964 IDWriteFontCollection **collection); 2965 2966 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( 2967 IDWriteFactory2 *This, 2968 IDWriteFontCollectionLoader *loader); 2969 2970 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( 2971 IDWriteFactory2 *This, 2972 IDWriteFontCollectionLoader *loader); 2973 2974 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( 2975 IDWriteFactory2 *This, 2976 const WCHAR *path, 2977 const FILETIME *writetime, 2978 IDWriteFontFile **font_file); 2979 2980 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( 2981 IDWriteFactory2 *This, 2982 const void *reference_key, 2983 UINT32 key_size, 2984 IDWriteFontFileLoader *loader, 2985 IDWriteFontFile **font_file); 2986 2987 HRESULT (STDMETHODCALLTYPE *CreateFontFace)( 2988 IDWriteFactory2 *This, 2989 DWRITE_FONT_FACE_TYPE facetype, 2990 UINT32 files_number, 2991 IDWriteFontFile *const *font_files, 2992 UINT32 index, 2993 DWRITE_FONT_SIMULATIONS sim_flags, 2994 IDWriteFontFace **font_face); 2995 2996 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( 2997 IDWriteFactory2 *This, 2998 IDWriteRenderingParams **params); 2999 3000 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( 3001 IDWriteFactory2 *This, 3002 HMONITOR monitor, 3003 IDWriteRenderingParams **params); 3004 3005 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( 3006 IDWriteFactory2 *This, 3007 FLOAT gamma, 3008 FLOAT enhancedContrast, 3009 FLOAT cleartype_level, 3010 DWRITE_PIXEL_GEOMETRY geometry, 3011 DWRITE_RENDERING_MODE mode, 3012 IDWriteRenderingParams **params); 3013 3014 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( 3015 IDWriteFactory2 *This, 3016 IDWriteFontFileLoader *loader); 3017 3018 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( 3019 IDWriteFactory2 *This, 3020 IDWriteFontFileLoader *loader); 3021 3022 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( 3023 IDWriteFactory2 *This, 3024 const WCHAR *family_name, 3025 IDWriteFontCollection *collection, 3026 DWRITE_FONT_WEIGHT weight, 3027 DWRITE_FONT_STYLE style, 3028 DWRITE_FONT_STRETCH stretch, 3029 FLOAT size, 3030 const WCHAR *locale, 3031 IDWriteTextFormat **format); 3032 3033 HRESULT (STDMETHODCALLTYPE *CreateTypography)( 3034 IDWriteFactory2 *This, 3035 IDWriteTypography **typography); 3036 3037 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( 3038 IDWriteFactory2 *This, 3039 IDWriteGdiInterop **gdi_interop); 3040 3041 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( 3042 IDWriteFactory2 *This, 3043 const WCHAR *string, 3044 UINT32 len, 3045 IDWriteTextFormat *format, 3046 FLOAT max_width, 3047 FLOAT max_height, 3048 IDWriteTextLayout **layout); 3049 3050 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( 3051 IDWriteFactory2 *This, 3052 const WCHAR *string, 3053 UINT32 len, 3054 IDWriteTextFormat *format, 3055 FLOAT layout_width, 3056 FLOAT layout_height, 3057 FLOAT pixels_per_dip, 3058 const DWRITE_MATRIX *transform, 3059 WINBOOL use_gdi_natural, 3060 IDWriteTextLayout **layout); 3061 3062 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( 3063 IDWriteFactory2 *This, 3064 IDWriteTextFormat *format, 3065 IDWriteInlineObject **trimming_sign); 3066 3067 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( 3068 IDWriteFactory2 *This, 3069 IDWriteTextAnalyzer **analyzer); 3070 3071 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( 3072 IDWriteFactory2 *This, 3073 DWRITE_NUMBER_SUBSTITUTION_METHOD method, 3074 const WCHAR *locale, 3075 WINBOOL ignore_user_override, 3076 IDWriteNumberSubstitution **substitution); 3077 3078 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( 3079 IDWriteFactory2 *This, 3080 const DWRITE_GLYPH_RUN *glyph_run, 3081 FLOAT pixels_per_dip, 3082 const DWRITE_MATRIX *transform, 3083 DWRITE_RENDERING_MODE rendering_mode, 3084 DWRITE_MEASURING_MODE measuring_mode, 3085 FLOAT baseline_x, 3086 FLOAT baseline_y, 3087 IDWriteGlyphRunAnalysis **analysis); 3088 3089 /*** IDWriteFactory1 methods ***/ 3090 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( 3091 IDWriteFactory2 *This, 3092 IDWriteFontCollection **collection, 3093 WINBOOL check_for_updates); 3094 3095 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( 3096 IDWriteFactory2 *This, 3097 FLOAT gamma, 3098 FLOAT enhcontrast, 3099 FLOAT enhcontrast_grayscale, 3100 FLOAT cleartype_level, 3101 DWRITE_PIXEL_GEOMETRY geometry, 3102 DWRITE_RENDERING_MODE mode, 3103 IDWriteRenderingParams1 **params); 3104 3105 /*** IDWriteFactory2 methods ***/ 3106 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( 3107 IDWriteFactory2 *This, 3108 IDWriteFontFallback **fallback); 3109 3110 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( 3111 IDWriteFactory2 *This, 3112 IDWriteFontFallbackBuilder **fallbackbuilder); 3113 3114 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( 3115 IDWriteFactory2 *This, 3116 FLOAT originX, 3117 FLOAT originY, 3118 const DWRITE_GLYPH_RUN *run, 3119 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, 3120 DWRITE_MEASURING_MODE mode, 3121 const DWRITE_MATRIX *transform, 3122 UINT32 palette_index, 3123 IDWriteColorGlyphRunEnumerator **colorlayers); 3124 3125 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( 3126 IDWriteFactory2 *This, 3127 FLOAT gamma, 3128 FLOAT contrast, 3129 FLOAT grayscalecontrast, 3130 FLOAT cleartypeLevel, 3131 DWRITE_PIXEL_GEOMETRY pixelGeometry, 3132 DWRITE_RENDERING_MODE renderingMode, 3133 DWRITE_GRID_FIT_MODE gridFitMode, 3134 IDWriteRenderingParams2 **params); 3135 3136 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( 3137 IDWriteFactory2 *This, 3138 const DWRITE_GLYPH_RUN *run, 3139 const DWRITE_MATRIX *transform, 3140 DWRITE_RENDERING_MODE renderingMode, 3141 DWRITE_MEASURING_MODE measuringMode, 3142 DWRITE_GRID_FIT_MODE gridFitMode, 3143 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, 3144 FLOAT originX, 3145 FLOAT originY, 3146 IDWriteGlyphRunAnalysis **analysis); 3147 3148 END_INTERFACE 3149 } IDWriteFactory2Vtbl; 3150 3151 interface IDWriteFactory2 { 3152 CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; 3153 }; 3154 3155 #ifdef COBJMACROS 3156 #ifndef WIDL_C_INLINE_WRAPPERS 3157 /*** IUnknown methods ***/ 3158 #define IDWriteFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3159 #define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) 3160 #define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This) 3161 /*** IDWriteFactory methods ***/ 3162 #define IDWriteFactory2_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) 3163 #define IDWriteFactory2_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) 3164 #define IDWriteFactory2_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) 3165 #define IDWriteFactory2_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) 3166 #define IDWriteFactory2_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) 3167 #define IDWriteFactory2_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) 3168 #define IDWriteFactory2_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) 3169 #define IDWriteFactory2_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) 3170 #define IDWriteFactory2_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) 3171 #define IDWriteFactory2_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) 3172 #define IDWriteFactory2_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) 3173 #define IDWriteFactory2_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) 3174 #define IDWriteFactory2_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) 3175 #define IDWriteFactory2_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) 3176 #define IDWriteFactory2_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) 3177 #define IDWriteFactory2_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) 3178 #define IDWriteFactory2_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) 3179 #define IDWriteFactory2_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) 3180 #define IDWriteFactory2_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) 3181 /*** IDWriteFactory1 methods ***/ 3182 #define IDWriteFactory2_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) 3183 /*** IDWriteFactory2 methods ***/ 3184 #define IDWriteFactory2_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) 3185 #define IDWriteFactory2_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) 3186 #define IDWriteFactory2_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) 3187 #define IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) 3188 #define IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) 3189 #else 3190 /*** IUnknown methods ***/ 3191 static FORCEINLINE HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This,REFIID riid,void **ppvObject) { 3192 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3193 } 3194 static FORCEINLINE ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) { 3195 return This->lpVtbl->AddRef(This); 3196 } 3197 static FORCEINLINE ULONG IDWriteFactory2_Release(IDWriteFactory2* This) { 3198 return This->lpVtbl->Release(This); 3199 } 3200 /*** IDWriteFactory methods ***/ 3201 static FORCEINLINE HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { 3202 return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); 3203 } 3204 static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { 3205 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); 3206 } 3207 static FORCEINLINE HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { 3208 return This->lpVtbl->RegisterFontCollectionLoader(This,loader); 3209 } 3210 static FORCEINLINE HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { 3211 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); 3212 } 3213 static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { 3214 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); 3215 } 3216 static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { 3217 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); 3218 } 3219 static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { 3220 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); 3221 } 3222 static FORCEINLINE HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This,IDWriteRenderingParams **params) { 3223 return This->lpVtbl->CreateRenderingParams(This,params); 3224 } 3225 static FORCEINLINE HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This,HMONITOR monitor,IDWriteRenderingParams **params) { 3226 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); 3227 } 3228 static FORCEINLINE HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { 3229 return This->lpVtbl->RegisterFontFileLoader(This,loader); 3230 } 3231 static FORCEINLINE HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { 3232 return This->lpVtbl->UnregisterFontFileLoader(This,loader); 3233 } 3234 static FORCEINLINE HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* 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) { 3235 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); 3236 } 3237 static FORCEINLINE HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This,IDWriteTypography **typography) { 3238 return This->lpVtbl->CreateTypography(This,typography); 3239 } 3240 static FORCEINLINE HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This,IDWriteGdiInterop **gdi_interop) { 3241 return This->lpVtbl->GetGdiInterop(This,gdi_interop); 3242 } 3243 static FORCEINLINE HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { 3244 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); 3245 } 3246 static FORCEINLINE HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* 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) { 3247 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); 3248 } 3249 static FORCEINLINE HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { 3250 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); 3251 } 3252 static FORCEINLINE HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This,IDWriteTextAnalyzer **analyzer) { 3253 return This->lpVtbl->CreateTextAnalyzer(This,analyzer); 3254 } 3255 static FORCEINLINE HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { 3256 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); 3257 } 3258 /*** IDWriteFactory1 methods ***/ 3259 static FORCEINLINE HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { 3260 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); 3261 } 3262 /*** IDWriteFactory2 methods ***/ 3263 static FORCEINLINE HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This,IDWriteFontFallback **fallback) { 3264 return This->lpVtbl->GetSystemFontFallback(This,fallback); 3265 } 3266 static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This,IDWriteFontFallbackBuilder **fallbackbuilder) { 3267 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); 3268 } 3269 static FORCEINLINE HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { 3270 return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); 3271 } 3272 static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This,FLOAT gamma,FLOAT contrast,FLOAT grayscalecontrast,FLOAT cleartypeLevel,DWRITE_PIXEL_GEOMETRY pixelGeometry,DWRITE_RENDERING_MODE renderingMode,DWRITE_GRID_FIT_MODE gridFitMode,IDWriteRenderingParams2 **params) { 3273 return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params); 3274 } 3275 static FORCEINLINE HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE renderingMode,DWRITE_MEASURING_MODE measuringMode,DWRITE_GRID_FIT_MODE gridFitMode,DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,FLOAT originX,FLOAT originY,IDWriteGlyphRunAnalysis **analysis) { 3276 return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis); 3277 } 3278 #endif 3279 #endif 3280 3281 #endif 3282 3283 3284 #endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ 3285 3286 /* Begin additional prototypes for all interfaces */ 3287 3288 3289 /* End additional prototypes */ 3290 3291 #ifdef __cplusplus 3292 } 3293 #endif 3294 3295 #endif /* __dwrite_2_h__ */ 3296