dwrite_3.h 557 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216
  1. /*** Autogenerated by WIDL 7.7 from include/dwrite_3.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_3_h__
  14. #define __dwrite_3_h__
  15. /* Forward declarations */
  16. #ifndef __IDWriteFontDownloadListener_FWD_DEFINED__
  17. #define __IDWriteFontDownloadListener_FWD_DEFINED__
  18. typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener;
  19. #ifdef __cplusplus
  20. interface IDWriteFontDownloadListener;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
  24. #define __IDWriteFontDownloadQueue_FWD_DEFINED__
  25. typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
  26. #ifdef __cplusplus
  27. interface IDWriteFontDownloadQueue;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IDWriteRenderingParams3_FWD_DEFINED__
  31. #define __IDWriteRenderingParams3_FWD_DEFINED__
  32. typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3;
  33. #ifdef __cplusplus
  34. interface IDWriteRenderingParams3;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IDWriteStringList_FWD_DEFINED__
  38. #define __IDWriteStringList_FWD_DEFINED__
  39. typedef interface IDWriteStringList IDWriteStringList;
  40. #ifdef __cplusplus
  41. interface IDWriteStringList;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IDWriteFontSet_FWD_DEFINED__
  45. #define __IDWriteFontSet_FWD_DEFINED__
  46. typedef interface IDWriteFontSet IDWriteFontSet;
  47. #ifdef __cplusplus
  48. interface IDWriteFontSet;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IDWriteFontResource_FWD_DEFINED__
  52. #define __IDWriteFontResource_FWD_DEFINED__
  53. typedef interface IDWriteFontResource IDWriteFontResource;
  54. #ifdef __cplusplus
  55. interface IDWriteFontResource;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IDWriteFontSet1_FWD_DEFINED__
  59. #define __IDWriteFontSet1_FWD_DEFINED__
  60. typedef interface IDWriteFontSet1 IDWriteFontSet1;
  61. #ifdef __cplusplus
  62. interface IDWriteFontSet1;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IDWriteFont3_FWD_DEFINED__
  66. #define __IDWriteFont3_FWD_DEFINED__
  67. typedef interface IDWriteFont3 IDWriteFont3;
  68. #ifdef __cplusplus
  69. interface IDWriteFont3;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IDWriteFontFamily1_FWD_DEFINED__
  73. #define __IDWriteFontFamily1_FWD_DEFINED__
  74. typedef interface IDWriteFontFamily1 IDWriteFontFamily1;
  75. #ifdef __cplusplus
  76. interface IDWriteFontFamily1;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IDWriteFontFamily2_FWD_DEFINED__
  80. #define __IDWriteFontFamily2_FWD_DEFINED__
  81. typedef interface IDWriteFontFamily2 IDWriteFontFamily2;
  82. #ifdef __cplusplus
  83. interface IDWriteFontFamily2;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IDWriteFontCollection1_FWD_DEFINED__
  87. #define __IDWriteFontCollection1_FWD_DEFINED__
  88. typedef interface IDWriteFontCollection1 IDWriteFontCollection1;
  89. #ifdef __cplusplus
  90. interface IDWriteFontCollection1;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IDWriteFontCollection2_FWD_DEFINED__
  94. #define __IDWriteFontCollection2_FWD_DEFINED__
  95. typedef interface IDWriteFontCollection2 IDWriteFontCollection2;
  96. #ifdef __cplusplus
  97. interface IDWriteFontCollection2;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IDWriteFontCollection3_FWD_DEFINED__
  101. #define __IDWriteFontCollection3_FWD_DEFINED__
  102. typedef interface IDWriteFontCollection3 IDWriteFontCollection3;
  103. #ifdef __cplusplus
  104. interface IDWriteFontCollection3;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IDWriteFontFaceReference_FWD_DEFINED__
  108. #define __IDWriteFontFaceReference_FWD_DEFINED__
  109. typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
  110. #ifdef __cplusplus
  111. interface IDWriteFontFaceReference;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
  115. #define __IDWriteFontFaceReference1_FWD_DEFINED__
  116. typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
  117. #ifdef __cplusplus
  118. interface IDWriteFontFaceReference1;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __IDWriteFontList1_FWD_DEFINED__
  122. #define __IDWriteFontList1_FWD_DEFINED__
  123. typedef interface IDWriteFontList1 IDWriteFontList1;
  124. #ifdef __cplusplus
  125. interface IDWriteFontList1;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __IDWriteFontList2_FWD_DEFINED__
  129. #define __IDWriteFontList2_FWD_DEFINED__
  130. typedef interface IDWriteFontList2 IDWriteFontList2;
  131. #ifdef __cplusplus
  132. interface IDWriteFontList2;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IDWriteFontSet2_FWD_DEFINED__
  136. #define __IDWriteFontSet2_FWD_DEFINED__
  137. typedef interface IDWriteFontSet2 IDWriteFontSet2;
  138. #ifdef __cplusplus
  139. interface IDWriteFontSet2;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IDWriteFontSet3_FWD_DEFINED__
  143. #define __IDWriteFontSet3_FWD_DEFINED__
  144. typedef interface IDWriteFontSet3 IDWriteFontSet3;
  145. #ifdef __cplusplus
  146. interface IDWriteFontSet3;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IDWriteFontFace3_FWD_DEFINED__
  150. #define __IDWriteFontFace3_FWD_DEFINED__
  151. typedef interface IDWriteFontFace3 IDWriteFontFace3;
  152. #ifdef __cplusplus
  153. interface IDWriteFontFace3;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IDWriteTextFormat2_FWD_DEFINED__
  157. #define __IDWriteTextFormat2_FWD_DEFINED__
  158. typedef interface IDWriteTextFormat2 IDWriteTextFormat2;
  159. #ifdef __cplusplus
  160. interface IDWriteTextFormat2;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __IDWriteTextFormat3_FWD_DEFINED__
  164. #define __IDWriteTextFormat3_FWD_DEFINED__
  165. typedef interface IDWriteTextFormat3 IDWriteTextFormat3;
  166. #ifdef __cplusplus
  167. interface IDWriteTextFormat3;
  168. #endif /* __cplusplus */
  169. #endif
  170. #ifndef __IDWriteTextLayout3_FWD_DEFINED__
  171. #define __IDWriteTextLayout3_FWD_DEFINED__
  172. typedef interface IDWriteTextLayout3 IDWriteTextLayout3;
  173. #ifdef __cplusplus
  174. interface IDWriteTextLayout3;
  175. #endif /* __cplusplus */
  176. #endif
  177. #ifndef __IDWriteTextLayout4_FWD_DEFINED__
  178. #define __IDWriteTextLayout4_FWD_DEFINED__
  179. typedef interface IDWriteTextLayout4 IDWriteTextLayout4;
  180. #ifdef __cplusplus
  181. interface IDWriteTextLayout4;
  182. #endif /* __cplusplus */
  183. #endif
  184. #ifndef __IDWriteFontFallback1_FWD_DEFINED__
  185. #define __IDWriteFontFallback1_FWD_DEFINED__
  186. typedef interface IDWriteFontFallback1 IDWriteFontFallback1;
  187. #ifdef __cplusplus
  188. interface IDWriteFontFallback1;
  189. #endif /* __cplusplus */
  190. #endif
  191. #ifndef __IDWriteGdiInterop1_FWD_DEFINED__
  192. #define __IDWriteGdiInterop1_FWD_DEFINED__
  193. typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1;
  194. #ifdef __cplusplus
  195. interface IDWriteGdiInterop1;
  196. #endif /* __cplusplus */
  197. #endif
  198. #ifndef __IDWriteFontSetBuilder_FWD_DEFINED__
  199. #define __IDWriteFontSetBuilder_FWD_DEFINED__
  200. typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder;
  201. #ifdef __cplusplus
  202. interface IDWriteFontSetBuilder;
  203. #endif /* __cplusplus */
  204. #endif
  205. #ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__
  206. #define __IDWriteFontSetBuilder1_FWD_DEFINED__
  207. typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1;
  208. #ifdef __cplusplus
  209. interface IDWriteFontSetBuilder1;
  210. #endif /* __cplusplus */
  211. #endif
  212. #ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__
  213. #define __IDWriteFontSetBuilder2_FWD_DEFINED__
  214. typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2;
  215. #ifdef __cplusplus
  216. interface IDWriteFontSetBuilder2;
  217. #endif /* __cplusplus */
  218. #endif
  219. #ifndef __IDWriteFactory3_FWD_DEFINED__
  220. #define __IDWriteFactory3_FWD_DEFINED__
  221. typedef interface IDWriteFactory3 IDWriteFactory3;
  222. #ifdef __cplusplus
  223. interface IDWriteFactory3;
  224. #endif /* __cplusplus */
  225. #endif
  226. #ifndef __IDWriteFontFace4_FWD_DEFINED__
  227. #define __IDWriteFontFace4_FWD_DEFINED__
  228. typedef interface IDWriteFontFace4 IDWriteFontFace4;
  229. #ifdef __cplusplus
  230. interface IDWriteFontFace4;
  231. #endif /* __cplusplus */
  232. #endif
  233. #ifndef __IDWriteFontFace5_FWD_DEFINED__
  234. #define __IDWriteFontFace5_FWD_DEFINED__
  235. typedef interface IDWriteFontFace5 IDWriteFontFace5;
  236. #ifdef __cplusplus
  237. interface IDWriteFontFace5;
  238. #endif /* __cplusplus */
  239. #endif
  240. #ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
  241. #define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
  242. typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1;
  243. #ifdef __cplusplus
  244. interface IDWriteColorGlyphRunEnumerator1;
  245. #endif /* __cplusplus */
  246. #endif
  247. #ifndef __IDWriteFactory4_FWD_DEFINED__
  248. #define __IDWriteFactory4_FWD_DEFINED__
  249. typedef interface IDWriteFactory4 IDWriteFactory4;
  250. #ifdef __cplusplus
  251. interface IDWriteFactory4;
  252. #endif /* __cplusplus */
  253. #endif
  254. #ifndef __IDWriteAsyncResult_FWD_DEFINED__
  255. #define __IDWriteAsyncResult_FWD_DEFINED__
  256. typedef interface IDWriteAsyncResult IDWriteAsyncResult;
  257. #ifdef __cplusplus
  258. interface IDWriteAsyncResult;
  259. #endif /* __cplusplus */
  260. #endif
  261. #ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__
  262. #define __IDWriteRemoteFontFileStream_FWD_DEFINED__
  263. typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream;
  264. #ifdef __cplusplus
  265. interface IDWriteRemoteFontFileStream;
  266. #endif /* __cplusplus */
  267. #endif
  268. #ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__
  269. #define __IDWriteRemoteFontFileLoader_FWD_DEFINED__
  270. typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader;
  271. #ifdef __cplusplus
  272. interface IDWriteRemoteFontFileLoader;
  273. #endif /* __cplusplus */
  274. #endif
  275. #ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
  276. #define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
  277. typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader;
  278. #ifdef __cplusplus
  279. interface IDWriteInMemoryFontFileLoader;
  280. #endif /* __cplusplus */
  281. #endif
  282. #ifndef __IDWriteFactory5_FWD_DEFINED__
  283. #define __IDWriteFactory5_FWD_DEFINED__
  284. typedef interface IDWriteFactory5 IDWriteFactory5;
  285. #ifdef __cplusplus
  286. interface IDWriteFactory5;
  287. #endif /* __cplusplus */
  288. #endif
  289. #ifndef __IDWriteFactory6_FWD_DEFINED__
  290. #define __IDWriteFactory6_FWD_DEFINED__
  291. typedef interface IDWriteFactory6 IDWriteFactory6;
  292. #ifdef __cplusplus
  293. interface IDWriteFactory6;
  294. #endif /* __cplusplus */
  295. #endif
  296. #ifndef __IDWriteFactory7_FWD_DEFINED__
  297. #define __IDWriteFactory7_FWD_DEFINED__
  298. typedef interface IDWriteFactory7 IDWriteFactory7;
  299. #ifdef __cplusplus
  300. interface IDWriteFactory7;
  301. #endif /* __cplusplus */
  302. #endif
  303. /* Headers for imported files */
  304. #include <dwrite_2.h>
  305. #ifdef __cplusplus
  306. extern "C" {
  307. #endif
  308. #ifndef __IDWriteFontFaceReference_FWD_DEFINED__
  309. #define __IDWriteFontFaceReference_FWD_DEFINED__
  310. typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
  311. #ifdef __cplusplus
  312. interface IDWriteFontFaceReference;
  313. #endif /* __cplusplus */
  314. #endif
  315. #ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
  316. #define __IDWriteFontFaceReference1_FWD_DEFINED__
  317. typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
  318. #ifdef __cplusplus
  319. interface IDWriteFontFaceReference1;
  320. #endif /* __cplusplus */
  321. #endif
  322. #ifndef __IDWriteFontFace3_FWD_DEFINED__
  323. #define __IDWriteFontFace3_FWD_DEFINED__
  324. typedef interface IDWriteFontFace3 IDWriteFontFace3;
  325. #ifdef __cplusplus
  326. interface IDWriteFontFace3;
  327. #endif /* __cplusplus */
  328. #endif
  329. #ifndef __IDWriteFontSet_FWD_DEFINED__
  330. #define __IDWriteFontSet_FWD_DEFINED__
  331. typedef interface IDWriteFontSet IDWriteFontSet;
  332. #ifdef __cplusplus
  333. interface IDWriteFontSet;
  334. #endif /* __cplusplus */
  335. #endif
  336. #ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
  337. #define __IDWriteFontDownloadQueue_FWD_DEFINED__
  338. typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
  339. #ifdef __cplusplus
  340. interface IDWriteFontDownloadQueue;
  341. #endif /* __cplusplus */
  342. #endif
  343. #ifndef __IDWriteFontFace5_FWD_DEFINED__
  344. #define __IDWriteFontFace5_FWD_DEFINED__
  345. typedef interface IDWriteFontFace5 IDWriteFontFace5;
  346. #ifdef __cplusplus
  347. interface IDWriteFontFace5;
  348. #endif /* __cplusplus */
  349. #endif
  350. #ifndef __IDWriteFontList2_FWD_DEFINED__
  351. #define __IDWriteFontList2_FWD_DEFINED__
  352. typedef interface IDWriteFontList2 IDWriteFontList2;
  353. #ifdef __cplusplus
  354. interface IDWriteFontList2;
  355. #endif /* __cplusplus */
  356. #endif
  357. #ifndef _WINGDI_
  358. typedef struct FONTSIGNATURE FONTSIGNATURE;
  359. #endif /* _WINGDI_ */
  360. typedef enum DWRITE_LOCALITY {
  361. DWRITE_LOCALITY_REMOTE = 0,
  362. DWRITE_LOCALITY_PARTIAL = 1,
  363. DWRITE_LOCALITY_LOCAL = 2
  364. } DWRITE_LOCALITY;
  365. typedef enum DWRITE_RENDERING_MODE1 {
  366. DWRITE_RENDERING_MODE1_DEFAULT = 0,
  367. DWRITE_RENDERING_MODE1_ALIASED = 1,
  368. DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2,
  369. DWRITE_RENDERING_MODE1_GDI_NATURAL = 3,
  370. DWRITE_RENDERING_MODE1_NATURAL = 4,
  371. DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5,
  372. DWRITE_RENDERING_MODE1_OUTLINE = 6,
  373. DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7
  374. } DWRITE_RENDERING_MODE1;
  375. typedef enum DWRITE_FONT_PROPERTY_ID {
  376. DWRITE_FONT_PROPERTY_ID_NONE = 0,
  377. DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1,
  378. DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2,
  379. DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3,
  380. DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4,
  381. DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5,
  382. DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6,
  383. DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7,
  384. DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8,
  385. DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9,
  386. DWRITE_FONT_PROPERTY_ID_WEIGHT = 10,
  387. DWRITE_FONT_PROPERTY_ID_STRETCH = 11,
  388. DWRITE_FONT_PROPERTY_ID_STYLE = 12,
  389. DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13,
  390. DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1,
  391. DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1,
  392. DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
  393. DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
  394. DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME
  395. } DWRITE_FONT_PROPERTY_ID;
  396. typedef struct DWRITE_FONT_PROPERTY {
  397. DWRITE_FONT_PROPERTY_ID propertyId;
  398. const WCHAR *propertyValue;
  399. const WCHAR *localeName;
  400. } DWRITE_FONT_PROPERTY;
  401. #ifdef __cplusplus
  402. #define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
  403. #else
  404. #define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
  405. #endif
  406. typedef enum DWRITE_FONT_AXIS_TAG {
  407. DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
  408. DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
  409. DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73,
  410. DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f,
  411. DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469
  412. } DWRITE_FONT_AXIS_TAG;
  413. typedef enum DWRITE_FONT_SOURCE_TYPE {
  414. DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0,
  415. DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1,
  416. DWRITE_FONT_SOURCE_TYPE_PER_USER = 2,
  417. DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3,
  418. DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4
  419. } DWRITE_FONT_SOURCE_TYPE;
  420. typedef struct DWRITE_FONT_AXIS_VALUE {
  421. DWRITE_FONT_AXIS_TAG axisTag;
  422. FLOAT value;
  423. } DWRITE_FONT_AXIS_VALUE;
  424. typedef struct DWRITE_FONT_AXIS_RANGE {
  425. DWRITE_FONT_AXIS_TAG axisTag;
  426. FLOAT minValue;
  427. FLOAT maxValue;
  428. } DWRITE_FONT_AXIS_RANGE;
  429. typedef enum DWRITE_AUTOMATIC_FONT_AXES {
  430. DWRITE_AUTOMATIC_FONT_AXES_NONE = 0,
  431. DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1
  432. } DWRITE_AUTOMATIC_FONT_AXES;
  433. typedef enum DWRITE_FONT_AXIS_ATTRIBUTES {
  434. DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0,
  435. DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1,
  436. DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2
  437. } DWRITE_FONT_AXIS_ATTRIBUTES;
  438. typedef enum DWRITE_FONT_FAMILY_MODEL {
  439. DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0,
  440. DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1
  441. } DWRITE_FONT_FAMILY_MODEL;
  442. /*****************************************************************************
  443. * IDWriteFontDownloadListener interface
  444. */
  445. #ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__
  446. #define __IDWriteFontDownloadListener_INTERFACE_DEFINED__
  447. DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7);
  448. #if defined(__cplusplus) && !defined(CINTERFACE)
  449. MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7")
  450. IDWriteFontDownloadListener : public IUnknown
  451. {
  452. virtual void STDMETHODCALLTYPE DownloadCompleted(
  453. IDWriteFontDownloadQueue *queue,
  454. IUnknown *context,
  455. HRESULT result) = 0;
  456. };
  457. #ifdef __CRT_UUID_DECL
  458. __CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7)
  459. #endif
  460. #else
  461. typedef struct IDWriteFontDownloadListenerVtbl {
  462. BEGIN_INTERFACE
  463. /*** IUnknown methods ***/
  464. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  465. IDWriteFontDownloadListener *This,
  466. REFIID riid,
  467. void **ppvObject);
  468. ULONG (STDMETHODCALLTYPE *AddRef)(
  469. IDWriteFontDownloadListener *This);
  470. ULONG (STDMETHODCALLTYPE *Release)(
  471. IDWriteFontDownloadListener *This);
  472. /*** IDWriteFontDownloadListener methods ***/
  473. void (STDMETHODCALLTYPE *DownloadCompleted)(
  474. IDWriteFontDownloadListener *This,
  475. IDWriteFontDownloadQueue *queue,
  476. IUnknown *context,
  477. HRESULT result);
  478. END_INTERFACE
  479. } IDWriteFontDownloadListenerVtbl;
  480. interface IDWriteFontDownloadListener {
  481. CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl;
  482. };
  483. #ifdef COBJMACROS
  484. #ifndef WIDL_C_INLINE_WRAPPERS
  485. /*** IUnknown methods ***/
  486. #define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  487. #define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This)
  488. #define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This)
  489. /*** IDWriteFontDownloadListener methods ***/
  490. #define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result)
  491. #else
  492. /*** IUnknown methods ***/
  493. static FORCEINLINE HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) {
  494. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  495. }
  496. static FORCEINLINE ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) {
  497. return This->lpVtbl->AddRef(This);
  498. }
  499. static FORCEINLINE ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) {
  500. return This->lpVtbl->Release(This);
  501. }
  502. /*** IDWriteFontDownloadListener methods ***/
  503. static FORCEINLINE void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) {
  504. This->lpVtbl->DownloadCompleted(This,queue,context,result);
  505. }
  506. #endif
  507. #endif
  508. #endif
  509. #endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */
  510. /*****************************************************************************
  511. * IDWriteFontDownloadQueue interface
  512. */
  513. #ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
  514. #define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
  515. DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91);
  516. #if defined(__cplusplus) && !defined(CINTERFACE)
  517. MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91")
  518. IDWriteFontDownloadQueue : public IUnknown
  519. {
  520. virtual HRESULT STDMETHODCALLTYPE AddListener(
  521. IDWriteFontDownloadListener *listener,
  522. UINT32 *token) = 0;
  523. virtual HRESULT STDMETHODCALLTYPE RemoveListener(
  524. UINT32 token) = 0;
  525. virtual WINBOOL STDMETHODCALLTYPE IsEmpty(
  526. ) = 0;
  527. virtual HRESULT STDMETHODCALLTYPE BeginDownload(
  528. IUnknown *context) = 0;
  529. virtual HRESULT STDMETHODCALLTYPE CancelDownload(
  530. ) = 0;
  531. virtual UINT64 STDMETHODCALLTYPE GetGenerationCount(
  532. ) = 0;
  533. };
  534. #ifdef __CRT_UUID_DECL
  535. __CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91)
  536. #endif
  537. #else
  538. typedef struct IDWriteFontDownloadQueueVtbl {
  539. BEGIN_INTERFACE
  540. /*** IUnknown methods ***/
  541. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  542. IDWriteFontDownloadQueue *This,
  543. REFIID riid,
  544. void **ppvObject);
  545. ULONG (STDMETHODCALLTYPE *AddRef)(
  546. IDWriteFontDownloadQueue *This);
  547. ULONG (STDMETHODCALLTYPE *Release)(
  548. IDWriteFontDownloadQueue *This);
  549. /*** IDWriteFontDownloadQueue methods ***/
  550. HRESULT (STDMETHODCALLTYPE *AddListener)(
  551. IDWriteFontDownloadQueue *This,
  552. IDWriteFontDownloadListener *listener,
  553. UINT32 *token);
  554. HRESULT (STDMETHODCALLTYPE *RemoveListener)(
  555. IDWriteFontDownloadQueue *This,
  556. UINT32 token);
  557. WINBOOL (STDMETHODCALLTYPE *IsEmpty)(
  558. IDWriteFontDownloadQueue *This);
  559. HRESULT (STDMETHODCALLTYPE *BeginDownload)(
  560. IDWriteFontDownloadQueue *This,
  561. IUnknown *context);
  562. HRESULT (STDMETHODCALLTYPE *CancelDownload)(
  563. IDWriteFontDownloadQueue *This);
  564. UINT64 (STDMETHODCALLTYPE *GetGenerationCount)(
  565. IDWriteFontDownloadQueue *This);
  566. END_INTERFACE
  567. } IDWriteFontDownloadQueueVtbl;
  568. interface IDWriteFontDownloadQueue {
  569. CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl;
  570. };
  571. #ifdef COBJMACROS
  572. #ifndef WIDL_C_INLINE_WRAPPERS
  573. /*** IUnknown methods ***/
  574. #define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  575. #define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
  576. #define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This)
  577. /*** IDWriteFontDownloadQueue methods ***/
  578. #define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token)
  579. #define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token)
  580. #define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This)
  581. #define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context)
  582. #define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This)
  583. #define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This)
  584. #else
  585. /*** IUnknown methods ***/
  586. static FORCEINLINE HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) {
  587. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  588. }
  589. static FORCEINLINE ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) {
  590. return This->lpVtbl->AddRef(This);
  591. }
  592. static FORCEINLINE ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) {
  593. return This->lpVtbl->Release(This);
  594. }
  595. /*** IDWriteFontDownloadQueue methods ***/
  596. static FORCEINLINE HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) {
  597. return This->lpVtbl->AddListener(This,listener,token);
  598. }
  599. static FORCEINLINE HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) {
  600. return This->lpVtbl->RemoveListener(This,token);
  601. }
  602. static FORCEINLINE WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) {
  603. return This->lpVtbl->IsEmpty(This);
  604. }
  605. static FORCEINLINE HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) {
  606. return This->lpVtbl->BeginDownload(This,context);
  607. }
  608. static FORCEINLINE HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) {
  609. return This->lpVtbl->CancelDownload(This);
  610. }
  611. static FORCEINLINE UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) {
  612. return This->lpVtbl->GetGenerationCount(This);
  613. }
  614. #endif
  615. #endif
  616. #endif
  617. #endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */
  618. /*****************************************************************************
  619. * IDWriteRenderingParams3 interface
  620. */
  621. #ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__
  622. #define __IDWriteRenderingParams3_INTERFACE_DEFINED__
  623. DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc);
  624. #if defined(__cplusplus) && !defined(CINTERFACE)
  625. MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc")
  626. IDWriteRenderingParams3 : public IDWriteRenderingParams2
  627. {
  628. virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1(
  629. ) = 0;
  630. };
  631. #ifdef __CRT_UUID_DECL
  632. __CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc)
  633. #endif
  634. #else
  635. typedef struct IDWriteRenderingParams3Vtbl {
  636. BEGIN_INTERFACE
  637. /*** IUnknown methods ***/
  638. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  639. IDWriteRenderingParams3 *This,
  640. REFIID riid,
  641. void **ppvObject);
  642. ULONG (STDMETHODCALLTYPE *AddRef)(
  643. IDWriteRenderingParams3 *This);
  644. ULONG (STDMETHODCALLTYPE *Release)(
  645. IDWriteRenderingParams3 *This);
  646. /*** IDWriteRenderingParams methods ***/
  647. FLOAT (STDMETHODCALLTYPE *GetGamma)(
  648. IDWriteRenderingParams3 *This);
  649. FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
  650. IDWriteRenderingParams3 *This);
  651. FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
  652. IDWriteRenderingParams3 *This);
  653. DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
  654. IDWriteRenderingParams3 *This);
  655. DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
  656. IDWriteRenderingParams3 *This);
  657. /*** IDWriteRenderingParams1 methods ***/
  658. FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
  659. IDWriteRenderingParams3 *This);
  660. /*** IDWriteRenderingParams2 methods ***/
  661. DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)(
  662. IDWriteRenderingParams3 *This);
  663. /*** IDWriteRenderingParams3 methods ***/
  664. DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)(
  665. IDWriteRenderingParams3 *This);
  666. END_INTERFACE
  667. } IDWriteRenderingParams3Vtbl;
  668. interface IDWriteRenderingParams3 {
  669. CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl;
  670. };
  671. #ifdef COBJMACROS
  672. #ifndef WIDL_C_INLINE_WRAPPERS
  673. /*** IUnknown methods ***/
  674. #define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  675. #define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This)
  676. #define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This)
  677. /*** IDWriteRenderingParams methods ***/
  678. #define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This)
  679. #define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
  680. #define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
  681. #define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
  682. #define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
  683. /*** IDWriteRenderingParams1 methods ***/
  684. #define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
  685. /*** IDWriteRenderingParams2 methods ***/
  686. #define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This)
  687. /*** IDWriteRenderingParams3 methods ***/
  688. #define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This)
  689. #else
  690. /*** IUnknown methods ***/
  691. static FORCEINLINE HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) {
  692. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  693. }
  694. static FORCEINLINE ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) {
  695. return This->lpVtbl->AddRef(This);
  696. }
  697. static FORCEINLINE ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) {
  698. return This->lpVtbl->Release(This);
  699. }
  700. /*** IDWriteRenderingParams methods ***/
  701. static FORCEINLINE FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) {
  702. return This->lpVtbl->GetGamma(This);
  703. }
  704. static FORCEINLINE FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) {
  705. return This->lpVtbl->GetEnhancedContrast(This);
  706. }
  707. static FORCEINLINE FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) {
  708. return This->lpVtbl->GetClearTypeLevel(This);
  709. }
  710. static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) {
  711. return This->lpVtbl->GetPixelGeometry(This);
  712. }
  713. static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) {
  714. return This->lpVtbl->GetRenderingMode(This);
  715. }
  716. /*** IDWriteRenderingParams1 methods ***/
  717. static FORCEINLINE FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) {
  718. return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
  719. }
  720. /*** IDWriteRenderingParams2 methods ***/
  721. static FORCEINLINE DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) {
  722. return This->lpVtbl->GetGridFitMode(This);
  723. }
  724. /*** IDWriteRenderingParams3 methods ***/
  725. static FORCEINLINE DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) {
  726. return This->lpVtbl->GetRenderingMode1(This);
  727. }
  728. #endif
  729. #endif
  730. #endif
  731. #endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */
  732. /*****************************************************************************
  733. * IDWriteStringList interface
  734. */
  735. #ifndef __IDWriteStringList_INTERFACE_DEFINED__
  736. #define __IDWriteStringList_INTERFACE_DEFINED__
  737. DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1257, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e);
  738. #if defined(__cplusplus) && !defined(CINTERFACE)
  739. MIDL_INTERFACE("cfee3140-1257-47ca-8b85-31bfcf3f2d0e")
  740. IDWriteStringList : public IUnknown
  741. {
  742. virtual UINT32 STDMETHODCALLTYPE GetCount(
  743. ) = 0;
  744. virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
  745. UINT32 index,
  746. UINT32 *length) = 0;
  747. virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
  748. UINT32 index,
  749. WCHAR *name,
  750. UINT32 size) = 0;
  751. virtual HRESULT STDMETHODCALLTYPE GetStringLength(
  752. UINT32 index,
  753. UINT32 *length) = 0;
  754. virtual HRESULT STDMETHODCALLTYPE GetString(
  755. UINT32 index,
  756. WCHAR *string,
  757. UINT32 size) = 0;
  758. };
  759. #ifdef __CRT_UUID_DECL
  760. __CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1257, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e)
  761. #endif
  762. #else
  763. typedef struct IDWriteStringListVtbl {
  764. BEGIN_INTERFACE
  765. /*** IUnknown methods ***/
  766. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  767. IDWriteStringList *This,
  768. REFIID riid,
  769. void **ppvObject);
  770. ULONG (STDMETHODCALLTYPE *AddRef)(
  771. IDWriteStringList *This);
  772. ULONG (STDMETHODCALLTYPE *Release)(
  773. IDWriteStringList *This);
  774. /*** IDWriteStringList methods ***/
  775. UINT32 (STDMETHODCALLTYPE *GetCount)(
  776. IDWriteStringList *This);
  777. HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)(
  778. IDWriteStringList *This,
  779. UINT32 index,
  780. UINT32 *length);
  781. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  782. IDWriteStringList *This,
  783. UINT32 index,
  784. WCHAR *name,
  785. UINT32 size);
  786. HRESULT (STDMETHODCALLTYPE *GetStringLength)(
  787. IDWriteStringList *This,
  788. UINT32 index,
  789. UINT32 *length);
  790. HRESULT (STDMETHODCALLTYPE *GetString)(
  791. IDWriteStringList *This,
  792. UINT32 index,
  793. WCHAR *string,
  794. UINT32 size);
  795. END_INTERFACE
  796. } IDWriteStringListVtbl;
  797. interface IDWriteStringList {
  798. CONST_VTBL IDWriteStringListVtbl* lpVtbl;
  799. };
  800. #ifdef COBJMACROS
  801. #ifndef WIDL_C_INLINE_WRAPPERS
  802. /*** IUnknown methods ***/
  803. #define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  804. #define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This)
  805. #define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This)
  806. /*** IDWriteStringList methods ***/
  807. #define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This)
  808. #define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
  809. #define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size)
  810. #define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
  811. #define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size)
  812. #else
  813. /*** IUnknown methods ***/
  814. static FORCEINLINE HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) {
  815. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  816. }
  817. static FORCEINLINE ULONG IDWriteStringList_AddRef(IDWriteStringList* This) {
  818. return This->lpVtbl->AddRef(This);
  819. }
  820. static FORCEINLINE ULONG IDWriteStringList_Release(IDWriteStringList* This) {
  821. return This->lpVtbl->Release(This);
  822. }
  823. /*** IDWriteStringList methods ***/
  824. static FORCEINLINE UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) {
  825. return This->lpVtbl->GetCount(This);
  826. }
  827. static FORCEINLINE HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
  828. return This->lpVtbl->GetLocaleNameLength(This,index,length);
  829. }
  830. static FORCEINLINE HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) {
  831. return This->lpVtbl->GetLocaleName(This,index,name,size);
  832. }
  833. static FORCEINLINE HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
  834. return This->lpVtbl->GetStringLength(This,index,length);
  835. }
  836. static FORCEINLINE HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) {
  837. return This->lpVtbl->GetString(This,index,string,size);
  838. }
  839. #endif
  840. #endif
  841. #endif
  842. #endif /* __IDWriteStringList_INTERFACE_DEFINED__ */
  843. /*****************************************************************************
  844. * IDWriteFontSet interface
  845. */
  846. #ifndef __IDWriteFontSet_INTERFACE_DEFINED__
  847. #define __IDWriteFontSet_INTERFACE_DEFINED__
  848. DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b);
  849. #if defined(__cplusplus) && !defined(CINTERFACE)
  850. MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b")
  851. IDWriteFontSet : public IUnknown
  852. {
  853. virtual UINT32 STDMETHODCALLTYPE GetFontCount(
  854. ) = 0;
  855. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  856. UINT32 index,
  857. IDWriteFontFaceReference **reference) = 0;
  858. virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference(
  859. IDWriteFontFaceReference *reference,
  860. UINT32 *index,
  861. WINBOOL *exists) = 0;
  862. virtual HRESULT STDMETHODCALLTYPE FindFontFace(
  863. IDWriteFontFace *fontface,
  864. UINT32 *index,
  865. WINBOOL *exists) = 0;
  866. virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__(
  867. DWRITE_FONT_PROPERTY_ID id,
  868. IDWriteStringList **values) = 0;
  869. virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_(
  870. DWRITE_FONT_PROPERTY_ID id,
  871. const WCHAR *preferred_locales,
  872. IDWriteStringList **values) = 0;
  873. virtual HRESULT STDMETHODCALLTYPE GetPropertyValues(
  874. UINT32 index,
  875. DWRITE_FONT_PROPERTY_ID id,
  876. WINBOOL *exists,
  877. IDWriteLocalizedStrings **values) = 0;
  878. virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount(
  879. const DWRITE_FONT_PROPERTY *property,
  880. UINT32 *count) = 0;
  881. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_(
  882. const WCHAR *family,
  883. DWRITE_FONT_WEIGHT weight,
  884. DWRITE_FONT_STRETCH stretch,
  885. DWRITE_FONT_STYLE style,
  886. IDWriteFontSet **fontset) = 0;
  887. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
  888. const DWRITE_FONT_PROPERTY *props,
  889. UINT32 count,
  890. IDWriteFontSet **fontset) = 0;
  891. };
  892. #ifdef __CRT_UUID_DECL
  893. __CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b)
  894. #endif
  895. #else
  896. typedef struct IDWriteFontSetVtbl {
  897. BEGIN_INTERFACE
  898. /*** IUnknown methods ***/
  899. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  900. IDWriteFontSet *This,
  901. REFIID riid,
  902. void **ppvObject);
  903. ULONG (STDMETHODCALLTYPE *AddRef)(
  904. IDWriteFontSet *This);
  905. ULONG (STDMETHODCALLTYPE *Release)(
  906. IDWriteFontSet *This);
  907. /*** IDWriteFontSet methods ***/
  908. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  909. IDWriteFontSet *This);
  910. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  911. IDWriteFontSet *This,
  912. UINT32 index,
  913. IDWriteFontFaceReference **reference);
  914. HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
  915. IDWriteFontSet *This,
  916. IDWriteFontFaceReference *reference,
  917. UINT32 *index,
  918. WINBOOL *exists);
  919. HRESULT (STDMETHODCALLTYPE *FindFontFace)(
  920. IDWriteFontSet *This,
  921. IDWriteFontFace *fontface,
  922. UINT32 *index,
  923. WINBOOL *exists);
  924. HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
  925. IDWriteFontSet *This,
  926. DWRITE_FONT_PROPERTY_ID id,
  927. IDWriteStringList **values);
  928. HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
  929. IDWriteFontSet *This,
  930. DWRITE_FONT_PROPERTY_ID id,
  931. const WCHAR *preferred_locales,
  932. IDWriteStringList **values);
  933. HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
  934. IDWriteFontSet *This,
  935. UINT32 index,
  936. DWRITE_FONT_PROPERTY_ID id,
  937. WINBOOL *exists,
  938. IDWriteLocalizedStrings **values);
  939. HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
  940. IDWriteFontSet *This,
  941. const DWRITE_FONT_PROPERTY *property,
  942. UINT32 *count);
  943. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
  944. IDWriteFontSet *This,
  945. const WCHAR *family,
  946. DWRITE_FONT_WEIGHT weight,
  947. DWRITE_FONT_STRETCH stretch,
  948. DWRITE_FONT_STYLE style,
  949. IDWriteFontSet **fontset);
  950. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  951. IDWriteFontSet *This,
  952. const DWRITE_FONT_PROPERTY *props,
  953. UINT32 count,
  954. IDWriteFontSet **fontset);
  955. END_INTERFACE
  956. } IDWriteFontSetVtbl;
  957. interface IDWriteFontSet {
  958. CONST_VTBL IDWriteFontSetVtbl* lpVtbl;
  959. };
  960. #ifdef COBJMACROS
  961. #ifndef WIDL_C_INLINE_WRAPPERS
  962. /*** IUnknown methods ***/
  963. #define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  964. #define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This)
  965. #define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This)
  966. /*** IDWriteFontSet methods ***/
  967. #define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  968. #define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
  969. #define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
  970. #define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
  971. #define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
  972. #define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
  973. #define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
  974. #define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
  975. #define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
  976. #define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset)
  977. #else
  978. /*** IUnknown methods ***/
  979. static FORCEINLINE HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) {
  980. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  981. }
  982. static FORCEINLINE ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) {
  983. return This->lpVtbl->AddRef(This);
  984. }
  985. static FORCEINLINE ULONG IDWriteFontSet_Release(IDWriteFontSet* This) {
  986. return This->lpVtbl->Release(This);
  987. }
  988. /*** IDWriteFontSet methods ***/
  989. static FORCEINLINE UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) {
  990. return This->lpVtbl->GetFontCount(This);
  991. }
  992. static FORCEINLINE HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) {
  993. return This->lpVtbl->GetFontFaceReference(This,index,reference);
  994. }
  995. static FORCEINLINE HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
  996. return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
  997. }
  998. static FORCEINLINE HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
  999. return This->lpVtbl->FindFontFace(This,fontface,index,exists);
  1000. }
  1001. static FORCEINLINE HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
  1002. return This->lpVtbl->GetPropertyValues__(This,id,values);
  1003. }
  1004. static FORCEINLINE HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
  1005. return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
  1006. }
  1007. static FORCEINLINE HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
  1008. return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
  1009. }
  1010. static FORCEINLINE HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
  1011. return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
  1012. }
  1013. static FORCEINLINE HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
  1014. return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
  1015. }
  1016. static FORCEINLINE HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) {
  1017. return This->lpVtbl->GetMatchingFonts(This,props,count,fontset);
  1018. }
  1019. #endif
  1020. #endif
  1021. #endif
  1022. #endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */
  1023. /*****************************************************************************
  1024. * IDWriteFontResource interface
  1025. */
  1026. #ifndef __IDWriteFontResource_INTERFACE_DEFINED__
  1027. #define __IDWriteFontResource_INTERFACE_DEFINED__
  1028. DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2);
  1029. #if defined(__cplusplus) && !defined(CINTERFACE)
  1030. MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2")
  1031. IDWriteFontResource : public IUnknown
  1032. {
  1033. virtual HRESULT STDMETHODCALLTYPE GetFontFile(
  1034. IDWriteFontFile **fontfile) = 0;
  1035. virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
  1036. ) = 0;
  1037. virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount(
  1038. ) = 0;
  1039. virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues(
  1040. DWRITE_FONT_AXIS_VALUE *values,
  1041. UINT32 num_values) = 0;
  1042. virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
  1043. DWRITE_FONT_AXIS_RANGE *ranges,
  1044. UINT32 num_ranges) = 0;
  1045. virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes(
  1046. UINT32 axis) = 0;
  1047. virtual HRESULT STDMETHODCALLTYPE GetAxisNames(
  1048. UINT32 axis,
  1049. IDWriteLocalizedStrings **names) = 0;
  1050. virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount(
  1051. UINT32 axis) = 0;
  1052. virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames(
  1053. UINT32 axis,
  1054. UINT32 axis_value,
  1055. DWRITE_FONT_AXIS_RANGE *axis_range,
  1056. IDWriteLocalizedStrings **names) = 0;
  1057. virtual WINBOOL STDMETHODCALLTYPE HasVariations(
  1058. ) = 0;
  1059. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  1060. DWRITE_FONT_SIMULATIONS simulations,
  1061. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1062. UINT32 num_values,
  1063. IDWriteFontFace5 **fontface) = 0;
  1064. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
  1065. DWRITE_FONT_SIMULATIONS simulations,
  1066. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1067. UINT32 num_values,
  1068. IDWriteFontFaceReference1 **reference) = 0;
  1069. };
  1070. #ifdef __CRT_UUID_DECL
  1071. __CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2)
  1072. #endif
  1073. #else
  1074. typedef struct IDWriteFontResourceVtbl {
  1075. BEGIN_INTERFACE
  1076. /*** IUnknown methods ***/
  1077. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1078. IDWriteFontResource *This,
  1079. REFIID riid,
  1080. void **ppvObject);
  1081. ULONG (STDMETHODCALLTYPE *AddRef)(
  1082. IDWriteFontResource *This);
  1083. ULONG (STDMETHODCALLTYPE *Release)(
  1084. IDWriteFontResource *This);
  1085. /*** IDWriteFontResource methods ***/
  1086. HRESULT (STDMETHODCALLTYPE *GetFontFile)(
  1087. IDWriteFontResource *This,
  1088. IDWriteFontFile **fontfile);
  1089. UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
  1090. IDWriteFontResource *This);
  1091. UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)(
  1092. IDWriteFontResource *This);
  1093. HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)(
  1094. IDWriteFontResource *This,
  1095. DWRITE_FONT_AXIS_VALUE *values,
  1096. UINT32 num_values);
  1097. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
  1098. IDWriteFontResource *This,
  1099. DWRITE_FONT_AXIS_RANGE *ranges,
  1100. UINT32 num_ranges);
  1101. DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)(
  1102. IDWriteFontResource *This,
  1103. UINT32 axis);
  1104. HRESULT (STDMETHODCALLTYPE *GetAxisNames)(
  1105. IDWriteFontResource *This,
  1106. UINT32 axis,
  1107. IDWriteLocalizedStrings **names);
  1108. UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)(
  1109. IDWriteFontResource *This,
  1110. UINT32 axis);
  1111. HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)(
  1112. IDWriteFontResource *This,
  1113. UINT32 axis,
  1114. UINT32 axis_value,
  1115. DWRITE_FONT_AXIS_RANGE *axis_range,
  1116. IDWriteLocalizedStrings **names);
  1117. WINBOOL (STDMETHODCALLTYPE *HasVariations)(
  1118. IDWriteFontResource *This);
  1119. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  1120. IDWriteFontResource *This,
  1121. DWRITE_FONT_SIMULATIONS simulations,
  1122. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1123. UINT32 num_values,
  1124. IDWriteFontFace5 **fontface);
  1125. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  1126. IDWriteFontResource *This,
  1127. DWRITE_FONT_SIMULATIONS simulations,
  1128. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1129. UINT32 num_values,
  1130. IDWriteFontFaceReference1 **reference);
  1131. END_INTERFACE
  1132. } IDWriteFontResourceVtbl;
  1133. interface IDWriteFontResource {
  1134. CONST_VTBL IDWriteFontResourceVtbl* lpVtbl;
  1135. };
  1136. #ifdef COBJMACROS
  1137. #ifndef WIDL_C_INLINE_WRAPPERS
  1138. /*** IUnknown methods ***/
  1139. #define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1140. #define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This)
  1141. #define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This)
  1142. /*** IDWriteFontResource methods ***/
  1143. #define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
  1144. #define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
  1145. #define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This)
  1146. #define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values)
  1147. #define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges)
  1148. #define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis)
  1149. #define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names)
  1150. #define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis)
  1151. #define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names)
  1152. #define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This)
  1153. #define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface)
  1154. #define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference)
  1155. #else
  1156. /*** IUnknown methods ***/
  1157. static FORCEINLINE HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) {
  1158. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1159. }
  1160. static FORCEINLINE ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) {
  1161. return This->lpVtbl->AddRef(This);
  1162. }
  1163. static FORCEINLINE ULONG IDWriteFontResource_Release(IDWriteFontResource* This) {
  1164. return This->lpVtbl->Release(This);
  1165. }
  1166. /*** IDWriteFontResource methods ***/
  1167. static FORCEINLINE HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) {
  1168. return This->lpVtbl->GetFontFile(This,fontfile);
  1169. }
  1170. static FORCEINLINE UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) {
  1171. return This->lpVtbl->GetFontFaceIndex(This);
  1172. }
  1173. static FORCEINLINE UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) {
  1174. return This->lpVtbl->GetFontAxisCount(This);
  1175. }
  1176. static FORCEINLINE HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
  1177. return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values);
  1178. }
  1179. static FORCEINLINE HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) {
  1180. return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges);
  1181. }
  1182. static FORCEINLINE DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) {
  1183. return This->lpVtbl->GetFontAxisAttributes(This,axis);
  1184. }
  1185. static FORCEINLINE HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) {
  1186. return This->lpVtbl->GetAxisNames(This,axis,names);
  1187. }
  1188. static FORCEINLINE UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) {
  1189. return This->lpVtbl->GetAxisValueNameCount(This,axis);
  1190. }
  1191. static FORCEINLINE HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) {
  1192. return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names);
  1193. }
  1194. static FORCEINLINE WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) {
  1195. return This->lpVtbl->HasVariations(This);
  1196. }
  1197. static FORCEINLINE HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) {
  1198. return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface);
  1199. }
  1200. static FORCEINLINE HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) {
  1201. return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference);
  1202. }
  1203. #endif
  1204. #endif
  1205. #endif
  1206. #endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */
  1207. /*****************************************************************************
  1208. * IDWriteFontSet1 interface
  1209. */
  1210. #ifndef __IDWriteFontSet1_INTERFACE_DEFINED__
  1211. #define __IDWriteFontSet1_INTERFACE_DEFINED__
  1212. DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3);
  1213. #if defined(__cplusplus) && !defined(CINTERFACE)
  1214. MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3")
  1215. IDWriteFontSet1 : public IDWriteFontSet
  1216. {
  1217. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
  1218. const DWRITE_FONT_PROPERTY *property,
  1219. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1220. UINT32 num_values,
  1221. IDWriteFontSet1 **fontset) = 0;
  1222. virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources(
  1223. IDWriteFontSet1 **fontset) = 0;
  1224. virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__(
  1225. const UINT32 *indices,
  1226. UINT32 num_indices,
  1227. IDWriteFontSet1 **fontset) = 0;
  1228. virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_(
  1229. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1230. UINT32 num_ranges,
  1231. WINBOOL select_any_range,
  1232. IDWriteFontSet1 **fontset) = 0;
  1233. virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts(
  1234. const DWRITE_FONT_PROPERTY *props,
  1235. UINT32 num_properties,
  1236. WINBOOL select_any_property,
  1237. IDWriteFontSet1 **fontset) = 0;
  1238. virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_(
  1239. const DWRITE_FONT_AXIS_RANGE *ranges,
  1240. UINT32 num_ranges,
  1241. WINBOOL select_any_range,
  1242. UINT32 *indices,
  1243. UINT32 num_indices,
  1244. UINT32 *actual_num_indices) = 0;
  1245. virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices(
  1246. const DWRITE_FONT_PROPERTY *props,
  1247. UINT32 num_properties,
  1248. WINBOOL select_any_range,
  1249. UINT32 *indices,
  1250. UINT32 num_indices,
  1251. UINT32 *actual_num_indices) = 0;
  1252. virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_(
  1253. UINT32 font_index,
  1254. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1255. UINT32 num_ranges,
  1256. UINT32 *actual_num_ranges) = 0;
  1257. virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
  1258. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1259. UINT32 num_ranges,
  1260. UINT32 *actual_num_ranges) = 0;
  1261. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  1262. UINT32 index,
  1263. IDWriteFontFaceReference1 **reference) = 0;
  1264. virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
  1265. UINT32 index,
  1266. IDWriteFontResource **resource) = 0;
  1267. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  1268. UINT32 index,
  1269. IDWriteFontFace5 **fontface) = 0;
  1270. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
  1271. UINT32 index) = 0;
  1272. };
  1273. #ifdef __CRT_UUID_DECL
  1274. __CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3)
  1275. #endif
  1276. #else
  1277. typedef struct IDWriteFontSet1Vtbl {
  1278. BEGIN_INTERFACE
  1279. /*** IUnknown methods ***/
  1280. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1281. IDWriteFontSet1 *This,
  1282. REFIID riid,
  1283. void **ppvObject);
  1284. ULONG (STDMETHODCALLTYPE *AddRef)(
  1285. IDWriteFontSet1 *This);
  1286. ULONG (STDMETHODCALLTYPE *Release)(
  1287. IDWriteFontSet1 *This);
  1288. /*** IDWriteFontSet methods ***/
  1289. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  1290. IDWriteFontSet1 *This);
  1291. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  1292. IDWriteFontSet1 *This,
  1293. UINT32 index,
  1294. IDWriteFontFaceReference **reference);
  1295. HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
  1296. IDWriteFontSet1 *This,
  1297. IDWriteFontFaceReference *reference,
  1298. UINT32 *index,
  1299. WINBOOL *exists);
  1300. HRESULT (STDMETHODCALLTYPE *FindFontFace)(
  1301. IDWriteFontSet1 *This,
  1302. IDWriteFontFace *fontface,
  1303. UINT32 *index,
  1304. WINBOOL *exists);
  1305. HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
  1306. IDWriteFontSet1 *This,
  1307. DWRITE_FONT_PROPERTY_ID id,
  1308. IDWriteStringList **values);
  1309. HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
  1310. IDWriteFontSet1 *This,
  1311. DWRITE_FONT_PROPERTY_ID id,
  1312. const WCHAR *preferred_locales,
  1313. IDWriteStringList **values);
  1314. HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
  1315. IDWriteFontSet1 *This,
  1316. UINT32 index,
  1317. DWRITE_FONT_PROPERTY_ID id,
  1318. WINBOOL *exists,
  1319. IDWriteLocalizedStrings **values);
  1320. HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
  1321. IDWriteFontSet1 *This,
  1322. const DWRITE_FONT_PROPERTY *property,
  1323. UINT32 *count);
  1324. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
  1325. IDWriteFontSet1 *This,
  1326. const WCHAR *family,
  1327. DWRITE_FONT_WEIGHT weight,
  1328. DWRITE_FONT_STRETCH stretch,
  1329. DWRITE_FONT_STYLE style,
  1330. IDWriteFontSet **fontset);
  1331. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  1332. IDWriteFontSet1 *This,
  1333. const DWRITE_FONT_PROPERTY *props,
  1334. UINT32 count,
  1335. IDWriteFontSet **fontset);
  1336. /*** IDWriteFontSet1 methods ***/
  1337. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
  1338. IDWriteFontSet1 *This,
  1339. const DWRITE_FONT_PROPERTY *property,
  1340. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1341. UINT32 num_values,
  1342. IDWriteFontSet1 **fontset);
  1343. HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
  1344. IDWriteFontSet1 *This,
  1345. IDWriteFontSet1 **fontset);
  1346. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
  1347. IDWriteFontSet1 *This,
  1348. const UINT32 *indices,
  1349. UINT32 num_indices,
  1350. IDWriteFontSet1 **fontset);
  1351. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
  1352. IDWriteFontSet1 *This,
  1353. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1354. UINT32 num_ranges,
  1355. WINBOOL select_any_range,
  1356. IDWriteFontSet1 **fontset);
  1357. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
  1358. IDWriteFontSet1 *This,
  1359. const DWRITE_FONT_PROPERTY *props,
  1360. UINT32 num_properties,
  1361. WINBOOL select_any_property,
  1362. IDWriteFontSet1 **fontset);
  1363. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
  1364. IDWriteFontSet1 *This,
  1365. const DWRITE_FONT_AXIS_RANGE *ranges,
  1366. UINT32 num_ranges,
  1367. WINBOOL select_any_range,
  1368. UINT32 *indices,
  1369. UINT32 num_indices,
  1370. UINT32 *actual_num_indices);
  1371. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
  1372. IDWriteFontSet1 *This,
  1373. const DWRITE_FONT_PROPERTY *props,
  1374. UINT32 num_properties,
  1375. WINBOOL select_any_range,
  1376. UINT32 *indices,
  1377. UINT32 num_indices,
  1378. UINT32 *actual_num_indices);
  1379. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
  1380. IDWriteFontSet1 *This,
  1381. UINT32 font_index,
  1382. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1383. UINT32 num_ranges,
  1384. UINT32 *actual_num_ranges);
  1385. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
  1386. IDWriteFontSet1 *This,
  1387. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  1388. UINT32 num_ranges,
  1389. UINT32 *actual_num_ranges);
  1390. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
  1391. IDWriteFontSet1 *This,
  1392. UINT32 index,
  1393. IDWriteFontFaceReference1 **reference);
  1394. HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  1395. IDWriteFontSet1 *This,
  1396. UINT32 index,
  1397. IDWriteFontResource **resource);
  1398. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  1399. IDWriteFontSet1 *This,
  1400. UINT32 index,
  1401. IDWriteFontFace5 **fontface);
  1402. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  1403. IDWriteFontSet1 *This,
  1404. UINT32 index);
  1405. END_INTERFACE
  1406. } IDWriteFontSet1Vtbl;
  1407. interface IDWriteFontSet1 {
  1408. CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl;
  1409. };
  1410. #ifdef COBJMACROS
  1411. #ifndef WIDL_C_INLINE_WRAPPERS
  1412. /*** IUnknown methods ***/
  1413. #define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1414. #define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This)
  1415. #define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This)
  1416. /*** IDWriteFontSet methods ***/
  1417. #define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  1418. #define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
  1419. #define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
  1420. #define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
  1421. #define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
  1422. #define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
  1423. #define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
  1424. #define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
  1425. /*** IDWriteFontSet1 methods ***/
  1426. #define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
  1427. #define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
  1428. #define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
  1429. #define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
  1430. #define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
  1431. #define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
  1432. #define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
  1433. #define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
  1434. #define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
  1435. #define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
  1436. #define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
  1437. #define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
  1438. #define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  1439. #else
  1440. /*** IUnknown methods ***/
  1441. static FORCEINLINE HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) {
  1442. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1443. }
  1444. static FORCEINLINE ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) {
  1445. return This->lpVtbl->AddRef(This);
  1446. }
  1447. static FORCEINLINE ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) {
  1448. return This->lpVtbl->Release(This);
  1449. }
  1450. /*** IDWriteFontSet methods ***/
  1451. static FORCEINLINE UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) {
  1452. return This->lpVtbl->GetFontCount(This);
  1453. }
  1454. static FORCEINLINE HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
  1455. return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
  1456. }
  1457. static FORCEINLINE HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
  1458. return This->lpVtbl->FindFontFace(This,fontface,index,exists);
  1459. }
  1460. static FORCEINLINE HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
  1461. return This->lpVtbl->GetPropertyValues__(This,id,values);
  1462. }
  1463. static FORCEINLINE HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
  1464. return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
  1465. }
  1466. static FORCEINLINE HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
  1467. return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
  1468. }
  1469. static FORCEINLINE HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
  1470. return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
  1471. }
  1472. static FORCEINLINE HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
  1473. return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
  1474. }
  1475. /*** IDWriteFontSet1 methods ***/
  1476. static FORCEINLINE HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
  1477. return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
  1478. }
  1479. static FORCEINLINE HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) {
  1480. return This->lpVtbl->GetFirstFontResources(This,fontset);
  1481. }
  1482. static FORCEINLINE HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
  1483. return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
  1484. }
  1485. static FORCEINLINE HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
  1486. return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
  1487. }
  1488. static FORCEINLINE HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
  1489. return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
  1490. }
  1491. static FORCEINLINE HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  1492. return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
  1493. }
  1494. static FORCEINLINE HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  1495. return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
  1496. }
  1497. static FORCEINLINE HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  1498. return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
  1499. }
  1500. static FORCEINLINE HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  1501. return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
  1502. }
  1503. static FORCEINLINE HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
  1504. return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
  1505. }
  1506. static FORCEINLINE HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) {
  1507. return This->lpVtbl->CreateFontResource(This,index,resource);
  1508. }
  1509. static FORCEINLINE HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) {
  1510. return This->lpVtbl->CreateFontFace(This,index,fontface);
  1511. }
  1512. static FORCEINLINE DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) {
  1513. return This->lpVtbl->GetFontLocality(This,index);
  1514. }
  1515. #endif
  1516. #endif
  1517. #endif
  1518. #endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */
  1519. /*****************************************************************************
  1520. * IDWriteFont3 interface
  1521. */
  1522. #ifndef __IDWriteFont3_INTERFACE_DEFINED__
  1523. #define __IDWriteFont3_INTERFACE_DEFINED__
  1524. DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44);
  1525. #if defined(__cplusplus) && !defined(CINTERFACE)
  1526. MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944")
  1527. IDWriteFont3 : public IDWriteFont2
  1528. {
  1529. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  1530. IDWriteFontFace3 **fontface) = 0;
  1531. virtual WINBOOL STDMETHODCALLTYPE Equals(
  1532. IDWriteFont *font) = 0;
  1533. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  1534. IDWriteFontFaceReference **reference) = 0;
  1535. virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
  1536. UINT32 character) = 0;
  1537. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
  1538. ) = 0;
  1539. };
  1540. #ifdef __CRT_UUID_DECL
  1541. __CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44)
  1542. #endif
  1543. #else
  1544. typedef struct IDWriteFont3Vtbl {
  1545. BEGIN_INTERFACE
  1546. /*** IUnknown methods ***/
  1547. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1548. IDWriteFont3 *This,
  1549. REFIID riid,
  1550. void **ppvObject);
  1551. ULONG (STDMETHODCALLTYPE *AddRef)(
  1552. IDWriteFont3 *This);
  1553. ULONG (STDMETHODCALLTYPE *Release)(
  1554. IDWriteFont3 *This);
  1555. /*** IDWriteFont methods ***/
  1556. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  1557. IDWriteFont3 *This,
  1558. IDWriteFontFamily **family);
  1559. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  1560. IDWriteFont3 *This);
  1561. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  1562. IDWriteFont3 *This);
  1563. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  1564. IDWriteFont3 *This);
  1565. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  1566. IDWriteFont3 *This);
  1567. HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  1568. IDWriteFont3 *This,
  1569. IDWriteLocalizedStrings **names);
  1570. HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  1571. IDWriteFont3 *This,
  1572. DWRITE_INFORMATIONAL_STRING_ID stringid,
  1573. IDWriteLocalizedStrings **strings,
  1574. WINBOOL *exists);
  1575. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  1576. IDWriteFont3 *This);
  1577. void (STDMETHODCALLTYPE *GetMetrics)(
  1578. IDWriteFont3 *This,
  1579. DWRITE_FONT_METRICS *metrics);
  1580. HRESULT (STDMETHODCALLTYPE *HasCharacter)(
  1581. IDWriteFont3 *This,
  1582. UINT32 value,
  1583. WINBOOL *exists);
  1584. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  1585. IDWriteFont3 *This,
  1586. IDWriteFontFace **face);
  1587. /*** IDWriteFont1 methods ***/
  1588. void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
  1589. IDWriteFont3 *This,
  1590. DWRITE_FONT_METRICS1 *metrics);
  1591. void (STDMETHODCALLTYPE *GetPanose)(
  1592. IDWriteFont3 *This,
  1593. DWRITE_PANOSE *panose);
  1594. HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  1595. IDWriteFont3 *This,
  1596. UINT32 max_count,
  1597. DWRITE_UNICODE_RANGE *ranges,
  1598. UINT32 *count);
  1599. WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  1600. IDWriteFont3 *This);
  1601. /*** IDWriteFont2 methods ***/
  1602. WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  1603. IDWriteFont3 *This);
  1604. /*** IDWriteFont3 methods ***/
  1605. HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)(
  1606. IDWriteFont3 *This,
  1607. IDWriteFontFace3 **fontface);
  1608. WINBOOL (STDMETHODCALLTYPE *Equals)(
  1609. IDWriteFont3 *This,
  1610. IDWriteFont *font);
  1611. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  1612. IDWriteFont3 *This,
  1613. IDWriteFontFaceReference **reference);
  1614. WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)(
  1615. IDWriteFont3 *This,
  1616. UINT32 character);
  1617. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
  1618. IDWriteFont3 *This);
  1619. END_INTERFACE
  1620. } IDWriteFont3Vtbl;
  1621. interface IDWriteFont3 {
  1622. CONST_VTBL IDWriteFont3Vtbl* lpVtbl;
  1623. };
  1624. #ifdef COBJMACROS
  1625. #ifndef WIDL_C_INLINE_WRAPPERS
  1626. /*** IUnknown methods ***/
  1627. #define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1628. #define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This)
  1629. #define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This)
  1630. /*** IDWriteFont methods ***/
  1631. #define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
  1632. #define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  1633. #define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  1634. #define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  1635. #define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  1636. #define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
  1637. #define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  1638. #define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  1639. /*** IDWriteFont1 methods ***/
  1640. #define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
  1641. #define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  1642. #define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  1643. #define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  1644. /*** IDWriteFont2 methods ***/
  1645. #define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  1646. /*** IDWriteFont3 methods ***/
  1647. #define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface)
  1648. #define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font)
  1649. #define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  1650. #define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character)
  1651. #define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This)
  1652. #else
  1653. /*** IUnknown methods ***/
  1654. static FORCEINLINE HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) {
  1655. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1656. }
  1657. static FORCEINLINE ULONG IDWriteFont3_AddRef(IDWriteFont3* This) {
  1658. return This->lpVtbl->AddRef(This);
  1659. }
  1660. static FORCEINLINE ULONG IDWriteFont3_Release(IDWriteFont3* This) {
  1661. return This->lpVtbl->Release(This);
  1662. }
  1663. /*** IDWriteFont methods ***/
  1664. static FORCEINLINE HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) {
  1665. return This->lpVtbl->GetFontFamily(This,family);
  1666. }
  1667. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) {
  1668. return This->lpVtbl->GetWeight(This);
  1669. }
  1670. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) {
  1671. return This->lpVtbl->GetStretch(This);
  1672. }
  1673. static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) {
  1674. return This->lpVtbl->GetStyle(This);
  1675. }
  1676. static FORCEINLINE WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) {
  1677. return This->lpVtbl->IsSymbolFont(This);
  1678. }
  1679. static FORCEINLINE HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) {
  1680. return This->lpVtbl->GetFaceNames(This,names);
  1681. }
  1682. static FORCEINLINE HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  1683. return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  1684. }
  1685. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) {
  1686. return This->lpVtbl->GetSimulations(This);
  1687. }
  1688. /*** IDWriteFont1 methods ***/
  1689. static FORCEINLINE void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) {
  1690. This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
  1691. }
  1692. static FORCEINLINE void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) {
  1693. This->lpVtbl->GetPanose(This,panose);
  1694. }
  1695. static FORCEINLINE HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  1696. return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  1697. }
  1698. static FORCEINLINE WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) {
  1699. return This->lpVtbl->IsMonospacedFont(This);
  1700. }
  1701. /*** IDWriteFont2 methods ***/
  1702. static FORCEINLINE WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) {
  1703. return This->lpVtbl->IsColorFont(This);
  1704. }
  1705. /*** IDWriteFont3 methods ***/
  1706. static FORCEINLINE HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) {
  1707. return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface);
  1708. }
  1709. static FORCEINLINE WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) {
  1710. return This->lpVtbl->Equals(This,font);
  1711. }
  1712. static FORCEINLINE HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) {
  1713. return This->lpVtbl->GetFontFaceReference(This,reference);
  1714. }
  1715. static FORCEINLINE WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) {
  1716. return This->lpVtbl->IDWriteFont3_HasCharacter(This,character);
  1717. }
  1718. static FORCEINLINE DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) {
  1719. return This->lpVtbl->GetLocality(This);
  1720. }
  1721. #endif
  1722. #endif
  1723. #endif
  1724. #endif /* __IDWriteFont3_INTERFACE_DEFINED__ */
  1725. /*****************************************************************************
  1726. * IDWriteFontFamily1 interface
  1727. */
  1728. #ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__
  1729. #define __IDWriteFontFamily1_INTERFACE_DEFINED__
  1730. DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf);
  1731. #if defined(__cplusplus) && !defined(CINTERFACE)
  1732. MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf")
  1733. IDWriteFontFamily1 : public IDWriteFontFamily
  1734. {
  1735. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
  1736. UINT32 index) = 0;
  1737. virtual HRESULT STDMETHODCALLTYPE GetFont(
  1738. UINT32 index,
  1739. IDWriteFont3 **font) = 0;
  1740. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  1741. UINT32 index,
  1742. IDWriteFontFaceReference **reference) = 0;
  1743. };
  1744. #ifdef __CRT_UUID_DECL
  1745. __CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf)
  1746. #endif
  1747. #else
  1748. typedef struct IDWriteFontFamily1Vtbl {
  1749. BEGIN_INTERFACE
  1750. /*** IUnknown methods ***/
  1751. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1752. IDWriteFontFamily1 *This,
  1753. REFIID riid,
  1754. void **ppvObject);
  1755. ULONG (STDMETHODCALLTYPE *AddRef)(
  1756. IDWriteFontFamily1 *This);
  1757. ULONG (STDMETHODCALLTYPE *Release)(
  1758. IDWriteFontFamily1 *This);
  1759. /*** IDWriteFontList methods ***/
  1760. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  1761. IDWriteFontFamily1 *This,
  1762. IDWriteFontCollection **collection);
  1763. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  1764. IDWriteFontFamily1 *This);
  1765. HRESULT (STDMETHODCALLTYPE *GetFont)(
  1766. IDWriteFontFamily1 *This,
  1767. UINT32 index,
  1768. IDWriteFont **font);
  1769. /*** IDWriteFontFamily methods ***/
  1770. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  1771. IDWriteFontFamily1 *This,
  1772. IDWriteLocalizedStrings **names);
  1773. HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
  1774. IDWriteFontFamily1 *This,
  1775. DWRITE_FONT_WEIGHT weight,
  1776. DWRITE_FONT_STRETCH stretch,
  1777. DWRITE_FONT_STYLE style,
  1778. IDWriteFont **font);
  1779. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  1780. IDWriteFontFamily1 *This,
  1781. DWRITE_FONT_WEIGHT weight,
  1782. DWRITE_FONT_STRETCH stretch,
  1783. DWRITE_FONT_STYLE style,
  1784. IDWriteFontList **fonts);
  1785. /*** IDWriteFontFamily1 methods ***/
  1786. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  1787. IDWriteFontFamily1 *This,
  1788. UINT32 index);
  1789. HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
  1790. IDWriteFontFamily1 *This,
  1791. UINT32 index,
  1792. IDWriteFont3 **font);
  1793. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  1794. IDWriteFontFamily1 *This,
  1795. UINT32 index,
  1796. IDWriteFontFaceReference **reference);
  1797. END_INTERFACE
  1798. } IDWriteFontFamily1Vtbl;
  1799. interface IDWriteFontFamily1 {
  1800. CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl;
  1801. };
  1802. #ifdef COBJMACROS
  1803. #ifndef WIDL_C_INLINE_WRAPPERS
  1804. /*** IUnknown methods ***/
  1805. #define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1806. #define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This)
  1807. #define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This)
  1808. /*** IDWriteFontList methods ***/
  1809. #define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  1810. #define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  1811. /*** IDWriteFontFamily methods ***/
  1812. #define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  1813. #define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
  1814. #define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts)
  1815. /*** IDWriteFontFamily1 methods ***/
  1816. #define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  1817. #define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
  1818. #define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
  1819. #else
  1820. /*** IUnknown methods ***/
  1821. static FORCEINLINE HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) {
  1822. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1823. }
  1824. static FORCEINLINE ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) {
  1825. return This->lpVtbl->AddRef(This);
  1826. }
  1827. static FORCEINLINE ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) {
  1828. return This->lpVtbl->Release(This);
  1829. }
  1830. /*** IDWriteFontList methods ***/
  1831. static FORCEINLINE HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) {
  1832. return This->lpVtbl->GetFontCollection(This,collection);
  1833. }
  1834. static FORCEINLINE UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) {
  1835. return This->lpVtbl->GetFontCount(This);
  1836. }
  1837. /*** IDWriteFontFamily methods ***/
  1838. static FORCEINLINE HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) {
  1839. return This->lpVtbl->GetFamilyNames(This,names);
  1840. }
  1841. static FORCEINLINE HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
  1842. return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
  1843. }
  1844. static FORCEINLINE HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) {
  1845. return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts);
  1846. }
  1847. /*** IDWriteFontFamily1 methods ***/
  1848. static FORCEINLINE DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) {
  1849. return This->lpVtbl->GetFontLocality(This,index);
  1850. }
  1851. static FORCEINLINE HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) {
  1852. return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
  1853. }
  1854. static FORCEINLINE HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) {
  1855. return This->lpVtbl->GetFontFaceReference(This,index,reference);
  1856. }
  1857. #endif
  1858. #endif
  1859. #endif
  1860. #endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */
  1861. /*****************************************************************************
  1862. * IDWriteFontFamily2 interface
  1863. */
  1864. #ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__
  1865. #define __IDWriteFontFamily2_INTERFACE_DEFINED__
  1866. DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3);
  1867. #if defined(__cplusplus) && !defined(CINTERFACE)
  1868. MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3")
  1869. IDWriteFontFamily2 : public IDWriteFontFamily1
  1870. {
  1871. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
  1872. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1873. UINT32 num_values,
  1874. IDWriteFontList2 **fontlist) = 0;
  1875. virtual HRESULT STDMETHODCALLTYPE GetFontSet(
  1876. IDWriteFontSet1 **fontset) = 0;
  1877. };
  1878. #ifdef __CRT_UUID_DECL
  1879. __CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3)
  1880. #endif
  1881. #else
  1882. typedef struct IDWriteFontFamily2Vtbl {
  1883. BEGIN_INTERFACE
  1884. /*** IUnknown methods ***/
  1885. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1886. IDWriteFontFamily2 *This,
  1887. REFIID riid,
  1888. void **ppvObject);
  1889. ULONG (STDMETHODCALLTYPE *AddRef)(
  1890. IDWriteFontFamily2 *This);
  1891. ULONG (STDMETHODCALLTYPE *Release)(
  1892. IDWriteFontFamily2 *This);
  1893. /*** IDWriteFontList methods ***/
  1894. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  1895. IDWriteFontFamily2 *This,
  1896. IDWriteFontCollection **collection);
  1897. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  1898. IDWriteFontFamily2 *This);
  1899. HRESULT (STDMETHODCALLTYPE *GetFont)(
  1900. IDWriteFontFamily2 *This,
  1901. UINT32 index,
  1902. IDWriteFont **font);
  1903. /*** IDWriteFontFamily methods ***/
  1904. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  1905. IDWriteFontFamily2 *This,
  1906. IDWriteLocalizedStrings **names);
  1907. HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
  1908. IDWriteFontFamily2 *This,
  1909. DWRITE_FONT_WEIGHT weight,
  1910. DWRITE_FONT_STRETCH stretch,
  1911. DWRITE_FONT_STYLE style,
  1912. IDWriteFont **font);
  1913. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  1914. IDWriteFontFamily2 *This,
  1915. DWRITE_FONT_WEIGHT weight,
  1916. DWRITE_FONT_STRETCH stretch,
  1917. DWRITE_FONT_STYLE style,
  1918. IDWriteFontList **fonts);
  1919. /*** IDWriteFontFamily1 methods ***/
  1920. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  1921. IDWriteFontFamily2 *This,
  1922. UINT32 index);
  1923. HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
  1924. IDWriteFontFamily2 *This,
  1925. UINT32 index,
  1926. IDWriteFont3 **font);
  1927. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  1928. IDWriteFontFamily2 *This,
  1929. UINT32 index,
  1930. IDWriteFontFaceReference **reference);
  1931. /*** IDWriteFontFamily2 methods ***/
  1932. HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)(
  1933. IDWriteFontFamily2 *This,
  1934. const DWRITE_FONT_AXIS_VALUE *axis_values,
  1935. UINT32 num_values,
  1936. IDWriteFontList2 **fontlist);
  1937. HRESULT (STDMETHODCALLTYPE *GetFontSet)(
  1938. IDWriteFontFamily2 *This,
  1939. IDWriteFontSet1 **fontset);
  1940. END_INTERFACE
  1941. } IDWriteFontFamily2Vtbl;
  1942. interface IDWriteFontFamily2 {
  1943. CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl;
  1944. };
  1945. #ifdef COBJMACROS
  1946. #ifndef WIDL_C_INLINE_WRAPPERS
  1947. /*** IUnknown methods ***/
  1948. #define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1949. #define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1950. #define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This)
  1951. /*** IDWriteFontList methods ***/
  1952. #define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  1953. #define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  1954. /*** IDWriteFontFamily methods ***/
  1955. #define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  1956. #define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
  1957. /*** IDWriteFontFamily1 methods ***/
  1958. #define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  1959. #define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
  1960. #define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
  1961. /*** IDWriteFontFamily2 methods ***/
  1962. #define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist)
  1963. #define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
  1964. #else
  1965. /*** IUnknown methods ***/
  1966. static FORCEINLINE HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) {
  1967. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1968. }
  1969. static FORCEINLINE ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) {
  1970. return This->lpVtbl->AddRef(This);
  1971. }
  1972. static FORCEINLINE ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) {
  1973. return This->lpVtbl->Release(This);
  1974. }
  1975. /*** IDWriteFontList methods ***/
  1976. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) {
  1977. return This->lpVtbl->GetFontCollection(This,collection);
  1978. }
  1979. static FORCEINLINE UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) {
  1980. return This->lpVtbl->GetFontCount(This);
  1981. }
  1982. /*** IDWriteFontFamily methods ***/
  1983. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) {
  1984. return This->lpVtbl->GetFamilyNames(This,names);
  1985. }
  1986. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
  1987. return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
  1988. }
  1989. /*** IDWriteFontFamily1 methods ***/
  1990. static FORCEINLINE DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) {
  1991. return This->lpVtbl->GetFontLocality(This,index);
  1992. }
  1993. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) {
  1994. return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
  1995. }
  1996. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) {
  1997. return This->lpVtbl->GetFontFaceReference(This,index,reference);
  1998. }
  1999. /*** IDWriteFontFamily2 methods ***/
  2000. static FORCEINLINE HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
  2001. return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist);
  2002. }
  2003. static FORCEINLINE HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) {
  2004. return This->lpVtbl->GetFontSet(This,fontset);
  2005. }
  2006. #endif
  2007. #endif
  2008. #endif
  2009. #endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */
  2010. /*****************************************************************************
  2011. * IDWriteFontCollection1 interface
  2012. */
  2013. #ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__
  2014. #define __IDWriteFontCollection1_INTERFACE_DEFINED__
  2015. DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c);
  2016. #if defined(__cplusplus) && !defined(CINTERFACE)
  2017. MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c")
  2018. IDWriteFontCollection1 : public IDWriteFontCollection
  2019. {
  2020. virtual HRESULT STDMETHODCALLTYPE GetFontSet(
  2021. IDWriteFontSet **fontset) = 0;
  2022. virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
  2023. UINT32 index,
  2024. IDWriteFontFamily1 **family) = 0;
  2025. };
  2026. #ifdef __CRT_UUID_DECL
  2027. __CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c)
  2028. #endif
  2029. #else
  2030. typedef struct IDWriteFontCollection1Vtbl {
  2031. BEGIN_INTERFACE
  2032. /*** IUnknown methods ***/
  2033. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2034. IDWriteFontCollection1 *This,
  2035. REFIID riid,
  2036. void **ppvObject);
  2037. ULONG (STDMETHODCALLTYPE *AddRef)(
  2038. IDWriteFontCollection1 *This);
  2039. ULONG (STDMETHODCALLTYPE *Release)(
  2040. IDWriteFontCollection1 *This);
  2041. /*** IDWriteFontCollection methods ***/
  2042. UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
  2043. IDWriteFontCollection1 *This);
  2044. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  2045. IDWriteFontCollection1 *This,
  2046. UINT32 index,
  2047. IDWriteFontFamily **family);
  2048. HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
  2049. IDWriteFontCollection1 *This,
  2050. const WCHAR *name,
  2051. UINT32 *index,
  2052. WINBOOL *exists);
  2053. HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
  2054. IDWriteFontCollection1 *This,
  2055. IDWriteFontFace *face,
  2056. IDWriteFont **font);
  2057. /*** IDWriteFontCollection1 methods ***/
  2058. HRESULT (STDMETHODCALLTYPE *GetFontSet)(
  2059. IDWriteFontCollection1 *This,
  2060. IDWriteFontSet **fontset);
  2061. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
  2062. IDWriteFontCollection1 *This,
  2063. UINT32 index,
  2064. IDWriteFontFamily1 **family);
  2065. END_INTERFACE
  2066. } IDWriteFontCollection1Vtbl;
  2067. interface IDWriteFontCollection1 {
  2068. CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl;
  2069. };
  2070. #ifdef COBJMACROS
  2071. #ifndef WIDL_C_INLINE_WRAPPERS
  2072. /*** IUnknown methods ***/
  2073. #define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2074. #define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This)
  2075. #define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This)
  2076. /*** IDWriteFontCollection methods ***/
  2077. #define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
  2078. #define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
  2079. #define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
  2080. /*** IDWriteFontCollection1 methods ***/
  2081. #define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
  2082. #define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family)
  2083. #else
  2084. /*** IUnknown methods ***/
  2085. static FORCEINLINE HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) {
  2086. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2087. }
  2088. static FORCEINLINE ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) {
  2089. return This->lpVtbl->AddRef(This);
  2090. }
  2091. static FORCEINLINE ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) {
  2092. return This->lpVtbl->Release(This);
  2093. }
  2094. /*** IDWriteFontCollection methods ***/
  2095. static FORCEINLINE UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) {
  2096. return This->lpVtbl->GetFontFamilyCount(This);
  2097. }
  2098. static FORCEINLINE HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
  2099. return This->lpVtbl->FindFamilyName(This,name,index,exists);
  2100. }
  2101. static FORCEINLINE HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) {
  2102. return This->lpVtbl->GetFontFromFontFace(This,face,font);
  2103. }
  2104. /*** IDWriteFontCollection1 methods ***/
  2105. static FORCEINLINE HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) {
  2106. return This->lpVtbl->GetFontSet(This,fontset);
  2107. }
  2108. static FORCEINLINE HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) {
  2109. return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family);
  2110. }
  2111. #endif
  2112. #endif
  2113. #endif
  2114. #endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */
  2115. /*****************************************************************************
  2116. * IDWriteFontCollection2 interface
  2117. */
  2118. #ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__
  2119. #define __IDWriteFontCollection2_INTERFACE_DEFINED__
  2120. DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0);
  2121. #if defined(__cplusplus) && !defined(CINTERFACE)
  2122. MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0")
  2123. IDWriteFontCollection2 : public IDWriteFontCollection1
  2124. {
  2125. virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
  2126. UINT32 index,
  2127. IDWriteFontFamily2 **family) = 0;
  2128. virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
  2129. const WCHAR *familyname,
  2130. const DWRITE_FONT_AXIS_VALUE *axis_values,
  2131. UINT32 num_values,
  2132. IDWriteFontList2 **fontlist) = 0;
  2133. virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel(
  2134. ) = 0;
  2135. virtual HRESULT STDMETHODCALLTYPE GetFontSet(
  2136. IDWriteFontSet1 **fontset) = 0;
  2137. };
  2138. #ifdef __CRT_UUID_DECL
  2139. __CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0)
  2140. #endif
  2141. #else
  2142. typedef struct IDWriteFontCollection2Vtbl {
  2143. BEGIN_INTERFACE
  2144. /*** IUnknown methods ***/
  2145. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2146. IDWriteFontCollection2 *This,
  2147. REFIID riid,
  2148. void **ppvObject);
  2149. ULONG (STDMETHODCALLTYPE *AddRef)(
  2150. IDWriteFontCollection2 *This);
  2151. ULONG (STDMETHODCALLTYPE *Release)(
  2152. IDWriteFontCollection2 *This);
  2153. /*** IDWriteFontCollection methods ***/
  2154. UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
  2155. IDWriteFontCollection2 *This);
  2156. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  2157. IDWriteFontCollection2 *This,
  2158. UINT32 index,
  2159. IDWriteFontFamily **family);
  2160. HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
  2161. IDWriteFontCollection2 *This,
  2162. const WCHAR *name,
  2163. UINT32 *index,
  2164. WINBOOL *exists);
  2165. HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
  2166. IDWriteFontCollection2 *This,
  2167. IDWriteFontFace *face,
  2168. IDWriteFont **font);
  2169. /*** IDWriteFontCollection1 methods ***/
  2170. HRESULT (STDMETHODCALLTYPE *GetFontSet)(
  2171. IDWriteFontCollection2 *This,
  2172. IDWriteFontSet **fontset);
  2173. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
  2174. IDWriteFontCollection2 *This,
  2175. UINT32 index,
  2176. IDWriteFontFamily1 **family);
  2177. /*** IDWriteFontCollection2 methods ***/
  2178. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
  2179. IDWriteFontCollection2 *This,
  2180. UINT32 index,
  2181. IDWriteFontFamily2 **family);
  2182. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  2183. IDWriteFontCollection2 *This,
  2184. const WCHAR *familyname,
  2185. const DWRITE_FONT_AXIS_VALUE *axis_values,
  2186. UINT32 num_values,
  2187. IDWriteFontList2 **fontlist);
  2188. DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
  2189. IDWriteFontCollection2 *This);
  2190. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
  2191. IDWriteFontCollection2 *This,
  2192. IDWriteFontSet1 **fontset);
  2193. END_INTERFACE
  2194. } IDWriteFontCollection2Vtbl;
  2195. interface IDWriteFontCollection2 {
  2196. CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl;
  2197. };
  2198. #ifdef COBJMACROS
  2199. #ifndef WIDL_C_INLINE_WRAPPERS
  2200. /*** IUnknown methods ***/
  2201. #define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2202. #define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This)
  2203. #define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This)
  2204. /*** IDWriteFontCollection methods ***/
  2205. #define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
  2206. #define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
  2207. #define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
  2208. /*** IDWriteFontCollection1 methods ***/
  2209. /*** IDWriteFontCollection2 methods ***/
  2210. #define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
  2211. #define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
  2212. #define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
  2213. #define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
  2214. #else
  2215. /*** IUnknown methods ***/
  2216. static FORCEINLINE HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) {
  2217. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2218. }
  2219. static FORCEINLINE ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) {
  2220. return This->lpVtbl->AddRef(This);
  2221. }
  2222. static FORCEINLINE ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) {
  2223. return This->lpVtbl->Release(This);
  2224. }
  2225. /*** IDWriteFontCollection methods ***/
  2226. static FORCEINLINE UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) {
  2227. return This->lpVtbl->GetFontFamilyCount(This);
  2228. }
  2229. static FORCEINLINE HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
  2230. return This->lpVtbl->FindFamilyName(This,name,index,exists);
  2231. }
  2232. static FORCEINLINE HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) {
  2233. return This->lpVtbl->GetFontFromFontFace(This,face,font);
  2234. }
  2235. /*** IDWriteFontCollection1 methods ***/
  2236. /*** IDWriteFontCollection2 methods ***/
  2237. static FORCEINLINE HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) {
  2238. return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
  2239. }
  2240. static FORCEINLINE HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
  2241. return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
  2242. }
  2243. static FORCEINLINE DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) {
  2244. return This->lpVtbl->GetFontFamilyModel(This);
  2245. }
  2246. static FORCEINLINE HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) {
  2247. return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
  2248. }
  2249. #endif
  2250. #endif
  2251. #endif
  2252. #endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */
  2253. /*****************************************************************************
  2254. * IDWriteFontCollection3 interface
  2255. */
  2256. #ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__
  2257. #define __IDWriteFontCollection3_INTERFACE_DEFINED__
  2258. DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9);
  2259. #if defined(__cplusplus) && !defined(CINTERFACE)
  2260. MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9")
  2261. IDWriteFontCollection3 : public IDWriteFontCollection2
  2262. {
  2263. virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
  2264. ) = 0;
  2265. };
  2266. #ifdef __CRT_UUID_DECL
  2267. __CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9)
  2268. #endif
  2269. #else
  2270. typedef struct IDWriteFontCollection3Vtbl {
  2271. BEGIN_INTERFACE
  2272. /*** IUnknown methods ***/
  2273. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2274. IDWriteFontCollection3 *This,
  2275. REFIID riid,
  2276. void **ppvObject);
  2277. ULONG (STDMETHODCALLTYPE *AddRef)(
  2278. IDWriteFontCollection3 *This);
  2279. ULONG (STDMETHODCALLTYPE *Release)(
  2280. IDWriteFontCollection3 *This);
  2281. /*** IDWriteFontCollection methods ***/
  2282. UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
  2283. IDWriteFontCollection3 *This);
  2284. HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
  2285. IDWriteFontCollection3 *This,
  2286. UINT32 index,
  2287. IDWriteFontFamily **family);
  2288. HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
  2289. IDWriteFontCollection3 *This,
  2290. const WCHAR *name,
  2291. UINT32 *index,
  2292. WINBOOL *exists);
  2293. HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
  2294. IDWriteFontCollection3 *This,
  2295. IDWriteFontFace *face,
  2296. IDWriteFont **font);
  2297. /*** IDWriteFontCollection1 methods ***/
  2298. HRESULT (STDMETHODCALLTYPE *GetFontSet)(
  2299. IDWriteFontCollection3 *This,
  2300. IDWriteFontSet **fontset);
  2301. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
  2302. IDWriteFontCollection3 *This,
  2303. UINT32 index,
  2304. IDWriteFontFamily1 **family);
  2305. /*** IDWriteFontCollection2 methods ***/
  2306. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
  2307. IDWriteFontCollection3 *This,
  2308. UINT32 index,
  2309. IDWriteFontFamily2 **family);
  2310. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  2311. IDWriteFontCollection3 *This,
  2312. const WCHAR *familyname,
  2313. const DWRITE_FONT_AXIS_VALUE *axis_values,
  2314. UINT32 num_values,
  2315. IDWriteFontList2 **fontlist);
  2316. DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
  2317. IDWriteFontCollection3 *This);
  2318. HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
  2319. IDWriteFontCollection3 *This,
  2320. IDWriteFontSet1 **fontset);
  2321. /*** IDWriteFontCollection3 methods ***/
  2322. HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
  2323. IDWriteFontCollection3 *This);
  2324. END_INTERFACE
  2325. } IDWriteFontCollection3Vtbl;
  2326. interface IDWriteFontCollection3 {
  2327. CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl;
  2328. };
  2329. #ifdef COBJMACROS
  2330. #ifndef WIDL_C_INLINE_WRAPPERS
  2331. /*** IUnknown methods ***/
  2332. #define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2333. #define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This)
  2334. #define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This)
  2335. /*** IDWriteFontCollection methods ***/
  2336. #define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
  2337. #define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
  2338. #define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
  2339. /*** IDWriteFontCollection1 methods ***/
  2340. /*** IDWriteFontCollection2 methods ***/
  2341. #define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
  2342. #define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
  2343. #define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
  2344. #define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
  2345. /*** IDWriteFontCollection3 methods ***/
  2346. #define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
  2347. #else
  2348. /*** IUnknown methods ***/
  2349. static FORCEINLINE HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) {
  2350. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2351. }
  2352. static FORCEINLINE ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) {
  2353. return This->lpVtbl->AddRef(This);
  2354. }
  2355. static FORCEINLINE ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) {
  2356. return This->lpVtbl->Release(This);
  2357. }
  2358. /*** IDWriteFontCollection methods ***/
  2359. static FORCEINLINE UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) {
  2360. return This->lpVtbl->GetFontFamilyCount(This);
  2361. }
  2362. static FORCEINLINE HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
  2363. return This->lpVtbl->FindFamilyName(This,name,index,exists);
  2364. }
  2365. static FORCEINLINE HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) {
  2366. return This->lpVtbl->GetFontFromFontFace(This,face,font);
  2367. }
  2368. /*** IDWriteFontCollection1 methods ***/
  2369. /*** IDWriteFontCollection2 methods ***/
  2370. static FORCEINLINE HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) {
  2371. return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
  2372. }
  2373. static FORCEINLINE HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
  2374. return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
  2375. }
  2376. static FORCEINLINE DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) {
  2377. return This->lpVtbl->GetFontFamilyModel(This);
  2378. }
  2379. static FORCEINLINE HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) {
  2380. return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
  2381. }
  2382. /*** IDWriteFontCollection3 methods ***/
  2383. static FORCEINLINE HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) {
  2384. return This->lpVtbl->GetExpirationEvent(This);
  2385. }
  2386. #endif
  2387. #endif
  2388. #endif
  2389. #endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */
  2390. /*****************************************************************************
  2391. * IDWriteFontFaceReference interface
  2392. */
  2393. #ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__
  2394. #define __IDWriteFontFaceReference_INTERFACE_DEFINED__
  2395. DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd);
  2396. #if defined(__cplusplus) && !defined(CINTERFACE)
  2397. MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd")
  2398. IDWriteFontFaceReference : public IUnknown
  2399. {
  2400. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  2401. IDWriteFontFace3 **fontface) = 0;
  2402. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations(
  2403. DWRITE_FONT_SIMULATIONS simulations,
  2404. IDWriteFontFace3 **fontface) = 0;
  2405. virtual WINBOOL STDMETHODCALLTYPE Equals(
  2406. IDWriteFontFaceReference *reference) = 0;
  2407. virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
  2408. ) = 0;
  2409. virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
  2410. ) = 0;
  2411. virtual HRESULT STDMETHODCALLTYPE GetFontFile(
  2412. IDWriteFontFile **fontfile) = 0;
  2413. virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize(
  2414. ) = 0;
  2415. virtual UINT64 STDMETHODCALLTYPE GetFileSize(
  2416. ) = 0;
  2417. virtual HRESULT STDMETHODCALLTYPE GetFileTime(
  2418. FILETIME *writetime) = 0;
  2419. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
  2420. ) = 0;
  2421. virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest(
  2422. ) = 0;
  2423. virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest(
  2424. const WCHAR *chars,
  2425. UINT32 count) = 0;
  2426. virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest(
  2427. const UINT16 *glyphs,
  2428. UINT32 count) = 0;
  2429. virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest(
  2430. UINT64 offset,
  2431. UINT64 size) = 0;
  2432. };
  2433. #ifdef __CRT_UUID_DECL
  2434. __CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd)
  2435. #endif
  2436. #else
  2437. typedef struct IDWriteFontFaceReferenceVtbl {
  2438. BEGIN_INTERFACE
  2439. /*** IUnknown methods ***/
  2440. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2441. IDWriteFontFaceReference *This,
  2442. REFIID riid,
  2443. void **ppvObject);
  2444. ULONG (STDMETHODCALLTYPE *AddRef)(
  2445. IDWriteFontFaceReference *This);
  2446. ULONG (STDMETHODCALLTYPE *Release)(
  2447. IDWriteFontFaceReference *This);
  2448. /*** IDWriteFontFaceReference methods ***/
  2449. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  2450. IDWriteFontFaceReference *This,
  2451. IDWriteFontFace3 **fontface);
  2452. HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
  2453. IDWriteFontFaceReference *This,
  2454. DWRITE_FONT_SIMULATIONS simulations,
  2455. IDWriteFontFace3 **fontface);
  2456. WINBOOL (STDMETHODCALLTYPE *Equals)(
  2457. IDWriteFontFaceReference *This,
  2458. IDWriteFontFaceReference *reference);
  2459. UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
  2460. IDWriteFontFaceReference *This);
  2461. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  2462. IDWriteFontFaceReference *This);
  2463. HRESULT (STDMETHODCALLTYPE *GetFontFile)(
  2464. IDWriteFontFaceReference *This,
  2465. IDWriteFontFile **fontfile);
  2466. UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
  2467. IDWriteFontFaceReference *This);
  2468. UINT64 (STDMETHODCALLTYPE *GetFileSize)(
  2469. IDWriteFontFaceReference *This);
  2470. HRESULT (STDMETHODCALLTYPE *GetFileTime)(
  2471. IDWriteFontFaceReference *This,
  2472. FILETIME *writetime);
  2473. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
  2474. IDWriteFontFaceReference *This);
  2475. HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
  2476. IDWriteFontFaceReference *This);
  2477. HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
  2478. IDWriteFontFaceReference *This,
  2479. const WCHAR *chars,
  2480. UINT32 count);
  2481. HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
  2482. IDWriteFontFaceReference *This,
  2483. const UINT16 *glyphs,
  2484. UINT32 count);
  2485. HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
  2486. IDWriteFontFaceReference *This,
  2487. UINT64 offset,
  2488. UINT64 size);
  2489. END_INTERFACE
  2490. } IDWriteFontFaceReferenceVtbl;
  2491. interface IDWriteFontFaceReference {
  2492. CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl;
  2493. };
  2494. #ifdef COBJMACROS
  2495. #ifndef WIDL_C_INLINE_WRAPPERS
  2496. /*** IUnknown methods ***/
  2497. #define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2498. #define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This)
  2499. #define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This)
  2500. /*** IDWriteFontFaceReference methods ***/
  2501. #define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface)
  2502. #define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
  2503. #define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
  2504. #define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
  2505. #define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  2506. #define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
  2507. #define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
  2508. #define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
  2509. #define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
  2510. #define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This)
  2511. #define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
  2512. #define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
  2513. #define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
  2514. #define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
  2515. #else
  2516. /*** IUnknown methods ***/
  2517. static FORCEINLINE HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) {
  2518. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2519. }
  2520. static FORCEINLINE ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) {
  2521. return This->lpVtbl->AddRef(This);
  2522. }
  2523. static FORCEINLINE ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) {
  2524. return This->lpVtbl->Release(This);
  2525. }
  2526. /*** IDWriteFontFaceReference methods ***/
  2527. static FORCEINLINE HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) {
  2528. return This->lpVtbl->CreateFontFace(This,fontface);
  2529. }
  2530. static FORCEINLINE HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
  2531. return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
  2532. }
  2533. static FORCEINLINE WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) {
  2534. return This->lpVtbl->Equals(This,reference);
  2535. }
  2536. static FORCEINLINE UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) {
  2537. return This->lpVtbl->GetFontFaceIndex(This);
  2538. }
  2539. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) {
  2540. return This->lpVtbl->GetSimulations(This);
  2541. }
  2542. static FORCEINLINE HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) {
  2543. return This->lpVtbl->GetFontFile(This,fontfile);
  2544. }
  2545. static FORCEINLINE UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) {
  2546. return This->lpVtbl->GetLocalFileSize(This);
  2547. }
  2548. static FORCEINLINE UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) {
  2549. return This->lpVtbl->GetFileSize(This);
  2550. }
  2551. static FORCEINLINE HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) {
  2552. return This->lpVtbl->GetFileTime(This,writetime);
  2553. }
  2554. static FORCEINLINE DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) {
  2555. return This->lpVtbl->GetLocality(This);
  2556. }
  2557. static FORCEINLINE HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) {
  2558. return This->lpVtbl->EnqueueFontDownloadRequest(This);
  2559. }
  2560. static FORCEINLINE HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) {
  2561. return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
  2562. }
  2563. static FORCEINLINE HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) {
  2564. return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
  2565. }
  2566. static FORCEINLINE HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) {
  2567. return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
  2568. }
  2569. #endif
  2570. #endif
  2571. #endif
  2572. #endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */
  2573. /*****************************************************************************
  2574. * IDWriteFontFaceReference1 interface
  2575. */
  2576. #ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__
  2577. #define __IDWriteFontFaceReference1_INTERFACE_DEFINED__
  2578. DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a);
  2579. #if defined(__cplusplus) && !defined(CINTERFACE)
  2580. MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a")
  2581. IDWriteFontFaceReference1 : public IDWriteFontFaceReference
  2582. {
  2583. virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
  2584. IDWriteFontFace5 **fontface) = 0;
  2585. virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
  2586. ) = 0;
  2587. virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
  2588. DWRITE_FONT_AXIS_VALUE *values,
  2589. UINT32 num_values) = 0;
  2590. };
  2591. #ifdef __CRT_UUID_DECL
  2592. __CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a)
  2593. #endif
  2594. #else
  2595. typedef struct IDWriteFontFaceReference1Vtbl {
  2596. BEGIN_INTERFACE
  2597. /*** IUnknown methods ***/
  2598. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2599. IDWriteFontFaceReference1 *This,
  2600. REFIID riid,
  2601. void **ppvObject);
  2602. ULONG (STDMETHODCALLTYPE *AddRef)(
  2603. IDWriteFontFaceReference1 *This);
  2604. ULONG (STDMETHODCALLTYPE *Release)(
  2605. IDWriteFontFaceReference1 *This);
  2606. /*** IDWriteFontFaceReference methods ***/
  2607. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  2608. IDWriteFontFaceReference1 *This,
  2609. IDWriteFontFace3 **fontface);
  2610. HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
  2611. IDWriteFontFaceReference1 *This,
  2612. DWRITE_FONT_SIMULATIONS simulations,
  2613. IDWriteFontFace3 **fontface);
  2614. WINBOOL (STDMETHODCALLTYPE *Equals)(
  2615. IDWriteFontFaceReference1 *This,
  2616. IDWriteFontFaceReference *reference);
  2617. UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
  2618. IDWriteFontFaceReference1 *This);
  2619. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  2620. IDWriteFontFaceReference1 *This);
  2621. HRESULT (STDMETHODCALLTYPE *GetFontFile)(
  2622. IDWriteFontFaceReference1 *This,
  2623. IDWriteFontFile **fontfile);
  2624. UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
  2625. IDWriteFontFaceReference1 *This);
  2626. UINT64 (STDMETHODCALLTYPE *GetFileSize)(
  2627. IDWriteFontFaceReference1 *This);
  2628. HRESULT (STDMETHODCALLTYPE *GetFileTime)(
  2629. IDWriteFontFaceReference1 *This,
  2630. FILETIME *writetime);
  2631. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
  2632. IDWriteFontFaceReference1 *This);
  2633. HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
  2634. IDWriteFontFaceReference1 *This);
  2635. HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
  2636. IDWriteFontFaceReference1 *This,
  2637. const WCHAR *chars,
  2638. UINT32 count);
  2639. HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
  2640. IDWriteFontFaceReference1 *This,
  2641. const UINT16 *glyphs,
  2642. UINT32 count);
  2643. HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
  2644. IDWriteFontFaceReference1 *This,
  2645. UINT64 offset,
  2646. UINT64 size);
  2647. /*** IDWriteFontFaceReference1 methods ***/
  2648. HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)(
  2649. IDWriteFontFaceReference1 *This,
  2650. IDWriteFontFace5 **fontface);
  2651. UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  2652. IDWriteFontFaceReference1 *This);
  2653. HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  2654. IDWriteFontFaceReference1 *This,
  2655. DWRITE_FONT_AXIS_VALUE *values,
  2656. UINT32 num_values);
  2657. END_INTERFACE
  2658. } IDWriteFontFaceReference1Vtbl;
  2659. interface IDWriteFontFaceReference1 {
  2660. CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl;
  2661. };
  2662. #ifdef COBJMACROS
  2663. #ifndef WIDL_C_INLINE_WRAPPERS
  2664. /*** IUnknown methods ***/
  2665. #define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2666. #define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This)
  2667. #define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This)
  2668. /*** IDWriteFontFaceReference methods ***/
  2669. #define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
  2670. #define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
  2671. #define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
  2672. #define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  2673. #define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
  2674. #define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
  2675. #define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
  2676. #define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
  2677. #define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This)
  2678. #define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
  2679. #define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
  2680. #define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
  2681. #define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
  2682. /*** IDWriteFontFaceReference1 methods ***/
  2683. #define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface)
  2684. #define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
  2685. #define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values)
  2686. #else
  2687. /*** IUnknown methods ***/
  2688. static FORCEINLINE HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) {
  2689. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2690. }
  2691. static FORCEINLINE ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) {
  2692. return This->lpVtbl->AddRef(This);
  2693. }
  2694. static FORCEINLINE ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) {
  2695. return This->lpVtbl->Release(This);
  2696. }
  2697. /*** IDWriteFontFaceReference methods ***/
  2698. static FORCEINLINE HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
  2699. return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
  2700. }
  2701. static FORCEINLINE WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) {
  2702. return This->lpVtbl->Equals(This,reference);
  2703. }
  2704. static FORCEINLINE UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) {
  2705. return This->lpVtbl->GetFontFaceIndex(This);
  2706. }
  2707. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) {
  2708. return This->lpVtbl->GetSimulations(This);
  2709. }
  2710. static FORCEINLINE HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) {
  2711. return This->lpVtbl->GetFontFile(This,fontfile);
  2712. }
  2713. static FORCEINLINE UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) {
  2714. return This->lpVtbl->GetLocalFileSize(This);
  2715. }
  2716. static FORCEINLINE UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) {
  2717. return This->lpVtbl->GetFileSize(This);
  2718. }
  2719. static FORCEINLINE HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) {
  2720. return This->lpVtbl->GetFileTime(This,writetime);
  2721. }
  2722. static FORCEINLINE DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) {
  2723. return This->lpVtbl->GetLocality(This);
  2724. }
  2725. static FORCEINLINE HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) {
  2726. return This->lpVtbl->EnqueueFontDownloadRequest(This);
  2727. }
  2728. static FORCEINLINE HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) {
  2729. return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
  2730. }
  2731. static FORCEINLINE HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) {
  2732. return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
  2733. }
  2734. static FORCEINLINE HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) {
  2735. return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
  2736. }
  2737. /*** IDWriteFontFaceReference1 methods ***/
  2738. static FORCEINLINE HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) {
  2739. return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface);
  2740. }
  2741. static FORCEINLINE UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) {
  2742. return This->lpVtbl->GetFontAxisValueCount(This);
  2743. }
  2744. static FORCEINLINE HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
  2745. return This->lpVtbl->GetFontAxisValues(This,values,num_values);
  2746. }
  2747. #endif
  2748. #endif
  2749. #endif
  2750. #endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */
  2751. /*****************************************************************************
  2752. * IDWriteFontList1 interface
  2753. */
  2754. #ifndef __IDWriteFontList1_INTERFACE_DEFINED__
  2755. #define __IDWriteFontList1_INTERFACE_DEFINED__
  2756. DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde);
  2757. #if defined(__cplusplus) && !defined(CINTERFACE)
  2758. MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade")
  2759. IDWriteFontList1 : public IDWriteFontList
  2760. {
  2761. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
  2762. UINT32 index) = 0;
  2763. virtual HRESULT STDMETHODCALLTYPE GetFont(
  2764. UINT32 index,
  2765. IDWriteFont3 **font) = 0;
  2766. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  2767. UINT32 index,
  2768. IDWriteFontFaceReference **reference) = 0;
  2769. };
  2770. #ifdef __CRT_UUID_DECL
  2771. __CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde)
  2772. #endif
  2773. #else
  2774. typedef struct IDWriteFontList1Vtbl {
  2775. BEGIN_INTERFACE
  2776. /*** IUnknown methods ***/
  2777. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2778. IDWriteFontList1 *This,
  2779. REFIID riid,
  2780. void **ppvObject);
  2781. ULONG (STDMETHODCALLTYPE *AddRef)(
  2782. IDWriteFontList1 *This);
  2783. ULONG (STDMETHODCALLTYPE *Release)(
  2784. IDWriteFontList1 *This);
  2785. /*** IDWriteFontList methods ***/
  2786. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  2787. IDWriteFontList1 *This,
  2788. IDWriteFontCollection **collection);
  2789. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  2790. IDWriteFontList1 *This);
  2791. HRESULT (STDMETHODCALLTYPE *GetFont)(
  2792. IDWriteFontList1 *This,
  2793. UINT32 index,
  2794. IDWriteFont **font);
  2795. /*** IDWriteFontList1 methods ***/
  2796. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  2797. IDWriteFontList1 *This,
  2798. UINT32 index);
  2799. HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
  2800. IDWriteFontList1 *This,
  2801. UINT32 index,
  2802. IDWriteFont3 **font);
  2803. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  2804. IDWriteFontList1 *This,
  2805. UINT32 index,
  2806. IDWriteFontFaceReference **reference);
  2807. END_INTERFACE
  2808. } IDWriteFontList1Vtbl;
  2809. interface IDWriteFontList1 {
  2810. CONST_VTBL IDWriteFontList1Vtbl* lpVtbl;
  2811. };
  2812. #ifdef COBJMACROS
  2813. #ifndef WIDL_C_INLINE_WRAPPERS
  2814. /*** IUnknown methods ***/
  2815. #define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2816. #define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This)
  2817. #define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This)
  2818. /*** IDWriteFontList methods ***/
  2819. #define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  2820. #define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  2821. /*** IDWriteFontList1 methods ***/
  2822. #define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  2823. #define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
  2824. #define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
  2825. #else
  2826. /*** IUnknown methods ***/
  2827. static FORCEINLINE HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) {
  2828. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2829. }
  2830. static FORCEINLINE ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) {
  2831. return This->lpVtbl->AddRef(This);
  2832. }
  2833. static FORCEINLINE ULONG IDWriteFontList1_Release(IDWriteFontList1* This) {
  2834. return This->lpVtbl->Release(This);
  2835. }
  2836. /*** IDWriteFontList methods ***/
  2837. static FORCEINLINE HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) {
  2838. return This->lpVtbl->GetFontCollection(This,collection);
  2839. }
  2840. static FORCEINLINE UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) {
  2841. return This->lpVtbl->GetFontCount(This);
  2842. }
  2843. /*** IDWriteFontList1 methods ***/
  2844. static FORCEINLINE DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) {
  2845. return This->lpVtbl->GetFontLocality(This,index);
  2846. }
  2847. static FORCEINLINE HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) {
  2848. return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
  2849. }
  2850. static FORCEINLINE HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) {
  2851. return This->lpVtbl->GetFontFaceReference(This,index,reference);
  2852. }
  2853. #endif
  2854. #endif
  2855. #endif
  2856. #endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */
  2857. /*****************************************************************************
  2858. * IDWriteFontList2 interface
  2859. */
  2860. #ifndef __IDWriteFontList2_INTERFACE_DEFINED__
  2861. #define __IDWriteFontList2_INTERFACE_DEFINED__
  2862. DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5);
  2863. #if defined(__cplusplus) && !defined(CINTERFACE)
  2864. MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5")
  2865. IDWriteFontList2 : public IDWriteFontList1
  2866. {
  2867. virtual HRESULT STDMETHODCALLTYPE GetFontSet(
  2868. IDWriteFontSet1 **fontset) = 0;
  2869. };
  2870. #ifdef __CRT_UUID_DECL
  2871. __CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5)
  2872. #endif
  2873. #else
  2874. typedef struct IDWriteFontList2Vtbl {
  2875. BEGIN_INTERFACE
  2876. /*** IUnknown methods ***/
  2877. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2878. IDWriteFontList2 *This,
  2879. REFIID riid,
  2880. void **ppvObject);
  2881. ULONG (STDMETHODCALLTYPE *AddRef)(
  2882. IDWriteFontList2 *This);
  2883. ULONG (STDMETHODCALLTYPE *Release)(
  2884. IDWriteFontList2 *This);
  2885. /*** IDWriteFontList methods ***/
  2886. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  2887. IDWriteFontList2 *This,
  2888. IDWriteFontCollection **collection);
  2889. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  2890. IDWriteFontList2 *This);
  2891. HRESULT (STDMETHODCALLTYPE *GetFont)(
  2892. IDWriteFontList2 *This,
  2893. UINT32 index,
  2894. IDWriteFont **font);
  2895. /*** IDWriteFontList1 methods ***/
  2896. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  2897. IDWriteFontList2 *This,
  2898. UINT32 index);
  2899. HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
  2900. IDWriteFontList2 *This,
  2901. UINT32 index,
  2902. IDWriteFont3 **font);
  2903. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  2904. IDWriteFontList2 *This,
  2905. UINT32 index,
  2906. IDWriteFontFaceReference **reference);
  2907. /*** IDWriteFontList2 methods ***/
  2908. HRESULT (STDMETHODCALLTYPE *GetFontSet)(
  2909. IDWriteFontList2 *This,
  2910. IDWriteFontSet1 **fontset);
  2911. END_INTERFACE
  2912. } IDWriteFontList2Vtbl;
  2913. interface IDWriteFontList2 {
  2914. CONST_VTBL IDWriteFontList2Vtbl* lpVtbl;
  2915. };
  2916. #ifdef COBJMACROS
  2917. #ifndef WIDL_C_INLINE_WRAPPERS
  2918. /*** IUnknown methods ***/
  2919. #define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2920. #define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This)
  2921. #define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This)
  2922. /*** IDWriteFontList methods ***/
  2923. #define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  2924. #define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  2925. /*** IDWriteFontList1 methods ***/
  2926. #define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  2927. #define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
  2928. #define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
  2929. /*** IDWriteFontList2 methods ***/
  2930. #define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
  2931. #else
  2932. /*** IUnknown methods ***/
  2933. static FORCEINLINE HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) {
  2934. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2935. }
  2936. static FORCEINLINE ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) {
  2937. return This->lpVtbl->AddRef(This);
  2938. }
  2939. static FORCEINLINE ULONG IDWriteFontList2_Release(IDWriteFontList2* This) {
  2940. return This->lpVtbl->Release(This);
  2941. }
  2942. /*** IDWriteFontList methods ***/
  2943. static FORCEINLINE HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) {
  2944. return This->lpVtbl->GetFontCollection(This,collection);
  2945. }
  2946. static FORCEINLINE UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) {
  2947. return This->lpVtbl->GetFontCount(This);
  2948. }
  2949. /*** IDWriteFontList1 methods ***/
  2950. static FORCEINLINE DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) {
  2951. return This->lpVtbl->GetFontLocality(This,index);
  2952. }
  2953. static FORCEINLINE HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) {
  2954. return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
  2955. }
  2956. static FORCEINLINE HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) {
  2957. return This->lpVtbl->GetFontFaceReference(This,index,reference);
  2958. }
  2959. /*** IDWriteFontList2 methods ***/
  2960. static FORCEINLINE HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) {
  2961. return This->lpVtbl->GetFontSet(This,fontset);
  2962. }
  2963. #endif
  2964. #endif
  2965. #endif
  2966. #endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */
  2967. /*****************************************************************************
  2968. * IDWriteFontSet2 interface
  2969. */
  2970. #ifndef __IDWriteFontSet2_INTERFACE_DEFINED__
  2971. #define __IDWriteFontSet2_INTERFACE_DEFINED__
  2972. DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f);
  2973. #if defined(__cplusplus) && !defined(CINTERFACE)
  2974. MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f")
  2975. IDWriteFontSet2 : public IDWriteFontSet1
  2976. {
  2977. virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
  2978. ) = 0;
  2979. };
  2980. #ifdef __CRT_UUID_DECL
  2981. __CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f)
  2982. #endif
  2983. #else
  2984. typedef struct IDWriteFontSet2Vtbl {
  2985. BEGIN_INTERFACE
  2986. /*** IUnknown methods ***/
  2987. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2988. IDWriteFontSet2 *This,
  2989. REFIID riid,
  2990. void **ppvObject);
  2991. ULONG (STDMETHODCALLTYPE *AddRef)(
  2992. IDWriteFontSet2 *This);
  2993. ULONG (STDMETHODCALLTYPE *Release)(
  2994. IDWriteFontSet2 *This);
  2995. /*** IDWriteFontSet methods ***/
  2996. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  2997. IDWriteFontSet2 *This);
  2998. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  2999. IDWriteFontSet2 *This,
  3000. UINT32 index,
  3001. IDWriteFontFaceReference **reference);
  3002. HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
  3003. IDWriteFontSet2 *This,
  3004. IDWriteFontFaceReference *reference,
  3005. UINT32 *index,
  3006. WINBOOL *exists);
  3007. HRESULT (STDMETHODCALLTYPE *FindFontFace)(
  3008. IDWriteFontSet2 *This,
  3009. IDWriteFontFace *fontface,
  3010. UINT32 *index,
  3011. WINBOOL *exists);
  3012. HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
  3013. IDWriteFontSet2 *This,
  3014. DWRITE_FONT_PROPERTY_ID id,
  3015. IDWriteStringList **values);
  3016. HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
  3017. IDWriteFontSet2 *This,
  3018. DWRITE_FONT_PROPERTY_ID id,
  3019. const WCHAR *preferred_locales,
  3020. IDWriteStringList **values);
  3021. HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
  3022. IDWriteFontSet2 *This,
  3023. UINT32 index,
  3024. DWRITE_FONT_PROPERTY_ID id,
  3025. WINBOOL *exists,
  3026. IDWriteLocalizedStrings **values);
  3027. HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
  3028. IDWriteFontSet2 *This,
  3029. const DWRITE_FONT_PROPERTY *property,
  3030. UINT32 *count);
  3031. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
  3032. IDWriteFontSet2 *This,
  3033. const WCHAR *family,
  3034. DWRITE_FONT_WEIGHT weight,
  3035. DWRITE_FONT_STRETCH stretch,
  3036. DWRITE_FONT_STYLE style,
  3037. IDWriteFontSet **fontset);
  3038. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  3039. IDWriteFontSet2 *This,
  3040. const DWRITE_FONT_PROPERTY *props,
  3041. UINT32 count,
  3042. IDWriteFontSet **fontset);
  3043. /*** IDWriteFontSet1 methods ***/
  3044. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
  3045. IDWriteFontSet2 *This,
  3046. const DWRITE_FONT_PROPERTY *property,
  3047. const DWRITE_FONT_AXIS_VALUE *axis_values,
  3048. UINT32 num_values,
  3049. IDWriteFontSet1 **fontset);
  3050. HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
  3051. IDWriteFontSet2 *This,
  3052. IDWriteFontSet1 **fontset);
  3053. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
  3054. IDWriteFontSet2 *This,
  3055. const UINT32 *indices,
  3056. UINT32 num_indices,
  3057. IDWriteFontSet1 **fontset);
  3058. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
  3059. IDWriteFontSet2 *This,
  3060. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3061. UINT32 num_ranges,
  3062. WINBOOL select_any_range,
  3063. IDWriteFontSet1 **fontset);
  3064. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
  3065. IDWriteFontSet2 *This,
  3066. const DWRITE_FONT_PROPERTY *props,
  3067. UINT32 num_properties,
  3068. WINBOOL select_any_property,
  3069. IDWriteFontSet1 **fontset);
  3070. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
  3071. IDWriteFontSet2 *This,
  3072. const DWRITE_FONT_AXIS_RANGE *ranges,
  3073. UINT32 num_ranges,
  3074. WINBOOL select_any_range,
  3075. UINT32 *indices,
  3076. UINT32 num_indices,
  3077. UINT32 *actual_num_indices);
  3078. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
  3079. IDWriteFontSet2 *This,
  3080. const DWRITE_FONT_PROPERTY *props,
  3081. UINT32 num_properties,
  3082. WINBOOL select_any_range,
  3083. UINT32 *indices,
  3084. UINT32 num_indices,
  3085. UINT32 *actual_num_indices);
  3086. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
  3087. IDWriteFontSet2 *This,
  3088. UINT32 font_index,
  3089. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3090. UINT32 num_ranges,
  3091. UINT32 *actual_num_ranges);
  3092. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
  3093. IDWriteFontSet2 *This,
  3094. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3095. UINT32 num_ranges,
  3096. UINT32 *actual_num_ranges);
  3097. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
  3098. IDWriteFontSet2 *This,
  3099. UINT32 index,
  3100. IDWriteFontFaceReference1 **reference);
  3101. HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  3102. IDWriteFontSet2 *This,
  3103. UINT32 index,
  3104. IDWriteFontResource **resource);
  3105. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  3106. IDWriteFontSet2 *This,
  3107. UINT32 index,
  3108. IDWriteFontFace5 **fontface);
  3109. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  3110. IDWriteFontSet2 *This,
  3111. UINT32 index);
  3112. /*** IDWriteFontSet2 methods ***/
  3113. HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
  3114. IDWriteFontSet2 *This);
  3115. END_INTERFACE
  3116. } IDWriteFontSet2Vtbl;
  3117. interface IDWriteFontSet2 {
  3118. CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl;
  3119. };
  3120. #ifdef COBJMACROS
  3121. #ifndef WIDL_C_INLINE_WRAPPERS
  3122. /*** IUnknown methods ***/
  3123. #define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3124. #define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This)
  3125. #define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This)
  3126. /*** IDWriteFontSet methods ***/
  3127. #define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  3128. #define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
  3129. #define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
  3130. #define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
  3131. #define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
  3132. #define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
  3133. #define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
  3134. #define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
  3135. /*** IDWriteFontSet1 methods ***/
  3136. #define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
  3137. #define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
  3138. #define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
  3139. #define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
  3140. #define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
  3141. #define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
  3142. #define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
  3143. #define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
  3144. #define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
  3145. #define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
  3146. #define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
  3147. #define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
  3148. #define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  3149. /*** IDWriteFontSet2 methods ***/
  3150. #define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
  3151. #else
  3152. /*** IUnknown methods ***/
  3153. static FORCEINLINE HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) {
  3154. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3155. }
  3156. static FORCEINLINE ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) {
  3157. return This->lpVtbl->AddRef(This);
  3158. }
  3159. static FORCEINLINE ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) {
  3160. return This->lpVtbl->Release(This);
  3161. }
  3162. /*** IDWriteFontSet methods ***/
  3163. static FORCEINLINE UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) {
  3164. return This->lpVtbl->GetFontCount(This);
  3165. }
  3166. static FORCEINLINE HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
  3167. return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
  3168. }
  3169. static FORCEINLINE HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
  3170. return This->lpVtbl->FindFontFace(This,fontface,index,exists);
  3171. }
  3172. static FORCEINLINE HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
  3173. return This->lpVtbl->GetPropertyValues__(This,id,values);
  3174. }
  3175. static FORCEINLINE HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
  3176. return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
  3177. }
  3178. static FORCEINLINE HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
  3179. return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
  3180. }
  3181. static FORCEINLINE HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
  3182. return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
  3183. }
  3184. static FORCEINLINE HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
  3185. return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
  3186. }
  3187. /*** IDWriteFontSet1 methods ***/
  3188. static FORCEINLINE HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
  3189. return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
  3190. }
  3191. static FORCEINLINE HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) {
  3192. return This->lpVtbl->GetFirstFontResources(This,fontset);
  3193. }
  3194. static FORCEINLINE HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
  3195. return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
  3196. }
  3197. static FORCEINLINE HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
  3198. return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
  3199. }
  3200. static FORCEINLINE HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
  3201. return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
  3202. }
  3203. static FORCEINLINE HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  3204. return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
  3205. }
  3206. static FORCEINLINE HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  3207. return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
  3208. }
  3209. static FORCEINLINE HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  3210. return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
  3211. }
  3212. static FORCEINLINE HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  3213. return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
  3214. }
  3215. static FORCEINLINE HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
  3216. return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
  3217. }
  3218. static FORCEINLINE HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) {
  3219. return This->lpVtbl->CreateFontResource(This,index,resource);
  3220. }
  3221. static FORCEINLINE HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) {
  3222. return This->lpVtbl->CreateFontFace(This,index,fontface);
  3223. }
  3224. static FORCEINLINE DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) {
  3225. return This->lpVtbl->GetFontLocality(This,index);
  3226. }
  3227. /*** IDWriteFontSet2 methods ***/
  3228. static FORCEINLINE HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) {
  3229. return This->lpVtbl->GetExpirationEvent(This);
  3230. }
  3231. #endif
  3232. #endif
  3233. #endif
  3234. #endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */
  3235. /*****************************************************************************
  3236. * IDWriteFontSet3 interface
  3237. */
  3238. #ifndef __IDWriteFontSet3_INTERFACE_DEFINED__
  3239. #define __IDWriteFontSet3_INTERFACE_DEFINED__
  3240. DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90);
  3241. #if defined(__cplusplus) && !defined(CINTERFACE)
  3242. MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90")
  3243. IDWriteFontSet3 : public IDWriteFontSet2
  3244. {
  3245. virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType(
  3246. UINT32 index) = 0;
  3247. virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength(
  3248. UINT32 index) = 0;
  3249. virtual HRESULT STDMETHODCALLTYPE GetFontSourceName(
  3250. UINT32 index,
  3251. WCHAR *buffer,
  3252. UINT32 buffer_size) = 0;
  3253. };
  3254. #ifdef __CRT_UUID_DECL
  3255. __CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90)
  3256. #endif
  3257. #else
  3258. typedef struct IDWriteFontSet3Vtbl {
  3259. BEGIN_INTERFACE
  3260. /*** IUnknown methods ***/
  3261. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3262. IDWriteFontSet3 *This,
  3263. REFIID riid,
  3264. void **ppvObject);
  3265. ULONG (STDMETHODCALLTYPE *AddRef)(
  3266. IDWriteFontSet3 *This);
  3267. ULONG (STDMETHODCALLTYPE *Release)(
  3268. IDWriteFontSet3 *This);
  3269. /*** IDWriteFontSet methods ***/
  3270. UINT32 (STDMETHODCALLTYPE *GetFontCount)(
  3271. IDWriteFontSet3 *This);
  3272. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  3273. IDWriteFontSet3 *This,
  3274. UINT32 index,
  3275. IDWriteFontFaceReference **reference);
  3276. HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
  3277. IDWriteFontSet3 *This,
  3278. IDWriteFontFaceReference *reference,
  3279. UINT32 *index,
  3280. WINBOOL *exists);
  3281. HRESULT (STDMETHODCALLTYPE *FindFontFace)(
  3282. IDWriteFontSet3 *This,
  3283. IDWriteFontFace *fontface,
  3284. UINT32 *index,
  3285. WINBOOL *exists);
  3286. HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
  3287. IDWriteFontSet3 *This,
  3288. DWRITE_FONT_PROPERTY_ID id,
  3289. IDWriteStringList **values);
  3290. HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
  3291. IDWriteFontSet3 *This,
  3292. DWRITE_FONT_PROPERTY_ID id,
  3293. const WCHAR *preferred_locales,
  3294. IDWriteStringList **values);
  3295. HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
  3296. IDWriteFontSet3 *This,
  3297. UINT32 index,
  3298. DWRITE_FONT_PROPERTY_ID id,
  3299. WINBOOL *exists,
  3300. IDWriteLocalizedStrings **values);
  3301. HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
  3302. IDWriteFontSet3 *This,
  3303. const DWRITE_FONT_PROPERTY *property,
  3304. UINT32 *count);
  3305. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
  3306. IDWriteFontSet3 *This,
  3307. const WCHAR *family,
  3308. DWRITE_FONT_WEIGHT weight,
  3309. DWRITE_FONT_STRETCH stretch,
  3310. DWRITE_FONT_STYLE style,
  3311. IDWriteFontSet **fontset);
  3312. HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
  3313. IDWriteFontSet3 *This,
  3314. const DWRITE_FONT_PROPERTY *props,
  3315. UINT32 count,
  3316. IDWriteFontSet **fontset);
  3317. /*** IDWriteFontSet1 methods ***/
  3318. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
  3319. IDWriteFontSet3 *This,
  3320. const DWRITE_FONT_PROPERTY *property,
  3321. const DWRITE_FONT_AXIS_VALUE *axis_values,
  3322. UINT32 num_values,
  3323. IDWriteFontSet1 **fontset);
  3324. HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
  3325. IDWriteFontSet3 *This,
  3326. IDWriteFontSet1 **fontset);
  3327. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
  3328. IDWriteFontSet3 *This,
  3329. const UINT32 *indices,
  3330. UINT32 num_indices,
  3331. IDWriteFontSet1 **fontset);
  3332. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
  3333. IDWriteFontSet3 *This,
  3334. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3335. UINT32 num_ranges,
  3336. WINBOOL select_any_range,
  3337. IDWriteFontSet1 **fontset);
  3338. HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
  3339. IDWriteFontSet3 *This,
  3340. const DWRITE_FONT_PROPERTY *props,
  3341. UINT32 num_properties,
  3342. WINBOOL select_any_property,
  3343. IDWriteFontSet1 **fontset);
  3344. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
  3345. IDWriteFontSet3 *This,
  3346. const DWRITE_FONT_AXIS_RANGE *ranges,
  3347. UINT32 num_ranges,
  3348. WINBOOL select_any_range,
  3349. UINT32 *indices,
  3350. UINT32 num_indices,
  3351. UINT32 *actual_num_indices);
  3352. HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
  3353. IDWriteFontSet3 *This,
  3354. const DWRITE_FONT_PROPERTY *props,
  3355. UINT32 num_properties,
  3356. WINBOOL select_any_range,
  3357. UINT32 *indices,
  3358. UINT32 num_indices,
  3359. UINT32 *actual_num_indices);
  3360. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
  3361. IDWriteFontSet3 *This,
  3362. UINT32 font_index,
  3363. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3364. UINT32 num_ranges,
  3365. UINT32 *actual_num_ranges);
  3366. HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
  3367. IDWriteFontSet3 *This,
  3368. DWRITE_FONT_AXIS_RANGE *axis_ranges,
  3369. UINT32 num_ranges,
  3370. UINT32 *actual_num_ranges);
  3371. HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
  3372. IDWriteFontSet3 *This,
  3373. UINT32 index,
  3374. IDWriteFontFaceReference1 **reference);
  3375. HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  3376. IDWriteFontSet3 *This,
  3377. UINT32 index,
  3378. IDWriteFontResource **resource);
  3379. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  3380. IDWriteFontSet3 *This,
  3381. UINT32 index,
  3382. IDWriteFontFace5 **fontface);
  3383. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
  3384. IDWriteFontSet3 *This,
  3385. UINT32 index);
  3386. /*** IDWriteFontSet2 methods ***/
  3387. HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
  3388. IDWriteFontSet3 *This);
  3389. /*** IDWriteFontSet3 methods ***/
  3390. DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
  3391. IDWriteFontSet3 *This,
  3392. UINT32 index);
  3393. UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
  3394. IDWriteFontSet3 *This,
  3395. UINT32 index);
  3396. HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
  3397. IDWriteFontSet3 *This,
  3398. UINT32 index,
  3399. WCHAR *buffer,
  3400. UINT32 buffer_size);
  3401. END_INTERFACE
  3402. } IDWriteFontSet3Vtbl;
  3403. interface IDWriteFontSet3 {
  3404. CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl;
  3405. };
  3406. #ifdef COBJMACROS
  3407. #ifndef WIDL_C_INLINE_WRAPPERS
  3408. /*** IUnknown methods ***/
  3409. #define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3410. #define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This)
  3411. #define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This)
  3412. /*** IDWriteFontSet methods ***/
  3413. #define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
  3414. #define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
  3415. #define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
  3416. #define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
  3417. #define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
  3418. #define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
  3419. #define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
  3420. #define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
  3421. /*** IDWriteFontSet1 methods ***/
  3422. #define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
  3423. #define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
  3424. #define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
  3425. #define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
  3426. #define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
  3427. #define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
  3428. #define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
  3429. #define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
  3430. #define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
  3431. #define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
  3432. #define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
  3433. #define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
  3434. #define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
  3435. /*** IDWriteFontSet2 methods ***/
  3436. #define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
  3437. /*** IDWriteFontSet3 methods ***/
  3438. #define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
  3439. #define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
  3440. #define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
  3441. #else
  3442. /*** IUnknown methods ***/
  3443. static FORCEINLINE HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) {
  3444. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3445. }
  3446. static FORCEINLINE ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) {
  3447. return This->lpVtbl->AddRef(This);
  3448. }
  3449. static FORCEINLINE ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) {
  3450. return This->lpVtbl->Release(This);
  3451. }
  3452. /*** IDWriteFontSet methods ***/
  3453. static FORCEINLINE UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) {
  3454. return This->lpVtbl->GetFontCount(This);
  3455. }
  3456. static FORCEINLINE HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
  3457. return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
  3458. }
  3459. static FORCEINLINE HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
  3460. return This->lpVtbl->FindFontFace(This,fontface,index,exists);
  3461. }
  3462. static FORCEINLINE HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
  3463. return This->lpVtbl->GetPropertyValues__(This,id,values);
  3464. }
  3465. static FORCEINLINE HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
  3466. return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
  3467. }
  3468. static FORCEINLINE HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
  3469. return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
  3470. }
  3471. static FORCEINLINE HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
  3472. return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
  3473. }
  3474. static FORCEINLINE HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
  3475. return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
  3476. }
  3477. /*** IDWriteFontSet1 methods ***/
  3478. static FORCEINLINE HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
  3479. return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
  3480. }
  3481. static FORCEINLINE HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) {
  3482. return This->lpVtbl->GetFirstFontResources(This,fontset);
  3483. }
  3484. static FORCEINLINE HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
  3485. return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
  3486. }
  3487. static FORCEINLINE HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
  3488. return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
  3489. }
  3490. static FORCEINLINE HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
  3491. return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
  3492. }
  3493. static FORCEINLINE HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  3494. return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
  3495. }
  3496. static FORCEINLINE HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
  3497. return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
  3498. }
  3499. static FORCEINLINE HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  3500. return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
  3501. }
  3502. static FORCEINLINE HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
  3503. return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
  3504. }
  3505. static FORCEINLINE HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
  3506. return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
  3507. }
  3508. static FORCEINLINE HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) {
  3509. return This->lpVtbl->CreateFontResource(This,index,resource);
  3510. }
  3511. static FORCEINLINE HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) {
  3512. return This->lpVtbl->CreateFontFace(This,index,fontface);
  3513. }
  3514. static FORCEINLINE DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) {
  3515. return This->lpVtbl->GetFontLocality(This,index);
  3516. }
  3517. /*** IDWriteFontSet2 methods ***/
  3518. static FORCEINLINE HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) {
  3519. return This->lpVtbl->GetExpirationEvent(This);
  3520. }
  3521. /*** IDWriteFontSet3 methods ***/
  3522. static FORCEINLINE DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) {
  3523. return This->lpVtbl->GetFontSourceType(This,index);
  3524. }
  3525. static FORCEINLINE UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) {
  3526. return This->lpVtbl->GetFontSourceNameLength(This,index);
  3527. }
  3528. static FORCEINLINE HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
  3529. return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
  3530. }
  3531. #endif
  3532. #endif
  3533. #endif
  3534. #endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */
  3535. /*****************************************************************************
  3536. * IDWriteFontFace3 interface
  3537. */
  3538. #ifndef __IDWriteFontFace3_INTERFACE_DEFINED__
  3539. #define __IDWriteFontFace3_INTERFACE_DEFINED__
  3540. DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2);
  3541. #if defined(__cplusplus) && !defined(CINTERFACE)
  3542. MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2")
  3543. IDWriteFontFace3 : public IDWriteFontFace2
  3544. {
  3545. virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
  3546. IDWriteFontFaceReference **reference) = 0;
  3547. virtual void STDMETHODCALLTYPE GetPanose(
  3548. DWRITE_PANOSE *panose) = 0;
  3549. virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight(
  3550. ) = 0;
  3551. virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch(
  3552. ) = 0;
  3553. virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle(
  3554. ) = 0;
  3555. virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
  3556. IDWriteLocalizedStrings **names) = 0;
  3557. virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
  3558. IDWriteLocalizedStrings **names) = 0;
  3559. virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings(
  3560. DWRITE_INFORMATIONAL_STRING_ID stringid,
  3561. IDWriteLocalizedStrings **strings,
  3562. WINBOOL *exists) = 0;
  3563. virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
  3564. UINT32 character) = 0;
  3565. virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
  3566. FLOAT emsize,
  3567. FLOAT dpi_x,
  3568. FLOAT dpi_y,
  3569. const DWRITE_MATRIX *transform,
  3570. WINBOOL is_sideways,
  3571. DWRITE_OUTLINE_THRESHOLD threshold,
  3572. DWRITE_MEASURING_MODE measuring_mode,
  3573. IDWriteRenderingParams *params,
  3574. DWRITE_RENDERING_MODE1 *rendering_mode,
  3575. DWRITE_GRID_FIT_MODE *gridfit_mode) = 0;
  3576. virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal(
  3577. UINT32 character) = 0;
  3578. virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal(
  3579. UINT16 glyph) = 0;
  3580. virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal(
  3581. const WCHAR *characters,
  3582. UINT32 count,
  3583. WINBOOL enqueue_if_not,
  3584. WINBOOL *are_local) = 0;
  3585. virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal(
  3586. const UINT16 *glyphs,
  3587. UINT32 count,
  3588. WINBOOL enqueue_if_not,
  3589. WINBOOL *are_local) = 0;
  3590. };
  3591. #ifdef __CRT_UUID_DECL
  3592. __CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2)
  3593. #endif
  3594. #else
  3595. typedef struct IDWriteFontFace3Vtbl {
  3596. BEGIN_INTERFACE
  3597. /*** IUnknown methods ***/
  3598. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3599. IDWriteFontFace3 *This,
  3600. REFIID riid,
  3601. void **ppvObject);
  3602. ULONG (STDMETHODCALLTYPE *AddRef)(
  3603. IDWriteFontFace3 *This);
  3604. ULONG (STDMETHODCALLTYPE *Release)(
  3605. IDWriteFontFace3 *This);
  3606. /*** IDWriteFontFace methods ***/
  3607. DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
  3608. IDWriteFontFace3 *This);
  3609. HRESULT (STDMETHODCALLTYPE *GetFiles)(
  3610. IDWriteFontFace3 *This,
  3611. UINT32 *number_of_files,
  3612. IDWriteFontFile **fontfiles);
  3613. UINT32 (STDMETHODCALLTYPE *GetIndex)(
  3614. IDWriteFontFace3 *This);
  3615. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  3616. IDWriteFontFace3 *This);
  3617. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  3618. IDWriteFontFace3 *This);
  3619. void (STDMETHODCALLTYPE *GetMetrics)(
  3620. IDWriteFontFace3 *This,
  3621. DWRITE_FONT_METRICS *metrics);
  3622. UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
  3623. IDWriteFontFace3 *This);
  3624. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
  3625. IDWriteFontFace3 *This,
  3626. const UINT16 *glyph_indices,
  3627. UINT32 glyph_count,
  3628. DWRITE_GLYPH_METRICS *metrics,
  3629. WINBOOL is_sideways);
  3630. HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
  3631. IDWriteFontFace3 *This,
  3632. const UINT32 *codepoints,
  3633. UINT32 count,
  3634. UINT16 *glyph_indices);
  3635. HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
  3636. IDWriteFontFace3 *This,
  3637. UINT32 table_tag,
  3638. const void **table_data,
  3639. UINT32 *table_size,
  3640. void **context,
  3641. WINBOOL *exists);
  3642. void (STDMETHODCALLTYPE *ReleaseFontTable)(
  3643. IDWriteFontFace3 *This,
  3644. void *table_context);
  3645. HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
  3646. IDWriteFontFace3 *This,
  3647. FLOAT emSize,
  3648. const UINT16 *glyph_indices,
  3649. const FLOAT *glyph_advances,
  3650. const DWRITE_GLYPH_OFFSET *glyph_offsets,
  3651. UINT32 glyph_count,
  3652. WINBOOL is_sideways,
  3653. WINBOOL is_rtl,
  3654. IDWriteGeometrySink *geometrysink);
  3655. HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
  3656. IDWriteFontFace3 *This,
  3657. FLOAT emSize,
  3658. FLOAT pixels_per_dip,
  3659. DWRITE_MEASURING_MODE mode,
  3660. IDWriteRenderingParams *params,
  3661. DWRITE_RENDERING_MODE *rendering_mode);
  3662. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
  3663. IDWriteFontFace3 *This,
  3664. FLOAT emSize,
  3665. FLOAT pixels_per_dip,
  3666. const DWRITE_MATRIX *transform,
  3667. DWRITE_FONT_METRICS *metrics);
  3668. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
  3669. IDWriteFontFace3 *This,
  3670. FLOAT emSize,
  3671. FLOAT pixels_per_dip,
  3672. const DWRITE_MATRIX *transform,
  3673. WINBOOL use_gdi_natural,
  3674. const UINT16 *glyph_indices,
  3675. UINT32 glyph_count,
  3676. DWRITE_GLYPH_METRICS *metrics,
  3677. WINBOOL is_sideways);
  3678. /*** IDWriteFontFace1 methods ***/
  3679. void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
  3680. IDWriteFontFace3 *This,
  3681. DWRITE_FONT_METRICS1 *metrics);
  3682. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
  3683. IDWriteFontFace3 *This,
  3684. FLOAT em_size,
  3685. FLOAT pixels_per_dip,
  3686. const DWRITE_MATRIX *transform,
  3687. DWRITE_FONT_METRICS1 *metrics);
  3688. void (STDMETHODCALLTYPE *GetCaretMetrics)(
  3689. IDWriteFontFace3 *This,
  3690. DWRITE_CARET_METRICS *metrics);
  3691. HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  3692. IDWriteFontFace3 *This,
  3693. UINT32 max_count,
  3694. DWRITE_UNICODE_RANGE *ranges,
  3695. UINT32 *count);
  3696. WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  3697. IDWriteFontFace3 *This);
  3698. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
  3699. IDWriteFontFace3 *This,
  3700. UINT32 glyph_count,
  3701. const UINT16 *indices,
  3702. INT32 *advances,
  3703. WINBOOL is_sideways);
  3704. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
  3705. IDWriteFontFace3 *This,
  3706. FLOAT em_size,
  3707. FLOAT pixels_per_dip,
  3708. const DWRITE_MATRIX *transform,
  3709. WINBOOL use_gdi_natural,
  3710. WINBOOL is_sideways,
  3711. UINT32 glyph_count,
  3712. const UINT16 *indices,
  3713. INT32 *advances);
  3714. HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
  3715. IDWriteFontFace3 *This,
  3716. UINT32 glyph_count,
  3717. const UINT16 *indices,
  3718. INT32 *adjustments);
  3719. WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
  3720. IDWriteFontFace3 *This);
  3721. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
  3722. IDWriteFontFace3 *This,
  3723. FLOAT font_emsize,
  3724. FLOAT dpiX,
  3725. FLOAT dpiY,
  3726. const DWRITE_MATRIX *transform,
  3727. WINBOOL is_sideways,
  3728. DWRITE_OUTLINE_THRESHOLD threshold,
  3729. DWRITE_MEASURING_MODE measuring_mode,
  3730. DWRITE_RENDERING_MODE *rendering_mode);
  3731. HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
  3732. IDWriteFontFace3 *This,
  3733. UINT32 glyph_count,
  3734. const UINT16 *nominal_indices,
  3735. UINT16 *vertical_indices);
  3736. WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
  3737. IDWriteFontFace3 *This);
  3738. /*** IDWriteFontFace2 methods ***/
  3739. WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  3740. IDWriteFontFace3 *This);
  3741. UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
  3742. IDWriteFontFace3 *This);
  3743. UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
  3744. IDWriteFontFace3 *This);
  3745. HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
  3746. IDWriteFontFace3 *This,
  3747. UINT32 palette_index,
  3748. UINT32 first_entry_index,
  3749. UINT32 entry_count,
  3750. DWRITE_COLOR_F *entries);
  3751. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
  3752. IDWriteFontFace3 *This,
  3753. FLOAT fontEmSize,
  3754. FLOAT dpiX,
  3755. FLOAT dpiY,
  3756. const DWRITE_MATRIX *transform,
  3757. WINBOOL is_sideways,
  3758. DWRITE_OUTLINE_THRESHOLD threshold,
  3759. DWRITE_MEASURING_MODE measuringmode,
  3760. IDWriteRenderingParams *params,
  3761. DWRITE_RENDERING_MODE *renderingmode,
  3762. DWRITE_GRID_FIT_MODE *gridfitmode);
  3763. /*** IDWriteFontFace3 methods ***/
  3764. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  3765. IDWriteFontFace3 *This,
  3766. IDWriteFontFaceReference **reference);
  3767. void (STDMETHODCALLTYPE *GetPanose)(
  3768. IDWriteFontFace3 *This,
  3769. DWRITE_PANOSE *panose);
  3770. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  3771. IDWriteFontFace3 *This);
  3772. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  3773. IDWriteFontFace3 *This);
  3774. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  3775. IDWriteFontFace3 *This);
  3776. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  3777. IDWriteFontFace3 *This,
  3778. IDWriteLocalizedStrings **names);
  3779. HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  3780. IDWriteFontFace3 *This,
  3781. IDWriteLocalizedStrings **names);
  3782. HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  3783. IDWriteFontFace3 *This,
  3784. DWRITE_INFORMATIONAL_STRING_ID stringid,
  3785. IDWriteLocalizedStrings **strings,
  3786. WINBOOL *exists);
  3787. WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
  3788. IDWriteFontFace3 *This,
  3789. UINT32 character);
  3790. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
  3791. IDWriteFontFace3 *This,
  3792. FLOAT emsize,
  3793. FLOAT dpi_x,
  3794. FLOAT dpi_y,
  3795. const DWRITE_MATRIX *transform,
  3796. WINBOOL is_sideways,
  3797. DWRITE_OUTLINE_THRESHOLD threshold,
  3798. DWRITE_MEASURING_MODE measuring_mode,
  3799. IDWriteRenderingParams *params,
  3800. DWRITE_RENDERING_MODE1 *rendering_mode,
  3801. DWRITE_GRID_FIT_MODE *gridfit_mode);
  3802. WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
  3803. IDWriteFontFace3 *This,
  3804. UINT32 character);
  3805. WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
  3806. IDWriteFontFace3 *This,
  3807. UINT16 glyph);
  3808. HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
  3809. IDWriteFontFace3 *This,
  3810. const WCHAR *characters,
  3811. UINT32 count,
  3812. WINBOOL enqueue_if_not,
  3813. WINBOOL *are_local);
  3814. HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
  3815. IDWriteFontFace3 *This,
  3816. const UINT16 *glyphs,
  3817. UINT32 count,
  3818. WINBOOL enqueue_if_not,
  3819. WINBOOL *are_local);
  3820. END_INTERFACE
  3821. } IDWriteFontFace3Vtbl;
  3822. interface IDWriteFontFace3 {
  3823. CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl;
  3824. };
  3825. #ifdef COBJMACROS
  3826. #ifndef WIDL_C_INLINE_WRAPPERS
  3827. /*** IUnknown methods ***/
  3828. #define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3829. #define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This)
  3830. #define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This)
  3831. /*** IDWriteFontFace methods ***/
  3832. #define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This)
  3833. #define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  3834. #define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  3835. #define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  3836. #define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  3837. #define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  3838. #define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  3839. #define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  3840. #define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  3841. #define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  3842. #define IDWriteFontFace3_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)
  3843. #define IDWriteFontFace3_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)
  3844. /*** IDWriteFontFace1 methods ***/
  3845. #define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
  3846. #define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
  3847. #define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
  3848. #define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  3849. #define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  3850. #define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
  3851. #define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
  3852. #define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
  3853. #define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
  3854. #define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
  3855. #define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
  3856. /*** IDWriteFontFace2 methods ***/
  3857. #define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  3858. #define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
  3859. #define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
  3860. #define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
  3861. /*** IDWriteFontFace3 methods ***/
  3862. #define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  3863. #define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  3864. #define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  3865. #define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  3866. #define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  3867. #define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  3868. #define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
  3869. #define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  3870. #define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
  3871. #define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
  3872. #define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
  3873. #define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
  3874. #define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
  3875. #define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
  3876. #else
  3877. /*** IUnknown methods ***/
  3878. static FORCEINLINE HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) {
  3879. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3880. }
  3881. static FORCEINLINE ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) {
  3882. return This->lpVtbl->AddRef(This);
  3883. }
  3884. static FORCEINLINE ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) {
  3885. return This->lpVtbl->Release(This);
  3886. }
  3887. /*** IDWriteFontFace methods ***/
  3888. static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) {
  3889. return This->lpVtbl->GetType(This);
  3890. }
  3891. static FORCEINLINE HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  3892. return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  3893. }
  3894. static FORCEINLINE UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) {
  3895. return This->lpVtbl->GetIndex(This);
  3896. }
  3897. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) {
  3898. return This->lpVtbl->GetSimulations(This);
  3899. }
  3900. static FORCEINLINE WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) {
  3901. return This->lpVtbl->IsSymbolFont(This);
  3902. }
  3903. static FORCEINLINE UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) {
  3904. return This->lpVtbl->GetGlyphCount(This);
  3905. }
  3906. static FORCEINLINE HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  3907. return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  3908. }
  3909. static FORCEINLINE HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  3910. return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  3911. }
  3912. static FORCEINLINE HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  3913. return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  3914. }
  3915. static FORCEINLINE void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) {
  3916. This->lpVtbl->ReleaseFontTable(This,table_context);
  3917. }
  3918. static FORCEINLINE HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* 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) {
  3919. return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  3920. }
  3921. static FORCEINLINE HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* 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) {
  3922. return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  3923. }
  3924. /*** IDWriteFontFace1 methods ***/
  3925. static FORCEINLINE void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) {
  3926. This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
  3927. }
  3928. static FORCEINLINE HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
  3929. return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
  3930. }
  3931. static FORCEINLINE void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) {
  3932. This->lpVtbl->GetCaretMetrics(This,metrics);
  3933. }
  3934. static FORCEINLINE HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  3935. return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  3936. }
  3937. static FORCEINLINE WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) {
  3938. return This->lpVtbl->IsMonospacedFont(This);
  3939. }
  3940. static FORCEINLINE HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
  3941. return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
  3942. }
  3943. static FORCEINLINE HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
  3944. return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
  3945. }
  3946. static FORCEINLINE HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
  3947. return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
  3948. }
  3949. static FORCEINLINE WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) {
  3950. return This->lpVtbl->HasKerningPairs(This);
  3951. }
  3952. static FORCEINLINE HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
  3953. return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
  3954. }
  3955. static FORCEINLINE WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) {
  3956. return This->lpVtbl->HasVerticalGlyphVariants(This);
  3957. }
  3958. /*** IDWriteFontFace2 methods ***/
  3959. static FORCEINLINE WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) {
  3960. return This->lpVtbl->IsColorFont(This);
  3961. }
  3962. static FORCEINLINE UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) {
  3963. return This->lpVtbl->GetColorPaletteCount(This);
  3964. }
  3965. static FORCEINLINE UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) {
  3966. return This->lpVtbl->GetPaletteEntryCount(This);
  3967. }
  3968. static FORCEINLINE HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
  3969. return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
  3970. }
  3971. /*** IDWriteFontFace3 methods ***/
  3972. static FORCEINLINE HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) {
  3973. return This->lpVtbl->GetFontFaceReference(This,reference);
  3974. }
  3975. static FORCEINLINE void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) {
  3976. This->lpVtbl->GetPanose(This,panose);
  3977. }
  3978. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) {
  3979. return This->lpVtbl->GetWeight(This);
  3980. }
  3981. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) {
  3982. return This->lpVtbl->GetStretch(This);
  3983. }
  3984. static FORCEINLINE DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) {
  3985. return This->lpVtbl->GetStyle(This);
  3986. }
  3987. static FORCEINLINE HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
  3988. return This->lpVtbl->GetFamilyNames(This,names);
  3989. }
  3990. static FORCEINLINE HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
  3991. return This->lpVtbl->GetFaceNames(This,names);
  3992. }
  3993. static FORCEINLINE HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  3994. return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  3995. }
  3996. static FORCEINLINE WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) {
  3997. return This->lpVtbl->HasCharacter(This,character);
  3998. }
  3999. static FORCEINLINE HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
  4000. return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
  4001. }
  4002. static FORCEINLINE WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) {
  4003. return This->lpVtbl->IsCharacterLocal(This,character);
  4004. }
  4005. static FORCEINLINE WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) {
  4006. return This->lpVtbl->IsGlyphLocal(This,glyph);
  4007. }
  4008. static FORCEINLINE HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  4009. return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
  4010. }
  4011. static FORCEINLINE HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  4012. return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
  4013. }
  4014. #endif
  4015. #endif
  4016. #endif
  4017. #endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */
  4018. typedef struct DWRITE_LINE_METRICS1 {
  4019. UINT32 length;
  4020. UINT32 trailingWhitespaceLength;
  4021. UINT32 newlineLength;
  4022. FLOAT height;
  4023. FLOAT baseline;
  4024. WINBOOL isTrimmed;
  4025. FLOAT leadingBefore;
  4026. FLOAT leadingAfter;
  4027. } DWRITE_LINE_METRICS1;
  4028. typedef enum DWRITE_FONT_LINE_GAP_USAGE {
  4029. DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0,
  4030. DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1,
  4031. DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2
  4032. } DWRITE_FONT_LINE_GAP_USAGE;
  4033. typedef struct DWRITE_LINE_SPACING {
  4034. DWRITE_LINE_SPACING_METHOD method;
  4035. FLOAT height;
  4036. FLOAT baseline;
  4037. FLOAT leadingBefore;
  4038. DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
  4039. } DWRITE_LINE_SPACING;
  4040. /*****************************************************************************
  4041. * IDWriteTextFormat2 interface
  4042. */
  4043. #ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__
  4044. #define __IDWriteTextFormat2_INTERFACE_DEFINED__
  4045. DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70);
  4046. #if defined(__cplusplus) && !defined(CINTERFACE)
  4047. MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70")
  4048. IDWriteTextFormat2 : public IDWriteTextFormat1
  4049. {
  4050. virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
  4051. const DWRITE_LINE_SPACING *spacing) = 0;
  4052. virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
  4053. DWRITE_LINE_SPACING *spacing) = 0;
  4054. };
  4055. #ifdef __CRT_UUID_DECL
  4056. __CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70)
  4057. #endif
  4058. #else
  4059. typedef struct IDWriteTextFormat2Vtbl {
  4060. BEGIN_INTERFACE
  4061. /*** IUnknown methods ***/
  4062. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4063. IDWriteTextFormat2 *This,
  4064. REFIID riid,
  4065. void **ppvObject);
  4066. ULONG (STDMETHODCALLTYPE *AddRef)(
  4067. IDWriteTextFormat2 *This);
  4068. ULONG (STDMETHODCALLTYPE *Release)(
  4069. IDWriteTextFormat2 *This);
  4070. /*** IDWriteTextFormat methods ***/
  4071. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  4072. IDWriteTextFormat2 *This,
  4073. DWRITE_TEXT_ALIGNMENT alignment);
  4074. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  4075. IDWriteTextFormat2 *This,
  4076. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  4077. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  4078. IDWriteTextFormat2 *This,
  4079. DWRITE_WORD_WRAPPING wrapping);
  4080. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  4081. IDWriteTextFormat2 *This,
  4082. DWRITE_READING_DIRECTION direction);
  4083. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  4084. IDWriteTextFormat2 *This,
  4085. DWRITE_FLOW_DIRECTION direction);
  4086. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  4087. IDWriteTextFormat2 *This,
  4088. FLOAT tabstop);
  4089. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  4090. IDWriteTextFormat2 *This,
  4091. const DWRITE_TRIMMING *trimming,
  4092. IDWriteInlineObject *trimming_sign);
  4093. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  4094. IDWriteTextFormat2 *This,
  4095. DWRITE_LINE_SPACING_METHOD spacing,
  4096. FLOAT line_spacing,
  4097. FLOAT baseline);
  4098. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  4099. IDWriteTextFormat2 *This);
  4100. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  4101. IDWriteTextFormat2 *This);
  4102. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  4103. IDWriteTextFormat2 *This);
  4104. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  4105. IDWriteTextFormat2 *This);
  4106. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  4107. IDWriteTextFormat2 *This);
  4108. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  4109. IDWriteTextFormat2 *This);
  4110. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  4111. IDWriteTextFormat2 *This,
  4112. DWRITE_TRIMMING *options,
  4113. IDWriteInlineObject **trimming_sign);
  4114. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  4115. IDWriteTextFormat2 *This,
  4116. DWRITE_LINE_SPACING_METHOD *method,
  4117. FLOAT *spacing,
  4118. FLOAT *baseline);
  4119. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  4120. IDWriteTextFormat2 *This,
  4121. IDWriteFontCollection **collection);
  4122. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  4123. IDWriteTextFormat2 *This);
  4124. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  4125. IDWriteTextFormat2 *This,
  4126. WCHAR *name,
  4127. UINT32 size);
  4128. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  4129. IDWriteTextFormat2 *This);
  4130. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  4131. IDWriteTextFormat2 *This);
  4132. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  4133. IDWriteTextFormat2 *This);
  4134. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  4135. IDWriteTextFormat2 *This);
  4136. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  4137. IDWriteTextFormat2 *This);
  4138. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  4139. IDWriteTextFormat2 *This,
  4140. WCHAR *name,
  4141. UINT32 size);
  4142. /*** IDWriteTextFormat1 methods ***/
  4143. HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
  4144. IDWriteTextFormat2 *This,
  4145. DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
  4146. DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
  4147. IDWriteTextFormat2 *This);
  4148. HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
  4149. IDWriteTextFormat2 *This,
  4150. WINBOOL lastline_wrapping_enabled);
  4151. WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
  4152. IDWriteTextFormat2 *This);
  4153. HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
  4154. IDWriteTextFormat2 *This,
  4155. DWRITE_OPTICAL_ALIGNMENT alignment);
  4156. DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
  4157. IDWriteTextFormat2 *This);
  4158. HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
  4159. IDWriteTextFormat2 *This,
  4160. IDWriteFontFallback *fallback);
  4161. HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
  4162. IDWriteTextFormat2 *This,
  4163. IDWriteFontFallback **fallback);
  4164. /*** IDWriteTextFormat2 methods ***/
  4165. HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
  4166. IDWriteTextFormat2 *This,
  4167. const DWRITE_LINE_SPACING *spacing);
  4168. HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
  4169. IDWriteTextFormat2 *This,
  4170. DWRITE_LINE_SPACING *spacing);
  4171. END_INTERFACE
  4172. } IDWriteTextFormat2Vtbl;
  4173. interface IDWriteTextFormat2 {
  4174. CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl;
  4175. };
  4176. #ifdef COBJMACROS
  4177. #ifndef WIDL_C_INLINE_WRAPPERS
  4178. /*** IUnknown methods ***/
  4179. #define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4180. #define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This)
  4181. #define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This)
  4182. /*** IDWriteTextFormat methods ***/
  4183. #define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  4184. #define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  4185. #define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  4186. #define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  4187. #define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  4188. #define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  4189. #define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  4190. #define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  4191. #define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  4192. #define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  4193. #define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  4194. #define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  4195. #define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  4196. #define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  4197. #define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  4198. #define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
  4199. #define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
  4200. #define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
  4201. #define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
  4202. #define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
  4203. #define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
  4204. #define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
  4205. #define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
  4206. /*** IDWriteTextFormat1 methods ***/
  4207. #define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
  4208. #define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
  4209. #define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
  4210. #define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
  4211. #define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
  4212. #define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
  4213. #define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
  4214. #define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
  4215. /*** IDWriteTextFormat2 methods ***/
  4216. #define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
  4217. #define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
  4218. #else
  4219. /*** IUnknown methods ***/
  4220. static FORCEINLINE HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) {
  4221. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4222. }
  4223. static FORCEINLINE ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) {
  4224. return This->lpVtbl->AddRef(This);
  4225. }
  4226. static FORCEINLINE ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) {
  4227. return This->lpVtbl->Release(This);
  4228. }
  4229. /*** IDWriteTextFormat methods ***/
  4230. static FORCEINLINE HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) {
  4231. return This->lpVtbl->SetTextAlignment(This,alignment);
  4232. }
  4233. static FORCEINLINE HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  4234. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  4235. }
  4236. static FORCEINLINE HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) {
  4237. return This->lpVtbl->SetWordWrapping(This,wrapping);
  4238. }
  4239. static FORCEINLINE HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) {
  4240. return This->lpVtbl->SetReadingDirection(This,direction);
  4241. }
  4242. static FORCEINLINE HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) {
  4243. return This->lpVtbl->SetFlowDirection(This,direction);
  4244. }
  4245. static FORCEINLINE HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) {
  4246. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  4247. }
  4248. static FORCEINLINE HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  4249. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  4250. }
  4251. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) {
  4252. return This->lpVtbl->GetTextAlignment(This);
  4253. }
  4254. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) {
  4255. return This->lpVtbl->GetParagraphAlignment(This);
  4256. }
  4257. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) {
  4258. return This->lpVtbl->GetWordWrapping(This);
  4259. }
  4260. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) {
  4261. return This->lpVtbl->GetReadingDirection(This);
  4262. }
  4263. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) {
  4264. return This->lpVtbl->GetFlowDirection(This);
  4265. }
  4266. static FORCEINLINE FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) {
  4267. return This->lpVtbl->GetIncrementalTabStop(This);
  4268. }
  4269. static FORCEINLINE HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  4270. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  4271. }
  4272. static FORCEINLINE HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) {
  4273. return This->lpVtbl->GetFontCollection(This,collection);
  4274. }
  4275. static FORCEINLINE UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) {
  4276. return This->lpVtbl->GetFontFamilyNameLength(This);
  4277. }
  4278. static FORCEINLINE HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
  4279. return This->lpVtbl->GetFontFamilyName(This,name,size);
  4280. }
  4281. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) {
  4282. return This->lpVtbl->GetFontWeight(This);
  4283. }
  4284. static FORCEINLINE DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) {
  4285. return This->lpVtbl->GetFontStyle(This);
  4286. }
  4287. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) {
  4288. return This->lpVtbl->GetFontStretch(This);
  4289. }
  4290. static FORCEINLINE FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) {
  4291. return This->lpVtbl->GetFontSize(This);
  4292. }
  4293. static FORCEINLINE UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) {
  4294. return This->lpVtbl->GetLocaleNameLength(This);
  4295. }
  4296. static FORCEINLINE HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
  4297. return This->lpVtbl->GetLocaleName(This,name,size);
  4298. }
  4299. /*** IDWriteTextFormat1 methods ***/
  4300. static FORCEINLINE HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
  4301. return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
  4302. }
  4303. static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) {
  4304. return This->lpVtbl->GetVerticalGlyphOrientation(This);
  4305. }
  4306. static FORCEINLINE HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) {
  4307. return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
  4308. }
  4309. static FORCEINLINE WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) {
  4310. return This->lpVtbl->GetLastLineWrapping(This);
  4311. }
  4312. static FORCEINLINE HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
  4313. return This->lpVtbl->SetOpticalAlignment(This,alignment);
  4314. }
  4315. static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) {
  4316. return This->lpVtbl->GetOpticalAlignment(This);
  4317. }
  4318. static FORCEINLINE HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) {
  4319. return This->lpVtbl->SetFontFallback(This,fallback);
  4320. }
  4321. static FORCEINLINE HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) {
  4322. return This->lpVtbl->GetFontFallback(This,fallback);
  4323. }
  4324. /*** IDWriteTextFormat2 methods ***/
  4325. static FORCEINLINE HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) {
  4326. return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
  4327. }
  4328. static FORCEINLINE HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) {
  4329. return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
  4330. }
  4331. #endif
  4332. #endif
  4333. #endif
  4334. #endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */
  4335. /*****************************************************************************
  4336. * IDWriteTextFormat3 interface
  4337. */
  4338. #ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__
  4339. #define __IDWriteTextFormat3_INTERFACE_DEFINED__
  4340. DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27);
  4341. #if defined(__cplusplus) && !defined(CINTERFACE)
  4342. MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427")
  4343. IDWriteTextFormat3 : public IDWriteTextFormat2
  4344. {
  4345. virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
  4346. const DWRITE_FONT_AXIS_VALUE *axis_values,
  4347. UINT32 num_values) = 0;
  4348. virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
  4349. ) = 0;
  4350. virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
  4351. DWRITE_FONT_AXIS_VALUE *axis_values,
  4352. UINT32 num_values) = 0;
  4353. virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
  4354. ) = 0;
  4355. virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
  4356. DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
  4357. };
  4358. #ifdef __CRT_UUID_DECL
  4359. __CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27)
  4360. #endif
  4361. #else
  4362. typedef struct IDWriteTextFormat3Vtbl {
  4363. BEGIN_INTERFACE
  4364. /*** IUnknown methods ***/
  4365. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4366. IDWriteTextFormat3 *This,
  4367. REFIID riid,
  4368. void **ppvObject);
  4369. ULONG (STDMETHODCALLTYPE *AddRef)(
  4370. IDWriteTextFormat3 *This);
  4371. ULONG (STDMETHODCALLTYPE *Release)(
  4372. IDWriteTextFormat3 *This);
  4373. /*** IDWriteTextFormat methods ***/
  4374. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  4375. IDWriteTextFormat3 *This,
  4376. DWRITE_TEXT_ALIGNMENT alignment);
  4377. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  4378. IDWriteTextFormat3 *This,
  4379. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  4380. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  4381. IDWriteTextFormat3 *This,
  4382. DWRITE_WORD_WRAPPING wrapping);
  4383. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  4384. IDWriteTextFormat3 *This,
  4385. DWRITE_READING_DIRECTION direction);
  4386. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  4387. IDWriteTextFormat3 *This,
  4388. DWRITE_FLOW_DIRECTION direction);
  4389. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  4390. IDWriteTextFormat3 *This,
  4391. FLOAT tabstop);
  4392. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  4393. IDWriteTextFormat3 *This,
  4394. const DWRITE_TRIMMING *trimming,
  4395. IDWriteInlineObject *trimming_sign);
  4396. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  4397. IDWriteTextFormat3 *This,
  4398. DWRITE_LINE_SPACING_METHOD spacing,
  4399. FLOAT line_spacing,
  4400. FLOAT baseline);
  4401. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  4402. IDWriteTextFormat3 *This);
  4403. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  4404. IDWriteTextFormat3 *This);
  4405. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  4406. IDWriteTextFormat3 *This);
  4407. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  4408. IDWriteTextFormat3 *This);
  4409. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  4410. IDWriteTextFormat3 *This);
  4411. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  4412. IDWriteTextFormat3 *This);
  4413. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  4414. IDWriteTextFormat3 *This,
  4415. DWRITE_TRIMMING *options,
  4416. IDWriteInlineObject **trimming_sign);
  4417. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  4418. IDWriteTextFormat3 *This,
  4419. DWRITE_LINE_SPACING_METHOD *method,
  4420. FLOAT *spacing,
  4421. FLOAT *baseline);
  4422. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  4423. IDWriteTextFormat3 *This,
  4424. IDWriteFontCollection **collection);
  4425. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  4426. IDWriteTextFormat3 *This);
  4427. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  4428. IDWriteTextFormat3 *This,
  4429. WCHAR *name,
  4430. UINT32 size);
  4431. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  4432. IDWriteTextFormat3 *This);
  4433. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  4434. IDWriteTextFormat3 *This);
  4435. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  4436. IDWriteTextFormat3 *This);
  4437. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  4438. IDWriteTextFormat3 *This);
  4439. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  4440. IDWriteTextFormat3 *This);
  4441. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  4442. IDWriteTextFormat3 *This,
  4443. WCHAR *name,
  4444. UINT32 size);
  4445. /*** IDWriteTextFormat1 methods ***/
  4446. HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
  4447. IDWriteTextFormat3 *This,
  4448. DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
  4449. DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
  4450. IDWriteTextFormat3 *This);
  4451. HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
  4452. IDWriteTextFormat3 *This,
  4453. WINBOOL lastline_wrapping_enabled);
  4454. WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
  4455. IDWriteTextFormat3 *This);
  4456. HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
  4457. IDWriteTextFormat3 *This,
  4458. DWRITE_OPTICAL_ALIGNMENT alignment);
  4459. DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
  4460. IDWriteTextFormat3 *This);
  4461. HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
  4462. IDWriteTextFormat3 *This,
  4463. IDWriteFontFallback *fallback);
  4464. HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
  4465. IDWriteTextFormat3 *This,
  4466. IDWriteFontFallback **fallback);
  4467. /*** IDWriteTextFormat2 methods ***/
  4468. HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
  4469. IDWriteTextFormat3 *This,
  4470. const DWRITE_LINE_SPACING *spacing);
  4471. HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
  4472. IDWriteTextFormat3 *This,
  4473. DWRITE_LINE_SPACING *spacing);
  4474. /*** IDWriteTextFormat3 methods ***/
  4475. HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
  4476. IDWriteTextFormat3 *This,
  4477. const DWRITE_FONT_AXIS_VALUE *axis_values,
  4478. UINT32 num_values);
  4479. UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  4480. IDWriteTextFormat3 *This);
  4481. HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  4482. IDWriteTextFormat3 *This,
  4483. DWRITE_FONT_AXIS_VALUE *axis_values,
  4484. UINT32 num_values);
  4485. DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
  4486. IDWriteTextFormat3 *This);
  4487. HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
  4488. IDWriteTextFormat3 *This,
  4489. DWRITE_AUTOMATIC_FONT_AXES axes);
  4490. END_INTERFACE
  4491. } IDWriteTextFormat3Vtbl;
  4492. interface IDWriteTextFormat3 {
  4493. CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl;
  4494. };
  4495. #ifdef COBJMACROS
  4496. #ifndef WIDL_C_INLINE_WRAPPERS
  4497. /*** IUnknown methods ***/
  4498. #define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4499. #define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This)
  4500. #define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This)
  4501. /*** IDWriteTextFormat methods ***/
  4502. #define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  4503. #define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  4504. #define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  4505. #define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  4506. #define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  4507. #define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  4508. #define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  4509. #define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  4510. #define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  4511. #define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  4512. #define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  4513. #define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  4514. #define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  4515. #define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  4516. #define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
  4517. #define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
  4518. #define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
  4519. #define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
  4520. #define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
  4521. #define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
  4522. #define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
  4523. #define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
  4524. #define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
  4525. /*** IDWriteTextFormat1 methods ***/
  4526. #define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
  4527. #define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
  4528. #define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
  4529. #define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
  4530. #define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
  4531. #define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
  4532. #define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
  4533. #define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
  4534. /*** IDWriteTextFormat2 methods ***/
  4535. #define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
  4536. #define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
  4537. /*** IDWriteTextFormat3 methods ***/
  4538. #define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values)
  4539. #define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
  4540. #define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values)
  4541. #define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
  4542. #define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
  4543. #else
  4544. /*** IUnknown methods ***/
  4545. static FORCEINLINE HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) {
  4546. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4547. }
  4548. static FORCEINLINE ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) {
  4549. return This->lpVtbl->AddRef(This);
  4550. }
  4551. static FORCEINLINE ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) {
  4552. return This->lpVtbl->Release(This);
  4553. }
  4554. /*** IDWriteTextFormat methods ***/
  4555. static FORCEINLINE HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) {
  4556. return This->lpVtbl->SetTextAlignment(This,alignment);
  4557. }
  4558. static FORCEINLINE HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  4559. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  4560. }
  4561. static FORCEINLINE HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) {
  4562. return This->lpVtbl->SetWordWrapping(This,wrapping);
  4563. }
  4564. static FORCEINLINE HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) {
  4565. return This->lpVtbl->SetReadingDirection(This,direction);
  4566. }
  4567. static FORCEINLINE HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) {
  4568. return This->lpVtbl->SetFlowDirection(This,direction);
  4569. }
  4570. static FORCEINLINE HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) {
  4571. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  4572. }
  4573. static FORCEINLINE HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  4574. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  4575. }
  4576. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) {
  4577. return This->lpVtbl->GetTextAlignment(This);
  4578. }
  4579. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) {
  4580. return This->lpVtbl->GetParagraphAlignment(This);
  4581. }
  4582. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) {
  4583. return This->lpVtbl->GetWordWrapping(This);
  4584. }
  4585. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) {
  4586. return This->lpVtbl->GetReadingDirection(This);
  4587. }
  4588. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) {
  4589. return This->lpVtbl->GetFlowDirection(This);
  4590. }
  4591. static FORCEINLINE FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) {
  4592. return This->lpVtbl->GetIncrementalTabStop(This);
  4593. }
  4594. static FORCEINLINE HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  4595. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  4596. }
  4597. static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) {
  4598. return This->lpVtbl->GetFontCollection(This,collection);
  4599. }
  4600. static FORCEINLINE UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) {
  4601. return This->lpVtbl->GetFontFamilyNameLength(This);
  4602. }
  4603. static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
  4604. return This->lpVtbl->GetFontFamilyName(This,name,size);
  4605. }
  4606. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) {
  4607. return This->lpVtbl->GetFontWeight(This);
  4608. }
  4609. static FORCEINLINE DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) {
  4610. return This->lpVtbl->GetFontStyle(This);
  4611. }
  4612. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) {
  4613. return This->lpVtbl->GetFontStretch(This);
  4614. }
  4615. static FORCEINLINE FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) {
  4616. return This->lpVtbl->GetFontSize(This);
  4617. }
  4618. static FORCEINLINE UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) {
  4619. return This->lpVtbl->GetLocaleNameLength(This);
  4620. }
  4621. static FORCEINLINE HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
  4622. return This->lpVtbl->GetLocaleName(This,name,size);
  4623. }
  4624. /*** IDWriteTextFormat1 methods ***/
  4625. static FORCEINLINE HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
  4626. return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
  4627. }
  4628. static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) {
  4629. return This->lpVtbl->GetVerticalGlyphOrientation(This);
  4630. }
  4631. static FORCEINLINE HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) {
  4632. return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
  4633. }
  4634. static FORCEINLINE WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) {
  4635. return This->lpVtbl->GetLastLineWrapping(This);
  4636. }
  4637. static FORCEINLINE HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
  4638. return This->lpVtbl->SetOpticalAlignment(This,alignment);
  4639. }
  4640. static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) {
  4641. return This->lpVtbl->GetOpticalAlignment(This);
  4642. }
  4643. static FORCEINLINE HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) {
  4644. return This->lpVtbl->SetFontFallback(This,fallback);
  4645. }
  4646. static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) {
  4647. return This->lpVtbl->GetFontFallback(This,fallback);
  4648. }
  4649. /*** IDWriteTextFormat2 methods ***/
  4650. static FORCEINLINE HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) {
  4651. return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
  4652. }
  4653. static FORCEINLINE HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) {
  4654. return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
  4655. }
  4656. /*** IDWriteTextFormat3 methods ***/
  4657. static FORCEINLINE HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
  4658. return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values);
  4659. }
  4660. static FORCEINLINE UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) {
  4661. return This->lpVtbl->GetFontAxisValueCount(This);
  4662. }
  4663. static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
  4664. return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values);
  4665. }
  4666. static FORCEINLINE DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) {
  4667. return This->lpVtbl->GetAutomaticFontAxes(This);
  4668. }
  4669. static FORCEINLINE HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
  4670. return This->lpVtbl->SetAutomaticFontAxes(This,axes);
  4671. }
  4672. #endif
  4673. #endif
  4674. #endif
  4675. #endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */
  4676. /*****************************************************************************
  4677. * IDWriteTextLayout3 interface
  4678. */
  4679. #ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__
  4680. #define __IDWriteTextLayout3_INTERFACE_DEFINED__
  4681. DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d);
  4682. #if defined(__cplusplus) && !defined(CINTERFACE)
  4683. MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d")
  4684. IDWriteTextLayout3 : public IDWriteTextLayout2
  4685. {
  4686. virtual HRESULT STDMETHODCALLTYPE InvalidateLayout(
  4687. ) = 0;
  4688. virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
  4689. const DWRITE_LINE_SPACING *spacing) = 0;
  4690. virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
  4691. DWRITE_LINE_SPACING *spacing) = 0;
  4692. virtual HRESULT STDMETHODCALLTYPE GetLineMetrics(
  4693. DWRITE_LINE_METRICS1 *metrics,
  4694. UINT32 max_count,
  4695. UINT32 *count) = 0;
  4696. };
  4697. #ifdef __CRT_UUID_DECL
  4698. __CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d)
  4699. #endif
  4700. #else
  4701. typedef struct IDWriteTextLayout3Vtbl {
  4702. BEGIN_INTERFACE
  4703. /*** IUnknown methods ***/
  4704. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4705. IDWriteTextLayout3 *This,
  4706. REFIID riid,
  4707. void **ppvObject);
  4708. ULONG (STDMETHODCALLTYPE *AddRef)(
  4709. IDWriteTextLayout3 *This);
  4710. ULONG (STDMETHODCALLTYPE *Release)(
  4711. IDWriteTextLayout3 *This);
  4712. /*** IDWriteTextFormat methods ***/
  4713. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  4714. IDWriteTextLayout3 *This,
  4715. DWRITE_TEXT_ALIGNMENT alignment);
  4716. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  4717. IDWriteTextLayout3 *This,
  4718. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  4719. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  4720. IDWriteTextLayout3 *This,
  4721. DWRITE_WORD_WRAPPING wrapping);
  4722. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  4723. IDWriteTextLayout3 *This,
  4724. DWRITE_READING_DIRECTION direction);
  4725. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  4726. IDWriteTextLayout3 *This,
  4727. DWRITE_FLOW_DIRECTION direction);
  4728. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  4729. IDWriteTextLayout3 *This,
  4730. FLOAT tabstop);
  4731. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  4732. IDWriteTextLayout3 *This,
  4733. const DWRITE_TRIMMING *trimming,
  4734. IDWriteInlineObject *trimming_sign);
  4735. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  4736. IDWriteTextLayout3 *This,
  4737. DWRITE_LINE_SPACING_METHOD spacing,
  4738. FLOAT line_spacing,
  4739. FLOAT baseline);
  4740. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  4741. IDWriteTextLayout3 *This);
  4742. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  4743. IDWriteTextLayout3 *This);
  4744. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  4745. IDWriteTextLayout3 *This);
  4746. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  4747. IDWriteTextLayout3 *This);
  4748. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  4749. IDWriteTextLayout3 *This);
  4750. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  4751. IDWriteTextLayout3 *This);
  4752. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  4753. IDWriteTextLayout3 *This,
  4754. DWRITE_TRIMMING *options,
  4755. IDWriteInlineObject **trimming_sign);
  4756. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  4757. IDWriteTextLayout3 *This,
  4758. DWRITE_LINE_SPACING_METHOD *method,
  4759. FLOAT *spacing,
  4760. FLOAT *baseline);
  4761. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  4762. IDWriteTextLayout3 *This,
  4763. IDWriteFontCollection **collection);
  4764. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  4765. IDWriteTextLayout3 *This);
  4766. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  4767. IDWriteTextLayout3 *This,
  4768. WCHAR *name,
  4769. UINT32 size);
  4770. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  4771. IDWriteTextLayout3 *This);
  4772. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  4773. IDWriteTextLayout3 *This);
  4774. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  4775. IDWriteTextLayout3 *This);
  4776. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  4777. IDWriteTextLayout3 *This);
  4778. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  4779. IDWriteTextLayout3 *This);
  4780. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  4781. IDWriteTextLayout3 *This,
  4782. WCHAR *name,
  4783. UINT32 size);
  4784. /*** IDWriteTextLayout methods ***/
  4785. HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
  4786. IDWriteTextLayout3 *This,
  4787. FLOAT maxWidth);
  4788. HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
  4789. IDWriteTextLayout3 *This,
  4790. FLOAT maxHeight);
  4791. HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
  4792. IDWriteTextLayout3 *This,
  4793. IDWriteFontCollection *collection,
  4794. DWRITE_TEXT_RANGE range);
  4795. HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
  4796. IDWriteTextLayout3 *This,
  4797. const WCHAR *name,
  4798. DWRITE_TEXT_RANGE range);
  4799. HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
  4800. IDWriteTextLayout3 *This,
  4801. DWRITE_FONT_WEIGHT weight,
  4802. DWRITE_TEXT_RANGE range);
  4803. HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
  4804. IDWriteTextLayout3 *This,
  4805. DWRITE_FONT_STYLE style,
  4806. DWRITE_TEXT_RANGE range);
  4807. HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
  4808. IDWriteTextLayout3 *This,
  4809. DWRITE_FONT_STRETCH stretch,
  4810. DWRITE_TEXT_RANGE range);
  4811. HRESULT (STDMETHODCALLTYPE *SetFontSize)(
  4812. IDWriteTextLayout3 *This,
  4813. FLOAT size,
  4814. DWRITE_TEXT_RANGE range);
  4815. HRESULT (STDMETHODCALLTYPE *SetUnderline)(
  4816. IDWriteTextLayout3 *This,
  4817. WINBOOL underline,
  4818. DWRITE_TEXT_RANGE range);
  4819. HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
  4820. IDWriteTextLayout3 *This,
  4821. WINBOOL strikethrough,
  4822. DWRITE_TEXT_RANGE range);
  4823. HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
  4824. IDWriteTextLayout3 *This,
  4825. IUnknown *effect,
  4826. DWRITE_TEXT_RANGE range);
  4827. HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
  4828. IDWriteTextLayout3 *This,
  4829. IDWriteInlineObject *object,
  4830. DWRITE_TEXT_RANGE range);
  4831. HRESULT (STDMETHODCALLTYPE *SetTypography)(
  4832. IDWriteTextLayout3 *This,
  4833. IDWriteTypography *typography,
  4834. DWRITE_TEXT_RANGE range);
  4835. HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
  4836. IDWriteTextLayout3 *This,
  4837. const WCHAR *locale,
  4838. DWRITE_TEXT_RANGE range);
  4839. FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
  4840. IDWriteTextLayout3 *This);
  4841. FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
  4842. IDWriteTextLayout3 *This);
  4843. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
  4844. IDWriteTextLayout3 *This,
  4845. UINT32 pos,
  4846. IDWriteFontCollection **collection,
  4847. DWRITE_TEXT_RANGE *range);
  4848. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
  4849. IDWriteTextLayout3 *This,
  4850. UINT32 pos,
  4851. UINT32 *len,
  4852. DWRITE_TEXT_RANGE *range);
  4853. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
  4854. IDWriteTextLayout3 *This,
  4855. UINT32 position,
  4856. WCHAR *name,
  4857. UINT32 name_size,
  4858. DWRITE_TEXT_RANGE *range);
  4859. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
  4860. IDWriteTextLayout3 *This,
  4861. UINT32 position,
  4862. DWRITE_FONT_WEIGHT *weight,
  4863. DWRITE_TEXT_RANGE *range);
  4864. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
  4865. IDWriteTextLayout3 *This,
  4866. UINT32 currentPosition,
  4867. DWRITE_FONT_STYLE *style,
  4868. DWRITE_TEXT_RANGE *range);
  4869. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
  4870. IDWriteTextLayout3 *This,
  4871. UINT32 position,
  4872. DWRITE_FONT_STRETCH *stretch,
  4873. DWRITE_TEXT_RANGE *range);
  4874. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
  4875. IDWriteTextLayout3 *This,
  4876. UINT32 position,
  4877. FLOAT *size,
  4878. DWRITE_TEXT_RANGE *range);
  4879. HRESULT (STDMETHODCALLTYPE *GetUnderline)(
  4880. IDWriteTextLayout3 *This,
  4881. UINT32 position,
  4882. WINBOOL *has_underline,
  4883. DWRITE_TEXT_RANGE *range);
  4884. HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
  4885. IDWriteTextLayout3 *This,
  4886. UINT32 position,
  4887. WINBOOL *has_strikethrough,
  4888. DWRITE_TEXT_RANGE *range);
  4889. HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
  4890. IDWriteTextLayout3 *This,
  4891. UINT32 position,
  4892. IUnknown **effect,
  4893. DWRITE_TEXT_RANGE *range);
  4894. HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
  4895. IDWriteTextLayout3 *This,
  4896. UINT32 position,
  4897. IDWriteInlineObject **object,
  4898. DWRITE_TEXT_RANGE *range);
  4899. HRESULT (STDMETHODCALLTYPE *GetTypography)(
  4900. IDWriteTextLayout3 *This,
  4901. UINT32 position,
  4902. IDWriteTypography **typography,
  4903. DWRITE_TEXT_RANGE *range);
  4904. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
  4905. IDWriteTextLayout3 *This,
  4906. UINT32 position,
  4907. UINT32 *length,
  4908. DWRITE_TEXT_RANGE *range);
  4909. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
  4910. IDWriteTextLayout3 *This,
  4911. UINT32 position,
  4912. WCHAR *name,
  4913. UINT32 name_size,
  4914. DWRITE_TEXT_RANGE *range);
  4915. HRESULT (STDMETHODCALLTYPE *Draw)(
  4916. IDWriteTextLayout3 *This,
  4917. void *context,
  4918. IDWriteTextRenderer *renderer,
  4919. FLOAT originX,
  4920. FLOAT originY);
  4921. HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
  4922. IDWriteTextLayout3 *This,
  4923. DWRITE_LINE_METRICS *metrics,
  4924. UINT32 max_count,
  4925. UINT32 *actual_count);
  4926. HRESULT (STDMETHODCALLTYPE *GetMetrics)(
  4927. IDWriteTextLayout3 *This,
  4928. DWRITE_TEXT_METRICS *metrics);
  4929. HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
  4930. IDWriteTextLayout3 *This,
  4931. DWRITE_OVERHANG_METRICS *overhangs);
  4932. HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
  4933. IDWriteTextLayout3 *This,
  4934. DWRITE_CLUSTER_METRICS *metrics,
  4935. UINT32 max_count,
  4936. UINT32 *act_count);
  4937. HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
  4938. IDWriteTextLayout3 *This,
  4939. FLOAT *min_width);
  4940. HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
  4941. IDWriteTextLayout3 *This,
  4942. FLOAT pointX,
  4943. FLOAT pointY,
  4944. WINBOOL *is_trailinghit,
  4945. WINBOOL *is_inside,
  4946. DWRITE_HIT_TEST_METRICS *metrics);
  4947. HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
  4948. IDWriteTextLayout3 *This,
  4949. UINT32 textPosition,
  4950. WINBOOL is_trailinghit,
  4951. FLOAT *pointX,
  4952. FLOAT *pointY,
  4953. DWRITE_HIT_TEST_METRICS *metrics);
  4954. HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
  4955. IDWriteTextLayout3 *This,
  4956. UINT32 textPosition,
  4957. UINT32 textLength,
  4958. FLOAT originX,
  4959. FLOAT originY,
  4960. DWRITE_HIT_TEST_METRICS *metrics,
  4961. UINT32 max_metricscount,
  4962. UINT32 *actual_metricscount);
  4963. /*** IDWriteTextLayout1 methods ***/
  4964. HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
  4965. IDWriteTextLayout3 *This,
  4966. WINBOOL is_pairkerning_enabled,
  4967. DWRITE_TEXT_RANGE range);
  4968. HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
  4969. IDWriteTextLayout3 *This,
  4970. UINT32 position,
  4971. WINBOOL *is_pairkerning_enabled,
  4972. DWRITE_TEXT_RANGE *range);
  4973. HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
  4974. IDWriteTextLayout3 *This,
  4975. FLOAT leading_spacing,
  4976. FLOAT trailing_spacing,
  4977. FLOAT minimum_advance_width,
  4978. DWRITE_TEXT_RANGE range);
  4979. HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
  4980. IDWriteTextLayout3 *This,
  4981. UINT32 position,
  4982. FLOAT *leading_spacing,
  4983. FLOAT *trailing_spacing,
  4984. FLOAT *minimum_advance_width,
  4985. DWRITE_TEXT_RANGE *range);
  4986. /*** IDWriteTextLayout2 methods ***/
  4987. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
  4988. IDWriteTextLayout3 *This,
  4989. DWRITE_TEXT_METRICS1 *metrics);
  4990. HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
  4991. IDWriteTextLayout3 *This,
  4992. DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
  4993. DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
  4994. IDWriteTextLayout3 *This);
  4995. HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
  4996. IDWriteTextLayout3 *This,
  4997. WINBOOL lastline_wrapping_enabled);
  4998. WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
  4999. IDWriteTextLayout3 *This);
  5000. HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
  5001. IDWriteTextLayout3 *This,
  5002. DWRITE_OPTICAL_ALIGNMENT alignment);
  5003. DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
  5004. IDWriteTextLayout3 *This);
  5005. HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
  5006. IDWriteTextLayout3 *This,
  5007. IDWriteFontFallback *fallback);
  5008. HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
  5009. IDWriteTextLayout3 *This,
  5010. IDWriteFontFallback **fallback);
  5011. /*** IDWriteTextLayout3 methods ***/
  5012. HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
  5013. IDWriteTextLayout3 *This);
  5014. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
  5015. IDWriteTextLayout3 *This,
  5016. const DWRITE_LINE_SPACING *spacing);
  5017. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
  5018. IDWriteTextLayout3 *This,
  5019. DWRITE_LINE_SPACING *spacing);
  5020. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
  5021. IDWriteTextLayout3 *This,
  5022. DWRITE_LINE_METRICS1 *metrics,
  5023. UINT32 max_count,
  5024. UINT32 *count);
  5025. END_INTERFACE
  5026. } IDWriteTextLayout3Vtbl;
  5027. interface IDWriteTextLayout3 {
  5028. CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl;
  5029. };
  5030. #ifdef COBJMACROS
  5031. #ifndef WIDL_C_INLINE_WRAPPERS
  5032. /*** IUnknown methods ***/
  5033. #define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5034. #define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This)
  5035. #define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This)
  5036. /*** IDWriteTextFormat methods ***/
  5037. #define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  5038. #define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  5039. #define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  5040. #define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  5041. #define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  5042. #define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  5043. #define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  5044. #define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  5045. #define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  5046. #define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  5047. #define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  5048. #define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  5049. #define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  5050. #define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  5051. /*** IDWriteTextLayout methods ***/
  5052. #define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
  5053. #define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
  5054. #define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
  5055. #define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
  5056. #define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
  5057. #define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
  5058. #define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
  5059. #define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
  5060. #define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
  5061. #define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
  5062. #define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
  5063. #define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
  5064. #define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
  5065. #define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
  5066. #define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
  5067. #define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
  5068. #define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
  5069. #define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
  5070. #define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
  5071. #define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
  5072. #define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
  5073. #define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
  5074. #define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
  5075. #define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
  5076. #define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
  5077. #define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
  5078. #define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
  5079. #define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
  5080. #define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
  5081. #define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
  5082. #define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
  5083. #define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
  5084. #define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
  5085. #define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
  5086. #define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
  5087. #define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
  5088. #define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
  5089. /*** IDWriteTextLayout1 methods ***/
  5090. #define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
  5091. #define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
  5092. #define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
  5093. #define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
  5094. /*** IDWriteTextLayout2 methods ***/
  5095. #define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
  5096. #define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
  5097. #define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
  5098. #define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
  5099. #define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
  5100. #define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
  5101. #define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
  5102. #define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
  5103. #define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
  5104. /*** IDWriteTextLayout3 methods ***/
  5105. #define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
  5106. #define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
  5107. #define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
  5108. #define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
  5109. #else
  5110. /*** IUnknown methods ***/
  5111. static FORCEINLINE HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) {
  5112. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5113. }
  5114. static FORCEINLINE ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) {
  5115. return This->lpVtbl->AddRef(This);
  5116. }
  5117. static FORCEINLINE ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) {
  5118. return This->lpVtbl->Release(This);
  5119. }
  5120. /*** IDWriteTextFormat methods ***/
  5121. static FORCEINLINE HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) {
  5122. return This->lpVtbl->SetTextAlignment(This,alignment);
  5123. }
  5124. static FORCEINLINE HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  5125. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  5126. }
  5127. static FORCEINLINE HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) {
  5128. return This->lpVtbl->SetWordWrapping(This,wrapping);
  5129. }
  5130. static FORCEINLINE HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) {
  5131. return This->lpVtbl->SetReadingDirection(This,direction);
  5132. }
  5133. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) {
  5134. return This->lpVtbl->SetFlowDirection(This,direction);
  5135. }
  5136. static FORCEINLINE HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) {
  5137. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  5138. }
  5139. static FORCEINLINE HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  5140. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  5141. }
  5142. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) {
  5143. return This->lpVtbl->GetTextAlignment(This);
  5144. }
  5145. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) {
  5146. return This->lpVtbl->GetParagraphAlignment(This);
  5147. }
  5148. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) {
  5149. return This->lpVtbl->GetWordWrapping(This);
  5150. }
  5151. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) {
  5152. return This->lpVtbl->GetReadingDirection(This);
  5153. }
  5154. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) {
  5155. return This->lpVtbl->GetFlowDirection(This);
  5156. }
  5157. static FORCEINLINE FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) {
  5158. return This->lpVtbl->GetIncrementalTabStop(This);
  5159. }
  5160. static FORCEINLINE HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  5161. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  5162. }
  5163. /*** IDWriteTextLayout methods ***/
  5164. static FORCEINLINE HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) {
  5165. return This->lpVtbl->SetMaxWidth(This,maxWidth);
  5166. }
  5167. static FORCEINLINE HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) {
  5168. return This->lpVtbl->SetMaxHeight(This,maxHeight);
  5169. }
  5170. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
  5171. return This->lpVtbl->SetFontCollection(This,collection,range);
  5172. }
  5173. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
  5174. return This->lpVtbl->SetFontFamilyName(This,name,range);
  5175. }
  5176. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
  5177. return This->lpVtbl->SetFontWeight(This,weight,range);
  5178. }
  5179. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
  5180. return This->lpVtbl->SetFontStyle(This,style,range);
  5181. }
  5182. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
  5183. return This->lpVtbl->SetFontStretch(This,stretch,range);
  5184. }
  5185. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) {
  5186. return This->lpVtbl->SetFontSize(This,size,range);
  5187. }
  5188. static FORCEINLINE HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
  5189. return This->lpVtbl->SetUnderline(This,underline,range);
  5190. }
  5191. static FORCEINLINE HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
  5192. return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
  5193. }
  5194. static FORCEINLINE HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
  5195. return This->lpVtbl->SetDrawingEffect(This,effect,range);
  5196. }
  5197. static FORCEINLINE HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
  5198. return This->lpVtbl->SetInlineObject(This,object,range);
  5199. }
  5200. static FORCEINLINE HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
  5201. return This->lpVtbl->SetTypography(This,typography,range);
  5202. }
  5203. static FORCEINLINE HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
  5204. return This->lpVtbl->SetLocaleName(This,locale,range);
  5205. }
  5206. static FORCEINLINE FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) {
  5207. return This->lpVtbl->GetMaxWidth(This);
  5208. }
  5209. static FORCEINLINE FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) {
  5210. return This->lpVtbl->GetMaxHeight(This);
  5211. }
  5212. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
  5213. return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
  5214. }
  5215. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
  5216. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
  5217. }
  5218. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  5219. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
  5220. }
  5221. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
  5222. return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
  5223. }
  5224. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
  5225. return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
  5226. }
  5227. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
  5228. return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
  5229. }
  5230. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
  5231. return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
  5232. }
  5233. static FORCEINLINE HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
  5234. return This->lpVtbl->GetUnderline(This,position,has_underline,range);
  5235. }
  5236. static FORCEINLINE HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
  5237. return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
  5238. }
  5239. static FORCEINLINE HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
  5240. return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
  5241. }
  5242. static FORCEINLINE HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
  5243. return This->lpVtbl->GetInlineObject(This,position,object,range);
  5244. }
  5245. static FORCEINLINE HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
  5246. return This->lpVtbl->GetTypography(This,position,typography,range);
  5247. }
  5248. static FORCEINLINE HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
  5249. return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
  5250. }
  5251. static FORCEINLINE HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  5252. return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
  5253. }
  5254. static FORCEINLINE HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
  5255. return This->lpVtbl->Draw(This,context,renderer,originX,originY);
  5256. }
  5257. static FORCEINLINE HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) {
  5258. return This->lpVtbl->GetOverhangMetrics(This,overhangs);
  5259. }
  5260. static FORCEINLINE HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
  5261. return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
  5262. }
  5263. static FORCEINLINE HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) {
  5264. return This->lpVtbl->DetermineMinWidth(This,min_width);
  5265. }
  5266. static FORCEINLINE HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
  5267. return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
  5268. }
  5269. static FORCEINLINE HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
  5270. return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
  5271. }
  5272. static FORCEINLINE HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
  5273. return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
  5274. }
  5275. /*** IDWriteTextLayout1 methods ***/
  5276. static FORCEINLINE HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
  5277. return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
  5278. }
  5279. static FORCEINLINE HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
  5280. return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
  5281. }
  5282. static FORCEINLINE HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
  5283. return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
  5284. }
  5285. static FORCEINLINE HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
  5286. return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
  5287. }
  5288. /*** IDWriteTextLayout2 methods ***/
  5289. static FORCEINLINE HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) {
  5290. return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
  5291. }
  5292. static FORCEINLINE HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
  5293. return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
  5294. }
  5295. static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) {
  5296. return This->lpVtbl->GetVerticalGlyphOrientation(This);
  5297. }
  5298. static FORCEINLINE HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) {
  5299. return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
  5300. }
  5301. static FORCEINLINE WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) {
  5302. return This->lpVtbl->GetLastLineWrapping(This);
  5303. }
  5304. static FORCEINLINE HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
  5305. return This->lpVtbl->SetOpticalAlignment(This,alignment);
  5306. }
  5307. static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) {
  5308. return This->lpVtbl->GetOpticalAlignment(This);
  5309. }
  5310. static FORCEINLINE HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) {
  5311. return This->lpVtbl->SetFontFallback(This,fallback);
  5312. }
  5313. static FORCEINLINE HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) {
  5314. return This->lpVtbl->GetFontFallback(This,fallback);
  5315. }
  5316. /*** IDWriteTextLayout3 methods ***/
  5317. static FORCEINLINE HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) {
  5318. return This->lpVtbl->InvalidateLayout(This);
  5319. }
  5320. static FORCEINLINE HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) {
  5321. return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
  5322. }
  5323. static FORCEINLINE HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) {
  5324. return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
  5325. }
  5326. static FORCEINLINE HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
  5327. return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
  5328. }
  5329. #endif
  5330. #endif
  5331. #endif
  5332. #endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */
  5333. /*****************************************************************************
  5334. * IDWriteTextLayout4 interface
  5335. */
  5336. #ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__
  5337. #define __IDWriteTextLayout4_INTERFACE_DEFINED__
  5338. DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9);
  5339. #if defined(__cplusplus) && !defined(CINTERFACE)
  5340. MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9")
  5341. IDWriteTextLayout4 : public IDWriteTextLayout3
  5342. {
  5343. virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
  5344. const DWRITE_FONT_AXIS_VALUE *axis_values,
  5345. UINT32 num_values,
  5346. DWRITE_TEXT_RANGE range) = 0;
  5347. virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
  5348. UINT32 pos) = 0;
  5349. virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
  5350. UINT32 pos,
  5351. DWRITE_FONT_AXIS_VALUE *values,
  5352. UINT32 num_values,
  5353. DWRITE_TEXT_RANGE *range) = 0;
  5354. virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
  5355. ) = 0;
  5356. virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
  5357. DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
  5358. };
  5359. #ifdef __CRT_UUID_DECL
  5360. __CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9)
  5361. #endif
  5362. #else
  5363. typedef struct IDWriteTextLayout4Vtbl {
  5364. BEGIN_INTERFACE
  5365. /*** IUnknown methods ***/
  5366. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5367. IDWriteTextLayout4 *This,
  5368. REFIID riid,
  5369. void **ppvObject);
  5370. ULONG (STDMETHODCALLTYPE *AddRef)(
  5371. IDWriteTextLayout4 *This);
  5372. ULONG (STDMETHODCALLTYPE *Release)(
  5373. IDWriteTextLayout4 *This);
  5374. /*** IDWriteTextFormat methods ***/
  5375. HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
  5376. IDWriteTextLayout4 *This,
  5377. DWRITE_TEXT_ALIGNMENT alignment);
  5378. HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
  5379. IDWriteTextLayout4 *This,
  5380. DWRITE_PARAGRAPH_ALIGNMENT alignment);
  5381. HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
  5382. IDWriteTextLayout4 *This,
  5383. DWRITE_WORD_WRAPPING wrapping);
  5384. HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
  5385. IDWriteTextLayout4 *This,
  5386. DWRITE_READING_DIRECTION direction);
  5387. HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
  5388. IDWriteTextLayout4 *This,
  5389. DWRITE_FLOW_DIRECTION direction);
  5390. HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
  5391. IDWriteTextLayout4 *This,
  5392. FLOAT tabstop);
  5393. HRESULT (STDMETHODCALLTYPE *SetTrimming)(
  5394. IDWriteTextLayout4 *This,
  5395. const DWRITE_TRIMMING *trimming,
  5396. IDWriteInlineObject *trimming_sign);
  5397. HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
  5398. IDWriteTextLayout4 *This,
  5399. DWRITE_LINE_SPACING_METHOD spacing,
  5400. FLOAT line_spacing,
  5401. FLOAT baseline);
  5402. DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
  5403. IDWriteTextLayout4 *This);
  5404. DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
  5405. IDWriteTextLayout4 *This);
  5406. DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
  5407. IDWriteTextLayout4 *This);
  5408. DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
  5409. IDWriteTextLayout4 *This);
  5410. DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
  5411. IDWriteTextLayout4 *This);
  5412. FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
  5413. IDWriteTextLayout4 *This);
  5414. HRESULT (STDMETHODCALLTYPE *GetTrimming)(
  5415. IDWriteTextLayout4 *This,
  5416. DWRITE_TRIMMING *options,
  5417. IDWriteInlineObject **trimming_sign);
  5418. HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
  5419. IDWriteTextLayout4 *This,
  5420. DWRITE_LINE_SPACING_METHOD *method,
  5421. FLOAT *spacing,
  5422. FLOAT *baseline);
  5423. HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
  5424. IDWriteTextLayout4 *This,
  5425. IDWriteFontCollection **collection);
  5426. UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
  5427. IDWriteTextLayout4 *This);
  5428. HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
  5429. IDWriteTextLayout4 *This,
  5430. WCHAR *name,
  5431. UINT32 size);
  5432. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
  5433. IDWriteTextLayout4 *This);
  5434. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
  5435. IDWriteTextLayout4 *This);
  5436. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
  5437. IDWriteTextLayout4 *This);
  5438. FLOAT (STDMETHODCALLTYPE *GetFontSize)(
  5439. IDWriteTextLayout4 *This);
  5440. UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
  5441. IDWriteTextLayout4 *This);
  5442. HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
  5443. IDWriteTextLayout4 *This,
  5444. WCHAR *name,
  5445. UINT32 size);
  5446. /*** IDWriteTextLayout methods ***/
  5447. HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
  5448. IDWriteTextLayout4 *This,
  5449. FLOAT maxWidth);
  5450. HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
  5451. IDWriteTextLayout4 *This,
  5452. FLOAT maxHeight);
  5453. HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
  5454. IDWriteTextLayout4 *This,
  5455. IDWriteFontCollection *collection,
  5456. DWRITE_TEXT_RANGE range);
  5457. HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
  5458. IDWriteTextLayout4 *This,
  5459. const WCHAR *name,
  5460. DWRITE_TEXT_RANGE range);
  5461. HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
  5462. IDWriteTextLayout4 *This,
  5463. DWRITE_FONT_WEIGHT weight,
  5464. DWRITE_TEXT_RANGE range);
  5465. HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
  5466. IDWriteTextLayout4 *This,
  5467. DWRITE_FONT_STYLE style,
  5468. DWRITE_TEXT_RANGE range);
  5469. HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
  5470. IDWriteTextLayout4 *This,
  5471. DWRITE_FONT_STRETCH stretch,
  5472. DWRITE_TEXT_RANGE range);
  5473. HRESULT (STDMETHODCALLTYPE *SetFontSize)(
  5474. IDWriteTextLayout4 *This,
  5475. FLOAT size,
  5476. DWRITE_TEXT_RANGE range);
  5477. HRESULT (STDMETHODCALLTYPE *SetUnderline)(
  5478. IDWriteTextLayout4 *This,
  5479. WINBOOL underline,
  5480. DWRITE_TEXT_RANGE range);
  5481. HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
  5482. IDWriteTextLayout4 *This,
  5483. WINBOOL strikethrough,
  5484. DWRITE_TEXT_RANGE range);
  5485. HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
  5486. IDWriteTextLayout4 *This,
  5487. IUnknown *effect,
  5488. DWRITE_TEXT_RANGE range);
  5489. HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
  5490. IDWriteTextLayout4 *This,
  5491. IDWriteInlineObject *object,
  5492. DWRITE_TEXT_RANGE range);
  5493. HRESULT (STDMETHODCALLTYPE *SetTypography)(
  5494. IDWriteTextLayout4 *This,
  5495. IDWriteTypography *typography,
  5496. DWRITE_TEXT_RANGE range);
  5497. HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
  5498. IDWriteTextLayout4 *This,
  5499. const WCHAR *locale,
  5500. DWRITE_TEXT_RANGE range);
  5501. FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
  5502. IDWriteTextLayout4 *This);
  5503. FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
  5504. IDWriteTextLayout4 *This);
  5505. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
  5506. IDWriteTextLayout4 *This,
  5507. UINT32 pos,
  5508. IDWriteFontCollection **collection,
  5509. DWRITE_TEXT_RANGE *range);
  5510. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
  5511. IDWriteTextLayout4 *This,
  5512. UINT32 pos,
  5513. UINT32 *len,
  5514. DWRITE_TEXT_RANGE *range);
  5515. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
  5516. IDWriteTextLayout4 *This,
  5517. UINT32 position,
  5518. WCHAR *name,
  5519. UINT32 name_size,
  5520. DWRITE_TEXT_RANGE *range);
  5521. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
  5522. IDWriteTextLayout4 *This,
  5523. UINT32 position,
  5524. DWRITE_FONT_WEIGHT *weight,
  5525. DWRITE_TEXT_RANGE *range);
  5526. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
  5527. IDWriteTextLayout4 *This,
  5528. UINT32 currentPosition,
  5529. DWRITE_FONT_STYLE *style,
  5530. DWRITE_TEXT_RANGE *range);
  5531. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
  5532. IDWriteTextLayout4 *This,
  5533. UINT32 position,
  5534. DWRITE_FONT_STRETCH *stretch,
  5535. DWRITE_TEXT_RANGE *range);
  5536. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
  5537. IDWriteTextLayout4 *This,
  5538. UINT32 position,
  5539. FLOAT *size,
  5540. DWRITE_TEXT_RANGE *range);
  5541. HRESULT (STDMETHODCALLTYPE *GetUnderline)(
  5542. IDWriteTextLayout4 *This,
  5543. UINT32 position,
  5544. WINBOOL *has_underline,
  5545. DWRITE_TEXT_RANGE *range);
  5546. HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
  5547. IDWriteTextLayout4 *This,
  5548. UINT32 position,
  5549. WINBOOL *has_strikethrough,
  5550. DWRITE_TEXT_RANGE *range);
  5551. HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
  5552. IDWriteTextLayout4 *This,
  5553. UINT32 position,
  5554. IUnknown **effect,
  5555. DWRITE_TEXT_RANGE *range);
  5556. HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
  5557. IDWriteTextLayout4 *This,
  5558. UINT32 position,
  5559. IDWriteInlineObject **object,
  5560. DWRITE_TEXT_RANGE *range);
  5561. HRESULT (STDMETHODCALLTYPE *GetTypography)(
  5562. IDWriteTextLayout4 *This,
  5563. UINT32 position,
  5564. IDWriteTypography **typography,
  5565. DWRITE_TEXT_RANGE *range);
  5566. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
  5567. IDWriteTextLayout4 *This,
  5568. UINT32 position,
  5569. UINT32 *length,
  5570. DWRITE_TEXT_RANGE *range);
  5571. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
  5572. IDWriteTextLayout4 *This,
  5573. UINT32 position,
  5574. WCHAR *name,
  5575. UINT32 name_size,
  5576. DWRITE_TEXT_RANGE *range);
  5577. HRESULT (STDMETHODCALLTYPE *Draw)(
  5578. IDWriteTextLayout4 *This,
  5579. void *context,
  5580. IDWriteTextRenderer *renderer,
  5581. FLOAT originX,
  5582. FLOAT originY);
  5583. HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
  5584. IDWriteTextLayout4 *This,
  5585. DWRITE_LINE_METRICS *metrics,
  5586. UINT32 max_count,
  5587. UINT32 *actual_count);
  5588. HRESULT (STDMETHODCALLTYPE *GetMetrics)(
  5589. IDWriteTextLayout4 *This,
  5590. DWRITE_TEXT_METRICS *metrics);
  5591. HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
  5592. IDWriteTextLayout4 *This,
  5593. DWRITE_OVERHANG_METRICS *overhangs);
  5594. HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
  5595. IDWriteTextLayout4 *This,
  5596. DWRITE_CLUSTER_METRICS *metrics,
  5597. UINT32 max_count,
  5598. UINT32 *act_count);
  5599. HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
  5600. IDWriteTextLayout4 *This,
  5601. FLOAT *min_width);
  5602. HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
  5603. IDWriteTextLayout4 *This,
  5604. FLOAT pointX,
  5605. FLOAT pointY,
  5606. WINBOOL *is_trailinghit,
  5607. WINBOOL *is_inside,
  5608. DWRITE_HIT_TEST_METRICS *metrics);
  5609. HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
  5610. IDWriteTextLayout4 *This,
  5611. UINT32 textPosition,
  5612. WINBOOL is_trailinghit,
  5613. FLOAT *pointX,
  5614. FLOAT *pointY,
  5615. DWRITE_HIT_TEST_METRICS *metrics);
  5616. HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
  5617. IDWriteTextLayout4 *This,
  5618. UINT32 textPosition,
  5619. UINT32 textLength,
  5620. FLOAT originX,
  5621. FLOAT originY,
  5622. DWRITE_HIT_TEST_METRICS *metrics,
  5623. UINT32 max_metricscount,
  5624. UINT32 *actual_metricscount);
  5625. /*** IDWriteTextLayout1 methods ***/
  5626. HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
  5627. IDWriteTextLayout4 *This,
  5628. WINBOOL is_pairkerning_enabled,
  5629. DWRITE_TEXT_RANGE range);
  5630. HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
  5631. IDWriteTextLayout4 *This,
  5632. UINT32 position,
  5633. WINBOOL *is_pairkerning_enabled,
  5634. DWRITE_TEXT_RANGE *range);
  5635. HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
  5636. IDWriteTextLayout4 *This,
  5637. FLOAT leading_spacing,
  5638. FLOAT trailing_spacing,
  5639. FLOAT minimum_advance_width,
  5640. DWRITE_TEXT_RANGE range);
  5641. HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
  5642. IDWriteTextLayout4 *This,
  5643. UINT32 position,
  5644. FLOAT *leading_spacing,
  5645. FLOAT *trailing_spacing,
  5646. FLOAT *minimum_advance_width,
  5647. DWRITE_TEXT_RANGE *range);
  5648. /*** IDWriteTextLayout2 methods ***/
  5649. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
  5650. IDWriteTextLayout4 *This,
  5651. DWRITE_TEXT_METRICS1 *metrics);
  5652. HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
  5653. IDWriteTextLayout4 *This,
  5654. DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
  5655. DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
  5656. IDWriteTextLayout4 *This);
  5657. HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
  5658. IDWriteTextLayout4 *This,
  5659. WINBOOL lastline_wrapping_enabled);
  5660. WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
  5661. IDWriteTextLayout4 *This);
  5662. HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
  5663. IDWriteTextLayout4 *This,
  5664. DWRITE_OPTICAL_ALIGNMENT alignment);
  5665. DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
  5666. IDWriteTextLayout4 *This);
  5667. HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
  5668. IDWriteTextLayout4 *This,
  5669. IDWriteFontFallback *fallback);
  5670. HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
  5671. IDWriteTextLayout4 *This,
  5672. IDWriteFontFallback **fallback);
  5673. /*** IDWriteTextLayout3 methods ***/
  5674. HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
  5675. IDWriteTextLayout4 *This);
  5676. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
  5677. IDWriteTextLayout4 *This,
  5678. const DWRITE_LINE_SPACING *spacing);
  5679. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
  5680. IDWriteTextLayout4 *This,
  5681. DWRITE_LINE_SPACING *spacing);
  5682. HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
  5683. IDWriteTextLayout4 *This,
  5684. DWRITE_LINE_METRICS1 *metrics,
  5685. UINT32 max_count,
  5686. UINT32 *count);
  5687. /*** IDWriteTextLayout4 methods ***/
  5688. HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
  5689. IDWriteTextLayout4 *This,
  5690. const DWRITE_FONT_AXIS_VALUE *axis_values,
  5691. UINT32 num_values,
  5692. DWRITE_TEXT_RANGE range);
  5693. UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  5694. IDWriteTextLayout4 *This,
  5695. UINT32 pos);
  5696. HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  5697. IDWriteTextLayout4 *This,
  5698. UINT32 pos,
  5699. DWRITE_FONT_AXIS_VALUE *values,
  5700. UINT32 num_values,
  5701. DWRITE_TEXT_RANGE *range);
  5702. DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
  5703. IDWriteTextLayout4 *This);
  5704. HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
  5705. IDWriteTextLayout4 *This,
  5706. DWRITE_AUTOMATIC_FONT_AXES axes);
  5707. END_INTERFACE
  5708. } IDWriteTextLayout4Vtbl;
  5709. interface IDWriteTextLayout4 {
  5710. CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl;
  5711. };
  5712. #ifdef COBJMACROS
  5713. #ifndef WIDL_C_INLINE_WRAPPERS
  5714. /*** IUnknown methods ***/
  5715. #define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5716. #define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This)
  5717. #define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This)
  5718. /*** IDWriteTextFormat methods ***/
  5719. #define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
  5720. #define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
  5721. #define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
  5722. #define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
  5723. #define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
  5724. #define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
  5725. #define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
  5726. #define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
  5727. #define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
  5728. #define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
  5729. #define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
  5730. #define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
  5731. #define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
  5732. #define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
  5733. /*** IDWriteTextLayout methods ***/
  5734. #define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
  5735. #define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
  5736. #define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
  5737. #define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
  5738. #define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
  5739. #define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
  5740. #define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
  5741. #define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
  5742. #define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
  5743. #define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
  5744. #define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
  5745. #define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
  5746. #define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
  5747. #define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
  5748. #define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
  5749. #define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
  5750. #define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
  5751. #define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
  5752. #define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
  5753. #define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
  5754. #define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
  5755. #define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
  5756. #define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
  5757. #define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
  5758. #define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
  5759. #define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
  5760. #define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
  5761. #define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
  5762. #define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
  5763. #define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
  5764. #define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
  5765. #define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
  5766. #define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
  5767. #define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
  5768. #define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
  5769. #define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
  5770. #define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
  5771. /*** IDWriteTextLayout1 methods ***/
  5772. #define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
  5773. #define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
  5774. #define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
  5775. #define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
  5776. /*** IDWriteTextLayout2 methods ***/
  5777. #define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
  5778. #define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
  5779. #define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
  5780. #define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
  5781. #define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
  5782. #define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
  5783. #define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
  5784. #define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
  5785. #define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
  5786. /*** IDWriteTextLayout3 methods ***/
  5787. #define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
  5788. #define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
  5789. #define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
  5790. #define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
  5791. /*** IDWriteTextLayout4 methods ***/
  5792. #define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range)
  5793. #define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos)
  5794. #define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range)
  5795. #define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
  5796. #define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
  5797. #else
  5798. /*** IUnknown methods ***/
  5799. static FORCEINLINE HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) {
  5800. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5801. }
  5802. static FORCEINLINE ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) {
  5803. return This->lpVtbl->AddRef(This);
  5804. }
  5805. static FORCEINLINE ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) {
  5806. return This->lpVtbl->Release(This);
  5807. }
  5808. /*** IDWriteTextFormat methods ***/
  5809. static FORCEINLINE HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) {
  5810. return This->lpVtbl->SetTextAlignment(This,alignment);
  5811. }
  5812. static FORCEINLINE HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
  5813. return This->lpVtbl->SetParagraphAlignment(This,alignment);
  5814. }
  5815. static FORCEINLINE HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) {
  5816. return This->lpVtbl->SetWordWrapping(This,wrapping);
  5817. }
  5818. static FORCEINLINE HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) {
  5819. return This->lpVtbl->SetReadingDirection(This,direction);
  5820. }
  5821. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) {
  5822. return This->lpVtbl->SetFlowDirection(This,direction);
  5823. }
  5824. static FORCEINLINE HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) {
  5825. return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
  5826. }
  5827. static FORCEINLINE HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
  5828. return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
  5829. }
  5830. static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) {
  5831. return This->lpVtbl->GetTextAlignment(This);
  5832. }
  5833. static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) {
  5834. return This->lpVtbl->GetParagraphAlignment(This);
  5835. }
  5836. static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) {
  5837. return This->lpVtbl->GetWordWrapping(This);
  5838. }
  5839. static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) {
  5840. return This->lpVtbl->GetReadingDirection(This);
  5841. }
  5842. static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) {
  5843. return This->lpVtbl->GetFlowDirection(This);
  5844. }
  5845. static FORCEINLINE FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) {
  5846. return This->lpVtbl->GetIncrementalTabStop(This);
  5847. }
  5848. static FORCEINLINE HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
  5849. return This->lpVtbl->GetTrimming(This,options,trimming_sign);
  5850. }
  5851. /*** IDWriteTextLayout methods ***/
  5852. static FORCEINLINE HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) {
  5853. return This->lpVtbl->SetMaxWidth(This,maxWidth);
  5854. }
  5855. static FORCEINLINE HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) {
  5856. return This->lpVtbl->SetMaxHeight(This,maxHeight);
  5857. }
  5858. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
  5859. return This->lpVtbl->SetFontCollection(This,collection,range);
  5860. }
  5861. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
  5862. return This->lpVtbl->SetFontFamilyName(This,name,range);
  5863. }
  5864. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
  5865. return This->lpVtbl->SetFontWeight(This,weight,range);
  5866. }
  5867. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
  5868. return This->lpVtbl->SetFontStyle(This,style,range);
  5869. }
  5870. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
  5871. return This->lpVtbl->SetFontStretch(This,stretch,range);
  5872. }
  5873. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) {
  5874. return This->lpVtbl->SetFontSize(This,size,range);
  5875. }
  5876. static FORCEINLINE HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
  5877. return This->lpVtbl->SetUnderline(This,underline,range);
  5878. }
  5879. static FORCEINLINE HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
  5880. return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
  5881. }
  5882. static FORCEINLINE HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
  5883. return This->lpVtbl->SetDrawingEffect(This,effect,range);
  5884. }
  5885. static FORCEINLINE HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
  5886. return This->lpVtbl->SetInlineObject(This,object,range);
  5887. }
  5888. static FORCEINLINE HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
  5889. return This->lpVtbl->SetTypography(This,typography,range);
  5890. }
  5891. static FORCEINLINE HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
  5892. return This->lpVtbl->SetLocaleName(This,locale,range);
  5893. }
  5894. static FORCEINLINE FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) {
  5895. return This->lpVtbl->GetMaxWidth(This);
  5896. }
  5897. static FORCEINLINE FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) {
  5898. return This->lpVtbl->GetMaxHeight(This);
  5899. }
  5900. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
  5901. return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
  5902. }
  5903. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
  5904. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
  5905. }
  5906. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  5907. return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
  5908. }
  5909. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
  5910. return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
  5911. }
  5912. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
  5913. return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
  5914. }
  5915. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
  5916. return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
  5917. }
  5918. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
  5919. return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
  5920. }
  5921. static FORCEINLINE HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
  5922. return This->lpVtbl->GetUnderline(This,position,has_underline,range);
  5923. }
  5924. static FORCEINLINE HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
  5925. return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
  5926. }
  5927. static FORCEINLINE HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
  5928. return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
  5929. }
  5930. static FORCEINLINE HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
  5931. return This->lpVtbl->GetInlineObject(This,position,object,range);
  5932. }
  5933. static FORCEINLINE HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
  5934. return This->lpVtbl->GetTypography(This,position,typography,range);
  5935. }
  5936. static FORCEINLINE HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
  5937. return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
  5938. }
  5939. static FORCEINLINE HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
  5940. return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
  5941. }
  5942. static FORCEINLINE HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
  5943. return This->lpVtbl->Draw(This,context,renderer,originX,originY);
  5944. }
  5945. static FORCEINLINE HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) {
  5946. return This->lpVtbl->GetOverhangMetrics(This,overhangs);
  5947. }
  5948. static FORCEINLINE HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
  5949. return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
  5950. }
  5951. static FORCEINLINE HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) {
  5952. return This->lpVtbl->DetermineMinWidth(This,min_width);
  5953. }
  5954. static FORCEINLINE HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
  5955. return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
  5956. }
  5957. static FORCEINLINE HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
  5958. return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
  5959. }
  5960. static FORCEINLINE HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
  5961. return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
  5962. }
  5963. /*** IDWriteTextLayout1 methods ***/
  5964. static FORCEINLINE HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
  5965. return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
  5966. }
  5967. static FORCEINLINE HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
  5968. return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
  5969. }
  5970. static FORCEINLINE HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
  5971. return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
  5972. }
  5973. static FORCEINLINE HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
  5974. return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
  5975. }
  5976. /*** IDWriteTextLayout2 methods ***/
  5977. static FORCEINLINE HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) {
  5978. return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
  5979. }
  5980. static FORCEINLINE HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
  5981. return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
  5982. }
  5983. static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) {
  5984. return This->lpVtbl->GetVerticalGlyphOrientation(This);
  5985. }
  5986. static FORCEINLINE HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) {
  5987. return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
  5988. }
  5989. static FORCEINLINE WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) {
  5990. return This->lpVtbl->GetLastLineWrapping(This);
  5991. }
  5992. static FORCEINLINE HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
  5993. return This->lpVtbl->SetOpticalAlignment(This,alignment);
  5994. }
  5995. static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) {
  5996. return This->lpVtbl->GetOpticalAlignment(This);
  5997. }
  5998. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) {
  5999. return This->lpVtbl->SetFontFallback(This,fallback);
  6000. }
  6001. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) {
  6002. return This->lpVtbl->GetFontFallback(This,fallback);
  6003. }
  6004. /*** IDWriteTextLayout3 methods ***/
  6005. static FORCEINLINE HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) {
  6006. return This->lpVtbl->InvalidateLayout(This);
  6007. }
  6008. static FORCEINLINE HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) {
  6009. return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
  6010. }
  6011. static FORCEINLINE HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) {
  6012. return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
  6013. }
  6014. static FORCEINLINE HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
  6015. return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
  6016. }
  6017. /*** IDWriteTextLayout4 methods ***/
  6018. static FORCEINLINE HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) {
  6019. return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range);
  6020. }
  6021. static FORCEINLINE UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) {
  6022. return This->lpVtbl->GetFontAxisValueCount(This,pos);
  6023. }
  6024. static FORCEINLINE HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) {
  6025. return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range);
  6026. }
  6027. static FORCEINLINE DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) {
  6028. return This->lpVtbl->GetAutomaticFontAxes(This);
  6029. }
  6030. static FORCEINLINE HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
  6031. return This->lpVtbl->SetAutomaticFontAxes(This,axes);
  6032. }
  6033. #endif
  6034. #endif
  6035. #endif
  6036. #endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */
  6037. /*****************************************************************************
  6038. * IDWriteFontFallback1 interface
  6039. */
  6040. #ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__
  6041. #define __IDWriteFontFallback1_INTERFACE_DEFINED__
  6042. DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77);
  6043. #if defined(__cplusplus) && !defined(CINTERFACE)
  6044. MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77")
  6045. IDWriteFontFallback1 : public IDWriteFontFallback
  6046. {
  6047. virtual HRESULT STDMETHODCALLTYPE MapCharacters(
  6048. IDWriteTextAnalysisSource *source,
  6049. UINT32 pos,
  6050. UINT32 length,
  6051. IDWriteFontCollection *base_collection,
  6052. const WCHAR *familyname,
  6053. const DWRITE_FONT_AXIS_VALUE *axis_values,
  6054. UINT32 num_values,
  6055. UINT32 *mapped_length,
  6056. FLOAT *scale,
  6057. IDWriteFontFace5 **fontface) = 0;
  6058. };
  6059. #ifdef __CRT_UUID_DECL
  6060. __CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77)
  6061. #endif
  6062. #else
  6063. typedef struct IDWriteFontFallback1Vtbl {
  6064. BEGIN_INTERFACE
  6065. /*** IUnknown methods ***/
  6066. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6067. IDWriteFontFallback1 *This,
  6068. REFIID riid,
  6069. void **ppvObject);
  6070. ULONG (STDMETHODCALLTYPE *AddRef)(
  6071. IDWriteFontFallback1 *This);
  6072. ULONG (STDMETHODCALLTYPE *Release)(
  6073. IDWriteFontFallback1 *This);
  6074. /*** IDWriteFontFallback methods ***/
  6075. HRESULT (STDMETHODCALLTYPE *MapCharacters)(
  6076. IDWriteFontFallback1 *This,
  6077. IDWriteTextAnalysisSource *source,
  6078. UINT32 position,
  6079. UINT32 length,
  6080. IDWriteFontCollection *basecollection,
  6081. const WCHAR *baseFamilyName,
  6082. DWRITE_FONT_WEIGHT baseWeight,
  6083. DWRITE_FONT_STYLE baseStyle,
  6084. DWRITE_FONT_STRETCH baseStretch,
  6085. UINT32 *mappedLength,
  6086. IDWriteFont **mappedFont,
  6087. FLOAT *scale);
  6088. /*** IDWriteFontFallback1 methods ***/
  6089. HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)(
  6090. IDWriteFontFallback1 *This,
  6091. IDWriteTextAnalysisSource *source,
  6092. UINT32 pos,
  6093. UINT32 length,
  6094. IDWriteFontCollection *base_collection,
  6095. const WCHAR *familyname,
  6096. const DWRITE_FONT_AXIS_VALUE *axis_values,
  6097. UINT32 num_values,
  6098. UINT32 *mapped_length,
  6099. FLOAT *scale,
  6100. IDWriteFontFace5 **fontface);
  6101. END_INTERFACE
  6102. } IDWriteFontFallback1Vtbl;
  6103. interface IDWriteFontFallback1 {
  6104. CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl;
  6105. };
  6106. #ifdef COBJMACROS
  6107. #ifndef WIDL_C_INLINE_WRAPPERS
  6108. /*** IUnknown methods ***/
  6109. #define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6110. #define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This)
  6111. #define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This)
  6112. /*** IDWriteFontFallback methods ***/
  6113. /*** IDWriteFontFallback1 methods ***/
  6114. #define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface)
  6115. #else
  6116. /*** IUnknown methods ***/
  6117. static FORCEINLINE HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) {
  6118. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6119. }
  6120. static FORCEINLINE ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) {
  6121. return This->lpVtbl->AddRef(This);
  6122. }
  6123. static FORCEINLINE ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) {
  6124. return This->lpVtbl->Release(This);
  6125. }
  6126. /*** IDWriteFontFallback methods ***/
  6127. /*** IDWriteFontFallback1 methods ***/
  6128. static FORCEINLINE HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) {
  6129. return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface);
  6130. }
  6131. #endif
  6132. #endif
  6133. #endif
  6134. #endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */
  6135. /*****************************************************************************
  6136. * IDWriteGdiInterop1 interface
  6137. */
  6138. #ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__
  6139. #define __IDWriteGdiInterop1_INTERFACE_DEFINED__
  6140. DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15);
  6141. #if defined(__cplusplus) && !defined(CINTERFACE)
  6142. MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515")
  6143. IDWriteGdiInterop1 : public IDWriteGdiInterop
  6144. {
  6145. virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT(
  6146. const LOGFONTW *logfont,
  6147. IDWriteFontCollection *collection,
  6148. IDWriteFont **font) = 0;
  6149. virtual HRESULT STDMETHODCALLTYPE GetFontSignature_(
  6150. IDWriteFontFace *fontface,
  6151. FONTSIGNATURE *fontsig) = 0;
  6152. virtual HRESULT STDMETHODCALLTYPE GetFontSignature(
  6153. IDWriteFont *font,
  6154. FONTSIGNATURE *fontsig) = 0;
  6155. virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT(
  6156. const LOGFONTW *logfont,
  6157. IDWriteFontSet *fontset,
  6158. IDWriteFontSet **subset) = 0;
  6159. };
  6160. #ifdef __CRT_UUID_DECL
  6161. __CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15)
  6162. #endif
  6163. #else
  6164. typedef struct IDWriteGdiInterop1Vtbl {
  6165. BEGIN_INTERFACE
  6166. /*** IUnknown methods ***/
  6167. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6168. IDWriteGdiInterop1 *This,
  6169. REFIID riid,
  6170. void **ppvObject);
  6171. ULONG (STDMETHODCALLTYPE *AddRef)(
  6172. IDWriteGdiInterop1 *This);
  6173. ULONG (STDMETHODCALLTYPE *Release)(
  6174. IDWriteGdiInterop1 *This);
  6175. /*** IDWriteGdiInterop methods ***/
  6176. HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)(
  6177. IDWriteGdiInterop1 *This,
  6178. const LOGFONTW *logfont,
  6179. IDWriteFont **font);
  6180. HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)(
  6181. IDWriteGdiInterop1 *This,
  6182. IDWriteFont *font,
  6183. LOGFONTW *logfont,
  6184. WINBOOL *is_systemfont);
  6185. HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)(
  6186. IDWriteGdiInterop1 *This,
  6187. IDWriteFontFace *font,
  6188. LOGFONTW *logfont);
  6189. HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)(
  6190. IDWriteGdiInterop1 *This,
  6191. HDC hdc,
  6192. IDWriteFontFace **fontface);
  6193. HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)(
  6194. IDWriteGdiInterop1 *This,
  6195. HDC hdc,
  6196. UINT32 width,
  6197. UINT32 height,
  6198. IDWriteBitmapRenderTarget **target);
  6199. /*** IDWriteGdiInterop1 methods ***/
  6200. HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)(
  6201. IDWriteGdiInterop1 *This,
  6202. const LOGFONTW *logfont,
  6203. IDWriteFontCollection *collection,
  6204. IDWriteFont **font);
  6205. HRESULT (STDMETHODCALLTYPE *GetFontSignature_)(
  6206. IDWriteGdiInterop1 *This,
  6207. IDWriteFontFace *fontface,
  6208. FONTSIGNATURE *fontsig);
  6209. HRESULT (STDMETHODCALLTYPE *GetFontSignature)(
  6210. IDWriteGdiInterop1 *This,
  6211. IDWriteFont *font,
  6212. FONTSIGNATURE *fontsig);
  6213. HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)(
  6214. IDWriteGdiInterop1 *This,
  6215. const LOGFONTW *logfont,
  6216. IDWriteFontSet *fontset,
  6217. IDWriteFontSet **subset);
  6218. END_INTERFACE
  6219. } IDWriteGdiInterop1Vtbl;
  6220. interface IDWriteGdiInterop1 {
  6221. CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl;
  6222. };
  6223. #ifdef COBJMACROS
  6224. #ifndef WIDL_C_INLINE_WRAPPERS
  6225. /*** IUnknown methods ***/
  6226. #define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6227. #define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This)
  6228. #define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This)
  6229. /*** IDWriteGdiInterop methods ***/
  6230. #define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont)
  6231. #define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont)
  6232. #define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface)
  6233. #define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target)
  6234. /*** IDWriteGdiInterop1 methods ***/
  6235. #define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font)
  6236. #define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig)
  6237. #define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig)
  6238. #define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset)
  6239. #else
  6240. /*** IUnknown methods ***/
  6241. static FORCEINLINE HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) {
  6242. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6243. }
  6244. static FORCEINLINE ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) {
  6245. return This->lpVtbl->AddRef(This);
  6246. }
  6247. static FORCEINLINE ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) {
  6248. return This->lpVtbl->Release(This);
  6249. }
  6250. /*** IDWriteGdiInterop methods ***/
  6251. static FORCEINLINE HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) {
  6252. return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont);
  6253. }
  6254. static FORCEINLINE HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) {
  6255. return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont);
  6256. }
  6257. static FORCEINLINE HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) {
  6258. return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface);
  6259. }
  6260. static FORCEINLINE HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) {
  6261. return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target);
  6262. }
  6263. /*** IDWriteGdiInterop1 methods ***/
  6264. static FORCEINLINE HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) {
  6265. return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font);
  6266. }
  6267. static FORCEINLINE HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) {
  6268. return This->lpVtbl->GetFontSignature_(This,fontface,fontsig);
  6269. }
  6270. static FORCEINLINE HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) {
  6271. return This->lpVtbl->GetFontSignature(This,font,fontsig);
  6272. }
  6273. static FORCEINLINE HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) {
  6274. return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset);
  6275. }
  6276. #endif
  6277. #endif
  6278. #endif
  6279. #endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */
  6280. /*****************************************************************************
  6281. * IDWriteFontSetBuilder interface
  6282. */
  6283. #ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__
  6284. #define __IDWriteFontSetBuilder_INTERFACE_DEFINED__
  6285. DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d);
  6286. #if defined(__cplusplus) && !defined(CINTERFACE)
  6287. MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d")
  6288. IDWriteFontSetBuilder : public IUnknown
  6289. {
  6290. virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_(
  6291. IDWriteFontFaceReference *ref,
  6292. const DWRITE_FONT_PROPERTY *props,
  6293. UINT32 prop_count) = 0;
  6294. virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference(
  6295. IDWriteFontFaceReference *ref) = 0;
  6296. virtual HRESULT STDMETHODCALLTYPE AddFontSet(
  6297. IDWriteFontSet *fontset) = 0;
  6298. virtual HRESULT STDMETHODCALLTYPE CreateFontSet(
  6299. IDWriteFontSet **fontset) = 0;
  6300. };
  6301. #ifdef __CRT_UUID_DECL
  6302. __CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d)
  6303. #endif
  6304. #else
  6305. typedef struct IDWriteFontSetBuilderVtbl {
  6306. BEGIN_INTERFACE
  6307. /*** IUnknown methods ***/
  6308. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6309. IDWriteFontSetBuilder *This,
  6310. REFIID riid,
  6311. void **ppvObject);
  6312. ULONG (STDMETHODCALLTYPE *AddRef)(
  6313. IDWriteFontSetBuilder *This);
  6314. ULONG (STDMETHODCALLTYPE *Release)(
  6315. IDWriteFontSetBuilder *This);
  6316. /*** IDWriteFontSetBuilder methods ***/
  6317. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
  6318. IDWriteFontSetBuilder *This,
  6319. IDWriteFontFaceReference *ref,
  6320. const DWRITE_FONT_PROPERTY *props,
  6321. UINT32 prop_count);
  6322. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
  6323. IDWriteFontSetBuilder *This,
  6324. IDWriteFontFaceReference *ref);
  6325. HRESULT (STDMETHODCALLTYPE *AddFontSet)(
  6326. IDWriteFontSetBuilder *This,
  6327. IDWriteFontSet *fontset);
  6328. HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
  6329. IDWriteFontSetBuilder *This,
  6330. IDWriteFontSet **fontset);
  6331. END_INTERFACE
  6332. } IDWriteFontSetBuilderVtbl;
  6333. interface IDWriteFontSetBuilder {
  6334. CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl;
  6335. };
  6336. #ifdef COBJMACROS
  6337. #ifndef WIDL_C_INLINE_WRAPPERS
  6338. /*** IUnknown methods ***/
  6339. #define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6340. #define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  6341. #define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This)
  6342. /*** IDWriteFontSetBuilder methods ***/
  6343. #define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
  6344. #define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
  6345. #define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
  6346. #define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
  6347. #else
  6348. /*** IUnknown methods ***/
  6349. static FORCEINLINE HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) {
  6350. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6351. }
  6352. static FORCEINLINE ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) {
  6353. return This->lpVtbl->AddRef(This);
  6354. }
  6355. static FORCEINLINE ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) {
  6356. return This->lpVtbl->Release(This);
  6357. }
  6358. /*** IDWriteFontSetBuilder methods ***/
  6359. static FORCEINLINE HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
  6360. return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
  6361. }
  6362. static FORCEINLINE HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) {
  6363. return This->lpVtbl->AddFontFaceReference(This,ref);
  6364. }
  6365. static FORCEINLINE HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) {
  6366. return This->lpVtbl->AddFontSet(This,fontset);
  6367. }
  6368. static FORCEINLINE HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) {
  6369. return This->lpVtbl->CreateFontSet(This,fontset);
  6370. }
  6371. #endif
  6372. #endif
  6373. #endif
  6374. #endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */
  6375. /*****************************************************************************
  6376. * IDWriteFontSetBuilder1 interface
  6377. */
  6378. #ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
  6379. #define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
  6380. DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd);
  6381. #if defined(__cplusplus) && !defined(CINTERFACE)
  6382. MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd")
  6383. IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder
  6384. {
  6385. virtual HRESULT STDMETHODCALLTYPE AddFontFile(
  6386. IDWriteFontFile *file) = 0;
  6387. };
  6388. #ifdef __CRT_UUID_DECL
  6389. __CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd)
  6390. #endif
  6391. #else
  6392. typedef struct IDWriteFontSetBuilder1Vtbl {
  6393. BEGIN_INTERFACE
  6394. /*** IUnknown methods ***/
  6395. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6396. IDWriteFontSetBuilder1 *This,
  6397. REFIID riid,
  6398. void **ppvObject);
  6399. ULONG (STDMETHODCALLTYPE *AddRef)(
  6400. IDWriteFontSetBuilder1 *This);
  6401. ULONG (STDMETHODCALLTYPE *Release)(
  6402. IDWriteFontSetBuilder1 *This);
  6403. /*** IDWriteFontSetBuilder methods ***/
  6404. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
  6405. IDWriteFontSetBuilder1 *This,
  6406. IDWriteFontFaceReference *ref,
  6407. const DWRITE_FONT_PROPERTY *props,
  6408. UINT32 prop_count);
  6409. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
  6410. IDWriteFontSetBuilder1 *This,
  6411. IDWriteFontFaceReference *ref);
  6412. HRESULT (STDMETHODCALLTYPE *AddFontSet)(
  6413. IDWriteFontSetBuilder1 *This,
  6414. IDWriteFontSet *fontset);
  6415. HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
  6416. IDWriteFontSetBuilder1 *This,
  6417. IDWriteFontSet **fontset);
  6418. /*** IDWriteFontSetBuilder1 methods ***/
  6419. HRESULT (STDMETHODCALLTYPE *AddFontFile)(
  6420. IDWriteFontSetBuilder1 *This,
  6421. IDWriteFontFile *file);
  6422. END_INTERFACE
  6423. } IDWriteFontSetBuilder1Vtbl;
  6424. interface IDWriteFontSetBuilder1 {
  6425. CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl;
  6426. };
  6427. #ifdef COBJMACROS
  6428. #ifndef WIDL_C_INLINE_WRAPPERS
  6429. /*** IUnknown methods ***/
  6430. #define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6431. #define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This)
  6432. #define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This)
  6433. /*** IDWriteFontSetBuilder methods ***/
  6434. #define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
  6435. #define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
  6436. #define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
  6437. #define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
  6438. /*** IDWriteFontSetBuilder1 methods ***/
  6439. #define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file)
  6440. #else
  6441. /*** IUnknown methods ***/
  6442. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) {
  6443. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6444. }
  6445. static FORCEINLINE ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) {
  6446. return This->lpVtbl->AddRef(This);
  6447. }
  6448. static FORCEINLINE ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) {
  6449. return This->lpVtbl->Release(This);
  6450. }
  6451. /*** IDWriteFontSetBuilder methods ***/
  6452. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
  6453. return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
  6454. }
  6455. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) {
  6456. return This->lpVtbl->AddFontFaceReference(This,ref);
  6457. }
  6458. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) {
  6459. return This->lpVtbl->AddFontSet(This,fontset);
  6460. }
  6461. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) {
  6462. return This->lpVtbl->CreateFontSet(This,fontset);
  6463. }
  6464. /*** IDWriteFontSetBuilder1 methods ***/
  6465. static FORCEINLINE HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) {
  6466. return This->lpVtbl->AddFontFile(This,file);
  6467. }
  6468. #endif
  6469. #endif
  6470. #endif
  6471. #endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */
  6472. /*****************************************************************************
  6473. * IDWriteFontSetBuilder2 interface
  6474. */
  6475. #ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
  6476. #define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
  6477. DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45);
  6478. #if defined(__cplusplus) && !defined(CINTERFACE)
  6479. MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45")
  6480. IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1
  6481. {
  6482. virtual HRESULT STDMETHODCALLTYPE AddFont(
  6483. IDWriteFontFile *fontfile,
  6484. UINT32 face_index,
  6485. DWRITE_FONT_SIMULATIONS simulations,
  6486. const DWRITE_FONT_AXIS_VALUE *axis_values,
  6487. UINT32 num_values,
  6488. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  6489. UINT32 num_ranges,
  6490. const DWRITE_FONT_PROPERTY *props,
  6491. UINT32 num_properties) = 0;
  6492. virtual HRESULT STDMETHODCALLTYPE AddFontFile(
  6493. const WCHAR *filepath) = 0;
  6494. };
  6495. #ifdef __CRT_UUID_DECL
  6496. __CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45)
  6497. #endif
  6498. #else
  6499. typedef struct IDWriteFontSetBuilder2Vtbl {
  6500. BEGIN_INTERFACE
  6501. /*** IUnknown methods ***/
  6502. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6503. IDWriteFontSetBuilder2 *This,
  6504. REFIID riid,
  6505. void **ppvObject);
  6506. ULONG (STDMETHODCALLTYPE *AddRef)(
  6507. IDWriteFontSetBuilder2 *This);
  6508. ULONG (STDMETHODCALLTYPE *Release)(
  6509. IDWriteFontSetBuilder2 *This);
  6510. /*** IDWriteFontSetBuilder methods ***/
  6511. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
  6512. IDWriteFontSetBuilder2 *This,
  6513. IDWriteFontFaceReference *ref,
  6514. const DWRITE_FONT_PROPERTY *props,
  6515. UINT32 prop_count);
  6516. HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
  6517. IDWriteFontSetBuilder2 *This,
  6518. IDWriteFontFaceReference *ref);
  6519. HRESULT (STDMETHODCALLTYPE *AddFontSet)(
  6520. IDWriteFontSetBuilder2 *This,
  6521. IDWriteFontSet *fontset);
  6522. HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
  6523. IDWriteFontSetBuilder2 *This,
  6524. IDWriteFontSet **fontset);
  6525. /*** IDWriteFontSetBuilder1 methods ***/
  6526. HRESULT (STDMETHODCALLTYPE *AddFontFile)(
  6527. IDWriteFontSetBuilder2 *This,
  6528. IDWriteFontFile *file);
  6529. /*** IDWriteFontSetBuilder2 methods ***/
  6530. HRESULT (STDMETHODCALLTYPE *AddFont)(
  6531. IDWriteFontSetBuilder2 *This,
  6532. IDWriteFontFile *fontfile,
  6533. UINT32 face_index,
  6534. DWRITE_FONT_SIMULATIONS simulations,
  6535. const DWRITE_FONT_AXIS_VALUE *axis_values,
  6536. UINT32 num_values,
  6537. const DWRITE_FONT_AXIS_RANGE *axis_ranges,
  6538. UINT32 num_ranges,
  6539. const DWRITE_FONT_PROPERTY *props,
  6540. UINT32 num_properties);
  6541. HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)(
  6542. IDWriteFontSetBuilder2 *This,
  6543. const WCHAR *filepath);
  6544. END_INTERFACE
  6545. } IDWriteFontSetBuilder2Vtbl;
  6546. interface IDWriteFontSetBuilder2 {
  6547. CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl;
  6548. };
  6549. #ifdef COBJMACROS
  6550. #ifndef WIDL_C_INLINE_WRAPPERS
  6551. /*** IUnknown methods ***/
  6552. #define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6553. #define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
  6554. #define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This)
  6555. /*** IDWriteFontSetBuilder methods ***/
  6556. #define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
  6557. #define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
  6558. #define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
  6559. #define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
  6560. /*** IDWriteFontSetBuilder1 methods ***/
  6561. /*** IDWriteFontSetBuilder2 methods ***/
  6562. #define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties)
  6563. #define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath)
  6564. #else
  6565. /*** IUnknown methods ***/
  6566. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) {
  6567. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6568. }
  6569. static FORCEINLINE ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) {
  6570. return This->lpVtbl->AddRef(This);
  6571. }
  6572. static FORCEINLINE ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) {
  6573. return This->lpVtbl->Release(This);
  6574. }
  6575. /*** IDWriteFontSetBuilder methods ***/
  6576. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
  6577. return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
  6578. }
  6579. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) {
  6580. return This->lpVtbl->AddFontFaceReference(This,ref);
  6581. }
  6582. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) {
  6583. return This->lpVtbl->AddFontSet(This,fontset);
  6584. }
  6585. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) {
  6586. return This->lpVtbl->CreateFontSet(This,fontset);
  6587. }
  6588. /*** IDWriteFontSetBuilder1 methods ***/
  6589. /*** IDWriteFontSetBuilder2 methods ***/
  6590. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) {
  6591. return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties);
  6592. }
  6593. static FORCEINLINE HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) {
  6594. return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath);
  6595. }
  6596. #endif
  6597. #endif
  6598. #endif
  6599. #endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */
  6600. /*****************************************************************************
  6601. * IDWriteFactory3 interface
  6602. */
  6603. #ifndef __IDWriteFactory3_INTERFACE_DEFINED__
  6604. #define __IDWriteFactory3_INTERFACE_DEFINED__
  6605. DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65);
  6606. #if defined(__cplusplus) && !defined(CINTERFACE)
  6607. MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65")
  6608. IDWriteFactory3 : public IDWriteFactory2
  6609. {
  6610. virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
  6611. const DWRITE_GLYPH_RUN *run,
  6612. const DWRITE_MATRIX *transform,
  6613. DWRITE_RENDERING_MODE1 rendering_mode,
  6614. DWRITE_MEASURING_MODE measuring_mode,
  6615. DWRITE_GRID_FIT_MODE gridfit_mode,
  6616. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  6617. FLOAT origin_x,
  6618. FLOAT origin_y,
  6619. IDWriteGlyphRunAnalysis **analysis) = 0;
  6620. virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
  6621. FLOAT gamma,
  6622. FLOAT enhanced_contrast,
  6623. FLOAT grayscale_enhanced_contrast,
  6624. FLOAT cleartype_level,
  6625. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  6626. DWRITE_RENDERING_MODE1 rendering_mode,
  6627. DWRITE_GRID_FIT_MODE gridfit_mode,
  6628. IDWriteRenderingParams3 **params) = 0;
  6629. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_(
  6630. IDWriteFontFile *file,
  6631. UINT32 index,
  6632. DWRITE_FONT_SIMULATIONS simulations,
  6633. IDWriteFontFaceReference **reference) = 0;
  6634. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
  6635. const WCHAR *path,
  6636. const FILETIME *writetime,
  6637. UINT32 index,
  6638. DWRITE_FONT_SIMULATIONS simulations,
  6639. IDWriteFontFaceReference **reference) = 0;
  6640. virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
  6641. IDWriteFontSet **fontset) = 0;
  6642. virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
  6643. IDWriteFontSetBuilder **builder) = 0;
  6644. virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
  6645. IDWriteFontSet *fontset,
  6646. IDWriteFontCollection1 **collection) = 0;
  6647. virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  6648. WINBOOL include_downloadable,
  6649. IDWriteFontCollection1 **collection,
  6650. WINBOOL check_for_updates) = 0;
  6651. virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue(
  6652. IDWriteFontDownloadQueue **queue) = 0;
  6653. };
  6654. #ifdef __CRT_UUID_DECL
  6655. __CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65)
  6656. #endif
  6657. #else
  6658. typedef struct IDWriteFactory3Vtbl {
  6659. BEGIN_INTERFACE
  6660. /*** IUnknown methods ***/
  6661. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  6662. IDWriteFactory3 *This,
  6663. REFIID riid,
  6664. void **ppvObject);
  6665. ULONG (STDMETHODCALLTYPE *AddRef)(
  6666. IDWriteFactory3 *This);
  6667. ULONG (STDMETHODCALLTYPE *Release)(
  6668. IDWriteFactory3 *This);
  6669. /*** IDWriteFactory methods ***/
  6670. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  6671. IDWriteFactory3 *This,
  6672. IDWriteFontCollection **collection,
  6673. WINBOOL check_for_updates);
  6674. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  6675. IDWriteFactory3 *This,
  6676. IDWriteFontCollectionLoader *loader,
  6677. const void *key,
  6678. UINT32 key_size,
  6679. IDWriteFontCollection **collection);
  6680. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  6681. IDWriteFactory3 *This,
  6682. IDWriteFontCollectionLoader *loader);
  6683. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  6684. IDWriteFactory3 *This,
  6685. IDWriteFontCollectionLoader *loader);
  6686. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  6687. IDWriteFactory3 *This,
  6688. const WCHAR *path,
  6689. const FILETIME *writetime,
  6690. IDWriteFontFile **font_file);
  6691. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  6692. IDWriteFactory3 *This,
  6693. const void *reference_key,
  6694. UINT32 key_size,
  6695. IDWriteFontFileLoader *loader,
  6696. IDWriteFontFile **font_file);
  6697. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  6698. IDWriteFactory3 *This,
  6699. DWRITE_FONT_FACE_TYPE facetype,
  6700. UINT32 files_number,
  6701. IDWriteFontFile *const *font_files,
  6702. UINT32 index,
  6703. DWRITE_FONT_SIMULATIONS sim_flags,
  6704. IDWriteFontFace **font_face);
  6705. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  6706. IDWriteFactory3 *This,
  6707. IDWriteRenderingParams **params);
  6708. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  6709. IDWriteFactory3 *This,
  6710. HMONITOR monitor,
  6711. IDWriteRenderingParams **params);
  6712. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  6713. IDWriteFactory3 *This,
  6714. FLOAT gamma,
  6715. FLOAT enhancedContrast,
  6716. FLOAT cleartype_level,
  6717. DWRITE_PIXEL_GEOMETRY geometry,
  6718. DWRITE_RENDERING_MODE mode,
  6719. IDWriteRenderingParams **params);
  6720. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  6721. IDWriteFactory3 *This,
  6722. IDWriteFontFileLoader *loader);
  6723. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  6724. IDWriteFactory3 *This,
  6725. IDWriteFontFileLoader *loader);
  6726. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  6727. IDWriteFactory3 *This,
  6728. const WCHAR *family_name,
  6729. IDWriteFontCollection *collection,
  6730. DWRITE_FONT_WEIGHT weight,
  6731. DWRITE_FONT_STYLE style,
  6732. DWRITE_FONT_STRETCH stretch,
  6733. FLOAT size,
  6734. const WCHAR *locale,
  6735. IDWriteTextFormat **format);
  6736. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  6737. IDWriteFactory3 *This,
  6738. IDWriteTypography **typography);
  6739. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  6740. IDWriteFactory3 *This,
  6741. IDWriteGdiInterop **gdi_interop);
  6742. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  6743. IDWriteFactory3 *This,
  6744. const WCHAR *string,
  6745. UINT32 len,
  6746. IDWriteTextFormat *format,
  6747. FLOAT max_width,
  6748. FLOAT max_height,
  6749. IDWriteTextLayout **layout);
  6750. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  6751. IDWriteFactory3 *This,
  6752. const WCHAR *string,
  6753. UINT32 len,
  6754. IDWriteTextFormat *format,
  6755. FLOAT layout_width,
  6756. FLOAT layout_height,
  6757. FLOAT pixels_per_dip,
  6758. const DWRITE_MATRIX *transform,
  6759. WINBOOL use_gdi_natural,
  6760. IDWriteTextLayout **layout);
  6761. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  6762. IDWriteFactory3 *This,
  6763. IDWriteTextFormat *format,
  6764. IDWriteInlineObject **trimming_sign);
  6765. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  6766. IDWriteFactory3 *This,
  6767. IDWriteTextAnalyzer **analyzer);
  6768. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  6769. IDWriteFactory3 *This,
  6770. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  6771. const WCHAR *locale,
  6772. WINBOOL ignore_user_override,
  6773. IDWriteNumberSubstitution **substitution);
  6774. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  6775. IDWriteFactory3 *This,
  6776. const DWRITE_GLYPH_RUN *glyph_run,
  6777. FLOAT pixels_per_dip,
  6778. const DWRITE_MATRIX *transform,
  6779. DWRITE_RENDERING_MODE rendering_mode,
  6780. DWRITE_MEASURING_MODE measuring_mode,
  6781. FLOAT baseline_x,
  6782. FLOAT baseline_y,
  6783. IDWriteGlyphRunAnalysis **analysis);
  6784. /*** IDWriteFactory1 methods ***/
  6785. HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  6786. IDWriteFactory3 *This,
  6787. IDWriteFontCollection **collection,
  6788. WINBOOL check_for_updates);
  6789. HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  6790. IDWriteFactory3 *This,
  6791. FLOAT gamma,
  6792. FLOAT enhcontrast,
  6793. FLOAT enhcontrast_grayscale,
  6794. FLOAT cleartype_level,
  6795. DWRITE_PIXEL_GEOMETRY geometry,
  6796. DWRITE_RENDERING_MODE mode,
  6797. IDWriteRenderingParams1 **params);
  6798. /*** IDWriteFactory2 methods ***/
  6799. HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  6800. IDWriteFactory3 *This,
  6801. IDWriteFontFallback **fallback);
  6802. HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  6803. IDWriteFactory3 *This,
  6804. IDWriteFontFallbackBuilder **fallbackbuilder);
  6805. HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  6806. IDWriteFactory3 *This,
  6807. FLOAT originX,
  6808. FLOAT originY,
  6809. const DWRITE_GLYPH_RUN *run,
  6810. const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  6811. DWRITE_MEASURING_MODE mode,
  6812. const DWRITE_MATRIX *transform,
  6813. UINT32 palette_index,
  6814. IDWriteColorGlyphRunEnumerator **colorlayers);
  6815. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  6816. IDWriteFactory3 *This,
  6817. FLOAT gamma,
  6818. FLOAT contrast,
  6819. FLOAT grayscalecontrast,
  6820. FLOAT cleartypeLevel,
  6821. DWRITE_PIXEL_GEOMETRY pixelGeometry,
  6822. DWRITE_RENDERING_MODE renderingMode,
  6823. DWRITE_GRID_FIT_MODE gridFitMode,
  6824. IDWriteRenderingParams2 **params);
  6825. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  6826. IDWriteFactory3 *This,
  6827. const DWRITE_GLYPH_RUN *run,
  6828. const DWRITE_MATRIX *transform,
  6829. DWRITE_RENDERING_MODE renderingMode,
  6830. DWRITE_MEASURING_MODE measuringMode,
  6831. DWRITE_GRID_FIT_MODE gridFitMode,
  6832. DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  6833. FLOAT originX,
  6834. FLOAT originY,
  6835. IDWriteGlyphRunAnalysis **analysis);
  6836. /*** IDWriteFactory3 methods ***/
  6837. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  6838. IDWriteFactory3 *This,
  6839. const DWRITE_GLYPH_RUN *run,
  6840. const DWRITE_MATRIX *transform,
  6841. DWRITE_RENDERING_MODE1 rendering_mode,
  6842. DWRITE_MEASURING_MODE measuring_mode,
  6843. DWRITE_GRID_FIT_MODE gridfit_mode,
  6844. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  6845. FLOAT origin_x,
  6846. FLOAT origin_y,
  6847. IDWriteGlyphRunAnalysis **analysis);
  6848. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  6849. IDWriteFactory3 *This,
  6850. FLOAT gamma,
  6851. FLOAT enhanced_contrast,
  6852. FLOAT grayscale_enhanced_contrast,
  6853. FLOAT cleartype_level,
  6854. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  6855. DWRITE_RENDERING_MODE1 rendering_mode,
  6856. DWRITE_GRID_FIT_MODE gridfit_mode,
  6857. IDWriteRenderingParams3 **params);
  6858. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  6859. IDWriteFactory3 *This,
  6860. IDWriteFontFile *file,
  6861. UINT32 index,
  6862. DWRITE_FONT_SIMULATIONS simulations,
  6863. IDWriteFontFaceReference **reference);
  6864. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  6865. IDWriteFactory3 *This,
  6866. const WCHAR *path,
  6867. const FILETIME *writetime,
  6868. UINT32 index,
  6869. DWRITE_FONT_SIMULATIONS simulations,
  6870. IDWriteFontFaceReference **reference);
  6871. HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  6872. IDWriteFactory3 *This,
  6873. IDWriteFontSet **fontset);
  6874. HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  6875. IDWriteFactory3 *This,
  6876. IDWriteFontSetBuilder **builder);
  6877. HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  6878. IDWriteFactory3 *This,
  6879. IDWriteFontSet *fontset,
  6880. IDWriteFontCollection1 **collection);
  6881. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  6882. IDWriteFactory3 *This,
  6883. WINBOOL include_downloadable,
  6884. IDWriteFontCollection1 **collection,
  6885. WINBOOL check_for_updates);
  6886. HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  6887. IDWriteFactory3 *This,
  6888. IDWriteFontDownloadQueue **queue);
  6889. END_INTERFACE
  6890. } IDWriteFactory3Vtbl;
  6891. interface IDWriteFactory3 {
  6892. CONST_VTBL IDWriteFactory3Vtbl* lpVtbl;
  6893. };
  6894. #ifdef COBJMACROS
  6895. #ifndef WIDL_C_INLINE_WRAPPERS
  6896. /*** IUnknown methods ***/
  6897. #define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  6898. #define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
  6899. #define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This)
  6900. /*** IDWriteFactory methods ***/
  6901. #define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  6902. #define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  6903. #define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  6904. #define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  6905. #define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  6906. #define IDWriteFactory3_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)
  6907. #define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  6908. #define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  6909. #define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  6910. #define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  6911. #define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  6912. #define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  6913. #define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  6914. #define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  6915. #define IDWriteFactory3_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)
  6916. #define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  6917. #define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  6918. #define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  6919. /*** IDWriteFactory1 methods ***/
  6920. #define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  6921. /*** IDWriteFactory2 methods ***/
  6922. #define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  6923. #define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  6924. #define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers)
  6925. /*** IDWriteFactory3 methods ***/
  6926. #define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  6927. #define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  6928. #define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  6929. #define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
  6930. #define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
  6931. #define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
  6932. #define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
  6933. #define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
  6934. #define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  6935. #else
  6936. /*** IUnknown methods ***/
  6937. static FORCEINLINE HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) {
  6938. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  6939. }
  6940. static FORCEINLINE ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) {
  6941. return This->lpVtbl->AddRef(This);
  6942. }
  6943. static FORCEINLINE ULONG IDWriteFactory3_Release(IDWriteFactory3* This) {
  6944. return This->lpVtbl->Release(This);
  6945. }
  6946. /*** IDWriteFactory methods ***/
  6947. static FORCEINLINE HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  6948. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  6949. }
  6950. static FORCEINLINE HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
  6951. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  6952. }
  6953. static FORCEINLINE HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
  6954. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  6955. }
  6956. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  6957. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  6958. }
  6959. static FORCEINLINE HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  6960. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  6961. }
  6962. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  6963. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  6964. }
  6965. static FORCEINLINE HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) {
  6966. return This->lpVtbl->CreateRenderingParams(This,params);
  6967. }
  6968. static FORCEINLINE HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  6969. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  6970. }
  6971. static FORCEINLINE HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
  6972. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  6973. }
  6974. static FORCEINLINE HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
  6975. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  6976. }
  6977. static FORCEINLINE HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* 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) {
  6978. return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  6979. }
  6980. static FORCEINLINE HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) {
  6981. return This->lpVtbl->CreateTypography(This,typography);
  6982. }
  6983. static FORCEINLINE HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) {
  6984. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  6985. }
  6986. static FORCEINLINE HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  6987. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  6988. }
  6989. static FORCEINLINE HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* 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) {
  6990. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  6991. }
  6992. static FORCEINLINE HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  6993. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  6994. }
  6995. static FORCEINLINE HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) {
  6996. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  6997. }
  6998. static FORCEINLINE HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  6999. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  7000. }
  7001. /*** IDWriteFactory1 methods ***/
  7002. static FORCEINLINE HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  7003. return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  7004. }
  7005. /*** IDWriteFactory2 methods ***/
  7006. static FORCEINLINE HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) {
  7007. return This->lpVtbl->GetSystemFontFallback(This,fallback);
  7008. }
  7009. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  7010. return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  7011. }
  7012. static FORCEINLINE HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) {
  7013. return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers);
  7014. }
  7015. /*** IDWriteFactory3 methods ***/
  7016. static FORCEINLINE HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  7017. return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  7018. }
  7019. static FORCEINLINE HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  7020. return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  7021. }
  7022. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  7023. return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  7024. }
  7025. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  7026. return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
  7027. }
  7028. static FORCEINLINE HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) {
  7029. return This->lpVtbl->GetSystemFontSet(This,fontset);
  7030. }
  7031. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) {
  7032. return This->lpVtbl->CreateFontSetBuilder(This,builder);
  7033. }
  7034. static FORCEINLINE HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
  7035. return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
  7036. }
  7037. static FORCEINLINE HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
  7038. return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
  7039. }
  7040. static FORCEINLINE HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) {
  7041. return This->lpVtbl->GetFontDownloadQueue(This,queue);
  7042. }
  7043. #endif
  7044. #endif
  7045. #endif
  7046. #endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */
  7047. typedef struct DWRITE_GLYPH_IMAGE_DATA {
  7048. const void *imageData;
  7049. UINT32 imageDataSize;
  7050. UINT32 uniqueDataId;
  7051. UINT32 pixelsPerEm;
  7052. D2D1_SIZE_U pixelSize;
  7053. D2D1_POINT_2L horizontalLeftOrigin;
  7054. D2D1_POINT_2L horizontalRightOrigin;
  7055. D2D1_POINT_2L verticalTopOrigin;
  7056. D2D1_POINT_2L verticalBottomOrigin;
  7057. } DWRITE_GLYPH_IMAGE_DATA;
  7058. /*****************************************************************************
  7059. * IDWriteFontFace4 interface
  7060. */
  7061. #ifndef __IDWriteFontFace4_INTERFACE_DEFINED__
  7062. #define __IDWriteFontFace4_INTERFACE_DEFINED__
  7063. DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f);
  7064. #if defined(__cplusplus) && !defined(CINTERFACE)
  7065. MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f")
  7066. IDWriteFontFace4 : public IDWriteFontFace3
  7067. {
  7068. virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_(
  7069. UINT16 glyph,
  7070. UINT32 ppem_first,
  7071. UINT32 ppem_last,
  7072. DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0;
  7073. virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats(
  7074. ) = 0;
  7075. virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData(
  7076. UINT16 glyph,
  7077. UINT32 ppem,
  7078. DWRITE_GLYPH_IMAGE_FORMATS format,
  7079. DWRITE_GLYPH_IMAGE_DATA *data,
  7080. void **context) = 0;
  7081. virtual void STDMETHODCALLTYPE ReleaseGlyphImageData(
  7082. void *context) = 0;
  7083. };
  7084. #ifdef __CRT_UUID_DECL
  7085. __CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f)
  7086. #endif
  7087. #else
  7088. typedef struct IDWriteFontFace4Vtbl {
  7089. BEGIN_INTERFACE
  7090. /*** IUnknown methods ***/
  7091. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  7092. IDWriteFontFace4 *This,
  7093. REFIID riid,
  7094. void **ppvObject);
  7095. ULONG (STDMETHODCALLTYPE *AddRef)(
  7096. IDWriteFontFace4 *This);
  7097. ULONG (STDMETHODCALLTYPE *Release)(
  7098. IDWriteFontFace4 *This);
  7099. /*** IDWriteFontFace methods ***/
  7100. DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
  7101. IDWriteFontFace4 *This);
  7102. HRESULT (STDMETHODCALLTYPE *GetFiles)(
  7103. IDWriteFontFace4 *This,
  7104. UINT32 *number_of_files,
  7105. IDWriteFontFile **fontfiles);
  7106. UINT32 (STDMETHODCALLTYPE *GetIndex)(
  7107. IDWriteFontFace4 *This);
  7108. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  7109. IDWriteFontFace4 *This);
  7110. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  7111. IDWriteFontFace4 *This);
  7112. void (STDMETHODCALLTYPE *GetMetrics)(
  7113. IDWriteFontFace4 *This,
  7114. DWRITE_FONT_METRICS *metrics);
  7115. UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
  7116. IDWriteFontFace4 *This);
  7117. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
  7118. IDWriteFontFace4 *This,
  7119. const UINT16 *glyph_indices,
  7120. UINT32 glyph_count,
  7121. DWRITE_GLYPH_METRICS *metrics,
  7122. WINBOOL is_sideways);
  7123. HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
  7124. IDWriteFontFace4 *This,
  7125. const UINT32 *codepoints,
  7126. UINT32 count,
  7127. UINT16 *glyph_indices);
  7128. HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
  7129. IDWriteFontFace4 *This,
  7130. UINT32 table_tag,
  7131. const void **table_data,
  7132. UINT32 *table_size,
  7133. void **context,
  7134. WINBOOL *exists);
  7135. void (STDMETHODCALLTYPE *ReleaseFontTable)(
  7136. IDWriteFontFace4 *This,
  7137. void *table_context);
  7138. HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
  7139. IDWriteFontFace4 *This,
  7140. FLOAT emSize,
  7141. const UINT16 *glyph_indices,
  7142. const FLOAT *glyph_advances,
  7143. const DWRITE_GLYPH_OFFSET *glyph_offsets,
  7144. UINT32 glyph_count,
  7145. WINBOOL is_sideways,
  7146. WINBOOL is_rtl,
  7147. IDWriteGeometrySink *geometrysink);
  7148. HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
  7149. IDWriteFontFace4 *This,
  7150. FLOAT emSize,
  7151. FLOAT pixels_per_dip,
  7152. DWRITE_MEASURING_MODE mode,
  7153. IDWriteRenderingParams *params,
  7154. DWRITE_RENDERING_MODE *rendering_mode);
  7155. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
  7156. IDWriteFontFace4 *This,
  7157. FLOAT emSize,
  7158. FLOAT pixels_per_dip,
  7159. const DWRITE_MATRIX *transform,
  7160. DWRITE_FONT_METRICS *metrics);
  7161. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
  7162. IDWriteFontFace4 *This,
  7163. FLOAT emSize,
  7164. FLOAT pixels_per_dip,
  7165. const DWRITE_MATRIX *transform,
  7166. WINBOOL use_gdi_natural,
  7167. const UINT16 *glyph_indices,
  7168. UINT32 glyph_count,
  7169. DWRITE_GLYPH_METRICS *metrics,
  7170. WINBOOL is_sideways);
  7171. /*** IDWriteFontFace1 methods ***/
  7172. void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
  7173. IDWriteFontFace4 *This,
  7174. DWRITE_FONT_METRICS1 *metrics);
  7175. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
  7176. IDWriteFontFace4 *This,
  7177. FLOAT em_size,
  7178. FLOAT pixels_per_dip,
  7179. const DWRITE_MATRIX *transform,
  7180. DWRITE_FONT_METRICS1 *metrics);
  7181. void (STDMETHODCALLTYPE *GetCaretMetrics)(
  7182. IDWriteFontFace4 *This,
  7183. DWRITE_CARET_METRICS *metrics);
  7184. HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  7185. IDWriteFontFace4 *This,
  7186. UINT32 max_count,
  7187. DWRITE_UNICODE_RANGE *ranges,
  7188. UINT32 *count);
  7189. WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  7190. IDWriteFontFace4 *This);
  7191. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
  7192. IDWriteFontFace4 *This,
  7193. UINT32 glyph_count,
  7194. const UINT16 *indices,
  7195. INT32 *advances,
  7196. WINBOOL is_sideways);
  7197. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
  7198. IDWriteFontFace4 *This,
  7199. FLOAT em_size,
  7200. FLOAT pixels_per_dip,
  7201. const DWRITE_MATRIX *transform,
  7202. WINBOOL use_gdi_natural,
  7203. WINBOOL is_sideways,
  7204. UINT32 glyph_count,
  7205. const UINT16 *indices,
  7206. INT32 *advances);
  7207. HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
  7208. IDWriteFontFace4 *This,
  7209. UINT32 glyph_count,
  7210. const UINT16 *indices,
  7211. INT32 *adjustments);
  7212. WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
  7213. IDWriteFontFace4 *This);
  7214. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
  7215. IDWriteFontFace4 *This,
  7216. FLOAT font_emsize,
  7217. FLOAT dpiX,
  7218. FLOAT dpiY,
  7219. const DWRITE_MATRIX *transform,
  7220. WINBOOL is_sideways,
  7221. DWRITE_OUTLINE_THRESHOLD threshold,
  7222. DWRITE_MEASURING_MODE measuring_mode,
  7223. DWRITE_RENDERING_MODE *rendering_mode);
  7224. HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
  7225. IDWriteFontFace4 *This,
  7226. UINT32 glyph_count,
  7227. const UINT16 *nominal_indices,
  7228. UINT16 *vertical_indices);
  7229. WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
  7230. IDWriteFontFace4 *This);
  7231. /*** IDWriteFontFace2 methods ***/
  7232. WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  7233. IDWriteFontFace4 *This);
  7234. UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
  7235. IDWriteFontFace4 *This);
  7236. UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
  7237. IDWriteFontFace4 *This);
  7238. HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
  7239. IDWriteFontFace4 *This,
  7240. UINT32 palette_index,
  7241. UINT32 first_entry_index,
  7242. UINT32 entry_count,
  7243. DWRITE_COLOR_F *entries);
  7244. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
  7245. IDWriteFontFace4 *This,
  7246. FLOAT fontEmSize,
  7247. FLOAT dpiX,
  7248. FLOAT dpiY,
  7249. const DWRITE_MATRIX *transform,
  7250. WINBOOL is_sideways,
  7251. DWRITE_OUTLINE_THRESHOLD threshold,
  7252. DWRITE_MEASURING_MODE measuringmode,
  7253. IDWriteRenderingParams *params,
  7254. DWRITE_RENDERING_MODE *renderingmode,
  7255. DWRITE_GRID_FIT_MODE *gridfitmode);
  7256. /*** IDWriteFontFace3 methods ***/
  7257. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  7258. IDWriteFontFace4 *This,
  7259. IDWriteFontFaceReference **reference);
  7260. void (STDMETHODCALLTYPE *GetPanose)(
  7261. IDWriteFontFace4 *This,
  7262. DWRITE_PANOSE *panose);
  7263. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  7264. IDWriteFontFace4 *This);
  7265. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  7266. IDWriteFontFace4 *This);
  7267. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  7268. IDWriteFontFace4 *This);
  7269. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  7270. IDWriteFontFace4 *This,
  7271. IDWriteLocalizedStrings **names);
  7272. HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  7273. IDWriteFontFace4 *This,
  7274. IDWriteLocalizedStrings **names);
  7275. HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  7276. IDWriteFontFace4 *This,
  7277. DWRITE_INFORMATIONAL_STRING_ID stringid,
  7278. IDWriteLocalizedStrings **strings,
  7279. WINBOOL *exists);
  7280. WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
  7281. IDWriteFontFace4 *This,
  7282. UINT32 character);
  7283. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
  7284. IDWriteFontFace4 *This,
  7285. FLOAT emsize,
  7286. FLOAT dpi_x,
  7287. FLOAT dpi_y,
  7288. const DWRITE_MATRIX *transform,
  7289. WINBOOL is_sideways,
  7290. DWRITE_OUTLINE_THRESHOLD threshold,
  7291. DWRITE_MEASURING_MODE measuring_mode,
  7292. IDWriteRenderingParams *params,
  7293. DWRITE_RENDERING_MODE1 *rendering_mode,
  7294. DWRITE_GRID_FIT_MODE *gridfit_mode);
  7295. WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
  7296. IDWriteFontFace4 *This,
  7297. UINT32 character);
  7298. WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
  7299. IDWriteFontFace4 *This,
  7300. UINT16 glyph);
  7301. HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
  7302. IDWriteFontFace4 *This,
  7303. const WCHAR *characters,
  7304. UINT32 count,
  7305. WINBOOL enqueue_if_not,
  7306. WINBOOL *are_local);
  7307. HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
  7308. IDWriteFontFace4 *This,
  7309. const UINT16 *glyphs,
  7310. UINT32 count,
  7311. WINBOOL enqueue_if_not,
  7312. WINBOOL *are_local);
  7313. /*** IDWriteFontFace4 methods ***/
  7314. HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
  7315. IDWriteFontFace4 *This,
  7316. UINT16 glyph,
  7317. UINT32 ppem_first,
  7318. UINT32 ppem_last,
  7319. DWRITE_GLYPH_IMAGE_FORMATS *formats);
  7320. DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
  7321. IDWriteFontFace4 *This);
  7322. HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
  7323. IDWriteFontFace4 *This,
  7324. UINT16 glyph,
  7325. UINT32 ppem,
  7326. DWRITE_GLYPH_IMAGE_FORMATS format,
  7327. DWRITE_GLYPH_IMAGE_DATA *data,
  7328. void **context);
  7329. void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
  7330. IDWriteFontFace4 *This,
  7331. void *context);
  7332. END_INTERFACE
  7333. } IDWriteFontFace4Vtbl;
  7334. interface IDWriteFontFace4 {
  7335. CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl;
  7336. };
  7337. #ifdef COBJMACROS
  7338. #ifndef WIDL_C_INLINE_WRAPPERS
  7339. /*** IUnknown methods ***/
  7340. #define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  7341. #define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This)
  7342. #define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This)
  7343. /*** IDWriteFontFace methods ***/
  7344. #define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This)
  7345. #define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  7346. #define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  7347. #define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  7348. #define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  7349. #define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  7350. #define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  7351. #define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  7352. #define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  7353. #define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  7354. #define IDWriteFontFace4_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)
  7355. #define IDWriteFontFace4_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)
  7356. /*** IDWriteFontFace1 methods ***/
  7357. #define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
  7358. #define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
  7359. #define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
  7360. #define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  7361. #define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  7362. #define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
  7363. #define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
  7364. #define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
  7365. #define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
  7366. #define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
  7367. #define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
  7368. /*** IDWriteFontFace2 methods ***/
  7369. #define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  7370. #define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
  7371. #define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
  7372. #define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
  7373. /*** IDWriteFontFace3 methods ***/
  7374. #define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  7375. #define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  7376. #define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  7377. #define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  7378. #define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  7379. #define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  7380. #define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
  7381. #define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  7382. #define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
  7383. #define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
  7384. #define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
  7385. #define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
  7386. #define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
  7387. #define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
  7388. /*** IDWriteFontFace4 methods ***/
  7389. #define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
  7390. #define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
  7391. #define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
  7392. #define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
  7393. #else
  7394. /*** IUnknown methods ***/
  7395. static FORCEINLINE HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) {
  7396. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  7397. }
  7398. static FORCEINLINE ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) {
  7399. return This->lpVtbl->AddRef(This);
  7400. }
  7401. static FORCEINLINE ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) {
  7402. return This->lpVtbl->Release(This);
  7403. }
  7404. /*** IDWriteFontFace methods ***/
  7405. static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) {
  7406. return This->lpVtbl->GetType(This);
  7407. }
  7408. static FORCEINLINE HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  7409. return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  7410. }
  7411. static FORCEINLINE UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) {
  7412. return This->lpVtbl->GetIndex(This);
  7413. }
  7414. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) {
  7415. return This->lpVtbl->GetSimulations(This);
  7416. }
  7417. static FORCEINLINE WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) {
  7418. return This->lpVtbl->IsSymbolFont(This);
  7419. }
  7420. static FORCEINLINE UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) {
  7421. return This->lpVtbl->GetGlyphCount(This);
  7422. }
  7423. static FORCEINLINE HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  7424. return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  7425. }
  7426. static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  7427. return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  7428. }
  7429. static FORCEINLINE HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  7430. return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  7431. }
  7432. static FORCEINLINE void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) {
  7433. This->lpVtbl->ReleaseFontTable(This,table_context);
  7434. }
  7435. static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* 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) {
  7436. return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  7437. }
  7438. static FORCEINLINE HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* 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) {
  7439. return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  7440. }
  7441. /*** IDWriteFontFace1 methods ***/
  7442. static FORCEINLINE void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) {
  7443. This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
  7444. }
  7445. static FORCEINLINE HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
  7446. return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
  7447. }
  7448. static FORCEINLINE void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) {
  7449. This->lpVtbl->GetCaretMetrics(This,metrics);
  7450. }
  7451. static FORCEINLINE HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  7452. return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  7453. }
  7454. static FORCEINLINE WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) {
  7455. return This->lpVtbl->IsMonospacedFont(This);
  7456. }
  7457. static FORCEINLINE HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
  7458. return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
  7459. }
  7460. static FORCEINLINE HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
  7461. return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
  7462. }
  7463. static FORCEINLINE HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
  7464. return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
  7465. }
  7466. static FORCEINLINE WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) {
  7467. return This->lpVtbl->HasKerningPairs(This);
  7468. }
  7469. static FORCEINLINE HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
  7470. return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
  7471. }
  7472. static FORCEINLINE WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) {
  7473. return This->lpVtbl->HasVerticalGlyphVariants(This);
  7474. }
  7475. /*** IDWriteFontFace2 methods ***/
  7476. static FORCEINLINE WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) {
  7477. return This->lpVtbl->IsColorFont(This);
  7478. }
  7479. static FORCEINLINE UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) {
  7480. return This->lpVtbl->GetColorPaletteCount(This);
  7481. }
  7482. static FORCEINLINE UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) {
  7483. return This->lpVtbl->GetPaletteEntryCount(This);
  7484. }
  7485. static FORCEINLINE HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
  7486. return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
  7487. }
  7488. /*** IDWriteFontFace3 methods ***/
  7489. static FORCEINLINE HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) {
  7490. return This->lpVtbl->GetFontFaceReference(This,reference);
  7491. }
  7492. static FORCEINLINE void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) {
  7493. This->lpVtbl->GetPanose(This,panose);
  7494. }
  7495. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) {
  7496. return This->lpVtbl->GetWeight(This);
  7497. }
  7498. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) {
  7499. return This->lpVtbl->GetStretch(This);
  7500. }
  7501. static FORCEINLINE DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) {
  7502. return This->lpVtbl->GetStyle(This);
  7503. }
  7504. static FORCEINLINE HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
  7505. return This->lpVtbl->GetFamilyNames(This,names);
  7506. }
  7507. static FORCEINLINE HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
  7508. return This->lpVtbl->GetFaceNames(This,names);
  7509. }
  7510. static FORCEINLINE HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  7511. return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  7512. }
  7513. static FORCEINLINE WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) {
  7514. return This->lpVtbl->HasCharacter(This,character);
  7515. }
  7516. static FORCEINLINE HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
  7517. return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
  7518. }
  7519. static FORCEINLINE WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) {
  7520. return This->lpVtbl->IsCharacterLocal(This,character);
  7521. }
  7522. static FORCEINLINE WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) {
  7523. return This->lpVtbl->IsGlyphLocal(This,glyph);
  7524. }
  7525. static FORCEINLINE HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  7526. return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
  7527. }
  7528. static FORCEINLINE HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  7529. return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
  7530. }
  7531. /*** IDWriteFontFace4 methods ***/
  7532. static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
  7533. return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
  7534. }
  7535. static FORCEINLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
  7536. return This->lpVtbl->GetGlyphImageFormats(This);
  7537. }
  7538. static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
  7539. return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
  7540. }
  7541. static FORCEINLINE void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) {
  7542. This->lpVtbl->ReleaseGlyphImageData(This,context);
  7543. }
  7544. #endif
  7545. #endif
  7546. #endif
  7547. #endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */
  7548. /*****************************************************************************
  7549. * IDWriteFontFace5 interface
  7550. */
  7551. #ifndef __IDWriteFontFace5_INTERFACE_DEFINED__
  7552. #define __IDWriteFontFace5_INTERFACE_DEFINED__
  7553. DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29);
  7554. #if defined(__cplusplus) && !defined(CINTERFACE)
  7555. MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29")
  7556. IDWriteFontFace5 : public IDWriteFontFace4
  7557. {
  7558. virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
  7559. ) = 0;
  7560. virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
  7561. DWRITE_FONT_AXIS_VALUE *values,
  7562. UINT32 value_count) = 0;
  7563. virtual WINBOOL STDMETHODCALLTYPE HasVariations(
  7564. ) = 0;
  7565. virtual HRESULT STDMETHODCALLTYPE GetFontResource(
  7566. IDWriteFontResource **resource) = 0;
  7567. virtual WINBOOL STDMETHODCALLTYPE Equals(
  7568. IDWriteFontFace *fontface) = 0;
  7569. };
  7570. #ifdef __CRT_UUID_DECL
  7571. __CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29)
  7572. #endif
  7573. #else
  7574. typedef struct IDWriteFontFace5Vtbl {
  7575. BEGIN_INTERFACE
  7576. /*** IUnknown methods ***/
  7577. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  7578. IDWriteFontFace5 *This,
  7579. REFIID riid,
  7580. void **ppvObject);
  7581. ULONG (STDMETHODCALLTYPE *AddRef)(
  7582. IDWriteFontFace5 *This);
  7583. ULONG (STDMETHODCALLTYPE *Release)(
  7584. IDWriteFontFace5 *This);
  7585. /*** IDWriteFontFace methods ***/
  7586. DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
  7587. IDWriteFontFace5 *This);
  7588. HRESULT (STDMETHODCALLTYPE *GetFiles)(
  7589. IDWriteFontFace5 *This,
  7590. UINT32 *number_of_files,
  7591. IDWriteFontFile **fontfiles);
  7592. UINT32 (STDMETHODCALLTYPE *GetIndex)(
  7593. IDWriteFontFace5 *This);
  7594. DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  7595. IDWriteFontFace5 *This);
  7596. WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  7597. IDWriteFontFace5 *This);
  7598. void (STDMETHODCALLTYPE *GetMetrics)(
  7599. IDWriteFontFace5 *This,
  7600. DWRITE_FONT_METRICS *metrics);
  7601. UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
  7602. IDWriteFontFace5 *This);
  7603. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
  7604. IDWriteFontFace5 *This,
  7605. const UINT16 *glyph_indices,
  7606. UINT32 glyph_count,
  7607. DWRITE_GLYPH_METRICS *metrics,
  7608. WINBOOL is_sideways);
  7609. HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
  7610. IDWriteFontFace5 *This,
  7611. const UINT32 *codepoints,
  7612. UINT32 count,
  7613. UINT16 *glyph_indices);
  7614. HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
  7615. IDWriteFontFace5 *This,
  7616. UINT32 table_tag,
  7617. const void **table_data,
  7618. UINT32 *table_size,
  7619. void **context,
  7620. WINBOOL *exists);
  7621. void (STDMETHODCALLTYPE *ReleaseFontTable)(
  7622. IDWriteFontFace5 *This,
  7623. void *table_context);
  7624. HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
  7625. IDWriteFontFace5 *This,
  7626. FLOAT emSize,
  7627. const UINT16 *glyph_indices,
  7628. const FLOAT *glyph_advances,
  7629. const DWRITE_GLYPH_OFFSET *glyph_offsets,
  7630. UINT32 glyph_count,
  7631. WINBOOL is_sideways,
  7632. WINBOOL is_rtl,
  7633. IDWriteGeometrySink *geometrysink);
  7634. HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
  7635. IDWriteFontFace5 *This,
  7636. FLOAT emSize,
  7637. FLOAT pixels_per_dip,
  7638. DWRITE_MEASURING_MODE mode,
  7639. IDWriteRenderingParams *params,
  7640. DWRITE_RENDERING_MODE *rendering_mode);
  7641. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
  7642. IDWriteFontFace5 *This,
  7643. FLOAT emSize,
  7644. FLOAT pixels_per_dip,
  7645. const DWRITE_MATRIX *transform,
  7646. DWRITE_FONT_METRICS *metrics);
  7647. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
  7648. IDWriteFontFace5 *This,
  7649. FLOAT emSize,
  7650. FLOAT pixels_per_dip,
  7651. const DWRITE_MATRIX *transform,
  7652. WINBOOL use_gdi_natural,
  7653. const UINT16 *glyph_indices,
  7654. UINT32 glyph_count,
  7655. DWRITE_GLYPH_METRICS *metrics,
  7656. WINBOOL is_sideways);
  7657. /*** IDWriteFontFace1 methods ***/
  7658. void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
  7659. IDWriteFontFace5 *This,
  7660. DWRITE_FONT_METRICS1 *metrics);
  7661. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
  7662. IDWriteFontFace5 *This,
  7663. FLOAT em_size,
  7664. FLOAT pixels_per_dip,
  7665. const DWRITE_MATRIX *transform,
  7666. DWRITE_FONT_METRICS1 *metrics);
  7667. void (STDMETHODCALLTYPE *GetCaretMetrics)(
  7668. IDWriteFontFace5 *This,
  7669. DWRITE_CARET_METRICS *metrics);
  7670. HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  7671. IDWriteFontFace5 *This,
  7672. UINT32 max_count,
  7673. DWRITE_UNICODE_RANGE *ranges,
  7674. UINT32 *count);
  7675. WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  7676. IDWriteFontFace5 *This);
  7677. HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
  7678. IDWriteFontFace5 *This,
  7679. UINT32 glyph_count,
  7680. const UINT16 *indices,
  7681. INT32 *advances,
  7682. WINBOOL is_sideways);
  7683. HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
  7684. IDWriteFontFace5 *This,
  7685. FLOAT em_size,
  7686. FLOAT pixels_per_dip,
  7687. const DWRITE_MATRIX *transform,
  7688. WINBOOL use_gdi_natural,
  7689. WINBOOL is_sideways,
  7690. UINT32 glyph_count,
  7691. const UINT16 *indices,
  7692. INT32 *advances);
  7693. HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
  7694. IDWriteFontFace5 *This,
  7695. UINT32 glyph_count,
  7696. const UINT16 *indices,
  7697. INT32 *adjustments);
  7698. WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
  7699. IDWriteFontFace5 *This);
  7700. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
  7701. IDWriteFontFace5 *This,
  7702. FLOAT font_emsize,
  7703. FLOAT dpiX,
  7704. FLOAT dpiY,
  7705. const DWRITE_MATRIX *transform,
  7706. WINBOOL is_sideways,
  7707. DWRITE_OUTLINE_THRESHOLD threshold,
  7708. DWRITE_MEASURING_MODE measuring_mode,
  7709. DWRITE_RENDERING_MODE *rendering_mode);
  7710. HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
  7711. IDWriteFontFace5 *This,
  7712. UINT32 glyph_count,
  7713. const UINT16 *nominal_indices,
  7714. UINT16 *vertical_indices);
  7715. WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
  7716. IDWriteFontFace5 *This);
  7717. /*** IDWriteFontFace2 methods ***/
  7718. WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  7719. IDWriteFontFace5 *This);
  7720. UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
  7721. IDWriteFontFace5 *This);
  7722. UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
  7723. IDWriteFontFace5 *This);
  7724. HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
  7725. IDWriteFontFace5 *This,
  7726. UINT32 palette_index,
  7727. UINT32 first_entry_index,
  7728. UINT32 entry_count,
  7729. DWRITE_COLOR_F *entries);
  7730. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
  7731. IDWriteFontFace5 *This,
  7732. FLOAT fontEmSize,
  7733. FLOAT dpiX,
  7734. FLOAT dpiY,
  7735. const DWRITE_MATRIX *transform,
  7736. WINBOOL is_sideways,
  7737. DWRITE_OUTLINE_THRESHOLD threshold,
  7738. DWRITE_MEASURING_MODE measuringmode,
  7739. IDWriteRenderingParams *params,
  7740. DWRITE_RENDERING_MODE *renderingmode,
  7741. DWRITE_GRID_FIT_MODE *gridfitmode);
  7742. /*** IDWriteFontFace3 methods ***/
  7743. HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  7744. IDWriteFontFace5 *This,
  7745. IDWriteFontFaceReference **reference);
  7746. void (STDMETHODCALLTYPE *GetPanose)(
  7747. IDWriteFontFace5 *This,
  7748. DWRITE_PANOSE *panose);
  7749. DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  7750. IDWriteFontFace5 *This);
  7751. DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  7752. IDWriteFontFace5 *This);
  7753. DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  7754. IDWriteFontFace5 *This);
  7755. HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  7756. IDWriteFontFace5 *This,
  7757. IDWriteLocalizedStrings **names);
  7758. HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  7759. IDWriteFontFace5 *This,
  7760. IDWriteLocalizedStrings **names);
  7761. HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  7762. IDWriteFontFace5 *This,
  7763. DWRITE_INFORMATIONAL_STRING_ID stringid,
  7764. IDWriteLocalizedStrings **strings,
  7765. WINBOOL *exists);
  7766. WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
  7767. IDWriteFontFace5 *This,
  7768. UINT32 character);
  7769. HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
  7770. IDWriteFontFace5 *This,
  7771. FLOAT emsize,
  7772. FLOAT dpi_x,
  7773. FLOAT dpi_y,
  7774. const DWRITE_MATRIX *transform,
  7775. WINBOOL is_sideways,
  7776. DWRITE_OUTLINE_THRESHOLD threshold,
  7777. DWRITE_MEASURING_MODE measuring_mode,
  7778. IDWriteRenderingParams *params,
  7779. DWRITE_RENDERING_MODE1 *rendering_mode,
  7780. DWRITE_GRID_FIT_MODE *gridfit_mode);
  7781. WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
  7782. IDWriteFontFace5 *This,
  7783. UINT32 character);
  7784. WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
  7785. IDWriteFontFace5 *This,
  7786. UINT16 glyph);
  7787. HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
  7788. IDWriteFontFace5 *This,
  7789. const WCHAR *characters,
  7790. UINT32 count,
  7791. WINBOOL enqueue_if_not,
  7792. WINBOOL *are_local);
  7793. HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
  7794. IDWriteFontFace5 *This,
  7795. const UINT16 *glyphs,
  7796. UINT32 count,
  7797. WINBOOL enqueue_if_not,
  7798. WINBOOL *are_local);
  7799. /*** IDWriteFontFace4 methods ***/
  7800. HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
  7801. IDWriteFontFace5 *This,
  7802. UINT16 glyph,
  7803. UINT32 ppem_first,
  7804. UINT32 ppem_last,
  7805. DWRITE_GLYPH_IMAGE_FORMATS *formats);
  7806. DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
  7807. IDWriteFontFace5 *This);
  7808. HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
  7809. IDWriteFontFace5 *This,
  7810. UINT16 glyph,
  7811. UINT32 ppem,
  7812. DWRITE_GLYPH_IMAGE_FORMATS format,
  7813. DWRITE_GLYPH_IMAGE_DATA *data,
  7814. void **context);
  7815. void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
  7816. IDWriteFontFace5 *This,
  7817. void *context);
  7818. /*** IDWriteFontFace5 methods ***/
  7819. UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  7820. IDWriteFontFace5 *This);
  7821. HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  7822. IDWriteFontFace5 *This,
  7823. DWRITE_FONT_AXIS_VALUE *values,
  7824. UINT32 value_count);
  7825. WINBOOL (STDMETHODCALLTYPE *HasVariations)(
  7826. IDWriteFontFace5 *This);
  7827. HRESULT (STDMETHODCALLTYPE *GetFontResource)(
  7828. IDWriteFontFace5 *This,
  7829. IDWriteFontResource **resource);
  7830. WINBOOL (STDMETHODCALLTYPE *Equals)(
  7831. IDWriteFontFace5 *This,
  7832. IDWriteFontFace *fontface);
  7833. END_INTERFACE
  7834. } IDWriteFontFace5Vtbl;
  7835. interface IDWriteFontFace5 {
  7836. CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl;
  7837. };
  7838. #ifdef COBJMACROS
  7839. #ifndef WIDL_C_INLINE_WRAPPERS
  7840. /*** IUnknown methods ***/
  7841. #define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  7842. #define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This)
  7843. #define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This)
  7844. /*** IDWriteFontFace methods ***/
  7845. #define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This)
  7846. #define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  7847. #define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  7848. #define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  7849. #define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  7850. #define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  7851. #define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  7852. #define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  7853. #define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  7854. #define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  7855. #define IDWriteFontFace5_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)
  7856. #define IDWriteFontFace5_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)
  7857. /*** IDWriteFontFace1 methods ***/
  7858. #define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
  7859. #define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
  7860. #define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
  7861. #define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  7862. #define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  7863. #define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
  7864. #define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
  7865. #define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
  7866. #define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
  7867. #define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
  7868. #define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
  7869. /*** IDWriteFontFace2 methods ***/
  7870. #define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  7871. #define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
  7872. #define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
  7873. #define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
  7874. /*** IDWriteFontFace3 methods ***/
  7875. #define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  7876. #define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  7877. #define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  7878. #define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  7879. #define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  7880. #define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
  7881. #define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
  7882. #define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  7883. #define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
  7884. #define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
  7885. #define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
  7886. #define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
  7887. #define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
  7888. #define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
  7889. /*** IDWriteFontFace4 methods ***/
  7890. #define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
  7891. #define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
  7892. #define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
  7893. #define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
  7894. /*** IDWriteFontFace5 methods ***/
  7895. #define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
  7896. #define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
  7897. #define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This)
  7898. #define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
  7899. #define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
  7900. #else
  7901. /*** IUnknown methods ***/
  7902. static FORCEINLINE HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) {
  7903. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  7904. }
  7905. static FORCEINLINE ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) {
  7906. return This->lpVtbl->AddRef(This);
  7907. }
  7908. static FORCEINLINE ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) {
  7909. return This->lpVtbl->Release(This);
  7910. }
  7911. /*** IDWriteFontFace methods ***/
  7912. static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) {
  7913. return This->lpVtbl->GetType(This);
  7914. }
  7915. static FORCEINLINE HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  7916. return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  7917. }
  7918. static FORCEINLINE UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) {
  7919. return This->lpVtbl->GetIndex(This);
  7920. }
  7921. static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) {
  7922. return This->lpVtbl->GetSimulations(This);
  7923. }
  7924. static FORCEINLINE WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) {
  7925. return This->lpVtbl->IsSymbolFont(This);
  7926. }
  7927. static FORCEINLINE UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) {
  7928. return This->lpVtbl->GetGlyphCount(This);
  7929. }
  7930. static FORCEINLINE HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  7931. return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  7932. }
  7933. static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  7934. return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  7935. }
  7936. static FORCEINLINE HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  7937. return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  7938. }
  7939. static FORCEINLINE void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) {
  7940. This->lpVtbl->ReleaseFontTable(This,table_context);
  7941. }
  7942. static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* 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) {
  7943. return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  7944. }
  7945. static FORCEINLINE HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* 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) {
  7946. return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  7947. }
  7948. /*** IDWriteFontFace1 methods ***/
  7949. static FORCEINLINE void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) {
  7950. This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
  7951. }
  7952. static FORCEINLINE HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
  7953. return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
  7954. }
  7955. static FORCEINLINE void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) {
  7956. This->lpVtbl->GetCaretMetrics(This,metrics);
  7957. }
  7958. static FORCEINLINE HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  7959. return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  7960. }
  7961. static FORCEINLINE WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) {
  7962. return This->lpVtbl->IsMonospacedFont(This);
  7963. }
  7964. static FORCEINLINE HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
  7965. return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
  7966. }
  7967. static FORCEINLINE HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
  7968. return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
  7969. }
  7970. static FORCEINLINE HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
  7971. return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
  7972. }
  7973. static FORCEINLINE WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) {
  7974. return This->lpVtbl->HasKerningPairs(This);
  7975. }
  7976. static FORCEINLINE HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
  7977. return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
  7978. }
  7979. static FORCEINLINE WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) {
  7980. return This->lpVtbl->HasVerticalGlyphVariants(This);
  7981. }
  7982. /*** IDWriteFontFace2 methods ***/
  7983. static FORCEINLINE WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) {
  7984. return This->lpVtbl->IsColorFont(This);
  7985. }
  7986. static FORCEINLINE UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) {
  7987. return This->lpVtbl->GetColorPaletteCount(This);
  7988. }
  7989. static FORCEINLINE UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) {
  7990. return This->lpVtbl->GetPaletteEntryCount(This);
  7991. }
  7992. static FORCEINLINE HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
  7993. return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
  7994. }
  7995. /*** IDWriteFontFace3 methods ***/
  7996. static FORCEINLINE HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) {
  7997. return This->lpVtbl->GetFontFaceReference(This,reference);
  7998. }
  7999. static FORCEINLINE void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) {
  8000. This->lpVtbl->GetPanose(This,panose);
  8001. }
  8002. static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) {
  8003. return This->lpVtbl->GetWeight(This);
  8004. }
  8005. static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) {
  8006. return This->lpVtbl->GetStretch(This);
  8007. }
  8008. static FORCEINLINE DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) {
  8009. return This->lpVtbl->GetStyle(This);
  8010. }
  8011. static FORCEINLINE HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
  8012. return This->lpVtbl->GetFamilyNames(This,names);
  8013. }
  8014. static FORCEINLINE HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
  8015. return This->lpVtbl->GetFaceNames(This,names);
  8016. }
  8017. static FORCEINLINE HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  8018. return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  8019. }
  8020. static FORCEINLINE WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) {
  8021. return This->lpVtbl->HasCharacter(This,character);
  8022. }
  8023. static FORCEINLINE HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
  8024. return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
  8025. }
  8026. static FORCEINLINE WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) {
  8027. return This->lpVtbl->IsCharacterLocal(This,character);
  8028. }
  8029. static FORCEINLINE WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) {
  8030. return This->lpVtbl->IsGlyphLocal(This,glyph);
  8031. }
  8032. static FORCEINLINE HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  8033. return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
  8034. }
  8035. static FORCEINLINE HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  8036. return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
  8037. }
  8038. /*** IDWriteFontFace4 methods ***/
  8039. static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
  8040. return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
  8041. }
  8042. static FORCEINLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
  8043. return This->lpVtbl->GetGlyphImageFormats(This);
  8044. }
  8045. static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
  8046. return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
  8047. }
  8048. static FORCEINLINE void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) {
  8049. This->lpVtbl->ReleaseGlyphImageData(This,context);
  8050. }
  8051. /*** IDWriteFontFace5 methods ***/
  8052. static FORCEINLINE UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) {
  8053. return This->lpVtbl->GetFontAxisValueCount(This);
  8054. }
  8055. static FORCEINLINE HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
  8056. return This->lpVtbl->GetFontAxisValues(This,values,value_count);
  8057. }
  8058. static FORCEINLINE WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) {
  8059. return This->lpVtbl->HasVariations(This);
  8060. }
  8061. static FORCEINLINE HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) {
  8062. return This->lpVtbl->GetFontResource(This,resource);
  8063. }
  8064. static FORCEINLINE WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) {
  8065. return This->lpVtbl->Equals(This,fontface);
  8066. }
  8067. #endif
  8068. #endif
  8069. #endif
  8070. #endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */
  8071. typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1;
  8072. struct DWRITE_COLOR_GLYPH_RUN1
  8073. {
  8074. DWRITE_GLYPH_RUN glyphRun;
  8075. DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
  8076. FLOAT baselineOriginX;
  8077. FLOAT baselineOriginY;
  8078. DWRITE_COLOR_F runColor;
  8079. UINT16 paletteIndex;
  8080. #ifdef _WIN64
  8081. UINT32 _pad;
  8082. #endif
  8083. DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
  8084. DWRITE_MEASURING_MODE measuringMode;
  8085. };
  8086. /*****************************************************************************
  8087. * IDWriteColorGlyphRunEnumerator1 interface
  8088. */
  8089. #ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
  8090. #define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
  8091. DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35);
  8092. #if defined(__cplusplus) && !defined(CINTERFACE)
  8093. MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35")
  8094. IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
  8095. {
  8096. virtual HRESULT STDMETHODCALLTYPE GetCurrentRun(
  8097. const DWRITE_COLOR_GLYPH_RUN1 **run) = 0;
  8098. };
  8099. #ifdef __CRT_UUID_DECL
  8100. __CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35)
  8101. #endif
  8102. #else
  8103. typedef struct IDWriteColorGlyphRunEnumerator1Vtbl {
  8104. BEGIN_INTERFACE
  8105. /*** IUnknown methods ***/
  8106. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8107. IDWriteColorGlyphRunEnumerator1 *This,
  8108. REFIID riid,
  8109. void **ppvObject);
  8110. ULONG (STDMETHODCALLTYPE *AddRef)(
  8111. IDWriteColorGlyphRunEnumerator1 *This);
  8112. ULONG (STDMETHODCALLTYPE *Release)(
  8113. IDWriteColorGlyphRunEnumerator1 *This);
  8114. /*** IDWriteColorGlyphRunEnumerator methods ***/
  8115. HRESULT (STDMETHODCALLTYPE *MoveNext)(
  8116. IDWriteColorGlyphRunEnumerator1 *This,
  8117. WINBOOL *hasRun);
  8118. HRESULT (STDMETHODCALLTYPE *GetCurrentRun)(
  8119. IDWriteColorGlyphRunEnumerator1 *This,
  8120. const DWRITE_COLOR_GLYPH_RUN **run);
  8121. /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  8122. HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)(
  8123. IDWriteColorGlyphRunEnumerator1 *This,
  8124. const DWRITE_COLOR_GLYPH_RUN1 **run);
  8125. END_INTERFACE
  8126. } IDWriteColorGlyphRunEnumerator1Vtbl;
  8127. interface IDWriteColorGlyphRunEnumerator1 {
  8128. CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl;
  8129. };
  8130. #ifdef COBJMACROS
  8131. #ifndef WIDL_C_INLINE_WRAPPERS
  8132. /*** IUnknown methods ***/
  8133. #define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  8134. #define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This)
  8135. #define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This)
  8136. /*** IDWriteColorGlyphRunEnumerator methods ***/
  8137. #define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun)
  8138. /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  8139. #define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run)
  8140. #else
  8141. /*** IUnknown methods ***/
  8142. static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) {
  8143. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  8144. }
  8145. static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) {
  8146. return This->lpVtbl->AddRef(This);
  8147. }
  8148. static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) {
  8149. return This->lpVtbl->Release(This);
  8150. }
  8151. /*** IDWriteColorGlyphRunEnumerator methods ***/
  8152. static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) {
  8153. return This->lpVtbl->MoveNext(This,hasRun);
  8154. }
  8155. /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  8156. static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) {
  8157. return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run);
  8158. }
  8159. #endif
  8160. #endif
  8161. #endif
  8162. #endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */
  8163. /*****************************************************************************
  8164. * IDWriteFactory4 interface
  8165. */
  8166. #ifndef __IDWriteFactory4_INTERFACE_DEFINED__
  8167. #define __IDWriteFactory4_INTERFACE_DEFINED__
  8168. DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56);
  8169. #if defined(__cplusplus) && !defined(CINTERFACE)
  8170. MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856")
  8171. IDWriteFactory4 : public IDWriteFactory3
  8172. {
  8173. virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
  8174. D2D1_POINT_2F baseline_origin,
  8175. const DWRITE_GLYPH_RUN *run,
  8176. const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  8177. DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  8178. DWRITE_MEASURING_MODE measuring_mode,
  8179. const DWRITE_MATRIX *transform,
  8180. UINT32 palette,
  8181. IDWriteColorGlyphRunEnumerator1 **layers) = 0;
  8182. virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_(
  8183. const DWRITE_GLYPH_RUN *run,
  8184. D2D1_POINT_2F baseline_origin,
  8185. D2D1_POINT_2F *origins) = 0;
  8186. virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins(
  8187. const DWRITE_GLYPH_RUN *run,
  8188. DWRITE_MEASURING_MODE measuring_mode,
  8189. D2D1_POINT_2F baseline_origin,
  8190. const DWRITE_MATRIX *transform,
  8191. D2D1_POINT_2F *origins) = 0;
  8192. };
  8193. #ifdef __CRT_UUID_DECL
  8194. __CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56)
  8195. #endif
  8196. #else
  8197. typedef struct IDWriteFactory4Vtbl {
  8198. BEGIN_INTERFACE
  8199. /*** IUnknown methods ***/
  8200. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8201. IDWriteFactory4 *This,
  8202. REFIID riid,
  8203. void **ppvObject);
  8204. ULONG (STDMETHODCALLTYPE *AddRef)(
  8205. IDWriteFactory4 *This);
  8206. ULONG (STDMETHODCALLTYPE *Release)(
  8207. IDWriteFactory4 *This);
  8208. /*** IDWriteFactory methods ***/
  8209. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  8210. IDWriteFactory4 *This,
  8211. IDWriteFontCollection **collection,
  8212. WINBOOL check_for_updates);
  8213. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  8214. IDWriteFactory4 *This,
  8215. IDWriteFontCollectionLoader *loader,
  8216. const void *key,
  8217. UINT32 key_size,
  8218. IDWriteFontCollection **collection);
  8219. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  8220. IDWriteFactory4 *This,
  8221. IDWriteFontCollectionLoader *loader);
  8222. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  8223. IDWriteFactory4 *This,
  8224. IDWriteFontCollectionLoader *loader);
  8225. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  8226. IDWriteFactory4 *This,
  8227. const WCHAR *path,
  8228. const FILETIME *writetime,
  8229. IDWriteFontFile **font_file);
  8230. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  8231. IDWriteFactory4 *This,
  8232. const void *reference_key,
  8233. UINT32 key_size,
  8234. IDWriteFontFileLoader *loader,
  8235. IDWriteFontFile **font_file);
  8236. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  8237. IDWriteFactory4 *This,
  8238. DWRITE_FONT_FACE_TYPE facetype,
  8239. UINT32 files_number,
  8240. IDWriteFontFile *const *font_files,
  8241. UINT32 index,
  8242. DWRITE_FONT_SIMULATIONS sim_flags,
  8243. IDWriteFontFace **font_face);
  8244. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  8245. IDWriteFactory4 *This,
  8246. IDWriteRenderingParams **params);
  8247. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  8248. IDWriteFactory4 *This,
  8249. HMONITOR monitor,
  8250. IDWriteRenderingParams **params);
  8251. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  8252. IDWriteFactory4 *This,
  8253. FLOAT gamma,
  8254. FLOAT enhancedContrast,
  8255. FLOAT cleartype_level,
  8256. DWRITE_PIXEL_GEOMETRY geometry,
  8257. DWRITE_RENDERING_MODE mode,
  8258. IDWriteRenderingParams **params);
  8259. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  8260. IDWriteFactory4 *This,
  8261. IDWriteFontFileLoader *loader);
  8262. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  8263. IDWriteFactory4 *This,
  8264. IDWriteFontFileLoader *loader);
  8265. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  8266. IDWriteFactory4 *This,
  8267. const WCHAR *family_name,
  8268. IDWriteFontCollection *collection,
  8269. DWRITE_FONT_WEIGHT weight,
  8270. DWRITE_FONT_STYLE style,
  8271. DWRITE_FONT_STRETCH stretch,
  8272. FLOAT size,
  8273. const WCHAR *locale,
  8274. IDWriteTextFormat **format);
  8275. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  8276. IDWriteFactory4 *This,
  8277. IDWriteTypography **typography);
  8278. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  8279. IDWriteFactory4 *This,
  8280. IDWriteGdiInterop **gdi_interop);
  8281. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  8282. IDWriteFactory4 *This,
  8283. const WCHAR *string,
  8284. UINT32 len,
  8285. IDWriteTextFormat *format,
  8286. FLOAT max_width,
  8287. FLOAT max_height,
  8288. IDWriteTextLayout **layout);
  8289. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  8290. IDWriteFactory4 *This,
  8291. const WCHAR *string,
  8292. UINT32 len,
  8293. IDWriteTextFormat *format,
  8294. FLOAT layout_width,
  8295. FLOAT layout_height,
  8296. FLOAT pixels_per_dip,
  8297. const DWRITE_MATRIX *transform,
  8298. WINBOOL use_gdi_natural,
  8299. IDWriteTextLayout **layout);
  8300. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  8301. IDWriteFactory4 *This,
  8302. IDWriteTextFormat *format,
  8303. IDWriteInlineObject **trimming_sign);
  8304. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  8305. IDWriteFactory4 *This,
  8306. IDWriteTextAnalyzer **analyzer);
  8307. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  8308. IDWriteFactory4 *This,
  8309. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  8310. const WCHAR *locale,
  8311. WINBOOL ignore_user_override,
  8312. IDWriteNumberSubstitution **substitution);
  8313. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  8314. IDWriteFactory4 *This,
  8315. const DWRITE_GLYPH_RUN *glyph_run,
  8316. FLOAT pixels_per_dip,
  8317. const DWRITE_MATRIX *transform,
  8318. DWRITE_RENDERING_MODE rendering_mode,
  8319. DWRITE_MEASURING_MODE measuring_mode,
  8320. FLOAT baseline_x,
  8321. FLOAT baseline_y,
  8322. IDWriteGlyphRunAnalysis **analysis);
  8323. /*** IDWriteFactory1 methods ***/
  8324. HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  8325. IDWriteFactory4 *This,
  8326. IDWriteFontCollection **collection,
  8327. WINBOOL check_for_updates);
  8328. HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  8329. IDWriteFactory4 *This,
  8330. FLOAT gamma,
  8331. FLOAT enhcontrast,
  8332. FLOAT enhcontrast_grayscale,
  8333. FLOAT cleartype_level,
  8334. DWRITE_PIXEL_GEOMETRY geometry,
  8335. DWRITE_RENDERING_MODE mode,
  8336. IDWriteRenderingParams1 **params);
  8337. /*** IDWriteFactory2 methods ***/
  8338. HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  8339. IDWriteFactory4 *This,
  8340. IDWriteFontFallback **fallback);
  8341. HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  8342. IDWriteFactory4 *This,
  8343. IDWriteFontFallbackBuilder **fallbackbuilder);
  8344. HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  8345. IDWriteFactory4 *This,
  8346. FLOAT originX,
  8347. FLOAT originY,
  8348. const DWRITE_GLYPH_RUN *run,
  8349. const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  8350. DWRITE_MEASURING_MODE mode,
  8351. const DWRITE_MATRIX *transform,
  8352. UINT32 palette_index,
  8353. IDWriteColorGlyphRunEnumerator **colorlayers);
  8354. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  8355. IDWriteFactory4 *This,
  8356. FLOAT gamma,
  8357. FLOAT contrast,
  8358. FLOAT grayscalecontrast,
  8359. FLOAT cleartypeLevel,
  8360. DWRITE_PIXEL_GEOMETRY pixelGeometry,
  8361. DWRITE_RENDERING_MODE renderingMode,
  8362. DWRITE_GRID_FIT_MODE gridFitMode,
  8363. IDWriteRenderingParams2 **params);
  8364. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  8365. IDWriteFactory4 *This,
  8366. const DWRITE_GLYPH_RUN *run,
  8367. const DWRITE_MATRIX *transform,
  8368. DWRITE_RENDERING_MODE renderingMode,
  8369. DWRITE_MEASURING_MODE measuringMode,
  8370. DWRITE_GRID_FIT_MODE gridFitMode,
  8371. DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  8372. FLOAT originX,
  8373. FLOAT originY,
  8374. IDWriteGlyphRunAnalysis **analysis);
  8375. /*** IDWriteFactory3 methods ***/
  8376. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  8377. IDWriteFactory4 *This,
  8378. const DWRITE_GLYPH_RUN *run,
  8379. const DWRITE_MATRIX *transform,
  8380. DWRITE_RENDERING_MODE1 rendering_mode,
  8381. DWRITE_MEASURING_MODE measuring_mode,
  8382. DWRITE_GRID_FIT_MODE gridfit_mode,
  8383. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  8384. FLOAT origin_x,
  8385. FLOAT origin_y,
  8386. IDWriteGlyphRunAnalysis **analysis);
  8387. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  8388. IDWriteFactory4 *This,
  8389. FLOAT gamma,
  8390. FLOAT enhanced_contrast,
  8391. FLOAT grayscale_enhanced_contrast,
  8392. FLOAT cleartype_level,
  8393. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  8394. DWRITE_RENDERING_MODE1 rendering_mode,
  8395. DWRITE_GRID_FIT_MODE gridfit_mode,
  8396. IDWriteRenderingParams3 **params);
  8397. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  8398. IDWriteFactory4 *This,
  8399. IDWriteFontFile *file,
  8400. UINT32 index,
  8401. DWRITE_FONT_SIMULATIONS simulations,
  8402. IDWriteFontFaceReference **reference);
  8403. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  8404. IDWriteFactory4 *This,
  8405. const WCHAR *path,
  8406. const FILETIME *writetime,
  8407. UINT32 index,
  8408. DWRITE_FONT_SIMULATIONS simulations,
  8409. IDWriteFontFaceReference **reference);
  8410. HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  8411. IDWriteFactory4 *This,
  8412. IDWriteFontSet **fontset);
  8413. HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  8414. IDWriteFactory4 *This,
  8415. IDWriteFontSetBuilder **builder);
  8416. HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  8417. IDWriteFactory4 *This,
  8418. IDWriteFontSet *fontset,
  8419. IDWriteFontCollection1 **collection);
  8420. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  8421. IDWriteFactory4 *This,
  8422. WINBOOL include_downloadable,
  8423. IDWriteFontCollection1 **collection,
  8424. WINBOOL check_for_updates);
  8425. HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  8426. IDWriteFactory4 *This,
  8427. IDWriteFontDownloadQueue **queue);
  8428. /*** IDWriteFactory4 methods ***/
  8429. HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  8430. IDWriteFactory4 *This,
  8431. D2D1_POINT_2F baseline_origin,
  8432. const DWRITE_GLYPH_RUN *run,
  8433. const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  8434. DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  8435. DWRITE_MEASURING_MODE measuring_mode,
  8436. const DWRITE_MATRIX *transform,
  8437. UINT32 palette,
  8438. IDWriteColorGlyphRunEnumerator1 **layers);
  8439. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  8440. IDWriteFactory4 *This,
  8441. const DWRITE_GLYPH_RUN *run,
  8442. D2D1_POINT_2F baseline_origin,
  8443. D2D1_POINT_2F *origins);
  8444. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  8445. IDWriteFactory4 *This,
  8446. const DWRITE_GLYPH_RUN *run,
  8447. DWRITE_MEASURING_MODE measuring_mode,
  8448. D2D1_POINT_2F baseline_origin,
  8449. const DWRITE_MATRIX *transform,
  8450. D2D1_POINT_2F *origins);
  8451. END_INTERFACE
  8452. } IDWriteFactory4Vtbl;
  8453. interface IDWriteFactory4 {
  8454. CONST_VTBL IDWriteFactory4Vtbl* lpVtbl;
  8455. };
  8456. #ifdef COBJMACROS
  8457. #ifndef WIDL_C_INLINE_WRAPPERS
  8458. /*** IUnknown methods ***/
  8459. #define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  8460. #define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
  8461. #define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This)
  8462. /*** IDWriteFactory methods ***/
  8463. #define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  8464. #define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  8465. #define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  8466. #define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  8467. #define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  8468. #define IDWriteFactory4_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)
  8469. #define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  8470. #define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  8471. #define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  8472. #define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  8473. #define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  8474. #define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  8475. #define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  8476. #define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  8477. #define IDWriteFactory4_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)
  8478. #define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  8479. #define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  8480. #define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  8481. /*** IDWriteFactory1 methods ***/
  8482. #define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  8483. /*** IDWriteFactory2 methods ***/
  8484. #define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  8485. #define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  8486. /*** IDWriteFactory3 methods ***/
  8487. #define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  8488. #define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  8489. #define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  8490. #define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
  8491. #define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
  8492. #define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
  8493. #define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
  8494. #define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
  8495. #define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  8496. /*** IDWriteFactory4 methods ***/
  8497. #define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  8498. #define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  8499. #define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  8500. #else
  8501. /*** IUnknown methods ***/
  8502. static FORCEINLINE HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) {
  8503. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  8504. }
  8505. static FORCEINLINE ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) {
  8506. return This->lpVtbl->AddRef(This);
  8507. }
  8508. static FORCEINLINE ULONG IDWriteFactory4_Release(IDWriteFactory4* This) {
  8509. return This->lpVtbl->Release(This);
  8510. }
  8511. /*** IDWriteFactory methods ***/
  8512. static FORCEINLINE HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  8513. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  8514. }
  8515. static FORCEINLINE HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
  8516. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  8517. }
  8518. static FORCEINLINE HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
  8519. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  8520. }
  8521. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  8522. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  8523. }
  8524. static FORCEINLINE HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  8525. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  8526. }
  8527. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  8528. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  8529. }
  8530. static FORCEINLINE HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) {
  8531. return This->lpVtbl->CreateRenderingParams(This,params);
  8532. }
  8533. static FORCEINLINE HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  8534. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  8535. }
  8536. static FORCEINLINE HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
  8537. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  8538. }
  8539. static FORCEINLINE HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
  8540. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  8541. }
  8542. static FORCEINLINE HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* 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) {
  8543. return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  8544. }
  8545. static FORCEINLINE HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) {
  8546. return This->lpVtbl->CreateTypography(This,typography);
  8547. }
  8548. static FORCEINLINE HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) {
  8549. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  8550. }
  8551. static FORCEINLINE HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  8552. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  8553. }
  8554. static FORCEINLINE HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* 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) {
  8555. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  8556. }
  8557. static FORCEINLINE HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  8558. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  8559. }
  8560. static FORCEINLINE HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) {
  8561. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  8562. }
  8563. static FORCEINLINE HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  8564. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  8565. }
  8566. /*** IDWriteFactory1 methods ***/
  8567. static FORCEINLINE HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  8568. return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  8569. }
  8570. /*** IDWriteFactory2 methods ***/
  8571. static FORCEINLINE HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) {
  8572. return This->lpVtbl->GetSystemFontFallback(This,fallback);
  8573. }
  8574. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  8575. return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  8576. }
  8577. /*** IDWriteFactory3 methods ***/
  8578. static FORCEINLINE HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  8579. return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  8580. }
  8581. static FORCEINLINE HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  8582. return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  8583. }
  8584. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  8585. return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  8586. }
  8587. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  8588. return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
  8589. }
  8590. static FORCEINLINE HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) {
  8591. return This->lpVtbl->GetSystemFontSet(This,fontset);
  8592. }
  8593. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) {
  8594. return This->lpVtbl->CreateFontSetBuilder(This,builder);
  8595. }
  8596. static FORCEINLINE HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
  8597. return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
  8598. }
  8599. static FORCEINLINE HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
  8600. return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
  8601. }
  8602. static FORCEINLINE HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) {
  8603. return This->lpVtbl->GetFontDownloadQueue(This,queue);
  8604. }
  8605. /*** IDWriteFactory4 methods ***/
  8606. static FORCEINLINE HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  8607. return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  8608. }
  8609. static FORCEINLINE HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  8610. return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  8611. }
  8612. static FORCEINLINE HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  8613. return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  8614. }
  8615. #endif
  8616. #endif
  8617. #endif
  8618. #endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */
  8619. /*****************************************************************************
  8620. * IDWriteAsyncResult interface
  8621. */
  8622. #ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__
  8623. #define __IDWriteAsyncResult_INTERFACE_DEFINED__
  8624. DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2);
  8625. #if defined(__cplusplus) && !defined(CINTERFACE)
  8626. MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2")
  8627. IDWriteAsyncResult : public IUnknown
  8628. {
  8629. virtual HANDLE STDMETHODCALLTYPE GetWaitHandle(
  8630. ) = 0;
  8631. virtual HRESULT STDMETHODCALLTYPE GetResult(
  8632. ) = 0;
  8633. };
  8634. #ifdef __CRT_UUID_DECL
  8635. __CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2)
  8636. #endif
  8637. #else
  8638. typedef struct IDWriteAsyncResultVtbl {
  8639. BEGIN_INTERFACE
  8640. /*** IUnknown methods ***/
  8641. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8642. IDWriteAsyncResult *This,
  8643. REFIID riid,
  8644. void **ppvObject);
  8645. ULONG (STDMETHODCALLTYPE *AddRef)(
  8646. IDWriteAsyncResult *This);
  8647. ULONG (STDMETHODCALLTYPE *Release)(
  8648. IDWriteAsyncResult *This);
  8649. /*** IDWriteAsyncResult methods ***/
  8650. HANDLE (STDMETHODCALLTYPE *GetWaitHandle)(
  8651. IDWriteAsyncResult *This);
  8652. HRESULT (STDMETHODCALLTYPE *GetResult)(
  8653. IDWriteAsyncResult *This);
  8654. END_INTERFACE
  8655. } IDWriteAsyncResultVtbl;
  8656. interface IDWriteAsyncResult {
  8657. CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl;
  8658. };
  8659. #ifdef COBJMACROS
  8660. #ifndef WIDL_C_INLINE_WRAPPERS
  8661. /*** IUnknown methods ***/
  8662. #define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  8663. #define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  8664. #define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This)
  8665. /*** IDWriteAsyncResult methods ***/
  8666. #define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This)
  8667. #define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This)
  8668. #else
  8669. /*** IUnknown methods ***/
  8670. static FORCEINLINE HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) {
  8671. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  8672. }
  8673. static FORCEINLINE ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) {
  8674. return This->lpVtbl->AddRef(This);
  8675. }
  8676. static FORCEINLINE ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) {
  8677. return This->lpVtbl->Release(This);
  8678. }
  8679. /*** IDWriteAsyncResult methods ***/
  8680. static FORCEINLINE HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) {
  8681. return This->lpVtbl->GetWaitHandle(This);
  8682. }
  8683. static FORCEINLINE HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) {
  8684. return This->lpVtbl->GetResult(This);
  8685. }
  8686. #endif
  8687. #endif
  8688. #endif
  8689. #endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */
  8690. typedef struct DWRITE_FILE_FRAGMENT {
  8691. UINT64 fileOffset;
  8692. UINT64 fragmentSize;
  8693. } DWRITE_FILE_FRAGMENT;
  8694. /*****************************************************************************
  8695. * IDWriteRemoteFontFileStream interface
  8696. */
  8697. #ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
  8698. #define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
  8699. DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c);
  8700. #if defined(__cplusplus) && !defined(CINTERFACE)
  8701. MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c")
  8702. IDWriteRemoteFontFileStream : public IDWriteFontFileStream
  8703. {
  8704. virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize(
  8705. UINT64 *size) = 0;
  8706. virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality(
  8707. UINT64 offset,
  8708. UINT64 size,
  8709. WINBOOL *is_local,
  8710. UINT64 *partial_size) = 0;
  8711. virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
  8712. ) = 0;
  8713. virtual HRESULT STDMETHODCALLTYPE BeginDownload(
  8714. const GUID *operation_id,
  8715. const DWRITE_FILE_FRAGMENT *fragments,
  8716. UINT32 fragment_count,
  8717. IDWriteAsyncResult **async_result) = 0;
  8718. };
  8719. #ifdef __CRT_UUID_DECL
  8720. __CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c)
  8721. #endif
  8722. #else
  8723. typedef struct IDWriteRemoteFontFileStreamVtbl {
  8724. BEGIN_INTERFACE
  8725. /*** IUnknown methods ***/
  8726. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8727. IDWriteRemoteFontFileStream *This,
  8728. REFIID riid,
  8729. void **ppvObject);
  8730. ULONG (STDMETHODCALLTYPE *AddRef)(
  8731. IDWriteRemoteFontFileStream *This);
  8732. ULONG (STDMETHODCALLTYPE *Release)(
  8733. IDWriteRemoteFontFileStream *This);
  8734. /*** IDWriteFontFileStream methods ***/
  8735. HRESULT (STDMETHODCALLTYPE *ReadFileFragment)(
  8736. IDWriteRemoteFontFileStream *This,
  8737. const void **fragment_start,
  8738. UINT64 offset,
  8739. UINT64 fragment_size,
  8740. void **fragment_context);
  8741. void (STDMETHODCALLTYPE *ReleaseFileFragment)(
  8742. IDWriteRemoteFontFileStream *This,
  8743. void *fragment_context);
  8744. HRESULT (STDMETHODCALLTYPE *GetFileSize)(
  8745. IDWriteRemoteFontFileStream *This,
  8746. UINT64 *size);
  8747. HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)(
  8748. IDWriteRemoteFontFileStream *This,
  8749. UINT64 *last_writetime);
  8750. /*** IDWriteRemoteFontFileStream methods ***/
  8751. HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)(
  8752. IDWriteRemoteFontFileStream *This,
  8753. UINT64 *size);
  8754. HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)(
  8755. IDWriteRemoteFontFileStream *This,
  8756. UINT64 offset,
  8757. UINT64 size,
  8758. WINBOOL *is_local,
  8759. UINT64 *partial_size);
  8760. DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
  8761. IDWriteRemoteFontFileStream *This);
  8762. HRESULT (STDMETHODCALLTYPE *BeginDownload)(
  8763. IDWriteRemoteFontFileStream *This,
  8764. const GUID *operation_id,
  8765. const DWRITE_FILE_FRAGMENT *fragments,
  8766. UINT32 fragment_count,
  8767. IDWriteAsyncResult **async_result);
  8768. END_INTERFACE
  8769. } IDWriteRemoteFontFileStreamVtbl;
  8770. interface IDWriteRemoteFontFileStream {
  8771. CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl;
  8772. };
  8773. #ifdef COBJMACROS
  8774. #ifndef WIDL_C_INLINE_WRAPPERS
  8775. /*** IUnknown methods ***/
  8776. #define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  8777. #define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  8778. #define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
  8779. /*** IDWriteFontFileStream methods ***/
  8780. #define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context)
  8781. #define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context)
  8782. #define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size)
  8783. #define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime)
  8784. /*** IDWriteRemoteFontFileStream methods ***/
  8785. #define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size)
  8786. #define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size)
  8787. #define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This)
  8788. #define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result)
  8789. #else
  8790. /*** IUnknown methods ***/
  8791. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) {
  8792. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  8793. }
  8794. static FORCEINLINE ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) {
  8795. return This->lpVtbl->AddRef(This);
  8796. }
  8797. static FORCEINLINE ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) {
  8798. return This->lpVtbl->Release(This);
  8799. }
  8800. /*** IDWriteFontFileStream methods ***/
  8801. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) {
  8802. return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context);
  8803. }
  8804. static FORCEINLINE void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) {
  8805. This->lpVtbl->ReleaseFileFragment(This,fragment_context);
  8806. }
  8807. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
  8808. return This->lpVtbl->GetFileSize(This,size);
  8809. }
  8810. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) {
  8811. return This->lpVtbl->GetLastWriteTime(This,last_writetime);
  8812. }
  8813. /*** IDWriteRemoteFontFileStream methods ***/
  8814. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
  8815. return This->lpVtbl->GetLocalFileSize(This,size);
  8816. }
  8817. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) {
  8818. return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size);
  8819. }
  8820. static FORCEINLINE DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) {
  8821. return This->lpVtbl->GetLocality(This);
  8822. }
  8823. static FORCEINLINE HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) {
  8824. return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result);
  8825. }
  8826. #endif
  8827. #endif
  8828. #endif
  8829. #endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */
  8830. typedef enum DWRITE_CONTAINER_TYPE {
  8831. DWRITE_CONTAINER_TYPE_UNKNOWN = 0,
  8832. DWRITE_CONTAINER_TYPE_WOFF = 1,
  8833. DWRITE_CONTAINER_TYPE_WOFF2 = 2
  8834. } DWRITE_CONTAINER_TYPE;
  8835. /*****************************************************************************
  8836. * IDWriteRemoteFontFileLoader interface
  8837. */
  8838. #ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
  8839. #define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
  8840. DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde);
  8841. #if defined(__cplusplus) && !defined(CINTERFACE)
  8842. MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde")
  8843. IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader
  8844. {
  8845. virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey(
  8846. const void *key,
  8847. UINT32 key_size,
  8848. IDWriteRemoteFontFileStream **stream) = 0;
  8849. virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey(
  8850. const void *key,
  8851. UINT32 key_size,
  8852. DWRITE_LOCALITY *locality) = 0;
  8853. virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl(
  8854. IDWriteFactory *factory,
  8855. const WCHAR *base_url,
  8856. const WCHAR *file_url,
  8857. IDWriteFontFile **fontfile) = 0;
  8858. };
  8859. #ifdef __CRT_UUID_DECL
  8860. __CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde)
  8861. #endif
  8862. #else
  8863. typedef struct IDWriteRemoteFontFileLoaderVtbl {
  8864. BEGIN_INTERFACE
  8865. /*** IUnknown methods ***/
  8866. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8867. IDWriteRemoteFontFileLoader *This,
  8868. REFIID riid,
  8869. void **ppvObject);
  8870. ULONG (STDMETHODCALLTYPE *AddRef)(
  8871. IDWriteRemoteFontFileLoader *This);
  8872. ULONG (STDMETHODCALLTYPE *Release)(
  8873. IDWriteRemoteFontFileLoader *This);
  8874. /*** IDWriteFontFileLoader methods ***/
  8875. HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  8876. IDWriteRemoteFontFileLoader *This,
  8877. const void *key,
  8878. UINT32 key_size,
  8879. IDWriteFontFileStream **stream);
  8880. /*** IDWriteRemoteFontFileLoader methods ***/
  8881. HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)(
  8882. IDWriteRemoteFontFileLoader *This,
  8883. const void *key,
  8884. UINT32 key_size,
  8885. IDWriteRemoteFontFileStream **stream);
  8886. HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)(
  8887. IDWriteRemoteFontFileLoader *This,
  8888. const void *key,
  8889. UINT32 key_size,
  8890. DWRITE_LOCALITY *locality);
  8891. HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)(
  8892. IDWriteRemoteFontFileLoader *This,
  8893. IDWriteFactory *factory,
  8894. const WCHAR *base_url,
  8895. const WCHAR *file_url,
  8896. IDWriteFontFile **fontfile);
  8897. END_INTERFACE
  8898. } IDWriteRemoteFontFileLoaderVtbl;
  8899. interface IDWriteRemoteFontFileLoader {
  8900. CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl;
  8901. };
  8902. #ifdef COBJMACROS
  8903. #ifndef WIDL_C_INLINE_WRAPPERS
  8904. /*** IUnknown methods ***/
  8905. #define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  8906. #define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  8907. #define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  8908. /*** IDWriteFontFileLoader methods ***/
  8909. #define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  8910. /*** IDWriteRemoteFontFileLoader methods ***/
  8911. #define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream)
  8912. #define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality)
  8913. #define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile)
  8914. #else
  8915. /*** IUnknown methods ***/
  8916. static FORCEINLINE HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) {
  8917. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  8918. }
  8919. static FORCEINLINE ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) {
  8920. return This->lpVtbl->AddRef(This);
  8921. }
  8922. static FORCEINLINE ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) {
  8923. return This->lpVtbl->Release(This);
  8924. }
  8925. /*** IDWriteFontFileLoader methods ***/
  8926. static FORCEINLINE HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  8927. return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  8928. }
  8929. /*** IDWriteRemoteFontFileLoader methods ***/
  8930. static FORCEINLINE HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) {
  8931. return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream);
  8932. }
  8933. static FORCEINLINE HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) {
  8934. return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality);
  8935. }
  8936. static FORCEINLINE HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) {
  8937. return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile);
  8938. }
  8939. #endif
  8940. #endif
  8941. #endif
  8942. #endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */
  8943. /*****************************************************************************
  8944. * IDWriteInMemoryFontFileLoader interface
  8945. */
  8946. #ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
  8947. #define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
  8948. DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f);
  8949. #if defined(__cplusplus) && !defined(CINTERFACE)
  8950. MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f")
  8951. IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader
  8952. {
  8953. virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference(
  8954. IDWriteFactory *factory,
  8955. const void *data,
  8956. UINT32 data_size,
  8957. IUnknown *owner,
  8958. IDWriteFontFile **fontfile) = 0;
  8959. virtual UINT32 STDMETHODCALLTYPE GetFileCount(
  8960. ) = 0;
  8961. };
  8962. #ifdef __CRT_UUID_DECL
  8963. __CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f)
  8964. #endif
  8965. #else
  8966. typedef struct IDWriteInMemoryFontFileLoaderVtbl {
  8967. BEGIN_INTERFACE
  8968. /*** IUnknown methods ***/
  8969. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  8970. IDWriteInMemoryFontFileLoader *This,
  8971. REFIID riid,
  8972. void **ppvObject);
  8973. ULONG (STDMETHODCALLTYPE *AddRef)(
  8974. IDWriteInMemoryFontFileLoader *This);
  8975. ULONG (STDMETHODCALLTYPE *Release)(
  8976. IDWriteInMemoryFontFileLoader *This);
  8977. /*** IDWriteFontFileLoader methods ***/
  8978. HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  8979. IDWriteInMemoryFontFileLoader *This,
  8980. const void *key,
  8981. UINT32 key_size,
  8982. IDWriteFontFileStream **stream);
  8983. /*** IDWriteInMemoryFontFileLoader methods ***/
  8984. HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)(
  8985. IDWriteInMemoryFontFileLoader *This,
  8986. IDWriteFactory *factory,
  8987. const void *data,
  8988. UINT32 data_size,
  8989. IUnknown *owner,
  8990. IDWriteFontFile **fontfile);
  8991. UINT32 (STDMETHODCALLTYPE *GetFileCount)(
  8992. IDWriteInMemoryFontFileLoader *This);
  8993. END_INTERFACE
  8994. } IDWriteInMemoryFontFileLoaderVtbl;
  8995. interface IDWriteInMemoryFontFileLoader {
  8996. CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl;
  8997. };
  8998. #ifdef COBJMACROS
  8999. #ifndef WIDL_C_INLINE_WRAPPERS
  9000. /*** IUnknown methods ***/
  9001. #define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  9002. #define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  9003. #define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  9004. /*** IDWriteFontFileLoader methods ***/
  9005. #define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  9006. /*** IDWriteInMemoryFontFileLoader methods ***/
  9007. #define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile)
  9008. #define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This)
  9009. #else
  9010. /*** IUnknown methods ***/
  9011. static FORCEINLINE HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) {
  9012. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  9013. }
  9014. static FORCEINLINE ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) {
  9015. return This->lpVtbl->AddRef(This);
  9016. }
  9017. static FORCEINLINE ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) {
  9018. return This->lpVtbl->Release(This);
  9019. }
  9020. /*** IDWriteFontFileLoader methods ***/
  9021. static FORCEINLINE HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  9022. return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  9023. }
  9024. /*** IDWriteInMemoryFontFileLoader methods ***/
  9025. static FORCEINLINE HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) {
  9026. return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile);
  9027. }
  9028. static FORCEINLINE UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) {
  9029. return This->lpVtbl->GetFileCount(This);
  9030. }
  9031. #endif
  9032. #endif
  9033. #endif
  9034. #endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */
  9035. /*****************************************************************************
  9036. * IDWriteFactory5 interface
  9037. */
  9038. #ifndef __IDWriteFactory5_INTERFACE_DEFINED__
  9039. #define __IDWriteFactory5_INTERFACE_DEFINED__
  9040. DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3);
  9041. #if defined(__cplusplus) && !defined(CINTERFACE)
  9042. MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3")
  9043. IDWriteFactory5 : public IDWriteFactory4
  9044. {
  9045. virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
  9046. IDWriteFontSetBuilder1 **fontset_builder) = 0;
  9047. virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader(
  9048. IDWriteInMemoryFontFileLoader **loader) = 0;
  9049. virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader(
  9050. const WCHAR *referrer_url,
  9051. const WCHAR *extra_headers,
  9052. IDWriteRemoteFontFileLoader **loader) = 0;
  9053. virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType(
  9054. const void *data,
  9055. UINT32 data_size) = 0;
  9056. virtual HRESULT STDMETHODCALLTYPE UnpackFontFile(
  9057. DWRITE_CONTAINER_TYPE container_type,
  9058. const void *data,
  9059. UINT32 data_size,
  9060. IDWriteFontFileStream **stream) = 0;
  9061. };
  9062. #ifdef __CRT_UUID_DECL
  9063. __CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3)
  9064. #endif
  9065. #else
  9066. typedef struct IDWriteFactory5Vtbl {
  9067. BEGIN_INTERFACE
  9068. /*** IUnknown methods ***/
  9069. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  9070. IDWriteFactory5 *This,
  9071. REFIID riid,
  9072. void **ppvObject);
  9073. ULONG (STDMETHODCALLTYPE *AddRef)(
  9074. IDWriteFactory5 *This);
  9075. ULONG (STDMETHODCALLTYPE *Release)(
  9076. IDWriteFactory5 *This);
  9077. /*** IDWriteFactory methods ***/
  9078. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  9079. IDWriteFactory5 *This,
  9080. IDWriteFontCollection **collection,
  9081. WINBOOL check_for_updates);
  9082. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  9083. IDWriteFactory5 *This,
  9084. IDWriteFontCollectionLoader *loader,
  9085. const void *key,
  9086. UINT32 key_size,
  9087. IDWriteFontCollection **collection);
  9088. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  9089. IDWriteFactory5 *This,
  9090. IDWriteFontCollectionLoader *loader);
  9091. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  9092. IDWriteFactory5 *This,
  9093. IDWriteFontCollectionLoader *loader);
  9094. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  9095. IDWriteFactory5 *This,
  9096. const WCHAR *path,
  9097. const FILETIME *writetime,
  9098. IDWriteFontFile **font_file);
  9099. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  9100. IDWriteFactory5 *This,
  9101. const void *reference_key,
  9102. UINT32 key_size,
  9103. IDWriteFontFileLoader *loader,
  9104. IDWriteFontFile **font_file);
  9105. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  9106. IDWriteFactory5 *This,
  9107. DWRITE_FONT_FACE_TYPE facetype,
  9108. UINT32 files_number,
  9109. IDWriteFontFile *const *font_files,
  9110. UINT32 index,
  9111. DWRITE_FONT_SIMULATIONS sim_flags,
  9112. IDWriteFontFace **font_face);
  9113. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  9114. IDWriteFactory5 *This,
  9115. IDWriteRenderingParams **params);
  9116. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  9117. IDWriteFactory5 *This,
  9118. HMONITOR monitor,
  9119. IDWriteRenderingParams **params);
  9120. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  9121. IDWriteFactory5 *This,
  9122. FLOAT gamma,
  9123. FLOAT enhancedContrast,
  9124. FLOAT cleartype_level,
  9125. DWRITE_PIXEL_GEOMETRY geometry,
  9126. DWRITE_RENDERING_MODE mode,
  9127. IDWriteRenderingParams **params);
  9128. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  9129. IDWriteFactory5 *This,
  9130. IDWriteFontFileLoader *loader);
  9131. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  9132. IDWriteFactory5 *This,
  9133. IDWriteFontFileLoader *loader);
  9134. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  9135. IDWriteFactory5 *This,
  9136. const WCHAR *family_name,
  9137. IDWriteFontCollection *collection,
  9138. DWRITE_FONT_WEIGHT weight,
  9139. DWRITE_FONT_STYLE style,
  9140. DWRITE_FONT_STRETCH stretch,
  9141. FLOAT size,
  9142. const WCHAR *locale,
  9143. IDWriteTextFormat **format);
  9144. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  9145. IDWriteFactory5 *This,
  9146. IDWriteTypography **typography);
  9147. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  9148. IDWriteFactory5 *This,
  9149. IDWriteGdiInterop **gdi_interop);
  9150. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  9151. IDWriteFactory5 *This,
  9152. const WCHAR *string,
  9153. UINT32 len,
  9154. IDWriteTextFormat *format,
  9155. FLOAT max_width,
  9156. FLOAT max_height,
  9157. IDWriteTextLayout **layout);
  9158. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  9159. IDWriteFactory5 *This,
  9160. const WCHAR *string,
  9161. UINT32 len,
  9162. IDWriteTextFormat *format,
  9163. FLOAT layout_width,
  9164. FLOAT layout_height,
  9165. FLOAT pixels_per_dip,
  9166. const DWRITE_MATRIX *transform,
  9167. WINBOOL use_gdi_natural,
  9168. IDWriteTextLayout **layout);
  9169. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  9170. IDWriteFactory5 *This,
  9171. IDWriteTextFormat *format,
  9172. IDWriteInlineObject **trimming_sign);
  9173. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  9174. IDWriteFactory5 *This,
  9175. IDWriteTextAnalyzer **analyzer);
  9176. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  9177. IDWriteFactory5 *This,
  9178. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  9179. const WCHAR *locale,
  9180. WINBOOL ignore_user_override,
  9181. IDWriteNumberSubstitution **substitution);
  9182. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  9183. IDWriteFactory5 *This,
  9184. const DWRITE_GLYPH_RUN *glyph_run,
  9185. FLOAT pixels_per_dip,
  9186. const DWRITE_MATRIX *transform,
  9187. DWRITE_RENDERING_MODE rendering_mode,
  9188. DWRITE_MEASURING_MODE measuring_mode,
  9189. FLOAT baseline_x,
  9190. FLOAT baseline_y,
  9191. IDWriteGlyphRunAnalysis **analysis);
  9192. /*** IDWriteFactory1 methods ***/
  9193. HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  9194. IDWriteFactory5 *This,
  9195. IDWriteFontCollection **collection,
  9196. WINBOOL check_for_updates);
  9197. HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  9198. IDWriteFactory5 *This,
  9199. FLOAT gamma,
  9200. FLOAT enhcontrast,
  9201. FLOAT enhcontrast_grayscale,
  9202. FLOAT cleartype_level,
  9203. DWRITE_PIXEL_GEOMETRY geometry,
  9204. DWRITE_RENDERING_MODE mode,
  9205. IDWriteRenderingParams1 **params);
  9206. /*** IDWriteFactory2 methods ***/
  9207. HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  9208. IDWriteFactory5 *This,
  9209. IDWriteFontFallback **fallback);
  9210. HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  9211. IDWriteFactory5 *This,
  9212. IDWriteFontFallbackBuilder **fallbackbuilder);
  9213. HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  9214. IDWriteFactory5 *This,
  9215. FLOAT originX,
  9216. FLOAT originY,
  9217. const DWRITE_GLYPH_RUN *run,
  9218. const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  9219. DWRITE_MEASURING_MODE mode,
  9220. const DWRITE_MATRIX *transform,
  9221. UINT32 palette_index,
  9222. IDWriteColorGlyphRunEnumerator **colorlayers);
  9223. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  9224. IDWriteFactory5 *This,
  9225. FLOAT gamma,
  9226. FLOAT contrast,
  9227. FLOAT grayscalecontrast,
  9228. FLOAT cleartypeLevel,
  9229. DWRITE_PIXEL_GEOMETRY pixelGeometry,
  9230. DWRITE_RENDERING_MODE renderingMode,
  9231. DWRITE_GRID_FIT_MODE gridFitMode,
  9232. IDWriteRenderingParams2 **params);
  9233. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  9234. IDWriteFactory5 *This,
  9235. const DWRITE_GLYPH_RUN *run,
  9236. const DWRITE_MATRIX *transform,
  9237. DWRITE_RENDERING_MODE renderingMode,
  9238. DWRITE_MEASURING_MODE measuringMode,
  9239. DWRITE_GRID_FIT_MODE gridFitMode,
  9240. DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  9241. FLOAT originX,
  9242. FLOAT originY,
  9243. IDWriteGlyphRunAnalysis **analysis);
  9244. /*** IDWriteFactory3 methods ***/
  9245. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  9246. IDWriteFactory5 *This,
  9247. const DWRITE_GLYPH_RUN *run,
  9248. const DWRITE_MATRIX *transform,
  9249. DWRITE_RENDERING_MODE1 rendering_mode,
  9250. DWRITE_MEASURING_MODE measuring_mode,
  9251. DWRITE_GRID_FIT_MODE gridfit_mode,
  9252. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  9253. FLOAT origin_x,
  9254. FLOAT origin_y,
  9255. IDWriteGlyphRunAnalysis **analysis);
  9256. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  9257. IDWriteFactory5 *This,
  9258. FLOAT gamma,
  9259. FLOAT enhanced_contrast,
  9260. FLOAT grayscale_enhanced_contrast,
  9261. FLOAT cleartype_level,
  9262. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  9263. DWRITE_RENDERING_MODE1 rendering_mode,
  9264. DWRITE_GRID_FIT_MODE gridfit_mode,
  9265. IDWriteRenderingParams3 **params);
  9266. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  9267. IDWriteFactory5 *This,
  9268. IDWriteFontFile *file,
  9269. UINT32 index,
  9270. DWRITE_FONT_SIMULATIONS simulations,
  9271. IDWriteFontFaceReference **reference);
  9272. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  9273. IDWriteFactory5 *This,
  9274. const WCHAR *path,
  9275. const FILETIME *writetime,
  9276. UINT32 index,
  9277. DWRITE_FONT_SIMULATIONS simulations,
  9278. IDWriteFontFaceReference **reference);
  9279. HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  9280. IDWriteFactory5 *This,
  9281. IDWriteFontSet **fontset);
  9282. HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  9283. IDWriteFactory5 *This,
  9284. IDWriteFontSetBuilder **builder);
  9285. HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  9286. IDWriteFactory5 *This,
  9287. IDWriteFontSet *fontset,
  9288. IDWriteFontCollection1 **collection);
  9289. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  9290. IDWriteFactory5 *This,
  9291. WINBOOL include_downloadable,
  9292. IDWriteFontCollection1 **collection,
  9293. WINBOOL check_for_updates);
  9294. HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  9295. IDWriteFactory5 *This,
  9296. IDWriteFontDownloadQueue **queue);
  9297. /*** IDWriteFactory4 methods ***/
  9298. HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  9299. IDWriteFactory5 *This,
  9300. D2D1_POINT_2F baseline_origin,
  9301. const DWRITE_GLYPH_RUN *run,
  9302. const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  9303. DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  9304. DWRITE_MEASURING_MODE measuring_mode,
  9305. const DWRITE_MATRIX *transform,
  9306. UINT32 palette,
  9307. IDWriteColorGlyphRunEnumerator1 **layers);
  9308. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  9309. IDWriteFactory5 *This,
  9310. const DWRITE_GLYPH_RUN *run,
  9311. D2D1_POINT_2F baseline_origin,
  9312. D2D1_POINT_2F *origins);
  9313. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  9314. IDWriteFactory5 *This,
  9315. const DWRITE_GLYPH_RUN *run,
  9316. DWRITE_MEASURING_MODE measuring_mode,
  9317. D2D1_POINT_2F baseline_origin,
  9318. const DWRITE_MATRIX *transform,
  9319. D2D1_POINT_2F *origins);
  9320. /*** IDWriteFactory5 methods ***/
  9321. HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  9322. IDWriteFactory5 *This,
  9323. IDWriteFontSetBuilder1 **fontset_builder);
  9324. HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  9325. IDWriteFactory5 *This,
  9326. IDWriteInMemoryFontFileLoader **loader);
  9327. HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  9328. IDWriteFactory5 *This,
  9329. const WCHAR *referrer_url,
  9330. const WCHAR *extra_headers,
  9331. IDWriteRemoteFontFileLoader **loader);
  9332. DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  9333. IDWriteFactory5 *This,
  9334. const void *data,
  9335. UINT32 data_size);
  9336. HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  9337. IDWriteFactory5 *This,
  9338. DWRITE_CONTAINER_TYPE container_type,
  9339. const void *data,
  9340. UINT32 data_size,
  9341. IDWriteFontFileStream **stream);
  9342. END_INTERFACE
  9343. } IDWriteFactory5Vtbl;
  9344. interface IDWriteFactory5 {
  9345. CONST_VTBL IDWriteFactory5Vtbl* lpVtbl;
  9346. };
  9347. #ifdef COBJMACROS
  9348. #ifndef WIDL_C_INLINE_WRAPPERS
  9349. /*** IUnknown methods ***/
  9350. #define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  9351. #define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
  9352. #define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This)
  9353. /*** IDWriteFactory methods ***/
  9354. #define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  9355. #define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  9356. #define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  9357. #define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  9358. #define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  9359. #define IDWriteFactory5_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)
  9360. #define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  9361. #define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  9362. #define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  9363. #define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  9364. #define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  9365. #define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  9366. #define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  9367. #define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  9368. #define IDWriteFactory5_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)
  9369. #define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  9370. #define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  9371. #define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  9372. /*** IDWriteFactory1 methods ***/
  9373. #define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  9374. /*** IDWriteFactory2 methods ***/
  9375. #define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  9376. #define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  9377. /*** IDWriteFactory3 methods ***/
  9378. #define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  9379. #define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  9380. #define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  9381. #define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
  9382. #define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
  9383. #define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
  9384. #define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
  9385. #define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  9386. /*** IDWriteFactory4 methods ***/
  9387. #define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  9388. #define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  9389. #define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  9390. /*** IDWriteFactory5 methods ***/
  9391. #define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder)
  9392. #define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  9393. #define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  9394. #define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  9395. #define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  9396. #else
  9397. /*** IUnknown methods ***/
  9398. static FORCEINLINE HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) {
  9399. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  9400. }
  9401. static FORCEINLINE ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) {
  9402. return This->lpVtbl->AddRef(This);
  9403. }
  9404. static FORCEINLINE ULONG IDWriteFactory5_Release(IDWriteFactory5* This) {
  9405. return This->lpVtbl->Release(This);
  9406. }
  9407. /*** IDWriteFactory methods ***/
  9408. static FORCEINLINE HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  9409. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  9410. }
  9411. static FORCEINLINE HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
  9412. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  9413. }
  9414. static FORCEINLINE HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
  9415. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  9416. }
  9417. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  9418. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  9419. }
  9420. static FORCEINLINE HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  9421. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  9422. }
  9423. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  9424. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  9425. }
  9426. static FORCEINLINE HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) {
  9427. return This->lpVtbl->CreateRenderingParams(This,params);
  9428. }
  9429. static FORCEINLINE HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  9430. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  9431. }
  9432. static FORCEINLINE HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
  9433. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  9434. }
  9435. static FORCEINLINE HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
  9436. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  9437. }
  9438. static FORCEINLINE HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* 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) {
  9439. return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  9440. }
  9441. static FORCEINLINE HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) {
  9442. return This->lpVtbl->CreateTypography(This,typography);
  9443. }
  9444. static FORCEINLINE HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) {
  9445. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  9446. }
  9447. static FORCEINLINE HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  9448. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  9449. }
  9450. static FORCEINLINE HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* 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) {
  9451. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  9452. }
  9453. static FORCEINLINE HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  9454. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  9455. }
  9456. static FORCEINLINE HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) {
  9457. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  9458. }
  9459. static FORCEINLINE HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  9460. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  9461. }
  9462. /*** IDWriteFactory1 methods ***/
  9463. static FORCEINLINE HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  9464. return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  9465. }
  9466. /*** IDWriteFactory2 methods ***/
  9467. static FORCEINLINE HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) {
  9468. return This->lpVtbl->GetSystemFontFallback(This,fallback);
  9469. }
  9470. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  9471. return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  9472. }
  9473. /*** IDWriteFactory3 methods ***/
  9474. static FORCEINLINE HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  9475. return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  9476. }
  9477. static FORCEINLINE HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  9478. return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  9479. }
  9480. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  9481. return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  9482. }
  9483. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  9484. return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
  9485. }
  9486. static FORCEINLINE HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) {
  9487. return This->lpVtbl->GetSystemFontSet(This,fontset);
  9488. }
  9489. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
  9490. return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
  9491. }
  9492. static FORCEINLINE HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
  9493. return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
  9494. }
  9495. static FORCEINLINE HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) {
  9496. return This->lpVtbl->GetFontDownloadQueue(This,queue);
  9497. }
  9498. /*** IDWriteFactory4 methods ***/
  9499. static FORCEINLINE HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  9500. return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  9501. }
  9502. static FORCEINLINE HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  9503. return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  9504. }
  9505. static FORCEINLINE HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  9506. return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  9507. }
  9508. /*** IDWriteFactory5 methods ***/
  9509. static FORCEINLINE HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) {
  9510. return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder);
  9511. }
  9512. static FORCEINLINE HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) {
  9513. return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  9514. }
  9515. static FORCEINLINE HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  9516. return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  9517. }
  9518. static FORCEINLINE DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) {
  9519. return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  9520. }
  9521. static FORCEINLINE HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  9522. return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  9523. }
  9524. #endif
  9525. #endif
  9526. #endif
  9527. #endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */
  9528. /*****************************************************************************
  9529. * IDWriteFactory6 interface
  9530. */
  9531. #ifndef __IDWriteFactory6_INTERFACE_DEFINED__
  9532. #define __IDWriteFactory6_INTERFACE_DEFINED__
  9533. DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23);
  9534. #if defined(__cplusplus) && !defined(CINTERFACE)
  9535. MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223")
  9536. IDWriteFactory6 : public IDWriteFactory5
  9537. {
  9538. virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
  9539. IDWriteFontFile *file,
  9540. UINT32 face_index,
  9541. DWRITE_FONT_SIMULATIONS simulations,
  9542. const DWRITE_FONT_AXIS_VALUE *axis_values,
  9543. UINT32 num_axis,
  9544. IDWriteFontFaceReference1 **face_ref) = 0;
  9545. virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
  9546. IDWriteFontFile *file,
  9547. UINT32 face_index,
  9548. IDWriteFontResource **resource) = 0;
  9549. virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
  9550. WINBOOL include_downloadable,
  9551. IDWriteFontSet1 **fontset) = 0;
  9552. virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  9553. WINBOOL include_downloadable,
  9554. DWRITE_FONT_FAMILY_MODEL family_model,
  9555. IDWriteFontCollection2 **collection) = 0;
  9556. virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
  9557. IDWriteFontSet *fontset,
  9558. DWRITE_FONT_FAMILY_MODEL family_model,
  9559. IDWriteFontCollection2 **collection) = 0;
  9560. virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
  9561. IDWriteFontSetBuilder2 **builder) = 0;
  9562. virtual HRESULT STDMETHODCALLTYPE CreateTextFormat(
  9563. const WCHAR *familyname,
  9564. IDWriteFontCollection *collection,
  9565. const DWRITE_FONT_AXIS_VALUE *axis_values,
  9566. UINT32 num_axis,
  9567. FLOAT fontsize,
  9568. const WCHAR *localename,
  9569. IDWriteTextFormat3 **format) = 0;
  9570. };
  9571. #ifdef __CRT_UUID_DECL
  9572. __CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23)
  9573. #endif
  9574. #else
  9575. typedef struct IDWriteFactory6Vtbl {
  9576. BEGIN_INTERFACE
  9577. /*** IUnknown methods ***/
  9578. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  9579. IDWriteFactory6 *This,
  9580. REFIID riid,
  9581. void **ppvObject);
  9582. ULONG (STDMETHODCALLTYPE *AddRef)(
  9583. IDWriteFactory6 *This);
  9584. ULONG (STDMETHODCALLTYPE *Release)(
  9585. IDWriteFactory6 *This);
  9586. /*** IDWriteFactory methods ***/
  9587. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  9588. IDWriteFactory6 *This,
  9589. IDWriteFontCollection **collection,
  9590. WINBOOL check_for_updates);
  9591. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  9592. IDWriteFactory6 *This,
  9593. IDWriteFontCollectionLoader *loader,
  9594. const void *key,
  9595. UINT32 key_size,
  9596. IDWriteFontCollection **collection);
  9597. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  9598. IDWriteFactory6 *This,
  9599. IDWriteFontCollectionLoader *loader);
  9600. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  9601. IDWriteFactory6 *This,
  9602. IDWriteFontCollectionLoader *loader);
  9603. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  9604. IDWriteFactory6 *This,
  9605. const WCHAR *path,
  9606. const FILETIME *writetime,
  9607. IDWriteFontFile **font_file);
  9608. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  9609. IDWriteFactory6 *This,
  9610. const void *reference_key,
  9611. UINT32 key_size,
  9612. IDWriteFontFileLoader *loader,
  9613. IDWriteFontFile **font_file);
  9614. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  9615. IDWriteFactory6 *This,
  9616. DWRITE_FONT_FACE_TYPE facetype,
  9617. UINT32 files_number,
  9618. IDWriteFontFile *const *font_files,
  9619. UINT32 index,
  9620. DWRITE_FONT_SIMULATIONS sim_flags,
  9621. IDWriteFontFace **font_face);
  9622. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  9623. IDWriteFactory6 *This,
  9624. IDWriteRenderingParams **params);
  9625. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  9626. IDWriteFactory6 *This,
  9627. HMONITOR monitor,
  9628. IDWriteRenderingParams **params);
  9629. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  9630. IDWriteFactory6 *This,
  9631. FLOAT gamma,
  9632. FLOAT enhancedContrast,
  9633. FLOAT cleartype_level,
  9634. DWRITE_PIXEL_GEOMETRY geometry,
  9635. DWRITE_RENDERING_MODE mode,
  9636. IDWriteRenderingParams **params);
  9637. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  9638. IDWriteFactory6 *This,
  9639. IDWriteFontFileLoader *loader);
  9640. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  9641. IDWriteFactory6 *This,
  9642. IDWriteFontFileLoader *loader);
  9643. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  9644. IDWriteFactory6 *This,
  9645. const WCHAR *family_name,
  9646. IDWriteFontCollection *collection,
  9647. DWRITE_FONT_WEIGHT weight,
  9648. DWRITE_FONT_STYLE style,
  9649. DWRITE_FONT_STRETCH stretch,
  9650. FLOAT size,
  9651. const WCHAR *locale,
  9652. IDWriteTextFormat **format);
  9653. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  9654. IDWriteFactory6 *This,
  9655. IDWriteTypography **typography);
  9656. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  9657. IDWriteFactory6 *This,
  9658. IDWriteGdiInterop **gdi_interop);
  9659. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  9660. IDWriteFactory6 *This,
  9661. const WCHAR *string,
  9662. UINT32 len,
  9663. IDWriteTextFormat *format,
  9664. FLOAT max_width,
  9665. FLOAT max_height,
  9666. IDWriteTextLayout **layout);
  9667. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  9668. IDWriteFactory6 *This,
  9669. const WCHAR *string,
  9670. UINT32 len,
  9671. IDWriteTextFormat *format,
  9672. FLOAT layout_width,
  9673. FLOAT layout_height,
  9674. FLOAT pixels_per_dip,
  9675. const DWRITE_MATRIX *transform,
  9676. WINBOOL use_gdi_natural,
  9677. IDWriteTextLayout **layout);
  9678. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  9679. IDWriteFactory6 *This,
  9680. IDWriteTextFormat *format,
  9681. IDWriteInlineObject **trimming_sign);
  9682. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  9683. IDWriteFactory6 *This,
  9684. IDWriteTextAnalyzer **analyzer);
  9685. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  9686. IDWriteFactory6 *This,
  9687. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  9688. const WCHAR *locale,
  9689. WINBOOL ignore_user_override,
  9690. IDWriteNumberSubstitution **substitution);
  9691. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  9692. IDWriteFactory6 *This,
  9693. const DWRITE_GLYPH_RUN *glyph_run,
  9694. FLOAT pixels_per_dip,
  9695. const DWRITE_MATRIX *transform,
  9696. DWRITE_RENDERING_MODE rendering_mode,
  9697. DWRITE_MEASURING_MODE measuring_mode,
  9698. FLOAT baseline_x,
  9699. FLOAT baseline_y,
  9700. IDWriteGlyphRunAnalysis **analysis);
  9701. /*** IDWriteFactory1 methods ***/
  9702. HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  9703. IDWriteFactory6 *This,
  9704. IDWriteFontCollection **collection,
  9705. WINBOOL check_for_updates);
  9706. HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  9707. IDWriteFactory6 *This,
  9708. FLOAT gamma,
  9709. FLOAT enhcontrast,
  9710. FLOAT enhcontrast_grayscale,
  9711. FLOAT cleartype_level,
  9712. DWRITE_PIXEL_GEOMETRY geometry,
  9713. DWRITE_RENDERING_MODE mode,
  9714. IDWriteRenderingParams1 **params);
  9715. /*** IDWriteFactory2 methods ***/
  9716. HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  9717. IDWriteFactory6 *This,
  9718. IDWriteFontFallback **fallback);
  9719. HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  9720. IDWriteFactory6 *This,
  9721. IDWriteFontFallbackBuilder **fallbackbuilder);
  9722. HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  9723. IDWriteFactory6 *This,
  9724. FLOAT originX,
  9725. FLOAT originY,
  9726. const DWRITE_GLYPH_RUN *run,
  9727. const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  9728. DWRITE_MEASURING_MODE mode,
  9729. const DWRITE_MATRIX *transform,
  9730. UINT32 palette_index,
  9731. IDWriteColorGlyphRunEnumerator **colorlayers);
  9732. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  9733. IDWriteFactory6 *This,
  9734. FLOAT gamma,
  9735. FLOAT contrast,
  9736. FLOAT grayscalecontrast,
  9737. FLOAT cleartypeLevel,
  9738. DWRITE_PIXEL_GEOMETRY pixelGeometry,
  9739. DWRITE_RENDERING_MODE renderingMode,
  9740. DWRITE_GRID_FIT_MODE gridFitMode,
  9741. IDWriteRenderingParams2 **params);
  9742. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  9743. IDWriteFactory6 *This,
  9744. const DWRITE_GLYPH_RUN *run,
  9745. const DWRITE_MATRIX *transform,
  9746. DWRITE_RENDERING_MODE renderingMode,
  9747. DWRITE_MEASURING_MODE measuringMode,
  9748. DWRITE_GRID_FIT_MODE gridFitMode,
  9749. DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  9750. FLOAT originX,
  9751. FLOAT originY,
  9752. IDWriteGlyphRunAnalysis **analysis);
  9753. /*** IDWriteFactory3 methods ***/
  9754. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  9755. IDWriteFactory6 *This,
  9756. const DWRITE_GLYPH_RUN *run,
  9757. const DWRITE_MATRIX *transform,
  9758. DWRITE_RENDERING_MODE1 rendering_mode,
  9759. DWRITE_MEASURING_MODE measuring_mode,
  9760. DWRITE_GRID_FIT_MODE gridfit_mode,
  9761. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  9762. FLOAT origin_x,
  9763. FLOAT origin_y,
  9764. IDWriteGlyphRunAnalysis **analysis);
  9765. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  9766. IDWriteFactory6 *This,
  9767. FLOAT gamma,
  9768. FLOAT enhanced_contrast,
  9769. FLOAT grayscale_enhanced_contrast,
  9770. FLOAT cleartype_level,
  9771. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  9772. DWRITE_RENDERING_MODE1 rendering_mode,
  9773. DWRITE_GRID_FIT_MODE gridfit_mode,
  9774. IDWriteRenderingParams3 **params);
  9775. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  9776. IDWriteFactory6 *This,
  9777. IDWriteFontFile *file,
  9778. UINT32 index,
  9779. DWRITE_FONT_SIMULATIONS simulations,
  9780. IDWriteFontFaceReference **reference);
  9781. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  9782. IDWriteFactory6 *This,
  9783. const WCHAR *path,
  9784. const FILETIME *writetime,
  9785. UINT32 index,
  9786. DWRITE_FONT_SIMULATIONS simulations,
  9787. IDWriteFontFaceReference **reference);
  9788. HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  9789. IDWriteFactory6 *This,
  9790. IDWriteFontSet **fontset);
  9791. HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  9792. IDWriteFactory6 *This,
  9793. IDWriteFontSetBuilder **builder);
  9794. HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  9795. IDWriteFactory6 *This,
  9796. IDWriteFontSet *fontset,
  9797. IDWriteFontCollection1 **collection);
  9798. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  9799. IDWriteFactory6 *This,
  9800. WINBOOL include_downloadable,
  9801. IDWriteFontCollection1 **collection,
  9802. WINBOOL check_for_updates);
  9803. HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  9804. IDWriteFactory6 *This,
  9805. IDWriteFontDownloadQueue **queue);
  9806. /*** IDWriteFactory4 methods ***/
  9807. HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  9808. IDWriteFactory6 *This,
  9809. D2D1_POINT_2F baseline_origin,
  9810. const DWRITE_GLYPH_RUN *run,
  9811. const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  9812. DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  9813. DWRITE_MEASURING_MODE measuring_mode,
  9814. const DWRITE_MATRIX *transform,
  9815. UINT32 palette,
  9816. IDWriteColorGlyphRunEnumerator1 **layers);
  9817. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  9818. IDWriteFactory6 *This,
  9819. const DWRITE_GLYPH_RUN *run,
  9820. D2D1_POINT_2F baseline_origin,
  9821. D2D1_POINT_2F *origins);
  9822. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  9823. IDWriteFactory6 *This,
  9824. const DWRITE_GLYPH_RUN *run,
  9825. DWRITE_MEASURING_MODE measuring_mode,
  9826. D2D1_POINT_2F baseline_origin,
  9827. const DWRITE_MATRIX *transform,
  9828. D2D1_POINT_2F *origins);
  9829. /*** IDWriteFactory5 methods ***/
  9830. HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  9831. IDWriteFactory6 *This,
  9832. IDWriteFontSetBuilder1 **fontset_builder);
  9833. HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  9834. IDWriteFactory6 *This,
  9835. IDWriteInMemoryFontFileLoader **loader);
  9836. HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  9837. IDWriteFactory6 *This,
  9838. const WCHAR *referrer_url,
  9839. const WCHAR *extra_headers,
  9840. IDWriteRemoteFontFileLoader **loader);
  9841. DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  9842. IDWriteFactory6 *This,
  9843. const void *data,
  9844. UINT32 data_size);
  9845. HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  9846. IDWriteFactory6 *This,
  9847. DWRITE_CONTAINER_TYPE container_type,
  9848. const void *data,
  9849. UINT32 data_size,
  9850. IDWriteFontFileStream **stream);
  9851. /*** IDWriteFactory6 methods ***/
  9852. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
  9853. IDWriteFactory6 *This,
  9854. IDWriteFontFile *file,
  9855. UINT32 face_index,
  9856. DWRITE_FONT_SIMULATIONS simulations,
  9857. const DWRITE_FONT_AXIS_VALUE *axis_values,
  9858. UINT32 num_axis,
  9859. IDWriteFontFaceReference1 **face_ref);
  9860. HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  9861. IDWriteFactory6 *This,
  9862. IDWriteFontFile *file,
  9863. UINT32 face_index,
  9864. IDWriteFontResource **resource);
  9865. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
  9866. IDWriteFactory6 *This,
  9867. WINBOOL include_downloadable,
  9868. IDWriteFontSet1 **fontset);
  9869. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
  9870. IDWriteFactory6 *This,
  9871. WINBOOL include_downloadable,
  9872. DWRITE_FONT_FAMILY_MODEL family_model,
  9873. IDWriteFontCollection2 **collection);
  9874. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
  9875. IDWriteFactory6 *This,
  9876. IDWriteFontSet *fontset,
  9877. DWRITE_FONT_FAMILY_MODEL family_model,
  9878. IDWriteFontCollection2 **collection);
  9879. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
  9880. IDWriteFactory6 *This,
  9881. IDWriteFontSetBuilder2 **builder);
  9882. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
  9883. IDWriteFactory6 *This,
  9884. const WCHAR *familyname,
  9885. IDWriteFontCollection *collection,
  9886. const DWRITE_FONT_AXIS_VALUE *axis_values,
  9887. UINT32 num_axis,
  9888. FLOAT fontsize,
  9889. const WCHAR *localename,
  9890. IDWriteTextFormat3 **format);
  9891. END_INTERFACE
  9892. } IDWriteFactory6Vtbl;
  9893. interface IDWriteFactory6 {
  9894. CONST_VTBL IDWriteFactory6Vtbl* lpVtbl;
  9895. };
  9896. #ifdef COBJMACROS
  9897. #ifndef WIDL_C_INLINE_WRAPPERS
  9898. /*** IUnknown methods ***/
  9899. #define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  9900. #define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
  9901. #define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This)
  9902. /*** IDWriteFactory methods ***/
  9903. #define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  9904. #define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  9905. #define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  9906. #define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  9907. #define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  9908. #define IDWriteFactory6_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)
  9909. #define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  9910. #define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  9911. #define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  9912. #define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  9913. #define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  9914. #define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  9915. #define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  9916. #define IDWriteFactory6_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)
  9917. #define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  9918. #define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  9919. #define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  9920. /*** IDWriteFactory1 methods ***/
  9921. #define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  9922. /*** IDWriteFactory2 methods ***/
  9923. #define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  9924. #define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  9925. /*** IDWriteFactory3 methods ***/
  9926. #define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  9927. #define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  9928. #define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  9929. #define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  9930. /*** IDWriteFactory4 methods ***/
  9931. #define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  9932. #define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  9933. #define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  9934. /*** IDWriteFactory5 methods ***/
  9935. #define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  9936. #define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  9937. #define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  9938. #define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  9939. /*** IDWriteFactory6 methods ***/
  9940. #define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
  9941. #define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
  9942. #define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset)
  9943. #define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection)
  9944. #define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
  9945. #define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
  9946. #define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
  9947. #else
  9948. /*** IUnknown methods ***/
  9949. static FORCEINLINE HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) {
  9950. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  9951. }
  9952. static FORCEINLINE ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) {
  9953. return This->lpVtbl->AddRef(This);
  9954. }
  9955. static FORCEINLINE ULONG IDWriteFactory6_Release(IDWriteFactory6* This) {
  9956. return This->lpVtbl->Release(This);
  9957. }
  9958. /*** IDWriteFactory methods ***/
  9959. static FORCEINLINE HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  9960. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  9961. }
  9962. static FORCEINLINE HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
  9963. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  9964. }
  9965. static FORCEINLINE HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
  9966. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  9967. }
  9968. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  9969. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  9970. }
  9971. static FORCEINLINE HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  9972. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  9973. }
  9974. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  9975. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  9976. }
  9977. static FORCEINLINE HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) {
  9978. return This->lpVtbl->CreateRenderingParams(This,params);
  9979. }
  9980. static FORCEINLINE HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  9981. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  9982. }
  9983. static FORCEINLINE HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
  9984. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  9985. }
  9986. static FORCEINLINE HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
  9987. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  9988. }
  9989. static FORCEINLINE HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) {
  9990. return This->lpVtbl->CreateTypography(This,typography);
  9991. }
  9992. static FORCEINLINE HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) {
  9993. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  9994. }
  9995. static FORCEINLINE HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  9996. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  9997. }
  9998. static FORCEINLINE HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* 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) {
  9999. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  10000. }
  10001. static FORCEINLINE HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  10002. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  10003. }
  10004. static FORCEINLINE HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) {
  10005. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  10006. }
  10007. static FORCEINLINE HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  10008. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  10009. }
  10010. /*** IDWriteFactory1 methods ***/
  10011. static FORCEINLINE HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  10012. return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  10013. }
  10014. /*** IDWriteFactory2 methods ***/
  10015. static FORCEINLINE HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) {
  10016. return This->lpVtbl->GetSystemFontFallback(This,fallback);
  10017. }
  10018. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  10019. return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  10020. }
  10021. /*** IDWriteFactory3 methods ***/
  10022. static FORCEINLINE HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  10023. return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  10024. }
  10025. static FORCEINLINE HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  10026. return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  10027. }
  10028. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  10029. return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  10030. }
  10031. static FORCEINLINE HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) {
  10032. return This->lpVtbl->GetFontDownloadQueue(This,queue);
  10033. }
  10034. /*** IDWriteFactory4 methods ***/
  10035. static FORCEINLINE HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  10036. return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  10037. }
  10038. static FORCEINLINE HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  10039. return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  10040. }
  10041. static FORCEINLINE HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  10042. return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  10043. }
  10044. /*** IDWriteFactory5 methods ***/
  10045. static FORCEINLINE HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) {
  10046. return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  10047. }
  10048. static FORCEINLINE HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  10049. return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  10050. }
  10051. static FORCEINLINE DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) {
  10052. return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  10053. }
  10054. static FORCEINLINE HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  10055. return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  10056. }
  10057. /*** IDWriteFactory6 methods ***/
  10058. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
  10059. return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
  10060. }
  10061. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
  10062. return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
  10063. }
  10064. static FORCEINLINE HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) {
  10065. return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset);
  10066. }
  10067. static FORCEINLINE HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  10068. return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection);
  10069. }
  10070. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  10071. return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
  10072. }
  10073. static FORCEINLINE HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) {
  10074. return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
  10075. }
  10076. static FORCEINLINE HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
  10077. return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
  10078. }
  10079. #endif
  10080. #endif
  10081. #endif
  10082. #endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */
  10083. /*****************************************************************************
  10084. * IDWriteFactory7 interface
  10085. */
  10086. #ifndef __IDWriteFactory7_INTERFACE_DEFINED__
  10087. #define __IDWriteFactory7_INTERFACE_DEFINED__
  10088. DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4);
  10089. #if defined(__cplusplus) && !defined(CINTERFACE)
  10090. MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4")
  10091. IDWriteFactory7 : public IDWriteFactory6
  10092. {
  10093. virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
  10094. WINBOOL include_downloadable,
  10095. IDWriteFontSet2 **fontset) = 0;
  10096. virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  10097. WINBOOL include_downloadable,
  10098. DWRITE_FONT_FAMILY_MODEL family_model,
  10099. IDWriteFontCollection3 **collection) = 0;
  10100. };
  10101. #ifdef __CRT_UUID_DECL
  10102. __CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4)
  10103. #endif
  10104. #else
  10105. typedef struct IDWriteFactory7Vtbl {
  10106. BEGIN_INTERFACE
  10107. /*** IUnknown methods ***/
  10108. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10109. IDWriteFactory7 *This,
  10110. REFIID riid,
  10111. void **ppvObject);
  10112. ULONG (STDMETHODCALLTYPE *AddRef)(
  10113. IDWriteFactory7 *This);
  10114. ULONG (STDMETHODCALLTYPE *Release)(
  10115. IDWriteFactory7 *This);
  10116. /*** IDWriteFactory methods ***/
  10117. HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  10118. IDWriteFactory7 *This,
  10119. IDWriteFontCollection **collection,
  10120. WINBOOL check_for_updates);
  10121. HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  10122. IDWriteFactory7 *This,
  10123. IDWriteFontCollectionLoader *loader,
  10124. const void *key,
  10125. UINT32 key_size,
  10126. IDWriteFontCollection **collection);
  10127. HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  10128. IDWriteFactory7 *This,
  10129. IDWriteFontCollectionLoader *loader);
  10130. HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  10131. IDWriteFactory7 *This,
  10132. IDWriteFontCollectionLoader *loader);
  10133. HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  10134. IDWriteFactory7 *This,
  10135. const WCHAR *path,
  10136. const FILETIME *writetime,
  10137. IDWriteFontFile **font_file);
  10138. HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  10139. IDWriteFactory7 *This,
  10140. const void *reference_key,
  10141. UINT32 key_size,
  10142. IDWriteFontFileLoader *loader,
  10143. IDWriteFontFile **font_file);
  10144. HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  10145. IDWriteFactory7 *This,
  10146. DWRITE_FONT_FACE_TYPE facetype,
  10147. UINT32 files_number,
  10148. IDWriteFontFile *const *font_files,
  10149. UINT32 index,
  10150. DWRITE_FONT_SIMULATIONS sim_flags,
  10151. IDWriteFontFace **font_face);
  10152. HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  10153. IDWriteFactory7 *This,
  10154. IDWriteRenderingParams **params);
  10155. HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  10156. IDWriteFactory7 *This,
  10157. HMONITOR monitor,
  10158. IDWriteRenderingParams **params);
  10159. HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  10160. IDWriteFactory7 *This,
  10161. FLOAT gamma,
  10162. FLOAT enhancedContrast,
  10163. FLOAT cleartype_level,
  10164. DWRITE_PIXEL_GEOMETRY geometry,
  10165. DWRITE_RENDERING_MODE mode,
  10166. IDWriteRenderingParams **params);
  10167. HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  10168. IDWriteFactory7 *This,
  10169. IDWriteFontFileLoader *loader);
  10170. HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  10171. IDWriteFactory7 *This,
  10172. IDWriteFontFileLoader *loader);
  10173. HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  10174. IDWriteFactory7 *This,
  10175. const WCHAR *family_name,
  10176. IDWriteFontCollection *collection,
  10177. DWRITE_FONT_WEIGHT weight,
  10178. DWRITE_FONT_STYLE style,
  10179. DWRITE_FONT_STRETCH stretch,
  10180. FLOAT size,
  10181. const WCHAR *locale,
  10182. IDWriteTextFormat **format);
  10183. HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  10184. IDWriteFactory7 *This,
  10185. IDWriteTypography **typography);
  10186. HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  10187. IDWriteFactory7 *This,
  10188. IDWriteGdiInterop **gdi_interop);
  10189. HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  10190. IDWriteFactory7 *This,
  10191. const WCHAR *string,
  10192. UINT32 len,
  10193. IDWriteTextFormat *format,
  10194. FLOAT max_width,
  10195. FLOAT max_height,
  10196. IDWriteTextLayout **layout);
  10197. HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  10198. IDWriteFactory7 *This,
  10199. const WCHAR *string,
  10200. UINT32 len,
  10201. IDWriteTextFormat *format,
  10202. FLOAT layout_width,
  10203. FLOAT layout_height,
  10204. FLOAT pixels_per_dip,
  10205. const DWRITE_MATRIX *transform,
  10206. WINBOOL use_gdi_natural,
  10207. IDWriteTextLayout **layout);
  10208. HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  10209. IDWriteFactory7 *This,
  10210. IDWriteTextFormat *format,
  10211. IDWriteInlineObject **trimming_sign);
  10212. HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  10213. IDWriteFactory7 *This,
  10214. IDWriteTextAnalyzer **analyzer);
  10215. HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  10216. IDWriteFactory7 *This,
  10217. DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  10218. const WCHAR *locale,
  10219. WINBOOL ignore_user_override,
  10220. IDWriteNumberSubstitution **substitution);
  10221. HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  10222. IDWriteFactory7 *This,
  10223. const DWRITE_GLYPH_RUN *glyph_run,
  10224. FLOAT pixels_per_dip,
  10225. const DWRITE_MATRIX *transform,
  10226. DWRITE_RENDERING_MODE rendering_mode,
  10227. DWRITE_MEASURING_MODE measuring_mode,
  10228. FLOAT baseline_x,
  10229. FLOAT baseline_y,
  10230. IDWriteGlyphRunAnalysis **analysis);
  10231. /*** IDWriteFactory1 methods ***/
  10232. HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  10233. IDWriteFactory7 *This,
  10234. IDWriteFontCollection **collection,
  10235. WINBOOL check_for_updates);
  10236. HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  10237. IDWriteFactory7 *This,
  10238. FLOAT gamma,
  10239. FLOAT enhcontrast,
  10240. FLOAT enhcontrast_grayscale,
  10241. FLOAT cleartype_level,
  10242. DWRITE_PIXEL_GEOMETRY geometry,
  10243. DWRITE_RENDERING_MODE mode,
  10244. IDWriteRenderingParams1 **params);
  10245. /*** IDWriteFactory2 methods ***/
  10246. HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  10247. IDWriteFactory7 *This,
  10248. IDWriteFontFallback **fallback);
  10249. HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  10250. IDWriteFactory7 *This,
  10251. IDWriteFontFallbackBuilder **fallbackbuilder);
  10252. HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  10253. IDWriteFactory7 *This,
  10254. FLOAT originX,
  10255. FLOAT originY,
  10256. const DWRITE_GLYPH_RUN *run,
  10257. const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  10258. DWRITE_MEASURING_MODE mode,
  10259. const DWRITE_MATRIX *transform,
  10260. UINT32 palette_index,
  10261. IDWriteColorGlyphRunEnumerator **colorlayers);
  10262. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  10263. IDWriteFactory7 *This,
  10264. FLOAT gamma,
  10265. FLOAT contrast,
  10266. FLOAT grayscalecontrast,
  10267. FLOAT cleartypeLevel,
  10268. DWRITE_PIXEL_GEOMETRY pixelGeometry,
  10269. DWRITE_RENDERING_MODE renderingMode,
  10270. DWRITE_GRID_FIT_MODE gridFitMode,
  10271. IDWriteRenderingParams2 **params);
  10272. HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  10273. IDWriteFactory7 *This,
  10274. const DWRITE_GLYPH_RUN *run,
  10275. const DWRITE_MATRIX *transform,
  10276. DWRITE_RENDERING_MODE renderingMode,
  10277. DWRITE_MEASURING_MODE measuringMode,
  10278. DWRITE_GRID_FIT_MODE gridFitMode,
  10279. DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  10280. FLOAT originX,
  10281. FLOAT originY,
  10282. IDWriteGlyphRunAnalysis **analysis);
  10283. /*** IDWriteFactory3 methods ***/
  10284. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  10285. IDWriteFactory7 *This,
  10286. const DWRITE_GLYPH_RUN *run,
  10287. const DWRITE_MATRIX *transform,
  10288. DWRITE_RENDERING_MODE1 rendering_mode,
  10289. DWRITE_MEASURING_MODE measuring_mode,
  10290. DWRITE_GRID_FIT_MODE gridfit_mode,
  10291. DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  10292. FLOAT origin_x,
  10293. FLOAT origin_y,
  10294. IDWriteGlyphRunAnalysis **analysis);
  10295. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  10296. IDWriteFactory7 *This,
  10297. FLOAT gamma,
  10298. FLOAT enhanced_contrast,
  10299. FLOAT grayscale_enhanced_contrast,
  10300. FLOAT cleartype_level,
  10301. DWRITE_PIXEL_GEOMETRY pixel_geometry,
  10302. DWRITE_RENDERING_MODE1 rendering_mode,
  10303. DWRITE_GRID_FIT_MODE gridfit_mode,
  10304. IDWriteRenderingParams3 **params);
  10305. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  10306. IDWriteFactory7 *This,
  10307. IDWriteFontFile *file,
  10308. UINT32 index,
  10309. DWRITE_FONT_SIMULATIONS simulations,
  10310. IDWriteFontFaceReference **reference);
  10311. HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  10312. IDWriteFactory7 *This,
  10313. const WCHAR *path,
  10314. const FILETIME *writetime,
  10315. UINT32 index,
  10316. DWRITE_FONT_SIMULATIONS simulations,
  10317. IDWriteFontFaceReference **reference);
  10318. HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  10319. IDWriteFactory7 *This,
  10320. IDWriteFontSet **fontset);
  10321. HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  10322. IDWriteFactory7 *This,
  10323. IDWriteFontSetBuilder **builder);
  10324. HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  10325. IDWriteFactory7 *This,
  10326. IDWriteFontSet *fontset,
  10327. IDWriteFontCollection1 **collection);
  10328. HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  10329. IDWriteFactory7 *This,
  10330. WINBOOL include_downloadable,
  10331. IDWriteFontCollection1 **collection,
  10332. WINBOOL check_for_updates);
  10333. HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  10334. IDWriteFactory7 *This,
  10335. IDWriteFontDownloadQueue **queue);
  10336. /*** IDWriteFactory4 methods ***/
  10337. HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  10338. IDWriteFactory7 *This,
  10339. D2D1_POINT_2F baseline_origin,
  10340. const DWRITE_GLYPH_RUN *run,
  10341. const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  10342. DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  10343. DWRITE_MEASURING_MODE measuring_mode,
  10344. const DWRITE_MATRIX *transform,
  10345. UINT32 palette,
  10346. IDWriteColorGlyphRunEnumerator1 **layers);
  10347. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  10348. IDWriteFactory7 *This,
  10349. const DWRITE_GLYPH_RUN *run,
  10350. D2D1_POINT_2F baseline_origin,
  10351. D2D1_POINT_2F *origins);
  10352. HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  10353. IDWriteFactory7 *This,
  10354. const DWRITE_GLYPH_RUN *run,
  10355. DWRITE_MEASURING_MODE measuring_mode,
  10356. D2D1_POINT_2F baseline_origin,
  10357. const DWRITE_MATRIX *transform,
  10358. D2D1_POINT_2F *origins);
  10359. /*** IDWriteFactory5 methods ***/
  10360. HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  10361. IDWriteFactory7 *This,
  10362. IDWriteFontSetBuilder1 **fontset_builder);
  10363. HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  10364. IDWriteFactory7 *This,
  10365. IDWriteInMemoryFontFileLoader **loader);
  10366. HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  10367. IDWriteFactory7 *This,
  10368. const WCHAR *referrer_url,
  10369. const WCHAR *extra_headers,
  10370. IDWriteRemoteFontFileLoader **loader);
  10371. DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  10372. IDWriteFactory7 *This,
  10373. const void *data,
  10374. UINT32 data_size);
  10375. HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  10376. IDWriteFactory7 *This,
  10377. DWRITE_CONTAINER_TYPE container_type,
  10378. const void *data,
  10379. UINT32 data_size,
  10380. IDWriteFontFileStream **stream);
  10381. /*** IDWriteFactory6 methods ***/
  10382. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
  10383. IDWriteFactory7 *This,
  10384. IDWriteFontFile *file,
  10385. UINT32 face_index,
  10386. DWRITE_FONT_SIMULATIONS simulations,
  10387. const DWRITE_FONT_AXIS_VALUE *axis_values,
  10388. UINT32 num_axis,
  10389. IDWriteFontFaceReference1 **face_ref);
  10390. HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  10391. IDWriteFactory7 *This,
  10392. IDWriteFontFile *file,
  10393. UINT32 face_index,
  10394. IDWriteFontResource **resource);
  10395. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
  10396. IDWriteFactory7 *This,
  10397. WINBOOL include_downloadable,
  10398. IDWriteFontSet1 **fontset);
  10399. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
  10400. IDWriteFactory7 *This,
  10401. WINBOOL include_downloadable,
  10402. DWRITE_FONT_FAMILY_MODEL family_model,
  10403. IDWriteFontCollection2 **collection);
  10404. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
  10405. IDWriteFactory7 *This,
  10406. IDWriteFontSet *fontset,
  10407. DWRITE_FONT_FAMILY_MODEL family_model,
  10408. IDWriteFontCollection2 **collection);
  10409. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
  10410. IDWriteFactory7 *This,
  10411. IDWriteFontSetBuilder2 **builder);
  10412. HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
  10413. IDWriteFactory7 *This,
  10414. const WCHAR *familyname,
  10415. IDWriteFontCollection *collection,
  10416. const DWRITE_FONT_AXIS_VALUE *axis_values,
  10417. UINT32 num_axis,
  10418. FLOAT fontsize,
  10419. const WCHAR *localename,
  10420. IDWriteTextFormat3 **format);
  10421. /*** IDWriteFactory7 methods ***/
  10422. HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
  10423. IDWriteFactory7 *This,
  10424. WINBOOL include_downloadable,
  10425. IDWriteFontSet2 **fontset);
  10426. HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
  10427. IDWriteFactory7 *This,
  10428. WINBOOL include_downloadable,
  10429. DWRITE_FONT_FAMILY_MODEL family_model,
  10430. IDWriteFontCollection3 **collection);
  10431. END_INTERFACE
  10432. } IDWriteFactory7Vtbl;
  10433. interface IDWriteFactory7 {
  10434. CONST_VTBL IDWriteFactory7Vtbl* lpVtbl;
  10435. };
  10436. #ifdef COBJMACROS
  10437. #ifndef WIDL_C_INLINE_WRAPPERS
  10438. /*** IUnknown methods ***/
  10439. #define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10440. #define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
  10441. #define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This)
  10442. /*** IDWriteFactory methods ***/
  10443. #define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  10444. #define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  10445. #define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  10446. #define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  10447. #define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  10448. #define IDWriteFactory7_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)
  10449. #define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  10450. #define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  10451. #define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  10452. #define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  10453. #define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  10454. #define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  10455. #define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  10456. #define IDWriteFactory7_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)
  10457. #define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  10458. #define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  10459. #define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  10460. /*** IDWriteFactory1 methods ***/
  10461. #define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  10462. /*** IDWriteFactory2 methods ***/
  10463. #define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  10464. #define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  10465. /*** IDWriteFactory3 methods ***/
  10466. #define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  10467. #define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  10468. #define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  10469. #define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  10470. /*** IDWriteFactory4 methods ***/
  10471. #define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  10472. #define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  10473. #define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  10474. /*** IDWriteFactory5 methods ***/
  10475. #define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  10476. #define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  10477. #define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  10478. #define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  10479. /*** IDWriteFactory6 methods ***/
  10480. #define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
  10481. #define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
  10482. #define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
  10483. #define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
  10484. #define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
  10485. /*** IDWriteFactory7 methods ***/
  10486. #define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
  10487. #define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
  10488. #else
  10489. /*** IUnknown methods ***/
  10490. static FORCEINLINE HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) {
  10491. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10492. }
  10493. static FORCEINLINE ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) {
  10494. return This->lpVtbl->AddRef(This);
  10495. }
  10496. static FORCEINLINE ULONG IDWriteFactory7_Release(IDWriteFactory7* This) {
  10497. return This->lpVtbl->Release(This);
  10498. }
  10499. /*** IDWriteFactory methods ***/
  10500. static FORCEINLINE HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  10501. return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  10502. }
  10503. static FORCEINLINE HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
  10504. return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  10505. }
  10506. static FORCEINLINE HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
  10507. return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  10508. }
  10509. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  10510. return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  10511. }
  10512. static FORCEINLINE HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  10513. return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  10514. }
  10515. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  10516. return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  10517. }
  10518. static FORCEINLINE HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) {
  10519. return This->lpVtbl->CreateRenderingParams(This,params);
  10520. }
  10521. static FORCEINLINE HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  10522. return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  10523. }
  10524. static FORCEINLINE HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
  10525. return This->lpVtbl->RegisterFontFileLoader(This,loader);
  10526. }
  10527. static FORCEINLINE HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
  10528. return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  10529. }
  10530. static FORCEINLINE HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) {
  10531. return This->lpVtbl->CreateTypography(This,typography);
  10532. }
  10533. static FORCEINLINE HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) {
  10534. return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  10535. }
  10536. static FORCEINLINE HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  10537. return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  10538. }
  10539. static FORCEINLINE HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* 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) {
  10540. return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  10541. }
  10542. static FORCEINLINE HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  10543. return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  10544. }
  10545. static FORCEINLINE HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) {
  10546. return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  10547. }
  10548. static FORCEINLINE HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  10549. return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  10550. }
  10551. /*** IDWriteFactory1 methods ***/
  10552. static FORCEINLINE HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  10553. return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  10554. }
  10555. /*** IDWriteFactory2 methods ***/
  10556. static FORCEINLINE HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) {
  10557. return This->lpVtbl->GetSystemFontFallback(This,fallback);
  10558. }
  10559. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  10560. return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  10561. }
  10562. /*** IDWriteFactory3 methods ***/
  10563. static FORCEINLINE HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  10564. return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  10565. }
  10566. static FORCEINLINE HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  10567. return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  10568. }
  10569. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  10570. return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  10571. }
  10572. static FORCEINLINE HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) {
  10573. return This->lpVtbl->GetFontDownloadQueue(This,queue);
  10574. }
  10575. /*** IDWriteFactory4 methods ***/
  10576. static FORCEINLINE HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  10577. return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  10578. }
  10579. static FORCEINLINE HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  10580. return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  10581. }
  10582. static FORCEINLINE HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  10583. return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  10584. }
  10585. /*** IDWriteFactory5 methods ***/
  10586. static FORCEINLINE HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) {
  10587. return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  10588. }
  10589. static FORCEINLINE HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  10590. return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  10591. }
  10592. static FORCEINLINE DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) {
  10593. return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  10594. }
  10595. static FORCEINLINE HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  10596. return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  10597. }
  10598. /*** IDWriteFactory6 methods ***/
  10599. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
  10600. return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
  10601. }
  10602. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
  10603. return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
  10604. }
  10605. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  10606. return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
  10607. }
  10608. static FORCEINLINE HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) {
  10609. return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
  10610. }
  10611. static FORCEINLINE HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
  10612. return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
  10613. }
  10614. /*** IDWriteFactory7 methods ***/
  10615. static FORCEINLINE HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
  10616. return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
  10617. }
  10618. static FORCEINLINE HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
  10619. return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
  10620. }
  10621. #endif
  10622. #endif
  10623. #endif
  10624. #endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */
  10625. /* Begin additional prototypes for all interfaces */
  10626. /* End additional prototypes */
  10627. #ifdef __cplusplus
  10628. }
  10629. #endif
  10630. #endif /* __dwrite_3_h__ */