dwrite_2.h 154 KB

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