wincodec.h 271 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373
  1. /*** Autogenerated by WIDL 7.7 from include/wincodec.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 __wincodec_h__
  14. #define __wincodec_h__
  15. /* Forward declarations */
  16. #ifndef __IWICColorContext_FWD_DEFINED__
  17. #define __IWICColorContext_FWD_DEFINED__
  18. typedef interface IWICColorContext IWICColorContext;
  19. #ifdef __cplusplus
  20. interface IWICColorContext;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IWICBitmapSource_FWD_DEFINED__
  24. #define __IWICBitmapSource_FWD_DEFINED__
  25. typedef interface IWICBitmapSource IWICBitmapSource;
  26. #ifdef __cplusplus
  27. interface IWICBitmapSource;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IWICBitmapLock_FWD_DEFINED__
  31. #define __IWICBitmapLock_FWD_DEFINED__
  32. typedef interface IWICBitmapLock IWICBitmapLock;
  33. #ifdef __cplusplus
  34. interface IWICBitmapLock;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IWICBitmapFlipRotator_FWD_DEFINED__
  38. #define __IWICBitmapFlipRotator_FWD_DEFINED__
  39. typedef interface IWICBitmapFlipRotator IWICBitmapFlipRotator;
  40. #ifdef __cplusplus
  41. interface IWICBitmapFlipRotator;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IWICBitmap_FWD_DEFINED__
  45. #define __IWICBitmap_FWD_DEFINED__
  46. typedef interface IWICBitmap IWICBitmap;
  47. #ifdef __cplusplus
  48. interface IWICBitmap;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IWICPalette_FWD_DEFINED__
  52. #define __IWICPalette_FWD_DEFINED__
  53. typedef interface IWICPalette IWICPalette;
  54. #ifdef __cplusplus
  55. interface IWICPalette;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IWICComponentInfo_FWD_DEFINED__
  59. #define __IWICComponentInfo_FWD_DEFINED__
  60. typedef interface IWICComponentInfo IWICComponentInfo;
  61. #ifdef __cplusplus
  62. interface IWICComponentInfo;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IWICMetadataQueryReader_FWD_DEFINED__
  66. #define __IWICMetadataQueryReader_FWD_DEFINED__
  67. typedef interface IWICMetadataQueryReader IWICMetadataQueryReader;
  68. #ifdef __cplusplus
  69. interface IWICMetadataQueryReader;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IWICMetadataQueryWriter_FWD_DEFINED__
  73. #define __IWICMetadataQueryWriter_FWD_DEFINED__
  74. typedef interface IWICMetadataQueryWriter IWICMetadataQueryWriter;
  75. #ifdef __cplusplus
  76. interface IWICMetadataQueryWriter;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IWICBitmapFrameDecode_FWD_DEFINED__
  80. #define __IWICBitmapFrameDecode_FWD_DEFINED__
  81. typedef interface IWICBitmapFrameDecode IWICBitmapFrameDecode;
  82. #ifdef __cplusplus
  83. interface IWICBitmapFrameDecode;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IWICPixelFormatInfo_FWD_DEFINED__
  87. #define __IWICPixelFormatInfo_FWD_DEFINED__
  88. typedef interface IWICPixelFormatInfo IWICPixelFormatInfo;
  89. #ifdef __cplusplus
  90. interface IWICPixelFormatInfo;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IWICPixelFormatInfo2_FWD_DEFINED__
  94. #define __IWICPixelFormatInfo2_FWD_DEFINED__
  95. typedef interface IWICPixelFormatInfo2 IWICPixelFormatInfo2;
  96. #ifdef __cplusplus
  97. interface IWICPixelFormatInfo2;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IWICBitmapCodecInfo_FWD_DEFINED__
  101. #define __IWICBitmapCodecInfo_FWD_DEFINED__
  102. typedef interface IWICBitmapCodecInfo IWICBitmapCodecInfo;
  103. #ifdef __cplusplus
  104. interface IWICBitmapCodecInfo;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IWICBitmapDecoderInfo_FWD_DEFINED__
  108. #define __IWICBitmapDecoderInfo_FWD_DEFINED__
  109. typedef interface IWICBitmapDecoderInfo IWICBitmapDecoderInfo;
  110. #ifdef __cplusplus
  111. interface IWICBitmapDecoderInfo;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IWICBitmapDecoder_FWD_DEFINED__
  115. #define __IWICBitmapDecoder_FWD_DEFINED__
  116. typedef interface IWICBitmapDecoder IWICBitmapDecoder;
  117. #ifdef __cplusplus
  118. interface IWICBitmapDecoder;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __IWICBitmapFrameEncode_FWD_DEFINED__
  122. #define __IWICBitmapFrameEncode_FWD_DEFINED__
  123. typedef interface IWICBitmapFrameEncode IWICBitmapFrameEncode;
  124. #ifdef __cplusplus
  125. interface IWICBitmapFrameEncode;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __IWICBitmapEncoderInfo_FWD_DEFINED__
  129. #define __IWICBitmapEncoderInfo_FWD_DEFINED__
  130. typedef interface IWICBitmapEncoderInfo IWICBitmapEncoderInfo;
  131. #ifdef __cplusplus
  132. interface IWICBitmapEncoderInfo;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IWICBitmapEncoder_FWD_DEFINED__
  136. #define __IWICBitmapEncoder_FWD_DEFINED__
  137. typedef interface IWICBitmapEncoder IWICBitmapEncoder;
  138. #ifdef __cplusplus
  139. interface IWICBitmapEncoder;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IWICFormatConverter_FWD_DEFINED__
  143. #define __IWICFormatConverter_FWD_DEFINED__
  144. typedef interface IWICFormatConverter IWICFormatConverter;
  145. #ifdef __cplusplus
  146. interface IWICFormatConverter;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IWICFormatConverterInfo_FWD_DEFINED__
  150. #define __IWICFormatConverterInfo_FWD_DEFINED__
  151. typedef interface IWICFormatConverterInfo IWICFormatConverterInfo;
  152. #ifdef __cplusplus
  153. interface IWICFormatConverterInfo;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IWICStream_FWD_DEFINED__
  157. #define __IWICStream_FWD_DEFINED__
  158. typedef interface IWICStream IWICStream;
  159. #ifdef __cplusplus
  160. interface IWICStream;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __IWICBitmapScaler_FWD_DEFINED__
  164. #define __IWICBitmapScaler_FWD_DEFINED__
  165. typedef interface IWICBitmapScaler IWICBitmapScaler;
  166. #ifdef __cplusplus
  167. interface IWICBitmapScaler;
  168. #endif /* __cplusplus */
  169. #endif
  170. #ifndef __IWICBitmapClipper_FWD_DEFINED__
  171. #define __IWICBitmapClipper_FWD_DEFINED__
  172. typedef interface IWICBitmapClipper IWICBitmapClipper;
  173. #ifdef __cplusplus
  174. interface IWICBitmapClipper;
  175. #endif /* __cplusplus */
  176. #endif
  177. #ifndef __IWICColorTransform_FWD_DEFINED__
  178. #define __IWICColorTransform_FWD_DEFINED__
  179. typedef interface IWICColorTransform IWICColorTransform;
  180. #ifdef __cplusplus
  181. interface IWICColorTransform;
  182. #endif /* __cplusplus */
  183. #endif
  184. #ifndef __IWICFastMetadataEncoder_FWD_DEFINED__
  185. #define __IWICFastMetadataEncoder_FWD_DEFINED__
  186. typedef interface IWICFastMetadataEncoder IWICFastMetadataEncoder;
  187. #ifdef __cplusplus
  188. interface IWICFastMetadataEncoder;
  189. #endif /* __cplusplus */
  190. #endif
  191. #ifndef __IWICImageEncoder_FWD_DEFINED__
  192. #define __IWICImageEncoder_FWD_DEFINED__
  193. typedef interface IWICImageEncoder IWICImageEncoder;
  194. #ifdef __cplusplus
  195. interface IWICImageEncoder;
  196. #endif /* __cplusplus */
  197. #endif
  198. #ifndef __IWICImagingFactory_FWD_DEFINED__
  199. #define __IWICImagingFactory_FWD_DEFINED__
  200. typedef interface IWICImagingFactory IWICImagingFactory;
  201. #ifdef __cplusplus
  202. interface IWICImagingFactory;
  203. #endif /* __cplusplus */
  204. #endif
  205. #ifndef __IWICImagingFactory2_FWD_DEFINED__
  206. #define __IWICImagingFactory2_FWD_DEFINED__
  207. typedef interface IWICImagingFactory2 IWICImagingFactory2;
  208. #ifdef __cplusplus
  209. interface IWICImagingFactory2;
  210. #endif /* __cplusplus */
  211. #endif
  212. #ifndef __IWICEnumMetadataItem_FWD_DEFINED__
  213. #define __IWICEnumMetadataItem_FWD_DEFINED__
  214. typedef interface IWICEnumMetadataItem IWICEnumMetadataItem;
  215. #ifdef __cplusplus
  216. interface IWICEnumMetadataItem;
  217. #endif /* __cplusplus */
  218. #endif
  219. #ifndef __IWICDdsDecoder_FWD_DEFINED__
  220. #define __IWICDdsDecoder_FWD_DEFINED__
  221. typedef interface IWICDdsDecoder IWICDdsDecoder;
  222. #ifdef __cplusplus
  223. interface IWICDdsDecoder;
  224. #endif /* __cplusplus */
  225. #endif
  226. #ifndef __IWICDdsEncoder_FWD_DEFINED__
  227. #define __IWICDdsEncoder_FWD_DEFINED__
  228. typedef interface IWICDdsEncoder IWICDdsEncoder;
  229. #ifdef __cplusplus
  230. interface IWICDdsEncoder;
  231. #endif /* __cplusplus */
  232. #endif
  233. #ifndef __IWICDdsFrameDecode_FWD_DEFINED__
  234. #define __IWICDdsFrameDecode_FWD_DEFINED__
  235. typedef interface IWICDdsFrameDecode IWICDdsFrameDecode;
  236. #ifdef __cplusplus
  237. interface IWICDdsFrameDecode;
  238. #endif /* __cplusplus */
  239. #endif
  240. #ifndef __IWICWineDecoder_FWD_DEFINED__
  241. #define __IWICWineDecoder_FWD_DEFINED__
  242. typedef interface IWICWineDecoder IWICWineDecoder;
  243. #ifdef __cplusplus
  244. interface IWICWineDecoder;
  245. #endif /* __cplusplus */
  246. #endif
  247. /* Headers for imported files */
  248. #include <wtypes.h>
  249. #include <propidl.h>
  250. #include <ocidl.h>
  251. #include <dxgiformat.h>
  252. #ifdef __cplusplus
  253. extern "C" {
  254. #endif
  255. #include "dcommon.h"
  256. #define WINCODEC_SDK_VERSION 0x0236
  257. typedef enum WICDecodeOptions {
  258. WICDecodeMetadataCacheOnDemand = 0x0,
  259. WICDecodeMetadataCacheOnLoad = 0x1,
  260. WICMETADATACACHEOPTION_FORCE_DWORD = 0x7fffffff
  261. } WICDecodeOptions;
  262. typedef enum WICBitmapCreateCacheOption {
  263. WICBitmapNoCache = 0x0,
  264. WICBitmapCacheOnDemand = 0x1,
  265. WICBitmapCacheOnLoad = 0x2,
  266. WICBITMAPCREATECACHEOPTION_FORCE_DWORD = 0x7fffffff
  267. } WICBitmapCreateCacheOption;
  268. typedef enum WICBitmapAlphaChannelOption {
  269. WICBitmapUseAlpha = 0x0,
  270. WICBitmapUsePremultipliedAlpha = 0x1,
  271. WICBitmapIgnoreAlpha = 0x2,
  272. WICBITMAPALPHACHANNELOPTIONS_FORCE_DWORD = 0x7fffffff
  273. } WICBitmapAlphaChannelOption;
  274. typedef enum WICBitmapDecoderCapabilities {
  275. WICBitmapDecoderCapabilitySameEncoder = 0x1,
  276. WICBitmapDecoderCapabilityCanDecodeAllImages = 0x2,
  277. WICBitmapDecoderCapabilityCanDecodeSomeImages = 0x4,
  278. WICBitmapDecoderCapabilityCanEnumerateMetadata = 0x8,
  279. WICBitmapDecoderCapabilityCanDecodeThumbnail = 0x10
  280. } WICBitmapDecoderCapabilities;
  281. typedef enum WICBitmapDitherType {
  282. WICBitmapDitherTypeNone = 0x0,
  283. WICBitmapDitherTypeSolid = 0x0,
  284. WICBitmapDitherTypeOrdered4x4 = 0x1,
  285. WICBitmapDitherTypeOrdered8x8 = 0x2,
  286. WICBitmapDitherTypeOrdered16x16 = 0x3,
  287. WICBitmapDitherTypeSpiral4x4 = 0x4,
  288. WICBitmapDitherTypeSpiral8x8 = 0x5,
  289. WICBitmapDitherTypeDualSpiral4x4 = 0x6,
  290. WICBitmapDitherTypeDualSpiral8x8 = 0x7,
  291. WICBitmapDitherTypeErrorDiffusion = 0x8,
  292. WICBITMAPDITHERTYPE_FORCE_DWORD = 0x7fffffff
  293. } WICBitmapDitherType;
  294. typedef enum WICBitmapEncoderCacheOption {
  295. WICBitmapEncoderCacheInMemory = 0x0,
  296. WICBitmapEncoderCacheTempFile = 0x1,
  297. WICBitmapEncoderNoCache = 0x2,
  298. WICBITMAPENCODERCACHEOPTION_FORCE_DWORD = 0x7fffffff
  299. } WICBitmapEncoderCacheOption;
  300. typedef enum WICBitmapInterpolationMode {
  301. WICBitmapInterpolationModeNearestNeighbor = 0x0,
  302. WICBitmapInterpolationModeLinear = 0x1,
  303. WICBitmapInterpolationModeCubic = 0x2,
  304. WICBitmapInterpolationModeFant = 0x3,
  305. WICBITMAPINTERPOLATIONMODE_FORCE_DWORD = 0x7fffffff
  306. } WICBitmapInterpolationMode;
  307. typedef enum WICBitmapLockFlags {
  308. WICBitmapLockRead = 0x1,
  309. WICBitmapLockWrite = 0x2,
  310. WICBITMAPLOCKFLAGS_FORCE_DWORD = 0x7fffffff
  311. } WICBitmapLockFlags;
  312. typedef enum WICBitmapPaletteType {
  313. WICBitmapPaletteTypeCustom = 0x0,
  314. WICBitmapPaletteTypeMedianCut = 0x1,
  315. WICBitmapPaletteTypeFixedBW = 0x2,
  316. WICBitmapPaletteTypeFixedHalftone8 = 0x3,
  317. WICBitmapPaletteTypeFixedHalftone27 = 0x4,
  318. WICBitmapPaletteTypeFixedHalftone64 = 0x5,
  319. WICBitmapPaletteTypeFixedHalftone125 = 0x6,
  320. WICBitmapPaletteTypeFixedHalftone216 = 0x7,
  321. WICBitmapPaletteTypeFixedWebPalette = WICBitmapPaletteTypeFixedHalftone216,
  322. WICBitmapPaletteTypeFixedHalftone252 = 0x8,
  323. WICBitmapPaletteTypeFixedHalftone256 = 0x9,
  324. WICBitmapPaletteTypeFixedGray4 = 0xa,
  325. WICBitmapPaletteTypeFixedGray16 = 0xb,
  326. WICBitmapPaletteTypeFixedGray256 = 0xc,
  327. WICBITMAPPALETTETYPE_FORCE_DWORD = 0x7fffffff
  328. } WICBitmapPaletteType;
  329. typedef enum WICBitmapTransformOptions {
  330. WICBitmapTransformRotate0 = 0x0,
  331. WICBitmapTransformRotate90 = 0x1,
  332. WICBitmapTransformRotate180 = 0x2,
  333. WICBitmapTransformRotate270 = 0x3,
  334. WICBitmapTransformFlipHorizontal = 0x8,
  335. WICBitmapTransformFlipVertical = 0x10,
  336. WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = 0x7fffffff
  337. } WICBitmapTransformOptions;
  338. typedef enum WICColorContextType {
  339. WICColorContextUninitialized = 0x0,
  340. WICColorContextProfile = 0x1,
  341. WICColorContextExifColorSpace = 0x2
  342. } WICColorContextType;
  343. typedef enum WICComponentType {
  344. WICDecoder = 0x1,
  345. WICEncoder = 0x2,
  346. WICPixelFormatConverter = 0x4,
  347. WICMetadataReader = 0x8,
  348. WICMetadataWriter = 0x10,
  349. WICPixelFormat = 0x20,
  350. WICCOMPONENTTYPE_FORCE_DWORD = 0x7fffffff
  351. } WICComponentType;
  352. typedef enum WICComponentSigning {
  353. WICComponentSigned = 0x1,
  354. WICComponentUnsigned = 0x2,
  355. WICComponentSafe = 0x4,
  356. WICComponentDisabled = 0x80000000
  357. } WICComponentSigning;
  358. typedef enum WICComponentEnumerateOptions {
  359. WICComponentEnumerateDefault = 0x0,
  360. WICComponentEnumerateRefresh = 0x1,
  361. WICComponentEnumerateBuiltInOnly = 0x20000000,
  362. WICComponentEnumerateUnsigned = 0x40000000,
  363. WICComponentEnumerateDisabled = 0x80000000
  364. } WICComponentEnumerateOptions;
  365. typedef enum WICJpegYCrCbSubsamplingOption {
  366. WICJpegYCrCbSubsamplingDefault = 0x0,
  367. WICJpegYCrCbSubsampling420 = 0x1,
  368. WICJpegYCrCbSubsampling422 = 0x2,
  369. WICJpegYCrCbSubsampling444 = 0x3,
  370. WICJpegYCrCbSubsampling440 = 0x4
  371. } WICJpegYCrCbSubsamplingOption;
  372. typedef enum WICPixelFormatNumericRepresentation {
  373. WICPixelFormatNumericRepresentationUnspecified = 0x0,
  374. WICPixelFormatNumericRepresentationIndexed = 0x1,
  375. WICPixelFormatNumericRepresentationUnsignedInteger = 0x2,
  376. WICPixelFormatNumericRepresentationSignedInteger = 0x3,
  377. WICPixelFormatNumericRepresentationFixed = 0x4,
  378. WICPixelFormatNumericRepresentationFloat = 0x5,
  379. WICPIXELFORMATNUMERICREPRESENTATION_FORCE_DWORD = 0x7fffffff
  380. } WICPixelFormatNumericRepresentation;
  381. typedef enum WICTiffCompressionOption {
  382. WICTiffCompressionDontCare = 0x0,
  383. WICTiffCompressionNone = 0x1,
  384. WICTiffCompressionCCITT3 = 0x2,
  385. WICTiffCompressionCCITT4 = 0x3,
  386. WICTiffCompressionLZW = 0x4,
  387. WICTiffCompressionRLE = 0x5,
  388. WICTiffCompressionZIP = 0x6,
  389. WICTiffCompressionLZWHDifferencing = 0x7,
  390. WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = 0x7fffffff
  391. } WICTiffCompressionOption;
  392. typedef enum WICPngFilterOption {
  393. WICPngFilterUnspecified = 0,
  394. WICPngFilterNone = 1,
  395. WICPngFilterSub = 2,
  396. WICPngFilterUp = 3,
  397. WICPngFilterAverage = 4,
  398. WICPngFilterPaeth = 5,
  399. WICPngFilterAdaptive = 6,
  400. WICPNFFILTEROPTION_FORCE_DWORD = 0x7fffffff
  401. } WICPngFilterOption;
  402. typedef enum WICSectionAccessLevel {
  403. WICSectionAccessLevelRead = 0x1,
  404. WICSectionAccessLevelReadWrite = 0x3,
  405. WICSectionAccessLevel_FORCE_DWORD = 0x7fffffff
  406. } WICSectionAccessLevel;
  407. typedef enum WICDdsDimension {
  408. WICDdsTexture1D = 0x0,
  409. WICDdsTexture2D = 0x1,
  410. WICDdsTexture3D = 0x2,
  411. WICDdsTextureCube = 0x3,
  412. WICDDSTEXTURE_FORCE_DWORD = 0x7fffffff
  413. } WICDdsDimension;
  414. typedef enum WICDdsAlphaMode {
  415. WICDdsAlphaModeUnknown = 0x0,
  416. WICDdsAlphaModeStraight = 0x1,
  417. WICDdsAlphaModePremultiplied = 0x2,
  418. WICDdsAlphaModeOpaque = 0x3,
  419. WICDdsAlphaModeCustom = 0x4,
  420. WICDDSALPHAMODE_FORCE_DWORD = 0x7fffffff
  421. } WICDdsAlphaMode;
  422. typedef GUID WICPixelFormatGUID;
  423. typedef REFGUID REFWICPixelFormatGUID;
  424. DEFINE_GUID(GUID_WICPixelFormatDontCare, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x00);
  425. #define GUID_WICPixelFormatUndefined GUID_WICPixelFormatDontCare
  426. DEFINE_GUID(GUID_WICPixelFormat1bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x01);
  427. DEFINE_GUID(GUID_WICPixelFormat2bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x02);
  428. DEFINE_GUID(GUID_WICPixelFormat4bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x03);
  429. DEFINE_GUID(GUID_WICPixelFormat8bppIndexed, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x04);
  430. DEFINE_GUID(GUID_WICPixelFormatBlackWhite, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x05);
  431. DEFINE_GUID(GUID_WICPixelFormat2bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x06);
  432. DEFINE_GUID(GUID_WICPixelFormat4bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x07);
  433. DEFINE_GUID(GUID_WICPixelFormat8bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x08);
  434. DEFINE_GUID(GUID_WICPixelFormat16bppGray, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0b);
  435. DEFINE_GUID(GUID_WICPixelFormat8bppAlpha, 0xe6cd0116,0xeeba,0x4161,0xaa,0x85,0x27,0xdd,0x9f,0xb3,0xa8,0x95);
  436. DEFINE_GUID(GUID_WICPixelFormat16bppBGR555, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x09);
  437. DEFINE_GUID(GUID_WICPixelFormat16bppBGR565, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0a);
  438. DEFINE_GUID(GUID_WICPixelFormat16bppBGRA5551, 0x05ec7c2b,0xf1e6,0x4961,0xad,0x46,0xe1,0xcc,0x81,0x0a,0x87,0xd2);
  439. DEFINE_GUID(GUID_WICPixelFormat24bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0c);
  440. DEFINE_GUID(GUID_WICPixelFormat24bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0d);
  441. DEFINE_GUID(GUID_WICPixelFormat32bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0e);
  442. DEFINE_GUID(GUID_WICPixelFormat32bppBGRA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0f);
  443. DEFINE_GUID(GUID_WICPixelFormat32bppPBGRA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x10);
  444. DEFINE_GUID(GUID_WICPixelFormat32bppRGB, 0xd98c6b95,0x3efe,0x47d6,0xbb,0x25,0xeb,0x17,0x48,0xab,0x0c,0xf1);
  445. DEFINE_GUID(GUID_WICPixelFormat32bppRGBA, 0xf5c7ad2d,0x6a8d,0x43dd,0xa7,0xa8,0xa2,0x99,0x35,0x26,0x1a,0xe9);
  446. DEFINE_GUID(GUID_WICPixelFormat32bppPRGBA, 0x3cc4a650,0xa527,0x4d37,0xa9,0x16,0x31,0x42,0xc7,0xeb,0xed,0xba);
  447. DEFINE_GUID(GUID_WICPixelFormat32bppGrayFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x11);
  448. DEFINE_GUID(GUID_WICPixelFormat48bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x15);
  449. DEFINE_GUID(GUID_WICPixelFormat48bppBGR, 0xe605a384,0xb468,0x46ce,0xbb,0x2e,0x36,0xf1,0x80,0xe6,0x43,0x13);
  450. DEFINE_GUID(GUID_WICPixelFormat64bppRGB, 0xa1182111,0x186d,0x4d42,0xbc,0x6a,0x9c,0x83,0x03,0xa8,0xdf,0xf9);
  451. DEFINE_GUID(GUID_WICPixelFormat64bppRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x16);
  452. DEFINE_GUID(GUID_WICPixelFormat64bppBGRA, 0x1562ff7c,0xd352,0x46f9,0x97,0x9e,0x42,0x97,0x6b,0x79,0x22,0x46);
  453. DEFINE_GUID(GUID_WICPixelFormat64bppPRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x17);
  454. DEFINE_GUID(GUID_WICPixelFormat64bppPBGRA, 0x8c518e8e,0xa4ec,0x468b,0xae,0x70,0xc9,0xa3,0x5a,0x9c,0x55,0x30);
  455. DEFINE_GUID(GUID_WICPixelFormat16bppGrayFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x13);
  456. DEFINE_GUID(GUID_WICPixelFormat32bppBGR101010, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x14);
  457. DEFINE_GUID(GUID_WICPixelFormat48bppRGBFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x12);
  458. DEFINE_GUID(GUID_WICPixelFormat48bppBGRFixedPoint, 0x49ca140e,0xcab6,0x493b,0x9d,0xdf,0x60,0x18,0x7c,0x37,0x53,0x2a);
  459. DEFINE_GUID(GUID_WICPixelFormat96bppRGBFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x18);
  460. DEFINE_GUID(GUID_WICPixelFormat96bppRGBFloat, 0xe3fed78f,0xe8db,0x4acf,0x84,0xc1,0xe9,0x7f,0x61,0x36,0xb3,0x27);
  461. DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x19);
  462. DEFINE_GUID(GUID_WICPixelFormat128bppPRGBAFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1a);
  463. DEFINE_GUID(GUID_WICPixelFormat128bppRGBFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1b);
  464. DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);
  465. DEFINE_GUID(GUID_WICPixelFormat64bppRGBAFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1d);
  466. DEFINE_GUID(GUID_WICPixelFormat64bppBGRAFixedPoint, 0x356de33c,0x54d2,0x4a23,0xbb,0x4,0x9b,0x7b,0xf9,0xb1,0xd4,0x2d);
  467. DEFINE_GUID(GUID_WICPixelFormat64bppRGBFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x40);
  468. DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1e);
  469. DEFINE_GUID(GUID_WICPixelFormat128bppRGBFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x41);
  470. DEFINE_GUID(GUID_WICPixelFormat64bppRGBAHalf, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x3a);
  471. DEFINE_GUID(GUID_WICPixelFormat64bppPRGBAHalf, 0x58ad26c2,0xc623,0x4d9d,0xb3,0x20,0x38,0x7e,0x49,0xf8,0xc4,0x42);
  472. DEFINE_GUID(GUID_WICPixelFormat64bppRGBHalf, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x42);
  473. DEFINE_GUID(GUID_WICPixelFormat48bppRGBHalf, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x3b);
  474. DEFINE_GUID(GUID_WICPixelFormat32bppRGBE, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x3d);
  475. DEFINE_GUID(GUID_WICPixelFormat16bppGrayHalf, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x3e);
  476. DEFINE_GUID(GUID_WICPixelFormat32bppGrayFixedPoint, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x3f);
  477. DEFINE_GUID(GUID_WICPixelFormat32bppRGBA1010102, 0x25238d72,0xfcf9,0x4522,0xb5,0x14,0x55,0x78,0xe5,0xad,0x55,0xe0);
  478. DEFINE_GUID(GUID_WICPixelFormat32bppRGBA1010102XR, 0x00de6b9a,0xc101,0x434b,0xb5,0x02,0xd0,0x16,0x5e,0xe1,0x12,0x2c);
  479. DEFINE_GUID(GUID_WICPixelFormat32bppR10G10B10A2, 0x604e1bb5,0x8a3c,0x4b65,0xb1,0x1c,0xbc,0x0b,0x8d,0xd7,0x5b,0x7f);
  480. DEFINE_GUID(GUID_WICPixelFormat32bppR10G10B10A2HDR10, 0x9c215c5d,0x1acc,0x4f0e,0xa4,0xbc,0x70,0xfb,0x3a,0xe8,0xfd,0x28);
  481. DEFINE_GUID(GUID_WICPixelFormat64bppCMYK, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1f);
  482. DEFINE_GUID(GUID_WICPixelFormat24bpp3Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x20);
  483. DEFINE_GUID(GUID_WICPixelFormat32bpp4Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x21);
  484. DEFINE_GUID(GUID_WICPixelFormat40bpp5Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x22);
  485. DEFINE_GUID(GUID_WICPixelFormat48bpp6Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x23);
  486. DEFINE_GUID(GUID_WICPixelFormat56bpp7Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x24);
  487. DEFINE_GUID(GUID_WICPixelFormat64bpp8Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x25);
  488. DEFINE_GUID(GUID_WICPixelFormat48bpp3Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x26);
  489. DEFINE_GUID(GUID_WICPixelFormat64bpp4Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x27);
  490. DEFINE_GUID(GUID_WICPixelFormat80bpp5Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x28);
  491. DEFINE_GUID(GUID_WICPixelFormat96bpp6Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x29);
  492. DEFINE_GUID(GUID_WICPixelFormat112bpp7Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2a);
  493. DEFINE_GUID(GUID_WICPixelFormat128bpp8Channels, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2b);
  494. DEFINE_GUID(GUID_WICPixelFormat40bppCMYKAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2c);
  495. DEFINE_GUID(GUID_WICPixelFormat80bppCMYKAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2d);
  496. DEFINE_GUID(GUID_WICPixelFormat32bpp3ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2e);
  497. DEFINE_GUID(GUID_WICPixelFormat40bpp4ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x2f);
  498. DEFINE_GUID(GUID_WICPixelFormat48bpp5ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x30);
  499. DEFINE_GUID(GUID_WICPixelFormat56bpp6ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x31);
  500. DEFINE_GUID(GUID_WICPixelFormat64bpp7ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x32);
  501. DEFINE_GUID(GUID_WICPixelFormat72bpp8ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x33);
  502. DEFINE_GUID(GUID_WICPixelFormat64bpp3ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x34);
  503. DEFINE_GUID(GUID_WICPixelFormat80bpp4ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x35);
  504. DEFINE_GUID(GUID_WICPixelFormat96bpp5ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x36);
  505. DEFINE_GUID(GUID_WICPixelFormat112bpp6ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x37);
  506. DEFINE_GUID(GUID_WICPixelFormat128bpp7ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x38);
  507. DEFINE_GUID(GUID_WICPixelFormat144bpp8ChannelsAlpha, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x39);
  508. DEFINE_GUID(GUID_WICPixelFormat8bppY, 0x91b4db54,0x2df9,0x42f0,0xb4,0x49,0x29,0x09,0xbb,0x3d,0xf8,0x8e);
  509. DEFINE_GUID(GUID_WICPixelFormat8bppCb, 0x1339f224,0x6bfe,0x4c3e,0x93,0x02,0xe4,0xf3,0xa6,0xd0,0xca,0x2a);
  510. DEFINE_GUID(GUID_WICPixelFormat8bppCr, 0xb8145053,0x2116,0x49f0,0x88,0x35,0xed,0x84,0x4b,0x20,0x5c,0x51);
  511. DEFINE_GUID(GUID_WICPixelFormat16bppCbCr, 0xff95ba6e,0x11e0,0x4263,0xbb,0x45,0x01,0x72,0x1f,0x34,0x60,0xa4);
  512. DEFINE_GUID(GUID_WICPixelFormat16bppYQuantizedDctCoefficients, 0xa355f433,0x48e8,0x4a42,0x84,0xd8,0xe2,0xaa,0x26,0xca,0x80,0xa4);
  513. DEFINE_GUID(GUID_WICPixelFormat16bppCbQuantizedDctCoefficients, 0xd2c4ff61,0x56a5,0x49c2,0x8b,0x5c,0x4c,0x19,0x25,0x96,0x48,0x37);
  514. DEFINE_GUID(GUID_WICPixelFormat16bppCrQuantizedDctCoefficients, 0x2fe354f0,0x1680,0x42d8,0x92,0x31,0xe7,0x3c,0x05,0x65,0xbf,0xc1);
  515. #if 0
  516. typedef DWORD *D2D1_PIXEL_FORMAT;
  517. #endif
  518. typedef struct WICRect {
  519. INT X;
  520. INT Y;
  521. INT Width;
  522. INT Height;
  523. } WICRect;
  524. typedef struct WICBitmapPattern {
  525. ULARGE_INTEGER Position;
  526. ULONG Length;
  527. BYTE *Pattern;
  528. BYTE *Mask;
  529. WINBOOL EndOfStream;
  530. } WICBitmapPattern;
  531. typedef struct WICImageParameters {
  532. D2D1_PIXEL_FORMAT PixelFormat;
  533. FLOAT DpiX;
  534. FLOAT DpiY;
  535. FLOAT Top;
  536. FLOAT Left;
  537. UINT32 PixelWidth;
  538. UINT32 PixelHeight;
  539. } WICImageParameters;
  540. typedef struct WICDdsParameters {
  541. UINT Width;
  542. UINT Height;
  543. UINT Depth;
  544. UINT MipLevels;
  545. UINT ArraySize;
  546. DXGI_FORMAT DxgiFormat;
  547. WICDdsDimension Dimension;
  548. WICDdsAlphaMode AlphaMode;
  549. } WICDdsParameters;
  550. typedef struct WICDdsFormatInfo {
  551. DXGI_FORMAT DxgiFormat;
  552. UINT BytesPerBlock;
  553. UINT BlockWidth;
  554. UINT BlockHeight;
  555. } WICDdsFormatInfo;
  556. typedef UINT32 WICColor;
  557. #ifndef __ID2D1Device_FWD_DEFINED__
  558. #define __ID2D1Device_FWD_DEFINED__
  559. typedef interface ID2D1Device ID2D1Device;
  560. #ifdef __cplusplus
  561. interface ID2D1Device;
  562. #endif /* __cplusplus */
  563. #endif
  564. #ifndef __ID2D1Image_FWD_DEFINED__
  565. #define __ID2D1Image_FWD_DEFINED__
  566. typedef interface ID2D1Image ID2D1Image;
  567. #ifdef __cplusplus
  568. interface ID2D1Image;
  569. #endif /* __cplusplus */
  570. #endif
  571. #ifndef __IWICPalette_FWD_DEFINED__
  572. #define __IWICPalette_FWD_DEFINED__
  573. typedef interface IWICPalette IWICPalette;
  574. #ifdef __cplusplus
  575. interface IWICPalette;
  576. #endif /* __cplusplus */
  577. #endif
  578. /*****************************************************************************
  579. * IWICColorContext interface
  580. */
  581. #ifndef __IWICColorContext_INTERFACE_DEFINED__
  582. #define __IWICColorContext_INTERFACE_DEFINED__
  583. DEFINE_GUID(IID_IWICColorContext, 0x3c613a02, 0x34b2, 0x44ea, 0x9a,0x7c, 0x45,0xae,0xa9,0xc6,0xfd,0x6d);
  584. #if defined(__cplusplus) && !defined(CINTERFACE)
  585. MIDL_INTERFACE("3c613a02-34b2-44ea-9a7c-45aea9c6fd6d")
  586. IWICColorContext : public IUnknown
  587. {
  588. virtual HRESULT STDMETHODCALLTYPE InitializeFromFilename(
  589. LPCWSTR wzFilename) = 0;
  590. virtual HRESULT STDMETHODCALLTYPE InitializeFromMemory(
  591. const BYTE *pbBuffer,
  592. UINT cbBufferSize) = 0;
  593. virtual HRESULT STDMETHODCALLTYPE InitializeFromExifColorSpace(
  594. UINT value) = 0;
  595. virtual HRESULT STDMETHODCALLTYPE GetType(
  596. WICColorContextType *pType) = 0;
  597. virtual HRESULT STDMETHODCALLTYPE GetProfileBytes(
  598. UINT cbBuffer,
  599. BYTE *pbBuffer,
  600. UINT *pcbActual) = 0;
  601. virtual HRESULT STDMETHODCALLTYPE GetExifColorSpace(
  602. UINT *pValue) = 0;
  603. };
  604. #ifdef __CRT_UUID_DECL
  605. __CRT_UUID_DECL(IWICColorContext, 0x3c613a02, 0x34b2, 0x44ea, 0x9a,0x7c, 0x45,0xae,0xa9,0xc6,0xfd,0x6d)
  606. #endif
  607. #else
  608. typedef struct IWICColorContextVtbl {
  609. BEGIN_INTERFACE
  610. /*** IUnknown methods ***/
  611. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  612. IWICColorContext *This,
  613. REFIID riid,
  614. void **ppvObject);
  615. ULONG (STDMETHODCALLTYPE *AddRef)(
  616. IWICColorContext *This);
  617. ULONG (STDMETHODCALLTYPE *Release)(
  618. IWICColorContext *This);
  619. /*** IWICColorContext methods ***/
  620. HRESULT (STDMETHODCALLTYPE *InitializeFromFilename)(
  621. IWICColorContext *This,
  622. LPCWSTR wzFilename);
  623. HRESULT (STDMETHODCALLTYPE *InitializeFromMemory)(
  624. IWICColorContext *This,
  625. const BYTE *pbBuffer,
  626. UINT cbBufferSize);
  627. HRESULT (STDMETHODCALLTYPE *InitializeFromExifColorSpace)(
  628. IWICColorContext *This,
  629. UINT value);
  630. HRESULT (STDMETHODCALLTYPE *GetType)(
  631. IWICColorContext *This,
  632. WICColorContextType *pType);
  633. HRESULT (STDMETHODCALLTYPE *GetProfileBytes)(
  634. IWICColorContext *This,
  635. UINT cbBuffer,
  636. BYTE *pbBuffer,
  637. UINT *pcbActual);
  638. HRESULT (STDMETHODCALLTYPE *GetExifColorSpace)(
  639. IWICColorContext *This,
  640. UINT *pValue);
  641. END_INTERFACE
  642. } IWICColorContextVtbl;
  643. interface IWICColorContext {
  644. CONST_VTBL IWICColorContextVtbl* lpVtbl;
  645. };
  646. #ifdef COBJMACROS
  647. #ifndef WIDL_C_INLINE_WRAPPERS
  648. /*** IUnknown methods ***/
  649. #define IWICColorContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  650. #define IWICColorContext_AddRef(This) (This)->lpVtbl->AddRef(This)
  651. #define IWICColorContext_Release(This) (This)->lpVtbl->Release(This)
  652. /*** IWICColorContext methods ***/
  653. #define IWICColorContext_InitializeFromFilename(This,wzFilename) (This)->lpVtbl->InitializeFromFilename(This,wzFilename)
  654. #define IWICColorContext_InitializeFromMemory(This,pbBuffer,cbBufferSize) (This)->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize)
  655. #define IWICColorContext_InitializeFromExifColorSpace(This,value) (This)->lpVtbl->InitializeFromExifColorSpace(This,value)
  656. #define IWICColorContext_GetType(This,pType) (This)->lpVtbl->GetType(This,pType)
  657. #define IWICColorContext_GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual) (This)->lpVtbl->GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual)
  658. #define IWICColorContext_GetExifColorSpace(This,pValue) (This)->lpVtbl->GetExifColorSpace(This,pValue)
  659. #else
  660. /*** IUnknown methods ***/
  661. static FORCEINLINE HRESULT IWICColorContext_QueryInterface(IWICColorContext* This,REFIID riid,void **ppvObject) {
  662. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  663. }
  664. static FORCEINLINE ULONG IWICColorContext_AddRef(IWICColorContext* This) {
  665. return This->lpVtbl->AddRef(This);
  666. }
  667. static FORCEINLINE ULONG IWICColorContext_Release(IWICColorContext* This) {
  668. return This->lpVtbl->Release(This);
  669. }
  670. /*** IWICColorContext methods ***/
  671. static FORCEINLINE HRESULT IWICColorContext_InitializeFromFilename(IWICColorContext* This,LPCWSTR wzFilename) {
  672. return This->lpVtbl->InitializeFromFilename(This,wzFilename);
  673. }
  674. static FORCEINLINE HRESULT IWICColorContext_InitializeFromMemory(IWICColorContext* This,const BYTE *pbBuffer,UINT cbBufferSize) {
  675. return This->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize);
  676. }
  677. static FORCEINLINE HRESULT IWICColorContext_InitializeFromExifColorSpace(IWICColorContext* This,UINT value) {
  678. return This->lpVtbl->InitializeFromExifColorSpace(This,value);
  679. }
  680. static FORCEINLINE HRESULT IWICColorContext_GetType(IWICColorContext* This,WICColorContextType *pType) {
  681. return This->lpVtbl->GetType(This,pType);
  682. }
  683. static FORCEINLINE HRESULT IWICColorContext_GetProfileBytes(IWICColorContext* This,UINT cbBuffer,BYTE *pbBuffer,UINT *pcbActual) {
  684. return This->lpVtbl->GetProfileBytes(This,cbBuffer,pbBuffer,pcbActual);
  685. }
  686. static FORCEINLINE HRESULT IWICColorContext_GetExifColorSpace(IWICColorContext* This,UINT *pValue) {
  687. return This->lpVtbl->GetExifColorSpace(This,pValue);
  688. }
  689. #endif
  690. #endif
  691. #endif
  692. #endif /* __IWICColorContext_INTERFACE_DEFINED__ */
  693. /*****************************************************************************
  694. * IWICBitmapSource interface
  695. */
  696. #ifndef __IWICBitmapSource_INTERFACE_DEFINED__
  697. #define __IWICBitmapSource_INTERFACE_DEFINED__
  698. DEFINE_GUID(IID_IWICBitmapSource, 0x00000120, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  699. #if defined(__cplusplus) && !defined(CINTERFACE)
  700. MIDL_INTERFACE("00000120-a8f2-4877-ba0a-fd2b6645fb94")
  701. IWICBitmapSource : public IUnknown
  702. {
  703. virtual HRESULT STDMETHODCALLTYPE GetSize(
  704. UINT *puiWidth,
  705. UINT *puiHeight) = 0;
  706. virtual HRESULT STDMETHODCALLTYPE GetPixelFormat(
  707. WICPixelFormatGUID *pPixelFormat) = 0;
  708. virtual HRESULT STDMETHODCALLTYPE GetResolution(
  709. double *pDpiX,
  710. double *pDpiY) = 0;
  711. virtual HRESULT STDMETHODCALLTYPE CopyPalette(
  712. IWICPalette *pIPalette) = 0;
  713. virtual HRESULT STDMETHODCALLTYPE CopyPixels(
  714. const WICRect *prc,
  715. UINT cbStride,
  716. UINT cbBufferSize,
  717. BYTE *pbBuffer) = 0;
  718. };
  719. #ifdef __CRT_UUID_DECL
  720. __CRT_UUID_DECL(IWICBitmapSource, 0x00000120, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  721. #endif
  722. #else
  723. typedef struct IWICBitmapSourceVtbl {
  724. BEGIN_INTERFACE
  725. /*** IUnknown methods ***/
  726. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  727. IWICBitmapSource *This,
  728. REFIID riid,
  729. void **ppvObject);
  730. ULONG (STDMETHODCALLTYPE *AddRef)(
  731. IWICBitmapSource *This);
  732. ULONG (STDMETHODCALLTYPE *Release)(
  733. IWICBitmapSource *This);
  734. /*** IWICBitmapSource methods ***/
  735. HRESULT (STDMETHODCALLTYPE *GetSize)(
  736. IWICBitmapSource *This,
  737. UINT *puiWidth,
  738. UINT *puiHeight);
  739. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  740. IWICBitmapSource *This,
  741. WICPixelFormatGUID *pPixelFormat);
  742. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  743. IWICBitmapSource *This,
  744. double *pDpiX,
  745. double *pDpiY);
  746. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  747. IWICBitmapSource *This,
  748. IWICPalette *pIPalette);
  749. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  750. IWICBitmapSource *This,
  751. const WICRect *prc,
  752. UINT cbStride,
  753. UINT cbBufferSize,
  754. BYTE *pbBuffer);
  755. END_INTERFACE
  756. } IWICBitmapSourceVtbl;
  757. interface IWICBitmapSource {
  758. CONST_VTBL IWICBitmapSourceVtbl* lpVtbl;
  759. };
  760. #ifdef COBJMACROS
  761. #ifndef WIDL_C_INLINE_WRAPPERS
  762. /*** IUnknown methods ***/
  763. #define IWICBitmapSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  764. #define IWICBitmapSource_AddRef(This) (This)->lpVtbl->AddRef(This)
  765. #define IWICBitmapSource_Release(This) (This)->lpVtbl->Release(This)
  766. /*** IWICBitmapSource methods ***/
  767. #define IWICBitmapSource_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  768. #define IWICBitmapSource_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  769. #define IWICBitmapSource_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  770. #define IWICBitmapSource_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  771. #define IWICBitmapSource_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  772. #else
  773. /*** IUnknown methods ***/
  774. static FORCEINLINE HRESULT IWICBitmapSource_QueryInterface(IWICBitmapSource* This,REFIID riid,void **ppvObject) {
  775. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  776. }
  777. static FORCEINLINE ULONG IWICBitmapSource_AddRef(IWICBitmapSource* This) {
  778. return This->lpVtbl->AddRef(This);
  779. }
  780. static FORCEINLINE ULONG IWICBitmapSource_Release(IWICBitmapSource* This) {
  781. return This->lpVtbl->Release(This);
  782. }
  783. /*** IWICBitmapSource methods ***/
  784. static FORCEINLINE HRESULT IWICBitmapSource_GetSize(IWICBitmapSource* This,UINT *puiWidth,UINT *puiHeight) {
  785. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  786. }
  787. static FORCEINLINE HRESULT IWICBitmapSource_GetPixelFormat(IWICBitmapSource* This,WICPixelFormatGUID *pPixelFormat) {
  788. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  789. }
  790. static FORCEINLINE HRESULT IWICBitmapSource_GetResolution(IWICBitmapSource* This,double *pDpiX,double *pDpiY) {
  791. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  792. }
  793. static FORCEINLINE HRESULT IWICBitmapSource_CopyPalette(IWICBitmapSource* This,IWICPalette *pIPalette) {
  794. return This->lpVtbl->CopyPalette(This,pIPalette);
  795. }
  796. static FORCEINLINE HRESULT IWICBitmapSource_CopyPixels(IWICBitmapSource* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  797. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  798. }
  799. #endif
  800. #endif
  801. #endif
  802. #endif /* __IWICBitmapSource_INTERFACE_DEFINED__ */
  803. /*****************************************************************************
  804. * IWICBitmapLock interface
  805. */
  806. #ifndef __IWICBitmapLock_INTERFACE_DEFINED__
  807. #define __IWICBitmapLock_INTERFACE_DEFINED__
  808. DEFINE_GUID(IID_IWICBitmapLock, 0x00000123, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  809. #if defined(__cplusplus) && !defined(CINTERFACE)
  810. MIDL_INTERFACE("00000123-a8f2-4877-ba0a-fd2b6645fb94")
  811. IWICBitmapLock : public IUnknown
  812. {
  813. virtual HRESULT STDMETHODCALLTYPE GetSize(
  814. UINT *pWidth,
  815. UINT *pHeight) = 0;
  816. virtual HRESULT STDMETHODCALLTYPE GetStride(
  817. UINT *pcbStride) = 0;
  818. virtual HRESULT STDMETHODCALLTYPE GetDataPointer(
  819. UINT *pcbBufferSize,
  820. BYTE **ppbData) = 0;
  821. virtual HRESULT STDMETHODCALLTYPE GetPixelFormat(
  822. WICPixelFormatGUID *pPixelFormat) = 0;
  823. };
  824. #ifdef __CRT_UUID_DECL
  825. __CRT_UUID_DECL(IWICBitmapLock, 0x00000123, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  826. #endif
  827. #else
  828. typedef struct IWICBitmapLockVtbl {
  829. BEGIN_INTERFACE
  830. /*** IUnknown methods ***/
  831. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  832. IWICBitmapLock *This,
  833. REFIID riid,
  834. void **ppvObject);
  835. ULONG (STDMETHODCALLTYPE *AddRef)(
  836. IWICBitmapLock *This);
  837. ULONG (STDMETHODCALLTYPE *Release)(
  838. IWICBitmapLock *This);
  839. /*** IWICBitmapLock methods ***/
  840. HRESULT (STDMETHODCALLTYPE *GetSize)(
  841. IWICBitmapLock *This,
  842. UINT *pWidth,
  843. UINT *pHeight);
  844. HRESULT (STDMETHODCALLTYPE *GetStride)(
  845. IWICBitmapLock *This,
  846. UINT *pcbStride);
  847. HRESULT (STDMETHODCALLTYPE *GetDataPointer)(
  848. IWICBitmapLock *This,
  849. UINT *pcbBufferSize,
  850. BYTE **ppbData);
  851. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  852. IWICBitmapLock *This,
  853. WICPixelFormatGUID *pPixelFormat);
  854. END_INTERFACE
  855. } IWICBitmapLockVtbl;
  856. interface IWICBitmapLock {
  857. CONST_VTBL IWICBitmapLockVtbl* lpVtbl;
  858. };
  859. #ifdef COBJMACROS
  860. #ifndef WIDL_C_INLINE_WRAPPERS
  861. /*** IUnknown methods ***/
  862. #define IWICBitmapLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  863. #define IWICBitmapLock_AddRef(This) (This)->lpVtbl->AddRef(This)
  864. #define IWICBitmapLock_Release(This) (This)->lpVtbl->Release(This)
  865. /*** IWICBitmapLock methods ***/
  866. #define IWICBitmapLock_GetSize(This,pWidth,pHeight) (This)->lpVtbl->GetSize(This,pWidth,pHeight)
  867. #define IWICBitmapLock_GetStride(This,pcbStride) (This)->lpVtbl->GetStride(This,pcbStride)
  868. #define IWICBitmapLock_GetDataPointer(This,pcbBufferSize,ppbData) (This)->lpVtbl->GetDataPointer(This,pcbBufferSize,ppbData)
  869. #define IWICBitmapLock_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  870. #else
  871. /*** IUnknown methods ***/
  872. static FORCEINLINE HRESULT IWICBitmapLock_QueryInterface(IWICBitmapLock* This,REFIID riid,void **ppvObject) {
  873. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  874. }
  875. static FORCEINLINE ULONG IWICBitmapLock_AddRef(IWICBitmapLock* This) {
  876. return This->lpVtbl->AddRef(This);
  877. }
  878. static FORCEINLINE ULONG IWICBitmapLock_Release(IWICBitmapLock* This) {
  879. return This->lpVtbl->Release(This);
  880. }
  881. /*** IWICBitmapLock methods ***/
  882. static FORCEINLINE HRESULT IWICBitmapLock_GetSize(IWICBitmapLock* This,UINT *pWidth,UINT *pHeight) {
  883. return This->lpVtbl->GetSize(This,pWidth,pHeight);
  884. }
  885. static FORCEINLINE HRESULT IWICBitmapLock_GetStride(IWICBitmapLock* This,UINT *pcbStride) {
  886. return This->lpVtbl->GetStride(This,pcbStride);
  887. }
  888. static FORCEINLINE HRESULT IWICBitmapLock_GetDataPointer(IWICBitmapLock* This,UINT *pcbBufferSize,BYTE **ppbData) {
  889. return This->lpVtbl->GetDataPointer(This,pcbBufferSize,ppbData);
  890. }
  891. static FORCEINLINE HRESULT IWICBitmapLock_GetPixelFormat(IWICBitmapLock* This,WICPixelFormatGUID *pPixelFormat) {
  892. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  893. }
  894. #endif
  895. #endif
  896. #endif
  897. #endif /* __IWICBitmapLock_INTERFACE_DEFINED__ */
  898. /*****************************************************************************
  899. * IWICBitmapFlipRotator interface
  900. */
  901. #ifndef __IWICBitmapFlipRotator_INTERFACE_DEFINED__
  902. #define __IWICBitmapFlipRotator_INTERFACE_DEFINED__
  903. DEFINE_GUID(IID_IWICBitmapFlipRotator, 0x5009834f, 0x2d6a, 0x41ce, 0x9e,0x1b, 0x17,0xc5,0xaf,0xf7,0xa7,0x82);
  904. #if defined(__cplusplus) && !defined(CINTERFACE)
  905. MIDL_INTERFACE("5009834f-2d6a-41ce-9e1b-17c5aff7a782")
  906. IWICBitmapFlipRotator : public IWICBitmapSource
  907. {
  908. virtual HRESULT STDMETHODCALLTYPE Initialize(
  909. IWICBitmapSource *pISource,
  910. WICBitmapTransformOptions options) = 0;
  911. };
  912. #ifdef __CRT_UUID_DECL
  913. __CRT_UUID_DECL(IWICBitmapFlipRotator, 0x5009834f, 0x2d6a, 0x41ce, 0x9e,0x1b, 0x17,0xc5,0xaf,0xf7,0xa7,0x82)
  914. #endif
  915. #else
  916. typedef struct IWICBitmapFlipRotatorVtbl {
  917. BEGIN_INTERFACE
  918. /*** IUnknown methods ***/
  919. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  920. IWICBitmapFlipRotator *This,
  921. REFIID riid,
  922. void **ppvObject);
  923. ULONG (STDMETHODCALLTYPE *AddRef)(
  924. IWICBitmapFlipRotator *This);
  925. ULONG (STDMETHODCALLTYPE *Release)(
  926. IWICBitmapFlipRotator *This);
  927. /*** IWICBitmapSource methods ***/
  928. HRESULT (STDMETHODCALLTYPE *GetSize)(
  929. IWICBitmapFlipRotator *This,
  930. UINT *puiWidth,
  931. UINT *puiHeight);
  932. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  933. IWICBitmapFlipRotator *This,
  934. WICPixelFormatGUID *pPixelFormat);
  935. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  936. IWICBitmapFlipRotator *This,
  937. double *pDpiX,
  938. double *pDpiY);
  939. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  940. IWICBitmapFlipRotator *This,
  941. IWICPalette *pIPalette);
  942. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  943. IWICBitmapFlipRotator *This,
  944. const WICRect *prc,
  945. UINT cbStride,
  946. UINT cbBufferSize,
  947. BYTE *pbBuffer);
  948. /*** IWICBitmapFlipRotator methods ***/
  949. HRESULT (STDMETHODCALLTYPE *Initialize)(
  950. IWICBitmapFlipRotator *This,
  951. IWICBitmapSource *pISource,
  952. WICBitmapTransformOptions options);
  953. END_INTERFACE
  954. } IWICBitmapFlipRotatorVtbl;
  955. interface IWICBitmapFlipRotator {
  956. CONST_VTBL IWICBitmapFlipRotatorVtbl* lpVtbl;
  957. };
  958. #ifdef COBJMACROS
  959. #ifndef WIDL_C_INLINE_WRAPPERS
  960. /*** IUnknown methods ***/
  961. #define IWICBitmapFlipRotator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  962. #define IWICBitmapFlipRotator_AddRef(This) (This)->lpVtbl->AddRef(This)
  963. #define IWICBitmapFlipRotator_Release(This) (This)->lpVtbl->Release(This)
  964. /*** IWICBitmapSource methods ***/
  965. #define IWICBitmapFlipRotator_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  966. #define IWICBitmapFlipRotator_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  967. #define IWICBitmapFlipRotator_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  968. #define IWICBitmapFlipRotator_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  969. #define IWICBitmapFlipRotator_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  970. /*** IWICBitmapFlipRotator methods ***/
  971. #define IWICBitmapFlipRotator_Initialize(This,pISource,options) (This)->lpVtbl->Initialize(This,pISource,options)
  972. #else
  973. /*** IUnknown methods ***/
  974. static FORCEINLINE HRESULT IWICBitmapFlipRotator_QueryInterface(IWICBitmapFlipRotator* This,REFIID riid,void **ppvObject) {
  975. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  976. }
  977. static FORCEINLINE ULONG IWICBitmapFlipRotator_AddRef(IWICBitmapFlipRotator* This) {
  978. return This->lpVtbl->AddRef(This);
  979. }
  980. static FORCEINLINE ULONG IWICBitmapFlipRotator_Release(IWICBitmapFlipRotator* This) {
  981. return This->lpVtbl->Release(This);
  982. }
  983. /*** IWICBitmapSource methods ***/
  984. static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetSize(IWICBitmapFlipRotator* This,UINT *puiWidth,UINT *puiHeight) {
  985. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  986. }
  987. static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetPixelFormat(IWICBitmapFlipRotator* This,WICPixelFormatGUID *pPixelFormat) {
  988. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  989. }
  990. static FORCEINLINE HRESULT IWICBitmapFlipRotator_GetResolution(IWICBitmapFlipRotator* This,double *pDpiX,double *pDpiY) {
  991. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  992. }
  993. static FORCEINLINE HRESULT IWICBitmapFlipRotator_CopyPalette(IWICBitmapFlipRotator* This,IWICPalette *pIPalette) {
  994. return This->lpVtbl->CopyPalette(This,pIPalette);
  995. }
  996. static FORCEINLINE HRESULT IWICBitmapFlipRotator_CopyPixels(IWICBitmapFlipRotator* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  997. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  998. }
  999. /*** IWICBitmapFlipRotator methods ***/
  1000. static FORCEINLINE HRESULT IWICBitmapFlipRotator_Initialize(IWICBitmapFlipRotator* This,IWICBitmapSource *pISource,WICBitmapTransformOptions options) {
  1001. return This->lpVtbl->Initialize(This,pISource,options);
  1002. }
  1003. #endif
  1004. #endif
  1005. #endif
  1006. #endif /* __IWICBitmapFlipRotator_INTERFACE_DEFINED__ */
  1007. /*****************************************************************************
  1008. * IWICBitmap interface
  1009. */
  1010. #ifndef __IWICBitmap_INTERFACE_DEFINED__
  1011. #define __IWICBitmap_INTERFACE_DEFINED__
  1012. DEFINE_GUID(IID_IWICBitmap, 0x00000121, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  1013. #if defined(__cplusplus) && !defined(CINTERFACE)
  1014. MIDL_INTERFACE("00000121-a8f2-4877-ba0a-fd2b6645fb94")
  1015. IWICBitmap : public IWICBitmapSource
  1016. {
  1017. virtual HRESULT STDMETHODCALLTYPE Lock(
  1018. const WICRect *prcLock,
  1019. DWORD flags,
  1020. IWICBitmapLock **ppILock) = 0;
  1021. virtual HRESULT STDMETHODCALLTYPE SetPalette(
  1022. IWICPalette *pIPalette) = 0;
  1023. virtual HRESULT STDMETHODCALLTYPE SetResolution(
  1024. double dpiX,
  1025. double dpiY) = 0;
  1026. };
  1027. #ifdef __CRT_UUID_DECL
  1028. __CRT_UUID_DECL(IWICBitmap, 0x00000121, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  1029. #endif
  1030. #else
  1031. typedef struct IWICBitmapVtbl {
  1032. BEGIN_INTERFACE
  1033. /*** IUnknown methods ***/
  1034. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1035. IWICBitmap *This,
  1036. REFIID riid,
  1037. void **ppvObject);
  1038. ULONG (STDMETHODCALLTYPE *AddRef)(
  1039. IWICBitmap *This);
  1040. ULONG (STDMETHODCALLTYPE *Release)(
  1041. IWICBitmap *This);
  1042. /*** IWICBitmapSource methods ***/
  1043. HRESULT (STDMETHODCALLTYPE *GetSize)(
  1044. IWICBitmap *This,
  1045. UINT *puiWidth,
  1046. UINT *puiHeight);
  1047. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  1048. IWICBitmap *This,
  1049. WICPixelFormatGUID *pPixelFormat);
  1050. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  1051. IWICBitmap *This,
  1052. double *pDpiX,
  1053. double *pDpiY);
  1054. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  1055. IWICBitmap *This,
  1056. IWICPalette *pIPalette);
  1057. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  1058. IWICBitmap *This,
  1059. const WICRect *prc,
  1060. UINT cbStride,
  1061. UINT cbBufferSize,
  1062. BYTE *pbBuffer);
  1063. /*** IWICBitmap methods ***/
  1064. HRESULT (STDMETHODCALLTYPE *Lock)(
  1065. IWICBitmap *This,
  1066. const WICRect *prcLock,
  1067. DWORD flags,
  1068. IWICBitmapLock **ppILock);
  1069. HRESULT (STDMETHODCALLTYPE *SetPalette)(
  1070. IWICBitmap *This,
  1071. IWICPalette *pIPalette);
  1072. HRESULT (STDMETHODCALLTYPE *SetResolution)(
  1073. IWICBitmap *This,
  1074. double dpiX,
  1075. double dpiY);
  1076. END_INTERFACE
  1077. } IWICBitmapVtbl;
  1078. interface IWICBitmap {
  1079. CONST_VTBL IWICBitmapVtbl* lpVtbl;
  1080. };
  1081. #ifdef COBJMACROS
  1082. #ifndef WIDL_C_INLINE_WRAPPERS
  1083. /*** IUnknown methods ***/
  1084. #define IWICBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1085. #define IWICBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
  1086. #define IWICBitmap_Release(This) (This)->lpVtbl->Release(This)
  1087. /*** IWICBitmapSource methods ***/
  1088. #define IWICBitmap_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  1089. #define IWICBitmap_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  1090. #define IWICBitmap_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  1091. #define IWICBitmap_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  1092. #define IWICBitmap_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  1093. /*** IWICBitmap methods ***/
  1094. #define IWICBitmap_Lock(This,prcLock,flags,ppILock) (This)->lpVtbl->Lock(This,prcLock,flags,ppILock)
  1095. #define IWICBitmap_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
  1096. #define IWICBitmap_SetResolution(This,dpiX,dpiY) (This)->lpVtbl->SetResolution(This,dpiX,dpiY)
  1097. #else
  1098. /*** IUnknown methods ***/
  1099. static FORCEINLINE HRESULT IWICBitmap_QueryInterface(IWICBitmap* This,REFIID riid,void **ppvObject) {
  1100. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1101. }
  1102. static FORCEINLINE ULONG IWICBitmap_AddRef(IWICBitmap* This) {
  1103. return This->lpVtbl->AddRef(This);
  1104. }
  1105. static FORCEINLINE ULONG IWICBitmap_Release(IWICBitmap* This) {
  1106. return This->lpVtbl->Release(This);
  1107. }
  1108. /*** IWICBitmapSource methods ***/
  1109. static FORCEINLINE HRESULT IWICBitmap_GetSize(IWICBitmap* This,UINT *puiWidth,UINT *puiHeight) {
  1110. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  1111. }
  1112. static FORCEINLINE HRESULT IWICBitmap_GetPixelFormat(IWICBitmap* This,WICPixelFormatGUID *pPixelFormat) {
  1113. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  1114. }
  1115. static FORCEINLINE HRESULT IWICBitmap_GetResolution(IWICBitmap* This,double *pDpiX,double *pDpiY) {
  1116. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  1117. }
  1118. static FORCEINLINE HRESULT IWICBitmap_CopyPalette(IWICBitmap* This,IWICPalette *pIPalette) {
  1119. return This->lpVtbl->CopyPalette(This,pIPalette);
  1120. }
  1121. static FORCEINLINE HRESULT IWICBitmap_CopyPixels(IWICBitmap* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  1122. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  1123. }
  1124. /*** IWICBitmap methods ***/
  1125. static FORCEINLINE HRESULT IWICBitmap_Lock(IWICBitmap* This,const WICRect *prcLock,DWORD flags,IWICBitmapLock **ppILock) {
  1126. return This->lpVtbl->Lock(This,prcLock,flags,ppILock);
  1127. }
  1128. static FORCEINLINE HRESULT IWICBitmap_SetPalette(IWICBitmap* This,IWICPalette *pIPalette) {
  1129. return This->lpVtbl->SetPalette(This,pIPalette);
  1130. }
  1131. static FORCEINLINE HRESULT IWICBitmap_SetResolution(IWICBitmap* This,double dpiX,double dpiY) {
  1132. return This->lpVtbl->SetResolution(This,dpiX,dpiY);
  1133. }
  1134. #endif
  1135. #endif
  1136. #endif
  1137. #endif /* __IWICBitmap_INTERFACE_DEFINED__ */
  1138. /*****************************************************************************
  1139. * IWICPalette interface
  1140. */
  1141. #ifndef __IWICPalette_INTERFACE_DEFINED__
  1142. #define __IWICPalette_INTERFACE_DEFINED__
  1143. DEFINE_GUID(IID_IWICPalette, 0x00000040, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  1144. #if defined(__cplusplus) && !defined(CINTERFACE)
  1145. MIDL_INTERFACE("00000040-a8f2-4877-ba0a-fd2b6645fb94")
  1146. IWICPalette : public IUnknown
  1147. {
  1148. virtual HRESULT STDMETHODCALLTYPE InitializePredefined(
  1149. WICBitmapPaletteType ePaletteType,
  1150. WINBOOL fAddTransparentColor) = 0;
  1151. virtual HRESULT STDMETHODCALLTYPE InitializeCustom(
  1152. WICColor *pColors,
  1153. UINT colorCount) = 0;
  1154. virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
  1155. IWICBitmapSource *pISurface,
  1156. UINT colorCount,
  1157. WINBOOL fAddTransparentColor) = 0;
  1158. virtual HRESULT STDMETHODCALLTYPE InitializeFromPalette(
  1159. IWICPalette *pIPalette) = 0;
  1160. virtual HRESULT STDMETHODCALLTYPE GetType(
  1161. WICBitmapPaletteType *pePaletteType) = 0;
  1162. virtual HRESULT STDMETHODCALLTYPE GetColorCount(
  1163. UINT *pcCount) = 0;
  1164. virtual HRESULT STDMETHODCALLTYPE GetColors(
  1165. UINT colorCount,
  1166. WICColor *pColors,
  1167. UINT *pcActualColors) = 0;
  1168. virtual HRESULT STDMETHODCALLTYPE IsBlackWhite(
  1169. WINBOOL *pfIsBlackWhite) = 0;
  1170. virtual HRESULT STDMETHODCALLTYPE IsGrayscale(
  1171. WINBOOL *pfIsGrayscale) = 0;
  1172. virtual HRESULT STDMETHODCALLTYPE HasAlpha(
  1173. WINBOOL *pfHasAlpha) = 0;
  1174. };
  1175. #ifdef __CRT_UUID_DECL
  1176. __CRT_UUID_DECL(IWICPalette, 0x00000040, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  1177. #endif
  1178. #else
  1179. typedef struct IWICPaletteVtbl {
  1180. BEGIN_INTERFACE
  1181. /*** IUnknown methods ***/
  1182. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1183. IWICPalette *This,
  1184. REFIID riid,
  1185. void **ppvObject);
  1186. ULONG (STDMETHODCALLTYPE *AddRef)(
  1187. IWICPalette *This);
  1188. ULONG (STDMETHODCALLTYPE *Release)(
  1189. IWICPalette *This);
  1190. /*** IWICPalette methods ***/
  1191. HRESULT (STDMETHODCALLTYPE *InitializePredefined)(
  1192. IWICPalette *This,
  1193. WICBitmapPaletteType ePaletteType,
  1194. WINBOOL fAddTransparentColor);
  1195. HRESULT (STDMETHODCALLTYPE *InitializeCustom)(
  1196. IWICPalette *This,
  1197. WICColor *pColors,
  1198. UINT colorCount);
  1199. HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
  1200. IWICPalette *This,
  1201. IWICBitmapSource *pISurface,
  1202. UINT colorCount,
  1203. WINBOOL fAddTransparentColor);
  1204. HRESULT (STDMETHODCALLTYPE *InitializeFromPalette)(
  1205. IWICPalette *This,
  1206. IWICPalette *pIPalette);
  1207. HRESULT (STDMETHODCALLTYPE *GetType)(
  1208. IWICPalette *This,
  1209. WICBitmapPaletteType *pePaletteType);
  1210. HRESULT (STDMETHODCALLTYPE *GetColorCount)(
  1211. IWICPalette *This,
  1212. UINT *pcCount);
  1213. HRESULT (STDMETHODCALLTYPE *GetColors)(
  1214. IWICPalette *This,
  1215. UINT colorCount,
  1216. WICColor *pColors,
  1217. UINT *pcActualColors);
  1218. HRESULT (STDMETHODCALLTYPE *IsBlackWhite)(
  1219. IWICPalette *This,
  1220. WINBOOL *pfIsBlackWhite);
  1221. HRESULT (STDMETHODCALLTYPE *IsGrayscale)(
  1222. IWICPalette *This,
  1223. WINBOOL *pfIsGrayscale);
  1224. HRESULT (STDMETHODCALLTYPE *HasAlpha)(
  1225. IWICPalette *This,
  1226. WINBOOL *pfHasAlpha);
  1227. END_INTERFACE
  1228. } IWICPaletteVtbl;
  1229. interface IWICPalette {
  1230. CONST_VTBL IWICPaletteVtbl* lpVtbl;
  1231. };
  1232. #ifdef COBJMACROS
  1233. #ifndef WIDL_C_INLINE_WRAPPERS
  1234. /*** IUnknown methods ***/
  1235. #define IWICPalette_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1236. #define IWICPalette_AddRef(This) (This)->lpVtbl->AddRef(This)
  1237. #define IWICPalette_Release(This) (This)->lpVtbl->Release(This)
  1238. /*** IWICPalette methods ***/
  1239. #define IWICPalette_InitializePredefined(This,ePaletteType,fAddTransparentColor) (This)->lpVtbl->InitializePredefined(This,ePaletteType,fAddTransparentColor)
  1240. #define IWICPalette_InitializeCustom(This,pColors,colorCount) (This)->lpVtbl->InitializeCustom(This,pColors,colorCount)
  1241. #define IWICPalette_InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor) (This)->lpVtbl->InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor)
  1242. #define IWICPalette_InitializeFromPalette(This,pIPalette) (This)->lpVtbl->InitializeFromPalette(This,pIPalette)
  1243. #define IWICPalette_GetType(This,pePaletteType) (This)->lpVtbl->GetType(This,pePaletteType)
  1244. #define IWICPalette_GetColorCount(This,pcCount) (This)->lpVtbl->GetColorCount(This,pcCount)
  1245. #define IWICPalette_GetColors(This,colorCount,pColors,pcActualColors) (This)->lpVtbl->GetColors(This,colorCount,pColors,pcActualColors)
  1246. #define IWICPalette_IsBlackWhite(This,pfIsBlackWhite) (This)->lpVtbl->IsBlackWhite(This,pfIsBlackWhite)
  1247. #define IWICPalette_IsGrayscale(This,pfIsGrayscale) (This)->lpVtbl->IsGrayscale(This,pfIsGrayscale)
  1248. #define IWICPalette_HasAlpha(This,pfHasAlpha) (This)->lpVtbl->HasAlpha(This,pfHasAlpha)
  1249. #else
  1250. /*** IUnknown methods ***/
  1251. static FORCEINLINE HRESULT IWICPalette_QueryInterface(IWICPalette* This,REFIID riid,void **ppvObject) {
  1252. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1253. }
  1254. static FORCEINLINE ULONG IWICPalette_AddRef(IWICPalette* This) {
  1255. return This->lpVtbl->AddRef(This);
  1256. }
  1257. static FORCEINLINE ULONG IWICPalette_Release(IWICPalette* This) {
  1258. return This->lpVtbl->Release(This);
  1259. }
  1260. /*** IWICPalette methods ***/
  1261. static FORCEINLINE HRESULT IWICPalette_InitializePredefined(IWICPalette* This,WICBitmapPaletteType ePaletteType,WINBOOL fAddTransparentColor) {
  1262. return This->lpVtbl->InitializePredefined(This,ePaletteType,fAddTransparentColor);
  1263. }
  1264. static FORCEINLINE HRESULT IWICPalette_InitializeCustom(IWICPalette* This,WICColor *pColors,UINT colorCount) {
  1265. return This->lpVtbl->InitializeCustom(This,pColors,colorCount);
  1266. }
  1267. static FORCEINLINE HRESULT IWICPalette_InitializeFromBitmap(IWICPalette* This,IWICBitmapSource *pISurface,UINT colorCount,WINBOOL fAddTransparentColor) {
  1268. return This->lpVtbl->InitializeFromBitmap(This,pISurface,colorCount,fAddTransparentColor);
  1269. }
  1270. static FORCEINLINE HRESULT IWICPalette_InitializeFromPalette(IWICPalette* This,IWICPalette *pIPalette) {
  1271. return This->lpVtbl->InitializeFromPalette(This,pIPalette);
  1272. }
  1273. static FORCEINLINE HRESULT IWICPalette_GetType(IWICPalette* This,WICBitmapPaletteType *pePaletteType) {
  1274. return This->lpVtbl->GetType(This,pePaletteType);
  1275. }
  1276. static FORCEINLINE HRESULT IWICPalette_GetColorCount(IWICPalette* This,UINT *pcCount) {
  1277. return This->lpVtbl->GetColorCount(This,pcCount);
  1278. }
  1279. static FORCEINLINE HRESULT IWICPalette_GetColors(IWICPalette* This,UINT colorCount,WICColor *pColors,UINT *pcActualColors) {
  1280. return This->lpVtbl->GetColors(This,colorCount,pColors,pcActualColors);
  1281. }
  1282. static FORCEINLINE HRESULT IWICPalette_IsBlackWhite(IWICPalette* This,WINBOOL *pfIsBlackWhite) {
  1283. return This->lpVtbl->IsBlackWhite(This,pfIsBlackWhite);
  1284. }
  1285. static FORCEINLINE HRESULT IWICPalette_IsGrayscale(IWICPalette* This,WINBOOL *pfIsGrayscale) {
  1286. return This->lpVtbl->IsGrayscale(This,pfIsGrayscale);
  1287. }
  1288. static FORCEINLINE HRESULT IWICPalette_HasAlpha(IWICPalette* This,WINBOOL *pfHasAlpha) {
  1289. return This->lpVtbl->HasAlpha(This,pfHasAlpha);
  1290. }
  1291. #endif
  1292. #endif
  1293. #endif
  1294. #endif /* __IWICPalette_INTERFACE_DEFINED__ */
  1295. /*****************************************************************************
  1296. * IWICComponentInfo interface
  1297. */
  1298. #ifndef __IWICComponentInfo_INTERFACE_DEFINED__
  1299. #define __IWICComponentInfo_INTERFACE_DEFINED__
  1300. DEFINE_GUID(IID_IWICComponentInfo, 0x23bc3f0a, 0x698b, 0x4357, 0x88,0x6b, 0xf2,0x4d,0x50,0x67,0x13,0x34);
  1301. #if defined(__cplusplus) && !defined(CINTERFACE)
  1302. MIDL_INTERFACE("23bc3f0a-698b-4357-886b-f24d50671334")
  1303. IWICComponentInfo : public IUnknown
  1304. {
  1305. virtual HRESULT STDMETHODCALLTYPE GetComponentType(
  1306. WICComponentType *pType) = 0;
  1307. virtual HRESULT STDMETHODCALLTYPE GetCLSID(
  1308. CLSID *pclsid) = 0;
  1309. virtual HRESULT STDMETHODCALLTYPE GetSigningStatus(
  1310. DWORD *pStatus) = 0;
  1311. virtual HRESULT STDMETHODCALLTYPE GetAuthor(
  1312. UINT cchAuthor,
  1313. WCHAR *wzAuthor,
  1314. UINT *pcchActual) = 0;
  1315. virtual HRESULT STDMETHODCALLTYPE GetVendorGUID(
  1316. GUID *pguidVendor) = 0;
  1317. virtual HRESULT STDMETHODCALLTYPE GetVersion(
  1318. UINT cchVersion,
  1319. WCHAR *wzVersion,
  1320. UINT *pcchActual) = 0;
  1321. virtual HRESULT STDMETHODCALLTYPE GetSpecVersion(
  1322. UINT cchSpecVersion,
  1323. WCHAR *wzSpecVersion,
  1324. UINT *pcchActual) = 0;
  1325. virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
  1326. UINT cchFriendlyName,
  1327. WCHAR *wzFriendlyName,
  1328. UINT *pcchActual) = 0;
  1329. };
  1330. #ifdef __CRT_UUID_DECL
  1331. __CRT_UUID_DECL(IWICComponentInfo, 0x23bc3f0a, 0x698b, 0x4357, 0x88,0x6b, 0xf2,0x4d,0x50,0x67,0x13,0x34)
  1332. #endif
  1333. #else
  1334. typedef struct IWICComponentInfoVtbl {
  1335. BEGIN_INTERFACE
  1336. /*** IUnknown methods ***/
  1337. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1338. IWICComponentInfo *This,
  1339. REFIID riid,
  1340. void **ppvObject);
  1341. ULONG (STDMETHODCALLTYPE *AddRef)(
  1342. IWICComponentInfo *This);
  1343. ULONG (STDMETHODCALLTYPE *Release)(
  1344. IWICComponentInfo *This);
  1345. /*** IWICComponentInfo methods ***/
  1346. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  1347. IWICComponentInfo *This,
  1348. WICComponentType *pType);
  1349. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  1350. IWICComponentInfo *This,
  1351. CLSID *pclsid);
  1352. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  1353. IWICComponentInfo *This,
  1354. DWORD *pStatus);
  1355. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  1356. IWICComponentInfo *This,
  1357. UINT cchAuthor,
  1358. WCHAR *wzAuthor,
  1359. UINT *pcchActual);
  1360. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  1361. IWICComponentInfo *This,
  1362. GUID *pguidVendor);
  1363. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  1364. IWICComponentInfo *This,
  1365. UINT cchVersion,
  1366. WCHAR *wzVersion,
  1367. UINT *pcchActual);
  1368. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  1369. IWICComponentInfo *This,
  1370. UINT cchSpecVersion,
  1371. WCHAR *wzSpecVersion,
  1372. UINT *pcchActual);
  1373. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  1374. IWICComponentInfo *This,
  1375. UINT cchFriendlyName,
  1376. WCHAR *wzFriendlyName,
  1377. UINT *pcchActual);
  1378. END_INTERFACE
  1379. } IWICComponentInfoVtbl;
  1380. interface IWICComponentInfo {
  1381. CONST_VTBL IWICComponentInfoVtbl* lpVtbl;
  1382. };
  1383. #ifdef COBJMACROS
  1384. #ifndef WIDL_C_INLINE_WRAPPERS
  1385. /*** IUnknown methods ***/
  1386. #define IWICComponentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1387. #define IWICComponentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  1388. #define IWICComponentInfo_Release(This) (This)->lpVtbl->Release(This)
  1389. /*** IWICComponentInfo methods ***/
  1390. #define IWICComponentInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  1391. #define IWICComponentInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  1392. #define IWICComponentInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  1393. #define IWICComponentInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  1394. #define IWICComponentInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  1395. #define IWICComponentInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  1396. #define IWICComponentInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  1397. #define IWICComponentInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  1398. #else
  1399. /*** IUnknown methods ***/
  1400. static FORCEINLINE HRESULT IWICComponentInfo_QueryInterface(IWICComponentInfo* This,REFIID riid,void **ppvObject) {
  1401. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1402. }
  1403. static FORCEINLINE ULONG IWICComponentInfo_AddRef(IWICComponentInfo* This) {
  1404. return This->lpVtbl->AddRef(This);
  1405. }
  1406. static FORCEINLINE ULONG IWICComponentInfo_Release(IWICComponentInfo* This) {
  1407. return This->lpVtbl->Release(This);
  1408. }
  1409. /*** IWICComponentInfo methods ***/
  1410. static FORCEINLINE HRESULT IWICComponentInfo_GetComponentType(IWICComponentInfo* This,WICComponentType *pType) {
  1411. return This->lpVtbl->GetComponentType(This,pType);
  1412. }
  1413. static FORCEINLINE HRESULT IWICComponentInfo_GetCLSID(IWICComponentInfo* This,CLSID *pclsid) {
  1414. return This->lpVtbl->GetCLSID(This,pclsid);
  1415. }
  1416. static FORCEINLINE HRESULT IWICComponentInfo_GetSigningStatus(IWICComponentInfo* This,DWORD *pStatus) {
  1417. return This->lpVtbl->GetSigningStatus(This,pStatus);
  1418. }
  1419. static FORCEINLINE HRESULT IWICComponentInfo_GetAuthor(IWICComponentInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  1420. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  1421. }
  1422. static FORCEINLINE HRESULT IWICComponentInfo_GetVendorGUID(IWICComponentInfo* This,GUID *pguidVendor) {
  1423. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  1424. }
  1425. static FORCEINLINE HRESULT IWICComponentInfo_GetVersion(IWICComponentInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  1426. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  1427. }
  1428. static FORCEINLINE HRESULT IWICComponentInfo_GetSpecVersion(IWICComponentInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  1429. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  1430. }
  1431. static FORCEINLINE HRESULT IWICComponentInfo_GetFriendlyName(IWICComponentInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  1432. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  1433. }
  1434. #endif
  1435. #endif
  1436. #endif
  1437. #endif /* __IWICComponentInfo_INTERFACE_DEFINED__ */
  1438. /*****************************************************************************
  1439. * IWICMetadataQueryReader interface
  1440. */
  1441. #ifndef __IWICMetadataQueryReader_INTERFACE_DEFINED__
  1442. #define __IWICMetadataQueryReader_INTERFACE_DEFINED__
  1443. DEFINE_GUID(IID_IWICMetadataQueryReader, 0x30989668, 0xe1c9, 0x4597, 0xb3,0x95, 0x45,0x8e,0xed,0xb8,0x08,0xdf);
  1444. #if defined(__cplusplus) && !defined(CINTERFACE)
  1445. MIDL_INTERFACE("30989668-e1c9-4597-b395-458eedb808df")
  1446. IWICMetadataQueryReader : public IUnknown
  1447. {
  1448. virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
  1449. GUID *pguidContainerFormat) = 0;
  1450. virtual HRESULT STDMETHODCALLTYPE GetLocation(
  1451. UINT cchMaxLength,
  1452. WCHAR *wzNamespace,
  1453. UINT *pcchActualLength) = 0;
  1454. virtual HRESULT STDMETHODCALLTYPE GetMetadataByName(
  1455. LPCWSTR wzName,
  1456. PROPVARIANT *pvarValue) = 0;
  1457. virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
  1458. IEnumString **ppIEnumString) = 0;
  1459. };
  1460. #ifdef __CRT_UUID_DECL
  1461. __CRT_UUID_DECL(IWICMetadataQueryReader, 0x30989668, 0xe1c9, 0x4597, 0xb3,0x95, 0x45,0x8e,0xed,0xb8,0x08,0xdf)
  1462. #endif
  1463. #else
  1464. typedef struct IWICMetadataQueryReaderVtbl {
  1465. BEGIN_INTERFACE
  1466. /*** IUnknown methods ***/
  1467. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1468. IWICMetadataQueryReader *This,
  1469. REFIID riid,
  1470. void **ppvObject);
  1471. ULONG (STDMETHODCALLTYPE *AddRef)(
  1472. IWICMetadataQueryReader *This);
  1473. ULONG (STDMETHODCALLTYPE *Release)(
  1474. IWICMetadataQueryReader *This);
  1475. /*** IWICMetadataQueryReader methods ***/
  1476. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  1477. IWICMetadataQueryReader *This,
  1478. GUID *pguidContainerFormat);
  1479. HRESULT (STDMETHODCALLTYPE *GetLocation)(
  1480. IWICMetadataQueryReader *This,
  1481. UINT cchMaxLength,
  1482. WCHAR *wzNamespace,
  1483. UINT *pcchActualLength);
  1484. HRESULT (STDMETHODCALLTYPE *GetMetadataByName)(
  1485. IWICMetadataQueryReader *This,
  1486. LPCWSTR wzName,
  1487. PROPVARIANT *pvarValue);
  1488. HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
  1489. IWICMetadataQueryReader *This,
  1490. IEnumString **ppIEnumString);
  1491. END_INTERFACE
  1492. } IWICMetadataQueryReaderVtbl;
  1493. interface IWICMetadataQueryReader {
  1494. CONST_VTBL IWICMetadataQueryReaderVtbl* lpVtbl;
  1495. };
  1496. #ifdef COBJMACROS
  1497. #ifndef WIDL_C_INLINE_WRAPPERS
  1498. /*** IUnknown methods ***/
  1499. #define IWICMetadataQueryReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1500. #define IWICMetadataQueryReader_AddRef(This) (This)->lpVtbl->AddRef(This)
  1501. #define IWICMetadataQueryReader_Release(This) (This)->lpVtbl->Release(This)
  1502. /*** IWICMetadataQueryReader methods ***/
  1503. #define IWICMetadataQueryReader_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  1504. #define IWICMetadataQueryReader_GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength) (This)->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength)
  1505. #define IWICMetadataQueryReader_GetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->GetMetadataByName(This,wzName,pvarValue)
  1506. #define IWICMetadataQueryReader_GetEnumerator(This,ppIEnumString) (This)->lpVtbl->GetEnumerator(This,ppIEnumString)
  1507. #else
  1508. /*** IUnknown methods ***/
  1509. static FORCEINLINE HRESULT IWICMetadataQueryReader_QueryInterface(IWICMetadataQueryReader* This,REFIID riid,void **ppvObject) {
  1510. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1511. }
  1512. static FORCEINLINE ULONG IWICMetadataQueryReader_AddRef(IWICMetadataQueryReader* This) {
  1513. return This->lpVtbl->AddRef(This);
  1514. }
  1515. static FORCEINLINE ULONG IWICMetadataQueryReader_Release(IWICMetadataQueryReader* This) {
  1516. return This->lpVtbl->Release(This);
  1517. }
  1518. /*** IWICMetadataQueryReader methods ***/
  1519. static FORCEINLINE HRESULT IWICMetadataQueryReader_GetContainerFormat(IWICMetadataQueryReader* This,GUID *pguidContainerFormat) {
  1520. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  1521. }
  1522. static FORCEINLINE HRESULT IWICMetadataQueryReader_GetLocation(IWICMetadataQueryReader* This,UINT cchMaxLength,WCHAR *wzNamespace,UINT *pcchActualLength) {
  1523. return This->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength);
  1524. }
  1525. static FORCEINLINE HRESULT IWICMetadataQueryReader_GetMetadataByName(IWICMetadataQueryReader* This,LPCWSTR wzName,PROPVARIANT *pvarValue) {
  1526. return This->lpVtbl->GetMetadataByName(This,wzName,pvarValue);
  1527. }
  1528. static FORCEINLINE HRESULT IWICMetadataQueryReader_GetEnumerator(IWICMetadataQueryReader* This,IEnumString **ppIEnumString) {
  1529. return This->lpVtbl->GetEnumerator(This,ppIEnumString);
  1530. }
  1531. #endif
  1532. #endif
  1533. #endif
  1534. #endif /* __IWICMetadataQueryReader_INTERFACE_DEFINED__ */
  1535. /*****************************************************************************
  1536. * IWICMetadataQueryWriter interface
  1537. */
  1538. #ifndef __IWICMetadataQueryWriter_INTERFACE_DEFINED__
  1539. #define __IWICMetadataQueryWriter_INTERFACE_DEFINED__
  1540. DEFINE_GUID(IID_IWICMetadataQueryWriter, 0xa721791a, 0x0def, 0x4d06, 0xbd,0x91, 0x21,0x18,0xbf,0x1d,0xb1,0x0b);
  1541. #if defined(__cplusplus) && !defined(CINTERFACE)
  1542. MIDL_INTERFACE("a721791a-0def-4d06-bd91-2118bf1db10b")
  1543. IWICMetadataQueryWriter : public IWICMetadataQueryReader
  1544. {
  1545. virtual HRESULT STDMETHODCALLTYPE SetMetadataByName(
  1546. LPCWSTR wzName,
  1547. const PROPVARIANT *pvarValue) = 0;
  1548. virtual HRESULT STDMETHODCALLTYPE RemoveMetadataByName(
  1549. LPCWSTR wzName) = 0;
  1550. };
  1551. #ifdef __CRT_UUID_DECL
  1552. __CRT_UUID_DECL(IWICMetadataQueryWriter, 0xa721791a, 0x0def, 0x4d06, 0xbd,0x91, 0x21,0x18,0xbf,0x1d,0xb1,0x0b)
  1553. #endif
  1554. #else
  1555. typedef struct IWICMetadataQueryWriterVtbl {
  1556. BEGIN_INTERFACE
  1557. /*** IUnknown methods ***/
  1558. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1559. IWICMetadataQueryWriter *This,
  1560. REFIID riid,
  1561. void **ppvObject);
  1562. ULONG (STDMETHODCALLTYPE *AddRef)(
  1563. IWICMetadataQueryWriter *This);
  1564. ULONG (STDMETHODCALLTYPE *Release)(
  1565. IWICMetadataQueryWriter *This);
  1566. /*** IWICMetadataQueryReader methods ***/
  1567. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  1568. IWICMetadataQueryWriter *This,
  1569. GUID *pguidContainerFormat);
  1570. HRESULT (STDMETHODCALLTYPE *GetLocation)(
  1571. IWICMetadataQueryWriter *This,
  1572. UINT cchMaxLength,
  1573. WCHAR *wzNamespace,
  1574. UINT *pcchActualLength);
  1575. HRESULT (STDMETHODCALLTYPE *GetMetadataByName)(
  1576. IWICMetadataQueryWriter *This,
  1577. LPCWSTR wzName,
  1578. PROPVARIANT *pvarValue);
  1579. HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
  1580. IWICMetadataQueryWriter *This,
  1581. IEnumString **ppIEnumString);
  1582. /*** IWICMetadataQueryWriter methods ***/
  1583. HRESULT (STDMETHODCALLTYPE *SetMetadataByName)(
  1584. IWICMetadataQueryWriter *This,
  1585. LPCWSTR wzName,
  1586. const PROPVARIANT *pvarValue);
  1587. HRESULT (STDMETHODCALLTYPE *RemoveMetadataByName)(
  1588. IWICMetadataQueryWriter *This,
  1589. LPCWSTR wzName);
  1590. END_INTERFACE
  1591. } IWICMetadataQueryWriterVtbl;
  1592. interface IWICMetadataQueryWriter {
  1593. CONST_VTBL IWICMetadataQueryWriterVtbl* lpVtbl;
  1594. };
  1595. #ifdef COBJMACROS
  1596. #ifndef WIDL_C_INLINE_WRAPPERS
  1597. /*** IUnknown methods ***/
  1598. #define IWICMetadataQueryWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1599. #define IWICMetadataQueryWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
  1600. #define IWICMetadataQueryWriter_Release(This) (This)->lpVtbl->Release(This)
  1601. /*** IWICMetadataQueryReader methods ***/
  1602. #define IWICMetadataQueryWriter_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  1603. #define IWICMetadataQueryWriter_GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength) (This)->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength)
  1604. #define IWICMetadataQueryWriter_GetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->GetMetadataByName(This,wzName,pvarValue)
  1605. #define IWICMetadataQueryWriter_GetEnumerator(This,ppIEnumString) (This)->lpVtbl->GetEnumerator(This,ppIEnumString)
  1606. /*** IWICMetadataQueryWriter methods ***/
  1607. #define IWICMetadataQueryWriter_SetMetadataByName(This,wzName,pvarValue) (This)->lpVtbl->SetMetadataByName(This,wzName,pvarValue)
  1608. #define IWICMetadataQueryWriter_RemoveMetadataByName(This,wzName) (This)->lpVtbl->RemoveMetadataByName(This,wzName)
  1609. #else
  1610. /*** IUnknown methods ***/
  1611. static FORCEINLINE HRESULT IWICMetadataQueryWriter_QueryInterface(IWICMetadataQueryWriter* This,REFIID riid,void **ppvObject) {
  1612. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1613. }
  1614. static FORCEINLINE ULONG IWICMetadataQueryWriter_AddRef(IWICMetadataQueryWriter* This) {
  1615. return This->lpVtbl->AddRef(This);
  1616. }
  1617. static FORCEINLINE ULONG IWICMetadataQueryWriter_Release(IWICMetadataQueryWriter* This) {
  1618. return This->lpVtbl->Release(This);
  1619. }
  1620. /*** IWICMetadataQueryReader methods ***/
  1621. static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetContainerFormat(IWICMetadataQueryWriter* This,GUID *pguidContainerFormat) {
  1622. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  1623. }
  1624. static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetLocation(IWICMetadataQueryWriter* This,UINT cchMaxLength,WCHAR *wzNamespace,UINT *pcchActualLength) {
  1625. return This->lpVtbl->GetLocation(This,cchMaxLength,wzNamespace,pcchActualLength);
  1626. }
  1627. static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName,PROPVARIANT *pvarValue) {
  1628. return This->lpVtbl->GetMetadataByName(This,wzName,pvarValue);
  1629. }
  1630. static FORCEINLINE HRESULT IWICMetadataQueryWriter_GetEnumerator(IWICMetadataQueryWriter* This,IEnumString **ppIEnumString) {
  1631. return This->lpVtbl->GetEnumerator(This,ppIEnumString);
  1632. }
  1633. /*** IWICMetadataQueryWriter methods ***/
  1634. static FORCEINLINE HRESULT IWICMetadataQueryWriter_SetMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName,const PROPVARIANT *pvarValue) {
  1635. return This->lpVtbl->SetMetadataByName(This,wzName,pvarValue);
  1636. }
  1637. static FORCEINLINE HRESULT IWICMetadataQueryWriter_RemoveMetadataByName(IWICMetadataQueryWriter* This,LPCWSTR wzName) {
  1638. return This->lpVtbl->RemoveMetadataByName(This,wzName);
  1639. }
  1640. #endif
  1641. #endif
  1642. #endif
  1643. #endif /* __IWICMetadataQueryWriter_INTERFACE_DEFINED__ */
  1644. /*****************************************************************************
  1645. * IWICBitmapFrameDecode interface
  1646. */
  1647. #ifndef __IWICBitmapFrameDecode_INTERFACE_DEFINED__
  1648. #define __IWICBitmapFrameDecode_INTERFACE_DEFINED__
  1649. DEFINE_GUID(IID_IWICBitmapFrameDecode, 0x3b16811b, 0x6a43, 0x4ec9, 0xa8,0x13, 0x3d,0x93,0x0c,0x13,0xb9,0x40);
  1650. #if defined(__cplusplus) && !defined(CINTERFACE)
  1651. MIDL_INTERFACE("3b16811b-6a43-4ec9-a813-3d930c13b940")
  1652. IWICBitmapFrameDecode : public IWICBitmapSource
  1653. {
  1654. virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryReader(
  1655. IWICMetadataQueryReader **ppIMetadataQueryReader) = 0;
  1656. virtual HRESULT STDMETHODCALLTYPE GetColorContexts(
  1657. UINT cCount,
  1658. IWICColorContext **ppIColorContexts,
  1659. UINT *pcActualCount) = 0;
  1660. virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
  1661. IWICBitmapSource **ppIThumbnail) = 0;
  1662. };
  1663. #ifdef __CRT_UUID_DECL
  1664. __CRT_UUID_DECL(IWICBitmapFrameDecode, 0x3b16811b, 0x6a43, 0x4ec9, 0xa8,0x13, 0x3d,0x93,0x0c,0x13,0xb9,0x40)
  1665. #endif
  1666. #else
  1667. typedef struct IWICBitmapFrameDecodeVtbl {
  1668. BEGIN_INTERFACE
  1669. /*** IUnknown methods ***/
  1670. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1671. IWICBitmapFrameDecode *This,
  1672. REFIID riid,
  1673. void **ppvObject);
  1674. ULONG (STDMETHODCALLTYPE *AddRef)(
  1675. IWICBitmapFrameDecode *This);
  1676. ULONG (STDMETHODCALLTYPE *Release)(
  1677. IWICBitmapFrameDecode *This);
  1678. /*** IWICBitmapSource methods ***/
  1679. HRESULT (STDMETHODCALLTYPE *GetSize)(
  1680. IWICBitmapFrameDecode *This,
  1681. UINT *puiWidth,
  1682. UINT *puiHeight);
  1683. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  1684. IWICBitmapFrameDecode *This,
  1685. WICPixelFormatGUID *pPixelFormat);
  1686. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  1687. IWICBitmapFrameDecode *This,
  1688. double *pDpiX,
  1689. double *pDpiY);
  1690. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  1691. IWICBitmapFrameDecode *This,
  1692. IWICPalette *pIPalette);
  1693. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  1694. IWICBitmapFrameDecode *This,
  1695. const WICRect *prc,
  1696. UINT cbStride,
  1697. UINT cbBufferSize,
  1698. BYTE *pbBuffer);
  1699. /*** IWICBitmapFrameDecode methods ***/
  1700. HRESULT (STDMETHODCALLTYPE *GetMetadataQueryReader)(
  1701. IWICBitmapFrameDecode *This,
  1702. IWICMetadataQueryReader **ppIMetadataQueryReader);
  1703. HRESULT (STDMETHODCALLTYPE *GetColorContexts)(
  1704. IWICBitmapFrameDecode *This,
  1705. UINT cCount,
  1706. IWICColorContext **ppIColorContexts,
  1707. UINT *pcActualCount);
  1708. HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
  1709. IWICBitmapFrameDecode *This,
  1710. IWICBitmapSource **ppIThumbnail);
  1711. END_INTERFACE
  1712. } IWICBitmapFrameDecodeVtbl;
  1713. interface IWICBitmapFrameDecode {
  1714. CONST_VTBL IWICBitmapFrameDecodeVtbl* lpVtbl;
  1715. };
  1716. #ifdef COBJMACROS
  1717. #ifndef WIDL_C_INLINE_WRAPPERS
  1718. /*** IUnknown methods ***/
  1719. #define IWICBitmapFrameDecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1720. #define IWICBitmapFrameDecode_AddRef(This) (This)->lpVtbl->AddRef(This)
  1721. #define IWICBitmapFrameDecode_Release(This) (This)->lpVtbl->Release(This)
  1722. /*** IWICBitmapSource methods ***/
  1723. #define IWICBitmapFrameDecode_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  1724. #define IWICBitmapFrameDecode_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  1725. #define IWICBitmapFrameDecode_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  1726. #define IWICBitmapFrameDecode_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  1727. #define IWICBitmapFrameDecode_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  1728. /*** IWICBitmapFrameDecode methods ***/
  1729. #define IWICBitmapFrameDecode_GetMetadataQueryReader(This,ppIMetadataQueryReader) (This)->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader)
  1730. #define IWICBitmapFrameDecode_GetColorContexts(This,cCount,ppIColorContexts,pcActualCount) (This)->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount)
  1731. #define IWICBitmapFrameDecode_GetThumbnail(This,ppIThumbnail) (This)->lpVtbl->GetThumbnail(This,ppIThumbnail)
  1732. #else
  1733. /*** IUnknown methods ***/
  1734. static FORCEINLINE HRESULT IWICBitmapFrameDecode_QueryInterface(IWICBitmapFrameDecode* This,REFIID riid,void **ppvObject) {
  1735. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1736. }
  1737. static FORCEINLINE ULONG IWICBitmapFrameDecode_AddRef(IWICBitmapFrameDecode* This) {
  1738. return This->lpVtbl->AddRef(This);
  1739. }
  1740. static FORCEINLINE ULONG IWICBitmapFrameDecode_Release(IWICBitmapFrameDecode* This) {
  1741. return This->lpVtbl->Release(This);
  1742. }
  1743. /*** IWICBitmapSource methods ***/
  1744. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetSize(IWICBitmapFrameDecode* This,UINT *puiWidth,UINT *puiHeight) {
  1745. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  1746. }
  1747. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetPixelFormat(IWICBitmapFrameDecode* This,WICPixelFormatGUID *pPixelFormat) {
  1748. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  1749. }
  1750. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetResolution(IWICBitmapFrameDecode* This,double *pDpiX,double *pDpiY) {
  1751. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  1752. }
  1753. static FORCEINLINE HRESULT IWICBitmapFrameDecode_CopyPalette(IWICBitmapFrameDecode* This,IWICPalette *pIPalette) {
  1754. return This->lpVtbl->CopyPalette(This,pIPalette);
  1755. }
  1756. static FORCEINLINE HRESULT IWICBitmapFrameDecode_CopyPixels(IWICBitmapFrameDecode* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  1757. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  1758. }
  1759. /*** IWICBitmapFrameDecode methods ***/
  1760. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetMetadataQueryReader(IWICBitmapFrameDecode* This,IWICMetadataQueryReader **ppIMetadataQueryReader) {
  1761. return This->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader);
  1762. }
  1763. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetColorContexts(IWICBitmapFrameDecode* This,UINT cCount,IWICColorContext **ppIColorContexts,UINT *pcActualCount) {
  1764. return This->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount);
  1765. }
  1766. static FORCEINLINE HRESULT IWICBitmapFrameDecode_GetThumbnail(IWICBitmapFrameDecode* This,IWICBitmapSource **ppIThumbnail) {
  1767. return This->lpVtbl->GetThumbnail(This,ppIThumbnail);
  1768. }
  1769. #endif
  1770. #endif
  1771. #endif
  1772. #endif /* __IWICBitmapFrameDecode_INTERFACE_DEFINED__ */
  1773. /*****************************************************************************
  1774. * IWICPixelFormatInfo interface
  1775. */
  1776. #ifndef __IWICPixelFormatInfo_INTERFACE_DEFINED__
  1777. #define __IWICPixelFormatInfo_INTERFACE_DEFINED__
  1778. DEFINE_GUID(IID_IWICPixelFormatInfo, 0xe8eda601, 0x3d48, 0x431a, 0xab,0x44, 0x69,0x05,0x9b,0xe8,0x8b,0xbe);
  1779. #if defined(__cplusplus) && !defined(CINTERFACE)
  1780. MIDL_INTERFACE("e8eda601-3d48-431a-ab44-69059be88bbe")
  1781. IWICPixelFormatInfo : public IWICComponentInfo
  1782. {
  1783. virtual HRESULT STDMETHODCALLTYPE GetFormatGUID(
  1784. GUID *pFormat) = 0;
  1785. virtual HRESULT STDMETHODCALLTYPE GetColorContext(
  1786. IWICColorContext **ppIColorContext) = 0;
  1787. virtual HRESULT STDMETHODCALLTYPE GetBitsPerPixel(
  1788. UINT *puiBitsPerPixel) = 0;
  1789. virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
  1790. UINT *puiChannelCount) = 0;
  1791. virtual HRESULT STDMETHODCALLTYPE GetChannelMask(
  1792. UINT uiChannelIndex,
  1793. UINT cbMaskBuffer,
  1794. BYTE *pbMaskBuffer,
  1795. UINT *pcbActual) = 0;
  1796. };
  1797. #ifdef __CRT_UUID_DECL
  1798. __CRT_UUID_DECL(IWICPixelFormatInfo, 0xe8eda601, 0x3d48, 0x431a, 0xab,0x44, 0x69,0x05,0x9b,0xe8,0x8b,0xbe)
  1799. #endif
  1800. #else
  1801. typedef struct IWICPixelFormatInfoVtbl {
  1802. BEGIN_INTERFACE
  1803. /*** IUnknown methods ***/
  1804. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1805. IWICPixelFormatInfo *This,
  1806. REFIID riid,
  1807. void **ppvObject);
  1808. ULONG (STDMETHODCALLTYPE *AddRef)(
  1809. IWICPixelFormatInfo *This);
  1810. ULONG (STDMETHODCALLTYPE *Release)(
  1811. IWICPixelFormatInfo *This);
  1812. /*** IWICComponentInfo methods ***/
  1813. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  1814. IWICPixelFormatInfo *This,
  1815. WICComponentType *pType);
  1816. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  1817. IWICPixelFormatInfo *This,
  1818. CLSID *pclsid);
  1819. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  1820. IWICPixelFormatInfo *This,
  1821. DWORD *pStatus);
  1822. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  1823. IWICPixelFormatInfo *This,
  1824. UINT cchAuthor,
  1825. WCHAR *wzAuthor,
  1826. UINT *pcchActual);
  1827. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  1828. IWICPixelFormatInfo *This,
  1829. GUID *pguidVendor);
  1830. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  1831. IWICPixelFormatInfo *This,
  1832. UINT cchVersion,
  1833. WCHAR *wzVersion,
  1834. UINT *pcchActual);
  1835. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  1836. IWICPixelFormatInfo *This,
  1837. UINT cchSpecVersion,
  1838. WCHAR *wzSpecVersion,
  1839. UINT *pcchActual);
  1840. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  1841. IWICPixelFormatInfo *This,
  1842. UINT cchFriendlyName,
  1843. WCHAR *wzFriendlyName,
  1844. UINT *pcchActual);
  1845. /*** IWICPixelFormatInfo methods ***/
  1846. HRESULT (STDMETHODCALLTYPE *GetFormatGUID)(
  1847. IWICPixelFormatInfo *This,
  1848. GUID *pFormat);
  1849. HRESULT (STDMETHODCALLTYPE *GetColorContext)(
  1850. IWICPixelFormatInfo *This,
  1851. IWICColorContext **ppIColorContext);
  1852. HRESULT (STDMETHODCALLTYPE *GetBitsPerPixel)(
  1853. IWICPixelFormatInfo *This,
  1854. UINT *puiBitsPerPixel);
  1855. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  1856. IWICPixelFormatInfo *This,
  1857. UINT *puiChannelCount);
  1858. HRESULT (STDMETHODCALLTYPE *GetChannelMask)(
  1859. IWICPixelFormatInfo *This,
  1860. UINT uiChannelIndex,
  1861. UINT cbMaskBuffer,
  1862. BYTE *pbMaskBuffer,
  1863. UINT *pcbActual);
  1864. END_INTERFACE
  1865. } IWICPixelFormatInfoVtbl;
  1866. interface IWICPixelFormatInfo {
  1867. CONST_VTBL IWICPixelFormatInfoVtbl* lpVtbl;
  1868. };
  1869. #ifdef COBJMACROS
  1870. #ifndef WIDL_C_INLINE_WRAPPERS
  1871. /*** IUnknown methods ***/
  1872. #define IWICPixelFormatInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1873. #define IWICPixelFormatInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  1874. #define IWICPixelFormatInfo_Release(This) (This)->lpVtbl->Release(This)
  1875. /*** IWICComponentInfo methods ***/
  1876. #define IWICPixelFormatInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  1877. #define IWICPixelFormatInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  1878. #define IWICPixelFormatInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  1879. #define IWICPixelFormatInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  1880. #define IWICPixelFormatInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  1881. #define IWICPixelFormatInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  1882. #define IWICPixelFormatInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  1883. #define IWICPixelFormatInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  1884. /*** IWICPixelFormatInfo methods ***/
  1885. #define IWICPixelFormatInfo_GetFormatGUID(This,pFormat) (This)->lpVtbl->GetFormatGUID(This,pFormat)
  1886. #define IWICPixelFormatInfo_GetColorContext(This,ppIColorContext) (This)->lpVtbl->GetColorContext(This,ppIColorContext)
  1887. #define IWICPixelFormatInfo_GetBitsPerPixel(This,puiBitsPerPixel) (This)->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel)
  1888. #define IWICPixelFormatInfo_GetChannelCount(This,puiChannelCount) (This)->lpVtbl->GetChannelCount(This,puiChannelCount)
  1889. #define IWICPixelFormatInfo_GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual) (This)->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual)
  1890. #else
  1891. /*** IUnknown methods ***/
  1892. static FORCEINLINE HRESULT IWICPixelFormatInfo_QueryInterface(IWICPixelFormatInfo* This,REFIID riid,void **ppvObject) {
  1893. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1894. }
  1895. static FORCEINLINE ULONG IWICPixelFormatInfo_AddRef(IWICPixelFormatInfo* This) {
  1896. return This->lpVtbl->AddRef(This);
  1897. }
  1898. static FORCEINLINE ULONG IWICPixelFormatInfo_Release(IWICPixelFormatInfo* This) {
  1899. return This->lpVtbl->Release(This);
  1900. }
  1901. /*** IWICComponentInfo methods ***/
  1902. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetComponentType(IWICPixelFormatInfo* This,WICComponentType *pType) {
  1903. return This->lpVtbl->GetComponentType(This,pType);
  1904. }
  1905. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetCLSID(IWICPixelFormatInfo* This,CLSID *pclsid) {
  1906. return This->lpVtbl->GetCLSID(This,pclsid);
  1907. }
  1908. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetSigningStatus(IWICPixelFormatInfo* This,DWORD *pStatus) {
  1909. return This->lpVtbl->GetSigningStatus(This,pStatus);
  1910. }
  1911. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetAuthor(IWICPixelFormatInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  1912. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  1913. }
  1914. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetVendorGUID(IWICPixelFormatInfo* This,GUID *pguidVendor) {
  1915. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  1916. }
  1917. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetVersion(IWICPixelFormatInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  1918. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  1919. }
  1920. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetSpecVersion(IWICPixelFormatInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  1921. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  1922. }
  1923. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetFriendlyName(IWICPixelFormatInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  1924. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  1925. }
  1926. /*** IWICPixelFormatInfo methods ***/
  1927. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetFormatGUID(IWICPixelFormatInfo* This,GUID *pFormat) {
  1928. return This->lpVtbl->GetFormatGUID(This,pFormat);
  1929. }
  1930. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetColorContext(IWICPixelFormatInfo* This,IWICColorContext **ppIColorContext) {
  1931. return This->lpVtbl->GetColorContext(This,ppIColorContext);
  1932. }
  1933. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetBitsPerPixel(IWICPixelFormatInfo* This,UINT *puiBitsPerPixel) {
  1934. return This->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel);
  1935. }
  1936. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetChannelCount(IWICPixelFormatInfo* This,UINT *puiChannelCount) {
  1937. return This->lpVtbl->GetChannelCount(This,puiChannelCount);
  1938. }
  1939. static FORCEINLINE HRESULT IWICPixelFormatInfo_GetChannelMask(IWICPixelFormatInfo* This,UINT uiChannelIndex,UINT cbMaskBuffer,BYTE *pbMaskBuffer,UINT *pcbActual) {
  1940. return This->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual);
  1941. }
  1942. #endif
  1943. #endif
  1944. #endif
  1945. #endif /* __IWICPixelFormatInfo_INTERFACE_DEFINED__ */
  1946. /*****************************************************************************
  1947. * IWICPixelFormatInfo2 interface
  1948. */
  1949. #ifndef __IWICPixelFormatInfo2_INTERFACE_DEFINED__
  1950. #define __IWICPixelFormatInfo2_INTERFACE_DEFINED__
  1951. DEFINE_GUID(IID_IWICPixelFormatInfo2, 0xa9db33a2, 0xaf5f, 0x43c7, 0xb6,0x79, 0x74,0xf5,0x98,0x4b,0x5a,0xa4);
  1952. #if defined(__cplusplus) && !defined(CINTERFACE)
  1953. MIDL_INTERFACE("a9db33a2-af5f-43c7-b679-74f5984b5aa4")
  1954. IWICPixelFormatInfo2 : public IWICPixelFormatInfo
  1955. {
  1956. virtual HRESULT STDMETHODCALLTYPE SupportsTransparency(
  1957. WINBOOL *pfSupportsTransparency) = 0;
  1958. virtual HRESULT STDMETHODCALLTYPE GetNumericRepresentation(
  1959. WICPixelFormatNumericRepresentation *pNumericRepresentation) = 0;
  1960. };
  1961. #ifdef __CRT_UUID_DECL
  1962. __CRT_UUID_DECL(IWICPixelFormatInfo2, 0xa9db33a2, 0xaf5f, 0x43c7, 0xb6,0x79, 0x74,0xf5,0x98,0x4b,0x5a,0xa4)
  1963. #endif
  1964. #else
  1965. typedef struct IWICPixelFormatInfo2Vtbl {
  1966. BEGIN_INTERFACE
  1967. /*** IUnknown methods ***/
  1968. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1969. IWICPixelFormatInfo2 *This,
  1970. REFIID riid,
  1971. void **ppvObject);
  1972. ULONG (STDMETHODCALLTYPE *AddRef)(
  1973. IWICPixelFormatInfo2 *This);
  1974. ULONG (STDMETHODCALLTYPE *Release)(
  1975. IWICPixelFormatInfo2 *This);
  1976. /*** IWICComponentInfo methods ***/
  1977. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  1978. IWICPixelFormatInfo2 *This,
  1979. WICComponentType *pType);
  1980. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  1981. IWICPixelFormatInfo2 *This,
  1982. CLSID *pclsid);
  1983. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  1984. IWICPixelFormatInfo2 *This,
  1985. DWORD *pStatus);
  1986. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  1987. IWICPixelFormatInfo2 *This,
  1988. UINT cchAuthor,
  1989. WCHAR *wzAuthor,
  1990. UINT *pcchActual);
  1991. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  1992. IWICPixelFormatInfo2 *This,
  1993. GUID *pguidVendor);
  1994. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  1995. IWICPixelFormatInfo2 *This,
  1996. UINT cchVersion,
  1997. WCHAR *wzVersion,
  1998. UINT *pcchActual);
  1999. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  2000. IWICPixelFormatInfo2 *This,
  2001. UINT cchSpecVersion,
  2002. WCHAR *wzSpecVersion,
  2003. UINT *pcchActual);
  2004. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  2005. IWICPixelFormatInfo2 *This,
  2006. UINT cchFriendlyName,
  2007. WCHAR *wzFriendlyName,
  2008. UINT *pcchActual);
  2009. /*** IWICPixelFormatInfo methods ***/
  2010. HRESULT (STDMETHODCALLTYPE *GetFormatGUID)(
  2011. IWICPixelFormatInfo2 *This,
  2012. GUID *pFormat);
  2013. HRESULT (STDMETHODCALLTYPE *GetColorContext)(
  2014. IWICPixelFormatInfo2 *This,
  2015. IWICColorContext **ppIColorContext);
  2016. HRESULT (STDMETHODCALLTYPE *GetBitsPerPixel)(
  2017. IWICPixelFormatInfo2 *This,
  2018. UINT *puiBitsPerPixel);
  2019. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  2020. IWICPixelFormatInfo2 *This,
  2021. UINT *puiChannelCount);
  2022. HRESULT (STDMETHODCALLTYPE *GetChannelMask)(
  2023. IWICPixelFormatInfo2 *This,
  2024. UINT uiChannelIndex,
  2025. UINT cbMaskBuffer,
  2026. BYTE *pbMaskBuffer,
  2027. UINT *pcbActual);
  2028. /*** IWICPixelFormatInfo2 methods ***/
  2029. HRESULT (STDMETHODCALLTYPE *SupportsTransparency)(
  2030. IWICPixelFormatInfo2 *This,
  2031. WINBOOL *pfSupportsTransparency);
  2032. HRESULT (STDMETHODCALLTYPE *GetNumericRepresentation)(
  2033. IWICPixelFormatInfo2 *This,
  2034. WICPixelFormatNumericRepresentation *pNumericRepresentation);
  2035. END_INTERFACE
  2036. } IWICPixelFormatInfo2Vtbl;
  2037. interface IWICPixelFormatInfo2 {
  2038. CONST_VTBL IWICPixelFormatInfo2Vtbl* lpVtbl;
  2039. };
  2040. #ifdef COBJMACROS
  2041. #ifndef WIDL_C_INLINE_WRAPPERS
  2042. /*** IUnknown methods ***/
  2043. #define IWICPixelFormatInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2044. #define IWICPixelFormatInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
  2045. #define IWICPixelFormatInfo2_Release(This) (This)->lpVtbl->Release(This)
  2046. /*** IWICComponentInfo methods ***/
  2047. #define IWICPixelFormatInfo2_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  2048. #define IWICPixelFormatInfo2_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  2049. #define IWICPixelFormatInfo2_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  2050. #define IWICPixelFormatInfo2_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  2051. #define IWICPixelFormatInfo2_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  2052. #define IWICPixelFormatInfo2_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  2053. #define IWICPixelFormatInfo2_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  2054. #define IWICPixelFormatInfo2_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  2055. /*** IWICPixelFormatInfo methods ***/
  2056. #define IWICPixelFormatInfo2_GetFormatGUID(This,pFormat) (This)->lpVtbl->GetFormatGUID(This,pFormat)
  2057. #define IWICPixelFormatInfo2_GetColorContext(This,ppIColorContext) (This)->lpVtbl->GetColorContext(This,ppIColorContext)
  2058. #define IWICPixelFormatInfo2_GetBitsPerPixel(This,puiBitsPerPixel) (This)->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel)
  2059. #define IWICPixelFormatInfo2_GetChannelCount(This,puiChannelCount) (This)->lpVtbl->GetChannelCount(This,puiChannelCount)
  2060. #define IWICPixelFormatInfo2_GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual) (This)->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual)
  2061. /*** IWICPixelFormatInfo2 methods ***/
  2062. #define IWICPixelFormatInfo2_SupportsTransparency(This,pfSupportsTransparency) (This)->lpVtbl->SupportsTransparency(This,pfSupportsTransparency)
  2063. #define IWICPixelFormatInfo2_GetNumericRepresentation(This,pNumericRepresentation) (This)->lpVtbl->GetNumericRepresentation(This,pNumericRepresentation)
  2064. #else
  2065. /*** IUnknown methods ***/
  2066. static FORCEINLINE HRESULT IWICPixelFormatInfo2_QueryInterface(IWICPixelFormatInfo2* This,REFIID riid,void **ppvObject) {
  2067. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2068. }
  2069. static FORCEINLINE ULONG IWICPixelFormatInfo2_AddRef(IWICPixelFormatInfo2* This) {
  2070. return This->lpVtbl->AddRef(This);
  2071. }
  2072. static FORCEINLINE ULONG IWICPixelFormatInfo2_Release(IWICPixelFormatInfo2* This) {
  2073. return This->lpVtbl->Release(This);
  2074. }
  2075. /*** IWICComponentInfo methods ***/
  2076. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetComponentType(IWICPixelFormatInfo2* This,WICComponentType *pType) {
  2077. return This->lpVtbl->GetComponentType(This,pType);
  2078. }
  2079. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetCLSID(IWICPixelFormatInfo2* This,CLSID *pclsid) {
  2080. return This->lpVtbl->GetCLSID(This,pclsid);
  2081. }
  2082. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetSigningStatus(IWICPixelFormatInfo2* This,DWORD *pStatus) {
  2083. return This->lpVtbl->GetSigningStatus(This,pStatus);
  2084. }
  2085. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetAuthor(IWICPixelFormatInfo2* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  2086. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  2087. }
  2088. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetVendorGUID(IWICPixelFormatInfo2* This,GUID *pguidVendor) {
  2089. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  2090. }
  2091. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetVersion(IWICPixelFormatInfo2* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  2092. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  2093. }
  2094. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetSpecVersion(IWICPixelFormatInfo2* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  2095. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  2096. }
  2097. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetFriendlyName(IWICPixelFormatInfo2* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  2098. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  2099. }
  2100. /*** IWICPixelFormatInfo methods ***/
  2101. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetFormatGUID(IWICPixelFormatInfo2* This,GUID *pFormat) {
  2102. return This->lpVtbl->GetFormatGUID(This,pFormat);
  2103. }
  2104. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetColorContext(IWICPixelFormatInfo2* This,IWICColorContext **ppIColorContext) {
  2105. return This->lpVtbl->GetColorContext(This,ppIColorContext);
  2106. }
  2107. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetBitsPerPixel(IWICPixelFormatInfo2* This,UINT *puiBitsPerPixel) {
  2108. return This->lpVtbl->GetBitsPerPixel(This,puiBitsPerPixel);
  2109. }
  2110. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetChannelCount(IWICPixelFormatInfo2* This,UINT *puiChannelCount) {
  2111. return This->lpVtbl->GetChannelCount(This,puiChannelCount);
  2112. }
  2113. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetChannelMask(IWICPixelFormatInfo2* This,UINT uiChannelIndex,UINT cbMaskBuffer,BYTE *pbMaskBuffer,UINT *pcbActual) {
  2114. return This->lpVtbl->GetChannelMask(This,uiChannelIndex,cbMaskBuffer,pbMaskBuffer,pcbActual);
  2115. }
  2116. /*** IWICPixelFormatInfo2 methods ***/
  2117. static FORCEINLINE HRESULT IWICPixelFormatInfo2_SupportsTransparency(IWICPixelFormatInfo2* This,WINBOOL *pfSupportsTransparency) {
  2118. return This->lpVtbl->SupportsTransparency(This,pfSupportsTransparency);
  2119. }
  2120. static FORCEINLINE HRESULT IWICPixelFormatInfo2_GetNumericRepresentation(IWICPixelFormatInfo2* This,WICPixelFormatNumericRepresentation *pNumericRepresentation) {
  2121. return This->lpVtbl->GetNumericRepresentation(This,pNumericRepresentation);
  2122. }
  2123. #endif
  2124. #endif
  2125. #endif
  2126. #endif /* __IWICPixelFormatInfo2_INTERFACE_DEFINED__ */
  2127. /*****************************************************************************
  2128. * IWICBitmapCodecInfo interface
  2129. */
  2130. #ifndef __IWICBitmapCodecInfo_INTERFACE_DEFINED__
  2131. #define __IWICBitmapCodecInfo_INTERFACE_DEFINED__
  2132. DEFINE_GUID(IID_IWICBitmapCodecInfo, 0xe87a44c4, 0xb76e, 0x4c47, 0x8b,0x09, 0x29,0x8e,0xb1,0x2a,0x27,0x14);
  2133. #if defined(__cplusplus) && !defined(CINTERFACE)
  2134. MIDL_INTERFACE("e87a44c4-b76e-4c47-8b09-298eb12a2714")
  2135. IWICBitmapCodecInfo : public IWICComponentInfo
  2136. {
  2137. virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
  2138. GUID *pguidContainerFormat) = 0;
  2139. virtual HRESULT STDMETHODCALLTYPE GetPixelFormats(
  2140. UINT cFormats,
  2141. GUID *pguidPixelFormats,
  2142. UINT *pcActual) = 0;
  2143. virtual HRESULT STDMETHODCALLTYPE GetColorManagementVersion(
  2144. UINT cchColorManagementVersion,
  2145. WCHAR *wzColorManagementVersion,
  2146. UINT *pcchActual) = 0;
  2147. virtual HRESULT STDMETHODCALLTYPE GetDeviceManufacturer(
  2148. UINT cchDeviceManufacturer,
  2149. WCHAR *wzDeviceManufacturer,
  2150. UINT *pcchActual) = 0;
  2151. virtual HRESULT STDMETHODCALLTYPE GetDeviceModels(
  2152. UINT cchDeviceModels,
  2153. WCHAR *wzDeviceModels,
  2154. UINT *pcchActual) = 0;
  2155. virtual HRESULT STDMETHODCALLTYPE GetMimeTypes(
  2156. UINT cchMimeTypes,
  2157. WCHAR *wzMimeTypes,
  2158. UINT *pcchActual) = 0;
  2159. virtual HRESULT STDMETHODCALLTYPE GetFileExtensions(
  2160. UINT cchFileExtensions,
  2161. WCHAR *wzFileExtensions,
  2162. UINT *pcchActual) = 0;
  2163. virtual HRESULT STDMETHODCALLTYPE DoesSupportAnimation(
  2164. WINBOOL *pfSupportAnimation) = 0;
  2165. virtual HRESULT STDMETHODCALLTYPE DoesSupportChromaKey(
  2166. WINBOOL *pfSupportChromaKey) = 0;
  2167. virtual HRESULT STDMETHODCALLTYPE DoesSupportLossless(
  2168. WINBOOL *pfSupportLossless) = 0;
  2169. virtual HRESULT STDMETHODCALLTYPE DoesSupportMultiframe(
  2170. WINBOOL *pfSupportMultiframe) = 0;
  2171. virtual HRESULT STDMETHODCALLTYPE MatchesMimeType(
  2172. LPCWSTR wzMimeType,
  2173. WINBOOL *pfMatches) = 0;
  2174. };
  2175. #ifdef __CRT_UUID_DECL
  2176. __CRT_UUID_DECL(IWICBitmapCodecInfo, 0xe87a44c4, 0xb76e, 0x4c47, 0x8b,0x09, 0x29,0x8e,0xb1,0x2a,0x27,0x14)
  2177. #endif
  2178. #else
  2179. typedef struct IWICBitmapCodecInfoVtbl {
  2180. BEGIN_INTERFACE
  2181. /*** IUnknown methods ***/
  2182. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2183. IWICBitmapCodecInfo *This,
  2184. REFIID riid,
  2185. void **ppvObject);
  2186. ULONG (STDMETHODCALLTYPE *AddRef)(
  2187. IWICBitmapCodecInfo *This);
  2188. ULONG (STDMETHODCALLTYPE *Release)(
  2189. IWICBitmapCodecInfo *This);
  2190. /*** IWICComponentInfo methods ***/
  2191. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  2192. IWICBitmapCodecInfo *This,
  2193. WICComponentType *pType);
  2194. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  2195. IWICBitmapCodecInfo *This,
  2196. CLSID *pclsid);
  2197. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  2198. IWICBitmapCodecInfo *This,
  2199. DWORD *pStatus);
  2200. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  2201. IWICBitmapCodecInfo *This,
  2202. UINT cchAuthor,
  2203. WCHAR *wzAuthor,
  2204. UINT *pcchActual);
  2205. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  2206. IWICBitmapCodecInfo *This,
  2207. GUID *pguidVendor);
  2208. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  2209. IWICBitmapCodecInfo *This,
  2210. UINT cchVersion,
  2211. WCHAR *wzVersion,
  2212. UINT *pcchActual);
  2213. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  2214. IWICBitmapCodecInfo *This,
  2215. UINT cchSpecVersion,
  2216. WCHAR *wzSpecVersion,
  2217. UINT *pcchActual);
  2218. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  2219. IWICBitmapCodecInfo *This,
  2220. UINT cchFriendlyName,
  2221. WCHAR *wzFriendlyName,
  2222. UINT *pcchActual);
  2223. /*** IWICBitmapCodecInfo methods ***/
  2224. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  2225. IWICBitmapCodecInfo *This,
  2226. GUID *pguidContainerFormat);
  2227. HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
  2228. IWICBitmapCodecInfo *This,
  2229. UINT cFormats,
  2230. GUID *pguidPixelFormats,
  2231. UINT *pcActual);
  2232. HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
  2233. IWICBitmapCodecInfo *This,
  2234. UINT cchColorManagementVersion,
  2235. WCHAR *wzColorManagementVersion,
  2236. UINT *pcchActual);
  2237. HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
  2238. IWICBitmapCodecInfo *This,
  2239. UINT cchDeviceManufacturer,
  2240. WCHAR *wzDeviceManufacturer,
  2241. UINT *pcchActual);
  2242. HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
  2243. IWICBitmapCodecInfo *This,
  2244. UINT cchDeviceModels,
  2245. WCHAR *wzDeviceModels,
  2246. UINT *pcchActual);
  2247. HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
  2248. IWICBitmapCodecInfo *This,
  2249. UINT cchMimeTypes,
  2250. WCHAR *wzMimeTypes,
  2251. UINT *pcchActual);
  2252. HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
  2253. IWICBitmapCodecInfo *This,
  2254. UINT cchFileExtensions,
  2255. WCHAR *wzFileExtensions,
  2256. UINT *pcchActual);
  2257. HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
  2258. IWICBitmapCodecInfo *This,
  2259. WINBOOL *pfSupportAnimation);
  2260. HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
  2261. IWICBitmapCodecInfo *This,
  2262. WINBOOL *pfSupportChromaKey);
  2263. HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
  2264. IWICBitmapCodecInfo *This,
  2265. WINBOOL *pfSupportLossless);
  2266. HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
  2267. IWICBitmapCodecInfo *This,
  2268. WINBOOL *pfSupportMultiframe);
  2269. HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
  2270. IWICBitmapCodecInfo *This,
  2271. LPCWSTR wzMimeType,
  2272. WINBOOL *pfMatches);
  2273. END_INTERFACE
  2274. } IWICBitmapCodecInfoVtbl;
  2275. interface IWICBitmapCodecInfo {
  2276. CONST_VTBL IWICBitmapCodecInfoVtbl* lpVtbl;
  2277. };
  2278. #ifdef COBJMACROS
  2279. #ifndef WIDL_C_INLINE_WRAPPERS
  2280. /*** IUnknown methods ***/
  2281. #define IWICBitmapCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2282. #define IWICBitmapCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2283. #define IWICBitmapCodecInfo_Release(This) (This)->lpVtbl->Release(This)
  2284. /*** IWICComponentInfo methods ***/
  2285. #define IWICBitmapCodecInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  2286. #define IWICBitmapCodecInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  2287. #define IWICBitmapCodecInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  2288. #define IWICBitmapCodecInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  2289. #define IWICBitmapCodecInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  2290. #define IWICBitmapCodecInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  2291. #define IWICBitmapCodecInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  2292. #define IWICBitmapCodecInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  2293. /*** IWICBitmapCodecInfo methods ***/
  2294. #define IWICBitmapCodecInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  2295. #define IWICBitmapCodecInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
  2296. #define IWICBitmapCodecInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
  2297. #define IWICBitmapCodecInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
  2298. #define IWICBitmapCodecInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
  2299. #define IWICBitmapCodecInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
  2300. #define IWICBitmapCodecInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
  2301. #define IWICBitmapCodecInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
  2302. #define IWICBitmapCodecInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
  2303. #define IWICBitmapCodecInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
  2304. #define IWICBitmapCodecInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
  2305. #define IWICBitmapCodecInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
  2306. #else
  2307. /*** IUnknown methods ***/
  2308. static FORCEINLINE HRESULT IWICBitmapCodecInfo_QueryInterface(IWICBitmapCodecInfo* This,REFIID riid,void **ppvObject) {
  2309. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2310. }
  2311. static FORCEINLINE ULONG IWICBitmapCodecInfo_AddRef(IWICBitmapCodecInfo* This) {
  2312. return This->lpVtbl->AddRef(This);
  2313. }
  2314. static FORCEINLINE ULONG IWICBitmapCodecInfo_Release(IWICBitmapCodecInfo* This) {
  2315. return This->lpVtbl->Release(This);
  2316. }
  2317. /*** IWICComponentInfo methods ***/
  2318. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetComponentType(IWICBitmapCodecInfo* This,WICComponentType *pType) {
  2319. return This->lpVtbl->GetComponentType(This,pType);
  2320. }
  2321. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetCLSID(IWICBitmapCodecInfo* This,CLSID *pclsid) {
  2322. return This->lpVtbl->GetCLSID(This,pclsid);
  2323. }
  2324. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetSigningStatus(IWICBitmapCodecInfo* This,DWORD *pStatus) {
  2325. return This->lpVtbl->GetSigningStatus(This,pStatus);
  2326. }
  2327. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetAuthor(IWICBitmapCodecInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  2328. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  2329. }
  2330. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetVendorGUID(IWICBitmapCodecInfo* This,GUID *pguidVendor) {
  2331. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  2332. }
  2333. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetVersion(IWICBitmapCodecInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  2334. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  2335. }
  2336. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetSpecVersion(IWICBitmapCodecInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  2337. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  2338. }
  2339. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetFriendlyName(IWICBitmapCodecInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  2340. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  2341. }
  2342. /*** IWICBitmapCodecInfo methods ***/
  2343. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetContainerFormat(IWICBitmapCodecInfo* This,GUID *pguidContainerFormat) {
  2344. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  2345. }
  2346. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetPixelFormats(IWICBitmapCodecInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
  2347. return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
  2348. }
  2349. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetColorManagementVersion(IWICBitmapCodecInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
  2350. return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
  2351. }
  2352. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetDeviceManufacturer(IWICBitmapCodecInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
  2353. return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
  2354. }
  2355. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetDeviceModels(IWICBitmapCodecInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
  2356. return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
  2357. }
  2358. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetMimeTypes(IWICBitmapCodecInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
  2359. return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
  2360. }
  2361. static FORCEINLINE HRESULT IWICBitmapCodecInfo_GetFileExtensions(IWICBitmapCodecInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
  2362. return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
  2363. }
  2364. static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportAnimation(IWICBitmapCodecInfo* This,WINBOOL *pfSupportAnimation) {
  2365. return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
  2366. }
  2367. static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportChromaKey(IWICBitmapCodecInfo* This,WINBOOL *pfSupportChromaKey) {
  2368. return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
  2369. }
  2370. static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportLossless(IWICBitmapCodecInfo* This,WINBOOL *pfSupportLossless) {
  2371. return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
  2372. }
  2373. static FORCEINLINE HRESULT IWICBitmapCodecInfo_DoesSupportMultiframe(IWICBitmapCodecInfo* This,WINBOOL *pfSupportMultiframe) {
  2374. return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
  2375. }
  2376. static FORCEINLINE HRESULT IWICBitmapCodecInfo_MatchesMimeType(IWICBitmapCodecInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
  2377. return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
  2378. }
  2379. #endif
  2380. #endif
  2381. #endif
  2382. #endif /* __IWICBitmapCodecInfo_INTERFACE_DEFINED__ */
  2383. #ifndef __IWICBitmapDecoder_FWD_DEFINED__
  2384. #define __IWICBitmapDecoder_FWD_DEFINED__
  2385. typedef interface IWICBitmapDecoder IWICBitmapDecoder;
  2386. #ifdef __cplusplus
  2387. interface IWICBitmapDecoder;
  2388. #endif /* __cplusplus */
  2389. #endif
  2390. /*****************************************************************************
  2391. * IWICBitmapDecoderInfo interface
  2392. */
  2393. #ifndef __IWICBitmapDecoderInfo_INTERFACE_DEFINED__
  2394. #define __IWICBitmapDecoderInfo_INTERFACE_DEFINED__
  2395. DEFINE_GUID(IID_IWICBitmapDecoderInfo, 0xd8cd007f, 0xd08f, 0x4191, 0x9b,0xfc, 0x23,0x6e,0xa7,0xf0,0xe4,0xb5);
  2396. #if defined(__cplusplus) && !defined(CINTERFACE)
  2397. MIDL_INTERFACE("d8cd007f-d08f-4191-9bfc-236ea7f0e4b5")
  2398. IWICBitmapDecoderInfo : public IWICBitmapCodecInfo
  2399. {
  2400. virtual HRESULT STDMETHODCALLTYPE GetPatterns(
  2401. UINT cbSizePatterns,
  2402. WICBitmapPattern *pPatterns,
  2403. UINT *pcPatterns,
  2404. UINT *pcbPatternsActual) = 0;
  2405. virtual HRESULT STDMETHODCALLTYPE MatchesPattern(
  2406. IStream *pIStream,
  2407. WINBOOL *pfMatches) = 0;
  2408. virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  2409. IWICBitmapDecoder **ppIBitmapDecoder) = 0;
  2410. };
  2411. #ifdef __CRT_UUID_DECL
  2412. __CRT_UUID_DECL(IWICBitmapDecoderInfo, 0xd8cd007f, 0xd08f, 0x4191, 0x9b,0xfc, 0x23,0x6e,0xa7,0xf0,0xe4,0xb5)
  2413. #endif
  2414. #else
  2415. typedef struct IWICBitmapDecoderInfoVtbl {
  2416. BEGIN_INTERFACE
  2417. /*** IUnknown methods ***/
  2418. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2419. IWICBitmapDecoderInfo *This,
  2420. REFIID riid,
  2421. void **ppvObject);
  2422. ULONG (STDMETHODCALLTYPE *AddRef)(
  2423. IWICBitmapDecoderInfo *This);
  2424. ULONG (STDMETHODCALLTYPE *Release)(
  2425. IWICBitmapDecoderInfo *This);
  2426. /*** IWICComponentInfo methods ***/
  2427. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  2428. IWICBitmapDecoderInfo *This,
  2429. WICComponentType *pType);
  2430. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  2431. IWICBitmapDecoderInfo *This,
  2432. CLSID *pclsid);
  2433. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  2434. IWICBitmapDecoderInfo *This,
  2435. DWORD *pStatus);
  2436. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  2437. IWICBitmapDecoderInfo *This,
  2438. UINT cchAuthor,
  2439. WCHAR *wzAuthor,
  2440. UINT *pcchActual);
  2441. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  2442. IWICBitmapDecoderInfo *This,
  2443. GUID *pguidVendor);
  2444. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  2445. IWICBitmapDecoderInfo *This,
  2446. UINT cchVersion,
  2447. WCHAR *wzVersion,
  2448. UINT *pcchActual);
  2449. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  2450. IWICBitmapDecoderInfo *This,
  2451. UINT cchSpecVersion,
  2452. WCHAR *wzSpecVersion,
  2453. UINT *pcchActual);
  2454. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  2455. IWICBitmapDecoderInfo *This,
  2456. UINT cchFriendlyName,
  2457. WCHAR *wzFriendlyName,
  2458. UINT *pcchActual);
  2459. /*** IWICBitmapCodecInfo methods ***/
  2460. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  2461. IWICBitmapDecoderInfo *This,
  2462. GUID *pguidContainerFormat);
  2463. HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
  2464. IWICBitmapDecoderInfo *This,
  2465. UINT cFormats,
  2466. GUID *pguidPixelFormats,
  2467. UINT *pcActual);
  2468. HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
  2469. IWICBitmapDecoderInfo *This,
  2470. UINT cchColorManagementVersion,
  2471. WCHAR *wzColorManagementVersion,
  2472. UINT *pcchActual);
  2473. HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
  2474. IWICBitmapDecoderInfo *This,
  2475. UINT cchDeviceManufacturer,
  2476. WCHAR *wzDeviceManufacturer,
  2477. UINT *pcchActual);
  2478. HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
  2479. IWICBitmapDecoderInfo *This,
  2480. UINT cchDeviceModels,
  2481. WCHAR *wzDeviceModels,
  2482. UINT *pcchActual);
  2483. HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
  2484. IWICBitmapDecoderInfo *This,
  2485. UINT cchMimeTypes,
  2486. WCHAR *wzMimeTypes,
  2487. UINT *pcchActual);
  2488. HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
  2489. IWICBitmapDecoderInfo *This,
  2490. UINT cchFileExtensions,
  2491. WCHAR *wzFileExtensions,
  2492. UINT *pcchActual);
  2493. HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
  2494. IWICBitmapDecoderInfo *This,
  2495. WINBOOL *pfSupportAnimation);
  2496. HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
  2497. IWICBitmapDecoderInfo *This,
  2498. WINBOOL *pfSupportChromaKey);
  2499. HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
  2500. IWICBitmapDecoderInfo *This,
  2501. WINBOOL *pfSupportLossless);
  2502. HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
  2503. IWICBitmapDecoderInfo *This,
  2504. WINBOOL *pfSupportMultiframe);
  2505. HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
  2506. IWICBitmapDecoderInfo *This,
  2507. LPCWSTR wzMimeType,
  2508. WINBOOL *pfMatches);
  2509. /*** IWICBitmapDecoderInfo methods ***/
  2510. HRESULT (STDMETHODCALLTYPE *GetPatterns)(
  2511. IWICBitmapDecoderInfo *This,
  2512. UINT cbSizePatterns,
  2513. WICBitmapPattern *pPatterns,
  2514. UINT *pcPatterns,
  2515. UINT *pcbPatternsActual);
  2516. HRESULT (STDMETHODCALLTYPE *MatchesPattern)(
  2517. IWICBitmapDecoderInfo *This,
  2518. IStream *pIStream,
  2519. WINBOOL *pfMatches);
  2520. HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  2521. IWICBitmapDecoderInfo *This,
  2522. IWICBitmapDecoder **ppIBitmapDecoder);
  2523. END_INTERFACE
  2524. } IWICBitmapDecoderInfoVtbl;
  2525. interface IWICBitmapDecoderInfo {
  2526. CONST_VTBL IWICBitmapDecoderInfoVtbl* lpVtbl;
  2527. };
  2528. #ifdef COBJMACROS
  2529. #ifndef WIDL_C_INLINE_WRAPPERS
  2530. /*** IUnknown methods ***/
  2531. #define IWICBitmapDecoderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2532. #define IWICBitmapDecoderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2533. #define IWICBitmapDecoderInfo_Release(This) (This)->lpVtbl->Release(This)
  2534. /*** IWICComponentInfo methods ***/
  2535. #define IWICBitmapDecoderInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  2536. #define IWICBitmapDecoderInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  2537. #define IWICBitmapDecoderInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  2538. #define IWICBitmapDecoderInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  2539. #define IWICBitmapDecoderInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  2540. #define IWICBitmapDecoderInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  2541. #define IWICBitmapDecoderInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  2542. #define IWICBitmapDecoderInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  2543. /*** IWICBitmapCodecInfo methods ***/
  2544. #define IWICBitmapDecoderInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  2545. #define IWICBitmapDecoderInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
  2546. #define IWICBitmapDecoderInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
  2547. #define IWICBitmapDecoderInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
  2548. #define IWICBitmapDecoderInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
  2549. #define IWICBitmapDecoderInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
  2550. #define IWICBitmapDecoderInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
  2551. #define IWICBitmapDecoderInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
  2552. #define IWICBitmapDecoderInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
  2553. #define IWICBitmapDecoderInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
  2554. #define IWICBitmapDecoderInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
  2555. #define IWICBitmapDecoderInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
  2556. /*** IWICBitmapDecoderInfo methods ***/
  2557. #define IWICBitmapDecoderInfo_GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual) (This)->lpVtbl->GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual)
  2558. #define IWICBitmapDecoderInfo_MatchesPattern(This,pIStream,pfMatches) (This)->lpVtbl->MatchesPattern(This,pIStream,pfMatches)
  2559. #define IWICBitmapDecoderInfo_CreateInstance(This,ppIBitmapDecoder) (This)->lpVtbl->CreateInstance(This,ppIBitmapDecoder)
  2560. #else
  2561. /*** IUnknown methods ***/
  2562. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo* This,REFIID riid,void **ppvObject) {
  2563. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2564. }
  2565. static FORCEINLINE ULONG IWICBitmapDecoderInfo_AddRef(IWICBitmapDecoderInfo* This) {
  2566. return This->lpVtbl->AddRef(This);
  2567. }
  2568. static FORCEINLINE ULONG IWICBitmapDecoderInfo_Release(IWICBitmapDecoderInfo* This) {
  2569. return This->lpVtbl->Release(This);
  2570. }
  2571. /*** IWICComponentInfo methods ***/
  2572. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetComponentType(IWICBitmapDecoderInfo* This,WICComponentType *pType) {
  2573. return This->lpVtbl->GetComponentType(This,pType);
  2574. }
  2575. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetCLSID(IWICBitmapDecoderInfo* This,CLSID *pclsid) {
  2576. return This->lpVtbl->GetCLSID(This,pclsid);
  2577. }
  2578. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetSigningStatus(IWICBitmapDecoderInfo* This,DWORD *pStatus) {
  2579. return This->lpVtbl->GetSigningStatus(This,pStatus);
  2580. }
  2581. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetAuthor(IWICBitmapDecoderInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  2582. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  2583. }
  2584. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetVendorGUID(IWICBitmapDecoderInfo* This,GUID *pguidVendor) {
  2585. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  2586. }
  2587. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetVersion(IWICBitmapDecoderInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  2588. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  2589. }
  2590. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetSpecVersion(IWICBitmapDecoderInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  2591. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  2592. }
  2593. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetFriendlyName(IWICBitmapDecoderInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  2594. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  2595. }
  2596. /*** IWICBitmapCodecInfo methods ***/
  2597. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetContainerFormat(IWICBitmapDecoderInfo* This,GUID *pguidContainerFormat) {
  2598. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  2599. }
  2600. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetPixelFormats(IWICBitmapDecoderInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
  2601. return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
  2602. }
  2603. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetColorManagementVersion(IWICBitmapDecoderInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
  2604. return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
  2605. }
  2606. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetDeviceManufacturer(IWICBitmapDecoderInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
  2607. return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
  2608. }
  2609. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetDeviceModels(IWICBitmapDecoderInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
  2610. return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
  2611. }
  2612. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetMimeTypes(IWICBitmapDecoderInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
  2613. return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
  2614. }
  2615. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetFileExtensions(IWICBitmapDecoderInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
  2616. return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
  2617. }
  2618. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportAnimation(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportAnimation) {
  2619. return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
  2620. }
  2621. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportChromaKey(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportChromaKey) {
  2622. return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
  2623. }
  2624. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportLossless(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportLossless) {
  2625. return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
  2626. }
  2627. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_DoesSupportMultiframe(IWICBitmapDecoderInfo* This,WINBOOL *pfSupportMultiframe) {
  2628. return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
  2629. }
  2630. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_MatchesMimeType(IWICBitmapDecoderInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
  2631. return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
  2632. }
  2633. /*** IWICBitmapDecoderInfo methods ***/
  2634. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_GetPatterns(IWICBitmapDecoderInfo* This,UINT cbSizePatterns,WICBitmapPattern *pPatterns,UINT *pcPatterns,UINT *pcbPatternsActual) {
  2635. return This->lpVtbl->GetPatterns(This,cbSizePatterns,pPatterns,pcPatterns,pcbPatternsActual);
  2636. }
  2637. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_MatchesPattern(IWICBitmapDecoderInfo* This,IStream *pIStream,WINBOOL *pfMatches) {
  2638. return This->lpVtbl->MatchesPattern(This,pIStream,pfMatches);
  2639. }
  2640. static FORCEINLINE HRESULT IWICBitmapDecoderInfo_CreateInstance(IWICBitmapDecoderInfo* This,IWICBitmapDecoder **ppIBitmapDecoder) {
  2641. return This->lpVtbl->CreateInstance(This,ppIBitmapDecoder);
  2642. }
  2643. #endif
  2644. #endif
  2645. #endif
  2646. #endif /* __IWICBitmapDecoderInfo_INTERFACE_DEFINED__ */
  2647. /*****************************************************************************
  2648. * IWICBitmapDecoder interface
  2649. */
  2650. #ifndef __IWICBitmapDecoder_INTERFACE_DEFINED__
  2651. #define __IWICBitmapDecoder_INTERFACE_DEFINED__
  2652. DEFINE_GUID(IID_IWICBitmapDecoder, 0x9edde9e7, 0x8dee, 0x47ea, 0x99,0xdf, 0xe6,0xfa,0xf2,0xed,0x44,0xbf);
  2653. #if defined(__cplusplus) && !defined(CINTERFACE)
  2654. MIDL_INTERFACE("9edde9e7-8dee-47ea-99df-e6faf2ed44bf")
  2655. IWICBitmapDecoder : public IUnknown
  2656. {
  2657. virtual HRESULT STDMETHODCALLTYPE QueryCapability(
  2658. IStream *pIStream,
  2659. DWORD *pdwCapability) = 0;
  2660. virtual HRESULT STDMETHODCALLTYPE Initialize(
  2661. IStream *pIStream,
  2662. WICDecodeOptions cacheOptions) = 0;
  2663. virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
  2664. GUID *pguidContainerFormat) = 0;
  2665. virtual HRESULT STDMETHODCALLTYPE GetDecoderInfo(
  2666. IWICBitmapDecoderInfo **ppIDecoderInfo) = 0;
  2667. virtual HRESULT STDMETHODCALLTYPE CopyPalette(
  2668. IWICPalette *pIPalette) = 0;
  2669. virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryReader(
  2670. IWICMetadataQueryReader **ppIMetadataQueryReader) = 0;
  2671. virtual HRESULT STDMETHODCALLTYPE GetPreview(
  2672. IWICBitmapSource **ppIBitmapSource) = 0;
  2673. virtual HRESULT STDMETHODCALLTYPE GetColorContexts(
  2674. UINT cCount,
  2675. IWICColorContext **ppIColorContexts,
  2676. UINT *pcActualCount) = 0;
  2677. virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
  2678. IWICBitmapSource **ppIThumbnail) = 0;
  2679. virtual HRESULT STDMETHODCALLTYPE GetFrameCount(
  2680. UINT *pCount) = 0;
  2681. virtual HRESULT STDMETHODCALLTYPE GetFrame(
  2682. UINT index,
  2683. IWICBitmapFrameDecode **ppIBitmapFrame) = 0;
  2684. };
  2685. #ifdef __CRT_UUID_DECL
  2686. __CRT_UUID_DECL(IWICBitmapDecoder, 0x9edde9e7, 0x8dee, 0x47ea, 0x99,0xdf, 0xe6,0xfa,0xf2,0xed,0x44,0xbf)
  2687. #endif
  2688. #else
  2689. typedef struct IWICBitmapDecoderVtbl {
  2690. BEGIN_INTERFACE
  2691. /*** IUnknown methods ***/
  2692. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2693. IWICBitmapDecoder *This,
  2694. REFIID riid,
  2695. void **ppvObject);
  2696. ULONG (STDMETHODCALLTYPE *AddRef)(
  2697. IWICBitmapDecoder *This);
  2698. ULONG (STDMETHODCALLTYPE *Release)(
  2699. IWICBitmapDecoder *This);
  2700. /*** IWICBitmapDecoder methods ***/
  2701. HRESULT (STDMETHODCALLTYPE *QueryCapability)(
  2702. IWICBitmapDecoder *This,
  2703. IStream *pIStream,
  2704. DWORD *pdwCapability);
  2705. HRESULT (STDMETHODCALLTYPE *Initialize)(
  2706. IWICBitmapDecoder *This,
  2707. IStream *pIStream,
  2708. WICDecodeOptions cacheOptions);
  2709. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  2710. IWICBitmapDecoder *This,
  2711. GUID *pguidContainerFormat);
  2712. HRESULT (STDMETHODCALLTYPE *GetDecoderInfo)(
  2713. IWICBitmapDecoder *This,
  2714. IWICBitmapDecoderInfo **ppIDecoderInfo);
  2715. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  2716. IWICBitmapDecoder *This,
  2717. IWICPalette *pIPalette);
  2718. HRESULT (STDMETHODCALLTYPE *GetMetadataQueryReader)(
  2719. IWICBitmapDecoder *This,
  2720. IWICMetadataQueryReader **ppIMetadataQueryReader);
  2721. HRESULT (STDMETHODCALLTYPE *GetPreview)(
  2722. IWICBitmapDecoder *This,
  2723. IWICBitmapSource **ppIBitmapSource);
  2724. HRESULT (STDMETHODCALLTYPE *GetColorContexts)(
  2725. IWICBitmapDecoder *This,
  2726. UINT cCount,
  2727. IWICColorContext **ppIColorContexts,
  2728. UINT *pcActualCount);
  2729. HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
  2730. IWICBitmapDecoder *This,
  2731. IWICBitmapSource **ppIThumbnail);
  2732. HRESULT (STDMETHODCALLTYPE *GetFrameCount)(
  2733. IWICBitmapDecoder *This,
  2734. UINT *pCount);
  2735. HRESULT (STDMETHODCALLTYPE *GetFrame)(
  2736. IWICBitmapDecoder *This,
  2737. UINT index,
  2738. IWICBitmapFrameDecode **ppIBitmapFrame);
  2739. END_INTERFACE
  2740. } IWICBitmapDecoderVtbl;
  2741. interface IWICBitmapDecoder {
  2742. CONST_VTBL IWICBitmapDecoderVtbl* lpVtbl;
  2743. };
  2744. #ifdef COBJMACROS
  2745. #ifndef WIDL_C_INLINE_WRAPPERS
  2746. /*** IUnknown methods ***/
  2747. #define IWICBitmapDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2748. #define IWICBitmapDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  2749. #define IWICBitmapDecoder_Release(This) (This)->lpVtbl->Release(This)
  2750. /*** IWICBitmapDecoder methods ***/
  2751. #define IWICBitmapDecoder_QueryCapability(This,pIStream,pdwCapability) (This)->lpVtbl->QueryCapability(This,pIStream,pdwCapability)
  2752. #define IWICBitmapDecoder_Initialize(This,pIStream,cacheOptions) (This)->lpVtbl->Initialize(This,pIStream,cacheOptions)
  2753. #define IWICBitmapDecoder_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  2754. #define IWICBitmapDecoder_GetDecoderInfo(This,ppIDecoderInfo) (This)->lpVtbl->GetDecoderInfo(This,ppIDecoderInfo)
  2755. #define IWICBitmapDecoder_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  2756. #define IWICBitmapDecoder_GetMetadataQueryReader(This,ppIMetadataQueryReader) (This)->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader)
  2757. #define IWICBitmapDecoder_GetPreview(This,ppIBitmapSource) (This)->lpVtbl->GetPreview(This,ppIBitmapSource)
  2758. #define IWICBitmapDecoder_GetColorContexts(This,cCount,ppIColorContexts,pcActualCount) (This)->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount)
  2759. #define IWICBitmapDecoder_GetThumbnail(This,ppIThumbnail) (This)->lpVtbl->GetThumbnail(This,ppIThumbnail)
  2760. #define IWICBitmapDecoder_GetFrameCount(This,pCount) (This)->lpVtbl->GetFrameCount(This,pCount)
  2761. #define IWICBitmapDecoder_GetFrame(This,index,ppIBitmapFrame) (This)->lpVtbl->GetFrame(This,index,ppIBitmapFrame)
  2762. #else
  2763. /*** IUnknown methods ***/
  2764. static FORCEINLINE HRESULT IWICBitmapDecoder_QueryInterface(IWICBitmapDecoder* This,REFIID riid,void **ppvObject) {
  2765. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2766. }
  2767. static FORCEINLINE ULONG IWICBitmapDecoder_AddRef(IWICBitmapDecoder* This) {
  2768. return This->lpVtbl->AddRef(This);
  2769. }
  2770. static FORCEINLINE ULONG IWICBitmapDecoder_Release(IWICBitmapDecoder* This) {
  2771. return This->lpVtbl->Release(This);
  2772. }
  2773. /*** IWICBitmapDecoder methods ***/
  2774. static FORCEINLINE HRESULT IWICBitmapDecoder_QueryCapability(IWICBitmapDecoder* This,IStream *pIStream,DWORD *pdwCapability) {
  2775. return This->lpVtbl->QueryCapability(This,pIStream,pdwCapability);
  2776. }
  2777. static FORCEINLINE HRESULT IWICBitmapDecoder_Initialize(IWICBitmapDecoder* This,IStream *pIStream,WICDecodeOptions cacheOptions) {
  2778. return This->lpVtbl->Initialize(This,pIStream,cacheOptions);
  2779. }
  2780. static FORCEINLINE HRESULT IWICBitmapDecoder_GetContainerFormat(IWICBitmapDecoder* This,GUID *pguidContainerFormat) {
  2781. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  2782. }
  2783. static FORCEINLINE HRESULT IWICBitmapDecoder_GetDecoderInfo(IWICBitmapDecoder* This,IWICBitmapDecoderInfo **ppIDecoderInfo) {
  2784. return This->lpVtbl->GetDecoderInfo(This,ppIDecoderInfo);
  2785. }
  2786. static FORCEINLINE HRESULT IWICBitmapDecoder_CopyPalette(IWICBitmapDecoder* This,IWICPalette *pIPalette) {
  2787. return This->lpVtbl->CopyPalette(This,pIPalette);
  2788. }
  2789. static FORCEINLINE HRESULT IWICBitmapDecoder_GetMetadataQueryReader(IWICBitmapDecoder* This,IWICMetadataQueryReader **ppIMetadataQueryReader) {
  2790. return This->lpVtbl->GetMetadataQueryReader(This,ppIMetadataQueryReader);
  2791. }
  2792. static FORCEINLINE HRESULT IWICBitmapDecoder_GetPreview(IWICBitmapDecoder* This,IWICBitmapSource **ppIBitmapSource) {
  2793. return This->lpVtbl->GetPreview(This,ppIBitmapSource);
  2794. }
  2795. static FORCEINLINE HRESULT IWICBitmapDecoder_GetColorContexts(IWICBitmapDecoder* This,UINT cCount,IWICColorContext **ppIColorContexts,UINT *pcActualCount) {
  2796. return This->lpVtbl->GetColorContexts(This,cCount,ppIColorContexts,pcActualCount);
  2797. }
  2798. static FORCEINLINE HRESULT IWICBitmapDecoder_GetThumbnail(IWICBitmapDecoder* This,IWICBitmapSource **ppIThumbnail) {
  2799. return This->lpVtbl->GetThumbnail(This,ppIThumbnail);
  2800. }
  2801. static FORCEINLINE HRESULT IWICBitmapDecoder_GetFrameCount(IWICBitmapDecoder* This,UINT *pCount) {
  2802. return This->lpVtbl->GetFrameCount(This,pCount);
  2803. }
  2804. static FORCEINLINE HRESULT IWICBitmapDecoder_GetFrame(IWICBitmapDecoder* This,UINT index,IWICBitmapFrameDecode **ppIBitmapFrame) {
  2805. return This->lpVtbl->GetFrame(This,index,ppIBitmapFrame);
  2806. }
  2807. #endif
  2808. #endif
  2809. #endif
  2810. #endif /* __IWICBitmapDecoder_INTERFACE_DEFINED__ */
  2811. /*****************************************************************************
  2812. * IWICBitmapFrameEncode interface
  2813. */
  2814. #ifndef __IWICBitmapFrameEncode_INTERFACE_DEFINED__
  2815. #define __IWICBitmapFrameEncode_INTERFACE_DEFINED__
  2816. DEFINE_GUID(IID_IWICBitmapFrameEncode, 0x00000105, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  2817. #if defined(__cplusplus) && !defined(CINTERFACE)
  2818. MIDL_INTERFACE("00000105-a8f2-4877-ba0a-fd2b6645fb94")
  2819. IWICBitmapFrameEncode : public IUnknown
  2820. {
  2821. virtual HRESULT STDMETHODCALLTYPE Initialize(
  2822. IPropertyBag2 *pIEncoderOptions) = 0;
  2823. virtual HRESULT STDMETHODCALLTYPE SetSize(
  2824. UINT uiWidth,
  2825. UINT uiHeight) = 0;
  2826. virtual HRESULT STDMETHODCALLTYPE SetResolution(
  2827. double dpiX,
  2828. double dpiY) = 0;
  2829. virtual HRESULT STDMETHODCALLTYPE SetPixelFormat(
  2830. WICPixelFormatGUID *pPixelFormat) = 0;
  2831. virtual HRESULT STDMETHODCALLTYPE SetColorContexts(
  2832. UINT cCount,
  2833. IWICColorContext **ppIColorContext) = 0;
  2834. virtual HRESULT STDMETHODCALLTYPE SetPalette(
  2835. IWICPalette *pIPalette) = 0;
  2836. virtual HRESULT STDMETHODCALLTYPE SetThumbnail(
  2837. IWICBitmapSource *pIThumbnail) = 0;
  2838. virtual HRESULT STDMETHODCALLTYPE WritePixels(
  2839. UINT lineCount,
  2840. UINT cbStride,
  2841. UINT cbBufferSize,
  2842. BYTE *pbPixels) = 0;
  2843. virtual HRESULT STDMETHODCALLTYPE WriteSource(
  2844. IWICBitmapSource *pIBitmapSource,
  2845. WICRect *prc) = 0;
  2846. virtual HRESULT STDMETHODCALLTYPE Commit(
  2847. ) = 0;
  2848. virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
  2849. IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
  2850. };
  2851. #ifdef __CRT_UUID_DECL
  2852. __CRT_UUID_DECL(IWICBitmapFrameEncode, 0x00000105, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  2853. #endif
  2854. #else
  2855. typedef struct IWICBitmapFrameEncodeVtbl {
  2856. BEGIN_INTERFACE
  2857. /*** IUnknown methods ***/
  2858. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2859. IWICBitmapFrameEncode *This,
  2860. REFIID riid,
  2861. void **ppvObject);
  2862. ULONG (STDMETHODCALLTYPE *AddRef)(
  2863. IWICBitmapFrameEncode *This);
  2864. ULONG (STDMETHODCALLTYPE *Release)(
  2865. IWICBitmapFrameEncode *This);
  2866. /*** IWICBitmapFrameEncode methods ***/
  2867. HRESULT (STDMETHODCALLTYPE *Initialize)(
  2868. IWICBitmapFrameEncode *This,
  2869. IPropertyBag2 *pIEncoderOptions);
  2870. HRESULT (STDMETHODCALLTYPE *SetSize)(
  2871. IWICBitmapFrameEncode *This,
  2872. UINT uiWidth,
  2873. UINT uiHeight);
  2874. HRESULT (STDMETHODCALLTYPE *SetResolution)(
  2875. IWICBitmapFrameEncode *This,
  2876. double dpiX,
  2877. double dpiY);
  2878. HRESULT (STDMETHODCALLTYPE *SetPixelFormat)(
  2879. IWICBitmapFrameEncode *This,
  2880. WICPixelFormatGUID *pPixelFormat);
  2881. HRESULT (STDMETHODCALLTYPE *SetColorContexts)(
  2882. IWICBitmapFrameEncode *This,
  2883. UINT cCount,
  2884. IWICColorContext **ppIColorContext);
  2885. HRESULT (STDMETHODCALLTYPE *SetPalette)(
  2886. IWICBitmapFrameEncode *This,
  2887. IWICPalette *pIPalette);
  2888. HRESULT (STDMETHODCALLTYPE *SetThumbnail)(
  2889. IWICBitmapFrameEncode *This,
  2890. IWICBitmapSource *pIThumbnail);
  2891. HRESULT (STDMETHODCALLTYPE *WritePixels)(
  2892. IWICBitmapFrameEncode *This,
  2893. UINT lineCount,
  2894. UINT cbStride,
  2895. UINT cbBufferSize,
  2896. BYTE *pbPixels);
  2897. HRESULT (STDMETHODCALLTYPE *WriteSource)(
  2898. IWICBitmapFrameEncode *This,
  2899. IWICBitmapSource *pIBitmapSource,
  2900. WICRect *prc);
  2901. HRESULT (STDMETHODCALLTYPE *Commit)(
  2902. IWICBitmapFrameEncode *This);
  2903. HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
  2904. IWICBitmapFrameEncode *This,
  2905. IWICMetadataQueryWriter **ppIMetadataQueryWriter);
  2906. END_INTERFACE
  2907. } IWICBitmapFrameEncodeVtbl;
  2908. interface IWICBitmapFrameEncode {
  2909. CONST_VTBL IWICBitmapFrameEncodeVtbl* lpVtbl;
  2910. };
  2911. #ifdef COBJMACROS
  2912. #ifndef WIDL_C_INLINE_WRAPPERS
  2913. /*** IUnknown methods ***/
  2914. #define IWICBitmapFrameEncode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2915. #define IWICBitmapFrameEncode_AddRef(This) (This)->lpVtbl->AddRef(This)
  2916. #define IWICBitmapFrameEncode_Release(This) (This)->lpVtbl->Release(This)
  2917. /*** IWICBitmapFrameEncode methods ***/
  2918. #define IWICBitmapFrameEncode_Initialize(This,pIEncoderOptions) (This)->lpVtbl->Initialize(This,pIEncoderOptions)
  2919. #define IWICBitmapFrameEncode_SetSize(This,uiWidth,uiHeight) (This)->lpVtbl->SetSize(This,uiWidth,uiHeight)
  2920. #define IWICBitmapFrameEncode_SetResolution(This,dpiX,dpiY) (This)->lpVtbl->SetResolution(This,dpiX,dpiY)
  2921. #define IWICBitmapFrameEncode_SetPixelFormat(This,pPixelFormat) (This)->lpVtbl->SetPixelFormat(This,pPixelFormat)
  2922. #define IWICBitmapFrameEncode_SetColorContexts(This,cCount,ppIColorContext) (This)->lpVtbl->SetColorContexts(This,cCount,ppIColorContext)
  2923. #define IWICBitmapFrameEncode_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
  2924. #define IWICBitmapFrameEncode_SetThumbnail(This,pIThumbnail) (This)->lpVtbl->SetThumbnail(This,pIThumbnail)
  2925. #define IWICBitmapFrameEncode_WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels) (This)->lpVtbl->WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels)
  2926. #define IWICBitmapFrameEncode_WriteSource(This,pIBitmapSource,prc) (This)->lpVtbl->WriteSource(This,pIBitmapSource,prc)
  2927. #define IWICBitmapFrameEncode_Commit(This) (This)->lpVtbl->Commit(This)
  2928. #define IWICBitmapFrameEncode_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
  2929. #else
  2930. /*** IUnknown methods ***/
  2931. static FORCEINLINE HRESULT IWICBitmapFrameEncode_QueryInterface(IWICBitmapFrameEncode* This,REFIID riid,void **ppvObject) {
  2932. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2933. }
  2934. static FORCEINLINE ULONG IWICBitmapFrameEncode_AddRef(IWICBitmapFrameEncode* This) {
  2935. return This->lpVtbl->AddRef(This);
  2936. }
  2937. static FORCEINLINE ULONG IWICBitmapFrameEncode_Release(IWICBitmapFrameEncode* This) {
  2938. return This->lpVtbl->Release(This);
  2939. }
  2940. /*** IWICBitmapFrameEncode methods ***/
  2941. static FORCEINLINE HRESULT IWICBitmapFrameEncode_Initialize(IWICBitmapFrameEncode* This,IPropertyBag2 *pIEncoderOptions) {
  2942. return This->lpVtbl->Initialize(This,pIEncoderOptions);
  2943. }
  2944. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetSize(IWICBitmapFrameEncode* This,UINT uiWidth,UINT uiHeight) {
  2945. return This->lpVtbl->SetSize(This,uiWidth,uiHeight);
  2946. }
  2947. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetResolution(IWICBitmapFrameEncode* This,double dpiX,double dpiY) {
  2948. return This->lpVtbl->SetResolution(This,dpiX,dpiY);
  2949. }
  2950. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetPixelFormat(IWICBitmapFrameEncode* This,WICPixelFormatGUID *pPixelFormat) {
  2951. return This->lpVtbl->SetPixelFormat(This,pPixelFormat);
  2952. }
  2953. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetColorContexts(IWICBitmapFrameEncode* This,UINT cCount,IWICColorContext **ppIColorContext) {
  2954. return This->lpVtbl->SetColorContexts(This,cCount,ppIColorContext);
  2955. }
  2956. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetPalette(IWICBitmapFrameEncode* This,IWICPalette *pIPalette) {
  2957. return This->lpVtbl->SetPalette(This,pIPalette);
  2958. }
  2959. static FORCEINLINE HRESULT IWICBitmapFrameEncode_SetThumbnail(IWICBitmapFrameEncode* This,IWICBitmapSource *pIThumbnail) {
  2960. return This->lpVtbl->SetThumbnail(This,pIThumbnail);
  2961. }
  2962. static FORCEINLINE HRESULT IWICBitmapFrameEncode_WritePixels(IWICBitmapFrameEncode* This,UINT lineCount,UINT cbStride,UINT cbBufferSize,BYTE *pbPixels) {
  2963. return This->lpVtbl->WritePixels(This,lineCount,cbStride,cbBufferSize,pbPixels);
  2964. }
  2965. static FORCEINLINE HRESULT IWICBitmapFrameEncode_WriteSource(IWICBitmapFrameEncode* This,IWICBitmapSource *pIBitmapSource,WICRect *prc) {
  2966. return This->lpVtbl->WriteSource(This,pIBitmapSource,prc);
  2967. }
  2968. static FORCEINLINE HRESULT IWICBitmapFrameEncode_Commit(IWICBitmapFrameEncode* This) {
  2969. return This->lpVtbl->Commit(This);
  2970. }
  2971. static FORCEINLINE HRESULT IWICBitmapFrameEncode_GetMetadataQueryWriter(IWICBitmapFrameEncode* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
  2972. return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
  2973. }
  2974. #endif
  2975. #endif
  2976. #endif
  2977. #endif /* __IWICBitmapFrameEncode_INTERFACE_DEFINED__ */
  2978. #ifndef __IWICBitmapEncoder_FWD_DEFINED__
  2979. #define __IWICBitmapEncoder_FWD_DEFINED__
  2980. typedef interface IWICBitmapEncoder IWICBitmapEncoder;
  2981. #ifdef __cplusplus
  2982. interface IWICBitmapEncoder;
  2983. #endif /* __cplusplus */
  2984. #endif
  2985. /*****************************************************************************
  2986. * IWICBitmapEncoderInfo interface
  2987. */
  2988. #ifndef __IWICBitmapEncoderInfo_INTERFACE_DEFINED__
  2989. #define __IWICBitmapEncoderInfo_INTERFACE_DEFINED__
  2990. DEFINE_GUID(IID_IWICBitmapEncoderInfo, 0x94c9b4ee, 0xa09f, 0x4f92, 0x8a,0x1e, 0x4a,0x9b,0xce,0x7e,0x76,0xfb);
  2991. #if defined(__cplusplus) && !defined(CINTERFACE)
  2992. MIDL_INTERFACE("94c9b4ee-a09f-4f92-8a1e-4a9bce7e76fb")
  2993. IWICBitmapEncoderInfo : public IWICBitmapCodecInfo
  2994. {
  2995. virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  2996. IWICBitmapEncoder **ppIBitmapEncoder) = 0;
  2997. };
  2998. #ifdef __CRT_UUID_DECL
  2999. __CRT_UUID_DECL(IWICBitmapEncoderInfo, 0x94c9b4ee, 0xa09f, 0x4f92, 0x8a,0x1e, 0x4a,0x9b,0xce,0x7e,0x76,0xfb)
  3000. #endif
  3001. #else
  3002. typedef struct IWICBitmapEncoderInfoVtbl {
  3003. BEGIN_INTERFACE
  3004. /*** IUnknown methods ***/
  3005. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3006. IWICBitmapEncoderInfo *This,
  3007. REFIID riid,
  3008. void **ppvObject);
  3009. ULONG (STDMETHODCALLTYPE *AddRef)(
  3010. IWICBitmapEncoderInfo *This);
  3011. ULONG (STDMETHODCALLTYPE *Release)(
  3012. IWICBitmapEncoderInfo *This);
  3013. /*** IWICComponentInfo methods ***/
  3014. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  3015. IWICBitmapEncoderInfo *This,
  3016. WICComponentType *pType);
  3017. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  3018. IWICBitmapEncoderInfo *This,
  3019. CLSID *pclsid);
  3020. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  3021. IWICBitmapEncoderInfo *This,
  3022. DWORD *pStatus);
  3023. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  3024. IWICBitmapEncoderInfo *This,
  3025. UINT cchAuthor,
  3026. WCHAR *wzAuthor,
  3027. UINT *pcchActual);
  3028. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  3029. IWICBitmapEncoderInfo *This,
  3030. GUID *pguidVendor);
  3031. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  3032. IWICBitmapEncoderInfo *This,
  3033. UINT cchVersion,
  3034. WCHAR *wzVersion,
  3035. UINT *pcchActual);
  3036. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  3037. IWICBitmapEncoderInfo *This,
  3038. UINT cchSpecVersion,
  3039. WCHAR *wzSpecVersion,
  3040. UINT *pcchActual);
  3041. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  3042. IWICBitmapEncoderInfo *This,
  3043. UINT cchFriendlyName,
  3044. WCHAR *wzFriendlyName,
  3045. UINT *pcchActual);
  3046. /*** IWICBitmapCodecInfo methods ***/
  3047. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  3048. IWICBitmapEncoderInfo *This,
  3049. GUID *pguidContainerFormat);
  3050. HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
  3051. IWICBitmapEncoderInfo *This,
  3052. UINT cFormats,
  3053. GUID *pguidPixelFormats,
  3054. UINT *pcActual);
  3055. HRESULT (STDMETHODCALLTYPE *GetColorManagementVersion)(
  3056. IWICBitmapEncoderInfo *This,
  3057. UINT cchColorManagementVersion,
  3058. WCHAR *wzColorManagementVersion,
  3059. UINT *pcchActual);
  3060. HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
  3061. IWICBitmapEncoderInfo *This,
  3062. UINT cchDeviceManufacturer,
  3063. WCHAR *wzDeviceManufacturer,
  3064. UINT *pcchActual);
  3065. HRESULT (STDMETHODCALLTYPE *GetDeviceModels)(
  3066. IWICBitmapEncoderInfo *This,
  3067. UINT cchDeviceModels,
  3068. WCHAR *wzDeviceModels,
  3069. UINT *pcchActual);
  3070. HRESULT (STDMETHODCALLTYPE *GetMimeTypes)(
  3071. IWICBitmapEncoderInfo *This,
  3072. UINT cchMimeTypes,
  3073. WCHAR *wzMimeTypes,
  3074. UINT *pcchActual);
  3075. HRESULT (STDMETHODCALLTYPE *GetFileExtensions)(
  3076. IWICBitmapEncoderInfo *This,
  3077. UINT cchFileExtensions,
  3078. WCHAR *wzFileExtensions,
  3079. UINT *pcchActual);
  3080. HRESULT (STDMETHODCALLTYPE *DoesSupportAnimation)(
  3081. IWICBitmapEncoderInfo *This,
  3082. WINBOOL *pfSupportAnimation);
  3083. HRESULT (STDMETHODCALLTYPE *DoesSupportChromaKey)(
  3084. IWICBitmapEncoderInfo *This,
  3085. WINBOOL *pfSupportChromaKey);
  3086. HRESULT (STDMETHODCALLTYPE *DoesSupportLossless)(
  3087. IWICBitmapEncoderInfo *This,
  3088. WINBOOL *pfSupportLossless);
  3089. HRESULT (STDMETHODCALLTYPE *DoesSupportMultiframe)(
  3090. IWICBitmapEncoderInfo *This,
  3091. WINBOOL *pfSupportMultiframe);
  3092. HRESULT (STDMETHODCALLTYPE *MatchesMimeType)(
  3093. IWICBitmapEncoderInfo *This,
  3094. LPCWSTR wzMimeType,
  3095. WINBOOL *pfMatches);
  3096. /*** IWICBitmapEncoderInfo methods ***/
  3097. HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  3098. IWICBitmapEncoderInfo *This,
  3099. IWICBitmapEncoder **ppIBitmapEncoder);
  3100. END_INTERFACE
  3101. } IWICBitmapEncoderInfoVtbl;
  3102. interface IWICBitmapEncoderInfo {
  3103. CONST_VTBL IWICBitmapEncoderInfoVtbl* lpVtbl;
  3104. };
  3105. #ifdef COBJMACROS
  3106. #ifndef WIDL_C_INLINE_WRAPPERS
  3107. /*** IUnknown methods ***/
  3108. #define IWICBitmapEncoderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3109. #define IWICBitmapEncoderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  3110. #define IWICBitmapEncoderInfo_Release(This) (This)->lpVtbl->Release(This)
  3111. /*** IWICComponentInfo methods ***/
  3112. #define IWICBitmapEncoderInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  3113. #define IWICBitmapEncoderInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  3114. #define IWICBitmapEncoderInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  3115. #define IWICBitmapEncoderInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  3116. #define IWICBitmapEncoderInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  3117. #define IWICBitmapEncoderInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  3118. #define IWICBitmapEncoderInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  3119. #define IWICBitmapEncoderInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  3120. /*** IWICBitmapCodecInfo methods ***/
  3121. #define IWICBitmapEncoderInfo_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  3122. #define IWICBitmapEncoderInfo_GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual)
  3123. #define IWICBitmapEncoderInfo_GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual) (This)->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual)
  3124. #define IWICBitmapEncoderInfo_GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual) (This)->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual)
  3125. #define IWICBitmapEncoderInfo_GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual) (This)->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual)
  3126. #define IWICBitmapEncoderInfo_GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual) (This)->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual)
  3127. #define IWICBitmapEncoderInfo_GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual) (This)->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual)
  3128. #define IWICBitmapEncoderInfo_DoesSupportAnimation(This,pfSupportAnimation) (This)->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation)
  3129. #define IWICBitmapEncoderInfo_DoesSupportChromaKey(This,pfSupportChromaKey) (This)->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey)
  3130. #define IWICBitmapEncoderInfo_DoesSupportLossless(This,pfSupportLossless) (This)->lpVtbl->DoesSupportLossless(This,pfSupportLossless)
  3131. #define IWICBitmapEncoderInfo_DoesSupportMultiframe(This,pfSupportMultiframe) (This)->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe)
  3132. #define IWICBitmapEncoderInfo_MatchesMimeType(This,wzMimeType,pfMatches) (This)->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches)
  3133. /*** IWICBitmapEncoderInfo methods ***/
  3134. #define IWICBitmapEncoderInfo_CreateInstance(This,ppIBitmapEncoder) (This)->lpVtbl->CreateInstance(This,ppIBitmapEncoder)
  3135. #else
  3136. /*** IUnknown methods ***/
  3137. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo* This,REFIID riid,void **ppvObject) {
  3138. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3139. }
  3140. static FORCEINLINE ULONG IWICBitmapEncoderInfo_AddRef(IWICBitmapEncoderInfo* This) {
  3141. return This->lpVtbl->AddRef(This);
  3142. }
  3143. static FORCEINLINE ULONG IWICBitmapEncoderInfo_Release(IWICBitmapEncoderInfo* This) {
  3144. return This->lpVtbl->Release(This);
  3145. }
  3146. /*** IWICComponentInfo methods ***/
  3147. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetComponentType(IWICBitmapEncoderInfo* This,WICComponentType *pType) {
  3148. return This->lpVtbl->GetComponentType(This,pType);
  3149. }
  3150. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetCLSID(IWICBitmapEncoderInfo* This,CLSID *pclsid) {
  3151. return This->lpVtbl->GetCLSID(This,pclsid);
  3152. }
  3153. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetSigningStatus(IWICBitmapEncoderInfo* This,DWORD *pStatus) {
  3154. return This->lpVtbl->GetSigningStatus(This,pStatus);
  3155. }
  3156. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetAuthor(IWICBitmapEncoderInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  3157. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  3158. }
  3159. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetVendorGUID(IWICBitmapEncoderInfo* This,GUID *pguidVendor) {
  3160. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  3161. }
  3162. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetVersion(IWICBitmapEncoderInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  3163. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  3164. }
  3165. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetSpecVersion(IWICBitmapEncoderInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  3166. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  3167. }
  3168. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetFriendlyName(IWICBitmapEncoderInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  3169. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  3170. }
  3171. /*** IWICBitmapCodecInfo methods ***/
  3172. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetContainerFormat(IWICBitmapEncoderInfo* This,GUID *pguidContainerFormat) {
  3173. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  3174. }
  3175. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetPixelFormats(IWICBitmapEncoderInfo* This,UINT cFormats,GUID *pguidPixelFormats,UINT *pcActual) {
  3176. return This->lpVtbl->GetPixelFormats(This,cFormats,pguidPixelFormats,pcActual);
  3177. }
  3178. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetColorManagementVersion(IWICBitmapEncoderInfo* This,UINT cchColorManagementVersion,WCHAR *wzColorManagementVersion,UINT *pcchActual) {
  3179. return This->lpVtbl->GetColorManagementVersion(This,cchColorManagementVersion,wzColorManagementVersion,pcchActual);
  3180. }
  3181. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetDeviceManufacturer(IWICBitmapEncoderInfo* This,UINT cchDeviceManufacturer,WCHAR *wzDeviceManufacturer,UINT *pcchActual) {
  3182. return This->lpVtbl->GetDeviceManufacturer(This,cchDeviceManufacturer,wzDeviceManufacturer,pcchActual);
  3183. }
  3184. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetDeviceModels(IWICBitmapEncoderInfo* This,UINT cchDeviceModels,WCHAR *wzDeviceModels,UINT *pcchActual) {
  3185. return This->lpVtbl->GetDeviceModels(This,cchDeviceModels,wzDeviceModels,pcchActual);
  3186. }
  3187. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetMimeTypes(IWICBitmapEncoderInfo* This,UINT cchMimeTypes,WCHAR *wzMimeTypes,UINT *pcchActual) {
  3188. return This->lpVtbl->GetMimeTypes(This,cchMimeTypes,wzMimeTypes,pcchActual);
  3189. }
  3190. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_GetFileExtensions(IWICBitmapEncoderInfo* This,UINT cchFileExtensions,WCHAR *wzFileExtensions,UINT *pcchActual) {
  3191. return This->lpVtbl->GetFileExtensions(This,cchFileExtensions,wzFileExtensions,pcchActual);
  3192. }
  3193. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportAnimation(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportAnimation) {
  3194. return This->lpVtbl->DoesSupportAnimation(This,pfSupportAnimation);
  3195. }
  3196. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportChromaKey(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportChromaKey) {
  3197. return This->lpVtbl->DoesSupportChromaKey(This,pfSupportChromaKey);
  3198. }
  3199. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportLossless(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportLossless) {
  3200. return This->lpVtbl->DoesSupportLossless(This,pfSupportLossless);
  3201. }
  3202. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_DoesSupportMultiframe(IWICBitmapEncoderInfo* This,WINBOOL *pfSupportMultiframe) {
  3203. return This->lpVtbl->DoesSupportMultiframe(This,pfSupportMultiframe);
  3204. }
  3205. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_MatchesMimeType(IWICBitmapEncoderInfo* This,LPCWSTR wzMimeType,WINBOOL *pfMatches) {
  3206. return This->lpVtbl->MatchesMimeType(This,wzMimeType,pfMatches);
  3207. }
  3208. /*** IWICBitmapEncoderInfo methods ***/
  3209. static FORCEINLINE HRESULT IWICBitmapEncoderInfo_CreateInstance(IWICBitmapEncoderInfo* This,IWICBitmapEncoder **ppIBitmapEncoder) {
  3210. return This->lpVtbl->CreateInstance(This,ppIBitmapEncoder);
  3211. }
  3212. #endif
  3213. #endif
  3214. #endif
  3215. #endif /* __IWICBitmapEncoderInfo_INTERFACE_DEFINED__ */
  3216. /*****************************************************************************
  3217. * IWICBitmapEncoder interface
  3218. */
  3219. #ifndef __IWICBitmapEncoder_INTERFACE_DEFINED__
  3220. #define __IWICBitmapEncoder_INTERFACE_DEFINED__
  3221. DEFINE_GUID(IID_IWICBitmapEncoder, 0x00000103, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  3222. #if defined(__cplusplus) && !defined(CINTERFACE)
  3223. MIDL_INTERFACE("00000103-a8f2-4877-ba0a-fd2b6645fb94")
  3224. IWICBitmapEncoder : public IUnknown
  3225. {
  3226. virtual HRESULT STDMETHODCALLTYPE Initialize(
  3227. IStream *pIStream,
  3228. WICBitmapEncoderCacheOption cacheOption) = 0;
  3229. virtual HRESULT STDMETHODCALLTYPE GetContainerFormat(
  3230. GUID *pguidContainerFormat) = 0;
  3231. virtual HRESULT STDMETHODCALLTYPE GetEncoderInfo(
  3232. IWICBitmapEncoderInfo **ppIEncoderInfo) = 0;
  3233. virtual HRESULT STDMETHODCALLTYPE SetColorContexts(
  3234. UINT cCount,
  3235. IWICColorContext **ppIColorContext) = 0;
  3236. virtual HRESULT STDMETHODCALLTYPE SetPalette(
  3237. IWICPalette *pIPalette) = 0;
  3238. virtual HRESULT STDMETHODCALLTYPE SetThumbnail(
  3239. IWICBitmapSource *pIThumbnail) = 0;
  3240. virtual HRESULT STDMETHODCALLTYPE SetPreview(
  3241. IWICBitmapSource *pIPreview) = 0;
  3242. virtual HRESULT STDMETHODCALLTYPE CreateNewFrame(
  3243. IWICBitmapFrameEncode **ppIFrameEncode,
  3244. IPropertyBag2 **ppIEncoderOptions) = 0;
  3245. virtual HRESULT STDMETHODCALLTYPE Commit(
  3246. ) = 0;
  3247. virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
  3248. IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
  3249. };
  3250. #ifdef __CRT_UUID_DECL
  3251. __CRT_UUID_DECL(IWICBitmapEncoder, 0x00000103, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  3252. #endif
  3253. #else
  3254. typedef struct IWICBitmapEncoderVtbl {
  3255. BEGIN_INTERFACE
  3256. /*** IUnknown methods ***/
  3257. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3258. IWICBitmapEncoder *This,
  3259. REFIID riid,
  3260. void **ppvObject);
  3261. ULONG (STDMETHODCALLTYPE *AddRef)(
  3262. IWICBitmapEncoder *This);
  3263. ULONG (STDMETHODCALLTYPE *Release)(
  3264. IWICBitmapEncoder *This);
  3265. /*** IWICBitmapEncoder methods ***/
  3266. HRESULT (STDMETHODCALLTYPE *Initialize)(
  3267. IWICBitmapEncoder *This,
  3268. IStream *pIStream,
  3269. WICBitmapEncoderCacheOption cacheOption);
  3270. HRESULT (STDMETHODCALLTYPE *GetContainerFormat)(
  3271. IWICBitmapEncoder *This,
  3272. GUID *pguidContainerFormat);
  3273. HRESULT (STDMETHODCALLTYPE *GetEncoderInfo)(
  3274. IWICBitmapEncoder *This,
  3275. IWICBitmapEncoderInfo **ppIEncoderInfo);
  3276. HRESULT (STDMETHODCALLTYPE *SetColorContexts)(
  3277. IWICBitmapEncoder *This,
  3278. UINT cCount,
  3279. IWICColorContext **ppIColorContext);
  3280. HRESULT (STDMETHODCALLTYPE *SetPalette)(
  3281. IWICBitmapEncoder *This,
  3282. IWICPalette *pIPalette);
  3283. HRESULT (STDMETHODCALLTYPE *SetThumbnail)(
  3284. IWICBitmapEncoder *This,
  3285. IWICBitmapSource *pIThumbnail);
  3286. HRESULT (STDMETHODCALLTYPE *SetPreview)(
  3287. IWICBitmapEncoder *This,
  3288. IWICBitmapSource *pIPreview);
  3289. HRESULT (STDMETHODCALLTYPE *CreateNewFrame)(
  3290. IWICBitmapEncoder *This,
  3291. IWICBitmapFrameEncode **ppIFrameEncode,
  3292. IPropertyBag2 **ppIEncoderOptions);
  3293. HRESULT (STDMETHODCALLTYPE *Commit)(
  3294. IWICBitmapEncoder *This);
  3295. HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
  3296. IWICBitmapEncoder *This,
  3297. IWICMetadataQueryWriter **ppIMetadataQueryWriter);
  3298. END_INTERFACE
  3299. } IWICBitmapEncoderVtbl;
  3300. interface IWICBitmapEncoder {
  3301. CONST_VTBL IWICBitmapEncoderVtbl* lpVtbl;
  3302. };
  3303. #ifdef COBJMACROS
  3304. #ifndef WIDL_C_INLINE_WRAPPERS
  3305. /*** IUnknown methods ***/
  3306. #define IWICBitmapEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3307. #define IWICBitmapEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  3308. #define IWICBitmapEncoder_Release(This) (This)->lpVtbl->Release(This)
  3309. /*** IWICBitmapEncoder methods ***/
  3310. #define IWICBitmapEncoder_Initialize(This,pIStream,cacheOption) (This)->lpVtbl->Initialize(This,pIStream,cacheOption)
  3311. #define IWICBitmapEncoder_GetContainerFormat(This,pguidContainerFormat) (This)->lpVtbl->GetContainerFormat(This,pguidContainerFormat)
  3312. #define IWICBitmapEncoder_GetEncoderInfo(This,ppIEncoderInfo) (This)->lpVtbl->GetEncoderInfo(This,ppIEncoderInfo)
  3313. #define IWICBitmapEncoder_SetColorContexts(This,cCount,ppIColorContext) (This)->lpVtbl->SetColorContexts(This,cCount,ppIColorContext)
  3314. #define IWICBitmapEncoder_SetPalette(This,pIPalette) (This)->lpVtbl->SetPalette(This,pIPalette)
  3315. #define IWICBitmapEncoder_SetThumbnail(This,pIThumbnail) (This)->lpVtbl->SetThumbnail(This,pIThumbnail)
  3316. #define IWICBitmapEncoder_SetPreview(This,pIPreview) (This)->lpVtbl->SetPreview(This,pIPreview)
  3317. #define IWICBitmapEncoder_CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions) (This)->lpVtbl->CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions)
  3318. #define IWICBitmapEncoder_Commit(This) (This)->lpVtbl->Commit(This)
  3319. #define IWICBitmapEncoder_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
  3320. #else
  3321. /*** IUnknown methods ***/
  3322. static FORCEINLINE HRESULT IWICBitmapEncoder_QueryInterface(IWICBitmapEncoder* This,REFIID riid,void **ppvObject) {
  3323. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3324. }
  3325. static FORCEINLINE ULONG IWICBitmapEncoder_AddRef(IWICBitmapEncoder* This) {
  3326. return This->lpVtbl->AddRef(This);
  3327. }
  3328. static FORCEINLINE ULONG IWICBitmapEncoder_Release(IWICBitmapEncoder* This) {
  3329. return This->lpVtbl->Release(This);
  3330. }
  3331. /*** IWICBitmapEncoder methods ***/
  3332. static FORCEINLINE HRESULT IWICBitmapEncoder_Initialize(IWICBitmapEncoder* This,IStream *pIStream,WICBitmapEncoderCacheOption cacheOption) {
  3333. return This->lpVtbl->Initialize(This,pIStream,cacheOption);
  3334. }
  3335. static FORCEINLINE HRESULT IWICBitmapEncoder_GetContainerFormat(IWICBitmapEncoder* This,GUID *pguidContainerFormat) {
  3336. return This->lpVtbl->GetContainerFormat(This,pguidContainerFormat);
  3337. }
  3338. static FORCEINLINE HRESULT IWICBitmapEncoder_GetEncoderInfo(IWICBitmapEncoder* This,IWICBitmapEncoderInfo **ppIEncoderInfo) {
  3339. return This->lpVtbl->GetEncoderInfo(This,ppIEncoderInfo);
  3340. }
  3341. static FORCEINLINE HRESULT IWICBitmapEncoder_SetColorContexts(IWICBitmapEncoder* This,UINT cCount,IWICColorContext **ppIColorContext) {
  3342. return This->lpVtbl->SetColorContexts(This,cCount,ppIColorContext);
  3343. }
  3344. static FORCEINLINE HRESULT IWICBitmapEncoder_SetPalette(IWICBitmapEncoder* This,IWICPalette *pIPalette) {
  3345. return This->lpVtbl->SetPalette(This,pIPalette);
  3346. }
  3347. static FORCEINLINE HRESULT IWICBitmapEncoder_SetThumbnail(IWICBitmapEncoder* This,IWICBitmapSource *pIThumbnail) {
  3348. return This->lpVtbl->SetThumbnail(This,pIThumbnail);
  3349. }
  3350. static FORCEINLINE HRESULT IWICBitmapEncoder_SetPreview(IWICBitmapEncoder* This,IWICBitmapSource *pIPreview) {
  3351. return This->lpVtbl->SetPreview(This,pIPreview);
  3352. }
  3353. static FORCEINLINE HRESULT IWICBitmapEncoder_CreateNewFrame(IWICBitmapEncoder* This,IWICBitmapFrameEncode **ppIFrameEncode,IPropertyBag2 **ppIEncoderOptions) {
  3354. return This->lpVtbl->CreateNewFrame(This,ppIFrameEncode,ppIEncoderOptions);
  3355. }
  3356. static FORCEINLINE HRESULT IWICBitmapEncoder_Commit(IWICBitmapEncoder* This) {
  3357. return This->lpVtbl->Commit(This);
  3358. }
  3359. static FORCEINLINE HRESULT IWICBitmapEncoder_GetMetadataQueryWriter(IWICBitmapEncoder* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
  3360. return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
  3361. }
  3362. #endif
  3363. #endif
  3364. #endif
  3365. #endif /* __IWICBitmapEncoder_INTERFACE_DEFINED__ */
  3366. /*****************************************************************************
  3367. * IWICFormatConverter interface
  3368. */
  3369. #ifndef __IWICFormatConverter_INTERFACE_DEFINED__
  3370. #define __IWICFormatConverter_INTERFACE_DEFINED__
  3371. DEFINE_GUID(IID_IWICFormatConverter, 0x00000301, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  3372. #if defined(__cplusplus) && !defined(CINTERFACE)
  3373. MIDL_INTERFACE("00000301-a8f2-4877-ba0a-fd2b6645fb94")
  3374. IWICFormatConverter : public IWICBitmapSource
  3375. {
  3376. virtual HRESULT STDMETHODCALLTYPE Initialize(
  3377. IWICBitmapSource *pISource,
  3378. REFWICPixelFormatGUID dstFormat,
  3379. WICBitmapDitherType dither,
  3380. IWICPalette *pIPalette,
  3381. double alphaThresholdPercent,
  3382. WICBitmapPaletteType paletteTranslate) = 0;
  3383. virtual HRESULT STDMETHODCALLTYPE CanConvert(
  3384. REFWICPixelFormatGUID srcPixelFormat,
  3385. REFWICPixelFormatGUID dstPixelFormat,
  3386. WINBOOL *pfCanConvert) = 0;
  3387. };
  3388. #ifdef __CRT_UUID_DECL
  3389. __CRT_UUID_DECL(IWICFormatConverter, 0x00000301, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  3390. #endif
  3391. #else
  3392. typedef struct IWICFormatConverterVtbl {
  3393. BEGIN_INTERFACE
  3394. /*** IUnknown methods ***/
  3395. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3396. IWICFormatConverter *This,
  3397. REFIID riid,
  3398. void **ppvObject);
  3399. ULONG (STDMETHODCALLTYPE *AddRef)(
  3400. IWICFormatConverter *This);
  3401. ULONG (STDMETHODCALLTYPE *Release)(
  3402. IWICFormatConverter *This);
  3403. /*** IWICBitmapSource methods ***/
  3404. HRESULT (STDMETHODCALLTYPE *GetSize)(
  3405. IWICFormatConverter *This,
  3406. UINT *puiWidth,
  3407. UINT *puiHeight);
  3408. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  3409. IWICFormatConverter *This,
  3410. WICPixelFormatGUID *pPixelFormat);
  3411. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  3412. IWICFormatConverter *This,
  3413. double *pDpiX,
  3414. double *pDpiY);
  3415. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  3416. IWICFormatConverter *This,
  3417. IWICPalette *pIPalette);
  3418. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  3419. IWICFormatConverter *This,
  3420. const WICRect *prc,
  3421. UINT cbStride,
  3422. UINT cbBufferSize,
  3423. BYTE *pbBuffer);
  3424. /*** IWICFormatConverter methods ***/
  3425. HRESULT (STDMETHODCALLTYPE *Initialize)(
  3426. IWICFormatConverter *This,
  3427. IWICBitmapSource *pISource,
  3428. REFWICPixelFormatGUID dstFormat,
  3429. WICBitmapDitherType dither,
  3430. IWICPalette *pIPalette,
  3431. double alphaThresholdPercent,
  3432. WICBitmapPaletteType paletteTranslate);
  3433. HRESULT (STDMETHODCALLTYPE *CanConvert)(
  3434. IWICFormatConverter *This,
  3435. REFWICPixelFormatGUID srcPixelFormat,
  3436. REFWICPixelFormatGUID dstPixelFormat,
  3437. WINBOOL *pfCanConvert);
  3438. END_INTERFACE
  3439. } IWICFormatConverterVtbl;
  3440. interface IWICFormatConverter {
  3441. CONST_VTBL IWICFormatConverterVtbl* lpVtbl;
  3442. };
  3443. #ifdef COBJMACROS
  3444. #ifndef WIDL_C_INLINE_WRAPPERS
  3445. /*** IUnknown methods ***/
  3446. #define IWICFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3447. #define IWICFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
  3448. #define IWICFormatConverter_Release(This) (This)->lpVtbl->Release(This)
  3449. /*** IWICBitmapSource methods ***/
  3450. #define IWICFormatConverter_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  3451. #define IWICFormatConverter_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  3452. #define IWICFormatConverter_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  3453. #define IWICFormatConverter_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  3454. #define IWICFormatConverter_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  3455. /*** IWICFormatConverter methods ***/
  3456. #define IWICFormatConverter_Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate) (This)->lpVtbl->Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate)
  3457. #define IWICFormatConverter_CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert) (This)->lpVtbl->CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert)
  3458. #else
  3459. /*** IUnknown methods ***/
  3460. static FORCEINLINE HRESULT IWICFormatConverter_QueryInterface(IWICFormatConverter* This,REFIID riid,void **ppvObject) {
  3461. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3462. }
  3463. static FORCEINLINE ULONG IWICFormatConverter_AddRef(IWICFormatConverter* This) {
  3464. return This->lpVtbl->AddRef(This);
  3465. }
  3466. static FORCEINLINE ULONG IWICFormatConverter_Release(IWICFormatConverter* This) {
  3467. return This->lpVtbl->Release(This);
  3468. }
  3469. /*** IWICBitmapSource methods ***/
  3470. static FORCEINLINE HRESULT IWICFormatConverter_GetSize(IWICFormatConverter* This,UINT *puiWidth,UINT *puiHeight) {
  3471. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  3472. }
  3473. static FORCEINLINE HRESULT IWICFormatConverter_GetPixelFormat(IWICFormatConverter* This,WICPixelFormatGUID *pPixelFormat) {
  3474. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  3475. }
  3476. static FORCEINLINE HRESULT IWICFormatConverter_GetResolution(IWICFormatConverter* This,double *pDpiX,double *pDpiY) {
  3477. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  3478. }
  3479. static FORCEINLINE HRESULT IWICFormatConverter_CopyPalette(IWICFormatConverter* This,IWICPalette *pIPalette) {
  3480. return This->lpVtbl->CopyPalette(This,pIPalette);
  3481. }
  3482. static FORCEINLINE HRESULT IWICFormatConverter_CopyPixels(IWICFormatConverter* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  3483. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  3484. }
  3485. /*** IWICFormatConverter methods ***/
  3486. static FORCEINLINE HRESULT IWICFormatConverter_Initialize(IWICFormatConverter* This,IWICBitmapSource *pISource,REFWICPixelFormatGUID dstFormat,WICBitmapDitherType dither,IWICPalette *pIPalette,double alphaThresholdPercent,WICBitmapPaletteType paletteTranslate) {
  3487. return This->lpVtbl->Initialize(This,pISource,dstFormat,dither,pIPalette,alphaThresholdPercent,paletteTranslate);
  3488. }
  3489. static FORCEINLINE HRESULT IWICFormatConverter_CanConvert(IWICFormatConverter* This,REFWICPixelFormatGUID srcPixelFormat,REFWICPixelFormatGUID dstPixelFormat,WINBOOL *pfCanConvert) {
  3490. return This->lpVtbl->CanConvert(This,srcPixelFormat,dstPixelFormat,pfCanConvert);
  3491. }
  3492. #endif
  3493. #endif
  3494. #endif
  3495. #endif /* __IWICFormatConverter_INTERFACE_DEFINED__ */
  3496. /*****************************************************************************
  3497. * IWICFormatConverterInfo interface
  3498. */
  3499. #ifndef __IWICFormatConverterInfo_INTERFACE_DEFINED__
  3500. #define __IWICFormatConverterInfo_INTERFACE_DEFINED__
  3501. DEFINE_GUID(IID_IWICFormatConverterInfo, 0x9f34fb65, 0x13f4, 0x4f15, 0xbc,0x57, 0x37,0x26,0xb5,0xe5,0x3d,0x9f);
  3502. #if defined(__cplusplus) && !defined(CINTERFACE)
  3503. MIDL_INTERFACE("9f34fb65-13f4-4f15-bc57-3726b5e53d9f")
  3504. IWICFormatConverterInfo : public IWICComponentInfo
  3505. {
  3506. virtual HRESULT STDMETHODCALLTYPE GetPixelFormats(
  3507. UINT cFormats,
  3508. WICPixelFormatGUID *pPixelFormatGUIDs,
  3509. UINT *pcActual) = 0;
  3510. virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  3511. IWICFormatConverter **ppIConverter) = 0;
  3512. };
  3513. #ifdef __CRT_UUID_DECL
  3514. __CRT_UUID_DECL(IWICFormatConverterInfo, 0x9f34fb65, 0x13f4, 0x4f15, 0xbc,0x57, 0x37,0x26,0xb5,0xe5,0x3d,0x9f)
  3515. #endif
  3516. #else
  3517. typedef struct IWICFormatConverterInfoVtbl {
  3518. BEGIN_INTERFACE
  3519. /*** IUnknown methods ***/
  3520. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3521. IWICFormatConverterInfo *This,
  3522. REFIID riid,
  3523. void **ppvObject);
  3524. ULONG (STDMETHODCALLTYPE *AddRef)(
  3525. IWICFormatConverterInfo *This);
  3526. ULONG (STDMETHODCALLTYPE *Release)(
  3527. IWICFormatConverterInfo *This);
  3528. /*** IWICComponentInfo methods ***/
  3529. HRESULT (STDMETHODCALLTYPE *GetComponentType)(
  3530. IWICFormatConverterInfo *This,
  3531. WICComponentType *pType);
  3532. HRESULT (STDMETHODCALLTYPE *GetCLSID)(
  3533. IWICFormatConverterInfo *This,
  3534. CLSID *pclsid);
  3535. HRESULT (STDMETHODCALLTYPE *GetSigningStatus)(
  3536. IWICFormatConverterInfo *This,
  3537. DWORD *pStatus);
  3538. HRESULT (STDMETHODCALLTYPE *GetAuthor)(
  3539. IWICFormatConverterInfo *This,
  3540. UINT cchAuthor,
  3541. WCHAR *wzAuthor,
  3542. UINT *pcchActual);
  3543. HRESULT (STDMETHODCALLTYPE *GetVendorGUID)(
  3544. IWICFormatConverterInfo *This,
  3545. GUID *pguidVendor);
  3546. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  3547. IWICFormatConverterInfo *This,
  3548. UINT cchVersion,
  3549. WCHAR *wzVersion,
  3550. UINT *pcchActual);
  3551. HRESULT (STDMETHODCALLTYPE *GetSpecVersion)(
  3552. IWICFormatConverterInfo *This,
  3553. UINT cchSpecVersion,
  3554. WCHAR *wzSpecVersion,
  3555. UINT *pcchActual);
  3556. HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
  3557. IWICFormatConverterInfo *This,
  3558. UINT cchFriendlyName,
  3559. WCHAR *wzFriendlyName,
  3560. UINT *pcchActual);
  3561. /*** IWICFormatConverterInfo methods ***/
  3562. HRESULT (STDMETHODCALLTYPE *GetPixelFormats)(
  3563. IWICFormatConverterInfo *This,
  3564. UINT cFormats,
  3565. WICPixelFormatGUID *pPixelFormatGUIDs,
  3566. UINT *pcActual);
  3567. HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  3568. IWICFormatConverterInfo *This,
  3569. IWICFormatConverter **ppIConverter);
  3570. END_INTERFACE
  3571. } IWICFormatConverterInfoVtbl;
  3572. interface IWICFormatConverterInfo {
  3573. CONST_VTBL IWICFormatConverterInfoVtbl* lpVtbl;
  3574. };
  3575. #ifdef COBJMACROS
  3576. #ifndef WIDL_C_INLINE_WRAPPERS
  3577. /*** IUnknown methods ***/
  3578. #define IWICFormatConverterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3579. #define IWICFormatConverterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  3580. #define IWICFormatConverterInfo_Release(This) (This)->lpVtbl->Release(This)
  3581. /*** IWICComponentInfo methods ***/
  3582. #define IWICFormatConverterInfo_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
  3583. #define IWICFormatConverterInfo_GetCLSID(This,pclsid) (This)->lpVtbl->GetCLSID(This,pclsid)
  3584. #define IWICFormatConverterInfo_GetSigningStatus(This,pStatus) (This)->lpVtbl->GetSigningStatus(This,pStatus)
  3585. #define IWICFormatConverterInfo_GetAuthor(This,cchAuthor,wzAuthor,pcchActual) (This)->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual)
  3586. #define IWICFormatConverterInfo_GetVendorGUID(This,pguidVendor) (This)->lpVtbl->GetVendorGUID(This,pguidVendor)
  3587. #define IWICFormatConverterInfo_GetVersion(This,cchVersion,wzVersion,pcchActual) (This)->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual)
  3588. #define IWICFormatConverterInfo_GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual) (This)->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual)
  3589. #define IWICFormatConverterInfo_GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual) (This)->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual)
  3590. /*** IWICFormatConverterInfo methods ***/
  3591. #define IWICFormatConverterInfo_GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual) (This)->lpVtbl->GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual)
  3592. #define IWICFormatConverterInfo_CreateInstance(This,ppIConverter) (This)->lpVtbl->CreateInstance(This,ppIConverter)
  3593. #else
  3594. /*** IUnknown methods ***/
  3595. static FORCEINLINE HRESULT IWICFormatConverterInfo_QueryInterface(IWICFormatConverterInfo* This,REFIID riid,void **ppvObject) {
  3596. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3597. }
  3598. static FORCEINLINE ULONG IWICFormatConverterInfo_AddRef(IWICFormatConverterInfo* This) {
  3599. return This->lpVtbl->AddRef(This);
  3600. }
  3601. static FORCEINLINE ULONG IWICFormatConverterInfo_Release(IWICFormatConverterInfo* This) {
  3602. return This->lpVtbl->Release(This);
  3603. }
  3604. /*** IWICComponentInfo methods ***/
  3605. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetComponentType(IWICFormatConverterInfo* This,WICComponentType *pType) {
  3606. return This->lpVtbl->GetComponentType(This,pType);
  3607. }
  3608. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetCLSID(IWICFormatConverterInfo* This,CLSID *pclsid) {
  3609. return This->lpVtbl->GetCLSID(This,pclsid);
  3610. }
  3611. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetSigningStatus(IWICFormatConverterInfo* This,DWORD *pStatus) {
  3612. return This->lpVtbl->GetSigningStatus(This,pStatus);
  3613. }
  3614. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetAuthor(IWICFormatConverterInfo* This,UINT cchAuthor,WCHAR *wzAuthor,UINT *pcchActual) {
  3615. return This->lpVtbl->GetAuthor(This,cchAuthor,wzAuthor,pcchActual);
  3616. }
  3617. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetVendorGUID(IWICFormatConverterInfo* This,GUID *pguidVendor) {
  3618. return This->lpVtbl->GetVendorGUID(This,pguidVendor);
  3619. }
  3620. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetVersion(IWICFormatConverterInfo* This,UINT cchVersion,WCHAR *wzVersion,UINT *pcchActual) {
  3621. return This->lpVtbl->GetVersion(This,cchVersion,wzVersion,pcchActual);
  3622. }
  3623. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetSpecVersion(IWICFormatConverterInfo* This,UINT cchSpecVersion,WCHAR *wzSpecVersion,UINT *pcchActual) {
  3624. return This->lpVtbl->GetSpecVersion(This,cchSpecVersion,wzSpecVersion,pcchActual);
  3625. }
  3626. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetFriendlyName(IWICFormatConverterInfo* This,UINT cchFriendlyName,WCHAR *wzFriendlyName,UINT *pcchActual) {
  3627. return This->lpVtbl->GetFriendlyName(This,cchFriendlyName,wzFriendlyName,pcchActual);
  3628. }
  3629. /*** IWICFormatConverterInfo methods ***/
  3630. static FORCEINLINE HRESULT IWICFormatConverterInfo_GetPixelFormats(IWICFormatConverterInfo* This,UINT cFormats,WICPixelFormatGUID *pPixelFormatGUIDs,UINT *pcActual) {
  3631. return This->lpVtbl->GetPixelFormats(This,cFormats,pPixelFormatGUIDs,pcActual);
  3632. }
  3633. static FORCEINLINE HRESULT IWICFormatConverterInfo_CreateInstance(IWICFormatConverterInfo* This,IWICFormatConverter **ppIConverter) {
  3634. return This->lpVtbl->CreateInstance(This,ppIConverter);
  3635. }
  3636. #endif
  3637. #endif
  3638. #endif
  3639. #endif /* __IWICFormatConverterInfo_INTERFACE_DEFINED__ */
  3640. /*****************************************************************************
  3641. * IWICStream interface
  3642. */
  3643. #ifndef __IWICStream_INTERFACE_DEFINED__
  3644. #define __IWICStream_INTERFACE_DEFINED__
  3645. DEFINE_GUID(IID_IWICStream, 0x135ff860, 0x22b7, 0x4ddf, 0xb0,0xf6, 0x21,0x8f,0x4f,0x29,0x9a,0x43);
  3646. #if defined(__cplusplus) && !defined(CINTERFACE)
  3647. MIDL_INTERFACE("135ff860-22b7-4ddf-b0f6-218f4f299a43")
  3648. IWICStream : public IStream
  3649. {
  3650. virtual HRESULT STDMETHODCALLTYPE InitializeFromIStream(
  3651. IStream *pIStream) = 0;
  3652. virtual HRESULT STDMETHODCALLTYPE InitializeFromFilename(
  3653. LPCWSTR wzFileName,
  3654. DWORD dwAccessMode) = 0;
  3655. virtual HRESULT STDMETHODCALLTYPE InitializeFromMemory(
  3656. BYTE *pbBuffer,
  3657. DWORD cbBufferSize) = 0;
  3658. virtual HRESULT STDMETHODCALLTYPE InitializeFromIStreamRegion(
  3659. IStream *pIStream,
  3660. ULARGE_INTEGER ulOffset,
  3661. ULARGE_INTEGER ulMaxSize) = 0;
  3662. };
  3663. #ifdef __CRT_UUID_DECL
  3664. __CRT_UUID_DECL(IWICStream, 0x135ff860, 0x22b7, 0x4ddf, 0xb0,0xf6, 0x21,0x8f,0x4f,0x29,0x9a,0x43)
  3665. #endif
  3666. #else
  3667. typedef struct IWICStreamVtbl {
  3668. BEGIN_INTERFACE
  3669. /*** IUnknown methods ***/
  3670. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3671. IWICStream *This,
  3672. REFIID riid,
  3673. void **ppvObject);
  3674. ULONG (STDMETHODCALLTYPE *AddRef)(
  3675. IWICStream *This);
  3676. ULONG (STDMETHODCALLTYPE *Release)(
  3677. IWICStream *This);
  3678. /*** ISequentialStream methods ***/
  3679. HRESULT (STDMETHODCALLTYPE *Read)(
  3680. IWICStream *This,
  3681. void *pv,
  3682. ULONG cb,
  3683. ULONG *pcbRead);
  3684. HRESULT (STDMETHODCALLTYPE *Write)(
  3685. IWICStream *This,
  3686. const void *pv,
  3687. ULONG cb,
  3688. ULONG *pcbWritten);
  3689. /*** IStream methods ***/
  3690. HRESULT (STDMETHODCALLTYPE *Seek)(
  3691. IWICStream *This,
  3692. LARGE_INTEGER dlibMove,
  3693. DWORD dwOrigin,
  3694. ULARGE_INTEGER *plibNewPosition);
  3695. HRESULT (STDMETHODCALLTYPE *SetSize)(
  3696. IWICStream *This,
  3697. ULARGE_INTEGER libNewSize);
  3698. HRESULT (STDMETHODCALLTYPE *CopyTo)(
  3699. IWICStream *This,
  3700. IStream *pstm,
  3701. ULARGE_INTEGER cb,
  3702. ULARGE_INTEGER *pcbRead,
  3703. ULARGE_INTEGER *pcbWritten);
  3704. HRESULT (STDMETHODCALLTYPE *Commit)(
  3705. IWICStream *This,
  3706. DWORD grfCommitFlags);
  3707. HRESULT (STDMETHODCALLTYPE *Revert)(
  3708. IWICStream *This);
  3709. HRESULT (STDMETHODCALLTYPE *LockRegion)(
  3710. IWICStream *This,
  3711. ULARGE_INTEGER libOffset,
  3712. ULARGE_INTEGER cb,
  3713. DWORD dwLockType);
  3714. HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
  3715. IWICStream *This,
  3716. ULARGE_INTEGER libOffset,
  3717. ULARGE_INTEGER cb,
  3718. DWORD dwLockType);
  3719. HRESULT (STDMETHODCALLTYPE *Stat)(
  3720. IWICStream *This,
  3721. STATSTG *pstatstg,
  3722. DWORD grfStatFlag);
  3723. HRESULT (STDMETHODCALLTYPE *Clone)(
  3724. IWICStream *This,
  3725. IStream **ppstm);
  3726. /*** IWICStream methods ***/
  3727. HRESULT (STDMETHODCALLTYPE *InitializeFromIStream)(
  3728. IWICStream *This,
  3729. IStream *pIStream);
  3730. HRESULT (STDMETHODCALLTYPE *InitializeFromFilename)(
  3731. IWICStream *This,
  3732. LPCWSTR wzFileName,
  3733. DWORD dwAccessMode);
  3734. HRESULT (STDMETHODCALLTYPE *InitializeFromMemory)(
  3735. IWICStream *This,
  3736. BYTE *pbBuffer,
  3737. DWORD cbBufferSize);
  3738. HRESULT (STDMETHODCALLTYPE *InitializeFromIStreamRegion)(
  3739. IWICStream *This,
  3740. IStream *pIStream,
  3741. ULARGE_INTEGER ulOffset,
  3742. ULARGE_INTEGER ulMaxSize);
  3743. END_INTERFACE
  3744. } IWICStreamVtbl;
  3745. interface IWICStream {
  3746. CONST_VTBL IWICStreamVtbl* lpVtbl;
  3747. };
  3748. #ifdef COBJMACROS
  3749. #ifndef WIDL_C_INLINE_WRAPPERS
  3750. /*** IUnknown methods ***/
  3751. #define IWICStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3752. #define IWICStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  3753. #define IWICStream_Release(This) (This)->lpVtbl->Release(This)
  3754. /*** ISequentialStream methods ***/
  3755. #define IWICStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
  3756. #define IWICStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
  3757. /*** IStream methods ***/
  3758. #define IWICStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
  3759. #define IWICStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
  3760. #define IWICStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
  3761. #define IWICStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
  3762. #define IWICStream_Revert(This) (This)->lpVtbl->Revert(This)
  3763. #define IWICStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
  3764. #define IWICStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
  3765. #define IWICStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
  3766. #define IWICStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
  3767. /*** IWICStream methods ***/
  3768. #define IWICStream_InitializeFromIStream(This,pIStream) (This)->lpVtbl->InitializeFromIStream(This,pIStream)
  3769. #define IWICStream_InitializeFromFilename(This,wzFileName,dwAccessMode) (This)->lpVtbl->InitializeFromFilename(This,wzFileName,dwAccessMode)
  3770. #define IWICStream_InitializeFromMemory(This,pbBuffer,cbBufferSize) (This)->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize)
  3771. #define IWICStream_InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize) (This)->lpVtbl->InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize)
  3772. #else
  3773. /*** IUnknown methods ***/
  3774. static FORCEINLINE HRESULT IWICStream_QueryInterface(IWICStream* This,REFIID riid,void **ppvObject) {
  3775. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3776. }
  3777. static FORCEINLINE ULONG IWICStream_AddRef(IWICStream* This) {
  3778. return This->lpVtbl->AddRef(This);
  3779. }
  3780. static FORCEINLINE ULONG IWICStream_Release(IWICStream* This) {
  3781. return This->lpVtbl->Release(This);
  3782. }
  3783. /*** ISequentialStream methods ***/
  3784. static FORCEINLINE HRESULT IWICStream_Read(IWICStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
  3785. return This->lpVtbl->Read(This,pv,cb,pcbRead);
  3786. }
  3787. static FORCEINLINE HRESULT IWICStream_Write(IWICStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
  3788. return This->lpVtbl->Write(This,pv,cb,pcbWritten);
  3789. }
  3790. /*** IStream methods ***/
  3791. static FORCEINLINE HRESULT IWICStream_Seek(IWICStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
  3792. return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
  3793. }
  3794. static FORCEINLINE HRESULT IWICStream_SetSize(IWICStream* This,ULARGE_INTEGER libNewSize) {
  3795. return This->lpVtbl->SetSize(This,libNewSize);
  3796. }
  3797. static FORCEINLINE HRESULT IWICStream_CopyTo(IWICStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
  3798. return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
  3799. }
  3800. static FORCEINLINE HRESULT IWICStream_Commit(IWICStream* This,DWORD grfCommitFlags) {
  3801. return This->lpVtbl->Commit(This,grfCommitFlags);
  3802. }
  3803. static FORCEINLINE HRESULT IWICStream_Revert(IWICStream* This) {
  3804. return This->lpVtbl->Revert(This);
  3805. }
  3806. static FORCEINLINE HRESULT IWICStream_LockRegion(IWICStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
  3807. return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
  3808. }
  3809. static FORCEINLINE HRESULT IWICStream_UnlockRegion(IWICStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
  3810. return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
  3811. }
  3812. static FORCEINLINE HRESULT IWICStream_Stat(IWICStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
  3813. return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
  3814. }
  3815. static FORCEINLINE HRESULT IWICStream_Clone(IWICStream* This,IStream **ppstm) {
  3816. return This->lpVtbl->Clone(This,ppstm);
  3817. }
  3818. /*** IWICStream methods ***/
  3819. static FORCEINLINE HRESULT IWICStream_InitializeFromIStream(IWICStream* This,IStream *pIStream) {
  3820. return This->lpVtbl->InitializeFromIStream(This,pIStream);
  3821. }
  3822. static FORCEINLINE HRESULT IWICStream_InitializeFromFilename(IWICStream* This,LPCWSTR wzFileName,DWORD dwAccessMode) {
  3823. return This->lpVtbl->InitializeFromFilename(This,wzFileName,dwAccessMode);
  3824. }
  3825. static FORCEINLINE HRESULT IWICStream_InitializeFromMemory(IWICStream* This,BYTE *pbBuffer,DWORD cbBufferSize) {
  3826. return This->lpVtbl->InitializeFromMemory(This,pbBuffer,cbBufferSize);
  3827. }
  3828. static FORCEINLINE HRESULT IWICStream_InitializeFromIStreamRegion(IWICStream* This,IStream *pIStream,ULARGE_INTEGER ulOffset,ULARGE_INTEGER ulMaxSize) {
  3829. return This->lpVtbl->InitializeFromIStreamRegion(This,pIStream,ulOffset,ulMaxSize);
  3830. }
  3831. #endif
  3832. #endif
  3833. #endif
  3834. #endif /* __IWICStream_INTERFACE_DEFINED__ */
  3835. /*****************************************************************************
  3836. * IWICBitmapScaler interface
  3837. */
  3838. #ifndef __IWICBitmapScaler_INTERFACE_DEFINED__
  3839. #define __IWICBitmapScaler_INTERFACE_DEFINED__
  3840. DEFINE_GUID(IID_IWICBitmapScaler, 0x00000302, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94);
  3841. #if defined(__cplusplus) && !defined(CINTERFACE)
  3842. MIDL_INTERFACE("00000302-a8f2-4877-ba0a-fd2b6645fb94")
  3843. IWICBitmapScaler : public IWICBitmapSource
  3844. {
  3845. virtual HRESULT STDMETHODCALLTYPE Initialize(
  3846. IWICBitmapSource *pISource,
  3847. UINT uiWidth,
  3848. UINT uiHeight,
  3849. WICBitmapInterpolationMode mode) = 0;
  3850. };
  3851. #ifdef __CRT_UUID_DECL
  3852. __CRT_UUID_DECL(IWICBitmapScaler, 0x00000302, 0xa8f2, 0x4877, 0xba,0x0a, 0xfd,0x2b,0x66,0x45,0xfb,0x94)
  3853. #endif
  3854. #else
  3855. typedef struct IWICBitmapScalerVtbl {
  3856. BEGIN_INTERFACE
  3857. /*** IUnknown methods ***/
  3858. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3859. IWICBitmapScaler *This,
  3860. REFIID riid,
  3861. void **ppvObject);
  3862. ULONG (STDMETHODCALLTYPE *AddRef)(
  3863. IWICBitmapScaler *This);
  3864. ULONG (STDMETHODCALLTYPE *Release)(
  3865. IWICBitmapScaler *This);
  3866. /*** IWICBitmapSource methods ***/
  3867. HRESULT (STDMETHODCALLTYPE *GetSize)(
  3868. IWICBitmapScaler *This,
  3869. UINT *puiWidth,
  3870. UINT *puiHeight);
  3871. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  3872. IWICBitmapScaler *This,
  3873. WICPixelFormatGUID *pPixelFormat);
  3874. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  3875. IWICBitmapScaler *This,
  3876. double *pDpiX,
  3877. double *pDpiY);
  3878. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  3879. IWICBitmapScaler *This,
  3880. IWICPalette *pIPalette);
  3881. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  3882. IWICBitmapScaler *This,
  3883. const WICRect *prc,
  3884. UINT cbStride,
  3885. UINT cbBufferSize,
  3886. BYTE *pbBuffer);
  3887. /*** IWICBitmapScaler methods ***/
  3888. HRESULT (STDMETHODCALLTYPE *Initialize)(
  3889. IWICBitmapScaler *This,
  3890. IWICBitmapSource *pISource,
  3891. UINT uiWidth,
  3892. UINT uiHeight,
  3893. WICBitmapInterpolationMode mode);
  3894. END_INTERFACE
  3895. } IWICBitmapScalerVtbl;
  3896. interface IWICBitmapScaler {
  3897. CONST_VTBL IWICBitmapScalerVtbl* lpVtbl;
  3898. };
  3899. #ifdef COBJMACROS
  3900. #ifndef WIDL_C_INLINE_WRAPPERS
  3901. /*** IUnknown methods ***/
  3902. #define IWICBitmapScaler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3903. #define IWICBitmapScaler_AddRef(This) (This)->lpVtbl->AddRef(This)
  3904. #define IWICBitmapScaler_Release(This) (This)->lpVtbl->Release(This)
  3905. /*** IWICBitmapSource methods ***/
  3906. #define IWICBitmapScaler_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  3907. #define IWICBitmapScaler_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  3908. #define IWICBitmapScaler_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  3909. #define IWICBitmapScaler_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  3910. #define IWICBitmapScaler_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  3911. /*** IWICBitmapScaler methods ***/
  3912. #define IWICBitmapScaler_Initialize(This,pISource,uiWidth,uiHeight,mode) (This)->lpVtbl->Initialize(This,pISource,uiWidth,uiHeight,mode)
  3913. #else
  3914. /*** IUnknown methods ***/
  3915. static FORCEINLINE HRESULT IWICBitmapScaler_QueryInterface(IWICBitmapScaler* This,REFIID riid,void **ppvObject) {
  3916. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3917. }
  3918. static FORCEINLINE ULONG IWICBitmapScaler_AddRef(IWICBitmapScaler* This) {
  3919. return This->lpVtbl->AddRef(This);
  3920. }
  3921. static FORCEINLINE ULONG IWICBitmapScaler_Release(IWICBitmapScaler* This) {
  3922. return This->lpVtbl->Release(This);
  3923. }
  3924. /*** IWICBitmapSource methods ***/
  3925. static FORCEINLINE HRESULT IWICBitmapScaler_GetSize(IWICBitmapScaler* This,UINT *puiWidth,UINT *puiHeight) {
  3926. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  3927. }
  3928. static FORCEINLINE HRESULT IWICBitmapScaler_GetPixelFormat(IWICBitmapScaler* This,WICPixelFormatGUID *pPixelFormat) {
  3929. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  3930. }
  3931. static FORCEINLINE HRESULT IWICBitmapScaler_GetResolution(IWICBitmapScaler* This,double *pDpiX,double *pDpiY) {
  3932. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  3933. }
  3934. static FORCEINLINE HRESULT IWICBitmapScaler_CopyPalette(IWICBitmapScaler* This,IWICPalette *pIPalette) {
  3935. return This->lpVtbl->CopyPalette(This,pIPalette);
  3936. }
  3937. static FORCEINLINE HRESULT IWICBitmapScaler_CopyPixels(IWICBitmapScaler* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  3938. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  3939. }
  3940. /*** IWICBitmapScaler methods ***/
  3941. static FORCEINLINE HRESULT IWICBitmapScaler_Initialize(IWICBitmapScaler* This,IWICBitmapSource *pISource,UINT uiWidth,UINT uiHeight,WICBitmapInterpolationMode mode) {
  3942. return This->lpVtbl->Initialize(This,pISource,uiWidth,uiHeight,mode);
  3943. }
  3944. #endif
  3945. #endif
  3946. #endif
  3947. #endif /* __IWICBitmapScaler_INTERFACE_DEFINED__ */
  3948. /*****************************************************************************
  3949. * IWICBitmapClipper interface
  3950. */
  3951. #ifndef __IWICBitmapClipper_INTERFACE_DEFINED__
  3952. #define __IWICBitmapClipper_INTERFACE_DEFINED__
  3953. DEFINE_GUID(IID_IWICBitmapClipper, 0xe4fbcf03, 0x223d, 0x4e81, 0x93,0x33, 0xd6,0x35,0x55,0x6d,0xd1,0xb5);
  3954. #if defined(__cplusplus) && !defined(CINTERFACE)
  3955. MIDL_INTERFACE("e4fbcf03-223d-4e81-9333-d635556dd1b5")
  3956. IWICBitmapClipper : public IWICBitmapSource
  3957. {
  3958. virtual HRESULT STDMETHODCALLTYPE Initialize(
  3959. IWICBitmapSource *pISource,
  3960. const WICRect *prc) = 0;
  3961. };
  3962. #ifdef __CRT_UUID_DECL
  3963. __CRT_UUID_DECL(IWICBitmapClipper, 0xe4fbcf03, 0x223d, 0x4e81, 0x93,0x33, 0xd6,0x35,0x55,0x6d,0xd1,0xb5)
  3964. #endif
  3965. #else
  3966. typedef struct IWICBitmapClipperVtbl {
  3967. BEGIN_INTERFACE
  3968. /*** IUnknown methods ***/
  3969. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3970. IWICBitmapClipper *This,
  3971. REFIID riid,
  3972. void **ppvObject);
  3973. ULONG (STDMETHODCALLTYPE *AddRef)(
  3974. IWICBitmapClipper *This);
  3975. ULONG (STDMETHODCALLTYPE *Release)(
  3976. IWICBitmapClipper *This);
  3977. /*** IWICBitmapSource methods ***/
  3978. HRESULT (STDMETHODCALLTYPE *GetSize)(
  3979. IWICBitmapClipper *This,
  3980. UINT *puiWidth,
  3981. UINT *puiHeight);
  3982. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  3983. IWICBitmapClipper *This,
  3984. WICPixelFormatGUID *pPixelFormat);
  3985. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  3986. IWICBitmapClipper *This,
  3987. double *pDpiX,
  3988. double *pDpiY);
  3989. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  3990. IWICBitmapClipper *This,
  3991. IWICPalette *pIPalette);
  3992. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  3993. IWICBitmapClipper *This,
  3994. const WICRect *prc,
  3995. UINT cbStride,
  3996. UINT cbBufferSize,
  3997. BYTE *pbBuffer);
  3998. /*** IWICBitmapClipper methods ***/
  3999. HRESULT (STDMETHODCALLTYPE *Initialize)(
  4000. IWICBitmapClipper *This,
  4001. IWICBitmapSource *pISource,
  4002. const WICRect *prc);
  4003. END_INTERFACE
  4004. } IWICBitmapClipperVtbl;
  4005. interface IWICBitmapClipper {
  4006. CONST_VTBL IWICBitmapClipperVtbl* lpVtbl;
  4007. };
  4008. #ifdef COBJMACROS
  4009. #ifndef WIDL_C_INLINE_WRAPPERS
  4010. /*** IUnknown methods ***/
  4011. #define IWICBitmapClipper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4012. #define IWICBitmapClipper_AddRef(This) (This)->lpVtbl->AddRef(This)
  4013. #define IWICBitmapClipper_Release(This) (This)->lpVtbl->Release(This)
  4014. /*** IWICBitmapSource methods ***/
  4015. #define IWICBitmapClipper_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  4016. #define IWICBitmapClipper_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  4017. #define IWICBitmapClipper_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  4018. #define IWICBitmapClipper_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  4019. #define IWICBitmapClipper_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  4020. /*** IWICBitmapClipper methods ***/
  4021. #define IWICBitmapClipper_Initialize(This,pISource,prc) (This)->lpVtbl->Initialize(This,pISource,prc)
  4022. #else
  4023. /*** IUnknown methods ***/
  4024. static FORCEINLINE HRESULT IWICBitmapClipper_QueryInterface(IWICBitmapClipper* This,REFIID riid,void **ppvObject) {
  4025. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4026. }
  4027. static FORCEINLINE ULONG IWICBitmapClipper_AddRef(IWICBitmapClipper* This) {
  4028. return This->lpVtbl->AddRef(This);
  4029. }
  4030. static FORCEINLINE ULONG IWICBitmapClipper_Release(IWICBitmapClipper* This) {
  4031. return This->lpVtbl->Release(This);
  4032. }
  4033. /*** IWICBitmapSource methods ***/
  4034. static FORCEINLINE HRESULT IWICBitmapClipper_GetSize(IWICBitmapClipper* This,UINT *puiWidth,UINT *puiHeight) {
  4035. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  4036. }
  4037. static FORCEINLINE HRESULT IWICBitmapClipper_GetPixelFormat(IWICBitmapClipper* This,WICPixelFormatGUID *pPixelFormat) {
  4038. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  4039. }
  4040. static FORCEINLINE HRESULT IWICBitmapClipper_GetResolution(IWICBitmapClipper* This,double *pDpiX,double *pDpiY) {
  4041. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  4042. }
  4043. static FORCEINLINE HRESULT IWICBitmapClipper_CopyPalette(IWICBitmapClipper* This,IWICPalette *pIPalette) {
  4044. return This->lpVtbl->CopyPalette(This,pIPalette);
  4045. }
  4046. static FORCEINLINE HRESULT IWICBitmapClipper_CopyPixels(IWICBitmapClipper* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  4047. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  4048. }
  4049. /*** IWICBitmapClipper methods ***/
  4050. static FORCEINLINE HRESULT IWICBitmapClipper_Initialize(IWICBitmapClipper* This,IWICBitmapSource *pISource,const WICRect *prc) {
  4051. return This->lpVtbl->Initialize(This,pISource,prc);
  4052. }
  4053. #endif
  4054. #endif
  4055. #endif
  4056. #endif /* __IWICBitmapClipper_INTERFACE_DEFINED__ */
  4057. /*****************************************************************************
  4058. * IWICColorTransform interface
  4059. */
  4060. #ifndef __IWICColorTransform_INTERFACE_DEFINED__
  4061. #define __IWICColorTransform_INTERFACE_DEFINED__
  4062. DEFINE_GUID(IID_IWICColorTransform, 0xb66f034f, 0xd0e2, 0x40ab, 0xb4,0x36, 0x6d,0xe3,0x9e,0x32,0x1a,0x94);
  4063. #if defined(__cplusplus) && !defined(CINTERFACE)
  4064. MIDL_INTERFACE("b66f034f-d0e2-40ab-b436-6de39e321a94")
  4065. IWICColorTransform : public IWICBitmapSource
  4066. {
  4067. virtual HRESULT STDMETHODCALLTYPE Initialize(
  4068. IWICBitmapSource *pIBitmapSource,
  4069. IWICColorContext *pIContextSource,
  4070. IWICColorContext *pIContextDest,
  4071. REFWICPixelFormatGUID pixelFmtDest) = 0;
  4072. };
  4073. #ifdef __CRT_UUID_DECL
  4074. __CRT_UUID_DECL(IWICColorTransform, 0xb66f034f, 0xd0e2, 0x40ab, 0xb4,0x36, 0x6d,0xe3,0x9e,0x32,0x1a,0x94)
  4075. #endif
  4076. #else
  4077. typedef struct IWICColorTransformVtbl {
  4078. BEGIN_INTERFACE
  4079. /*** IUnknown methods ***/
  4080. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4081. IWICColorTransform *This,
  4082. REFIID riid,
  4083. void **ppvObject);
  4084. ULONG (STDMETHODCALLTYPE *AddRef)(
  4085. IWICColorTransform *This);
  4086. ULONG (STDMETHODCALLTYPE *Release)(
  4087. IWICColorTransform *This);
  4088. /*** IWICBitmapSource methods ***/
  4089. HRESULT (STDMETHODCALLTYPE *GetSize)(
  4090. IWICColorTransform *This,
  4091. UINT *puiWidth,
  4092. UINT *puiHeight);
  4093. HRESULT (STDMETHODCALLTYPE *GetPixelFormat)(
  4094. IWICColorTransform *This,
  4095. WICPixelFormatGUID *pPixelFormat);
  4096. HRESULT (STDMETHODCALLTYPE *GetResolution)(
  4097. IWICColorTransform *This,
  4098. double *pDpiX,
  4099. double *pDpiY);
  4100. HRESULT (STDMETHODCALLTYPE *CopyPalette)(
  4101. IWICColorTransform *This,
  4102. IWICPalette *pIPalette);
  4103. HRESULT (STDMETHODCALLTYPE *CopyPixels)(
  4104. IWICColorTransform *This,
  4105. const WICRect *prc,
  4106. UINT cbStride,
  4107. UINT cbBufferSize,
  4108. BYTE *pbBuffer);
  4109. /*** IWICColorTransform methods ***/
  4110. HRESULT (STDMETHODCALLTYPE *Initialize)(
  4111. IWICColorTransform *This,
  4112. IWICBitmapSource *pIBitmapSource,
  4113. IWICColorContext *pIContextSource,
  4114. IWICColorContext *pIContextDest,
  4115. REFWICPixelFormatGUID pixelFmtDest);
  4116. END_INTERFACE
  4117. } IWICColorTransformVtbl;
  4118. interface IWICColorTransform {
  4119. CONST_VTBL IWICColorTransformVtbl* lpVtbl;
  4120. };
  4121. #ifdef COBJMACROS
  4122. #ifndef WIDL_C_INLINE_WRAPPERS
  4123. /*** IUnknown methods ***/
  4124. #define IWICColorTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4125. #define IWICColorTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
  4126. #define IWICColorTransform_Release(This) (This)->lpVtbl->Release(This)
  4127. /*** IWICBitmapSource methods ***/
  4128. #define IWICColorTransform_GetSize(This,puiWidth,puiHeight) (This)->lpVtbl->GetSize(This,puiWidth,puiHeight)
  4129. #define IWICColorTransform_GetPixelFormat(This,pPixelFormat) (This)->lpVtbl->GetPixelFormat(This,pPixelFormat)
  4130. #define IWICColorTransform_GetResolution(This,pDpiX,pDpiY) (This)->lpVtbl->GetResolution(This,pDpiX,pDpiY)
  4131. #define IWICColorTransform_CopyPalette(This,pIPalette) (This)->lpVtbl->CopyPalette(This,pIPalette)
  4132. #define IWICColorTransform_CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer) (This)->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer)
  4133. /*** IWICColorTransform methods ***/
  4134. #define IWICColorTransform_Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest) (This)->lpVtbl->Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest)
  4135. #else
  4136. /*** IUnknown methods ***/
  4137. static FORCEINLINE HRESULT IWICColorTransform_QueryInterface(IWICColorTransform* This,REFIID riid,void **ppvObject) {
  4138. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4139. }
  4140. static FORCEINLINE ULONG IWICColorTransform_AddRef(IWICColorTransform* This) {
  4141. return This->lpVtbl->AddRef(This);
  4142. }
  4143. static FORCEINLINE ULONG IWICColorTransform_Release(IWICColorTransform* This) {
  4144. return This->lpVtbl->Release(This);
  4145. }
  4146. /*** IWICBitmapSource methods ***/
  4147. static FORCEINLINE HRESULT IWICColorTransform_GetSize(IWICColorTransform* This,UINT *puiWidth,UINT *puiHeight) {
  4148. return This->lpVtbl->GetSize(This,puiWidth,puiHeight);
  4149. }
  4150. static FORCEINLINE HRESULT IWICColorTransform_GetPixelFormat(IWICColorTransform* This,WICPixelFormatGUID *pPixelFormat) {
  4151. return This->lpVtbl->GetPixelFormat(This,pPixelFormat);
  4152. }
  4153. static FORCEINLINE HRESULT IWICColorTransform_GetResolution(IWICColorTransform* This,double *pDpiX,double *pDpiY) {
  4154. return This->lpVtbl->GetResolution(This,pDpiX,pDpiY);
  4155. }
  4156. static FORCEINLINE HRESULT IWICColorTransform_CopyPalette(IWICColorTransform* This,IWICPalette *pIPalette) {
  4157. return This->lpVtbl->CopyPalette(This,pIPalette);
  4158. }
  4159. static FORCEINLINE HRESULT IWICColorTransform_CopyPixels(IWICColorTransform* This,const WICRect *prc,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer) {
  4160. return This->lpVtbl->CopyPixels(This,prc,cbStride,cbBufferSize,pbBuffer);
  4161. }
  4162. /*** IWICColorTransform methods ***/
  4163. static FORCEINLINE HRESULT IWICColorTransform_Initialize(IWICColorTransform* This,IWICBitmapSource *pIBitmapSource,IWICColorContext *pIContextSource,IWICColorContext *pIContextDest,REFWICPixelFormatGUID pixelFmtDest) {
  4164. return This->lpVtbl->Initialize(This,pIBitmapSource,pIContextSource,pIContextDest,pixelFmtDest);
  4165. }
  4166. #endif
  4167. #endif
  4168. #endif
  4169. #endif /* __IWICColorTransform_INTERFACE_DEFINED__ */
  4170. /*****************************************************************************
  4171. * IWICFastMetadataEncoder interface
  4172. */
  4173. #ifndef __IWICFastMetadataEncoder_INTERFACE_DEFINED__
  4174. #define __IWICFastMetadataEncoder_INTERFACE_DEFINED__
  4175. DEFINE_GUID(IID_IWICFastMetadataEncoder, 0xb84e2c09, 0x78c9, 0x4ac4, 0x8b,0xd3, 0x52,0x4a,0xe1,0x66,0x3a,0x2f);
  4176. #if defined(__cplusplus) && !defined(CINTERFACE)
  4177. MIDL_INTERFACE("b84e2c09-78c9-4ac4-8bd3-524ae1663a2f")
  4178. IWICFastMetadataEncoder : public IUnknown
  4179. {
  4180. virtual HRESULT STDMETHODCALLTYPE Commit(
  4181. ) = 0;
  4182. virtual HRESULT STDMETHODCALLTYPE GetMetadataQueryWriter(
  4183. IWICMetadataQueryWriter **ppIMetadataQueryWriter) = 0;
  4184. };
  4185. #ifdef __CRT_UUID_DECL
  4186. __CRT_UUID_DECL(IWICFastMetadataEncoder, 0xb84e2c09, 0x78c9, 0x4ac4, 0x8b,0xd3, 0x52,0x4a,0xe1,0x66,0x3a,0x2f)
  4187. #endif
  4188. #else
  4189. typedef struct IWICFastMetadataEncoderVtbl {
  4190. BEGIN_INTERFACE
  4191. /*** IUnknown methods ***/
  4192. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4193. IWICFastMetadataEncoder *This,
  4194. REFIID riid,
  4195. void **ppvObject);
  4196. ULONG (STDMETHODCALLTYPE *AddRef)(
  4197. IWICFastMetadataEncoder *This);
  4198. ULONG (STDMETHODCALLTYPE *Release)(
  4199. IWICFastMetadataEncoder *This);
  4200. /*** IWICFastMetadataEncoder methods ***/
  4201. HRESULT (STDMETHODCALLTYPE *Commit)(
  4202. IWICFastMetadataEncoder *This);
  4203. HRESULT (STDMETHODCALLTYPE *GetMetadataQueryWriter)(
  4204. IWICFastMetadataEncoder *This,
  4205. IWICMetadataQueryWriter **ppIMetadataQueryWriter);
  4206. END_INTERFACE
  4207. } IWICFastMetadataEncoderVtbl;
  4208. interface IWICFastMetadataEncoder {
  4209. CONST_VTBL IWICFastMetadataEncoderVtbl* lpVtbl;
  4210. };
  4211. #ifdef COBJMACROS
  4212. #ifndef WIDL_C_INLINE_WRAPPERS
  4213. /*** IUnknown methods ***/
  4214. #define IWICFastMetadataEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4215. #define IWICFastMetadataEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  4216. #define IWICFastMetadataEncoder_Release(This) (This)->lpVtbl->Release(This)
  4217. /*** IWICFastMetadataEncoder methods ***/
  4218. #define IWICFastMetadataEncoder_Commit(This) (This)->lpVtbl->Commit(This)
  4219. #define IWICFastMetadataEncoder_GetMetadataQueryWriter(This,ppIMetadataQueryWriter) (This)->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter)
  4220. #else
  4221. /*** IUnknown methods ***/
  4222. static FORCEINLINE HRESULT IWICFastMetadataEncoder_QueryInterface(IWICFastMetadataEncoder* This,REFIID riid,void **ppvObject) {
  4223. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4224. }
  4225. static FORCEINLINE ULONG IWICFastMetadataEncoder_AddRef(IWICFastMetadataEncoder* This) {
  4226. return This->lpVtbl->AddRef(This);
  4227. }
  4228. static FORCEINLINE ULONG IWICFastMetadataEncoder_Release(IWICFastMetadataEncoder* This) {
  4229. return This->lpVtbl->Release(This);
  4230. }
  4231. /*** IWICFastMetadataEncoder methods ***/
  4232. static FORCEINLINE HRESULT IWICFastMetadataEncoder_Commit(IWICFastMetadataEncoder* This) {
  4233. return This->lpVtbl->Commit(This);
  4234. }
  4235. static FORCEINLINE HRESULT IWICFastMetadataEncoder_GetMetadataQueryWriter(IWICFastMetadataEncoder* This,IWICMetadataQueryWriter **ppIMetadataQueryWriter) {
  4236. return This->lpVtbl->GetMetadataQueryWriter(This,ppIMetadataQueryWriter);
  4237. }
  4238. #endif
  4239. #endif
  4240. #endif
  4241. #endif /* __IWICFastMetadataEncoder_INTERFACE_DEFINED__ */
  4242. /*****************************************************************************
  4243. * IWICImageEncoder interface
  4244. */
  4245. #ifndef __IWICImageEncoder_INTERFACE_DEFINED__
  4246. #define __IWICImageEncoder_INTERFACE_DEFINED__
  4247. DEFINE_GUID(IID_IWICImageEncoder, 0x04c75bf8, 0x3ce1, 0x473b, 0xac,0xc5, 0x3c,0xc4,0xf5,0xe9,0x49,0x99);
  4248. #if defined(__cplusplus) && !defined(CINTERFACE)
  4249. MIDL_INTERFACE("04c75bf8-3ce1-473b-acc5-3cc4f5e94999")
  4250. IWICImageEncoder : public IUnknown
  4251. {
  4252. virtual HRESULT STDMETHODCALLTYPE WriteFrame(
  4253. ID2D1Image *image,
  4254. IWICBitmapFrameEncode *encode,
  4255. const WICImageParameters *parameters) = 0;
  4256. virtual HRESULT STDMETHODCALLTYPE WriteFrameThumbnail(
  4257. ID2D1Image *image,
  4258. IWICBitmapFrameEncode *encode,
  4259. const WICImageParameters *parameters) = 0;
  4260. virtual HRESULT STDMETHODCALLTYPE WriteThumbnail(
  4261. ID2D1Image *image,
  4262. IWICBitmapEncoder *encoder,
  4263. const WICImageParameters *parameters) = 0;
  4264. };
  4265. #ifdef __CRT_UUID_DECL
  4266. __CRT_UUID_DECL(IWICImageEncoder, 0x04c75bf8, 0x3ce1, 0x473b, 0xac,0xc5, 0x3c,0xc4,0xf5,0xe9,0x49,0x99)
  4267. #endif
  4268. #else
  4269. typedef struct IWICImageEncoderVtbl {
  4270. BEGIN_INTERFACE
  4271. /*** IUnknown methods ***/
  4272. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4273. IWICImageEncoder *This,
  4274. REFIID riid,
  4275. void **ppvObject);
  4276. ULONG (STDMETHODCALLTYPE *AddRef)(
  4277. IWICImageEncoder *This);
  4278. ULONG (STDMETHODCALLTYPE *Release)(
  4279. IWICImageEncoder *This);
  4280. /*** IWICImageEncoder methods ***/
  4281. HRESULT (STDMETHODCALLTYPE *WriteFrame)(
  4282. IWICImageEncoder *This,
  4283. ID2D1Image *image,
  4284. IWICBitmapFrameEncode *encode,
  4285. const WICImageParameters *parameters);
  4286. HRESULT (STDMETHODCALLTYPE *WriteFrameThumbnail)(
  4287. IWICImageEncoder *This,
  4288. ID2D1Image *image,
  4289. IWICBitmapFrameEncode *encode,
  4290. const WICImageParameters *parameters);
  4291. HRESULT (STDMETHODCALLTYPE *WriteThumbnail)(
  4292. IWICImageEncoder *This,
  4293. ID2D1Image *image,
  4294. IWICBitmapEncoder *encoder,
  4295. const WICImageParameters *parameters);
  4296. END_INTERFACE
  4297. } IWICImageEncoderVtbl;
  4298. interface IWICImageEncoder {
  4299. CONST_VTBL IWICImageEncoderVtbl* lpVtbl;
  4300. };
  4301. #ifdef COBJMACROS
  4302. #ifndef WIDL_C_INLINE_WRAPPERS
  4303. /*** IUnknown methods ***/
  4304. #define IWICImageEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4305. #define IWICImageEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  4306. #define IWICImageEncoder_Release(This) (This)->lpVtbl->Release(This)
  4307. /*** IWICImageEncoder methods ***/
  4308. #define IWICImageEncoder_WriteFrame(This,image,encode,parameters) (This)->lpVtbl->WriteFrame(This,image,encode,parameters)
  4309. #define IWICImageEncoder_WriteFrameThumbnail(This,image,encode,parameters) (This)->lpVtbl->WriteFrameThumbnail(This,image,encode,parameters)
  4310. #define IWICImageEncoder_WriteThumbnail(This,image,encoder,parameters) (This)->lpVtbl->WriteThumbnail(This,image,encoder,parameters)
  4311. #else
  4312. /*** IUnknown methods ***/
  4313. static FORCEINLINE HRESULT IWICImageEncoder_QueryInterface(IWICImageEncoder* This,REFIID riid,void **ppvObject) {
  4314. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4315. }
  4316. static FORCEINLINE ULONG IWICImageEncoder_AddRef(IWICImageEncoder* This) {
  4317. return This->lpVtbl->AddRef(This);
  4318. }
  4319. static FORCEINLINE ULONG IWICImageEncoder_Release(IWICImageEncoder* This) {
  4320. return This->lpVtbl->Release(This);
  4321. }
  4322. /*** IWICImageEncoder methods ***/
  4323. static FORCEINLINE HRESULT IWICImageEncoder_WriteFrame(IWICImageEncoder* This,ID2D1Image *image,IWICBitmapFrameEncode *encode,const WICImageParameters *parameters) {
  4324. return This->lpVtbl->WriteFrame(This,image,encode,parameters);
  4325. }
  4326. static FORCEINLINE HRESULT IWICImageEncoder_WriteFrameThumbnail(IWICImageEncoder* This,ID2D1Image *image,IWICBitmapFrameEncode *encode,const WICImageParameters *parameters) {
  4327. return This->lpVtbl->WriteFrameThumbnail(This,image,encode,parameters);
  4328. }
  4329. static FORCEINLINE HRESULT IWICImageEncoder_WriteThumbnail(IWICImageEncoder* This,ID2D1Image *image,IWICBitmapEncoder *encoder,const WICImageParameters *parameters) {
  4330. return This->lpVtbl->WriteThumbnail(This,image,encoder,parameters);
  4331. }
  4332. #endif
  4333. #endif
  4334. #endif
  4335. #endif /* __IWICImageEncoder_INTERFACE_DEFINED__ */
  4336. DEFINE_GUID(CLSID_WICImagingFactory, 0xcacaf262,0x9370,0x4615,0xa1,0x3b,0x9f,0x55,0x39,0xda,0x4c,0x0a);
  4337. DEFINE_GUID(CLSID_WICImagingFactory1, 0xcacaf262,0x9370,0x4615,0xa1,0x3b,0x9f,0x55,0x39,0xda,0x4c,0x0a);
  4338. DEFINE_GUID(CLSID_WICImagingFactory2, 0x317d06e8,0x5f24,0x433d,0xbd,0xf7,0x79,0xce,0x68,0xd8,0xab,0xc2);
  4339. /*****************************************************************************
  4340. * IWICImagingFactory interface
  4341. */
  4342. #ifndef __IWICImagingFactory_INTERFACE_DEFINED__
  4343. #define __IWICImagingFactory_INTERFACE_DEFINED__
  4344. DEFINE_GUID(IID_IWICImagingFactory, 0xec5ec8a9, 0xc395, 0x4314, 0x9c,0x77, 0x54,0xd7,0xa9,0x35,0xff,0x70);
  4345. #if defined(__cplusplus) && !defined(CINTERFACE)
  4346. MIDL_INTERFACE("ec5ec8a9-c395-4314-9c77-54d7a935ff70")
  4347. IWICImagingFactory : public IUnknown
  4348. {
  4349. virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromFilename(
  4350. LPCWSTR wzFilename,
  4351. const GUID *pguidVendor,
  4352. DWORD dwDesiredAccess,
  4353. WICDecodeOptions metadataOptions,
  4354. IWICBitmapDecoder **ppIDecoder) = 0;
  4355. virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromStream(
  4356. IStream *pIStream,
  4357. const GUID *pguidVendor,
  4358. WICDecodeOptions metadataOptions,
  4359. IWICBitmapDecoder **ppIDecoder) = 0;
  4360. virtual HRESULT STDMETHODCALLTYPE CreateDecoderFromFileHandle(
  4361. ULONG_PTR hFile,
  4362. const GUID *pguidVendor,
  4363. WICDecodeOptions metadataOptions,
  4364. IWICBitmapDecoder **ppIDecoder) = 0;
  4365. virtual HRESULT STDMETHODCALLTYPE CreateComponentInfo(
  4366. REFCLSID clsidComponent,
  4367. IWICComponentInfo **ppIInfo) = 0;
  4368. virtual HRESULT STDMETHODCALLTYPE CreateDecoder(
  4369. REFGUID guidContainerFormat,
  4370. const GUID *pguidVendor,
  4371. IWICBitmapDecoder **ppIDecoder) = 0;
  4372. virtual HRESULT STDMETHODCALLTYPE CreateEncoder(
  4373. REFGUID guidContainerFormat,
  4374. const GUID *pguidVendor,
  4375. IWICBitmapEncoder **ppIEncoder) = 0;
  4376. virtual HRESULT STDMETHODCALLTYPE CreatePalette(
  4377. IWICPalette **ppIPalette) = 0;
  4378. virtual HRESULT STDMETHODCALLTYPE CreateFormatConverter(
  4379. IWICFormatConverter **ppIFormatConverter) = 0;
  4380. virtual HRESULT STDMETHODCALLTYPE CreateBitmapScaler(
  4381. IWICBitmapScaler **ppIBitmapScaler) = 0;
  4382. virtual HRESULT STDMETHODCALLTYPE CreateBitmapClipper(
  4383. IWICBitmapClipper **ppIBitmapClipper) = 0;
  4384. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFlipRotator(
  4385. IWICBitmapFlipRotator **ppIBitmapFlipRotator) = 0;
  4386. virtual HRESULT STDMETHODCALLTYPE CreateStream(
  4387. IWICStream **ppIWICStream) = 0;
  4388. virtual HRESULT STDMETHODCALLTYPE CreateColorContext(
  4389. IWICColorContext **ppIWICColorContext) = 0;
  4390. virtual HRESULT STDMETHODCALLTYPE CreateColorTransformer(
  4391. IWICColorTransform **ppIWICColorTransform) = 0;
  4392. virtual HRESULT STDMETHODCALLTYPE CreateBitmap(
  4393. UINT uiWidth,
  4394. UINT uiHeight,
  4395. REFWICPixelFormatGUID pixelFormat,
  4396. WICBitmapCreateCacheOption option,
  4397. IWICBitmap **ppIBitmap) = 0;
  4398. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromSource(
  4399. IWICBitmapSource *piBitmapSource,
  4400. WICBitmapCreateCacheOption option,
  4401. IWICBitmap **ppIBitmap) = 0;
  4402. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromSourceRect(
  4403. IWICBitmapSource *piBitmapSource,
  4404. UINT x,
  4405. UINT y,
  4406. UINT width,
  4407. UINT height,
  4408. IWICBitmap **ppIBitmap) = 0;
  4409. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromMemory(
  4410. UINT uiWidth,
  4411. UINT uiHeight,
  4412. REFWICPixelFormatGUID pixelFormat,
  4413. UINT cbStride,
  4414. UINT cbBufferSize,
  4415. BYTE *pbBuffer,
  4416. IWICBitmap **ppIBitmap) = 0;
  4417. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromHBITMAP(
  4418. HBITMAP hBitmap,
  4419. HPALETTE hPalette,
  4420. WICBitmapAlphaChannelOption options,
  4421. IWICBitmap **ppIBitmap) = 0;
  4422. virtual HRESULT STDMETHODCALLTYPE CreateBitmapFromHICON(
  4423. HICON hIcon,
  4424. IWICBitmap **ppIBitmap) = 0;
  4425. virtual HRESULT STDMETHODCALLTYPE CreateComponentEnumerator(
  4426. DWORD componentTypes,
  4427. DWORD options,
  4428. IEnumUnknown **ppIEnumUnknown) = 0;
  4429. virtual HRESULT STDMETHODCALLTYPE CreateFastMetadataEncoderFromDecoder(
  4430. IWICBitmapDecoder *pIDecoder,
  4431. IWICFastMetadataEncoder **ppIFastEncoder) = 0;
  4432. virtual HRESULT STDMETHODCALLTYPE CreateFastMetadataEncoderFromFrameDecode(
  4433. IWICBitmapFrameDecode *pIFrameDecoder,
  4434. IWICFastMetadataEncoder **ppIFastEncoder) = 0;
  4435. virtual HRESULT STDMETHODCALLTYPE CreateQueryWriter(
  4436. REFGUID guidMetadataFormat,
  4437. const GUID *pguidVendor,
  4438. IWICMetadataQueryWriter **ppIQueryWriter) = 0;
  4439. virtual HRESULT STDMETHODCALLTYPE CreateQueryWriterFromReader(
  4440. IWICMetadataQueryReader *pIQueryReader,
  4441. const GUID *pguidVendor,
  4442. IWICMetadataQueryWriter **ppIQueryWriter) = 0;
  4443. };
  4444. #ifdef __CRT_UUID_DECL
  4445. __CRT_UUID_DECL(IWICImagingFactory, 0xec5ec8a9, 0xc395, 0x4314, 0x9c,0x77, 0x54,0xd7,0xa9,0x35,0xff,0x70)
  4446. #endif
  4447. #else
  4448. typedef struct IWICImagingFactoryVtbl {
  4449. BEGIN_INTERFACE
  4450. /*** IUnknown methods ***/
  4451. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4452. IWICImagingFactory *This,
  4453. REFIID riid,
  4454. void **ppvObject);
  4455. ULONG (STDMETHODCALLTYPE *AddRef)(
  4456. IWICImagingFactory *This);
  4457. ULONG (STDMETHODCALLTYPE *Release)(
  4458. IWICImagingFactory *This);
  4459. /*** IWICImagingFactory methods ***/
  4460. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFilename)(
  4461. IWICImagingFactory *This,
  4462. LPCWSTR wzFilename,
  4463. const GUID *pguidVendor,
  4464. DWORD dwDesiredAccess,
  4465. WICDecodeOptions metadataOptions,
  4466. IWICBitmapDecoder **ppIDecoder);
  4467. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromStream)(
  4468. IWICImagingFactory *This,
  4469. IStream *pIStream,
  4470. const GUID *pguidVendor,
  4471. WICDecodeOptions metadataOptions,
  4472. IWICBitmapDecoder **ppIDecoder);
  4473. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFileHandle)(
  4474. IWICImagingFactory *This,
  4475. ULONG_PTR hFile,
  4476. const GUID *pguidVendor,
  4477. WICDecodeOptions metadataOptions,
  4478. IWICBitmapDecoder **ppIDecoder);
  4479. HRESULT (STDMETHODCALLTYPE *CreateComponentInfo)(
  4480. IWICImagingFactory *This,
  4481. REFCLSID clsidComponent,
  4482. IWICComponentInfo **ppIInfo);
  4483. HRESULT (STDMETHODCALLTYPE *CreateDecoder)(
  4484. IWICImagingFactory *This,
  4485. REFGUID guidContainerFormat,
  4486. const GUID *pguidVendor,
  4487. IWICBitmapDecoder **ppIDecoder);
  4488. HRESULT (STDMETHODCALLTYPE *CreateEncoder)(
  4489. IWICImagingFactory *This,
  4490. REFGUID guidContainerFormat,
  4491. const GUID *pguidVendor,
  4492. IWICBitmapEncoder **ppIEncoder);
  4493. HRESULT (STDMETHODCALLTYPE *CreatePalette)(
  4494. IWICImagingFactory *This,
  4495. IWICPalette **ppIPalette);
  4496. HRESULT (STDMETHODCALLTYPE *CreateFormatConverter)(
  4497. IWICImagingFactory *This,
  4498. IWICFormatConverter **ppIFormatConverter);
  4499. HRESULT (STDMETHODCALLTYPE *CreateBitmapScaler)(
  4500. IWICImagingFactory *This,
  4501. IWICBitmapScaler **ppIBitmapScaler);
  4502. HRESULT (STDMETHODCALLTYPE *CreateBitmapClipper)(
  4503. IWICImagingFactory *This,
  4504. IWICBitmapClipper **ppIBitmapClipper);
  4505. HRESULT (STDMETHODCALLTYPE *CreateBitmapFlipRotator)(
  4506. IWICImagingFactory *This,
  4507. IWICBitmapFlipRotator **ppIBitmapFlipRotator);
  4508. HRESULT (STDMETHODCALLTYPE *CreateStream)(
  4509. IWICImagingFactory *This,
  4510. IWICStream **ppIWICStream);
  4511. HRESULT (STDMETHODCALLTYPE *CreateColorContext)(
  4512. IWICImagingFactory *This,
  4513. IWICColorContext **ppIWICColorContext);
  4514. HRESULT (STDMETHODCALLTYPE *CreateColorTransformer)(
  4515. IWICImagingFactory *This,
  4516. IWICColorTransform **ppIWICColorTransform);
  4517. HRESULT (STDMETHODCALLTYPE *CreateBitmap)(
  4518. IWICImagingFactory *This,
  4519. UINT uiWidth,
  4520. UINT uiHeight,
  4521. REFWICPixelFormatGUID pixelFormat,
  4522. WICBitmapCreateCacheOption option,
  4523. IWICBitmap **ppIBitmap);
  4524. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSource)(
  4525. IWICImagingFactory *This,
  4526. IWICBitmapSource *piBitmapSource,
  4527. WICBitmapCreateCacheOption option,
  4528. IWICBitmap **ppIBitmap);
  4529. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSourceRect)(
  4530. IWICImagingFactory *This,
  4531. IWICBitmapSource *piBitmapSource,
  4532. UINT x,
  4533. UINT y,
  4534. UINT width,
  4535. UINT height,
  4536. IWICBitmap **ppIBitmap);
  4537. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromMemory)(
  4538. IWICImagingFactory *This,
  4539. UINT uiWidth,
  4540. UINT uiHeight,
  4541. REFWICPixelFormatGUID pixelFormat,
  4542. UINT cbStride,
  4543. UINT cbBufferSize,
  4544. BYTE *pbBuffer,
  4545. IWICBitmap **ppIBitmap);
  4546. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHBITMAP)(
  4547. IWICImagingFactory *This,
  4548. HBITMAP hBitmap,
  4549. HPALETTE hPalette,
  4550. WICBitmapAlphaChannelOption options,
  4551. IWICBitmap **ppIBitmap);
  4552. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHICON)(
  4553. IWICImagingFactory *This,
  4554. HICON hIcon,
  4555. IWICBitmap **ppIBitmap);
  4556. HRESULT (STDMETHODCALLTYPE *CreateComponentEnumerator)(
  4557. IWICImagingFactory *This,
  4558. DWORD componentTypes,
  4559. DWORD options,
  4560. IEnumUnknown **ppIEnumUnknown);
  4561. HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromDecoder)(
  4562. IWICImagingFactory *This,
  4563. IWICBitmapDecoder *pIDecoder,
  4564. IWICFastMetadataEncoder **ppIFastEncoder);
  4565. HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromFrameDecode)(
  4566. IWICImagingFactory *This,
  4567. IWICBitmapFrameDecode *pIFrameDecoder,
  4568. IWICFastMetadataEncoder **ppIFastEncoder);
  4569. HRESULT (STDMETHODCALLTYPE *CreateQueryWriter)(
  4570. IWICImagingFactory *This,
  4571. REFGUID guidMetadataFormat,
  4572. const GUID *pguidVendor,
  4573. IWICMetadataQueryWriter **ppIQueryWriter);
  4574. HRESULT (STDMETHODCALLTYPE *CreateQueryWriterFromReader)(
  4575. IWICImagingFactory *This,
  4576. IWICMetadataQueryReader *pIQueryReader,
  4577. const GUID *pguidVendor,
  4578. IWICMetadataQueryWriter **ppIQueryWriter);
  4579. END_INTERFACE
  4580. } IWICImagingFactoryVtbl;
  4581. interface IWICImagingFactory {
  4582. CONST_VTBL IWICImagingFactoryVtbl* lpVtbl;
  4583. };
  4584. #ifdef COBJMACROS
  4585. #ifndef WIDL_C_INLINE_WRAPPERS
  4586. /*** IUnknown methods ***/
  4587. #define IWICImagingFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4588. #define IWICImagingFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  4589. #define IWICImagingFactory_Release(This) (This)->lpVtbl->Release(This)
  4590. /*** IWICImagingFactory methods ***/
  4591. #define IWICImagingFactory_CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder)
  4592. #define IWICImagingFactory_CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder)
  4593. #define IWICImagingFactory_CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder)
  4594. #define IWICImagingFactory_CreateComponentInfo(This,clsidComponent,ppIInfo) (This)->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo)
  4595. #define IWICImagingFactory_CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder) (This)->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder)
  4596. #define IWICImagingFactory_CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder) (This)->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder)
  4597. #define IWICImagingFactory_CreatePalette(This,ppIPalette) (This)->lpVtbl->CreatePalette(This,ppIPalette)
  4598. #define IWICImagingFactory_CreateFormatConverter(This,ppIFormatConverter) (This)->lpVtbl->CreateFormatConverter(This,ppIFormatConverter)
  4599. #define IWICImagingFactory_CreateBitmapScaler(This,ppIBitmapScaler) (This)->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler)
  4600. #define IWICImagingFactory_CreateBitmapClipper(This,ppIBitmapClipper) (This)->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper)
  4601. #define IWICImagingFactory_CreateBitmapFlipRotator(This,ppIBitmapFlipRotator) (This)->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator)
  4602. #define IWICImagingFactory_CreateStream(This,ppIWICStream) (This)->lpVtbl->CreateStream(This,ppIWICStream)
  4603. #define IWICImagingFactory_CreateColorContext(This,ppIWICColorContext) (This)->lpVtbl->CreateColorContext(This,ppIWICColorContext)
  4604. #define IWICImagingFactory_CreateColorTransformer(This,ppIWICColorTransform) (This)->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform)
  4605. #define IWICImagingFactory_CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap) (This)->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap)
  4606. #define IWICImagingFactory_CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap)
  4607. #define IWICImagingFactory_CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap)
  4608. #define IWICImagingFactory_CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap) (This)->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap)
  4609. #define IWICImagingFactory_CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap)
  4610. #define IWICImagingFactory_CreateBitmapFromHICON(This,hIcon,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap)
  4611. #define IWICImagingFactory_CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown) (This)->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown)
  4612. #define IWICImagingFactory_CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder)
  4613. #define IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder)
  4614. #define IWICImagingFactory_CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter)
  4615. #define IWICImagingFactory_CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter)
  4616. #else
  4617. /*** IUnknown methods ***/
  4618. static FORCEINLINE HRESULT IWICImagingFactory_QueryInterface(IWICImagingFactory* This,REFIID riid,void **ppvObject) {
  4619. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4620. }
  4621. static FORCEINLINE ULONG IWICImagingFactory_AddRef(IWICImagingFactory* This) {
  4622. return This->lpVtbl->AddRef(This);
  4623. }
  4624. static FORCEINLINE ULONG IWICImagingFactory_Release(IWICImagingFactory* This) {
  4625. return This->lpVtbl->Release(This);
  4626. }
  4627. /*** IWICImagingFactory methods ***/
  4628. static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromFilename(IWICImagingFactory* This,LPCWSTR wzFilename,const GUID *pguidVendor,DWORD dwDesiredAccess,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4629. return This->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder);
  4630. }
  4631. static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromStream(IWICImagingFactory* This,IStream *pIStream,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4632. return This->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder);
  4633. }
  4634. static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoderFromFileHandle(IWICImagingFactory* This,ULONG_PTR hFile,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4635. return This->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder);
  4636. }
  4637. static FORCEINLINE HRESULT IWICImagingFactory_CreateComponentInfo(IWICImagingFactory* This,REFCLSID clsidComponent,IWICComponentInfo **ppIInfo) {
  4638. return This->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo);
  4639. }
  4640. static FORCEINLINE HRESULT IWICImagingFactory_CreateDecoder(IWICImagingFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapDecoder **ppIDecoder) {
  4641. return This->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder);
  4642. }
  4643. static FORCEINLINE HRESULT IWICImagingFactory_CreateEncoder(IWICImagingFactory* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapEncoder **ppIEncoder) {
  4644. return This->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder);
  4645. }
  4646. static FORCEINLINE HRESULT IWICImagingFactory_CreatePalette(IWICImagingFactory* This,IWICPalette **ppIPalette) {
  4647. return This->lpVtbl->CreatePalette(This,ppIPalette);
  4648. }
  4649. static FORCEINLINE HRESULT IWICImagingFactory_CreateFormatConverter(IWICImagingFactory* This,IWICFormatConverter **ppIFormatConverter) {
  4650. return This->lpVtbl->CreateFormatConverter(This,ppIFormatConverter);
  4651. }
  4652. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapScaler(IWICImagingFactory* This,IWICBitmapScaler **ppIBitmapScaler) {
  4653. return This->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler);
  4654. }
  4655. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapClipper(IWICImagingFactory* This,IWICBitmapClipper **ppIBitmapClipper) {
  4656. return This->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper);
  4657. }
  4658. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFlipRotator(IWICImagingFactory* This,IWICBitmapFlipRotator **ppIBitmapFlipRotator) {
  4659. return This->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator);
  4660. }
  4661. static FORCEINLINE HRESULT IWICImagingFactory_CreateStream(IWICImagingFactory* This,IWICStream **ppIWICStream) {
  4662. return This->lpVtbl->CreateStream(This,ppIWICStream);
  4663. }
  4664. static FORCEINLINE HRESULT IWICImagingFactory_CreateColorContext(IWICImagingFactory* This,IWICColorContext **ppIWICColorContext) {
  4665. return This->lpVtbl->CreateColorContext(This,ppIWICColorContext);
  4666. }
  4667. static FORCEINLINE HRESULT IWICImagingFactory_CreateColorTransformer(IWICImagingFactory* This,IWICColorTransform **ppIWICColorTransform) {
  4668. return This->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform);
  4669. }
  4670. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmap(IWICImagingFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
  4671. return This->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap);
  4672. }
  4673. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromSource(IWICImagingFactory* This,IWICBitmapSource *piBitmapSource,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
  4674. return This->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap);
  4675. }
  4676. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromSourceRect(IWICImagingFactory* This,IWICBitmapSource *piBitmapSource,UINT x,UINT y,UINT width,UINT height,IWICBitmap **ppIBitmap) {
  4677. return This->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap);
  4678. }
  4679. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromMemory(IWICImagingFactory* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer,IWICBitmap **ppIBitmap) {
  4680. return This->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap);
  4681. }
  4682. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromHBITMAP(IWICImagingFactory* This,HBITMAP hBitmap,HPALETTE hPalette,WICBitmapAlphaChannelOption options,IWICBitmap **ppIBitmap) {
  4683. return This->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap);
  4684. }
  4685. static FORCEINLINE HRESULT IWICImagingFactory_CreateBitmapFromHICON(IWICImagingFactory* This,HICON hIcon,IWICBitmap **ppIBitmap) {
  4686. return This->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap);
  4687. }
  4688. static FORCEINLINE HRESULT IWICImagingFactory_CreateComponentEnumerator(IWICImagingFactory* This,DWORD componentTypes,DWORD options,IEnumUnknown **ppIEnumUnknown) {
  4689. return This->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown);
  4690. }
  4691. static FORCEINLINE HRESULT IWICImagingFactory_CreateFastMetadataEncoderFromDecoder(IWICImagingFactory* This,IWICBitmapDecoder *pIDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
  4692. return This->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder);
  4693. }
  4694. static FORCEINLINE HRESULT IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode(IWICImagingFactory* This,IWICBitmapFrameDecode *pIFrameDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
  4695. return This->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder);
  4696. }
  4697. static FORCEINLINE HRESULT IWICImagingFactory_CreateQueryWriter(IWICImagingFactory* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
  4698. return This->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter);
  4699. }
  4700. static FORCEINLINE HRESULT IWICImagingFactory_CreateQueryWriterFromReader(IWICImagingFactory* This,IWICMetadataQueryReader *pIQueryReader,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
  4701. return This->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter);
  4702. }
  4703. #endif
  4704. #endif
  4705. #endif
  4706. #endif /* __IWICImagingFactory_INTERFACE_DEFINED__ */
  4707. /*****************************************************************************
  4708. * IWICImagingFactory2 interface
  4709. */
  4710. #ifndef __IWICImagingFactory2_INTERFACE_DEFINED__
  4711. #define __IWICImagingFactory2_INTERFACE_DEFINED__
  4712. DEFINE_GUID(IID_IWICImagingFactory2, 0x7b816b45, 0x1996, 0x4476, 0xb1,0x32, 0xde,0x9e,0x24,0x7c,0x8a,0xf0);
  4713. #if defined(__cplusplus) && !defined(CINTERFACE)
  4714. MIDL_INTERFACE("7b816b45-1996-4476-b132-de9e247c8af0")
  4715. IWICImagingFactory2 : public IWICImagingFactory
  4716. {
  4717. virtual HRESULT STDMETHODCALLTYPE CreateImageEncoder(
  4718. ID2D1Device *device,
  4719. IWICImageEncoder **encoder) = 0;
  4720. };
  4721. #ifdef __CRT_UUID_DECL
  4722. __CRT_UUID_DECL(IWICImagingFactory2, 0x7b816b45, 0x1996, 0x4476, 0xb1,0x32, 0xde,0x9e,0x24,0x7c,0x8a,0xf0)
  4723. #endif
  4724. #else
  4725. typedef struct IWICImagingFactory2Vtbl {
  4726. BEGIN_INTERFACE
  4727. /*** IUnknown methods ***/
  4728. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4729. IWICImagingFactory2 *This,
  4730. REFIID riid,
  4731. void **ppvObject);
  4732. ULONG (STDMETHODCALLTYPE *AddRef)(
  4733. IWICImagingFactory2 *This);
  4734. ULONG (STDMETHODCALLTYPE *Release)(
  4735. IWICImagingFactory2 *This);
  4736. /*** IWICImagingFactory methods ***/
  4737. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFilename)(
  4738. IWICImagingFactory2 *This,
  4739. LPCWSTR wzFilename,
  4740. const GUID *pguidVendor,
  4741. DWORD dwDesiredAccess,
  4742. WICDecodeOptions metadataOptions,
  4743. IWICBitmapDecoder **ppIDecoder);
  4744. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromStream)(
  4745. IWICImagingFactory2 *This,
  4746. IStream *pIStream,
  4747. const GUID *pguidVendor,
  4748. WICDecodeOptions metadataOptions,
  4749. IWICBitmapDecoder **ppIDecoder);
  4750. HRESULT (STDMETHODCALLTYPE *CreateDecoderFromFileHandle)(
  4751. IWICImagingFactory2 *This,
  4752. ULONG_PTR hFile,
  4753. const GUID *pguidVendor,
  4754. WICDecodeOptions metadataOptions,
  4755. IWICBitmapDecoder **ppIDecoder);
  4756. HRESULT (STDMETHODCALLTYPE *CreateComponentInfo)(
  4757. IWICImagingFactory2 *This,
  4758. REFCLSID clsidComponent,
  4759. IWICComponentInfo **ppIInfo);
  4760. HRESULT (STDMETHODCALLTYPE *CreateDecoder)(
  4761. IWICImagingFactory2 *This,
  4762. REFGUID guidContainerFormat,
  4763. const GUID *pguidVendor,
  4764. IWICBitmapDecoder **ppIDecoder);
  4765. HRESULT (STDMETHODCALLTYPE *CreateEncoder)(
  4766. IWICImagingFactory2 *This,
  4767. REFGUID guidContainerFormat,
  4768. const GUID *pguidVendor,
  4769. IWICBitmapEncoder **ppIEncoder);
  4770. HRESULT (STDMETHODCALLTYPE *CreatePalette)(
  4771. IWICImagingFactory2 *This,
  4772. IWICPalette **ppIPalette);
  4773. HRESULT (STDMETHODCALLTYPE *CreateFormatConverter)(
  4774. IWICImagingFactory2 *This,
  4775. IWICFormatConverter **ppIFormatConverter);
  4776. HRESULT (STDMETHODCALLTYPE *CreateBitmapScaler)(
  4777. IWICImagingFactory2 *This,
  4778. IWICBitmapScaler **ppIBitmapScaler);
  4779. HRESULT (STDMETHODCALLTYPE *CreateBitmapClipper)(
  4780. IWICImagingFactory2 *This,
  4781. IWICBitmapClipper **ppIBitmapClipper);
  4782. HRESULT (STDMETHODCALLTYPE *CreateBitmapFlipRotator)(
  4783. IWICImagingFactory2 *This,
  4784. IWICBitmapFlipRotator **ppIBitmapFlipRotator);
  4785. HRESULT (STDMETHODCALLTYPE *CreateStream)(
  4786. IWICImagingFactory2 *This,
  4787. IWICStream **ppIWICStream);
  4788. HRESULT (STDMETHODCALLTYPE *CreateColorContext)(
  4789. IWICImagingFactory2 *This,
  4790. IWICColorContext **ppIWICColorContext);
  4791. HRESULT (STDMETHODCALLTYPE *CreateColorTransformer)(
  4792. IWICImagingFactory2 *This,
  4793. IWICColorTransform **ppIWICColorTransform);
  4794. HRESULT (STDMETHODCALLTYPE *CreateBitmap)(
  4795. IWICImagingFactory2 *This,
  4796. UINT uiWidth,
  4797. UINT uiHeight,
  4798. REFWICPixelFormatGUID pixelFormat,
  4799. WICBitmapCreateCacheOption option,
  4800. IWICBitmap **ppIBitmap);
  4801. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSource)(
  4802. IWICImagingFactory2 *This,
  4803. IWICBitmapSource *piBitmapSource,
  4804. WICBitmapCreateCacheOption option,
  4805. IWICBitmap **ppIBitmap);
  4806. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromSourceRect)(
  4807. IWICImagingFactory2 *This,
  4808. IWICBitmapSource *piBitmapSource,
  4809. UINT x,
  4810. UINT y,
  4811. UINT width,
  4812. UINT height,
  4813. IWICBitmap **ppIBitmap);
  4814. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromMemory)(
  4815. IWICImagingFactory2 *This,
  4816. UINT uiWidth,
  4817. UINT uiHeight,
  4818. REFWICPixelFormatGUID pixelFormat,
  4819. UINT cbStride,
  4820. UINT cbBufferSize,
  4821. BYTE *pbBuffer,
  4822. IWICBitmap **ppIBitmap);
  4823. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHBITMAP)(
  4824. IWICImagingFactory2 *This,
  4825. HBITMAP hBitmap,
  4826. HPALETTE hPalette,
  4827. WICBitmapAlphaChannelOption options,
  4828. IWICBitmap **ppIBitmap);
  4829. HRESULT (STDMETHODCALLTYPE *CreateBitmapFromHICON)(
  4830. IWICImagingFactory2 *This,
  4831. HICON hIcon,
  4832. IWICBitmap **ppIBitmap);
  4833. HRESULT (STDMETHODCALLTYPE *CreateComponentEnumerator)(
  4834. IWICImagingFactory2 *This,
  4835. DWORD componentTypes,
  4836. DWORD options,
  4837. IEnumUnknown **ppIEnumUnknown);
  4838. HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromDecoder)(
  4839. IWICImagingFactory2 *This,
  4840. IWICBitmapDecoder *pIDecoder,
  4841. IWICFastMetadataEncoder **ppIFastEncoder);
  4842. HRESULT (STDMETHODCALLTYPE *CreateFastMetadataEncoderFromFrameDecode)(
  4843. IWICImagingFactory2 *This,
  4844. IWICBitmapFrameDecode *pIFrameDecoder,
  4845. IWICFastMetadataEncoder **ppIFastEncoder);
  4846. HRESULT (STDMETHODCALLTYPE *CreateQueryWriter)(
  4847. IWICImagingFactory2 *This,
  4848. REFGUID guidMetadataFormat,
  4849. const GUID *pguidVendor,
  4850. IWICMetadataQueryWriter **ppIQueryWriter);
  4851. HRESULT (STDMETHODCALLTYPE *CreateQueryWriterFromReader)(
  4852. IWICImagingFactory2 *This,
  4853. IWICMetadataQueryReader *pIQueryReader,
  4854. const GUID *pguidVendor,
  4855. IWICMetadataQueryWriter **ppIQueryWriter);
  4856. /*** IWICImagingFactory2 methods ***/
  4857. HRESULT (STDMETHODCALLTYPE *CreateImageEncoder)(
  4858. IWICImagingFactory2 *This,
  4859. ID2D1Device *device,
  4860. IWICImageEncoder **encoder);
  4861. END_INTERFACE
  4862. } IWICImagingFactory2Vtbl;
  4863. interface IWICImagingFactory2 {
  4864. CONST_VTBL IWICImagingFactory2Vtbl* lpVtbl;
  4865. };
  4866. #ifdef COBJMACROS
  4867. #ifndef WIDL_C_INLINE_WRAPPERS
  4868. /*** IUnknown methods ***/
  4869. #define IWICImagingFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4870. #define IWICImagingFactory2_AddRef(This) (This)->lpVtbl->AddRef(This)
  4871. #define IWICImagingFactory2_Release(This) (This)->lpVtbl->Release(This)
  4872. /*** IWICImagingFactory methods ***/
  4873. #define IWICImagingFactory2_CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder)
  4874. #define IWICImagingFactory2_CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder)
  4875. #define IWICImagingFactory2_CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder) (This)->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder)
  4876. #define IWICImagingFactory2_CreateComponentInfo(This,clsidComponent,ppIInfo) (This)->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo)
  4877. #define IWICImagingFactory2_CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder) (This)->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder)
  4878. #define IWICImagingFactory2_CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder) (This)->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder)
  4879. #define IWICImagingFactory2_CreatePalette(This,ppIPalette) (This)->lpVtbl->CreatePalette(This,ppIPalette)
  4880. #define IWICImagingFactory2_CreateFormatConverter(This,ppIFormatConverter) (This)->lpVtbl->CreateFormatConverter(This,ppIFormatConverter)
  4881. #define IWICImagingFactory2_CreateBitmapScaler(This,ppIBitmapScaler) (This)->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler)
  4882. #define IWICImagingFactory2_CreateBitmapClipper(This,ppIBitmapClipper) (This)->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper)
  4883. #define IWICImagingFactory2_CreateBitmapFlipRotator(This,ppIBitmapFlipRotator) (This)->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator)
  4884. #define IWICImagingFactory2_CreateStream(This,ppIWICStream) (This)->lpVtbl->CreateStream(This,ppIWICStream)
  4885. #define IWICImagingFactory2_CreateColorContext(This,ppIWICColorContext) (This)->lpVtbl->CreateColorContext(This,ppIWICColorContext)
  4886. #define IWICImagingFactory2_CreateColorTransformer(This,ppIWICColorTransform) (This)->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform)
  4887. #define IWICImagingFactory2_CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap) (This)->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap)
  4888. #define IWICImagingFactory2_CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap)
  4889. #define IWICImagingFactory2_CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap) (This)->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap)
  4890. #define IWICImagingFactory2_CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap) (This)->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap)
  4891. #define IWICImagingFactory2_CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap)
  4892. #define IWICImagingFactory2_CreateBitmapFromHICON(This,hIcon,ppIBitmap) (This)->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap)
  4893. #define IWICImagingFactory2_CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown) (This)->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown)
  4894. #define IWICImagingFactory2_CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder)
  4895. #define IWICImagingFactory2_CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder) (This)->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder)
  4896. #define IWICImagingFactory2_CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter)
  4897. #define IWICImagingFactory2_CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter) (This)->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter)
  4898. /*** IWICImagingFactory2 methods ***/
  4899. #define IWICImagingFactory2_CreateImageEncoder(This,device,encoder) (This)->lpVtbl->CreateImageEncoder(This,device,encoder)
  4900. #else
  4901. /*** IUnknown methods ***/
  4902. static FORCEINLINE HRESULT IWICImagingFactory2_QueryInterface(IWICImagingFactory2* This,REFIID riid,void **ppvObject) {
  4903. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4904. }
  4905. static FORCEINLINE ULONG IWICImagingFactory2_AddRef(IWICImagingFactory2* This) {
  4906. return This->lpVtbl->AddRef(This);
  4907. }
  4908. static FORCEINLINE ULONG IWICImagingFactory2_Release(IWICImagingFactory2* This) {
  4909. return This->lpVtbl->Release(This);
  4910. }
  4911. /*** IWICImagingFactory methods ***/
  4912. static FORCEINLINE HRESULT IWICImagingFactory2_CreateDecoderFromFilename(IWICImagingFactory2* This,LPCWSTR wzFilename,const GUID *pguidVendor,DWORD dwDesiredAccess,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4913. return This->lpVtbl->CreateDecoderFromFilename(This,wzFilename,pguidVendor,dwDesiredAccess,metadataOptions,ppIDecoder);
  4914. }
  4915. static FORCEINLINE HRESULT IWICImagingFactory2_CreateDecoderFromStream(IWICImagingFactory2* This,IStream *pIStream,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4916. return This->lpVtbl->CreateDecoderFromStream(This,pIStream,pguidVendor,metadataOptions,ppIDecoder);
  4917. }
  4918. static FORCEINLINE HRESULT IWICImagingFactory2_CreateDecoderFromFileHandle(IWICImagingFactory2* This,ULONG_PTR hFile,const GUID *pguidVendor,WICDecodeOptions metadataOptions,IWICBitmapDecoder **ppIDecoder) {
  4919. return This->lpVtbl->CreateDecoderFromFileHandle(This,hFile,pguidVendor,metadataOptions,ppIDecoder);
  4920. }
  4921. static FORCEINLINE HRESULT IWICImagingFactory2_CreateComponentInfo(IWICImagingFactory2* This,REFCLSID clsidComponent,IWICComponentInfo **ppIInfo) {
  4922. return This->lpVtbl->CreateComponentInfo(This,clsidComponent,ppIInfo);
  4923. }
  4924. static FORCEINLINE HRESULT IWICImagingFactory2_CreateDecoder(IWICImagingFactory2* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapDecoder **ppIDecoder) {
  4925. return This->lpVtbl->CreateDecoder(This,guidContainerFormat,pguidVendor,ppIDecoder);
  4926. }
  4927. static FORCEINLINE HRESULT IWICImagingFactory2_CreateEncoder(IWICImagingFactory2* This,REFGUID guidContainerFormat,const GUID *pguidVendor,IWICBitmapEncoder **ppIEncoder) {
  4928. return This->lpVtbl->CreateEncoder(This,guidContainerFormat,pguidVendor,ppIEncoder);
  4929. }
  4930. static FORCEINLINE HRESULT IWICImagingFactory2_CreatePalette(IWICImagingFactory2* This,IWICPalette **ppIPalette) {
  4931. return This->lpVtbl->CreatePalette(This,ppIPalette);
  4932. }
  4933. static FORCEINLINE HRESULT IWICImagingFactory2_CreateFormatConverter(IWICImagingFactory2* This,IWICFormatConverter **ppIFormatConverter) {
  4934. return This->lpVtbl->CreateFormatConverter(This,ppIFormatConverter);
  4935. }
  4936. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapScaler(IWICImagingFactory2* This,IWICBitmapScaler **ppIBitmapScaler) {
  4937. return This->lpVtbl->CreateBitmapScaler(This,ppIBitmapScaler);
  4938. }
  4939. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapClipper(IWICImagingFactory2* This,IWICBitmapClipper **ppIBitmapClipper) {
  4940. return This->lpVtbl->CreateBitmapClipper(This,ppIBitmapClipper);
  4941. }
  4942. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFlipRotator(IWICImagingFactory2* This,IWICBitmapFlipRotator **ppIBitmapFlipRotator) {
  4943. return This->lpVtbl->CreateBitmapFlipRotator(This,ppIBitmapFlipRotator);
  4944. }
  4945. static FORCEINLINE HRESULT IWICImagingFactory2_CreateStream(IWICImagingFactory2* This,IWICStream **ppIWICStream) {
  4946. return This->lpVtbl->CreateStream(This,ppIWICStream);
  4947. }
  4948. static FORCEINLINE HRESULT IWICImagingFactory2_CreateColorContext(IWICImagingFactory2* This,IWICColorContext **ppIWICColorContext) {
  4949. return This->lpVtbl->CreateColorContext(This,ppIWICColorContext);
  4950. }
  4951. static FORCEINLINE HRESULT IWICImagingFactory2_CreateColorTransformer(IWICImagingFactory2* This,IWICColorTransform **ppIWICColorTransform) {
  4952. return This->lpVtbl->CreateColorTransformer(This,ppIWICColorTransform);
  4953. }
  4954. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmap(IWICImagingFactory2* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
  4955. return This->lpVtbl->CreateBitmap(This,uiWidth,uiHeight,pixelFormat,option,ppIBitmap);
  4956. }
  4957. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFromSource(IWICImagingFactory2* This,IWICBitmapSource *piBitmapSource,WICBitmapCreateCacheOption option,IWICBitmap **ppIBitmap) {
  4958. return This->lpVtbl->CreateBitmapFromSource(This,piBitmapSource,option,ppIBitmap);
  4959. }
  4960. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFromSourceRect(IWICImagingFactory2* This,IWICBitmapSource *piBitmapSource,UINT x,UINT y,UINT width,UINT height,IWICBitmap **ppIBitmap) {
  4961. return This->lpVtbl->CreateBitmapFromSourceRect(This,piBitmapSource,x,y,width,height,ppIBitmap);
  4962. }
  4963. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFromMemory(IWICImagingFactory2* This,UINT uiWidth,UINT uiHeight,REFWICPixelFormatGUID pixelFormat,UINT cbStride,UINT cbBufferSize,BYTE *pbBuffer,IWICBitmap **ppIBitmap) {
  4964. return This->lpVtbl->CreateBitmapFromMemory(This,uiWidth,uiHeight,pixelFormat,cbStride,cbBufferSize,pbBuffer,ppIBitmap);
  4965. }
  4966. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFromHBITMAP(IWICImagingFactory2* This,HBITMAP hBitmap,HPALETTE hPalette,WICBitmapAlphaChannelOption options,IWICBitmap **ppIBitmap) {
  4967. return This->lpVtbl->CreateBitmapFromHBITMAP(This,hBitmap,hPalette,options,ppIBitmap);
  4968. }
  4969. static FORCEINLINE HRESULT IWICImagingFactory2_CreateBitmapFromHICON(IWICImagingFactory2* This,HICON hIcon,IWICBitmap **ppIBitmap) {
  4970. return This->lpVtbl->CreateBitmapFromHICON(This,hIcon,ppIBitmap);
  4971. }
  4972. static FORCEINLINE HRESULT IWICImagingFactory2_CreateComponentEnumerator(IWICImagingFactory2* This,DWORD componentTypes,DWORD options,IEnumUnknown **ppIEnumUnknown) {
  4973. return This->lpVtbl->CreateComponentEnumerator(This,componentTypes,options,ppIEnumUnknown);
  4974. }
  4975. static FORCEINLINE HRESULT IWICImagingFactory2_CreateFastMetadataEncoderFromDecoder(IWICImagingFactory2* This,IWICBitmapDecoder *pIDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
  4976. return This->lpVtbl->CreateFastMetadataEncoderFromDecoder(This,pIDecoder,ppIFastEncoder);
  4977. }
  4978. static FORCEINLINE HRESULT IWICImagingFactory2_CreateFastMetadataEncoderFromFrameDecode(IWICImagingFactory2* This,IWICBitmapFrameDecode *pIFrameDecoder,IWICFastMetadataEncoder **ppIFastEncoder) {
  4979. return This->lpVtbl->CreateFastMetadataEncoderFromFrameDecode(This,pIFrameDecoder,ppIFastEncoder);
  4980. }
  4981. static FORCEINLINE HRESULT IWICImagingFactory2_CreateQueryWriter(IWICImagingFactory2* This,REFGUID guidMetadataFormat,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
  4982. return This->lpVtbl->CreateQueryWriter(This,guidMetadataFormat,pguidVendor,ppIQueryWriter);
  4983. }
  4984. static FORCEINLINE HRESULT IWICImagingFactory2_CreateQueryWriterFromReader(IWICImagingFactory2* This,IWICMetadataQueryReader *pIQueryReader,const GUID *pguidVendor,IWICMetadataQueryWriter **ppIQueryWriter) {
  4985. return This->lpVtbl->CreateQueryWriterFromReader(This,pIQueryReader,pguidVendor,ppIQueryWriter);
  4986. }
  4987. /*** IWICImagingFactory2 methods ***/
  4988. static FORCEINLINE HRESULT IWICImagingFactory2_CreateImageEncoder(IWICImagingFactory2* This,ID2D1Device *device,IWICImageEncoder **encoder) {
  4989. return This->lpVtbl->CreateImageEncoder(This,device,encoder);
  4990. }
  4991. #endif
  4992. #endif
  4993. #endif
  4994. #endif /* __IWICImagingFactory2_INTERFACE_DEFINED__ */
  4995. /*****************************************************************************
  4996. * IWICEnumMetadataItem interface
  4997. */
  4998. #ifndef __IWICEnumMetadataItem_INTERFACE_DEFINED__
  4999. #define __IWICEnumMetadataItem_INTERFACE_DEFINED__
  5000. DEFINE_GUID(IID_IWICEnumMetadataItem, 0xdc2bb46d, 0x3f07, 0x481e, 0x86,0x25, 0x22,0x0c,0x4a,0xed,0xbb,0x33);
  5001. #if defined(__cplusplus) && !defined(CINTERFACE)
  5002. MIDL_INTERFACE("dc2bb46d-3f07-481e-8625-220c4aedbb33")
  5003. IWICEnumMetadataItem : public IUnknown
  5004. {
  5005. virtual HRESULT STDMETHODCALLTYPE Next(
  5006. ULONG celt,
  5007. PROPVARIANT *rgeltSchema,
  5008. PROPVARIANT *rgeltId,
  5009. PROPVARIANT *rgeltValue,
  5010. ULONG *pceltFetched) = 0;
  5011. virtual HRESULT STDMETHODCALLTYPE Skip(
  5012. ULONG celt) = 0;
  5013. virtual HRESULT STDMETHODCALLTYPE Reset(
  5014. ) = 0;
  5015. virtual HRESULT STDMETHODCALLTYPE Clone(
  5016. IWICEnumMetadataItem **ppIEnumMetadataItem) = 0;
  5017. };
  5018. #ifdef __CRT_UUID_DECL
  5019. __CRT_UUID_DECL(IWICEnumMetadataItem, 0xdc2bb46d, 0x3f07, 0x481e, 0x86,0x25, 0x22,0x0c,0x4a,0xed,0xbb,0x33)
  5020. #endif
  5021. #else
  5022. typedef struct IWICEnumMetadataItemVtbl {
  5023. BEGIN_INTERFACE
  5024. /*** IUnknown methods ***/
  5025. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5026. IWICEnumMetadataItem *This,
  5027. REFIID riid,
  5028. void **ppvObject);
  5029. ULONG (STDMETHODCALLTYPE *AddRef)(
  5030. IWICEnumMetadataItem *This);
  5031. ULONG (STDMETHODCALLTYPE *Release)(
  5032. IWICEnumMetadataItem *This);
  5033. /*** IWICEnumMetadataItem methods ***/
  5034. HRESULT (STDMETHODCALLTYPE *Next)(
  5035. IWICEnumMetadataItem *This,
  5036. ULONG celt,
  5037. PROPVARIANT *rgeltSchema,
  5038. PROPVARIANT *rgeltId,
  5039. PROPVARIANT *rgeltValue,
  5040. ULONG *pceltFetched);
  5041. HRESULT (STDMETHODCALLTYPE *Skip)(
  5042. IWICEnumMetadataItem *This,
  5043. ULONG celt);
  5044. HRESULT (STDMETHODCALLTYPE *Reset)(
  5045. IWICEnumMetadataItem *This);
  5046. HRESULT (STDMETHODCALLTYPE *Clone)(
  5047. IWICEnumMetadataItem *This,
  5048. IWICEnumMetadataItem **ppIEnumMetadataItem);
  5049. END_INTERFACE
  5050. } IWICEnumMetadataItemVtbl;
  5051. interface IWICEnumMetadataItem {
  5052. CONST_VTBL IWICEnumMetadataItemVtbl* lpVtbl;
  5053. };
  5054. #ifdef COBJMACROS
  5055. #ifndef WIDL_C_INLINE_WRAPPERS
  5056. /*** IUnknown methods ***/
  5057. #define IWICEnumMetadataItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5058. #define IWICEnumMetadataItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  5059. #define IWICEnumMetadataItem_Release(This) (This)->lpVtbl->Release(This)
  5060. /*** IWICEnumMetadataItem methods ***/
  5061. #define IWICEnumMetadataItem_Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched) (This)->lpVtbl->Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched)
  5062. #define IWICEnumMetadataItem_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  5063. #define IWICEnumMetadataItem_Reset(This) (This)->lpVtbl->Reset(This)
  5064. #define IWICEnumMetadataItem_Clone(This,ppIEnumMetadataItem) (This)->lpVtbl->Clone(This,ppIEnumMetadataItem)
  5065. #else
  5066. /*** IUnknown methods ***/
  5067. static FORCEINLINE HRESULT IWICEnumMetadataItem_QueryInterface(IWICEnumMetadataItem* This,REFIID riid,void **ppvObject) {
  5068. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5069. }
  5070. static FORCEINLINE ULONG IWICEnumMetadataItem_AddRef(IWICEnumMetadataItem* This) {
  5071. return This->lpVtbl->AddRef(This);
  5072. }
  5073. static FORCEINLINE ULONG IWICEnumMetadataItem_Release(IWICEnumMetadataItem* This) {
  5074. return This->lpVtbl->Release(This);
  5075. }
  5076. /*** IWICEnumMetadataItem methods ***/
  5077. static FORCEINLINE HRESULT IWICEnumMetadataItem_Next(IWICEnumMetadataItem* This,ULONG celt,PROPVARIANT *rgeltSchema,PROPVARIANT *rgeltId,PROPVARIANT *rgeltValue,ULONG *pceltFetched) {
  5078. return This->lpVtbl->Next(This,celt,rgeltSchema,rgeltId,rgeltValue,pceltFetched);
  5079. }
  5080. static FORCEINLINE HRESULT IWICEnumMetadataItem_Skip(IWICEnumMetadataItem* This,ULONG celt) {
  5081. return This->lpVtbl->Skip(This,celt);
  5082. }
  5083. static FORCEINLINE HRESULT IWICEnumMetadataItem_Reset(IWICEnumMetadataItem* This) {
  5084. return This->lpVtbl->Reset(This);
  5085. }
  5086. static FORCEINLINE HRESULT IWICEnumMetadataItem_Clone(IWICEnumMetadataItem* This,IWICEnumMetadataItem **ppIEnumMetadataItem) {
  5087. return This->lpVtbl->Clone(This,ppIEnumMetadataItem);
  5088. }
  5089. #endif
  5090. #endif
  5091. #endif
  5092. #endif /* __IWICEnumMetadataItem_INTERFACE_DEFINED__ */
  5093. /*****************************************************************************
  5094. * IWICDdsDecoder interface
  5095. */
  5096. #ifndef __IWICDdsDecoder_INTERFACE_DEFINED__
  5097. #define __IWICDdsDecoder_INTERFACE_DEFINED__
  5098. DEFINE_GUID(IID_IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c);
  5099. #if defined(__cplusplus) && !defined(CINTERFACE)
  5100. MIDL_INTERFACE("409cd537-8532-40cb-9774-e2feb2df4e9c")
  5101. IWICDdsDecoder : public IUnknown
  5102. {
  5103. virtual HRESULT STDMETHODCALLTYPE GetParameters(
  5104. WICDdsParameters *parameters) = 0;
  5105. virtual HRESULT STDMETHODCALLTYPE GetFrame(
  5106. UINT arrayIndex,
  5107. UINT mipLevel,
  5108. UINT sliceIndex,
  5109. IWICBitmapFrameDecode **bitmapFrame) = 0;
  5110. };
  5111. #ifdef __CRT_UUID_DECL
  5112. __CRT_UUID_DECL(IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c)
  5113. #endif
  5114. #else
  5115. typedef struct IWICDdsDecoderVtbl {
  5116. BEGIN_INTERFACE
  5117. /*** IUnknown methods ***/
  5118. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5119. IWICDdsDecoder *This,
  5120. REFIID riid,
  5121. void **ppvObject);
  5122. ULONG (STDMETHODCALLTYPE *AddRef)(
  5123. IWICDdsDecoder *This);
  5124. ULONG (STDMETHODCALLTYPE *Release)(
  5125. IWICDdsDecoder *This);
  5126. /*** IWICDdsDecoder methods ***/
  5127. HRESULT (STDMETHODCALLTYPE *GetParameters)(
  5128. IWICDdsDecoder *This,
  5129. WICDdsParameters *parameters);
  5130. HRESULT (STDMETHODCALLTYPE *GetFrame)(
  5131. IWICDdsDecoder *This,
  5132. UINT arrayIndex,
  5133. UINT mipLevel,
  5134. UINT sliceIndex,
  5135. IWICBitmapFrameDecode **bitmapFrame);
  5136. END_INTERFACE
  5137. } IWICDdsDecoderVtbl;
  5138. interface IWICDdsDecoder {
  5139. CONST_VTBL IWICDdsDecoderVtbl* lpVtbl;
  5140. };
  5141. #ifdef COBJMACROS
  5142. #ifndef WIDL_C_INLINE_WRAPPERS
  5143. /*** IUnknown methods ***/
  5144. #define IWICDdsDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5145. #define IWICDdsDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  5146. #define IWICDdsDecoder_Release(This) (This)->lpVtbl->Release(This)
  5147. /*** IWICDdsDecoder methods ***/
  5148. #define IWICDdsDecoder_GetParameters(This,parameters) (This)->lpVtbl->GetParameters(This,parameters)
  5149. #define IWICDdsDecoder_GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame) (This)->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame)
  5150. #else
  5151. /*** IUnknown methods ***/
  5152. static FORCEINLINE HRESULT IWICDdsDecoder_QueryInterface(IWICDdsDecoder* This,REFIID riid,void **ppvObject) {
  5153. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5154. }
  5155. static FORCEINLINE ULONG IWICDdsDecoder_AddRef(IWICDdsDecoder* This) {
  5156. return This->lpVtbl->AddRef(This);
  5157. }
  5158. static FORCEINLINE ULONG IWICDdsDecoder_Release(IWICDdsDecoder* This) {
  5159. return This->lpVtbl->Release(This);
  5160. }
  5161. /*** IWICDdsDecoder methods ***/
  5162. static FORCEINLINE HRESULT IWICDdsDecoder_GetParameters(IWICDdsDecoder* This,WICDdsParameters *parameters) {
  5163. return This->lpVtbl->GetParameters(This,parameters);
  5164. }
  5165. static FORCEINLINE HRESULT IWICDdsDecoder_GetFrame(IWICDdsDecoder* This,UINT arrayIndex,UINT mipLevel,UINT sliceIndex,IWICBitmapFrameDecode **bitmapFrame) {
  5166. return This->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame);
  5167. }
  5168. #endif
  5169. #endif
  5170. #endif
  5171. #endif /* __IWICDdsDecoder_INTERFACE_DEFINED__ */
  5172. /*****************************************************************************
  5173. * IWICDdsEncoder interface
  5174. */
  5175. #ifndef __IWICDdsEncoder_INTERFACE_DEFINED__
  5176. #define __IWICDdsEncoder_INTERFACE_DEFINED__
  5177. DEFINE_GUID(IID_IWICDdsEncoder, 0x5cacdb4c, 0x407e, 0x41b3, 0xb9,0x36, 0xd0,0xf0,0x10,0xcd,0x67,0x32);
  5178. #if defined(__cplusplus) && !defined(CINTERFACE)
  5179. MIDL_INTERFACE("5cacdb4c-407e-41b3-b936-d0f010cd6732")
  5180. IWICDdsEncoder : public IUnknown
  5181. {
  5182. virtual HRESULT STDMETHODCALLTYPE SetParameters(
  5183. WICDdsParameters *parameters) = 0;
  5184. virtual HRESULT STDMETHODCALLTYPE GetParameters(
  5185. WICDdsParameters *parameters) = 0;
  5186. virtual HRESULT STDMETHODCALLTYPE CreateNewFrame(
  5187. IWICBitmapFrameEncode **frameEncode,
  5188. UINT *arrayIndex,
  5189. UINT *mipLevel,
  5190. UINT *sliceIndex) = 0;
  5191. };
  5192. #ifdef __CRT_UUID_DECL
  5193. __CRT_UUID_DECL(IWICDdsEncoder, 0x5cacdb4c, 0x407e, 0x41b3, 0xb9,0x36, 0xd0,0xf0,0x10,0xcd,0x67,0x32)
  5194. #endif
  5195. #else
  5196. typedef struct IWICDdsEncoderVtbl {
  5197. BEGIN_INTERFACE
  5198. /*** IUnknown methods ***/
  5199. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5200. IWICDdsEncoder *This,
  5201. REFIID riid,
  5202. void **ppvObject);
  5203. ULONG (STDMETHODCALLTYPE *AddRef)(
  5204. IWICDdsEncoder *This);
  5205. ULONG (STDMETHODCALLTYPE *Release)(
  5206. IWICDdsEncoder *This);
  5207. /*** IWICDdsEncoder methods ***/
  5208. HRESULT (STDMETHODCALLTYPE *SetParameters)(
  5209. IWICDdsEncoder *This,
  5210. WICDdsParameters *parameters);
  5211. HRESULT (STDMETHODCALLTYPE *GetParameters)(
  5212. IWICDdsEncoder *This,
  5213. WICDdsParameters *parameters);
  5214. HRESULT (STDMETHODCALLTYPE *CreateNewFrame)(
  5215. IWICDdsEncoder *This,
  5216. IWICBitmapFrameEncode **frameEncode,
  5217. UINT *arrayIndex,
  5218. UINT *mipLevel,
  5219. UINT *sliceIndex);
  5220. END_INTERFACE
  5221. } IWICDdsEncoderVtbl;
  5222. interface IWICDdsEncoder {
  5223. CONST_VTBL IWICDdsEncoderVtbl* lpVtbl;
  5224. };
  5225. #ifdef COBJMACROS
  5226. #ifndef WIDL_C_INLINE_WRAPPERS
  5227. /*** IUnknown methods ***/
  5228. #define IWICDdsEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5229. #define IWICDdsEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  5230. #define IWICDdsEncoder_Release(This) (This)->lpVtbl->Release(This)
  5231. /*** IWICDdsEncoder methods ***/
  5232. #define IWICDdsEncoder_SetParameters(This,parameters) (This)->lpVtbl->SetParameters(This,parameters)
  5233. #define IWICDdsEncoder_GetParameters(This,parameters) (This)->lpVtbl->GetParameters(This,parameters)
  5234. #define IWICDdsEncoder_CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex) (This)->lpVtbl->CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex)
  5235. #else
  5236. /*** IUnknown methods ***/
  5237. static FORCEINLINE HRESULT IWICDdsEncoder_QueryInterface(IWICDdsEncoder* This,REFIID riid,void **ppvObject) {
  5238. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5239. }
  5240. static FORCEINLINE ULONG IWICDdsEncoder_AddRef(IWICDdsEncoder* This) {
  5241. return This->lpVtbl->AddRef(This);
  5242. }
  5243. static FORCEINLINE ULONG IWICDdsEncoder_Release(IWICDdsEncoder* This) {
  5244. return This->lpVtbl->Release(This);
  5245. }
  5246. /*** IWICDdsEncoder methods ***/
  5247. static FORCEINLINE HRESULT IWICDdsEncoder_SetParameters(IWICDdsEncoder* This,WICDdsParameters *parameters) {
  5248. return This->lpVtbl->SetParameters(This,parameters);
  5249. }
  5250. static FORCEINLINE HRESULT IWICDdsEncoder_GetParameters(IWICDdsEncoder* This,WICDdsParameters *parameters) {
  5251. return This->lpVtbl->GetParameters(This,parameters);
  5252. }
  5253. static FORCEINLINE HRESULT IWICDdsEncoder_CreateNewFrame(IWICDdsEncoder* This,IWICBitmapFrameEncode **frameEncode,UINT *arrayIndex,UINT *mipLevel,UINT *sliceIndex) {
  5254. return This->lpVtbl->CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex);
  5255. }
  5256. #endif
  5257. #endif
  5258. #endif
  5259. #endif /* __IWICDdsEncoder_INTERFACE_DEFINED__ */
  5260. /*****************************************************************************
  5261. * IWICDdsFrameDecode interface
  5262. */
  5263. #ifndef __IWICDdsFrameDecode_INTERFACE_DEFINED__
  5264. #define __IWICDdsFrameDecode_INTERFACE_DEFINED__
  5265. DEFINE_GUID(IID_IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64);
  5266. #if defined(__cplusplus) && !defined(CINTERFACE)
  5267. MIDL_INTERFACE("3d4c0c61-18a4-41e4-bd80-481a4fc9f464")
  5268. IWICDdsFrameDecode : public IUnknown
  5269. {
  5270. virtual HRESULT STDMETHODCALLTYPE GetSizeInBlocks(
  5271. UINT *widthInBlocks,
  5272. UINT *heightInBlocks) = 0;
  5273. virtual HRESULT STDMETHODCALLTYPE GetFormatInfo(
  5274. WICDdsFormatInfo *formatInfo) = 0;
  5275. virtual HRESULT STDMETHODCALLTYPE CopyBlocks(
  5276. const WICRect *boundsInBlocks,
  5277. UINT stride,
  5278. UINT bufferSize,
  5279. BYTE *buffer) = 0;
  5280. };
  5281. #ifdef __CRT_UUID_DECL
  5282. __CRT_UUID_DECL(IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64)
  5283. #endif
  5284. #else
  5285. typedef struct IWICDdsFrameDecodeVtbl {
  5286. BEGIN_INTERFACE
  5287. /*** IUnknown methods ***/
  5288. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5289. IWICDdsFrameDecode *This,
  5290. REFIID riid,
  5291. void **ppvObject);
  5292. ULONG (STDMETHODCALLTYPE *AddRef)(
  5293. IWICDdsFrameDecode *This);
  5294. ULONG (STDMETHODCALLTYPE *Release)(
  5295. IWICDdsFrameDecode *This);
  5296. /*** IWICDdsFrameDecode methods ***/
  5297. HRESULT (STDMETHODCALLTYPE *GetSizeInBlocks)(
  5298. IWICDdsFrameDecode *This,
  5299. UINT *widthInBlocks,
  5300. UINT *heightInBlocks);
  5301. HRESULT (STDMETHODCALLTYPE *GetFormatInfo)(
  5302. IWICDdsFrameDecode *This,
  5303. WICDdsFormatInfo *formatInfo);
  5304. HRESULT (STDMETHODCALLTYPE *CopyBlocks)(
  5305. IWICDdsFrameDecode *This,
  5306. const WICRect *boundsInBlocks,
  5307. UINT stride,
  5308. UINT bufferSize,
  5309. BYTE *buffer);
  5310. END_INTERFACE
  5311. } IWICDdsFrameDecodeVtbl;
  5312. interface IWICDdsFrameDecode {
  5313. CONST_VTBL IWICDdsFrameDecodeVtbl* lpVtbl;
  5314. };
  5315. #ifdef COBJMACROS
  5316. #ifndef WIDL_C_INLINE_WRAPPERS
  5317. /*** IUnknown methods ***/
  5318. #define IWICDdsFrameDecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5319. #define IWICDdsFrameDecode_AddRef(This) (This)->lpVtbl->AddRef(This)
  5320. #define IWICDdsFrameDecode_Release(This) (This)->lpVtbl->Release(This)
  5321. /*** IWICDdsFrameDecode methods ***/
  5322. #define IWICDdsFrameDecode_GetSizeInBlocks(This,widthInBlocks,heightInBlocks) (This)->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks)
  5323. #define IWICDdsFrameDecode_GetFormatInfo(This,formatInfo) (This)->lpVtbl->GetFormatInfo(This,formatInfo)
  5324. #define IWICDdsFrameDecode_CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer) (This)->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer)
  5325. #else
  5326. /*** IUnknown methods ***/
  5327. static FORCEINLINE HRESULT IWICDdsFrameDecode_QueryInterface(IWICDdsFrameDecode* This,REFIID riid,void **ppvObject) {
  5328. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5329. }
  5330. static FORCEINLINE ULONG IWICDdsFrameDecode_AddRef(IWICDdsFrameDecode* This) {
  5331. return This->lpVtbl->AddRef(This);
  5332. }
  5333. static FORCEINLINE ULONG IWICDdsFrameDecode_Release(IWICDdsFrameDecode* This) {
  5334. return This->lpVtbl->Release(This);
  5335. }
  5336. /*** IWICDdsFrameDecode methods ***/
  5337. static FORCEINLINE HRESULT IWICDdsFrameDecode_GetSizeInBlocks(IWICDdsFrameDecode* This,UINT *widthInBlocks,UINT *heightInBlocks) {
  5338. return This->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks);
  5339. }
  5340. static FORCEINLINE HRESULT IWICDdsFrameDecode_GetFormatInfo(IWICDdsFrameDecode* This,WICDdsFormatInfo *formatInfo) {
  5341. return This->lpVtbl->GetFormatInfo(This,formatInfo);
  5342. }
  5343. static FORCEINLINE HRESULT IWICDdsFrameDecode_CopyBlocks(IWICDdsFrameDecode* This,const WICRect *boundsInBlocks,UINT stride,UINT bufferSize,BYTE *buffer) {
  5344. return This->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer);
  5345. }
  5346. #endif
  5347. #endif
  5348. #endif
  5349. #endif /* __IWICDdsFrameDecode_INTERFACE_DEFINED__ */
  5350. /*****************************************************************************
  5351. * IWICWineDecoder interface
  5352. */
  5353. #ifndef __IWICWineDecoder_INTERFACE_DEFINED__
  5354. #define __IWICWineDecoder_INTERFACE_DEFINED__
  5355. DEFINE_GUID(IID_IWICWineDecoder, 0xb9bd430d, 0x28a8, 0x41d3, 0xa1,0xf5, 0xf3,0x6e,0xe0,0x28,0x40,0xbf);
  5356. #if defined(__cplusplus) && !defined(CINTERFACE)
  5357. MIDL_INTERFACE("b9bd430d-28a8-41d3-a1f5-f36ee02840bf")
  5358. IWICWineDecoder : public IUnknown
  5359. {
  5360. virtual HRESULT STDMETHODCALLTYPE Initialize(
  5361. IStream *stream,
  5362. WICDecodeOptions options) = 0;
  5363. };
  5364. #ifdef __CRT_UUID_DECL
  5365. __CRT_UUID_DECL(IWICWineDecoder, 0xb9bd430d, 0x28a8, 0x41d3, 0xa1,0xf5, 0xf3,0x6e,0xe0,0x28,0x40,0xbf)
  5366. #endif
  5367. #else
  5368. typedef struct IWICWineDecoderVtbl {
  5369. BEGIN_INTERFACE
  5370. /*** IUnknown methods ***/
  5371. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  5372. IWICWineDecoder *This,
  5373. REFIID riid,
  5374. void **ppvObject);
  5375. ULONG (STDMETHODCALLTYPE *AddRef)(
  5376. IWICWineDecoder *This);
  5377. ULONG (STDMETHODCALLTYPE *Release)(
  5378. IWICWineDecoder *This);
  5379. /*** IWICWineDecoder methods ***/
  5380. HRESULT (STDMETHODCALLTYPE *Initialize)(
  5381. IWICWineDecoder *This,
  5382. IStream *stream,
  5383. WICDecodeOptions options);
  5384. END_INTERFACE
  5385. } IWICWineDecoderVtbl;
  5386. interface IWICWineDecoder {
  5387. CONST_VTBL IWICWineDecoderVtbl* lpVtbl;
  5388. };
  5389. #ifdef COBJMACROS
  5390. #ifndef WIDL_C_INLINE_WRAPPERS
  5391. /*** IUnknown methods ***/
  5392. #define IWICWineDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  5393. #define IWICWineDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  5394. #define IWICWineDecoder_Release(This) (This)->lpVtbl->Release(This)
  5395. /*** IWICWineDecoder methods ***/
  5396. #define IWICWineDecoder_Initialize(This,stream,options) (This)->lpVtbl->Initialize(This,stream,options)
  5397. #else
  5398. /*** IUnknown methods ***/
  5399. static FORCEINLINE HRESULT IWICWineDecoder_QueryInterface(IWICWineDecoder* This,REFIID riid,void **ppvObject) {
  5400. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  5401. }
  5402. static FORCEINLINE ULONG IWICWineDecoder_AddRef(IWICWineDecoder* This) {
  5403. return This->lpVtbl->AddRef(This);
  5404. }
  5405. static FORCEINLINE ULONG IWICWineDecoder_Release(IWICWineDecoder* This) {
  5406. return This->lpVtbl->Release(This);
  5407. }
  5408. /*** IWICWineDecoder methods ***/
  5409. static FORCEINLINE HRESULT IWICWineDecoder_Initialize(IWICWineDecoder* This,IStream *stream,WICDecodeOptions options) {
  5410. return This->lpVtbl->Initialize(This,stream,options);
  5411. }
  5412. #endif
  5413. #endif
  5414. #endif
  5415. #endif /* __IWICWineDecoder_INTERFACE_DEFINED__ */
  5416. HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);
  5417. HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);
  5418. HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);
  5419. HRESULT WINAPI WICMapGuidToShortName(REFGUID,UINT,WCHAR *,UINT *);
  5420. HRESULT WINAPI WICMapShortNameToGuid(PCWSTR,GUID *);
  5421. HRESULT WINAPI WICMapSchemaToName(REFGUID,LPWSTR,UINT,WCHAR *,UINT *);
  5422. DEFINE_GUID(CLSID_WICBmpDecoder, 0x6b462062,0x7cbf,0x400d,0x9f,0xdb,0x81,0x3d,0xd1,0x0f,0x27,0x78);
  5423. DEFINE_GUID(CLSID_WICPngDecoder, 0x389ea17b,0x5078,0x4cde,0xb6,0xef,0x25,0xc1,0x51,0x75,0xc7,0x51);
  5424. DEFINE_GUID(CLSID_WICPngDecoder1, 0x389ea17b,0x5078,0x4cde,0xb6,0xef,0x25,0xc1,0x51,0x75,0xc7,0x51);
  5425. DEFINE_GUID(CLSID_WICPngDecoder2, 0xe018945b,0xaa86,0x4008,0x9b,0xd4,0x67,0x77,0xa1,0xe4,0x0c,0x11);
  5426. DEFINE_GUID(CLSID_WICIcoDecoder, 0xc61bfcdf,0x2e0f,0x4aad,0xa8,0xd7,0xe0,0x6b,0xaf,0xeb,0xcd,0xfe);
  5427. DEFINE_GUID(CLSID_WICJpegDecoder, 0x9456a480,0xe88b,0x43ea,0x9e,0x73,0x0b,0x2d,0x9b,0x71,0xb1,0xca);
  5428. DEFINE_GUID(CLSID_WICGifDecoder, 0x381dda3c,0x9ce9,0x4834,0xa2,0x3e,0x1f,0x98,0xf8,0xfc,0x52,0xbe);
  5429. DEFINE_GUID(CLSID_WICTiffDecoder, 0xb54e85d9,0xfe23,0x499f,0x8b,0x88,0x6a,0xce,0xa7,0x13,0x75,0x2b);
  5430. DEFINE_GUID(CLSID_WICWmpDecoder, 0xa26cec36,0x234c,0x4950,0xae,0x16,0xe3,0x4a,0xac,0xe7,0x1d,0x0d);
  5431. DEFINE_GUID(CLSID_WICDdsDecoder, 0x9053699f,0xa341,0x429d,0x9e,0x90,0xee,0x43,0x7c,0xf8,0x0c,0x73);
  5432. DEFINE_GUID(CLSID_WICBmpEncoder, 0x69be8bb4,0xd66d,0x47c8,0x86,0x5a,0xed,0x15,0x89,0x43,0x37,0x82);
  5433. DEFINE_GUID(CLSID_WICPngEncoder, 0x27949969,0x876a,0x41d7,0x94,0x47,0x56,0x8f,0x6a,0x35,0xa4,0xdc);
  5434. DEFINE_GUID(CLSID_WICJpegEncoder, 0x1a34f5c1,0x4a5a,0x46dc,0xb6,0x44,0x1f,0x45,0x67,0xe7,0xa6,0x76);
  5435. DEFINE_GUID(CLSID_WICGifEncoder, 0x114f5598,0x0b22,0x40a0,0x86,0xa1,0xc8,0x3e,0xa4,0x95,0xad,0xbd);
  5436. DEFINE_GUID(CLSID_WICTiffEncoder, 0x0131be10,0x2001,0x4c5f,0xa9,0xb0,0xcc,0x88,0xfa,0xb6,0x4c,0xe8);
  5437. DEFINE_GUID(CLSID_WICWmpEncoder, 0xac4ce3cb,0xe1c1,0x44cd,0x82,0x15,0x5a,0x16,0x65,0x50,0x9e,0xc2);
  5438. DEFINE_GUID(CLSID_WICDdsEncoder, 0xa61dde94,0x66ce,0x4ac1,0x88,0x1b,0x71,0x68,0x05,0x88,0x89,0x5e);
  5439. DEFINE_GUID(CLSID_WICAdngDecoder, 0x981d9411,0x909e,0x42a7,0x8f,0x5d,0xa7,0x47,0xff,0x05,0x2e,0xdb);
  5440. DEFINE_GUID(CLSID_WICJpegQualcommPhoneEncoder, 0x68ed5c62,0xf534,0x4979,0xb2,0xb3,0x68,0x6a,0x12,0xb2,0xb3,0x4c);
  5441. DEFINE_GUID(CLSID_WICHeifDecoder, 0xe9a4a80a,0x44fe,0x4de4,0x89,0x71,0x71,0x50,0xb1,0x0a,0x51,0x99);
  5442. DEFINE_GUID(CLSID_WICHeifEncoder, 0x0dbecec1,0x9eb3,0x4860,0x9c,0x6f,0xdd,0xbe,0x86,0x63,0x45,0x75);
  5443. DEFINE_GUID(CLSID_WICWebpDecoder, 0x7693e886,0x51c9,0x4070,0x84,0x19,0x9f,0x70,0x73,0x8e,0xc8,0xfa);
  5444. DEFINE_GUID(CLSID_WICRAWDecoder, 0x41945702,0x8302,0x44a6,0x94,0x45,0xac,0x98,0xe8,0xaf,0xa0,0x86);
  5445. DEFINE_GUID(CLSID_WICDefaultFormatConverter, 0x1a3f11dc,0xb514,0x4b17,0x8c,0x5f,0x21,0x54,0x51,0x38,0x52,0xf1);
  5446. DEFINE_GUID(CLSID_WICFormatConverterHighColor, 0xac75d454,0x9f37,0x48f8,0xb9,0x72,0x4e,0x19,0xbc,0x85,0x60,0x11);
  5447. DEFINE_GUID(CLSID_WICFormatConverterNChannel, 0xc17cabb2,0xd4a3,0x47d7,0xa5,0x57,0x33,0x9b,0x2e,0xfb,0xd4,0xf1);
  5448. DEFINE_GUID(CLSID_WICFormatConverterWMPhoto, 0x9cb5172b,0xd600,0x46ba,0xab,0x77,0x77,0xbb,0x7e,0x3a,0x00,0xd9);
  5449. DEFINE_GUID(CLSID_WICPlanarFormatConverter, 0x184132b8,0x32f8,0x4784,0x91,0x31,0xdd,0x72,0x24,0xb2,0x34,0x38);
  5450. DEFINE_GUID(GUID_ContainerFormatBmp, 0x0af1d87e,0xfcfe,0x4188,0xbd,0xeb,0xa7,0x90,0x64,0x71,0xcb,0xe3);
  5451. DEFINE_GUID(GUID_ContainerFormatPng, 0x1b7cfaf4,0x713f,0x473c,0xbb,0xcd,0x61,0x37,0x42,0x5f,0xae,0xaf);
  5452. DEFINE_GUID(GUID_ContainerFormatIco, 0xa3a860c4,0x338f,0x4c17,0x91,0x9a,0xfb,0xa4,0xb5,0x62,0x8f,0x21);
  5453. DEFINE_GUID(GUID_ContainerFormatJpeg, 0x19e4a5aa,0x5662,0x4fc5,0xa0,0xc0,0x17,0x58,0x02,0x8e,0x10,0x57);
  5454. DEFINE_GUID(GUID_ContainerFormatTiff, 0x163bcc30,0xe2e9,0x4f0b,0x96,0x1d,0xa3,0xe9,0xfd,0xb7,0x88,0xa3);
  5455. DEFINE_GUID(GUID_ContainerFormatGif, 0x1f8a5601,0x7d4d,0x4cbd,0x9c,0x82,0x1b,0xc8,0xd4,0xee,0xb9,0xa5);
  5456. DEFINE_GUID(GUID_ContainerFormatWmp, 0x57a37caa,0x367a,0x4540,0x91,0x6b,0xf1,0x83,0xc5,0x09,0x3a,0x4b);
  5457. DEFINE_GUID(GUID_ContainerFormatDds, 0x9967cb95,0x2e85,0x4ac8,0x8c,0xa2,0x83,0xd7,0xcc,0xd4,0x25,0xc9);
  5458. DEFINE_GUID(GUID_ContainerFormatAdng, 0xf3ff6d0d,0x38c0,0x41c4,0xb1,0xfe,0x1f,0x38,0x24,0xf1,0x7b,0x84);
  5459. DEFINE_GUID(GUID_ContainerFormatHeif, 0xe1e62521,0x6787,0x405b,0xa3,0x39,0x50,0x07,0x15,0xb5,0x76,0x3f);
  5460. DEFINE_GUID(GUID_ContainerFormatWebp, 0xe094b0e2,0x67f2,0x45b3,0xb0,0xea,0x11,0x53,0x37,0xca,0x7c,0xf3);
  5461. DEFINE_GUID(GUID_ContainerFormatRaw, 0xfe99ce60,0xf19c,0x433c,0xa3,0xae,0x00,0xac,0xef,0xa9,0xca,0x21);
  5462. DEFINE_GUID(GUID_VendorMicrosoft, 0xf0e749ca,0xedef,0x4589,0xa7,0x3a,0xee,0x0e,0x62,0x6a,0x2a,0x2b);
  5463. DEFINE_GUID(GUID_VendorMicrosoftBuiltIn, 0x257a30fd,0x6b6,0x462b,0xae,0xa4,0x63,0xf7,0xb,0x86,0xe5,0x33);
  5464. DEFINE_GUID(CLSID_WICImagingCategories, 0xfae3d380,0xfea4,0x4623,0x8c,0x75,0xc6,0xb6,0x11,0x10,0xb6,0x81);
  5465. DEFINE_GUID(CATID_WICBitmapDecoders, 0x7ed96837,0x96f0,0x4812,0xb2,0x11,0xf1,0x3c,0x24,0x11,0x7e,0xd3);
  5466. DEFINE_GUID(CATID_WICBitmapEncoders, 0xac757296,0x3522,0x4e11,0x98,0x62,0xc1,0x7b,0xe5,0xa1,0x76,0x7e);
  5467. DEFINE_GUID(CATID_WICFormatConverters, 0x7835eae8,0xbf14,0x49d1,0x93,0xce,0x53,0x3a,0x40,0x7b,0x22,0x48);
  5468. DEFINE_GUID(CATID_WICMetadataReader, 0x05af94d8,0x7174,0x4cd2,0xbe,0x4a,0x41,0x24,0xb8,0x0e,0xe4,0xb8);
  5469. DEFINE_GUID(CATID_WICMetadataWriter, 0xabe3b9a4,0x257d,0x4b97,0xbd,0x1a,0x29,0x4a,0xf4,0x96,0x22,0x2e);
  5470. DEFINE_GUID(CATID_WICPixelFormats, 0x2b46e70f,0xcda7,0x473e,0x89,0xf6,0xdc,0x96,0x30,0xa2,0x39,0x0b);
  5471. /* Begin additional prototypes for all interfaces */
  5472. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  5473. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  5474. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  5475. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  5476. ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
  5477. unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
  5478. unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
  5479. void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
  5480. ULONG __RPC_USER HBITMAP_UserSize (ULONG *, ULONG, HBITMAP *);
  5481. unsigned char * __RPC_USER HBITMAP_UserMarshal (ULONG *, unsigned char *, HBITMAP *);
  5482. unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
  5483. void __RPC_USER HBITMAP_UserFree (ULONG *, HBITMAP *);
  5484. ULONG __RPC_USER HPALETTE_UserSize (ULONG *, ULONG, HPALETTE *);
  5485. unsigned char * __RPC_USER HPALETTE_UserMarshal (ULONG *, unsigned char *, HPALETTE *);
  5486. unsigned char * __RPC_USER HPALETTE_UserUnmarshal(ULONG *, unsigned char *, HPALETTE *);
  5487. void __RPC_USER HPALETTE_UserFree (ULONG *, HPALETTE *);
  5488. ULONG __RPC_USER HICON_UserSize (ULONG *, ULONG, HICON *);
  5489. unsigned char * __RPC_USER HICON_UserMarshal (ULONG *, unsigned char *, HICON *);
  5490. unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
  5491. void __RPC_USER HICON_UserFree (ULONG *, HICON *);
  5492. /* End additional prototypes */
  5493. #ifdef __cplusplus
  5494. }
  5495. #endif
  5496. #endif /* __wincodec_h__ */