dwrite.h 222 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514
  1. /*** Autogenerated by WIDL 7.7 from include/dwrite.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_h__
  14. #define __dwrite_h__
  15. /* Forward declarations */
  16. #ifndef __IDWriteFontFileStream_FWD_DEFINED__
  17. #define __IDWriteFontFileStream_FWD_DEFINED__
  18. typedef interface IDWriteFontFileStream IDWriteFontFileStream;
  19. #ifdef __cplusplus
  20. interface IDWriteFontFileStream;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDWriteFontFileLoader_FWD_DEFINED__
  24. #define __IDWriteFontFileLoader_FWD_DEFINED__
  25. typedef interface IDWriteFontFileLoader IDWriteFontFileLoader;
  26. #ifdef __cplusplus
  27. interface IDWriteFontFileLoader;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__
  31. #define __IDWriteLocalFontFileLoader_FWD_DEFINED__
  32. typedef interface IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader;
  33. #ifdef __cplusplus
  34. interface IDWriteLocalFontFileLoader;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IDWriteFontFile_FWD_DEFINED__
  38. #define __IDWriteFontFile_FWD_DEFINED__
  39. typedef interface IDWriteFontFile IDWriteFontFile;
  40. #ifdef __cplusplus
  41. interface IDWriteFontFile;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__
  45. #define __IDWriteFontFileEnumerator_FWD_DEFINED__
  46. typedef interface IDWriteFontFileEnumerator IDWriteFontFileEnumerator;
  47. #ifdef __cplusplus
  48. interface IDWriteFontFileEnumerator;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__
  52. #define __IDWriteFontCollectionLoader_FWD_DEFINED__
  53. typedef interface IDWriteFontCollectionLoader IDWriteFontCollectionLoader;
  54. #ifdef __cplusplus
  55. interface IDWriteFontCollectionLoader;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IDWriteLocalizedStrings_FWD_DEFINED__
  59. #define __IDWriteLocalizedStrings_FWD_DEFINED__
  60. typedef interface IDWriteLocalizedStrings IDWriteLocalizedStrings;
  61. #ifdef __cplusplus
  62. interface IDWriteLocalizedStrings;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IDWriteRenderingParams_FWD_DEFINED__
  66. #define __IDWriteRenderingParams_FWD_DEFINED__
  67. typedef interface IDWriteRenderingParams IDWriteRenderingParams;
  68. #ifdef __cplusplus
  69. interface IDWriteRenderingParams;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IDWriteFontFace_FWD_DEFINED__
  73. #define __IDWriteFontFace_FWD_DEFINED__
  74. typedef interface IDWriteFontFace IDWriteFontFace;
  75. #ifdef __cplusplus
  76. interface IDWriteFontFace;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IDWriteFont_FWD_DEFINED__
  80. #define __IDWriteFont_FWD_DEFINED__
  81. typedef interface IDWriteFont IDWriteFont;
  82. #ifdef __cplusplus
  83. interface IDWriteFont;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IDWriteFontList_FWD_DEFINED__
  87. #define __IDWriteFontList_FWD_DEFINED__
  88. typedef interface IDWriteFontList IDWriteFontList;
  89. #ifdef __cplusplus
  90. interface IDWriteFontList;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IDWriteFontFamily_FWD_DEFINED__
  94. #define __IDWriteFontFamily_FWD_DEFINED__
  95. typedef interface IDWriteFontFamily IDWriteFontFamily;
  96. #ifdef __cplusplus
  97. interface IDWriteFontFamily;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IDWriteFontCollection_FWD_DEFINED__
  101. #define __IDWriteFontCollection_FWD_DEFINED__
  102. typedef interface IDWriteFontCollection IDWriteFontCollection;
  103. #ifdef __cplusplus
  104. interface IDWriteFontCollection;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IDWritePixelSnapping_FWD_DEFINED__
  108. #define __IDWritePixelSnapping_FWD_DEFINED__
  109. typedef interface IDWritePixelSnapping IDWritePixelSnapping;
  110. #ifdef __cplusplus
  111. interface IDWritePixelSnapping;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IDWriteTextRenderer_FWD_DEFINED__
  115. #define __IDWriteTextRenderer_FWD_DEFINED__
  116. typedef interface IDWriteTextRenderer IDWriteTextRenderer;
  117. #ifdef __cplusplus
  118. interface IDWriteTextRenderer;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __IDWriteInlineObject_FWD_DEFINED__
  122. #define __IDWriteInlineObject_FWD_DEFINED__
  123. typedef interface IDWriteInlineObject IDWriteInlineObject;
  124. #ifdef __cplusplus
  125. interface IDWriteInlineObject;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __IDWriteTextFormat_FWD_DEFINED__
  129. #define __IDWriteTextFormat_FWD_DEFINED__
  130. typedef interface IDWriteTextFormat IDWriteTextFormat;
  131. #ifdef __cplusplus
  132. interface IDWriteTextFormat;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IDWriteTypography_FWD_DEFINED__
  136. #define __IDWriteTypography_FWD_DEFINED__
  137. typedef interface IDWriteTypography IDWriteTypography;
  138. #ifdef __cplusplus
  139. interface IDWriteTypography;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__
  143. #define __IDWriteBitmapRenderTarget_FWD_DEFINED__
  144. typedef interface IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget;
  145. #ifdef __cplusplus
  146. interface IDWriteBitmapRenderTarget;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IDWriteGdiInterop_FWD_DEFINED__
  150. #define __IDWriteGdiInterop_FWD_DEFINED__
  151. typedef interface IDWriteGdiInterop IDWriteGdiInterop;
  152. #ifdef __cplusplus
  153. interface IDWriteGdiInterop;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IDWriteTextLayout_FWD_DEFINED__
  157. #define __IDWriteTextLayout_FWD_DEFINED__
  158. typedef interface IDWriteTextLayout IDWriteTextLayout;
  159. #ifdef __cplusplus
  160. interface IDWriteTextLayout;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __IDWriteNumberSubstitution_FWD_DEFINED__
  164. #define __IDWriteNumberSubstitution_FWD_DEFINED__
  165. typedef interface IDWriteNumberSubstitution IDWriteNumberSubstitution;
  166. #ifdef __cplusplus
  167. interface IDWriteNumberSubstitution;
  168. #endif /* __cplusplus */
  169. #endif
  170. #ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__
  171. #define __IDWriteTextAnalysisSource_FWD_DEFINED__
  172. typedef interface IDWriteTextAnalysisSource IDWriteTextAnalysisSource;
  173. #ifdef __cplusplus
  174. interface IDWriteTextAnalysisSource;
  175. #endif /* __cplusplus */
  176. #endif
  177. #ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__
  178. #define __IDWriteTextAnalysisSink_FWD_DEFINED__
  179. typedef interface IDWriteTextAnalysisSink IDWriteTextAnalysisSink;
  180. #ifdef __cplusplus
  181. interface IDWriteTextAnalysisSink;
  182. #endif /* __cplusplus */
  183. #endif
  184. #ifndef __IDWriteTextAnalyzer_FWD_DEFINED__
  185. #define __IDWriteTextAnalyzer_FWD_DEFINED__
  186. typedef interface IDWriteTextAnalyzer IDWriteTextAnalyzer;
  187. #ifdef __cplusplus
  188. interface IDWriteTextAnalyzer;
  189. #endif /* __cplusplus */
  190. #endif
  191. #ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__
  192. #define __IDWriteGlyphRunAnalysis_FWD_DEFINED__
  193. typedef interface IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis;
  194. #ifdef __cplusplus
  195. interface IDWriteGlyphRunAnalysis;
  196. #endif /* __cplusplus */
  197. #endif
  198. #ifndef __IDWriteFactory_FWD_DEFINED__
  199. #define __IDWriteFactory_FWD_DEFINED__
  200. typedef interface IDWriteFactory IDWriteFactory;
  201. #ifdef __cplusplus
  202. interface IDWriteFactory;
  203. #endif /* __cplusplus */
  204. #endif
  205. /* Headers for imported files */
  206. #include <unknwn.h>
  207. #include <dcommon.h>
  208. #ifdef __cplusplus
  209. extern "C" {
  210. #endif
  211. #ifndef __IDWriteFactory_FWD_DEFINED__
  212. #define __IDWriteFactory_FWD_DEFINED__
  213. typedef interface IDWriteFactory IDWriteFactory;
  214. #ifdef __cplusplus
  215. interface IDWriteFactory;
  216. #endif /* __cplusplus */
  217. #endif
  218. #ifndef __IDWriteFontCollection_FWD_DEFINED__
  219. #define __IDWriteFontCollection_FWD_DEFINED__
  220. typedef interface IDWriteFontCollection IDWriteFontCollection;
  221. #ifdef __cplusplus
  222. interface IDWriteFontCollection;
  223. #endif /* __cplusplus */
  224. #endif
  225. #ifndef __IDWriteFontFamily_FWD_DEFINED__
  226. #define __IDWriteFontFamily_FWD_DEFINED__
  227. typedef interface IDWriteFontFamily IDWriteFontFamily;
  228. #ifdef __cplusplus
  229. interface IDWriteFontFamily;
  230. #endif /* __cplusplus */
  231. #endif
  232. #ifndef __IDWriteFontFace_FWD_DEFINED__
  233. #define __IDWriteFontFace_FWD_DEFINED__
  234. typedef interface IDWriteFontFace IDWriteFontFace;
  235. #ifdef __cplusplus
  236. interface IDWriteFontFace;
  237. #endif /* __cplusplus */
  238. #endif
  239. #ifndef __IDWriteInlineObject_FWD_DEFINED__
  240. #define __IDWriteInlineObject_FWD_DEFINED__
  241. typedef interface IDWriteInlineObject IDWriteInlineObject;
  242. #ifdef __cplusplus
  243. interface IDWriteInlineObject;
  244. #endif /* __cplusplus */
  245. #endif
  246. #ifndef __ID2D1SimplifiedGeometrySink_FWD_DEFINED__
  247. #define __ID2D1SimplifiedGeometrySink_FWD_DEFINED__
  248. typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink;
  249. #ifdef __cplusplus
  250. interface ID2D1SimplifiedGeometrySink;
  251. #endif /* __cplusplus */
  252. #endif
  253. typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink;
  254. #ifndef _WINDEF_
  255. typedef void *HMONITOR;
  256. #endif /* _WINDEF_ */
  257. #ifdef WINE_NO_UNICODE_MACROS
  258. #undef GetGlyphIndices
  259. #endif
  260. typedef enum DWRITE_FACTORY_TYPE {
  261. DWRITE_FACTORY_TYPE_SHARED = 0,
  262. DWRITE_FACTORY_TYPE_ISOLATED = 1
  263. } DWRITE_FACTORY_TYPE;
  264. typedef enum DWRITE_FONT_FILE_TYPE {
  265. DWRITE_FONT_FILE_TYPE_UNKNOWN = 0,
  266. DWRITE_FONT_FILE_TYPE_CFF = 1,
  267. DWRITE_FONT_FILE_TYPE_TRUETYPE = 2,
  268. DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3,
  269. DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4,
  270. DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5,
  271. DWRITE_FONT_FILE_TYPE_VECTOR = 6,
  272. DWRITE_FONT_FILE_TYPE_BITMAP = 7,
  273. DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION
  274. } DWRITE_FONT_FILE_TYPE;
  275. typedef enum DWRITE_FONT_FACE_TYPE {
  276. DWRITE_FONT_FACE_TYPE_CFF = 0,
  277. DWRITE_FONT_FACE_TYPE_TRUETYPE = 1,
  278. DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2,
  279. DWRITE_FONT_FACE_TYPE_TYPE1 = 3,
  280. DWRITE_FONT_FACE_TYPE_VECTOR = 4,
  281. DWRITE_FONT_FACE_TYPE_BITMAP = 5,
  282. DWRITE_FONT_FACE_TYPE_UNKNOWN = 6,
  283. DWRITE_FONT_FACE_TYPE_RAW_CFF = 7,
  284. DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION
  285. } DWRITE_FONT_FACE_TYPE;
  286. typedef enum DWRITE_FONT_WEIGHT {
  287. DWRITE_FONT_WEIGHT_THIN = 100,
  288. DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200,
  289. DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200,
  290. DWRITE_FONT_WEIGHT_LIGHT = 300,
  291. DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350,
  292. DWRITE_FONT_WEIGHT_NORMAL = 400,
  293. DWRITE_FONT_WEIGHT_REGULAR = 400,
  294. DWRITE_FONT_WEIGHT_MEDIUM = 500,
  295. DWRITE_FONT_WEIGHT_DEMI_BOLD = 600,
  296. DWRITE_FONT_WEIGHT_SEMI_BOLD = 600,
  297. DWRITE_FONT_WEIGHT_BOLD = 700,
  298. DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800,
  299. DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800,
  300. DWRITE_FONT_WEIGHT_BLACK = 900,
  301. DWRITE_FONT_WEIGHT_HEAVY = 900,
  302. DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950,
  303. DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950
  304. } DWRITE_FONT_WEIGHT;
  305. typedef enum DWRITE_FONT_STRETCH {
  306. DWRITE_FONT_STRETCH_UNDEFINED = 0,
  307. DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1,
  308. DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2,
  309. DWRITE_FONT_STRETCH_CONDENSED = 3,
  310. DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4,
  311. DWRITE_FONT_STRETCH_NORMAL = 5,
  312. DWRITE_FONT_STRETCH_MEDIUM = 5,
  313. DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6,
  314. DWRITE_FONT_STRETCH_EXPANDED = 7,
  315. DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8,
  316. DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9
  317. } DWRITE_FONT_STRETCH;
  318. typedef enum DWRITE_FONT_STYLE {
  319. DWRITE_FONT_STYLE_NORMAL = 0,
  320. DWRITE_FONT_STYLE_OBLIQUE = 1,
  321. DWRITE_FONT_STYLE_ITALIC = 2
  322. } DWRITE_FONT_STYLE;
  323. typedef enum DWRITE_INFORMATIONAL_STRING_ID {
  324. DWRITE_INFORMATIONAL_STRING_NONE = 0,
  325. DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1,
  326. DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2,
  327. DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3,
  328. DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4,
  329. DWRITE_INFORMATIONAL_STRING_DESIGNER = 5,
  330. DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6,
  331. DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7,
  332. DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8,
  333. DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9,
  334. DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10,
  335. DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11,
  336. DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12,
  337. DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13,
  338. DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14,
  339. DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15,
  340. DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16,
  341. DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17,
  342. DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18,
  343. DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19,
  344. DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20,
  345. DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21,
  346. DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES,
  347. DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES,
  348. DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME
  349. } DWRITE_INFORMATIONAL_STRING_ID;
  350. typedef enum DWRITE_FONT_SIMULATIONS {
  351. DWRITE_FONT_SIMULATIONS_NONE = 0,
  352. DWRITE_FONT_SIMULATIONS_BOLD = 1,
  353. DWRITE_FONT_SIMULATIONS_OBLIQUE = 2
  354. } DWRITE_FONT_SIMULATIONS;
  355. DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS);
  356. typedef enum DWRITE_PIXEL_GEOMETRY {
  357. DWRITE_PIXEL_GEOMETRY_FLAT = 0,
  358. DWRITE_PIXEL_GEOMETRY_RGB = 1,
  359. DWRITE_PIXEL_GEOMETRY_BGR = 2
  360. } DWRITE_PIXEL_GEOMETRY;
  361. typedef enum DWRITE_RENDERING_MODE {
  362. DWRITE_RENDERING_MODE_DEFAULT = 0,
  363. DWRITE_RENDERING_MODE_ALIASED = 1,
  364. DWRITE_RENDERING_MODE_GDI_CLASSIC = 2,
  365. DWRITE_RENDERING_MODE_GDI_NATURAL = 3,
  366. DWRITE_RENDERING_MODE_NATURAL = 4,
  367. DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5,
  368. DWRITE_RENDERING_MODE_OUTLINE = 6,
  369. DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
  370. DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL,
  371. DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL,
  372. DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
  373. } DWRITE_RENDERING_MODE;
  374. typedef enum DWRITE_TEXT_ALIGNMENT {
  375. DWRITE_TEXT_ALIGNMENT_LEADING = 0,
  376. DWRITE_TEXT_ALIGNMENT_TRAILING = 1,
  377. DWRITE_TEXT_ALIGNMENT_CENTER = 2,
  378. DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3
  379. } DWRITE_TEXT_ALIGNMENT;
  380. typedef enum DWRITE_PARAGRAPH_ALIGNMENT {
  381. DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0,
  382. DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1,
  383. DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2
  384. } DWRITE_PARAGRAPH_ALIGNMENT;
  385. typedef enum DWRITE_WORD_WRAPPING {
  386. DWRITE_WORD_WRAPPING_WRAP = 0,
  387. DWRITE_WORD_WRAPPING_NO_WRAP = 1,
  388. DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2,
  389. DWRITE_WORD_WRAPPING_WHOLE_WORD = 3,
  390. DWRITE_WORD_WRAPPING_CHARACTER = 4
  391. } DWRITE_WORD_WRAPPING;
  392. typedef enum DWRITE_READING_DIRECTION {
  393. DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0,
  394. DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1,
  395. DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2,
  396. DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3
  397. } DWRITE_READING_DIRECTION;
  398. typedef enum DWRITE_FLOW_DIRECTION {
  399. DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0,
  400. DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1,
  401. DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2,
  402. DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3
  403. } DWRITE_FLOW_DIRECTION;
  404. typedef enum DWRITE_TRIMMING_GRANULARITY {
  405. DWRITE_TRIMMING_GRANULARITY_NONE = 0,
  406. DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1,
  407. DWRITE_TRIMMING_GRANULARITY_WORD = 2
  408. } DWRITE_TRIMMING_GRANULARITY;
  409. typedef enum DWRITE_BREAK_CONDITION {
  410. DWRITE_BREAK_CONDITION_NEUTRAL = 0,
  411. DWRITE_BREAK_CONDITION_CAN_BREAK = 1,
  412. DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2,
  413. DWRITE_BREAK_CONDITION_MUST_BREAK = 3
  414. } DWRITE_BREAK_CONDITION;
  415. typedef enum DWRITE_LINE_SPACING_METHOD {
  416. DWRITE_LINE_SPACING_METHOD_DEFAULT = 0,
  417. DWRITE_LINE_SPACING_METHOD_UNIFORM = 1,
  418. DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2
  419. } DWRITE_LINE_SPACING_METHOD;
  420. #define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \
  421. ((UINT32)(UINT8)(d) << 24) | \
  422. ((UINT32)(UINT8)(c) << 16) | \
  423. ((UINT32)(UINT8)(b) << 8) | \
  424. (UINT32)(UINT8)(a))
  425. typedef enum DWRITE_FONT_FEATURE_TAG {
  426. DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661,
  427. DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263,
  428. DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263,
  429. DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163,
  430. DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163,
  431. DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363,
  432. DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63,
  433. DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063,
  434. DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363,
  435. DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563,
  436. DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664,
  437. DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64,
  438. DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865,
  439. DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266,
  440. DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766,
  441. DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168,
  442. DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168,
  443. DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168,
  444. DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968,
  445. DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68,
  446. DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68,
  447. DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768,
  448. DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68,
  449. DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a,
  450. DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a,
  451. DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a,
  452. DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a,
  453. DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b,
  454. DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c,
  455. DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c,
  456. DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c,
  457. DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d,
  458. DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d,
  459. DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d,
  460. DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e,
  461. DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e,
  462. DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f,
  463. DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f,
  464. DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170,
  465. DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370,
  466. DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70,
  467. DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770,
  468. DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771,
  469. DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72,
  470. DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572,
  471. DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173,
  472. DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973,
  473. DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73,
  474. DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73,
  475. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373,
  476. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373,
  477. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373,
  478. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373,
  479. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373,
  480. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373,
  481. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373,
  482. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373,
  483. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373,
  484. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373,
  485. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373,
  486. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373,
  487. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373,
  488. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373,
  489. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373,
  490. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373,
  491. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373,
  492. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373,
  493. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373,
  494. DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373,
  495. DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573,
  496. DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573,
  497. DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773,
  498. DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974,
  499. DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74,
  500. DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74,
  501. DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274,
  502. DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774,
  503. DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75,
  504. DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576,
  505. DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276,
  506. DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a
  507. } DWRITE_FONT_FEATURE_TAG;
  508. typedef enum DWRITE_SCRIPT_SHAPES {
  509. DWRITE_SCRIPT_SHAPES_DEFAULT = 0,
  510. DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1
  511. } DWRITE_SCRIPT_SHAPES;
  512. DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES);
  513. typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD {
  514. DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0,
  515. DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1,
  516. DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2,
  517. DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3,
  518. DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4
  519. } DWRITE_NUMBER_SUBSTITUTION_METHOD;
  520. #define DWRITE_ALPHA_MAX 255
  521. typedef enum DWRITE_TEXTURE_TYPE {
  522. DWRITE_TEXTURE_ALIASED_1x1 = 0,
  523. DWRITE_TEXTURE_CLEARTYPE_3x1 = 1
  524. } DWRITE_TEXTURE_TYPE;
  525. typedef struct DWRITE_FONT_METRICS {
  526. UINT16 designUnitsPerEm;
  527. UINT16 ascent;
  528. UINT16 descent;
  529. INT16 lineGap;
  530. UINT16 capHeight;
  531. UINT16 xHeight;
  532. INT16 underlinePosition;
  533. UINT16 underlineThickness;
  534. INT16 strikethroughPosition;
  535. UINT16 strikethroughThickness;
  536. } DWRITE_FONT_METRICS;
  537. typedef struct DWRITE_GLYPH_METRICS {
  538. INT32 leftSideBearing;
  539. UINT32 advanceWidth;
  540. INT32 rightSideBearing;
  541. INT32 topSideBearing;
  542. UINT32 advanceHeight;
  543. INT32 bottomSideBearing;
  544. INT32 verticalOriginY;
  545. } DWRITE_GLYPH_METRICS;
  546. typedef struct DWRITE_GLYPH_OFFSET {
  547. FLOAT advanceOffset;
  548. FLOAT ascenderOffset;
  549. } DWRITE_GLYPH_OFFSET;
  550. typedef struct DWRITE_MATRIX {
  551. FLOAT m11;
  552. FLOAT m12;
  553. FLOAT m21;
  554. FLOAT m22;
  555. FLOAT dx;
  556. FLOAT dy;
  557. } DWRITE_MATRIX;
  558. typedef struct DWRITE_TRIMMING {
  559. DWRITE_TRIMMING_GRANULARITY granularity;
  560. UINT32 delimiter;
  561. UINT32 delimiterCount;
  562. } DWRITE_TRIMMING;
  563. #ifndef __d2d1_h__
  564. typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN;
  565. #endif /* __d2d1_h__ */
  566. struct DWRITE_GLYPH_RUN {
  567. IDWriteFontFace *fontFace;
  568. FLOAT fontEmSize;
  569. UINT32 glyphCount;
  570. const UINT16 *glyphIndices;
  571. const FLOAT *glyphAdvances;
  572. const DWRITE_GLYPH_OFFSET *glyphOffsets;
  573. WINBOOL isSideways;
  574. UINT32 bidiLevel;
  575. };
  576. #ifndef __d2d1_1_h__
  577. typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION;
  578. #endif /* __d2d1_1_h__ */
  579. struct DWRITE_GLYPH_RUN_DESCRIPTION {
  580. const WCHAR *localeName;
  581. const WCHAR *string;
  582. UINT32 stringLength;
  583. const UINT16 *clusterMap;
  584. UINT32 textPosition;
  585. };
  586. typedef struct DWRITE_UNDERLINE {
  587. FLOAT width;
  588. FLOAT thickness;
  589. FLOAT offset;
  590. FLOAT runHeight;
  591. DWRITE_READING_DIRECTION readingDirection;
  592. DWRITE_FLOW_DIRECTION flowDirection;
  593. const WCHAR *localeName;
  594. DWRITE_MEASURING_MODE measuringMode;
  595. } DWRITE_UNDERLINE;
  596. typedef struct DWRITE_STRIKETHROUGH {
  597. FLOAT width;
  598. FLOAT thickness;
  599. FLOAT offset;
  600. DWRITE_READING_DIRECTION readingDirection;
  601. DWRITE_FLOW_DIRECTION flowDirection;
  602. const WCHAR *localeName;
  603. DWRITE_MEASURING_MODE measuringMode;
  604. } DWRITE_STRIKETHROUGH;
  605. typedef struct DWRITE_INLINE_OBJECT_METRICS {
  606. FLOAT width;
  607. FLOAT height;
  608. FLOAT baseline;
  609. WINBOOL supportsSideways;
  610. } DWRITE_INLINE_OBJECT_METRICS;
  611. typedef struct DWRITE_OVERHANG_METRICS {
  612. FLOAT left;
  613. FLOAT top;
  614. FLOAT right;
  615. FLOAT bottom;
  616. } DWRITE_OVERHANG_METRICS;
  617. typedef struct DWRITE_FONT_FEATURE {
  618. DWRITE_FONT_FEATURE_TAG nameTag;
  619. UINT32 parameter;
  620. } DWRITE_FONT_FEATURE;
  621. typedef struct DWRITE_TEXT_RANGE {
  622. UINT32 startPosition;
  623. UINT32 length;
  624. } DWRITE_TEXT_RANGE;
  625. typedef struct DWRITE_LINE_METRICS {
  626. UINT32 length;
  627. UINT32 trailingWhitespaceLength;
  628. UINT32 newlineLength;
  629. FLOAT height;
  630. FLOAT baseline;
  631. WINBOOL isTrimmed;
  632. } DWRITE_LINE_METRICS;
  633. typedef struct DWRITE_TEXT_METRICS {
  634. FLOAT left;
  635. FLOAT top;
  636. FLOAT width;
  637. FLOAT widthIncludingTrailingWhitespace;
  638. FLOAT height;
  639. FLOAT layoutWidth;
  640. FLOAT layoutHeight;
  641. UINT32 maxBidiReorderingDepth;
  642. UINT32 lineCount;
  643. } DWRITE_TEXT_METRICS;
  644. typedef struct DWRITE_CLUSTER_METRICS {
  645. FLOAT width;
  646. UINT16 length;
  647. UINT16 canWrapLineAfter : 1;
  648. UINT16 isWhitespace : 1;
  649. UINT16 isNewline : 1;
  650. UINT16 isSoftHyphen : 1;
  651. UINT16 isRightToLeft : 1;
  652. UINT16 padding : 11;
  653. } DWRITE_CLUSTER_METRICS;
  654. typedef struct DWRITE_HIT_TEST_METRICS {
  655. UINT32 textPosition;
  656. UINT32 length;
  657. FLOAT left;
  658. FLOAT top;
  659. FLOAT width;
  660. FLOAT height;
  661. UINT32 bidiLevel;
  662. WINBOOL isText;
  663. WINBOOL isTrimmed;
  664. } DWRITE_HIT_TEST_METRICS;
  665. typedef struct DWRITE_SCRIPT_ANALYSIS {
  666. UINT16 script;
  667. DWRITE_SCRIPT_SHAPES shapes;
  668. } DWRITE_SCRIPT_ANALYSIS;
  669. typedef struct DWRITE_LINE_BREAKPOINT {
  670. UINT8 breakConditionBefore : 2;
  671. UINT8 breakConditionAfter : 2;
  672. UINT8 isWhitespace : 1;
  673. UINT8 isSoftHyphen : 1;
  674. UINT8 padding : 2;
  675. } DWRITE_LINE_BREAKPOINT;
  676. typedef struct DWRITE_TYPOGRAPHIC_FEATURES {
  677. DWRITE_FONT_FEATURE *features;
  678. UINT32 featureCount;
  679. } DWRITE_TYPOGRAPHIC_FEATURES;
  680. typedef struct DWRITE_SHAPING_TEXT_PROPERTIES {
  681. UINT16 isShapedAlone : 1;
  682. UINT16 reserved1 : 1;
  683. UINT16 canBreakShapingAfter : 1;
  684. UINT16 reserved : 13;
  685. } DWRITE_SHAPING_TEXT_PROPERTIES;
  686. typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES {
  687. UINT16 justification : 4;
  688. UINT16 isClusterStart : 1;
  689. UINT16 isDiacritic : 1;
  690. UINT16 isZeroWidthSpace : 1;
  691. UINT16 reserved : 9;
  692. } DWRITE_SHAPING_GLYPH_PROPERTIES;
  693. /*****************************************************************************
  694. * IDWriteFontFileStream interface
  695. */
  696. #ifndef __IDWriteFontFileStream_INTERFACE_DEFINED__
  697. #define __IDWriteFontFileStream_INTERFACE_DEFINED__
  698. DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0);
  699. #if defined(__cplusplus) && !defined(CINTERFACE)
  700. MIDL_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0")
  701. IDWriteFontFileStream : public IUnknown
  702. {
  703. virtual HRESULT STDMETHODCALLTYPE ReadFileFragment(
  704. const void **fragment_start,
  705. UINT64 offset,
  706. UINT64 fragment_size,
  707. void **fragment_context) = 0;
  708. virtual void STDMETHODCALLTYPE ReleaseFileFragment(
  709. void *fragment_context) = 0;
  710. virtual HRESULT STDMETHODCALLTYPE GetFileSize(
  711. UINT64 *size) = 0;
  712. virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime(
  713. UINT64 *last_writetime) = 0;
  714. };
  715. #ifdef __CRT_UUID_DECL
  716. __CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0)
  717. #endif
  718. #else
  719. typedef struct IDWriteFontFileStreamVtbl {
  720. BEGIN_INTERFACE
  721. /*** IUnknown methods ***/
  722. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  723. IDWriteFontFileStream *This,
  724. REFIID riid,
  725. void **ppvObject);
  726. ULONG (STDMETHODCALLTYPE *AddRef)(
  727. IDWriteFontFileStream *This);
  728. ULONG (STDMETHODCALLTYPE *Release)(
  729. IDWriteFontFileStream *This);
  730. /*** IDWriteFontFileStream methods ***/
  731. HRESULT (STDMETHODCALLTYPE *ReadFileFragment)(
  732. IDWriteFontFileStream *This,
  733. const void **fragment_start,
  734. UINT64 offset,
  735. UINT64 fragment_size,
  736. void **fragment_context);
  737. void (STDMETHODCALLTYPE *ReleaseFileFragment)(
  738. IDWriteFontFileStream *This,
  739. void *fragment_context);
  740. HRESULT (STDMETHODCALLTYPE *GetFileSize)(
  741. IDWriteFontFileStream *This,
  742. UINT64 *size);
  743. HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)(
  744. IDWriteFontFileStream *This,
  745. UINT64 *last_writetime);
  746. END_INTERFACE
  747. } IDWriteFontFileStreamVtbl;
  748. interface IDWriteFontFileStream {
  749. CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl;
  750. };
  751. #ifdef COBJMACROS
  752. #ifndef WIDL_C_INLINE_WRAPPERS
  753. /*** IUnknown methods ***/
  754. #define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  755. #define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  756. #define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
  757. /*** IDWriteFontFileStream methods ***/
  758. #define IDWriteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context)
  759. #define IDWriteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context)
  760. #define IDWriteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size)
  761. #define IDWriteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime)
  762. #else
  763. /*** IUnknown methods ***/
  764. static FORCEINLINE HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This,REFIID riid,void **ppvObject) {
  765. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  766. }
  767. static FORCEINLINE ULONG IDWriteFontFileStream_AddRef(IDWriteFontFileStream* This) {
  768. return This->lpVtbl->AddRef(This);
  769. }
  770. static FORCEINLINE ULONG IDWriteFontFileStream_Release(IDWriteFontFileStream* This) {
  771. return This->lpVtbl->Release(This);
  772. }
  773. /*** IDWriteFontFileStream methods ***/
  774. static FORCEINLINE HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) {
  775. return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context);
  776. }
  777. static FORCEINLINE void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This,void *fragment_context) {
  778. This->lpVtbl->ReleaseFileFragment(This,fragment_context);
  779. }
  780. static FORCEINLINE HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This,UINT64 *size) {
  781. return This->lpVtbl->GetFileSize(This,size);
  782. }
  783. static FORCEINLINE HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This,UINT64 *last_writetime) {
  784. return This->lpVtbl->GetLastWriteTime(This,last_writetime);
  785. }
  786. #endif
  787. #endif
  788. #endif
  789. #endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */
  790. /*****************************************************************************
  791. * IDWriteFontFileLoader interface
  792. */
  793. #ifndef __IDWriteFontFileLoader_INTERFACE_DEFINED__
  794. #define __IDWriteFontFileLoader_INTERFACE_DEFINED__
  795. DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49);
  796. #if defined(__cplusplus) && !defined(CINTERFACE)
  797. MIDL_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49")
  798. IDWriteFontFileLoader : public IUnknown
  799. {
  800. virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey(
  801. const void *key,
  802. UINT32 key_size,
  803. IDWriteFontFileStream **stream) = 0;
  804. };
  805. #ifdef __CRT_UUID_DECL
  806. __CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49)
  807. #endif
  808. #else
  809. typedef struct IDWriteFontFileLoaderVtbl {
  810. BEGIN_INTERFACE
  811. /*** IUnknown methods ***/
  812. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  813. IDWriteFontFileLoader *This,
  814. REFIID riid,
  815. void **ppvObject);
  816. ULONG (STDMETHODCALLTYPE *AddRef)(
  817. IDWriteFontFileLoader *This);
  818. ULONG (STDMETHODCALLTYPE *Release)(
  819. IDWriteFontFileLoader *This);
  820. /*** IDWriteFontFileLoader methods ***/
  821. HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  822. IDWriteFontFileLoader *This,
  823. const void *key,
  824. UINT32 key_size,
  825. IDWriteFontFileStream **stream);
  826. END_INTERFACE
  827. } IDWriteFontFileLoaderVtbl;
  828. interface IDWriteFontFileLoader {
  829. CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl;
  830. };
  831. #ifdef COBJMACROS
  832. #ifndef WIDL_C_INLINE_WRAPPERS
  833. /*** IUnknown methods ***/
  834. #define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  835. #define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  836. #define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  837. /*** IDWriteFontFileLoader methods ***/
  838. #define IDWriteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  839. #else
  840. /*** IUnknown methods ***/
  841. static FORCEINLINE HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This,REFIID riid,void **ppvObject) {
  842. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  843. }
  844. static FORCEINLINE ULONG IDWriteFontFileLoader_AddRef(IDWriteFontFileLoader* This) {
  845. return This->lpVtbl->AddRef(This);
  846. }
  847. static FORCEINLINE ULONG IDWriteFontFileLoader_Release(IDWriteFontFileLoader* This) {
  848. return This->lpVtbl->Release(This);
  849. }
  850. /*** IDWriteFontFileLoader methods ***/
  851. static FORCEINLINE HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  852. return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  853. }
  854. #endif
  855. #endif
  856. #endif
  857. #endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */
  858. /*****************************************************************************
  859. * IDWriteLocalFontFileLoader interface
  860. */
  861. #ifndef __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__
  862. #define __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__
  863. DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2);
  864. #if defined(__cplusplus) && !defined(CINTERFACE)
  865. MIDL_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2")
  866. IDWriteLocalFontFileLoader : public IDWriteFontFileLoader
  867. {
  868. virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey(
  869. const void *key,
  870. UINT32 key_size,
  871. UINT32 *length) = 0;
  872. virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey(
  873. const void *key,
  874. UINT32 key_size,
  875. WCHAR *path,
  876. UINT32 length) = 0;
  877. virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey(
  878. const void *key,
  879. UINT32 key_size,
  880. FILETIME *writetime) = 0;
  881. };
  882. #ifdef __CRT_UUID_DECL
  883. __CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2)
  884. #endif
  885. #else
  886. typedef struct IDWriteLocalFontFileLoaderVtbl {
  887. BEGIN_INTERFACE
  888. /*** IUnknown methods ***/
  889. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  890. IDWriteLocalFontFileLoader *This,
  891. REFIID riid,
  892. void **ppvObject);
  893. ULONG (STDMETHODCALLTYPE *AddRef)(
  894. IDWriteLocalFontFileLoader *This);
  895. ULONG (STDMETHODCALLTYPE *Release)(
  896. IDWriteLocalFontFileLoader *This);
  897. /*** IDWriteFontFileLoader methods ***/
  898. HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  899. IDWriteLocalFontFileLoader *This,
  900. const void *key,
  901. UINT32 key_size,
  902. IDWriteFontFileStream **stream);
  903. /*** IDWriteLocalFontFileLoader methods ***/
  904. HRESULT (STDMETHODCALLTYPE *GetFilePathLengthFromKey)(
  905. IDWriteLocalFontFileLoader *This,
  906. const void *key,
  907. UINT32 key_size,
  908. UINT32 *length);
  909. HRESULT (STDMETHODCALLTYPE *GetFilePathFromKey)(
  910. IDWriteLocalFontFileLoader *This,
  911. const void *key,
  912. UINT32 key_size,
  913. WCHAR *path,
  914. UINT32 length);
  915. HRESULT (STDMETHODCALLTYPE *GetLastWriteTimeFromKey)(
  916. IDWriteLocalFontFileLoader *This,
  917. const void *key,
  918. UINT32 key_size,
  919. FILETIME *writetime);
  920. END_INTERFACE
  921. } IDWriteLocalFontFileLoaderVtbl;
  922. interface IDWriteLocalFontFileLoader {
  923. CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl;
  924. };
  925. #ifdef COBJMACROS
  926. #ifndef WIDL_C_INLINE_WRAPPERS
  927. /*** IUnknown methods ***/
  928. #define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  929. #define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  930. #define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  931. /*** IDWriteFontFileLoader methods ***/
  932. #define IDWriteLocalFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  933. /*** IDWriteLocalFontFileLoader methods ***/
  934. #define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,key,key_size,length) (This)->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length)
  935. #define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,key,key_size,path,length) (This)->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length)
  936. #define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,key,key_size,writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime)
  937. #else
  938. /*** IUnknown methods ***/
  939. static FORCEINLINE HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This,REFIID riid,void **ppvObject) {
  940. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  941. }
  942. static FORCEINLINE ULONG IDWriteLocalFontFileLoader_AddRef(IDWriteLocalFontFileLoader* This) {
  943. return This->lpVtbl->AddRef(This);
  944. }
  945. static FORCEINLINE ULONG IDWriteLocalFontFileLoader_Release(IDWriteLocalFontFileLoader* This) {
  946. return This->lpVtbl->Release(This);
  947. }
  948. /*** IDWriteFontFileLoader methods ***/
  949. static FORCEINLINE HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  950. return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  951. }
  952. /*** IDWriteLocalFontFileLoader methods ***/
  953. static FORCEINLINE HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,UINT32 *length) {
  954. return This->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length);
  955. }
  956. static FORCEINLINE HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,WCHAR *path,UINT32 length) {
  957. return This->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length);
  958. }
  959. static FORCEINLINE HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,FILETIME *writetime) {
  960. return This->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime);
  961. }
  962. #endif
  963. #endif
  964. #endif
  965. #endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */
  966. /*****************************************************************************
  967. * IDWriteFontFile interface
  968. */
  969. #ifndef __IDWriteFontFile_INTERFACE_DEFINED__
  970. #define __IDWriteFontFile_INTERFACE_DEFINED__
  971. DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0);
  972. #if defined(__cplusplus) && !defined(CINTERFACE)
  973. MIDL_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0")
  974. IDWriteFontFile : public IUnknown
  975. {
  976. virtual HRESULT STDMETHODCALLTYPE GetReferenceKey(
  977. const void **key,
  978. UINT32 *key_size) = 0;
  979. virtual HRESULT STDMETHODCALLTYPE GetLoader(
  980. IDWriteFontFileLoader **loader) = 0;
  981. virtual HRESULT STDMETHODCALLTYPE Analyze(
  982. WINBOOL *is_supported_fonttype,
  983. DWRITE_FONT_FILE_TYPE *file_type,
  984. DWRITE_FONT_FACE_TYPE *face_type,
  985. UINT32 *faces_num) = 0;
  986. };
  987. #ifdef __CRT_UUID_DECL
  988. __CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0)
  989. #endif
  990. #else
  991. typedef struct IDWriteFontFileVtbl {
  992. BEGIN_INTERFACE
  993. /*** IUnknown methods ***/
  994. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  995. IDWriteFontFile *This,
  996. REFIID riid,
  997. void **ppvObject);
  998. ULONG (STDMETHODCALLTYPE *AddRef)(
  999. IDWriteFontFile *This);
  1000. ULONG (STDMETHODCALLTYPE *Release)(
  1001. IDWriteFontFile *This);
  1002. /*** IDWriteFontFile methods ***/
  1003. HRESULT (STDMETHODCALLTYPE *GetReferenceKey)(
  1004. IDWriteFontFile *This,
  1005. const void **key,
  1006. UINT32 *key_size);
  1007. HRESULT (STDMETHODCALLTYPE *GetLoader)(
  1008. IDWriteFontFile *This,
  1009. IDWriteFontFileLoader **loader);
  1010. HRESULT (STDMETHODCALLTYPE *Analyze)(
  1011. IDWriteFontFile *This,
  1012. WINBOOL *is_supported_fonttype,
  1013. DWRITE_FONT_FILE_TYPE *file_type,
  1014. DWRITE_FONT_FACE_TYPE *face_type,
  1015. UINT32 *faces_num);
  1016. END_INTERFACE
  1017. } IDWriteFontFileVtbl;
  1018. interface IDWriteFontFile {
  1019. CONST_VTBL IDWriteFontFileVtbl* lpVtbl;
  1020. };
  1021. #ifdef COBJMACROS
  1022. #ifndef WIDL_C_INLINE_WRAPPERS
  1023. /*** IUnknown methods ***/
  1024. #define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1025. #define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This)
  1026. #define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This)
  1027. /*** IDWriteFontFile methods ***/
  1028. #define IDWriteFontFile_GetReferenceKey(This,key,key_size) (This)->lpVtbl->GetReferenceKey(This,key,key_size)
  1029. #define IDWriteFontFile_GetLoader(This,loader) (This)->lpVtbl->GetLoader(This,loader)
  1030. #define IDWriteFontFile_Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) (This)->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num)
  1031. #else
  1032. /*** IUnknown methods ***/
  1033. static FORCEINLINE HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This,REFIID riid,void **ppvObject) {
  1034. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1035. }
  1036. static FORCEINLINE ULONG IDWriteFontFile_AddRef(IDWriteFontFile* This) {
  1037. return This->lpVtbl->AddRef(This);
  1038. }
  1039. static FORCEINLINE ULONG IDWriteFontFile_Release(IDWriteFontFile* This) {
  1040. return This->lpVtbl->Release(This);
  1041. }
  1042. /*** IDWriteFontFile methods ***/
  1043. static FORCEINLINE HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This,const void **key,UINT32 *key_size) {
  1044. return This->lpVtbl->GetReferenceKey(This,key,key_size);
  1045. }
  1046. static FORCEINLINE HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This,IDWriteFontFileLoader **loader) {
  1047. return This->lpVtbl->GetLoader(This,loader);
  1048. }
  1049. static FORCEINLINE HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This,WINBOOL *is_supported_fonttype,DWRITE_FONT_FILE_TYPE *file_type,DWRITE_FONT_FACE_TYPE *face_type,UINT32 *faces_num) {
  1050. return This->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num);
  1051. }
  1052. #endif
  1053. #endif
  1054. #endif
  1055. #endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */
  1056. /*****************************************************************************
  1057. * IDWriteFontFileEnumerator interface
  1058. */
  1059. #ifndef __IDWriteFontFileEnumerator_INTERFACE_DEFINED__
  1060. #define __IDWriteFontFileEnumerator_INTERFACE_DEFINED__
  1061. DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c);
  1062. #if defined(__cplusplus) && !defined(CINTERFACE)
  1063. MIDL_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c")
  1064. IDWriteFontFileEnumerator : public IUnknown
  1065. {
  1066. virtual HRESULT STDMETHODCALLTYPE MoveNext(
  1067. WINBOOL *has_current_file) = 0;
  1068. virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile(
  1069. IDWriteFontFile **font_file) = 0;
  1070. };
  1071. #ifdef __CRT_UUID_DECL
  1072. __CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c)
  1073. #endif
  1074. #else
  1075. typedef struct IDWriteFontFileEnumeratorVtbl {
  1076. BEGIN_INTERFACE
  1077. /*** IUnknown methods ***/
  1078. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1079. IDWriteFontFileEnumerator *This,
  1080. REFIID riid,
  1081. void **ppvObject);
  1082. ULONG (STDMETHODCALLTYPE *AddRef)(
  1083. IDWriteFontFileEnumerator *This);
  1084. ULONG (STDMETHODCALLTYPE *Release)(
  1085. IDWriteFontFileEnumerator *This);
  1086. /*** IDWriteFontFileEnumerator methods ***/
  1087. HRESULT (STDMETHODCALLTYPE *MoveNext)(
  1088. IDWriteFontFileEnumerator *This,
  1089. WINBOOL *has_current_file);
  1090. HRESULT (STDMETHODCALLTYPE *GetCurrentFontFile)(
  1091. IDWriteFontFileEnumerator *This,
  1092. IDWriteFontFile **font_file);
  1093. END_INTERFACE
  1094. } IDWriteFontFileEnumeratorVtbl;
  1095. interface IDWriteFontFileEnumerator {
  1096. CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl;
  1097. };
  1098. #ifdef COBJMACROS
  1099. #ifndef WIDL_C_INLINE_WRAPPERS
  1100. /*** IUnknown methods ***/
  1101. #define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1102. #define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
  1103. #define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This)
  1104. /*** IDWriteFontFileEnumerator methods ***/
  1105. #define IDWriteFontFileEnumerator_MoveNext(This,has_current_file) (This)->lpVtbl->MoveNext(This,has_current_file)
  1106. #define IDWriteFontFileEnumerator_GetCurrentFontFile(This,font_file) (This)->lpVtbl->GetCurrentFontFile(This,font_file)
  1107. #else
  1108. /*** IUnknown methods ***/
  1109. static FORCEINLINE HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This,REFIID riid,void **ppvObject) {
  1110. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1111. }
  1112. static FORCEINLINE ULONG IDWriteFontFileEnumerator_AddRef(IDWriteFontFileEnumerator* This) {
  1113. return This->lpVtbl->AddRef(This);
  1114. }
  1115. static FORCEINLINE ULONG IDWriteFontFileEnumerator_Release(IDWriteFontFileEnumerator* This) {
  1116. return This->lpVtbl->Release(This);
  1117. }
  1118. /*** IDWriteFontFileEnumerator methods ***/
  1119. static FORCEINLINE HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This,WINBOOL *has_current_file) {
  1120. return This->lpVtbl->MoveNext(This,has_current_file);
  1121. }
  1122. static FORCEINLINE HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This,IDWriteFontFile **font_file) {
  1123. return This->lpVtbl->GetCurrentFontFile(This,font_file);
  1124. }
  1125. #endif
  1126. #endif
  1127. #endif
  1128. #endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */
  1129. /*****************************************************************************
  1130. * IDWriteFontCollectionLoader interface
  1131. */
  1132. #ifndef __IDWriteFontCollectionLoader_INTERFACE_DEFINED__
  1133. #define __IDWriteFontCollectionLoader_INTERFACE_DEFINED__
  1134. DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68);
  1135. #if defined(__cplusplus) && !defined(CINTERFACE)
  1136. MIDL_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468")
  1137. IDWriteFontCollectionLoader : public IUnknown
  1138. {
  1139. virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey(
  1140. IDWriteFactory *factory,
  1141. const void *key,
  1142. UINT32 key_size,
  1143. IDWriteFontFileEnumerator **enumerator) = 0;
  1144. };
  1145. #ifdef __CRT_UUID_DECL
  1146. __CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68)
  1147. #endif
  1148. #else
  1149. typedef struct IDWriteFontCollectionLoaderVtbl {
  1150. BEGIN_INTERFACE
  1151. /*** IUnknown methods ***/
  1152. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1153. IDWriteFontCollectionLoader *This,
  1154. REFIID riid,
  1155. void **ppvObject);
  1156. ULONG (STDMETHODCALLTYPE *AddRef)(
  1157. IDWriteFontCollectionLoader *This);
  1158. ULONG (STDMETHODCALLTYPE *Release)(
  1159. IDWriteFontCollectionLoader *This);
  1160. /*** IDWriteFontCollectionLoader methods ***/
  1161. HRESULT (STDMETHODCALLTYPE *CreateEnumeratorFromKey)(
  1162. IDWriteFontCollectionLoader *This,
  1163. IDWriteFactory *factory,
  1164. const void *key,
  1165. UINT32 key_size,
  1166. IDWriteFontFileEnumerator **enumerator);
  1167. END_INTERFACE
  1168. } IDWriteFontCollectionLoaderVtbl;
  1169. interface IDWriteFontCollectionLoader {
  1170. CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl;
  1171. };
  1172. #ifdef COBJMACROS
  1173. #ifndef WIDL_C_INLINE_WRAPPERS
  1174. /*** IUnknown methods ***/
  1175. #define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1176. #define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  1177. #define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This)
  1178. /*** IDWriteFontCollectionLoader methods ***/
  1179. #define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator)
  1180. #else
  1181. /*** IUnknown methods ***/
  1182. static FORCEINLINE HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This,REFIID riid,void **ppvObject) {
  1183. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1184. }
  1185. static FORCEINLINE ULONG IDWriteFontCollectionLoader_AddRef(IDWriteFontCollectionLoader* This) {
  1186. return This->lpVtbl->AddRef(This);
  1187. }
  1188. static FORCEINLINE ULONG IDWriteFontCollectionLoader_Release(IDWriteFontCollectionLoader* This) {
  1189. return This->lpVtbl->Release(This);
  1190. }
  1191. /*** IDWriteFontCollectionLoader methods ***/
  1192. static FORCEINLINE HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This,IDWriteFactory *factory,const void *key,UINT32 key_size,IDWriteFontFileEnumerator **enumerator) {
  1193. return This->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator);
  1194. }
  1195. #endif
  1196. #endif
  1197. #endif
  1198. #endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */
  1199. /*****************************************************************************
  1200. * IDWriteLocalizedStrings interface
  1201. */
  1202. #ifndef __IDWriteLocalizedStrings_INTERFACE_DEFINED__
  1203. #define __IDWriteLocalizedStrings_INTERFACE_DEFINED__
  1204. DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71);
  1205. #if defined(__cplusplus) && !defined(CINTERFACE)
  1206. MIDL_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771")
  1207. IDWriteLocalizedStrings : public IUnknown
  1208. {
  1209. virtual UINT32 STDMETHODCALLTYPE GetCount(
  1210. ) = 0;
  1211. virtual HRESULT STDMETHODCALLTYPE FindLocaleName(
  1212. const WCHAR *locale_name,
  1213. UINT32 *index,
  1214. WINBOOL *exists) = 0;
  1215. virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
  1216. UINT32 index,
  1217. UINT32 *length) = 0;
  1218. virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
  1219. UINT32 index,
  1220. WCHAR *locale_name,
  1221. UINT32 size) = 0;
  1222. virtual HRESULT STDMETHODCALLTYPE GetStringLength(
  1223. UINT32 index,
  1224. UINT32 *length) = 0;
  1225. virtual HRESULT STDMETHODCALLTYPE GetString(
  1226. UINT32 index,
  1227. WCHAR *buffer,
  1228. UINT32 size) = 0;
  1229. };
  1230. #ifdef __CRT_UUID_DECL
  1231. __CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71)
  1232. #endif
  1233. #else
  1234. typedef struct IDWriteLocalizedStringsVtbl {
  1235. BEGIN_INTERFACE
  1236. /*** IUnknown methods ***/
  1237. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1238. IDWriteLocalizedStrings *This,
  1239. REFIID riid,
  1240. void **ppvObject);
  1241. ULONG (STDMETHODCALLTYPE *AddRef)(
  1242. IDWriteLocalizedStrings *This);
  1243. ULONG (STDMETHODCALLTYPE *Release)(
  1244. IDWriteLocalizedStrings *This);
  1245. /*** IDWriteLocalizedStrings methods ***/
  1246. UINT32 (STDMETHODCALLTYPE *GetCount)(
  1247. IDWriteLocalizedStrings *This);
  1248. HRESULT (STDMETHODCALLTYPE *FindLocaleName)(
  1249. IDWriteLocalizedStrings *This,
  1250. const WCHAR *locale_name,
  1251. UINT32 *index,
  1252. WINBOOL *exists);
  1253. HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)(
  1254. IDWriteLocalizedStrings *This,
  1255. UINT32 index,
  1256. UINT32 *length);
  1257. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  1258. IDWriteLocalizedStrings *This,
  1259. UINT32 index,
  1260. WCHAR *locale_name,
  1261. UINT32 size);
  1262. HRESULT (STDMETHODCALLTYPE *GetStringLength)(
  1263. IDWriteLocalizedStrings *This,
  1264. UINT32 index,
  1265. UINT32 *length);
  1266. HRESULT (STDMETHODCALLTYPE *GetString)(
  1267. IDWriteLocalizedStrings *This,
  1268. UINT32 index,
  1269. WCHAR *buffer,
  1270. UINT32 size);
  1271. END_INTERFACE
  1272. } IDWriteLocalizedStringsVtbl;
  1273. interface IDWriteLocalizedStrings {
  1274. CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl;
  1275. };
  1276. #ifdef COBJMACROS
  1277. #ifndef WIDL_C_INLINE_WRAPPERS
  1278. /*** IUnknown methods ***/
  1279. #define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1280. #define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This)
  1281. #define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This)
  1282. /*** IDWriteLocalizedStrings methods ***/
  1283. #define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This)
  1284. #define IDWriteLocalizedStrings_FindLocaleName(This,locale_name,index,exists) (This)->lpVtbl->FindLocaleName(This,locale_name,index,exists)
  1285. #define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
  1286. #define IDWriteLocalizedStrings_GetLocaleName(This,index,locale_name,size) (This)->lpVtbl->GetLocaleName(This,index,locale_name,size)
  1287. #define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
  1288. #define IDWriteLocalizedStrings_GetString(This,index,buffer,size) (This)->lpVtbl->GetString(This,index,buffer,size)
  1289. #else
  1290. /*** IUnknown methods ***/
  1291. static FORCEINLINE HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This,REFIID riid,void **ppvObject) {
  1292. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1293. }
  1294. static FORCEINLINE ULONG IDWriteLocalizedStrings_AddRef(IDWriteLocalizedStrings* This) {
  1295. return This->lpVtbl->AddRef(This);
  1296. }
  1297. static FORCEINLINE ULONG IDWriteLocalizedStrings_Release(IDWriteLocalizedStrings* This) {
  1298. return This->lpVtbl->Release(This);
  1299. }
  1300. /*** IDWriteLocalizedStrings methods ***/
  1301. static FORCEINLINE UINT32 IDWriteLocalizedStrings_GetCount(IDWriteLocalizedStrings* This) {
  1302. return This->lpVtbl->GetCount(This);
  1303. }
  1304. static FORCEINLINE HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This,const WCHAR *locale_name,UINT32 *index,WINBOOL *exists) {
  1305. return This->lpVtbl->FindLocaleName(This,locale_name,index,exists);
  1306. }
  1307. static FORCEINLINE HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) {
  1308. return This->lpVtbl->GetLocaleNameLength(This,index,length);
  1309. }
  1310. static FORCEINLINE HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *locale_name,UINT32 size) {
  1311. return This->lpVtbl->GetLocaleName(This,index,locale_name,size);
  1312. }
  1313. static FORCEINLINE HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) {
  1314. return This->lpVtbl->GetStringLength(This,index,length);
  1315. }
  1316. static FORCEINLINE HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *buffer,UINT32 size) {
  1317. return This->lpVtbl->GetString(This,index,buffer,size);
  1318. }
  1319. #endif
  1320. #endif
  1321. #endif
  1322. #endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */
  1323. /*****************************************************************************
  1324. * IDWriteRenderingParams interface
  1325. */
  1326. #ifndef __IDWriteRenderingParams_INTERFACE_DEFINED__
  1327. #define __IDWriteRenderingParams_INTERFACE_DEFINED__
  1328. DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75);
  1329. #if defined(__cplusplus) && !defined(CINTERFACE)
  1330. MIDL_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75")
  1331. IDWriteRenderingParams : public IUnknown
  1332. {
  1333. virtual FLOAT STDMETHODCALLTYPE GetGamma(
  1334. ) = 0;
  1335. virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast(
  1336. ) = 0;
  1337. virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel(
  1338. ) = 0;
  1339. virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry(
  1340. ) = 0;
  1341. virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode(
  1342. ) = 0;
  1343. };
  1344. #ifdef __CRT_UUID_DECL
  1345. __CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75)
  1346. #endif
  1347. #else
  1348. typedef struct IDWriteRenderingParamsVtbl {
  1349. BEGIN_INTERFACE
  1350. /*** IUnknown methods ***/
  1351. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1352. IDWriteRenderingParams *This,
  1353. REFIID riid,
  1354. void **ppvObject);
  1355. ULONG (STDMETHODCALLTYPE *AddRef)(
  1356. IDWriteRenderingParams *This);
  1357. ULONG (STDMETHODCALLTYPE *Release)(
  1358. IDWriteRenderingParams *This);
  1359. /*** IDWriteRenderingParams methods ***/
  1360. FLOAT (STDMETHODCALLTYPE *GetGamma)(
  1361. IDWriteRenderingParams *This);
  1362. FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
  1363. IDWriteRenderingParams *This);
  1364. FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
  1365. IDWriteRenderingParams *This);
  1366. DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
  1367. IDWriteRenderingParams *This);
  1368. DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
  1369. IDWriteRenderingParams *This);
  1370. END_INTERFACE
  1371. } IDWriteRenderingParamsVtbl;
  1372. interface IDWriteRenderingParams {
  1373. CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl;
  1374. };
  1375. #ifdef COBJMACROS
  1376. #ifndef WIDL_C_INLINE_WRAPPERS
  1377. /*** IUnknown methods ***/
  1378. #define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1379. #define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This)
  1380. #define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This)
  1381. /*** IDWriteRenderingParams methods ***/
  1382. #define IDWriteRenderingParams_GetGamma(This) (This)->lpVtbl->GetGamma(This)
  1383. #define IDWriteRenderingParams_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
  1384. #define IDWriteRenderingParams_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
  1385. #define IDWriteRenderingParams_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
  1386. #define IDWriteRenderingParams_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
  1387. #else
  1388. /*** IUnknown methods ***/
  1389. static FORCEINLINE HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This,REFIID riid,void **ppvObject) {
  1390. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1391. }
  1392. static FORCEINLINE ULONG IDWriteRenderingParams_AddRef(IDWriteRenderingParams* This) {
  1393. return This->lpVtbl->AddRef(This);
  1394. }
  1395. static FORCEINLINE ULONG IDWriteRenderingParams_Release(IDWriteRenderingParams* This) {
  1396. return This->lpVtbl->Release(This);
  1397. }
  1398. /*** IDWriteRenderingParams methods ***/
  1399. static FORCEINLINE FLOAT IDWriteRenderingParams_GetGamma(IDWriteRenderingParams* This) {
  1400. return This->lpVtbl->GetGamma(This);
  1401. }
  1402. static FORCEINLINE FLOAT IDWriteRenderingParams_GetEnhancedContrast(IDWriteRenderingParams* This) {
  1403. return This->lpVtbl->GetEnhancedContrast(This);
  1404. }
  1405. static FORCEINLINE FLOAT IDWriteRenderingParams_GetClearTypeLevel(IDWriteRenderingParams* This) {
  1406. return This->lpVtbl->GetClearTypeLevel(This);
  1407. }
  1408. static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams_GetPixelGeometry(IDWriteRenderingParams* This) {
  1409. return This->lpVtbl->GetPixelGeometry(This);
  1410. }
  1411. static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWriteRenderingParams* This) {
  1412. return This->lpVtbl->GetRenderingMode(This);
  1413. }
  1414. #endif
  1415. #endif
  1416. #endif
  1417. #endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */
  1418. /*****************************************************************************
  1419. * IDWriteFontFace interface
  1420. */
  1421. #ifndef __IDWriteFontFace_INTERFACE_DEFINED__
  1422. #define __IDWriteFontFace_INTERFACE_DEFINED__
  1423. DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49);
  1424. #if defined(__cplusplus) && !defined(CINTERFACE)
  1425. MIDL_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849")
  1426. IDWriteFontFace : public IUnknown
  1427. {
  1428. virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType(
  1429. ) = 0;
  1430. virtual HRESULT STDMETHODCALLTYPE GetFiles(
  1431. UINT32 *number_of_files,
  1432. IDWriteFontFile **fontfiles) = 0;
  1433. virtual UINT32 STDMETHODCALLTYPE GetIndex(
  1434. ) = 0;
  1435. virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
  1436. ) = 0;
  1437. virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont(
  1438. ) = 0;
  1439. virtual void STDMETHODCALLTYPE GetMetrics(
  1440. DWRITE_FONT_METRICS *metrics) = 0;
  1441. virtual UINT16 STDMETHODCALLTYPE GetGlyphCount(
  1442. ) = 0;
  1443. virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics(
  1444. const UINT16 *glyph_indices,
  1445. UINT32 glyph_count,
  1446. DWRITE_GLYPH_METRICS *metrics,
  1447. WINBOOL is_sideways = FALSE) = 0;
  1448. virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices(
  1449. const UINT32 *codepoints,
  1450. UINT32 count,
  1451. UINT16 *glyph_indices) = 0;
  1452. virtual HRESULT STDMETHODCALLTYPE TryGetFontTable(
  1453. UINT32 table_tag,
  1454. const void **table_data,
  1455. UINT32 *table_size,
  1456. void **context,
  1457. WINBOOL *exists) = 0;
  1458. virtual void STDMETHODCALLTYPE ReleaseFontTable(
  1459. void *table_context) = 0;
  1460. virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline(
  1461. FLOAT emSize,
  1462. const UINT16 *glyph_indices,
  1463. const FLOAT *glyph_advances,
  1464. const DWRITE_GLYPH_OFFSET *glyph_offsets,
  1465. UINT32 glyph_count,
  1466. WINBOOL is_sideways,
  1467. WINBOOL is_rtl,
  1468. IDWriteGeometrySink *geometrysink) = 0;
  1469. virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
  1470. FLOAT emSize,
  1471. FLOAT pixels_per_dip,
  1472. DWRITE_MEASURING_MODE mode,
  1473. IDWriteRenderingParams *params,
  1474. DWRITE_RENDERING_MODE *rendering_mode) = 0;
  1475. virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics(
  1476. FLOAT emSize,
  1477. FLOAT pixels_per_dip,
  1478. const DWRITE_MATRIX *transform,
  1479. DWRITE_FONT_METRICS *metrics) = 0;
  1480. virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics(
  1481. FLOAT emSize,
  1482. FLOAT pixels_per_dip,
  1483. const DWRITE_MATRIX *transform,
  1484. WINBOOL use_gdi_natural,
  1485. const UINT16 *glyph_indices,
  1486. UINT32 glyph_count,
  1487. DWRITE_GLYPH_METRICS *metrics,
  1488. WINBOOL is_sideways = FALSE) = 0;
  1489. };
  1490. #ifdef __CRT_UUID_DECL
  1491. __CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49)
  1492. #endif
  1493. #else
  1494. typedef struct IDWriteFontFaceVtbl {
  1495. BEGIN_INTERFACE
  1496. /*** IUnknown methods ***/
  1497. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1498. IDWriteFontFace *This,
  1499. REFIID riid,
  1500. void **ppvObject);
  1501. ULONG (STDMETHODCALLTYPE *AddRef)(
  1502. IDWriteFontFace *This);
  1503. ULONG (STDMETHODCALLTYPE *Release)(
  1504. IDWriteFontFace *This);
  1505. /*** IDWriteFontFace methods ***/
  1506. DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
  1507. IDWriteFontFace *This);
  1508. HRESULT (STDMETHODCALLTYPE *GetFiles)(
  1509. IDWriteFontFace *This,
  1510. UINT32 *number_of_files,
  1511. IDWriteFontFile **fontfiles);
  1512. UINT32 (STDMETHODCALLTYPE *GetIndex)(
  1513. IDWriteFontFace *This);
  1514. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  1515. IDWriteFontFace *This);
  1516. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  1517. IDWriteFontFace *This);
  1518. void (STDMETHODCALLTYPE *GetMetrics)(
  1519. IDWriteFontFace *This,
  1520. DWRITE_FONT_METRICS *metrics);
  1521. UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
  1522. IDWriteFontFace *This);
  1523. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
  1524. IDWriteFontFace *This,
  1525. const UINT16 *glyph_indices,
  1526. UINT32 glyph_count,
  1527. DWRITE_GLYPH_METRICS *metrics,
  1528. WINBOOL is_sideways);
  1529. HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
  1530. IDWriteFontFace *This,
  1531. const UINT32 *codepoints,
  1532. UINT32 count,
  1533. UINT16 *glyph_indices);
  1534. HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
  1535. IDWriteFontFace *This,
  1536. UINT32 table_tag,
  1537. const void **table_data,
  1538. UINT32 *table_size,
  1539. void **context,
  1540. WINBOOL *exists);
  1541. void (STDMETHODCALLTYPE *ReleaseFontTable)(
  1542. IDWriteFontFace *This,
  1543. void *table_context);
  1544. HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
  1545. IDWriteFontFace *This,
  1546. FLOAT emSize,
  1547. const UINT16 *glyph_indices,
  1548. const FLOAT *glyph_advances,
  1549. const DWRITE_GLYPH_OFFSET *glyph_offsets,
  1550. UINT32 glyph_count,
  1551. WINBOOL is_sideways,
  1552. WINBOOL is_rtl,
  1553. IDWriteGeometrySink *geometrysink);
  1554. HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
  1555. IDWriteFontFace *This,
  1556. FLOAT emSize,
  1557. FLOAT pixels_per_dip,
  1558. DWRITE_MEASURING_MODE mode,
  1559. IDWriteRenderingParams *params,
  1560. DWRITE_RENDERING_MODE *rendering_mode);
  1561. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
  1562. IDWriteFontFace *This,
  1563. FLOAT emSize,
  1564. FLOAT pixels_per_dip,
  1565. const DWRITE_MATRIX *transform,
  1566. DWRITE_FONT_METRICS *metrics);
  1567. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
  1568. IDWriteFontFace *This,
  1569. FLOAT emSize,
  1570. FLOAT pixels_per_dip,
  1571. const DWRITE_MATRIX *transform,
  1572. WINBOOL use_gdi_natural,
  1573. const UINT16 *glyph_indices,
  1574. UINT32 glyph_count,
  1575. DWRITE_GLYPH_METRICS *metrics,
  1576. WINBOOL is_sideways);
  1577. END_INTERFACE
  1578. } IDWriteFontFaceVtbl;
  1579. interface IDWriteFontFace {
  1580. CONST_VTBL IDWriteFontFaceVtbl* lpVtbl;
  1581. };
  1582. #ifdef COBJMACROS
  1583. #ifndef WIDL_C_INLINE_WRAPPERS
  1584. /*** IUnknown methods ***/
  1585. #define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1586. #define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This)
  1587. #define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This)
  1588. /*** IDWriteFontFace methods ***/
  1589. #define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This)
  1590. #define IDWriteFontFace_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  1591. #define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  1592. #define IDWriteFontFace_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  1593. #define IDWriteFontFace_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  1594. #define IDWriteFontFace_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
  1595. #define IDWriteFontFace_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  1596. #define IDWriteFontFace_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  1597. #define IDWriteFontFace_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  1598. #define IDWriteFontFace_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  1599. #define IDWriteFontFace_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  1600. #define IDWriteFontFace_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)
  1601. #define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode)
  1602. #define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics)
  1603. #define IDWriteFontFace_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)
  1604. #else
  1605. /*** IUnknown methods ***/
  1606. static FORCEINLINE HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This,REFIID riid,void **ppvObject) {
  1607. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1608. }
  1609. static FORCEINLINE ULONG IDWriteFontFace_AddRef(IDWriteFontFace* This) {
  1610. return This->lpVtbl->AddRef(This);
  1611. }
  1612. static FORCEINLINE ULONG IDWriteFontFace_Release(IDWriteFontFace* This) {
  1613. return This->lpVtbl->Release(This);
  1614. }
  1615. /*** IDWriteFontFace methods ***/
  1616. static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace_GetType(IDWriteFontFace* This) {
  1617. return This->lpVtbl->GetType(This);
  1618. }
  1619. static FORCEINLINE HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  1620. return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  1621. }
  1622. static FORCEINLINE UINT32 IDWriteFontFace_GetIndex(IDWriteFontFace* This) {
  1623. return This->lpVtbl->GetIndex(This);
  1624. }
  1625. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace_GetSimulations(IDWriteFontFace* This) {
  1626. return This->lpVtbl->GetSimulations(This);
  1627. }
  1628. static FORCEINLINE WINBOOL IDWriteFontFace_IsSymbolFont(IDWriteFontFace* This) {
  1629. return This->lpVtbl->IsSymbolFont(This);
  1630. }
  1631. static FORCEINLINE void IDWriteFontFace_GetMetrics(IDWriteFontFace* This,DWRITE_FONT_METRICS *metrics) {
  1632. This->lpVtbl->GetMetrics(This,metrics);
  1633. }
  1634. static FORCEINLINE UINT16 IDWriteFontFace_GetGlyphCount(IDWriteFontFace* This) {
  1635. return This->lpVtbl->GetGlyphCount(This);
  1636. }
  1637. static FORCEINLINE HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  1638. return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  1639. }
  1640. static FORCEINLINE HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  1641. return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  1642. }
  1643. static FORCEINLINE HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  1644. return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  1645. }
  1646. static FORCEINLINE void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This,void *table_context) {
  1647. This->lpVtbl->ReleaseFontTable(This,table_context);
  1648. }
  1649. static FORCEINLINE HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* 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) {
  1650. return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  1651. }
  1652. static FORCEINLINE HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,DWRITE_MEASURING_MODE mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *rendering_mode) {
  1653. return This->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode);
  1654. }
  1655. static FORCEINLINE HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS *metrics) {
  1656. return This->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics);
  1657. }
  1658. static FORCEINLINE HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* 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) {
  1659. return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  1660. }
  1661. #endif
  1662. #endif
  1663. #endif
  1664. #endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */
  1665. /*****************************************************************************
  1666. * IDWriteFont interface
  1667. */
  1668. #ifndef __IDWriteFont_INTERFACE_DEFINED__
  1669. #define __IDWriteFont_INTERFACE_DEFINED__
  1670. DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37);
  1671. #if defined(__cplusplus) && !defined(CINTERFACE)
  1672. MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737")
  1673. IDWriteFont : public IUnknown
  1674. {
  1675. virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
  1676. IDWriteFontFamily **family) = 0;
  1677. virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight(
  1678. ) = 0;
  1679. virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch(
  1680. ) = 0;
  1681. virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle(
  1682. ) = 0;
  1683. virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont(
  1684. ) = 0;
  1685. virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
  1686. IDWriteLocalizedStrings **names) = 0;
  1687. virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings(
  1688. DWRITE_INFORMATIONAL_STRING_ID stringid,
  1689. IDWriteLocalizedStrings **strings,
  1690. WINBOOL *exists) = 0;
  1691. virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
  1692. ) = 0;
  1693. virtual void STDMETHODCALLTYPE GetMetrics(
  1694. DWRITE_FONT_METRICS *metrics) = 0;
  1695. virtual HRESULT STDMETHODCALLTYPE HasCharacter(
  1696. UINT32 value,
  1697. WINBOOL *exists) = 0;
  1698. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  1699. IDWriteFontFace **face) = 0;
  1700. };
  1701. #ifdef __CRT_UUID_DECL
  1702. __CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37)
  1703. #endif
  1704. #else
  1705. typedef struct IDWriteFontVtbl {
  1706. BEGIN_INTERFACE
  1707. /*** IUnknown methods ***/
  1708. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1709. IDWriteFont *This,
  1710. REFIID riid,
  1711. void **ppvObject);
  1712. ULONG (STDMETHODCALLTYPE *AddRef)(
  1713. IDWriteFont *This);
  1714. ULONG (STDMETHODCALLTYPE *Release)(
  1715. IDWriteFont *This);
  1716. /*** IDWriteFont methods ***/
  1717. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  1718. IDWriteFont *This,
  1719. IDWriteFontFamily **family);
  1720. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  1721. IDWriteFont *This);
  1722. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  1723. IDWriteFont *This);
  1724. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  1725. IDWriteFont *This);
  1726. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  1727. IDWriteFont *This);
  1728. HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  1729. IDWriteFont *This,
  1730. IDWriteLocalizedStrings **names);
  1731. HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  1732. IDWriteFont *This,
  1733. DWRITE_INFORMATIONAL_STRING_ID stringid,
  1734. IDWriteLocalizedStrings **strings,
  1735. WINBOOL *exists);
  1736. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  1737. IDWriteFont *This);
  1738. void (STDMETHODCALLTYPE *GetMetrics)(
  1739. IDWriteFont *This,
  1740. DWRITE_FONT_METRICS *metrics);
  1741. HRESULT (STDMETHODCALLTYPE *HasCharacter)(
  1742. IDWriteFont *This,
  1743. UINT32 value,
  1744. WINBOOL *exists);
  1745. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  1746. IDWriteFont *This,
  1747. IDWriteFontFace **face);
  1748. END_INTERFACE
  1749. } IDWriteFontVtbl;
  1750. interface IDWriteFont {
  1751. CONST_VTBL IDWriteFontVtbl* lpVtbl;
  1752. };
  1753. #ifdef COBJMACROS
  1754. #ifndef WIDL_C_INLINE_WRAPPERS
  1755. /*** IUnknown methods ***/
  1756. #define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1757. #define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This)
  1758. #define IDWriteFont_Release(This) (This)->lpVtbl->Release(This)
  1759. /*** IDWriteFont methods ***/
  1760. #define IDWriteFont_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
  1761. #define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  1762. #define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  1763. #define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  1764. #define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  1765. #define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
  1766. #define IDWriteFont_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  1767. #define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  1768. #define IDWriteFont_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
  1769. #define IDWriteFont_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists)
  1770. #define IDWriteFont_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face)
  1771. #else
  1772. /*** IUnknown methods ***/
  1773. static FORCEINLINE HRESULT IDWriteFont_QueryInterface(IDWriteFont* This,REFIID riid,void **ppvObject) {
  1774. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1775. }
  1776. static FORCEINLINE ULONG IDWriteFont_AddRef(IDWriteFont* This) {
  1777. return This->lpVtbl->AddRef(This);
  1778. }
  1779. static FORCEINLINE ULONG IDWriteFont_Release(IDWriteFont* This) {
  1780. return This->lpVtbl->Release(This);
  1781. }
  1782. /*** IDWriteFont methods ***/
  1783. static FORCEINLINE HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This,IDWriteFontFamily **family) {
  1784. return This->lpVtbl->GetFontFamily(This,family);
  1785. }
  1786. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont_GetWeight(IDWriteFont* This) {
  1787. return This->lpVtbl->GetWeight(This);
  1788. }
  1789. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont_GetStretch(IDWriteFont* This) {
  1790. return This->lpVtbl->GetStretch(This);
  1791. }
  1792. static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont_GetStyle(IDWriteFont* This) {
  1793. return This->lpVtbl->GetStyle(This);
  1794. }
  1795. static FORCEINLINE WINBOOL IDWriteFont_IsSymbolFont(IDWriteFont* This) {
  1796. return This->lpVtbl->IsSymbolFont(This);
  1797. }
  1798. static FORCEINLINE HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This,IDWriteLocalizedStrings **names) {
  1799. return This->lpVtbl->GetFaceNames(This,names);
  1800. }
  1801. static FORCEINLINE HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  1802. return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  1803. }
  1804. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont_GetSimulations(IDWriteFont* This) {
  1805. return This->lpVtbl->GetSimulations(This);
  1806. }
  1807. static FORCEINLINE void IDWriteFont_GetMetrics(IDWriteFont* This,DWRITE_FONT_METRICS *metrics) {
  1808. This->lpVtbl->GetMetrics(This,metrics);
  1809. }
  1810. static FORCEINLINE HRESULT IDWriteFont_HasCharacter(IDWriteFont* This,UINT32 value,WINBOOL *exists) {
  1811. return This->lpVtbl->HasCharacter(This,value,exists);
  1812. }
  1813. static FORCEINLINE HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This,IDWriteFontFace **face) {
  1814. return This->lpVtbl->CreateFontFace(This,face);
  1815. }
  1816. #endif
  1817. #endif
  1818. #endif
  1819. #endif /* __IDWriteFont_INTERFACE_DEFINED__ */
  1820. /*****************************************************************************
  1821. * IDWriteFontList interface
  1822. */
  1823. #ifndef __IDWriteFontList_INTERFACE_DEFINED__
  1824. #define __IDWriteFontList_INTERFACE_DEFINED__
  1825. DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb);
  1826. #if defined(__cplusplus) && !defined(CINTERFACE)
  1827. MIDL_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb")
  1828. IDWriteFontList : public IUnknown
  1829. {
  1830. virtual HRESULT STDMETHODCALLTYPE GetFontCollection(
  1831. IDWriteFontCollection **collection) = 0;
  1832. virtual UINT32 STDMETHODCALLTYPE GetFontCount(
  1833. ) = 0;
  1834. virtual HRESULT STDMETHODCALLTYPE GetFont(
  1835. UINT32 index,
  1836. IDWriteFont **font) = 0;
  1837. };
  1838. #ifdef __CRT_UUID_DECL
  1839. __CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb)
  1840. #endif
  1841. #else
  1842. typedef struct IDWriteFontListVtbl {
  1843. BEGIN_INTERFACE
  1844. /*** IUnknown methods ***/
  1845. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1846. IDWriteFontList *This,
  1847. REFIID riid,
  1848. void **ppvObject);
  1849. ULONG (STDMETHODCALLTYPE *AddRef)(
  1850. IDWriteFontList *This);
  1851. ULONG (STDMETHODCALLTYPE *Release)(
  1852. IDWriteFontList *This);
  1853. /*** IDWriteFontList methods ***/
  1854. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  1855. IDWriteFontList *This,
  1856. IDWriteFontCollection **collection);
  1857. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  1858. IDWriteFontList *This);
  1859. HRESULT (STDMETHODCALLTYPE *GetFont)(
  1860. IDWriteFontList *This,
  1861. UINT32 index,
  1862. IDWriteFont **font);
  1863. END_INTERFACE
  1864. } IDWriteFontListVtbl;
  1865. interface IDWriteFontList {
  1866. CONST_VTBL IDWriteFontListVtbl* lpVtbl;
  1867. };
  1868. #ifdef COBJMACROS
  1869. #ifndef WIDL_C_INLINE_WRAPPERS
  1870. /*** IUnknown methods ***/
  1871. #define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1872. #define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This)
  1873. #define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This)
  1874. /*** IDWriteFontList methods ***/
  1875. #define IDWriteFontList_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  1876. #define IDWriteFontList_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  1877. #define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
  1878. #else
  1879. /*** IUnknown methods ***/
  1880. static FORCEINLINE HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This,REFIID riid,void **ppvObject) {
  1881. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1882. }
  1883. static FORCEINLINE ULONG IDWriteFontList_AddRef(IDWriteFontList* This) {
  1884. return This->lpVtbl->AddRef(This);
  1885. }
  1886. static FORCEINLINE ULONG IDWriteFontList_Release(IDWriteFontList* This) {
  1887. return This->lpVtbl->Release(This);
  1888. }
  1889. /*** IDWriteFontList methods ***/
  1890. static FORCEINLINE HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This,IDWriteFontCollection **collection) {
  1891. return This->lpVtbl->GetFontCollection(This,collection);
  1892. }
  1893. static FORCEINLINE UINT32 IDWriteFontList_GetFontCount(IDWriteFontList* This) {
  1894. return This->lpVtbl->GetFontCount(This);
  1895. }
  1896. static FORCEINLINE HRESULT IDWriteFontList_GetFont(IDWriteFontList* This,UINT32 index,IDWriteFont **font) {
  1897. return This->lpVtbl->GetFont(This,index,font);
  1898. }
  1899. #endif
  1900. #endif
  1901. #endif
  1902. #endif /* __IDWriteFontList_INTERFACE_DEFINED__ */
  1903. /*****************************************************************************
  1904. * IDWriteFontFamily interface
  1905. */
  1906. #ifndef __IDWriteFontFamily_INTERFACE_DEFINED__
  1907. #define __IDWriteFontFamily_INTERFACE_DEFINED__
  1908. DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd);
  1909. #if defined(__cplusplus) && !defined(CINTERFACE)
  1910. MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add")
  1911. IDWriteFontFamily : public IDWriteFontList
  1912. {
  1913. virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
  1914. IDWriteLocalizedStrings **names) = 0;
  1915. virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont(
  1916. DWRITE_FONT_WEIGHT weight,
  1917. DWRITE_FONT_STRETCH stretch,
  1918. DWRITE_FONT_STYLE style,
  1919. IDWriteFont **font) = 0;
  1920. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
  1921. DWRITE_FONT_WEIGHT weight,
  1922. DWRITE_FONT_STRETCH stretch,
  1923. DWRITE_FONT_STYLE style,
  1924. IDWriteFontList **fonts) = 0;
  1925. };
  1926. #ifdef __CRT_UUID_DECL
  1927. __CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd)
  1928. #endif
  1929. #else
  1930. typedef struct IDWriteFontFamilyVtbl {
  1931. BEGIN_INTERFACE
  1932. /*** IUnknown methods ***/
  1933. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1934. IDWriteFontFamily *This,
  1935. REFIID riid,
  1936. void **ppvObject);
  1937. ULONG (STDMETHODCALLTYPE *AddRef)(
  1938. IDWriteFontFamily *This);
  1939. ULONG (STDMETHODCALLTYPE *Release)(
  1940. IDWriteFontFamily *This);
  1941. /*** IDWriteFontList methods ***/
  1942. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  1943. IDWriteFontFamily *This,
  1944. IDWriteFontCollection **collection);
  1945. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  1946. IDWriteFontFamily *This);
  1947. HRESULT (STDMETHODCALLTYPE *GetFont)(
  1948. IDWriteFontFamily *This,
  1949. UINT32 index,
  1950. IDWriteFont **font);
  1951. /*** IDWriteFontFamily methods ***/
  1952. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  1953. IDWriteFontFamily *This,
  1954. IDWriteLocalizedStrings **names);
  1955. HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
  1956. IDWriteFontFamily *This,
  1957. DWRITE_FONT_WEIGHT weight,
  1958. DWRITE_FONT_STRETCH stretch,
  1959. DWRITE_FONT_STYLE style,
  1960. IDWriteFont **font);
  1961. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  1962. IDWriteFontFamily *This,
  1963. DWRITE_FONT_WEIGHT weight,
  1964. DWRITE_FONT_STRETCH stretch,
  1965. DWRITE_FONT_STYLE style,
  1966. IDWriteFontList **fonts);
  1967. END_INTERFACE
  1968. } IDWriteFontFamilyVtbl;
  1969. interface IDWriteFontFamily {
  1970. CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl;
  1971. };
  1972. #ifdef COBJMACROS
  1973. #ifndef WIDL_C_INLINE_WRAPPERS
  1974. /*** IUnknown methods ***/
  1975. #define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1976. #define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This)
  1977. #define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This)
  1978. /*** IDWriteFontList methods ***/
  1979. #define IDWriteFontFamily_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  1980. #define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  1981. #define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
  1982. /*** IDWriteFontFamily methods ***/
  1983. #define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  1984. #define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
  1985. #define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts)
  1986. #else
  1987. /*** IUnknown methods ***/
  1988. static FORCEINLINE HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This,REFIID riid,void **ppvObject) {
  1989. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1990. }
  1991. static FORCEINLINE ULONG IDWriteFontFamily_AddRef(IDWriteFontFamily* This) {
  1992. return This->lpVtbl->AddRef(This);
  1993. }
  1994. static FORCEINLINE ULONG IDWriteFontFamily_Release(IDWriteFontFamily* This) {
  1995. return This->lpVtbl->Release(This);
  1996. }
  1997. /*** IDWriteFontList methods ***/
  1998. static FORCEINLINE HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This,IDWriteFontCollection **collection) {
  1999. return This->lpVtbl->GetFontCollection(This,collection);
  2000. }
  2001. static FORCEINLINE UINT32 IDWriteFontFamily_GetFontCount(IDWriteFontFamily* This) {
  2002. return This->lpVtbl->GetFontCount(This);
  2003. }
  2004. static FORCEINLINE HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This,UINT32 index,IDWriteFont **font) {
  2005. return This->lpVtbl->GetFont(This,index,font);
  2006. }
  2007. /*** IDWriteFontFamily methods ***/
  2008. static FORCEINLINE HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This,IDWriteLocalizedStrings **names) {
  2009. return This->lpVtbl->GetFamilyNames(This,names);
  2010. }
  2011. static FORCEINLINE HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
  2012. return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
  2013. }
  2014. static FORCEINLINE HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) {
  2015. return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts);
  2016. }
  2017. #endif
  2018. #endif
  2019. #endif
  2020. #endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */
  2021. /*****************************************************************************
  2022. * IDWriteFontCollection interface
  2023. */
  2024. #ifndef __IDWriteFontCollection_INTERFACE_DEFINED__
  2025. #define __IDWriteFontCollection_INTERFACE_DEFINED__
  2026. DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc);
  2027. #if defined(__cplusplus) && !defined(CINTERFACE)
  2028. MIDL_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc")
  2029. IDWriteFontCollection : public IUnknown
  2030. {
  2031. virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount(
  2032. ) = 0;
  2033. virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
  2034. UINT32 index,
  2035. IDWriteFontFamily **family) = 0;
  2036. virtual HRESULT STDMETHODCALLTYPE FindFamilyName(
  2037. const WCHAR *name,
  2038. UINT32 *index,
  2039. WINBOOL *exists) = 0;
  2040. virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace(
  2041. IDWriteFontFace *face,
  2042. IDWriteFont **font) = 0;
  2043. };
  2044. #ifdef __CRT_UUID_DECL
  2045. __CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc)
  2046. #endif
  2047. #else
  2048. typedef struct IDWriteFontCollectionVtbl {
  2049. BEGIN_INTERFACE
  2050. /*** IUnknown methods ***/
  2051. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2052. IDWriteFontCollection *This,
  2053. REFIID riid,
  2054. void **ppvObject);
  2055. ULONG (STDMETHODCALLTYPE *AddRef)(
  2056. IDWriteFontCollection *This);
  2057. ULONG (STDMETHODCALLTYPE *Release)(
  2058. IDWriteFontCollection *This);
  2059. /*** IDWriteFontCollection methods ***/
  2060. UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
  2061. IDWriteFontCollection *This);
  2062. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  2063. IDWriteFontCollection *This,
  2064. UINT32 index,
  2065. IDWriteFontFamily **family);
  2066. HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
  2067. IDWriteFontCollection *This,
  2068. const WCHAR *name,
  2069. UINT32 *index,
  2070. WINBOOL *exists);
  2071. HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
  2072. IDWriteFontCollection *This,
  2073. IDWriteFontFace *face,
  2074. IDWriteFont **font);
  2075. END_INTERFACE
  2076. } IDWriteFontCollectionVtbl;
  2077. interface IDWriteFontCollection {
  2078. CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl;
  2079. };
  2080. #ifdef COBJMACROS
  2081. #ifndef WIDL_C_INLINE_WRAPPERS
  2082. /*** IUnknown methods ***/
  2083. #define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2084. #define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
  2085. #define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This)
  2086. /*** IDWriteFontCollection methods ***/
  2087. #define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
  2088. #define IDWriteFontCollection_GetFontFamily(This,index,family) (This)->lpVtbl->GetFontFamily(This,index,family)
  2089. #define IDWriteFontCollection_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
  2090. #define IDWriteFontCollection_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
  2091. #else
  2092. /*** IUnknown methods ***/
  2093. static FORCEINLINE HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This,REFIID riid,void **ppvObject) {
  2094. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2095. }
  2096. static FORCEINLINE ULONG IDWriteFontCollection_AddRef(IDWriteFontCollection* This) {
  2097. return This->lpVtbl->AddRef(This);
  2098. }
  2099. static FORCEINLINE ULONG IDWriteFontCollection_Release(IDWriteFontCollection* This) {
  2100. return This->lpVtbl->Release(This);
  2101. }
  2102. /*** IDWriteFontCollection methods ***/
  2103. static FORCEINLINE UINT32 IDWriteFontCollection_GetFontFamilyCount(IDWriteFontCollection* This) {
  2104. return This->lpVtbl->GetFontFamilyCount(This);
  2105. }
  2106. static FORCEINLINE HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This,UINT32 index,IDWriteFontFamily **family) {
  2107. return This->lpVtbl->GetFontFamily(This,index,family);
  2108. }
  2109. static FORCEINLINE HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
  2110. return This->lpVtbl->FindFamilyName(This,name,index,exists);
  2111. }
  2112. static FORCEINLINE HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This,IDWriteFontFace *face,IDWriteFont **font) {
  2113. return This->lpVtbl->GetFontFromFontFace(This,face,font);
  2114. }
  2115. #endif
  2116. #endif
  2117. #endif
  2118. #endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */
  2119. /*****************************************************************************
  2120. * IDWritePixelSnapping interface
  2121. */
  2122. #ifndef __IDWritePixelSnapping_INTERFACE_DEFINED__
  2123. #define __IDWritePixelSnapping_INTERFACE_DEFINED__
  2124. DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b);
  2125. #if defined(__cplusplus) && !defined(CINTERFACE)
  2126. MIDL_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b")
  2127. IDWritePixelSnapping : public IUnknown
  2128. {
  2129. virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled(
  2130. void *client_drawingcontext,
  2131. WINBOOL *disabled) = 0;
  2132. virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform(
  2133. void *client_drawingcontext,
  2134. DWRITE_MATRIX *transform) = 0;
  2135. virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip(
  2136. void *client_drawingcontext,
  2137. FLOAT *pixels_per_dip) = 0;
  2138. };
  2139. #ifdef __CRT_UUID_DECL
  2140. __CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b)
  2141. #endif
  2142. #else
  2143. typedef struct IDWritePixelSnappingVtbl {
  2144. BEGIN_INTERFACE
  2145. /*** IUnknown methods ***/
  2146. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2147. IDWritePixelSnapping *This,
  2148. REFIID riid,
  2149. void **ppvObject);
  2150. ULONG (STDMETHODCALLTYPE *AddRef)(
  2151. IDWritePixelSnapping *This);
  2152. ULONG (STDMETHODCALLTYPE *Release)(
  2153. IDWritePixelSnapping *This);
  2154. /*** IDWritePixelSnapping methods ***/
  2155. HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)(
  2156. IDWritePixelSnapping *This,
  2157. void *client_drawingcontext,
  2158. WINBOOL *disabled);
  2159. HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
  2160. IDWritePixelSnapping *This,
  2161. void *client_drawingcontext,
  2162. DWRITE_MATRIX *transform);
  2163. HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)(
  2164. IDWritePixelSnapping *This,
  2165. void *client_drawingcontext,
  2166. FLOAT *pixels_per_dip);
  2167. END_INTERFACE
  2168. } IDWritePixelSnappingVtbl;
  2169. interface IDWritePixelSnapping {
  2170. CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl;
  2171. };
  2172. #ifdef COBJMACROS
  2173. #ifndef WIDL_C_INLINE_WRAPPERS
  2174. /*** IUnknown methods ***/
  2175. #define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2176. #define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This)
  2177. #define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This)
  2178. /*** IDWritePixelSnapping methods ***/
  2179. #define IDWritePixelSnapping_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled)
  2180. #define IDWritePixelSnapping_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform)
  2181. #define IDWritePixelSnapping_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip)
  2182. #else
  2183. /*** IUnknown methods ***/
  2184. static FORCEINLINE HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This,REFIID riid,void **ppvObject) {
  2185. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2186. }
  2187. static FORCEINLINE ULONG IDWritePixelSnapping_AddRef(IDWritePixelSnapping* This) {
  2188. return This->lpVtbl->AddRef(This);
  2189. }
  2190. static FORCEINLINE ULONG IDWritePixelSnapping_Release(IDWritePixelSnapping* This) {
  2191. return This->lpVtbl->Release(This);
  2192. }
  2193. /*** IDWritePixelSnapping methods ***/
  2194. static FORCEINLINE HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This,void *client_drawingcontext,WINBOOL *disabled) {
  2195. return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled);
  2196. }
  2197. static FORCEINLINE HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This,void *client_drawingcontext,DWRITE_MATRIX *transform) {
  2198. return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform);
  2199. }
  2200. static FORCEINLINE HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This,void *client_drawingcontext,FLOAT *pixels_per_dip) {
  2201. return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip);
  2202. }
  2203. #endif
  2204. #endif
  2205. #endif
  2206. #endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */
  2207. /*****************************************************************************
  2208. * IDWriteTextRenderer interface
  2209. */
  2210. #ifndef __IDWriteTextRenderer_INTERFACE_DEFINED__
  2211. #define __IDWriteTextRenderer_INTERFACE_DEFINED__
  2212. DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19);
  2213. #if defined(__cplusplus) && !defined(CINTERFACE)
  2214. MIDL_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819")
  2215. IDWriteTextRenderer : public IDWritePixelSnapping
  2216. {
  2217. virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun(
  2218. void *client_drawingcontext,
  2219. FLOAT baselineOriginX,
  2220. FLOAT baselineOriginY,
  2221. DWRITE_MEASURING_MODE mode,
  2222. const DWRITE_GLYPH_RUN *glyph_run,
  2223. const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,
  2224. IUnknown *drawing_effect) = 0;
  2225. virtual HRESULT STDMETHODCALLTYPE DrawUnderline(
  2226. void *client_drawingcontext,
  2227. FLOAT baselineOriginX,
  2228. FLOAT baselineOriginY,
  2229. const DWRITE_UNDERLINE *underline,
  2230. IUnknown *drawing_effect) = 0;
  2231. virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough(
  2232. void *client_drawingcontext,
  2233. FLOAT baselineOriginX,
  2234. FLOAT baselineOriginY,
  2235. const DWRITE_STRIKETHROUGH *strikethrough,
  2236. IUnknown *drawing_effect) = 0;
  2237. virtual HRESULT STDMETHODCALLTYPE DrawInlineObject(
  2238. void *client_drawingcontext,
  2239. FLOAT originX,
  2240. FLOAT originY,
  2241. IDWriteInlineObject *object,
  2242. WINBOOL is_sideways,
  2243. WINBOOL is_rtl,
  2244. IUnknown *drawing_effect) = 0;
  2245. };
  2246. #ifdef __CRT_UUID_DECL
  2247. __CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19)
  2248. #endif
  2249. #else
  2250. typedef struct IDWriteTextRendererVtbl {
  2251. BEGIN_INTERFACE
  2252. /*** IUnknown methods ***/
  2253. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2254. IDWriteTextRenderer *This,
  2255. REFIID riid,
  2256. void **ppvObject);
  2257. ULONG (STDMETHODCALLTYPE *AddRef)(
  2258. IDWriteTextRenderer *This);
  2259. ULONG (STDMETHODCALLTYPE *Release)(
  2260. IDWriteTextRenderer *This);
  2261. /*** IDWritePixelSnapping methods ***/
  2262. HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)(
  2263. IDWriteTextRenderer *This,
  2264. void *client_drawingcontext,
  2265. WINBOOL *disabled);
  2266. HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
  2267. IDWriteTextRenderer *This,
  2268. void *client_drawingcontext,
  2269. DWRITE_MATRIX *transform);
  2270. HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)(
  2271. IDWriteTextRenderer *This,
  2272. void *client_drawingcontext,
  2273. FLOAT *pixels_per_dip);
  2274. /*** IDWriteTextRenderer methods ***/
  2275. HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
  2276. IDWriteTextRenderer *This,
  2277. void *client_drawingcontext,
  2278. FLOAT baselineOriginX,
  2279. FLOAT baselineOriginY,
  2280. DWRITE_MEASURING_MODE mode,
  2281. const DWRITE_GLYPH_RUN *glyph_run,
  2282. const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,
  2283. IUnknown *drawing_effect);
  2284. HRESULT (STDMETHODCALLTYPE *DrawUnderline)(
  2285. IDWriteTextRenderer *This,
  2286. void *client_drawingcontext,
  2287. FLOAT baselineOriginX,
  2288. FLOAT baselineOriginY,
  2289. const DWRITE_UNDERLINE *underline,
  2290. IUnknown *drawing_effect);
  2291. HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)(
  2292. IDWriteTextRenderer *This,
  2293. void *client_drawingcontext,
  2294. FLOAT baselineOriginX,
  2295. FLOAT baselineOriginY,
  2296. const DWRITE_STRIKETHROUGH *strikethrough,
  2297. IUnknown *drawing_effect);
  2298. HRESULT (STDMETHODCALLTYPE *DrawInlineObject)(
  2299. IDWriteTextRenderer *This,
  2300. void *client_drawingcontext,
  2301. FLOAT originX,
  2302. FLOAT originY,
  2303. IDWriteInlineObject *object,
  2304. WINBOOL is_sideways,
  2305. WINBOOL is_rtl,
  2306. IUnknown *drawing_effect);
  2307. END_INTERFACE
  2308. } IDWriteTextRendererVtbl;
  2309. interface IDWriteTextRenderer {
  2310. CONST_VTBL IDWriteTextRendererVtbl* lpVtbl;
  2311. };
  2312. #ifdef COBJMACROS
  2313. #ifndef WIDL_C_INLINE_WRAPPERS
  2314. /*** IUnknown methods ***/
  2315. #define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2316. #define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
  2317. #define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This)
  2318. /*** IDWritePixelSnapping methods ***/
  2319. #define IDWriteTextRenderer_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled)
  2320. #define IDWriteTextRenderer_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform)
  2321. #define IDWriteTextRenderer_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip)
  2322. /*** IDWriteTextRenderer methods ***/
  2323. #define IDWriteTextRenderer_DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) (This)->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect)
  2324. #define IDWriteTextRenderer_DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) (This)->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect)
  2325. #define IDWriteTextRenderer_DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) (This)->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect)
  2326. #define IDWriteTextRenderer_DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect)
  2327. #else
  2328. /*** IUnknown methods ***/
  2329. static FORCEINLINE HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This,REFIID riid,void **ppvObject) {
  2330. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2331. }
  2332. static FORCEINLINE ULONG IDWriteTextRenderer_AddRef(IDWriteTextRenderer* This) {
  2333. return This->lpVtbl->AddRef(This);
  2334. }
  2335. static FORCEINLINE ULONG IDWriteTextRenderer_Release(IDWriteTextRenderer* This) {
  2336. return This->lpVtbl->Release(This);
  2337. }
  2338. /*** IDWritePixelSnapping methods ***/
  2339. static FORCEINLINE HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This,void *client_drawingcontext,WINBOOL *disabled) {
  2340. return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled);
  2341. }
  2342. static FORCEINLINE HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This,void *client_drawingcontext,DWRITE_MATRIX *transform) {
  2343. return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform);
  2344. }
  2345. static FORCEINLINE HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT *pixels_per_dip) {
  2346. return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip);
  2347. }
  2348. /*** IDWriteTextRenderer methods ***/
  2349. static FORCEINLINE HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,IUnknown *drawing_effect) {
  2350. return This->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect);
  2351. }
  2352. static FORCEINLINE HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_UNDERLINE *underline,IUnknown *drawing_effect) {
  2353. return This->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect);
  2354. }
  2355. static FORCEINLINE HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *drawing_effect) {
  2356. return This->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect);
  2357. }
  2358. static FORCEINLINE HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT originX,FLOAT originY,IDWriteInlineObject *object,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) {
  2359. return This->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect);
  2360. }
  2361. #endif
  2362. #endif
  2363. #endif
  2364. #endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */
  2365. /*****************************************************************************
  2366. * IDWriteInlineObject interface
  2367. */
  2368. #ifndef __IDWriteInlineObject_INTERFACE_DEFINED__
  2369. #define __IDWriteInlineObject_INTERFACE_DEFINED__
  2370. DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3);
  2371. #if defined(__cplusplus) && !defined(CINTERFACE)
  2372. MIDL_INTERFACE("8339fde3-106f-47ab-8373-1c6295eb10b3")
  2373. IDWriteInlineObject : public IUnknown
  2374. {
  2375. virtual HRESULT STDMETHODCALLTYPE Draw(
  2376. void *client_drawingontext,
  2377. IDWriteTextRenderer *renderer,
  2378. FLOAT originX,
  2379. FLOAT originY,
  2380. WINBOOL is_sideways,
  2381. WINBOOL is_rtl,
  2382. IUnknown *drawing_effect) = 0;
  2383. virtual HRESULT STDMETHODCALLTYPE GetMetrics(
  2384. DWRITE_INLINE_OBJECT_METRICS *metrics) = 0;
  2385. virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics(
  2386. DWRITE_OVERHANG_METRICS *overhangs) = 0;
  2387. virtual HRESULT STDMETHODCALLTYPE GetBreakConditions(
  2388. DWRITE_BREAK_CONDITION *condition_before,
  2389. DWRITE_BREAK_CONDITION *condition_after) = 0;
  2390. };
  2391. #ifdef __CRT_UUID_DECL
  2392. __CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3)
  2393. #endif
  2394. #else
  2395. typedef struct IDWriteInlineObjectVtbl {
  2396. BEGIN_INTERFACE
  2397. /*** IUnknown methods ***/
  2398. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2399. IDWriteInlineObject *This,
  2400. REFIID riid,
  2401. void **ppvObject);
  2402. ULONG (STDMETHODCALLTYPE *AddRef)(
  2403. IDWriteInlineObject *This);
  2404. ULONG (STDMETHODCALLTYPE *Release)(
  2405. IDWriteInlineObject *This);
  2406. /*** IDWriteInlineObject methods ***/
  2407. HRESULT (STDMETHODCALLTYPE *Draw)(
  2408. IDWriteInlineObject *This,
  2409. void *client_drawingontext,
  2410. IDWriteTextRenderer *renderer,
  2411. FLOAT originX,
  2412. FLOAT originY,
  2413. WINBOOL is_sideways,
  2414. WINBOOL is_rtl,
  2415. IUnknown *drawing_effect);
  2416. HRESULT (STDMETHODCALLTYPE *GetMetrics)(
  2417. IDWriteInlineObject *This,
  2418. DWRITE_INLINE_OBJECT_METRICS *metrics);
  2419. HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
  2420. IDWriteInlineObject *This,
  2421. DWRITE_OVERHANG_METRICS *overhangs);
  2422. HRESULT (STDMETHODCALLTYPE *GetBreakConditions)(
  2423. IDWriteInlineObject *This,
  2424. DWRITE_BREAK_CONDITION *condition_before,
  2425. DWRITE_BREAK_CONDITION *condition_after);
  2426. END_INTERFACE
  2427. } IDWriteInlineObjectVtbl;
  2428. interface IDWriteInlineObject {
  2429. CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl;
  2430. };
  2431. #ifdef COBJMACROS
  2432. #ifndef WIDL_C_INLINE_WRAPPERS
  2433. /*** IUnknown methods ***/
  2434. #define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2435. #define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  2436. #define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This)
  2437. /*** IDWriteInlineObject methods ***/
  2438. #define IDWriteInlineObject_Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect)
  2439. #define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
  2440. #define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
  2441. #define IDWriteInlineObject_GetBreakConditions(This,condition_before,condition_after) (This)->lpVtbl->GetBreakConditions(This,condition_before,condition_after)
  2442. #else
  2443. /*** IUnknown methods ***/
  2444. static FORCEINLINE HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This,REFIID riid,void **ppvObject) {
  2445. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2446. }
  2447. static FORCEINLINE ULONG IDWriteInlineObject_AddRef(IDWriteInlineObject* This) {
  2448. return This->lpVtbl->AddRef(This);
  2449. }
  2450. static FORCEINLINE ULONG IDWriteInlineObject_Release(IDWriteInlineObject* This) {
  2451. return This->lpVtbl->Release(This);
  2452. }
  2453. /*** IDWriteInlineObject methods ***/
  2454. static FORCEINLINE HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This,void *client_drawingontext,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) {
  2455. return This->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect);
  2456. }
  2457. static FORCEINLINE HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This,DWRITE_INLINE_OBJECT_METRICS *metrics) {
  2458. return This->lpVtbl->GetMetrics(This,metrics);
  2459. }
  2460. static FORCEINLINE HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This,DWRITE_OVERHANG_METRICS *overhangs) {
  2461. return This->lpVtbl->GetOverhangMetrics(This,overhangs);
  2462. }
  2463. static FORCEINLINE HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This,DWRITE_BREAK_CONDITION *condition_before,DWRITE_BREAK_CONDITION *condition_after) {
  2464. return This->lpVtbl->GetBreakConditions(This,condition_before,condition_after);
  2465. }
  2466. #endif
  2467. #endif
  2468. #endif
  2469. #endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */
  2470. /*****************************************************************************
  2471. * IDWriteTextFormat interface
  2472. */
  2473. #ifndef __IDWriteTextFormat_INTERFACE_DEFINED__
  2474. #define __IDWriteTextFormat_INTERFACE_DEFINED__
  2475. DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a);
  2476. #if defined(__cplusplus) && !defined(CINTERFACE)
  2477. MIDL_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a")
  2478. IDWriteTextFormat : public IUnknown
  2479. {
  2480. virtual HRESULT STDMETHODCALLTYPE SetTextAlignment(
  2481. DWRITE_TEXT_ALIGNMENT alignment) = 0;
  2482. virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment(
  2483. DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0;
  2484. virtual HRESULT STDMETHODCALLTYPE SetWordWrapping(
  2485. DWRITE_WORD_WRAPPING wrapping) = 0;
  2486. virtual HRESULT STDMETHODCALLTYPE SetReadingDirection(
  2487. DWRITE_READING_DIRECTION direction) = 0;
  2488. virtual HRESULT STDMETHODCALLTYPE SetFlowDirection(
  2489. DWRITE_FLOW_DIRECTION direction) = 0;
  2490. virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop(
  2491. FLOAT tabstop) = 0;
  2492. virtual HRESULT STDMETHODCALLTYPE SetTrimming(
  2493. const DWRITE_TRIMMING *trimming,
  2494. IDWriteInlineObject *trimming_sign) = 0;
  2495. virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
  2496. DWRITE_LINE_SPACING_METHOD spacing,
  2497. FLOAT line_spacing,
  2498. FLOAT baseline) = 0;
  2499. virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment(
  2500. ) = 0;
  2501. virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment(
  2502. ) = 0;
  2503. virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping(
  2504. ) = 0;
  2505. virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection(
  2506. ) = 0;
  2507. virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection(
  2508. ) = 0;
  2509. virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop(
  2510. ) = 0;
  2511. virtual HRESULT STDMETHODCALLTYPE GetTrimming(
  2512. DWRITE_TRIMMING *options,
  2513. IDWriteInlineObject **trimming_sign) = 0;
  2514. virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
  2515. DWRITE_LINE_SPACING_METHOD *method,
  2516. FLOAT *spacing,
  2517. FLOAT *baseline) = 0;
  2518. virtual HRESULT STDMETHODCALLTYPE GetFontCollection(
  2519. IDWriteFontCollection **collection) = 0;
  2520. virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength(
  2521. ) = 0;
  2522. virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName(
  2523. WCHAR *name,
  2524. UINT32 size) = 0;
  2525. virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight(
  2526. ) = 0;
  2527. virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle(
  2528. ) = 0;
  2529. virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch(
  2530. ) = 0;
  2531. virtual FLOAT STDMETHODCALLTYPE GetFontSize(
  2532. ) = 0;
  2533. virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength(
  2534. ) = 0;
  2535. virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
  2536. WCHAR *name,
  2537. UINT32 size) = 0;
  2538. };
  2539. #ifdef __CRT_UUID_DECL
  2540. __CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a)
  2541. #endif
  2542. #else
  2543. typedef struct IDWriteTextFormatVtbl {
  2544. BEGIN_INTERFACE
  2545. /*** IUnknown methods ***/
  2546. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2547. IDWriteTextFormat *This,
  2548. REFIID riid,
  2549. void **ppvObject);
  2550. ULONG (STDMETHODCALLTYPE *AddRef)(
  2551. IDWriteTextFormat *This);
  2552. ULONG (STDMETHODCALLTYPE *Release)(
  2553. IDWriteTextFormat *This);
  2554. /*** IDWriteTextFormat methods ***/
  2555. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  2556. IDWriteTextFormat *This,
  2557. DWRITE_TEXT_ALIGNMENT alignment);
  2558. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  2559. IDWriteTextFormat *This,
  2560. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  2561. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  2562. IDWriteTextFormat *This,
  2563. DWRITE_WORD_WRAPPING wrapping);
  2564. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  2565. IDWriteTextFormat *This,
  2566. DWRITE_READING_DIRECTION direction);
  2567. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  2568. IDWriteTextFormat *This,
  2569. DWRITE_FLOW_DIRECTION direction);
  2570. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  2571. IDWriteTextFormat *This,
  2572. FLOAT tabstop);
  2573. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  2574. IDWriteTextFormat *This,
  2575. const DWRITE_TRIMMING *trimming,
  2576. IDWriteInlineObject *trimming_sign);
  2577. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  2578. IDWriteTextFormat *This,
  2579. DWRITE_LINE_SPACING_METHOD spacing,
  2580. FLOAT line_spacing,
  2581. FLOAT baseline);
  2582. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  2583. IDWriteTextFormat *This);
  2584. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  2585. IDWriteTextFormat *This);
  2586. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  2587. IDWriteTextFormat *This);
  2588. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  2589. IDWriteTextFormat *This);
  2590. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  2591. IDWriteTextFormat *This);
  2592. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  2593. IDWriteTextFormat *This);
  2594. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  2595. IDWriteTextFormat *This,
  2596. DWRITE_TRIMMING *options,
  2597. IDWriteInlineObject **trimming_sign);
  2598. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  2599. IDWriteTextFormat *This,
  2600. DWRITE_LINE_SPACING_METHOD *method,
  2601. FLOAT *spacing,
  2602. FLOAT *baseline);
  2603. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  2604. IDWriteTextFormat *This,
  2605. IDWriteFontCollection **collection);
  2606. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  2607. IDWriteTextFormat *This);
  2608. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  2609. IDWriteTextFormat *This,
  2610. WCHAR *name,
  2611. UINT32 size);
  2612. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  2613. IDWriteTextFormat *This);
  2614. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  2615. IDWriteTextFormat *This);
  2616. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  2617. IDWriteTextFormat *This);
  2618. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  2619. IDWriteTextFormat *This);
  2620. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  2621. IDWriteTextFormat *This);
  2622. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  2623. IDWriteTextFormat *This,
  2624. WCHAR *name,
  2625. UINT32 size);
  2626. END_INTERFACE
  2627. } IDWriteTextFormatVtbl;
  2628. interface IDWriteTextFormat {
  2629. CONST_VTBL IDWriteTextFormatVtbl* lpVtbl;
  2630. };
  2631. #ifdef COBJMACROS
  2632. #ifndef WIDL_C_INLINE_WRAPPERS
  2633. /*** IUnknown methods ***/
  2634. #define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2635. #define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
  2636. #define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This)
  2637. /*** IDWriteTextFormat methods ***/
  2638. #define IDWriteTextFormat_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  2639. #define IDWriteTextFormat_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  2640. #define IDWriteTextFormat_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  2641. #define IDWriteTextFormat_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  2642. #define IDWriteTextFormat_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  2643. #define IDWriteTextFormat_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  2644. #define IDWriteTextFormat_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  2645. #define IDWriteTextFormat_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline)
  2646. #define IDWriteTextFormat_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  2647. #define IDWriteTextFormat_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  2648. #define IDWriteTextFormat_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  2649. #define IDWriteTextFormat_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  2650. #define IDWriteTextFormat_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  2651. #define IDWriteTextFormat_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  2652. #define IDWriteTextFormat_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  2653. #define IDWriteTextFormat_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline)
  2654. #define IDWriteTextFormat_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  2655. #define IDWriteTextFormat_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
  2656. #define IDWriteTextFormat_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
  2657. #define IDWriteTextFormat_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
  2658. #define IDWriteTextFormat_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
  2659. #define IDWriteTextFormat_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
  2660. #define IDWriteTextFormat_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
  2661. #define IDWriteTextFormat_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
  2662. #define IDWriteTextFormat_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
  2663. #else
  2664. /*** IUnknown methods ***/
  2665. static FORCEINLINE HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This,REFIID riid,void **ppvObject) {
  2666. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2667. }
  2668. static FORCEINLINE ULONG IDWriteTextFormat_AddRef(IDWriteTextFormat* This) {
  2669. return This->lpVtbl->AddRef(This);
  2670. }
  2671. static FORCEINLINE ULONG IDWriteTextFormat_Release(IDWriteTextFormat* This) {
  2672. return This->lpVtbl->Release(This);
  2673. }
  2674. /*** IDWriteTextFormat methods ***/
  2675. static FORCEINLINE HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This,DWRITE_TEXT_ALIGNMENT alignment) {
  2676. return This->lpVtbl->SetTextAlignment(This,alignment);
  2677. }
  2678. static FORCEINLINE HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  2679. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  2680. }
  2681. static FORCEINLINE HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This,DWRITE_WORD_WRAPPING wrapping) {
  2682. return This->lpVtbl->SetWordWrapping(This,wrapping);
  2683. }
  2684. static FORCEINLINE HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This,DWRITE_READING_DIRECTION direction) {
  2685. return This->lpVtbl->SetReadingDirection(This,direction);
  2686. }
  2687. static FORCEINLINE HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This,DWRITE_FLOW_DIRECTION direction) {
  2688. return This->lpVtbl->SetFlowDirection(This,direction);
  2689. }
  2690. static FORCEINLINE HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This,FLOAT tabstop) {
  2691. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  2692. }
  2693. static FORCEINLINE HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  2694. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  2695. }
  2696. static FORCEINLINE HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) {
  2697. return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline);
  2698. }
  2699. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextFormat_GetTextAlignment(IDWriteTextFormat* This) {
  2700. return This->lpVtbl->GetTextAlignment(This);
  2701. }
  2702. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat_GetParagraphAlignment(IDWriteTextFormat* This) {
  2703. return This->lpVtbl->GetParagraphAlignment(This);
  2704. }
  2705. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextFormat_GetWordWrapping(IDWriteTextFormat* This) {
  2706. return This->lpVtbl->GetWordWrapping(This);
  2707. }
  2708. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextFormat_GetReadingDirection(IDWriteTextFormat* This) {
  2709. return This->lpVtbl->GetReadingDirection(This);
  2710. }
  2711. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextFormat_GetFlowDirection(IDWriteTextFormat* This) {
  2712. return This->lpVtbl->GetFlowDirection(This);
  2713. }
  2714. static FORCEINLINE FLOAT IDWriteTextFormat_GetIncrementalTabStop(IDWriteTextFormat* This) {
  2715. return This->lpVtbl->GetIncrementalTabStop(This);
  2716. }
  2717. static FORCEINLINE HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  2718. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  2719. }
  2720. static FORCEINLINE HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) {
  2721. return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline);
  2722. }
  2723. static FORCEINLINE HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This,IDWriteFontCollection **collection) {
  2724. return This->lpVtbl->GetFontCollection(This,collection);
  2725. }
  2726. static FORCEINLINE UINT32 IDWriteTextFormat_GetFontFamilyNameLength(IDWriteTextFormat* This) {
  2727. return This->lpVtbl->GetFontFamilyNameLength(This);
  2728. }
  2729. static FORCEINLINE HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) {
  2730. return This->lpVtbl->GetFontFamilyName(This,name,size);
  2731. }
  2732. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteTextFormat_GetFontWeight(IDWriteTextFormat* This) {
  2733. return This->lpVtbl->GetFontWeight(This);
  2734. }
  2735. static FORCEINLINE DWRITE_FONT_STYLE IDWriteTextFormat_GetFontStyle(IDWriteTextFormat* This) {
  2736. return This->lpVtbl->GetFontStyle(This);
  2737. }
  2738. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteTextFormat_GetFontStretch(IDWriteTextFormat* This) {
  2739. return This->lpVtbl->GetFontStretch(This);
  2740. }
  2741. static FORCEINLINE FLOAT IDWriteTextFormat_GetFontSize(IDWriteTextFormat* This) {
  2742. return This->lpVtbl->GetFontSize(This);
  2743. }
  2744. static FORCEINLINE UINT32 IDWriteTextFormat_GetLocaleNameLength(IDWriteTextFormat* This) {
  2745. return This->lpVtbl->GetLocaleNameLength(This);
  2746. }
  2747. static FORCEINLINE HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) {
  2748. return This->lpVtbl->GetLocaleName(This,name,size);
  2749. }
  2750. #endif
  2751. #endif
  2752. #endif
  2753. #endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */
  2754. /*****************************************************************************
  2755. * IDWriteTypography interface
  2756. */
  2757. #ifndef __IDWriteTypography_INTERFACE_DEFINED__
  2758. #define __IDWriteTypography_INTERFACE_DEFINED__
  2759. DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6);
  2760. #if defined(__cplusplus) && !defined(CINTERFACE)
  2761. MIDL_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6")
  2762. IDWriteTypography : public IUnknown
  2763. {
  2764. virtual HRESULT STDMETHODCALLTYPE AddFontFeature(
  2765. DWRITE_FONT_FEATURE feature) = 0;
  2766. virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount(
  2767. ) = 0;
  2768. virtual HRESULT STDMETHODCALLTYPE GetFontFeature(
  2769. UINT32 index,
  2770. DWRITE_FONT_FEATURE *feature) = 0;
  2771. };
  2772. #ifdef __CRT_UUID_DECL
  2773. __CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6)
  2774. #endif
  2775. #else
  2776. typedef struct IDWriteTypographyVtbl {
  2777. BEGIN_INTERFACE
  2778. /*** IUnknown methods ***/
  2779. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2780. IDWriteTypography *This,
  2781. REFIID riid,
  2782. void **ppvObject);
  2783. ULONG (STDMETHODCALLTYPE *AddRef)(
  2784. IDWriteTypography *This);
  2785. ULONG (STDMETHODCALLTYPE *Release)(
  2786. IDWriteTypography *This);
  2787. /*** IDWriteTypography methods ***/
  2788. HRESULT (STDMETHODCALLTYPE *AddFontFeature)(
  2789. IDWriteTypography *This,
  2790. DWRITE_FONT_FEATURE feature);
  2791. UINT32 (STDMETHODCALLTYPE *GetFontFeatureCount)(
  2792. IDWriteTypography *This);
  2793. HRESULT (STDMETHODCALLTYPE *GetFontFeature)(
  2794. IDWriteTypography *This,
  2795. UINT32 index,
  2796. DWRITE_FONT_FEATURE *feature);
  2797. END_INTERFACE
  2798. } IDWriteTypographyVtbl;
  2799. interface IDWriteTypography {
  2800. CONST_VTBL IDWriteTypographyVtbl* lpVtbl;
  2801. };
  2802. #ifdef COBJMACROS
  2803. #ifndef WIDL_C_INLINE_WRAPPERS
  2804. /*** IUnknown methods ***/
  2805. #define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2806. #define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This)
  2807. #define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This)
  2808. /*** IDWriteTypography methods ***/
  2809. #define IDWriteTypography_AddFontFeature(This,feature) (This)->lpVtbl->AddFontFeature(This,feature)
  2810. #define IDWriteTypography_GetFontFeatureCount(This) (This)->lpVtbl->GetFontFeatureCount(This)
  2811. #define IDWriteTypography_GetFontFeature(This,index,feature) (This)->lpVtbl->GetFontFeature(This,index,feature)
  2812. #else
  2813. /*** IUnknown methods ***/
  2814. static FORCEINLINE HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This,REFIID riid,void **ppvObject) {
  2815. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2816. }
  2817. static FORCEINLINE ULONG IDWriteTypography_AddRef(IDWriteTypography* This) {
  2818. return This->lpVtbl->AddRef(This);
  2819. }
  2820. static FORCEINLINE ULONG IDWriteTypography_Release(IDWriteTypography* This) {
  2821. return This->lpVtbl->Release(This);
  2822. }
  2823. /*** IDWriteTypography methods ***/
  2824. static FORCEINLINE HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This,DWRITE_FONT_FEATURE feature) {
  2825. return This->lpVtbl->AddFontFeature(This,feature);
  2826. }
  2827. static FORCEINLINE UINT32 IDWriteTypography_GetFontFeatureCount(IDWriteTypography* This) {
  2828. return This->lpVtbl->GetFontFeatureCount(This);
  2829. }
  2830. static FORCEINLINE HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This,UINT32 index,DWRITE_FONT_FEATURE *feature) {
  2831. return This->lpVtbl->GetFontFeature(This,index,feature);
  2832. }
  2833. #endif
  2834. #endif
  2835. #endif
  2836. #endif /* __IDWriteTypography_INTERFACE_DEFINED__ */
  2837. /*****************************************************************************
  2838. * IDWriteBitmapRenderTarget interface
  2839. */
  2840. #ifndef __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__
  2841. #define __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__
  2842. DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67);
  2843. #if defined(__cplusplus) && !defined(CINTERFACE)
  2844. MIDL_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267")
  2845. IDWriteBitmapRenderTarget : public IUnknown
  2846. {
  2847. virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun(
  2848. FLOAT baselineOriginX,
  2849. FLOAT baselineOriginY,
  2850. DWRITE_MEASURING_MODE measuring_mode,
  2851. const DWRITE_GLYPH_RUN *glyph_run,
  2852. IDWriteRenderingParams *params,
  2853. COLORREF textColor,
  2854. RECT *blackbox_rect = 0) = 0;
  2855. virtual HDC STDMETHODCALLTYPE GetMemoryDC(
  2856. ) = 0;
  2857. virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip(
  2858. ) = 0;
  2859. virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip(
  2860. FLOAT pixels_per_dip) = 0;
  2861. virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform(
  2862. DWRITE_MATRIX *transform) = 0;
  2863. virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform(
  2864. const DWRITE_MATRIX *transform) = 0;
  2865. virtual HRESULT STDMETHODCALLTYPE GetSize(
  2866. SIZE *size) = 0;
  2867. virtual HRESULT STDMETHODCALLTYPE Resize(
  2868. UINT32 width,
  2869. UINT32 height) = 0;
  2870. };
  2871. #ifdef __CRT_UUID_DECL
  2872. __CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67)
  2873. #endif
  2874. #else
  2875. typedef struct IDWriteBitmapRenderTargetVtbl {
  2876. BEGIN_INTERFACE
  2877. /*** IUnknown methods ***/
  2878. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2879. IDWriteBitmapRenderTarget *This,
  2880. REFIID riid,
  2881. void **ppvObject);
  2882. ULONG (STDMETHODCALLTYPE *AddRef)(
  2883. IDWriteBitmapRenderTarget *This);
  2884. ULONG (STDMETHODCALLTYPE *Release)(
  2885. IDWriteBitmapRenderTarget *This);
  2886. /*** IDWriteBitmapRenderTarget methods ***/
  2887. HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
  2888. IDWriteBitmapRenderTarget *This,
  2889. FLOAT baselineOriginX,
  2890. FLOAT baselineOriginY,
  2891. DWRITE_MEASURING_MODE measuring_mode,
  2892. const DWRITE_GLYPH_RUN *glyph_run,
  2893. IDWriteRenderingParams *params,
  2894. COLORREF textColor,
  2895. RECT *blackbox_rect);
  2896. HDC (STDMETHODCALLTYPE *GetMemoryDC)(
  2897. IDWriteBitmapRenderTarget *This);
  2898. FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
  2899. IDWriteBitmapRenderTarget *This);
  2900. HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
  2901. IDWriteBitmapRenderTarget *This,
  2902. FLOAT pixels_per_dip);
  2903. HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
  2904. IDWriteBitmapRenderTarget *This,
  2905. DWRITE_MATRIX *transform);
  2906. HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
  2907. IDWriteBitmapRenderTarget *This,
  2908. const DWRITE_MATRIX *transform);
  2909. HRESULT (STDMETHODCALLTYPE *GetSize)(
  2910. IDWriteBitmapRenderTarget *This,
  2911. SIZE *size);
  2912. HRESULT (STDMETHODCALLTYPE *Resize)(
  2913. IDWriteBitmapRenderTarget *This,
  2914. UINT32 width,
  2915. UINT32 height);
  2916. END_INTERFACE
  2917. } IDWriteBitmapRenderTargetVtbl;
  2918. interface IDWriteBitmapRenderTarget {
  2919. CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl;
  2920. };
  2921. #ifdef COBJMACROS
  2922. #ifndef WIDL_C_INLINE_WRAPPERS
  2923. /*** IUnknown methods ***/
  2924. #define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2925. #define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This)
  2926. #define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This)
  2927. /*** IDWriteBitmapRenderTarget methods ***/
  2928. #define IDWriteBitmapRenderTarget_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)
  2929. #define IDWriteBitmapRenderTarget_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
  2930. #define IDWriteBitmapRenderTarget_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
  2931. #define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
  2932. #define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
  2933. #define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
  2934. #define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
  2935. #define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
  2936. #else
  2937. /*** IUnknown methods ***/
  2938. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This,REFIID riid,void **ppvObject) {
  2939. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2940. }
  2941. static FORCEINLINE ULONG IDWriteBitmapRenderTarget_AddRef(IDWriteBitmapRenderTarget* This) {
  2942. return This->lpVtbl->AddRef(This);
  2943. }
  2944. static FORCEINLINE ULONG IDWriteBitmapRenderTarget_Release(IDWriteBitmapRenderTarget* This) {
  2945. return This->lpVtbl->Release(This);
  2946. }
  2947. /*** IDWriteBitmapRenderTarget methods ***/
  2948. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
  2949. return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
  2950. }
  2951. static FORCEINLINE HDC IDWriteBitmapRenderTarget_GetMemoryDC(IDWriteBitmapRenderTarget* This) {
  2952. return This->lpVtbl->GetMemoryDC(This);
  2953. }
  2954. static FORCEINLINE FLOAT IDWriteBitmapRenderTarget_GetPixelsPerDip(IDWriteBitmapRenderTarget* This) {
  2955. return This->lpVtbl->GetPixelsPerDip(This);
  2956. }
  2957. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This,FLOAT pixels_per_dip) {
  2958. return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
  2959. }
  2960. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This,DWRITE_MATRIX *transform) {
  2961. return This->lpVtbl->GetCurrentTransform(This,transform);
  2962. }
  2963. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This,const DWRITE_MATRIX *transform) {
  2964. return This->lpVtbl->SetCurrentTransform(This,transform);
  2965. }
  2966. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This,SIZE *size) {
  2967. return This->lpVtbl->GetSize(This,size);
  2968. }
  2969. static FORCEINLINE HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This,UINT32 width,UINT32 height) {
  2970. return This->lpVtbl->Resize(This,width,height);
  2971. }
  2972. #endif
  2973. #endif
  2974. #endif
  2975. #endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */
  2976. #ifndef _WINGDI_
  2977. typedef struct tagLOGFONTW {
  2978. LONG lfHeight;
  2979. LONG lfWidth;
  2980. LONG lfEscapement;
  2981. LONG lfOrientation;
  2982. LONG lfWeight;
  2983. BYTE lfItalic;
  2984. BYTE lfUnderline;
  2985. BYTE lfStrikeOut;
  2986. BYTE lfCharSet;
  2987. BYTE lfOutPrecision;
  2988. BYTE lfClipPrecision;
  2989. BYTE lfQuality;
  2990. BYTE lfPitchAndFamily;
  2991. WCHAR lfFaceName[32];
  2992. } LOGFONTW;
  2993. typedef struct tagLOGFONTW *PLOGFONTW;
  2994. typedef struct tagLOGFONTW *LPLOGFONTW;
  2995. #endif /* _WINGDI_ */
  2996. /*****************************************************************************
  2997. * IDWriteGdiInterop interface
  2998. */
  2999. #ifndef __IDWriteGdiInterop_INTERFACE_DEFINED__
  3000. #define __IDWriteGdiInterop_INTERFACE_DEFINED__
  3001. DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a);
  3002. #if defined(__cplusplus) && !defined(CINTERFACE)
  3003. MIDL_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a")
  3004. IDWriteGdiInterop : public IUnknown
  3005. {
  3006. virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT(
  3007. const LOGFONTW *logfont,
  3008. IDWriteFont **font) = 0;
  3009. virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT(
  3010. IDWriteFont *font,
  3011. LOGFONTW *logfont,
  3012. WINBOOL *is_systemfont) = 0;
  3013. virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT(
  3014. IDWriteFontFace *font,
  3015. LOGFONTW *logfont) = 0;
  3016. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc(
  3017. HDC hdc,
  3018. IDWriteFontFace **fontface) = 0;
  3019. virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget(
  3020. HDC hdc,
  3021. UINT32 width,
  3022. UINT32 height,
  3023. IDWriteBitmapRenderTarget **target) = 0;
  3024. };
  3025. #ifdef __CRT_UUID_DECL
  3026. __CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a)
  3027. #endif
  3028. #else
  3029. typedef struct IDWriteGdiInteropVtbl {
  3030. BEGIN_INTERFACE
  3031. /*** IUnknown methods ***/
  3032. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3033. IDWriteGdiInterop *This,
  3034. REFIID riid,
  3035. void **ppvObject);
  3036. ULONG (STDMETHODCALLTYPE *AddRef)(
  3037. IDWriteGdiInterop *This);
  3038. ULONG (STDMETHODCALLTYPE *Release)(
  3039. IDWriteGdiInterop *This);
  3040. /*** IDWriteGdiInterop methods ***/
  3041. HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)(
  3042. IDWriteGdiInterop *This,
  3043. const LOGFONTW *logfont,
  3044. IDWriteFont **font);
  3045. HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)(
  3046. IDWriteGdiInterop *This,
  3047. IDWriteFont *font,
  3048. LOGFONTW *logfont,
  3049. WINBOOL *is_systemfont);
  3050. HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)(
  3051. IDWriteGdiInterop *This,
  3052. IDWriteFontFace *font,
  3053. LOGFONTW *logfont);
  3054. HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)(
  3055. IDWriteGdiInterop *This,
  3056. HDC hdc,
  3057. IDWriteFontFace **fontface);
  3058. HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)(
  3059. IDWriteGdiInterop *This,
  3060. HDC hdc,
  3061. UINT32 width,
  3062. UINT32 height,
  3063. IDWriteBitmapRenderTarget **target);
  3064. END_INTERFACE
  3065. } IDWriteGdiInteropVtbl;
  3066. interface IDWriteGdiInterop {
  3067. CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl;
  3068. };
  3069. #ifdef COBJMACROS
  3070. #ifndef WIDL_C_INLINE_WRAPPERS
  3071. /*** IUnknown methods ***/
  3072. #define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3073. #define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
  3074. #define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This)
  3075. /*** IDWriteGdiInterop methods ***/
  3076. #define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logfont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logfont,font)
  3077. #define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont)
  3078. #define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont)
  3079. #define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface)
  3080. #define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target)
  3081. #else
  3082. /*** IUnknown methods ***/
  3083. static FORCEINLINE HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This,REFIID riid,void **ppvObject) {
  3084. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3085. }
  3086. static FORCEINLINE ULONG IDWriteGdiInterop_AddRef(IDWriteGdiInterop* This) {
  3087. return This->lpVtbl->AddRef(This);
  3088. }
  3089. static FORCEINLINE ULONG IDWriteGdiInterop_Release(IDWriteGdiInterop* This) {
  3090. return This->lpVtbl->Release(This);
  3091. }
  3092. /*** IDWriteGdiInterop methods ***/
  3093. static FORCEINLINE HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This,const LOGFONTW *logfont,IDWriteFont **font) {
  3094. return This->lpVtbl->CreateFontFromLOGFONT(This,logfont,font);
  3095. }
  3096. static FORCEINLINE HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) {
  3097. return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont);
  3098. }
  3099. static FORCEINLINE HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This,IDWriteFontFace *font,LOGFONTW *logfont) {
  3100. return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont);
  3101. }
  3102. static FORCEINLINE HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This,HDC hdc,IDWriteFontFace **fontface) {
  3103. return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface);
  3104. }
  3105. static FORCEINLINE HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) {
  3106. return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target);
  3107. }
  3108. #endif
  3109. #endif
  3110. #endif
  3111. #endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */
  3112. /*****************************************************************************
  3113. * IDWriteTextLayout interface
  3114. */
  3115. #ifndef __IDWriteTextLayout_INTERFACE_DEFINED__
  3116. #define __IDWriteTextLayout_INTERFACE_DEFINED__
  3117. DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61);
  3118. #if defined(__cplusplus) && !defined(CINTERFACE)
  3119. MIDL_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961")
  3120. IDWriteTextLayout : public IDWriteTextFormat
  3121. {
  3122. virtual HRESULT STDMETHODCALLTYPE SetMaxWidth(
  3123. FLOAT maxWidth) = 0;
  3124. virtual HRESULT STDMETHODCALLTYPE SetMaxHeight(
  3125. FLOAT maxHeight) = 0;
  3126. virtual HRESULT STDMETHODCALLTYPE SetFontCollection(
  3127. IDWriteFontCollection *collection,
  3128. DWRITE_TEXT_RANGE range) = 0;
  3129. virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName(
  3130. const WCHAR *name,
  3131. DWRITE_TEXT_RANGE range) = 0;
  3132. virtual HRESULT STDMETHODCALLTYPE SetFontWeight(
  3133. DWRITE_FONT_WEIGHT weight,
  3134. DWRITE_TEXT_RANGE range) = 0;
  3135. virtual HRESULT STDMETHODCALLTYPE SetFontStyle(
  3136. DWRITE_FONT_STYLE style,
  3137. DWRITE_TEXT_RANGE range) = 0;
  3138. virtual HRESULT STDMETHODCALLTYPE SetFontStretch(
  3139. DWRITE_FONT_STRETCH stretch,
  3140. DWRITE_TEXT_RANGE range) = 0;
  3141. virtual HRESULT STDMETHODCALLTYPE SetFontSize(
  3142. FLOAT size,
  3143. DWRITE_TEXT_RANGE range) = 0;
  3144. virtual HRESULT STDMETHODCALLTYPE SetUnderline(
  3145. WINBOOL underline,
  3146. DWRITE_TEXT_RANGE range) = 0;
  3147. virtual HRESULT STDMETHODCALLTYPE SetStrikethrough(
  3148. WINBOOL strikethrough,
  3149. DWRITE_TEXT_RANGE range) = 0;
  3150. virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect(
  3151. IUnknown *effect,
  3152. DWRITE_TEXT_RANGE range) = 0;
  3153. virtual HRESULT STDMETHODCALLTYPE SetInlineObject(
  3154. IDWriteInlineObject *object,
  3155. DWRITE_TEXT_RANGE range) = 0;
  3156. virtual HRESULT STDMETHODCALLTYPE SetTypography(
  3157. IDWriteTypography *typography,
  3158. DWRITE_TEXT_RANGE range) = 0;
  3159. virtual HRESULT STDMETHODCALLTYPE SetLocaleName(
  3160. const WCHAR *locale,
  3161. DWRITE_TEXT_RANGE range) = 0;
  3162. virtual FLOAT STDMETHODCALLTYPE GetMaxWidth(
  3163. ) = 0;
  3164. virtual FLOAT STDMETHODCALLTYPE GetMaxHeight(
  3165. ) = 0;
  3166. virtual HRESULT STDMETHODCALLTYPE GetFontCollection(
  3167. UINT32 pos,
  3168. IDWriteFontCollection **collection,
  3169. DWRITE_TEXT_RANGE *range = 0) = 0;
  3170. virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength(
  3171. UINT32 pos,
  3172. UINT32 *len,
  3173. DWRITE_TEXT_RANGE *range = 0) = 0;
  3174. virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName(
  3175. UINT32 position,
  3176. WCHAR *name,
  3177. UINT32 name_size,
  3178. DWRITE_TEXT_RANGE *range = 0) = 0;
  3179. virtual HRESULT STDMETHODCALLTYPE GetFontWeight(
  3180. UINT32 position,
  3181. DWRITE_FONT_WEIGHT *weight,
  3182. DWRITE_TEXT_RANGE *range = 0) = 0;
  3183. virtual HRESULT STDMETHODCALLTYPE GetFontStyle(
  3184. UINT32 currentPosition,
  3185. DWRITE_FONT_STYLE *style,
  3186. DWRITE_TEXT_RANGE *range = 0) = 0;
  3187. virtual HRESULT STDMETHODCALLTYPE GetFontStretch(
  3188. UINT32 position,
  3189. DWRITE_FONT_STRETCH *stretch,
  3190. DWRITE_TEXT_RANGE *range = 0) = 0;
  3191. virtual HRESULT STDMETHODCALLTYPE GetFontSize(
  3192. UINT32 position,
  3193. FLOAT *size,
  3194. DWRITE_TEXT_RANGE *range = 0) = 0;
  3195. virtual HRESULT STDMETHODCALLTYPE GetUnderline(
  3196. UINT32 position,
  3197. WINBOOL *has_underline,
  3198. DWRITE_TEXT_RANGE *range = 0) = 0;
  3199. virtual HRESULT STDMETHODCALLTYPE GetStrikethrough(
  3200. UINT32 position,
  3201. WINBOOL *has_strikethrough,
  3202. DWRITE_TEXT_RANGE *range = 0) = 0;
  3203. virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect(
  3204. UINT32 position,
  3205. IUnknown **effect,
  3206. DWRITE_TEXT_RANGE *range = 0) = 0;
  3207. virtual HRESULT STDMETHODCALLTYPE GetInlineObject(
  3208. UINT32 position,
  3209. IDWriteInlineObject **object,
  3210. DWRITE_TEXT_RANGE *range = 0) = 0;
  3211. virtual HRESULT STDMETHODCALLTYPE GetTypography(
  3212. UINT32 position,
  3213. IDWriteTypography **typography,
  3214. DWRITE_TEXT_RANGE *range = 0) = 0;
  3215. virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
  3216. UINT32 position,
  3217. UINT32 *length,
  3218. DWRITE_TEXT_RANGE *range = 0) = 0;
  3219. virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
  3220. UINT32 position,
  3221. WCHAR *name,
  3222. UINT32 name_size,
  3223. DWRITE_TEXT_RANGE *range = 0) = 0;
  3224. virtual HRESULT STDMETHODCALLTYPE Draw(
  3225. void *context,
  3226. IDWriteTextRenderer *renderer,
  3227. FLOAT originX,
  3228. FLOAT originY) = 0;
  3229. virtual HRESULT STDMETHODCALLTYPE GetLineMetrics(
  3230. DWRITE_LINE_METRICS *metrics,
  3231. UINT32 max_count,
  3232. UINT32 *actual_count) = 0;
  3233. virtual HRESULT STDMETHODCALLTYPE GetMetrics(
  3234. DWRITE_TEXT_METRICS *metrics) = 0;
  3235. virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics(
  3236. DWRITE_OVERHANG_METRICS *overhangs) = 0;
  3237. virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics(
  3238. DWRITE_CLUSTER_METRICS *metrics,
  3239. UINT32 max_count,
  3240. UINT32 *act_count) = 0;
  3241. virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth(
  3242. FLOAT *min_width) = 0;
  3243. virtual HRESULT STDMETHODCALLTYPE HitTestPoint(
  3244. FLOAT pointX,
  3245. FLOAT pointY,
  3246. WINBOOL *is_trailinghit,
  3247. WINBOOL *is_inside,
  3248. DWRITE_HIT_TEST_METRICS *metrics) = 0;
  3249. virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition(
  3250. UINT32 textPosition,
  3251. WINBOOL is_trailinghit,
  3252. FLOAT *pointX,
  3253. FLOAT *pointY,
  3254. DWRITE_HIT_TEST_METRICS *metrics) = 0;
  3255. virtual HRESULT STDMETHODCALLTYPE HitTestTextRange(
  3256. UINT32 textPosition,
  3257. UINT32 textLength,
  3258. FLOAT originX,
  3259. FLOAT originY,
  3260. DWRITE_HIT_TEST_METRICS *metrics,
  3261. UINT32 max_metricscount,
  3262. UINT32 *actual_metricscount) = 0;
  3263. };
  3264. #ifdef __CRT_UUID_DECL
  3265. __CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61)
  3266. #endif
  3267. #else
  3268. typedef struct IDWriteTextLayoutVtbl {
  3269. BEGIN_INTERFACE
  3270. /*** IUnknown methods ***/
  3271. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3272. IDWriteTextLayout *This,
  3273. REFIID riid,
  3274. void **ppvObject);
  3275. ULONG (STDMETHODCALLTYPE *AddRef)(
  3276. IDWriteTextLayout *This);
  3277. ULONG (STDMETHODCALLTYPE *Release)(
  3278. IDWriteTextLayout *This);
  3279. /*** IDWriteTextFormat methods ***/
  3280. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  3281. IDWriteTextLayout *This,
  3282. DWRITE_TEXT_ALIGNMENT alignment);
  3283. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  3284. IDWriteTextLayout *This,
  3285. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  3286. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  3287. IDWriteTextLayout *This,
  3288. DWRITE_WORD_WRAPPING wrapping);
  3289. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  3290. IDWriteTextLayout *This,
  3291. DWRITE_READING_DIRECTION direction);
  3292. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  3293. IDWriteTextLayout *This,
  3294. DWRITE_FLOW_DIRECTION direction);
  3295. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  3296. IDWriteTextLayout *This,
  3297. FLOAT tabstop);
  3298. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  3299. IDWriteTextLayout *This,
  3300. const DWRITE_TRIMMING *trimming,
  3301. IDWriteInlineObject *trimming_sign);
  3302. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  3303. IDWriteTextLayout *This,
  3304. DWRITE_LINE_SPACING_METHOD spacing,
  3305. FLOAT line_spacing,
  3306. FLOAT baseline);
  3307. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  3308. IDWriteTextLayout *This);
  3309. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  3310. IDWriteTextLayout *This);
  3311. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  3312. IDWriteTextLayout *This);
  3313. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  3314. IDWriteTextLayout *This);
  3315. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  3316. IDWriteTextLayout *This);
  3317. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  3318. IDWriteTextLayout *This);
  3319. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  3320. IDWriteTextLayout *This,
  3321. DWRITE_TRIMMING *options,
  3322. IDWriteInlineObject **trimming_sign);
  3323. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  3324. IDWriteTextLayout *This,
  3325. DWRITE_LINE_SPACING_METHOD *method,
  3326. FLOAT *spacing,
  3327. FLOAT *baseline);
  3328. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  3329. IDWriteTextLayout *This,
  3330. IDWriteFontCollection **collection);
  3331. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  3332. IDWriteTextLayout *This);
  3333. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  3334. IDWriteTextLayout *This,
  3335. WCHAR *name,
  3336. UINT32 size);
  3337. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  3338. IDWriteTextLayout *This);
  3339. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  3340. IDWriteTextLayout *This);
  3341. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  3342. IDWriteTextLayout *This);
  3343. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  3344. IDWriteTextLayout *This);
  3345. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  3346. IDWriteTextLayout *This);
  3347. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  3348. IDWriteTextLayout *This,
  3349. WCHAR *name,
  3350. UINT32 size);
  3351. /*** IDWriteTextLayout methods ***/
  3352. HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
  3353. IDWriteTextLayout *This,
  3354. FLOAT maxWidth);
  3355. HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
  3356. IDWriteTextLayout *This,
  3357. FLOAT maxHeight);
  3358. HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
  3359. IDWriteTextLayout *This,
  3360. IDWriteFontCollection *collection,
  3361. DWRITE_TEXT_RANGE range);
  3362. HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
  3363. IDWriteTextLayout *This,
  3364. const WCHAR *name,
  3365. DWRITE_TEXT_RANGE range);
  3366. HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
  3367. IDWriteTextLayout *This,
  3368. DWRITE_FONT_WEIGHT weight,
  3369. DWRITE_TEXT_RANGE range);
  3370. HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
  3371. IDWriteTextLayout *This,
  3372. DWRITE_FONT_STYLE style,
  3373. DWRITE_TEXT_RANGE range);
  3374. HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
  3375. IDWriteTextLayout *This,
  3376. DWRITE_FONT_STRETCH stretch,
  3377. DWRITE_TEXT_RANGE range);
  3378. HRESULT (STDMETHODCALLTYPE *SetFontSize)(
  3379. IDWriteTextLayout *This,
  3380. FLOAT size,
  3381. DWRITE_TEXT_RANGE range);
  3382. HRESULT (STDMETHODCALLTYPE *SetUnderline)(
  3383. IDWriteTextLayout *This,
  3384. WINBOOL underline,
  3385. DWRITE_TEXT_RANGE range);
  3386. HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
  3387. IDWriteTextLayout *This,
  3388. WINBOOL strikethrough,
  3389. DWRITE_TEXT_RANGE range);
  3390. HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
  3391. IDWriteTextLayout *This,
  3392. IUnknown *effect,
  3393. DWRITE_TEXT_RANGE range);
  3394. HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
  3395. IDWriteTextLayout *This,
  3396. IDWriteInlineObject *object,
  3397. DWRITE_TEXT_RANGE range);
  3398. HRESULT (STDMETHODCALLTYPE *SetTypography)(
  3399. IDWriteTextLayout *This,
  3400. IDWriteTypography *typography,
  3401. DWRITE_TEXT_RANGE range);
  3402. HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
  3403. IDWriteTextLayout *This,
  3404. const WCHAR *locale,
  3405. DWRITE_TEXT_RANGE range);
  3406. FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
  3407. IDWriteTextLayout *This);
  3408. FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
  3409. IDWriteTextLayout *This);
  3410. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
  3411. IDWriteTextLayout *This,
  3412. UINT32 pos,
  3413. IDWriteFontCollection **collection,
  3414. DWRITE_TEXT_RANGE *range);
  3415. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
  3416. IDWriteTextLayout *This,
  3417. UINT32 pos,
  3418. UINT32 *len,
  3419. DWRITE_TEXT_RANGE *range);
  3420. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
  3421. IDWriteTextLayout *This,
  3422. UINT32 position,
  3423. WCHAR *name,
  3424. UINT32 name_size,
  3425. DWRITE_TEXT_RANGE *range);
  3426. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
  3427. IDWriteTextLayout *This,
  3428. UINT32 position,
  3429. DWRITE_FONT_WEIGHT *weight,
  3430. DWRITE_TEXT_RANGE *range);
  3431. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
  3432. IDWriteTextLayout *This,
  3433. UINT32 currentPosition,
  3434. DWRITE_FONT_STYLE *style,
  3435. DWRITE_TEXT_RANGE *range);
  3436. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
  3437. IDWriteTextLayout *This,
  3438. UINT32 position,
  3439. DWRITE_FONT_STRETCH *stretch,
  3440. DWRITE_TEXT_RANGE *range);
  3441. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
  3442. IDWriteTextLayout *This,
  3443. UINT32 position,
  3444. FLOAT *size,
  3445. DWRITE_TEXT_RANGE *range);
  3446. HRESULT (STDMETHODCALLTYPE *GetUnderline)(
  3447. IDWriteTextLayout *This,
  3448. UINT32 position,
  3449. WINBOOL *has_underline,
  3450. DWRITE_TEXT_RANGE *range);
  3451. HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
  3452. IDWriteTextLayout *This,
  3453. UINT32 position,
  3454. WINBOOL *has_strikethrough,
  3455. DWRITE_TEXT_RANGE *range);
  3456. HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
  3457. IDWriteTextLayout *This,
  3458. UINT32 position,
  3459. IUnknown **effect,
  3460. DWRITE_TEXT_RANGE *range);
  3461. HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
  3462. IDWriteTextLayout *This,
  3463. UINT32 position,
  3464. IDWriteInlineObject **object,
  3465. DWRITE_TEXT_RANGE *range);
  3466. HRESULT (STDMETHODCALLTYPE *GetTypography)(
  3467. IDWriteTextLayout *This,
  3468. UINT32 position,
  3469. IDWriteTypography **typography,
  3470. DWRITE_TEXT_RANGE *range);
  3471. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
  3472. IDWriteTextLayout *This,
  3473. UINT32 position,
  3474. UINT32 *length,
  3475. DWRITE_TEXT_RANGE *range);
  3476. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
  3477. IDWriteTextLayout *This,
  3478. UINT32 position,
  3479. WCHAR *name,
  3480. UINT32 name_size,
  3481. DWRITE_TEXT_RANGE *range);
  3482. HRESULT (STDMETHODCALLTYPE *Draw)(
  3483. IDWriteTextLayout *This,
  3484. void *context,
  3485. IDWriteTextRenderer *renderer,
  3486. FLOAT originX,
  3487. FLOAT originY);
  3488. HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
  3489. IDWriteTextLayout *This,
  3490. DWRITE_LINE_METRICS *metrics,
  3491. UINT32 max_count,
  3492. UINT32 *actual_count);
  3493. HRESULT (STDMETHODCALLTYPE *GetMetrics)(
  3494. IDWriteTextLayout *This,
  3495. DWRITE_TEXT_METRICS *metrics);
  3496. HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
  3497. IDWriteTextLayout *This,
  3498. DWRITE_OVERHANG_METRICS *overhangs);
  3499. HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
  3500. IDWriteTextLayout *This,
  3501. DWRITE_CLUSTER_METRICS *metrics,
  3502. UINT32 max_count,
  3503. UINT32 *act_count);
  3504. HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
  3505. IDWriteTextLayout *This,
  3506. FLOAT *min_width);
  3507. HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
  3508. IDWriteTextLayout *This,
  3509. FLOAT pointX,
  3510. FLOAT pointY,
  3511. WINBOOL *is_trailinghit,
  3512. WINBOOL *is_inside,
  3513. DWRITE_HIT_TEST_METRICS *metrics);
  3514. HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
  3515. IDWriteTextLayout *This,
  3516. UINT32 textPosition,
  3517. WINBOOL is_trailinghit,
  3518. FLOAT *pointX,
  3519. FLOAT *pointY,
  3520. DWRITE_HIT_TEST_METRICS *metrics);
  3521. HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
  3522. IDWriteTextLayout *This,
  3523. UINT32 textPosition,
  3524. UINT32 textLength,
  3525. FLOAT originX,
  3526. FLOAT originY,
  3527. DWRITE_HIT_TEST_METRICS *metrics,
  3528. UINT32 max_metricscount,
  3529. UINT32 *actual_metricscount);
  3530. END_INTERFACE
  3531. } IDWriteTextLayoutVtbl;
  3532. interface IDWriteTextLayout {
  3533. CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl;
  3534. };
  3535. #ifdef COBJMACROS
  3536. #ifndef WIDL_C_INLINE_WRAPPERS
  3537. /*** IUnknown methods ***/
  3538. #define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3539. #define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
  3540. #define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This)
  3541. /*** IDWriteTextFormat methods ***/
  3542. #define IDWriteTextLayout_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  3543. #define IDWriteTextLayout_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  3544. #define IDWriteTextLayout_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  3545. #define IDWriteTextLayout_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  3546. #define IDWriteTextLayout_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  3547. #define IDWriteTextLayout_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  3548. #define IDWriteTextLayout_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  3549. #define IDWriteTextLayout_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline)
  3550. #define IDWriteTextLayout_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  3551. #define IDWriteTextLayout_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  3552. #define IDWriteTextLayout_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  3553. #define IDWriteTextLayout_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  3554. #define IDWriteTextLayout_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  3555. #define IDWriteTextLayout_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  3556. #define IDWriteTextLayout_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  3557. #define IDWriteTextLayout_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline)
  3558. /*** IDWriteTextLayout methods ***/
  3559. #define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
  3560. #define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
  3561. #define IDWriteTextLayout_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
  3562. #define IDWriteTextLayout_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
  3563. #define IDWriteTextLayout_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
  3564. #define IDWriteTextLayout_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
  3565. #define IDWriteTextLayout_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
  3566. #define IDWriteTextLayout_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
  3567. #define IDWriteTextLayout_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
  3568. #define IDWriteTextLayout_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
  3569. #define IDWriteTextLayout_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
  3570. #define IDWriteTextLayout_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
  3571. #define IDWriteTextLayout_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
  3572. #define IDWriteTextLayout_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
  3573. #define IDWriteTextLayout_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
  3574. #define IDWriteTextLayout_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
  3575. #define IDWriteTextLayout_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
  3576. #define IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
  3577. #define IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
  3578. #define IDWriteTextLayout_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
  3579. #define IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
  3580. #define IDWriteTextLayout_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
  3581. #define IDWriteTextLayout_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
  3582. #define IDWriteTextLayout_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
  3583. #define IDWriteTextLayout_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
  3584. #define IDWriteTextLayout_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
  3585. #define IDWriteTextLayout_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
  3586. #define IDWriteTextLayout_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
  3587. #define IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
  3588. #define IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
  3589. #define IDWriteTextLayout_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
  3590. #define IDWriteTextLayout_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count)
  3591. #define IDWriteTextLayout_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
  3592. #define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
  3593. #define IDWriteTextLayout_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
  3594. #define IDWriteTextLayout_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
  3595. #define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
  3596. #define IDWriteTextLayout_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
  3597. #define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
  3598. #else
  3599. /*** IUnknown methods ***/
  3600. static FORCEINLINE HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This,REFIID riid,void **ppvObject) {
  3601. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3602. }
  3603. static FORCEINLINE ULONG IDWriteTextLayout_AddRef(IDWriteTextLayout* This) {
  3604. return This->lpVtbl->AddRef(This);
  3605. }
  3606. static FORCEINLINE ULONG IDWriteTextLayout_Release(IDWriteTextLayout* This) {
  3607. return This->lpVtbl->Release(This);
  3608. }
  3609. /*** IDWriteTextFormat methods ***/
  3610. static FORCEINLINE HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This,DWRITE_TEXT_ALIGNMENT alignment) {
  3611. return This->lpVtbl->SetTextAlignment(This,alignment);
  3612. }
  3613. static FORCEINLINE HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  3614. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  3615. }
  3616. static FORCEINLINE HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This,DWRITE_WORD_WRAPPING wrapping) {
  3617. return This->lpVtbl->SetWordWrapping(This,wrapping);
  3618. }
  3619. static FORCEINLINE HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This,DWRITE_READING_DIRECTION direction) {
  3620. return This->lpVtbl->SetReadingDirection(This,direction);
  3621. }
  3622. static FORCEINLINE HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This,DWRITE_FLOW_DIRECTION direction) {
  3623. return This->lpVtbl->SetFlowDirection(This,direction);
  3624. }
  3625. static FORCEINLINE HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This,FLOAT tabstop) {
  3626. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  3627. }
  3628. static FORCEINLINE HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  3629. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  3630. }
  3631. static FORCEINLINE HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) {
  3632. return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline);
  3633. }
  3634. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout_GetTextAlignment(IDWriteTextLayout* This) {
  3635. return This->lpVtbl->GetTextAlignment(This);
  3636. }
  3637. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout_GetParagraphAlignment(IDWriteTextLayout* This) {
  3638. return This->lpVtbl->GetParagraphAlignment(This);
  3639. }
  3640. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout_GetWordWrapping(IDWriteTextLayout* This) {
  3641. return This->lpVtbl->GetWordWrapping(This);
  3642. }
  3643. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout_GetReadingDirection(IDWriteTextLayout* This) {
  3644. return This->lpVtbl->GetReadingDirection(This);
  3645. }
  3646. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout_GetFlowDirection(IDWriteTextLayout* This) {
  3647. return This->lpVtbl->GetFlowDirection(This);
  3648. }
  3649. static FORCEINLINE FLOAT IDWriteTextLayout_GetIncrementalTabStop(IDWriteTextLayout* This) {
  3650. return This->lpVtbl->GetIncrementalTabStop(This);
  3651. }
  3652. static FORCEINLINE HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  3653. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  3654. }
  3655. static FORCEINLINE HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) {
  3656. return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline);
  3657. }
  3658. /*** IDWriteTextLayout methods ***/
  3659. static FORCEINLINE HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This,FLOAT maxWidth) {
  3660. return This->lpVtbl->SetMaxWidth(This,maxWidth);
  3661. }
  3662. static FORCEINLINE HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This,FLOAT maxHeight) {
  3663. return This->lpVtbl->SetMaxHeight(This,maxHeight);
  3664. }
  3665. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
  3666. return This->lpVtbl->SetFontCollection(This,collection,range);
  3667. }
  3668. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
  3669. return This->lpVtbl->SetFontFamilyName(This,name,range);
  3670. }
  3671. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
  3672. return This->lpVtbl->SetFontWeight(This,weight,range);
  3673. }
  3674. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
  3675. return This->lpVtbl->SetFontStyle(This,style,range);
  3676. }
  3677. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
  3678. return This->lpVtbl->SetFontStretch(This,stretch,range);
  3679. }
  3680. static FORCEINLINE HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This,FLOAT size,DWRITE_TEXT_RANGE range) {
  3681. return This->lpVtbl->SetFontSize(This,size,range);
  3682. }
  3683. static FORCEINLINE HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
  3684. return This->lpVtbl->SetUnderline(This,underline,range);
  3685. }
  3686. static FORCEINLINE HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
  3687. return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
  3688. }
  3689. static FORCEINLINE HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
  3690. return This->lpVtbl->SetDrawingEffect(This,effect,range);
  3691. }
  3692. static FORCEINLINE HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
  3693. return This->lpVtbl->SetInlineObject(This,object,range);
  3694. }
  3695. static FORCEINLINE HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
  3696. return This->lpVtbl->SetTypography(This,typography,range);
  3697. }
  3698. static FORCEINLINE HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
  3699. return This->lpVtbl->SetLocaleName(This,locale,range);
  3700. }
  3701. static FORCEINLINE FLOAT IDWriteTextLayout_GetMaxWidth(IDWriteTextLayout* This) {
  3702. return This->lpVtbl->GetMaxWidth(This);
  3703. }
  3704. static FORCEINLINE FLOAT IDWriteTextLayout_GetMaxHeight(IDWriteTextLayout* This) {
  3705. return This->lpVtbl->GetMaxHeight(This);
  3706. }
  3707. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
  3708. return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
  3709. }
  3710. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
  3711. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
  3712. }
  3713. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  3714. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
  3715. }
  3716. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
  3717. return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
  3718. }
  3719. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
  3720. return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
  3721. }
  3722. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
  3723. return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
  3724. }
  3725. static FORCEINLINE HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
  3726. return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
  3727. }
  3728. static FORCEINLINE HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
  3729. return This->lpVtbl->GetUnderline(This,position,has_underline,range);
  3730. }
  3731. static FORCEINLINE HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
  3732. return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
  3733. }
  3734. static FORCEINLINE HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
  3735. return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
  3736. }
  3737. static FORCEINLINE HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
  3738. return This->lpVtbl->GetInlineObject(This,position,object,range);
  3739. }
  3740. static FORCEINLINE HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
  3741. return This->lpVtbl->GetTypography(This,position,typography,range);
  3742. }
  3743. static FORCEINLINE HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
  3744. return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
  3745. }
  3746. static FORCEINLINE HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  3747. return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
  3748. }
  3749. static FORCEINLINE HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
  3750. return This->lpVtbl->Draw(This,context,renderer,originX,originY);
  3751. }
  3752. static FORCEINLINE HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) {
  3753. return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count);
  3754. }
  3755. static FORCEINLINE HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This,DWRITE_TEXT_METRICS *metrics) {
  3756. return This->lpVtbl->GetMetrics(This,metrics);
  3757. }
  3758. static FORCEINLINE HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This,DWRITE_OVERHANG_METRICS *overhangs) {
  3759. return This->lpVtbl->GetOverhangMetrics(This,overhangs);
  3760. }
  3761. static FORCEINLINE HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
  3762. return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
  3763. }
  3764. static FORCEINLINE HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This,FLOAT *min_width) {
  3765. return This->lpVtbl->DetermineMinWidth(This,min_width);
  3766. }
  3767. static FORCEINLINE HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
  3768. return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
  3769. }
  3770. static FORCEINLINE HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
  3771. return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
  3772. }
  3773. static FORCEINLINE HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
  3774. return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
  3775. }
  3776. #endif
  3777. #endif
  3778. #endif
  3779. #endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */
  3780. /*****************************************************************************
  3781. * IDWriteNumberSubstitution interface
  3782. */
  3783. #ifndef __IDWriteNumberSubstitution_INTERFACE_DEFINED__
  3784. #define __IDWriteNumberSubstitution_INTERFACE_DEFINED__
  3785. DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d);
  3786. #if defined(__cplusplus) && !defined(CINTERFACE)
  3787. MIDL_INTERFACE("14885cc9-bab0-4f90-b6ed-5c366a2cd03d")
  3788. IDWriteNumberSubstitution : public IUnknown
  3789. {
  3790. };
  3791. #ifdef __CRT_UUID_DECL
  3792. __CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d)
  3793. #endif
  3794. #else
  3795. typedef struct IDWriteNumberSubstitutionVtbl {
  3796. BEGIN_INTERFACE
  3797. /*** IUnknown methods ***/
  3798. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3799. IDWriteNumberSubstitution *This,
  3800. REFIID riid,
  3801. void **ppvObject);
  3802. ULONG (STDMETHODCALLTYPE *AddRef)(
  3803. IDWriteNumberSubstitution *This);
  3804. ULONG (STDMETHODCALLTYPE *Release)(
  3805. IDWriteNumberSubstitution *This);
  3806. END_INTERFACE
  3807. } IDWriteNumberSubstitutionVtbl;
  3808. interface IDWriteNumberSubstitution {
  3809. CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl;
  3810. };
  3811. #ifdef COBJMACROS
  3812. #ifndef WIDL_C_INLINE_WRAPPERS
  3813. /*** IUnknown methods ***/
  3814. #define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3815. #define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This)
  3816. #define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This)
  3817. #else
  3818. /*** IUnknown methods ***/
  3819. static FORCEINLINE HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This,REFIID riid,void **ppvObject) {
  3820. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3821. }
  3822. static FORCEINLINE ULONG IDWriteNumberSubstitution_AddRef(IDWriteNumberSubstitution* This) {
  3823. return This->lpVtbl->AddRef(This);
  3824. }
  3825. static FORCEINLINE ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* This) {
  3826. return This->lpVtbl->Release(This);
  3827. }
  3828. #endif
  3829. #endif
  3830. #endif
  3831. #endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */
  3832. /*****************************************************************************
  3833. * IDWriteTextAnalysisSource interface
  3834. */
  3835. #ifndef __IDWriteTextAnalysisSource_INTERFACE_DEFINED__
  3836. #define __IDWriteTextAnalysisSource_INTERFACE_DEFINED__
  3837. DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b);
  3838. #if defined(__cplusplus) && !defined(CINTERFACE)
  3839. MIDL_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b")
  3840. IDWriteTextAnalysisSource : public IUnknown
  3841. {
  3842. virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition(
  3843. UINT32 position,
  3844. const WCHAR **text,
  3845. UINT32 *text_len) = 0;
  3846. virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition(
  3847. UINT32 position,
  3848. const WCHAR **text,
  3849. UINT32 *text_len) = 0;
  3850. virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection(
  3851. ) = 0;
  3852. virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
  3853. UINT32 position,
  3854. UINT32 *text_len,
  3855. const WCHAR **locale) = 0;
  3856. virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution(
  3857. UINT32 position,
  3858. UINT32 *text_len,
  3859. IDWriteNumberSubstitution **substitution) = 0;
  3860. };
  3861. #ifdef __CRT_UUID_DECL
  3862. __CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b)
  3863. #endif
  3864. #else
  3865. typedef struct IDWriteTextAnalysisSourceVtbl {
  3866. BEGIN_INTERFACE
  3867. /*** IUnknown methods ***/
  3868. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3869. IDWriteTextAnalysisSource *This,
  3870. REFIID riid,
  3871. void **ppvObject);
  3872. ULONG (STDMETHODCALLTYPE *AddRef)(
  3873. IDWriteTextAnalysisSource *This);
  3874. ULONG (STDMETHODCALLTYPE *Release)(
  3875. IDWriteTextAnalysisSource *This);
  3876. /*** IDWriteTextAnalysisSource methods ***/
  3877. HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)(
  3878. IDWriteTextAnalysisSource *This,
  3879. UINT32 position,
  3880. const WCHAR **text,
  3881. UINT32 *text_len);
  3882. HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)(
  3883. IDWriteTextAnalysisSource *This,
  3884. UINT32 position,
  3885. const WCHAR **text,
  3886. UINT32 *text_len);
  3887. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)(
  3888. IDWriteTextAnalysisSource *This);
  3889. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  3890. IDWriteTextAnalysisSource *This,
  3891. UINT32 position,
  3892. UINT32 *text_len,
  3893. const WCHAR **locale);
  3894. HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)(
  3895. IDWriteTextAnalysisSource *This,
  3896. UINT32 position,
  3897. UINT32 *text_len,
  3898. IDWriteNumberSubstitution **substitution);
  3899. END_INTERFACE
  3900. } IDWriteTextAnalysisSourceVtbl;
  3901. interface IDWriteTextAnalysisSource {
  3902. CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl;
  3903. };
  3904. #ifdef COBJMACROS
  3905. #ifndef WIDL_C_INLINE_WRAPPERS
  3906. /*** IUnknown methods ***/
  3907. #define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3908. #define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This)
  3909. #define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This)
  3910. /*** IDWriteTextAnalysisSource methods ***/
  3911. #define IDWriteTextAnalysisSource_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len)
  3912. #define IDWriteTextAnalysisSource_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len)
  3913. #define IDWriteTextAnalysisSource_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This)
  3914. #define IDWriteTextAnalysisSource_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale)
  3915. #define IDWriteTextAnalysisSource_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution)
  3916. #else
  3917. /*** IUnknown methods ***/
  3918. static FORCEINLINE HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This,REFIID riid,void **ppvObject) {
  3919. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3920. }
  3921. static FORCEINLINE ULONG IDWriteTextAnalysisSource_AddRef(IDWriteTextAnalysisSource* This) {
  3922. return This->lpVtbl->AddRef(This);
  3923. }
  3924. static FORCEINLINE ULONG IDWriteTextAnalysisSource_Release(IDWriteTextAnalysisSource* This) {
  3925. return This->lpVtbl->Release(This);
  3926. }
  3927. /*** IDWriteTextAnalysisSource methods ***/
  3928. static FORCEINLINE HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) {
  3929. return This->lpVtbl->GetTextAtPosition(This,position,text,text_len);
  3930. }
  3931. static FORCEINLINE HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) {
  3932. return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len);
  3933. }
  3934. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextAnalysisSource_GetParagraphReadingDirection(IDWriteTextAnalysisSource* This) {
  3935. return This->lpVtbl->GetParagraphReadingDirection(This);
  3936. }
  3937. static FORCEINLINE HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) {
  3938. return This->lpVtbl->GetLocaleName(This,position,text_len,locale);
  3939. }
  3940. static FORCEINLINE HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) {
  3941. return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution);
  3942. }
  3943. #endif
  3944. #endif
  3945. #endif
  3946. #endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */
  3947. /*****************************************************************************
  3948. * IDWriteTextAnalysisSink interface
  3949. */
  3950. #ifndef __IDWriteTextAnalysisSink_INTERFACE_DEFINED__
  3951. #define __IDWriteTextAnalysisSink_INTERFACE_DEFINED__
  3952. DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6);
  3953. #if defined(__cplusplus) && !defined(CINTERFACE)
  3954. MIDL_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6")
  3955. IDWriteTextAnalysisSink : public IUnknown
  3956. {
  3957. virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis(
  3958. UINT32 position,
  3959. UINT32 length,
  3960. const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) = 0;
  3961. virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints(
  3962. UINT32 position,
  3963. UINT32 length,
  3964. const DWRITE_LINE_BREAKPOINT *breakpoints) = 0;
  3965. virtual HRESULT STDMETHODCALLTYPE SetBidiLevel(
  3966. UINT32 position,
  3967. UINT32 length,
  3968. UINT8 explicitLevel,
  3969. UINT8 resolvedLevel) = 0;
  3970. virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution(
  3971. UINT32 position,
  3972. UINT32 length,
  3973. IDWriteNumberSubstitution *substitution) = 0;
  3974. };
  3975. #ifdef __CRT_UUID_DECL
  3976. __CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6)
  3977. #endif
  3978. #else
  3979. typedef struct IDWriteTextAnalysisSinkVtbl {
  3980. BEGIN_INTERFACE
  3981. /*** IUnknown methods ***/
  3982. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3983. IDWriteTextAnalysisSink *This,
  3984. REFIID riid,
  3985. void **ppvObject);
  3986. ULONG (STDMETHODCALLTYPE *AddRef)(
  3987. IDWriteTextAnalysisSink *This);
  3988. ULONG (STDMETHODCALLTYPE *Release)(
  3989. IDWriteTextAnalysisSink *This);
  3990. /*** IDWriteTextAnalysisSink methods ***/
  3991. HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)(
  3992. IDWriteTextAnalysisSink *This,
  3993. UINT32 position,
  3994. UINT32 length,
  3995. const DWRITE_SCRIPT_ANALYSIS *scriptanalysis);
  3996. HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)(
  3997. IDWriteTextAnalysisSink *This,
  3998. UINT32 position,
  3999. UINT32 length,
  4000. const DWRITE_LINE_BREAKPOINT *breakpoints);
  4001. HRESULT (STDMETHODCALLTYPE *SetBidiLevel)(
  4002. IDWriteTextAnalysisSink *This,
  4003. UINT32 position,
  4004. UINT32 length,
  4005. UINT8 explicitLevel,
  4006. UINT8 resolvedLevel);
  4007. HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)(
  4008. IDWriteTextAnalysisSink *This,
  4009. UINT32 position,
  4010. UINT32 length,
  4011. IDWriteNumberSubstitution *substitution);
  4012. END_INTERFACE
  4013. } IDWriteTextAnalysisSinkVtbl;
  4014. interface IDWriteTextAnalysisSink {
  4015. CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl;
  4016. };
  4017. #ifdef COBJMACROS
  4018. #ifndef WIDL_C_INLINE_WRAPPERS
  4019. /*** IUnknown methods ***/
  4020. #define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4021. #define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  4022. #define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This)
  4023. /*** IDWriteTextAnalysisSink methods ***/
  4024. #define IDWriteTextAnalysisSink_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis)
  4025. #define IDWriteTextAnalysisSink_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints)
  4026. #define IDWriteTextAnalysisSink_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel)
  4027. #define IDWriteTextAnalysisSink_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution)
  4028. #else
  4029. /*** IUnknown methods ***/
  4030. static FORCEINLINE HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This,REFIID riid,void **ppvObject) {
  4031. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4032. }
  4033. static FORCEINLINE ULONG IDWriteTextAnalysisSink_AddRef(IDWriteTextAnalysisSink* This) {
  4034. return This->lpVtbl->AddRef(This);
  4035. }
  4036. static FORCEINLINE ULONG IDWriteTextAnalysisSink_Release(IDWriteTextAnalysisSink* This) {
  4037. return This->lpVtbl->Release(This);
  4038. }
  4039. /*** IDWriteTextAnalysisSink methods ***/
  4040. static FORCEINLINE HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) {
  4041. return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis);
  4042. }
  4043. static FORCEINLINE HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) {
  4044. return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints);
  4045. }
  4046. static FORCEINLINE HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) {
  4047. return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel);
  4048. }
  4049. static FORCEINLINE HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) {
  4050. return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution);
  4051. }
  4052. #endif
  4053. #endif
  4054. #endif
  4055. #endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */
  4056. /*****************************************************************************
  4057. * IDWriteTextAnalyzer interface
  4058. */
  4059. #ifndef __IDWriteTextAnalyzer_INTERFACE_DEFINED__
  4060. #define __IDWriteTextAnalyzer_INTERFACE_DEFINED__
  4061. DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d);
  4062. #if defined(__cplusplus) && !defined(CINTERFACE)
  4063. MIDL_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d")
  4064. IDWriteTextAnalyzer : public IUnknown
  4065. {
  4066. virtual HRESULT STDMETHODCALLTYPE AnalyzeScript(
  4067. IDWriteTextAnalysisSource *source,
  4068. UINT32 position,
  4069. UINT32 length,
  4070. IDWriteTextAnalysisSink *sink) = 0;
  4071. virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi(
  4072. IDWriteTextAnalysisSource *source,
  4073. UINT32 position,
  4074. UINT32 length,
  4075. IDWriteTextAnalysisSink *sink) = 0;
  4076. virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution(
  4077. IDWriteTextAnalysisSource *source,
  4078. UINT32 position,
  4079. UINT32 length,
  4080. IDWriteTextAnalysisSink *sink) = 0;
  4081. virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints(
  4082. IDWriteTextAnalysisSource *source,
  4083. UINT32 position,
  4084. UINT32 length,
  4085. IDWriteTextAnalysisSink *sink) = 0;
  4086. virtual HRESULT STDMETHODCALLTYPE GetGlyphs(
  4087. const WCHAR *text,
  4088. UINT32 length,
  4089. IDWriteFontFace *font_face,
  4090. WINBOOL is_sideways,
  4091. WINBOOL is_rtl,
  4092. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4093. const WCHAR *locale,
  4094. IDWriteNumberSubstitution *substitution,
  4095. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4096. const UINT32 *feature_range_len,
  4097. UINT32 feature_ranges,
  4098. UINT32 max_glyph_count,
  4099. UINT16 *clustermap,
  4100. DWRITE_SHAPING_TEXT_PROPERTIES *text_props,
  4101. UINT16 *glyph_indices,
  4102. DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4103. UINT32 *actual_glyph_count) = 0;
  4104. virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements(
  4105. const WCHAR *text,
  4106. const UINT16 *clustermap,
  4107. DWRITE_SHAPING_TEXT_PROPERTIES *props,
  4108. UINT32 text_len,
  4109. const UINT16 *glyph_indices,
  4110. const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4111. UINT32 glyph_count,
  4112. IDWriteFontFace *font_face,
  4113. FLOAT fontEmSize,
  4114. WINBOOL is_sideways,
  4115. WINBOOL is_rtl,
  4116. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4117. const WCHAR *locale,
  4118. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4119. const UINT32 *feature_range_len,
  4120. UINT32 feature_ranges,
  4121. FLOAT *glyph_advances,
  4122. DWRITE_GLYPH_OFFSET *glyph_offsets) = 0;
  4123. virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements(
  4124. const WCHAR *text,
  4125. const UINT16 *clustermap,
  4126. DWRITE_SHAPING_TEXT_PROPERTIES *props,
  4127. UINT32 text_len,
  4128. const UINT16 *glyph_indices,
  4129. const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4130. UINT32 glyph_count,
  4131. IDWriteFontFace *font_face,
  4132. FLOAT fontEmSize,
  4133. FLOAT pixels_per_dip,
  4134. const DWRITE_MATRIX *transform,
  4135. WINBOOL use_gdi_natural,
  4136. WINBOOL is_sideways,
  4137. WINBOOL is_rtl,
  4138. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4139. const WCHAR *locale,
  4140. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4141. const UINT32 *feature_range_lengths,
  4142. UINT32 feature_ranges,
  4143. FLOAT *glyph_advances,
  4144. DWRITE_GLYPH_OFFSET *glyph_offsets) = 0;
  4145. };
  4146. #ifdef __CRT_UUID_DECL
  4147. __CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d)
  4148. #endif
  4149. #else
  4150. typedef struct IDWriteTextAnalyzerVtbl {
  4151. BEGIN_INTERFACE
  4152. /*** IUnknown methods ***/
  4153. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4154. IDWriteTextAnalyzer *This,
  4155. REFIID riid,
  4156. void **ppvObject);
  4157. ULONG (STDMETHODCALLTYPE *AddRef)(
  4158. IDWriteTextAnalyzer *This);
  4159. ULONG (STDMETHODCALLTYPE *Release)(
  4160. IDWriteTextAnalyzer *This);
  4161. /*** IDWriteTextAnalyzer methods ***/
  4162. HRESULT (STDMETHODCALLTYPE *AnalyzeScript)(
  4163. IDWriteTextAnalyzer *This,
  4164. IDWriteTextAnalysisSource *source,
  4165. UINT32 position,
  4166. UINT32 length,
  4167. IDWriteTextAnalysisSink *sink);
  4168. HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)(
  4169. IDWriteTextAnalyzer *This,
  4170. IDWriteTextAnalysisSource *source,
  4171. UINT32 position,
  4172. UINT32 length,
  4173. IDWriteTextAnalysisSink *sink);
  4174. HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)(
  4175. IDWriteTextAnalyzer *This,
  4176. IDWriteTextAnalysisSource *source,
  4177. UINT32 position,
  4178. UINT32 length,
  4179. IDWriteTextAnalysisSink *sink);
  4180. HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)(
  4181. IDWriteTextAnalyzer *This,
  4182. IDWriteTextAnalysisSource *source,
  4183. UINT32 position,
  4184. UINT32 length,
  4185. IDWriteTextAnalysisSink *sink);
  4186. HRESULT (STDMETHODCALLTYPE *GetGlyphs)(
  4187. IDWriteTextAnalyzer *This,
  4188. const WCHAR *text,
  4189. UINT32 length,
  4190. IDWriteFontFace *font_face,
  4191. WINBOOL is_sideways,
  4192. WINBOOL is_rtl,
  4193. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4194. const WCHAR *locale,
  4195. IDWriteNumberSubstitution *substitution,
  4196. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4197. const UINT32 *feature_range_len,
  4198. UINT32 feature_ranges,
  4199. UINT32 max_glyph_count,
  4200. UINT16 *clustermap,
  4201. DWRITE_SHAPING_TEXT_PROPERTIES *text_props,
  4202. UINT16 *glyph_indices,
  4203. DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4204. UINT32 *actual_glyph_count);
  4205. HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)(
  4206. IDWriteTextAnalyzer *This,
  4207. const WCHAR *text,
  4208. const UINT16 *clustermap,
  4209. DWRITE_SHAPING_TEXT_PROPERTIES *props,
  4210. UINT32 text_len,
  4211. const UINT16 *glyph_indices,
  4212. const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4213. UINT32 glyph_count,
  4214. IDWriteFontFace *font_face,
  4215. FLOAT fontEmSize,
  4216. WINBOOL is_sideways,
  4217. WINBOOL is_rtl,
  4218. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4219. const WCHAR *locale,
  4220. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4221. const UINT32 *feature_range_len,
  4222. UINT32 feature_ranges,
  4223. FLOAT *glyph_advances,
  4224. DWRITE_GLYPH_OFFSET *glyph_offsets);
  4225. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)(
  4226. IDWriteTextAnalyzer *This,
  4227. const WCHAR *text,
  4228. const UINT16 *clustermap,
  4229. DWRITE_SHAPING_TEXT_PROPERTIES *props,
  4230. UINT32 text_len,
  4231. const UINT16 *glyph_indices,
  4232. const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
  4233. UINT32 glyph_count,
  4234. IDWriteFontFace *font_face,
  4235. FLOAT fontEmSize,
  4236. FLOAT pixels_per_dip,
  4237. const DWRITE_MATRIX *transform,
  4238. WINBOOL use_gdi_natural,
  4239. WINBOOL is_sideways,
  4240. WINBOOL is_rtl,
  4241. const DWRITE_SCRIPT_ANALYSIS *analysis,
  4242. const WCHAR *locale,
  4243. const DWRITE_TYPOGRAPHIC_FEATURES **features,
  4244. const UINT32 *feature_range_lengths,
  4245. UINT32 feature_ranges,
  4246. FLOAT *glyph_advances,
  4247. DWRITE_GLYPH_OFFSET *glyph_offsets);
  4248. END_INTERFACE
  4249. } IDWriteTextAnalyzerVtbl;
  4250. interface IDWriteTextAnalyzer {
  4251. CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl;
  4252. };
  4253. #ifdef COBJMACROS
  4254. #ifndef WIDL_C_INLINE_WRAPPERS
  4255. /*** IUnknown methods ***/
  4256. #define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4257. #define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This)
  4258. #define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This)
  4259. /*** IDWriteTextAnalyzer methods ***/
  4260. #define IDWriteTextAnalyzer_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink)
  4261. #define IDWriteTextAnalyzer_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink)
  4262. #define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink)
  4263. #define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink)
  4264. #define IDWriteTextAnalyzer_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)
  4265. #define IDWriteTextAnalyzer_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)
  4266. #define IDWriteTextAnalyzer_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)
  4267. #else
  4268. /*** IUnknown methods ***/
  4269. static FORCEINLINE HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This,REFIID riid,void **ppvObject) {
  4270. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4271. }
  4272. static FORCEINLINE ULONG IDWriteTextAnalyzer_AddRef(IDWriteTextAnalyzer* This) {
  4273. return This->lpVtbl->AddRef(This);
  4274. }
  4275. static FORCEINLINE ULONG IDWriteTextAnalyzer_Release(IDWriteTextAnalyzer* This) {
  4276. return This->lpVtbl->Release(This);
  4277. }
  4278. /*** IDWriteTextAnalyzer methods ***/
  4279. static FORCEINLINE HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
  4280. return This->lpVtbl->AnalyzeScript(This,source,position,length,sink);
  4281. }
  4282. static FORCEINLINE HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
  4283. return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink);
  4284. }
  4285. static FORCEINLINE HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
  4286. return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink);
  4287. }
  4288. static FORCEINLINE HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
  4289. return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink);
  4290. }
  4291. static FORCEINLINE HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* 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) {
  4292. 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);
  4293. }
  4294. static FORCEINLINE HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* 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) {
  4295. 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);
  4296. }
  4297. static FORCEINLINE HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* 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) {
  4298. 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);
  4299. }
  4300. #endif
  4301. #endif
  4302. #endif
  4303. #endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */
  4304. /*****************************************************************************
  4305. * IDWriteGlyphRunAnalysis interface
  4306. */
  4307. #ifndef __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__
  4308. #define __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__
  4309. DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18);
  4310. #if defined(__cplusplus) && !defined(CINTERFACE)
  4311. MIDL_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118")
  4312. IDWriteGlyphRunAnalysis : public IUnknown
  4313. {
  4314. virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds(
  4315. DWRITE_TEXTURE_TYPE type,
  4316. RECT *bounds) = 0;
  4317. virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture(
  4318. DWRITE_TEXTURE_TYPE type,
  4319. const RECT *bounds,
  4320. BYTE *alphaValues,
  4321. UINT32 bufferSize) = 0;
  4322. virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams(
  4323. IDWriteRenderingParams *renderingParams,
  4324. FLOAT *blendGamma,
  4325. FLOAT *blendEnhancedContrast,
  4326. FLOAT *blendClearTypeLevel) = 0;
  4327. };
  4328. #ifdef __CRT_UUID_DECL
  4329. __CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18)
  4330. #endif
  4331. #else
  4332. typedef struct IDWriteGlyphRunAnalysisVtbl {
  4333. BEGIN_INTERFACE
  4334. /*** IUnknown methods ***/
  4335. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4336. IDWriteGlyphRunAnalysis *This,
  4337. REFIID riid,
  4338. void **ppvObject);
  4339. ULONG (STDMETHODCALLTYPE *AddRef)(
  4340. IDWriteGlyphRunAnalysis *This);
  4341. ULONG (STDMETHODCALLTYPE *Release)(
  4342. IDWriteGlyphRunAnalysis *This);
  4343. /*** IDWriteGlyphRunAnalysis methods ***/
  4344. HRESULT (STDMETHODCALLTYPE *GetAlphaTextureBounds)(
  4345. IDWriteGlyphRunAnalysis *This,
  4346. DWRITE_TEXTURE_TYPE type,
  4347. RECT *bounds);
  4348. HRESULT (STDMETHODCALLTYPE *CreateAlphaTexture)(
  4349. IDWriteGlyphRunAnalysis *This,
  4350. DWRITE_TEXTURE_TYPE type,
  4351. const RECT *bounds,
  4352. BYTE *alphaValues,
  4353. UINT32 bufferSize);
  4354. HRESULT (STDMETHODCALLTYPE *GetAlphaBlendParams)(
  4355. IDWriteGlyphRunAnalysis *This,
  4356. IDWriteRenderingParams *renderingParams,
  4357. FLOAT *blendGamma,
  4358. FLOAT *blendEnhancedContrast,
  4359. FLOAT *blendClearTypeLevel);
  4360. END_INTERFACE
  4361. } IDWriteGlyphRunAnalysisVtbl;
  4362. interface IDWriteGlyphRunAnalysis {
  4363. CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl;
  4364. };
  4365. #ifdef COBJMACROS
  4366. #ifndef WIDL_C_INLINE_WRAPPERS
  4367. /*** IUnknown methods ***/
  4368. #define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4369. #define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This)
  4370. #define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This)
  4371. /*** IDWriteGlyphRunAnalysis methods ***/
  4372. #define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,type,bounds) (This)->lpVtbl->GetAlphaTextureBounds(This,type,bounds)
  4373. #define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize)
  4374. #define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel)
  4375. #else
  4376. /*** IUnknown methods ***/
  4377. static FORCEINLINE HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This,REFIID riid,void **ppvObject) {
  4378. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4379. }
  4380. static FORCEINLINE ULONG IDWriteGlyphRunAnalysis_AddRef(IDWriteGlyphRunAnalysis* This) {
  4381. return This->lpVtbl->AddRef(This);
  4382. }
  4383. static FORCEINLINE ULONG IDWriteGlyphRunAnalysis_Release(IDWriteGlyphRunAnalysis* This) {
  4384. return This->lpVtbl->Release(This);
  4385. }
  4386. /*** IDWriteGlyphRunAnalysis methods ***/
  4387. static FORCEINLINE HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,RECT *bounds) {
  4388. return This->lpVtbl->GetAlphaTextureBounds(This,type,bounds);
  4389. }
  4390. static FORCEINLINE HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,const RECT *bounds,BYTE *alphaValues,UINT32 bufferSize) {
  4391. return This->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize);
  4392. }
  4393. static FORCEINLINE HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This,IDWriteRenderingParams *renderingParams,FLOAT *blendGamma,FLOAT *blendEnhancedContrast,FLOAT *blendClearTypeLevel) {
  4394. return This->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel);
  4395. }
  4396. #endif
  4397. #endif
  4398. #endif
  4399. #endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */
  4400. /*****************************************************************************
  4401. * IDWriteFactory interface
  4402. */
  4403. #ifndef __IDWriteFactory_INTERFACE_DEFINED__
  4404. #define __IDWriteFactory_INTERFACE_DEFINED__
  4405. DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48);
  4406. #if defined(__cplusplus) && !defined(CINTERFACE)
  4407. MIDL_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48")
  4408. IDWriteFactory : public IUnknown
  4409. {
  4410. virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  4411. IDWriteFontCollection **collection,
  4412. WINBOOL check_for_updates = FALSE) = 0;
  4413. virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection(
  4414. IDWriteFontCollectionLoader *loader,
  4415. const void *key,
  4416. UINT32 key_size,
  4417. IDWriteFontCollection **collection) = 0;
  4418. virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader(
  4419. IDWriteFontCollectionLoader *loader) = 0;
  4420. virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader(
  4421. IDWriteFontCollectionLoader *loader) = 0;
  4422. virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference(
  4423. const WCHAR *path,
  4424. const FILETIME *writetime,
  4425. IDWriteFontFile **font_file) = 0;
  4426. virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference(
  4427. const void *reference_key,
  4428. UINT32 key_size,
  4429. IDWriteFontFileLoader *loader,
  4430. IDWriteFontFile **font_file) = 0;
  4431. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  4432. DWRITE_FONT_FACE_TYPE facetype,
  4433. UINT32 files_number,
  4434. IDWriteFontFile *const *font_files,
  4435. UINT32 index,
  4436. DWRITE_FONT_SIMULATIONS sim_flags,
  4437. IDWriteFontFace **font_face) = 0;
  4438. virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams(
  4439. IDWriteRenderingParams **params) = 0;
  4440. virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams(
  4441. HMONITOR monitor,
  4442. IDWriteRenderingParams **params) = 0;
  4443. virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
  4444. FLOAT gamma,
  4445. FLOAT enhancedContrast,
  4446. FLOAT cleartype_level,
  4447. DWRITE_PIXEL_GEOMETRY geometry,
  4448. DWRITE_RENDERING_MODE mode,
  4449. IDWriteRenderingParams **params) = 0;
  4450. virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader(
  4451. IDWriteFontFileLoader *loader) = 0;
  4452. virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader(
  4453. IDWriteFontFileLoader *loader) = 0;
  4454. virtual HRESULT STDMETHODCALLTYPE CreateTextFormat(
  4455. const WCHAR *family_name,
  4456. IDWriteFontCollection *collection,
  4457. DWRITE_FONT_WEIGHT weight,
  4458. DWRITE_FONT_STYLE style,
  4459. DWRITE_FONT_STRETCH stretch,
  4460. FLOAT size,
  4461. const WCHAR *locale,
  4462. IDWriteTextFormat **format) = 0;
  4463. virtual HRESULT STDMETHODCALLTYPE CreateTypography(
  4464. IDWriteTypography **typography) = 0;
  4465. virtual HRESULT STDMETHODCALLTYPE GetGdiInterop(
  4466. IDWriteGdiInterop **gdi_interop) = 0;
  4467. virtual HRESULT STDMETHODCALLTYPE CreateTextLayout(
  4468. const WCHAR *string,
  4469. UINT32 len,
  4470. IDWriteTextFormat *format,
  4471. FLOAT max_width,
  4472. FLOAT max_height,
  4473. IDWriteTextLayout **layout) = 0;
  4474. virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout(
  4475. const WCHAR *string,
  4476. UINT32 len,
  4477. IDWriteTextFormat *format,
  4478. FLOAT layout_width,
  4479. FLOAT layout_height,
  4480. FLOAT pixels_per_dip,
  4481. const DWRITE_MATRIX *transform,
  4482. WINBOOL use_gdi_natural,
  4483. IDWriteTextLayout **layout) = 0;
  4484. virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign(
  4485. IDWriteTextFormat *format,
  4486. IDWriteInlineObject **trimming_sign) = 0;
  4487. virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer(
  4488. IDWriteTextAnalyzer **analyzer) = 0;
  4489. virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution(
  4490. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  4491. const WCHAR *locale,
  4492. WINBOOL ignore_user_override,
  4493. IDWriteNumberSubstitution **substitution) = 0;
  4494. virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
  4495. const DWRITE_GLYPH_RUN *glyph_run,
  4496. FLOAT pixels_per_dip,
  4497. const DWRITE_MATRIX *transform,
  4498. DWRITE_RENDERING_MODE rendering_mode,
  4499. DWRITE_MEASURING_MODE measuring_mode,
  4500. FLOAT baseline_x,
  4501. FLOAT baseline_y,
  4502. IDWriteGlyphRunAnalysis **analysis) = 0;
  4503. };
  4504. #ifdef __CRT_UUID_DECL
  4505. __CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48)
  4506. #endif
  4507. #else
  4508. typedef struct IDWriteFactoryVtbl {
  4509. BEGIN_INTERFACE
  4510. /*** IUnknown methods ***/
  4511. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4512. IDWriteFactory *This,
  4513. REFIID riid,
  4514. void **ppvObject);
  4515. ULONG (STDMETHODCALLTYPE *AddRef)(
  4516. IDWriteFactory *This);
  4517. ULONG (STDMETHODCALLTYPE *Release)(
  4518. IDWriteFactory *This);
  4519. /*** IDWriteFactory methods ***/
  4520. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  4521. IDWriteFactory *This,
  4522. IDWriteFontCollection **collection,
  4523. WINBOOL check_for_updates);
  4524. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  4525. IDWriteFactory *This,
  4526. IDWriteFontCollectionLoader *loader,
  4527. const void *key,
  4528. UINT32 key_size,
  4529. IDWriteFontCollection **collection);
  4530. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  4531. IDWriteFactory *This,
  4532. IDWriteFontCollectionLoader *loader);
  4533. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  4534. IDWriteFactory *This,
  4535. IDWriteFontCollectionLoader *loader);
  4536. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  4537. IDWriteFactory *This,
  4538. const WCHAR *path,
  4539. const FILETIME *writetime,
  4540. IDWriteFontFile **font_file);
  4541. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  4542. IDWriteFactory *This,
  4543. const void *reference_key,
  4544. UINT32 key_size,
  4545. IDWriteFontFileLoader *loader,
  4546. IDWriteFontFile **font_file);
  4547. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  4548. IDWriteFactory *This,
  4549. DWRITE_FONT_FACE_TYPE facetype,
  4550. UINT32 files_number,
  4551. IDWriteFontFile *const *font_files,
  4552. UINT32 index,
  4553. DWRITE_FONT_SIMULATIONS sim_flags,
  4554. IDWriteFontFace **font_face);
  4555. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  4556. IDWriteFactory *This,
  4557. IDWriteRenderingParams **params);
  4558. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  4559. IDWriteFactory *This,
  4560. HMONITOR monitor,
  4561. IDWriteRenderingParams **params);
  4562. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  4563. IDWriteFactory *This,
  4564. FLOAT gamma,
  4565. FLOAT enhancedContrast,
  4566. FLOAT cleartype_level,
  4567. DWRITE_PIXEL_GEOMETRY geometry,
  4568. DWRITE_RENDERING_MODE mode,
  4569. IDWriteRenderingParams **params);
  4570. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  4571. IDWriteFactory *This,
  4572. IDWriteFontFileLoader *loader);
  4573. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  4574. IDWriteFactory *This,
  4575. IDWriteFontFileLoader *loader);
  4576. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  4577. IDWriteFactory *This,
  4578. const WCHAR *family_name,
  4579. IDWriteFontCollection *collection,
  4580. DWRITE_FONT_WEIGHT weight,
  4581. DWRITE_FONT_STYLE style,
  4582. DWRITE_FONT_STRETCH stretch,
  4583. FLOAT size,
  4584. const WCHAR *locale,
  4585. IDWriteTextFormat **format);
  4586. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  4587. IDWriteFactory *This,
  4588. IDWriteTypography **typography);
  4589. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  4590. IDWriteFactory *This,
  4591. IDWriteGdiInterop **gdi_interop);
  4592. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  4593. IDWriteFactory *This,
  4594. const WCHAR *string,
  4595. UINT32 len,
  4596. IDWriteTextFormat *format,
  4597. FLOAT max_width,
  4598. FLOAT max_height,
  4599. IDWriteTextLayout **layout);
  4600. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  4601. IDWriteFactory *This,
  4602. const WCHAR *string,
  4603. UINT32 len,
  4604. IDWriteTextFormat *format,
  4605. FLOAT layout_width,
  4606. FLOAT layout_height,
  4607. FLOAT pixels_per_dip,
  4608. const DWRITE_MATRIX *transform,
  4609. WINBOOL use_gdi_natural,
  4610. IDWriteTextLayout **layout);
  4611. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  4612. IDWriteFactory *This,
  4613. IDWriteTextFormat *format,
  4614. IDWriteInlineObject **trimming_sign);
  4615. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  4616. IDWriteFactory *This,
  4617. IDWriteTextAnalyzer **analyzer);
  4618. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  4619. IDWriteFactory *This,
  4620. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  4621. const WCHAR *locale,
  4622. WINBOOL ignore_user_override,
  4623. IDWriteNumberSubstitution **substitution);
  4624. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  4625. IDWriteFactory *This,
  4626. const DWRITE_GLYPH_RUN *glyph_run,
  4627. FLOAT pixels_per_dip,
  4628. const DWRITE_MATRIX *transform,
  4629. DWRITE_RENDERING_MODE rendering_mode,
  4630. DWRITE_MEASURING_MODE measuring_mode,
  4631. FLOAT baseline_x,
  4632. FLOAT baseline_y,
  4633. IDWriteGlyphRunAnalysis **analysis);
  4634. END_INTERFACE
  4635. } IDWriteFactoryVtbl;
  4636. interface IDWriteFactory {
  4637. CONST_VTBL IDWriteFactoryVtbl* lpVtbl;
  4638. };
  4639. #ifdef COBJMACROS
  4640. #ifndef WIDL_C_INLINE_WRAPPERS
  4641. /*** IUnknown methods ***/
  4642. #define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4643. #define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  4644. #define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This)
  4645. /*** IDWriteFactory methods ***/
  4646. #define IDWriteFactory_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates)
  4647. #define IDWriteFactory_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  4648. #define IDWriteFactory_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  4649. #define IDWriteFactory_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  4650. #define IDWriteFactory_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  4651. #define IDWriteFactory_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  4652. #define IDWriteFactory_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)
  4653. #define IDWriteFactory_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  4654. #define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  4655. #define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params)
  4656. #define IDWriteFactory_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  4657. #define IDWriteFactory_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  4658. #define IDWriteFactory_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  4659. #define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  4660. #define IDWriteFactory_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  4661. #define IDWriteFactory_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  4662. #define IDWriteFactory_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)
  4663. #define IDWriteFactory_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  4664. #define IDWriteFactory_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  4665. #define IDWriteFactory_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  4666. #define IDWriteFactory_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)
  4667. #else
  4668. /*** IUnknown methods ***/
  4669. static FORCEINLINE HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This,REFIID riid,void **ppvObject) {
  4670. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4671. }
  4672. static FORCEINLINE ULONG IDWriteFactory_AddRef(IDWriteFactory* This) {
  4673. return This->lpVtbl->AddRef(This);
  4674. }
  4675. static FORCEINLINE ULONG IDWriteFactory_Release(IDWriteFactory* This) {
  4676. return This->lpVtbl->Release(This);
  4677. }
  4678. /*** IDWriteFactory methods ***/
  4679. static FORCEINLINE HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  4680. return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates);
  4681. }
  4682. static FORCEINLINE HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  4683. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  4684. }
  4685. static FORCEINLINE HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) {
  4686. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  4687. }
  4688. static FORCEINLINE HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) {
  4689. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  4690. }
  4691. static FORCEINLINE HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  4692. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  4693. }
  4694. static FORCEINLINE HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  4695. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  4696. }
  4697. static FORCEINLINE HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  4698. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  4699. }
  4700. static FORCEINLINE HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This,IDWriteRenderingParams **params) {
  4701. return This->lpVtbl->CreateRenderingParams(This,params);
  4702. }
  4703. static FORCEINLINE HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  4704. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  4705. }
  4706. static FORCEINLINE HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This,FLOAT gamma,FLOAT enhancedContrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams **params) {
  4707. return This->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params);
  4708. }
  4709. static FORCEINLINE HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) {
  4710. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  4711. }
  4712. static FORCEINLINE HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) {
  4713. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  4714. }
  4715. static FORCEINLINE HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* 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) {
  4716. return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  4717. }
  4718. static FORCEINLINE HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This,IDWriteTypography **typography) {
  4719. return This->lpVtbl->CreateTypography(This,typography);
  4720. }
  4721. static FORCEINLINE HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This,IDWriteGdiInterop **gdi_interop) {
  4722. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  4723. }
  4724. static FORCEINLINE HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  4725. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  4726. }
  4727. static FORCEINLINE HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* 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) {
  4728. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  4729. }
  4730. static FORCEINLINE HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  4731. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  4732. }
  4733. static FORCEINLINE HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This,IDWriteTextAnalyzer **analyzer) {
  4734. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  4735. }
  4736. static FORCEINLINE HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  4737. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  4738. }
  4739. static FORCEINLINE HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* 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) {
  4740. return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis);
  4741. }
  4742. #endif
  4743. #endif
  4744. #endif
  4745. #endif /* __IDWriteFactory_INTERFACE_DEFINED__ */
  4746. HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**);
  4747. #define FACILITY_DWRITE 0x898
  4748. #define DWRITE_ERR_BASE 0x5000
  4749. #define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))
  4750. #define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code)
  4751. /* Begin additional prototypes for all interfaces */
  4752. /* End additional prototypes */
  4753. #ifdef __cplusplus
  4754. }
  4755. #endif
  4756. #endif /* __dwrite_h__ */