dwrite_1.h 144 KB

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