oaidl.h 182 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493
  1. /*** Autogenerated by WIDL 7.7 from include/oaidl.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 __oaidl_h__
  14. #define __oaidl_h__
  15. /* Forward declarations */
  16. #ifndef __ICreateTypeInfo_FWD_DEFINED__
  17. #define __ICreateTypeInfo_FWD_DEFINED__
  18. typedef interface ICreateTypeInfo ICreateTypeInfo;
  19. #ifdef __cplusplus
  20. interface ICreateTypeInfo;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __ICreateTypeInfo2_FWD_DEFINED__
  24. #define __ICreateTypeInfo2_FWD_DEFINED__
  25. typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
  26. #ifdef __cplusplus
  27. interface ICreateTypeInfo2;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __ICreateTypeLib_FWD_DEFINED__
  31. #define __ICreateTypeLib_FWD_DEFINED__
  32. typedef interface ICreateTypeLib ICreateTypeLib;
  33. #ifdef __cplusplus
  34. interface ICreateTypeLib;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __ICreateTypeLib2_FWD_DEFINED__
  38. #define __ICreateTypeLib2_FWD_DEFINED__
  39. typedef interface ICreateTypeLib2 ICreateTypeLib2;
  40. #ifdef __cplusplus
  41. interface ICreateTypeLib2;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IDispatch_FWD_DEFINED__
  45. #define __IDispatch_FWD_DEFINED__
  46. typedef interface IDispatch IDispatch;
  47. #ifdef __cplusplus
  48. interface IDispatch;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IEnumVARIANT_FWD_DEFINED__
  52. #define __IEnumVARIANT_FWD_DEFINED__
  53. typedef interface IEnumVARIANT IEnumVARIANT;
  54. #ifdef __cplusplus
  55. interface IEnumVARIANT;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __ITypeComp_FWD_DEFINED__
  59. #define __ITypeComp_FWD_DEFINED__
  60. typedef interface ITypeComp ITypeComp;
  61. #ifdef __cplusplus
  62. interface ITypeComp;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __ITypeInfo_FWD_DEFINED__
  66. #define __ITypeInfo_FWD_DEFINED__
  67. typedef interface ITypeInfo ITypeInfo;
  68. #ifdef __cplusplus
  69. interface ITypeInfo;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __ITypeInfo2_FWD_DEFINED__
  73. #define __ITypeInfo2_FWD_DEFINED__
  74. typedef interface ITypeInfo2 ITypeInfo2;
  75. #ifdef __cplusplus
  76. interface ITypeInfo2;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __ITypeLib_FWD_DEFINED__
  80. #define __ITypeLib_FWD_DEFINED__
  81. typedef interface ITypeLib ITypeLib;
  82. #ifdef __cplusplus
  83. interface ITypeLib;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __ITypeLib2_FWD_DEFINED__
  87. #define __ITypeLib2_FWD_DEFINED__
  88. typedef interface ITypeLib2 ITypeLib2;
  89. #ifdef __cplusplus
  90. interface ITypeLib2;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __ITypeChangeEvents_FWD_DEFINED__
  94. #define __ITypeChangeEvents_FWD_DEFINED__
  95. typedef interface ITypeChangeEvents ITypeChangeEvents;
  96. #ifdef __cplusplus
  97. interface ITypeChangeEvents;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IErrorInfo_FWD_DEFINED__
  101. #define __IErrorInfo_FWD_DEFINED__
  102. typedef interface IErrorInfo IErrorInfo;
  103. #ifdef __cplusplus
  104. interface IErrorInfo;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __ICreateErrorInfo_FWD_DEFINED__
  108. #define __ICreateErrorInfo_FWD_DEFINED__
  109. typedef interface ICreateErrorInfo ICreateErrorInfo;
  110. #ifdef __cplusplus
  111. interface ICreateErrorInfo;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __ISupportErrorInfo_FWD_DEFINED__
  115. #define __ISupportErrorInfo_FWD_DEFINED__
  116. typedef interface ISupportErrorInfo ISupportErrorInfo;
  117. #ifdef __cplusplus
  118. interface ISupportErrorInfo;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __ITypeFactory_FWD_DEFINED__
  122. #define __ITypeFactory_FWD_DEFINED__
  123. typedef interface ITypeFactory ITypeFactory;
  124. #ifdef __cplusplus
  125. interface ITypeFactory;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __ITypeMarshal_FWD_DEFINED__
  129. #define __ITypeMarshal_FWD_DEFINED__
  130. typedef interface ITypeMarshal ITypeMarshal;
  131. #ifdef __cplusplus
  132. interface ITypeMarshal;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IRecordInfo_FWD_DEFINED__
  136. #define __IRecordInfo_FWD_DEFINED__
  137. typedef interface IRecordInfo IRecordInfo;
  138. #ifdef __cplusplus
  139. interface IRecordInfo;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IErrorLog_FWD_DEFINED__
  143. #define __IErrorLog_FWD_DEFINED__
  144. typedef interface IErrorLog IErrorLog;
  145. #ifdef __cplusplus
  146. interface IErrorLog;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IPropertyBag_FWD_DEFINED__
  150. #define __IPropertyBag_FWD_DEFINED__
  151. typedef interface IPropertyBag IPropertyBag;
  152. #ifdef __cplusplus
  153. interface IPropertyBag;
  154. #endif /* __cplusplus */
  155. #endif
  156. /* Headers for imported files */
  157. #include <objidl.h>
  158. #ifdef __cplusplus
  159. extern "C" {
  160. #endif
  161. /**
  162. * This file is part of the mingw-w64 runtime package.
  163. * No warranty is given; refer to the file DISCLAIMER within this package.
  164. */
  165. #include <winapifamily.h>
  166. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  167. #ifndef __ICreateTypeInfo_FWD_DEFINED__
  168. #define __ICreateTypeInfo_FWD_DEFINED__
  169. typedef interface ICreateTypeInfo ICreateTypeInfo;
  170. #ifdef __cplusplus
  171. interface ICreateTypeInfo;
  172. #endif /* __cplusplus */
  173. #endif
  174. #ifndef __ICreateTypeInfo2_FWD_DEFINED__
  175. #define __ICreateTypeInfo2_FWD_DEFINED__
  176. typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
  177. #ifdef __cplusplus
  178. interface ICreateTypeInfo2;
  179. #endif /* __cplusplus */
  180. #endif
  181. #ifndef __ICreateTypeLib_FWD_DEFINED__
  182. #define __ICreateTypeLib_FWD_DEFINED__
  183. typedef interface ICreateTypeLib ICreateTypeLib;
  184. #ifdef __cplusplus
  185. interface ICreateTypeLib;
  186. #endif /* __cplusplus */
  187. #endif
  188. #ifndef __ICreateTypeLib2_FWD_DEFINED__
  189. #define __ICreateTypeLib2_FWD_DEFINED__
  190. typedef interface ICreateTypeLib2 ICreateTypeLib2;
  191. #ifdef __cplusplus
  192. interface ICreateTypeLib2;
  193. #endif /* __cplusplus */
  194. #endif
  195. #endif
  196. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  197. #ifndef __IDispatch_FWD_DEFINED__
  198. #define __IDispatch_FWD_DEFINED__
  199. typedef interface IDispatch IDispatch;
  200. #ifdef __cplusplus
  201. interface IDispatch;
  202. #endif /* __cplusplus */
  203. #endif
  204. #ifndef __IEnumVARIANT_FWD_DEFINED__
  205. #define __IEnumVARIANT_FWD_DEFINED__
  206. typedef interface IEnumVARIANT IEnumVARIANT;
  207. #ifdef __cplusplus
  208. interface IEnumVARIANT;
  209. #endif /* __cplusplus */
  210. #endif
  211. #ifndef __ITypeComp_FWD_DEFINED__
  212. #define __ITypeComp_FWD_DEFINED__
  213. typedef interface ITypeComp ITypeComp;
  214. #ifdef __cplusplus
  215. interface ITypeComp;
  216. #endif /* __cplusplus */
  217. #endif
  218. #endif
  219. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  220. #ifndef __ITypeInfo_FWD_DEFINED__
  221. #define __ITypeInfo_FWD_DEFINED__
  222. typedef interface ITypeInfo ITypeInfo;
  223. #ifdef __cplusplus
  224. interface ITypeInfo;
  225. #endif /* __cplusplus */
  226. #endif
  227. #ifndef __ITypeInfo2_FWD_DEFINED__
  228. #define __ITypeInfo2_FWD_DEFINED__
  229. typedef interface ITypeInfo2 ITypeInfo2;
  230. #ifdef __cplusplus
  231. interface ITypeInfo2;
  232. #endif /* __cplusplus */
  233. #endif
  234. #ifndef __ITypeLib_FWD_DEFINED__
  235. #define __ITypeLib_FWD_DEFINED__
  236. typedef interface ITypeLib ITypeLib;
  237. #ifdef __cplusplus
  238. interface ITypeLib;
  239. #endif /* __cplusplus */
  240. #endif
  241. #ifndef __ITypeLib2_FWD_DEFINED__
  242. #define __ITypeLib2_FWD_DEFINED__
  243. typedef interface ITypeLib2 ITypeLib2;
  244. #ifdef __cplusplus
  245. interface ITypeLib2;
  246. #endif /* __cplusplus */
  247. #endif
  248. #ifndef __ITypeChangeEvents_FWD_DEFINED__
  249. #define __ITypeChangeEvents_FWD_DEFINED__
  250. typedef interface ITypeChangeEvents ITypeChangeEvents;
  251. #ifdef __cplusplus
  252. interface ITypeChangeEvents;
  253. #endif /* __cplusplus */
  254. #endif
  255. #ifndef __IErrorInfo_FWD_DEFINED__
  256. #define __IErrorInfo_FWD_DEFINED__
  257. typedef interface IErrorInfo IErrorInfo;
  258. #ifdef __cplusplus
  259. interface IErrorInfo;
  260. #endif /* __cplusplus */
  261. #endif
  262. #ifndef __ICreateErrorInfo_FWD_DEFINED__
  263. #define __ICreateErrorInfo_FWD_DEFINED__
  264. typedef interface ICreateErrorInfo ICreateErrorInfo;
  265. #ifdef __cplusplus
  266. interface ICreateErrorInfo;
  267. #endif /* __cplusplus */
  268. #endif
  269. #ifndef __ISupportErrorInfo_FWD_DEFINED__
  270. #define __ISupportErrorInfo_FWD_DEFINED__
  271. typedef interface ISupportErrorInfo ISupportErrorInfo;
  272. #ifdef __cplusplus
  273. interface ISupportErrorInfo;
  274. #endif /* __cplusplus */
  275. #endif
  276. #ifndef __ITypeFactory_FWD_DEFINED__
  277. #define __ITypeFactory_FWD_DEFINED__
  278. typedef interface ITypeFactory ITypeFactory;
  279. #ifdef __cplusplus
  280. interface ITypeFactory;
  281. #endif /* __cplusplus */
  282. #endif
  283. #ifndef __ITypeMarshal_FWD_DEFINED__
  284. #define __ITypeMarshal_FWD_DEFINED__
  285. typedef interface ITypeMarshal ITypeMarshal;
  286. #ifdef __cplusplus
  287. interface ITypeMarshal;
  288. #endif /* __cplusplus */
  289. #endif
  290. #ifndef __IRecordInfo_FWD_DEFINED__
  291. #define __IRecordInfo_FWD_DEFINED__
  292. typedef interface IRecordInfo IRecordInfo;
  293. #ifdef __cplusplus
  294. interface IRecordInfo;
  295. #endif /* __cplusplus */
  296. #endif
  297. #endif
  298. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  299. /*****************************************************************************
  300. * IOleAutomationTypes interface (v1.0)
  301. */
  302. #ifndef __IOleAutomationTypes_INTERFACE_DEFINED__
  303. #define __IOleAutomationTypes_INTERFACE_DEFINED__
  304. extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec;
  305. extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec;
  306. typedef CY CURRENCY;
  307. typedef struct tagSAFEARRAYBOUND {
  308. ULONG cElements;
  309. LONG lLbound;
  310. } SAFEARRAYBOUND;
  311. typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND;
  312. typedef struct _wireVARIANT *wireVARIANT;
  313. typedef struct _wireBRECORD *wireBRECORD;
  314. typedef struct _wireSAFEARR_BSTR {
  315. ULONG Size;
  316. wireBSTR *aBstr;
  317. } SAFEARR_BSTR;
  318. typedef struct _wireSAFEARR_UNKNOWN {
  319. ULONG Size;
  320. IUnknown **apUnknown;
  321. } SAFEARR_UNKNOWN;
  322. typedef struct _wireSAFEARR_DISPATCH {
  323. ULONG Size;
  324. IDispatch **apDispatch;
  325. } SAFEARR_DISPATCH;
  326. typedef struct _wireSAFEARR_VARIANT {
  327. ULONG Size;
  328. wireVARIANT *aVariant;
  329. } SAFEARR_VARIANT;
  330. typedef struct _wireSAFEARR_BRECORD {
  331. ULONG Size;
  332. wireBRECORD *aRecord;
  333. } SAFEARR_BRECORD;
  334. typedef struct _wireSAFEARR_HAVEIID {
  335. ULONG Size;
  336. IUnknown **apUnknown;
  337. IID iid;
  338. } SAFEARR_HAVEIID;
  339. typedef enum tagSF_TYPE {
  340. SF_ERROR = VT_ERROR,
  341. SF_I1 = VT_I1,
  342. SF_I2 = VT_I2,
  343. SF_I4 = VT_I4,
  344. SF_I8 = VT_I8,
  345. SF_BSTR = VT_BSTR,
  346. SF_UNKNOWN = VT_UNKNOWN,
  347. SF_DISPATCH = VT_DISPATCH,
  348. SF_VARIANT = VT_VARIANT,
  349. SF_RECORD = VT_RECORD,
  350. SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
  351. } SF_TYPE;
  352. typedef struct _wireSAFEARRAY_UNION {
  353. ULONG sfType;
  354. union __WIDL_oaidl_generated_name_0000000E {
  355. SAFEARR_BSTR BstrStr;
  356. SAFEARR_UNKNOWN UnknownStr;
  357. SAFEARR_DISPATCH DispatchStr;
  358. SAFEARR_VARIANT VariantStr;
  359. SAFEARR_BRECORD RecordStr;
  360. SAFEARR_HAVEIID HaveIidStr;
  361. BYTE_SIZEDARR ByteStr;
  362. WORD_SIZEDARR WordStr;
  363. DWORD_SIZEDARR LongStr;
  364. HYPER_SIZEDARR HyperStr;
  365. } u;
  366. } SAFEARRAYUNION;
  367. typedef struct _wireSAFEARRAY {
  368. USHORT cDims;
  369. USHORT fFeatures;
  370. ULONG cbElements;
  371. ULONG cLocks;
  372. SAFEARRAYUNION uArrayStructs;
  373. SAFEARRAYBOUND rgsabound[1];
  374. } *wireSAFEARRAY;
  375. typedef wireSAFEARRAY *wirePSAFEARRAY;
  376. typedef struct tagSAFEARRAY {
  377. USHORT cDims;
  378. USHORT fFeatures;
  379. ULONG cbElements;
  380. ULONG cLocks;
  381. PVOID pvData;
  382. SAFEARRAYBOUND rgsabound[1];
  383. } SAFEARRAY;
  384. typedef SAFEARRAY *LPSAFEARRAY;
  385. #define FADF_AUTO (0x1)
  386. #define FADF_STATIC (0x2)
  387. #define FADF_EMBEDDED (0x4)
  388. #define FADF_FIXEDSIZE (0x10)
  389. #define FADF_RECORD (0x20)
  390. #define FADF_HAVEIID (0x40)
  391. #define FADF_HAVEVARTYPE (0x80)
  392. #define FADF_BSTR (0x100)
  393. #define FADF_UNKNOWN (0x200)
  394. #define FADF_DISPATCH (0x400)
  395. #define FADF_VARIANT (0x800)
  396. #define FADF_RESERVED (0xf008)
  397. /* Kludge for 3.0 release to disable new default-behavior.
  398. * For now we define _FORCENAMELESSUNION. For 4.0 this define
  399. * will be removed. */
  400. #ifndef _FORCENAMELESSUNION
  401. #define _FORCENAMELESSUNION 1
  402. #endif
  403. #if (__STDC__ && !defined(__cplusplus) && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (defined (_MSC_VER) && !defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION))
  404. #define __VARIANT_NAME_1 n1
  405. #define __VARIANT_NAME_2 n2
  406. #define __VARIANT_NAME_3 n3
  407. #define __VARIANT_NAME_4 brecVal
  408. #else
  409. #define __tagVARIANT
  410. #define __VARIANT_NAME_1
  411. #define __VARIANT_NAME_2
  412. #define __VARIANT_NAME_3
  413. #define __tagBRECORD
  414. #define __VARIANT_NAME_4
  415. #endif
  416. typedef struct tagVARIANT VARIANT;
  417. struct tagVARIANT {
  418. union {
  419. struct __tagVARIANT {
  420. VARTYPE vt;
  421. WORD wReserved1;
  422. WORD wReserved2;
  423. WORD wReserved3;
  424. union {
  425. LONGLONG llVal;
  426. LONG lVal;
  427. BYTE bVal;
  428. SHORT iVal;
  429. FLOAT fltVal;
  430. DOUBLE dblVal;
  431. VARIANT_BOOL boolVal;
  432. SCODE scode;
  433. CY cyVal;
  434. DATE date;
  435. BSTR bstrVal;
  436. IUnknown *punkVal;
  437. IDispatch *pdispVal;
  438. SAFEARRAY *parray;
  439. BYTE *pbVal;
  440. SHORT *piVal;
  441. LONG *plVal;
  442. LONGLONG *pllVal;
  443. FLOAT *pfltVal;
  444. DOUBLE *pdblVal;
  445. VARIANT_BOOL *pboolVal;
  446. SCODE *pscode;
  447. CY *pcyVal;
  448. DATE *pdate;
  449. BSTR *pbstrVal;
  450. IUnknown **ppunkVal;
  451. IDispatch **ppdispVal;
  452. SAFEARRAY **pparray;
  453. VARIANT *pvarVal;
  454. PVOID byref;
  455. CHAR cVal;
  456. USHORT uiVal;
  457. ULONG ulVal;
  458. ULONGLONG ullVal;
  459. INT intVal;
  460. UINT uintVal;
  461. DECIMAL *pdecVal;
  462. CHAR *pcVal;
  463. USHORT *puiVal;
  464. ULONG *pulVal;
  465. ULONGLONG *pullVal;
  466. INT *pintVal;
  467. UINT *puintVal;
  468. struct __tagBRECORD {
  469. PVOID pvRecord;
  470. IRecordInfo *pRecInfo;
  471. } __VARIANT_NAME_4;
  472. } __VARIANT_NAME_3;
  473. } __VARIANT_NAME_2;
  474. DECIMAL decVal;
  475. } __VARIANT_NAME_1;
  476. };
  477. typedef VARIANT *LPVARIANT;
  478. typedef VARIANT VARIANTARG;
  479. typedef VARIANT *LPVARIANTARG;
  480. #if 0
  481. typedef const VARIANT *REFVARIANT;
  482. #else
  483. #ifndef _REFVARIANT_DEFINED
  484. #define _REFVARIANT_DEFINED
  485. #ifdef __cplusplus
  486. #define REFVARIANT const VARIANT &
  487. #else
  488. #define REFVARIANT const VARIANT * __MIDL_CONST
  489. #endif
  490. #endif
  491. #endif
  492. struct _wireBRECORD {
  493. ULONG fFlags;
  494. ULONG clSize;
  495. IRecordInfo *pRecInfo;
  496. byte *pRecord;
  497. };
  498. struct _wireVARIANT {
  499. DWORD clSize;
  500. DWORD rpcReserved;
  501. USHORT vt;
  502. USHORT wReserved1;
  503. USHORT wReserved2;
  504. USHORT wReserved3;
  505. __C89_NAMELESS union {
  506. LONGLONG llVal;
  507. LONG lVal;
  508. BYTE bVal;
  509. SHORT iVal;
  510. FLOAT fltVal;
  511. DOUBLE dblVal;
  512. VARIANT_BOOL boolVal;
  513. SCODE scode;
  514. CY cyVal;
  515. DATE date;
  516. wireBSTR bstrVal;
  517. IUnknown *punkVal;
  518. IDispatch *pdispVal;
  519. wirePSAFEARRAY parray;
  520. wireBRECORD brecVal;
  521. BYTE *pbVal;
  522. SHORT *piVal;
  523. LONG *plVal;
  524. LONGLONG *pllVal;
  525. FLOAT *pfltVal;
  526. DOUBLE *pdblVal;
  527. VARIANT_BOOL *pboolVal;
  528. SCODE *pscode;
  529. CY *pcyVal;
  530. DATE *pdate;
  531. wireBSTR *pbstrVal;
  532. IUnknown **ppunkVal;
  533. IDispatch **ppdispVal;
  534. wirePSAFEARRAY *pparray;
  535. wireVARIANT *pvarVal;
  536. CHAR cVal;
  537. USHORT uiVal;
  538. ULONG ulVal;
  539. ULONGLONG ullVal;
  540. INT intVal;
  541. UINT uintVal;
  542. DECIMAL decVal;
  543. DECIMAL *pdecVal;
  544. CHAR *pcVal;
  545. USHORT *puiVal;
  546. ULONG *pulVal;
  547. ULONGLONG *pullVal;
  548. INT *pintVal;
  549. UINT *puintVal;
  550. } __C89_NAMELESSUNIONNAME;
  551. };
  552. typedef LONG DISPID;
  553. typedef DISPID MEMBERID;
  554. typedef DWORD HREFTYPE;
  555. typedef enum tagTYPEKIND {
  556. TKIND_ENUM = 0,
  557. TKIND_RECORD = 1,
  558. TKIND_MODULE = 2,
  559. TKIND_INTERFACE = 3,
  560. TKIND_DISPATCH = 4,
  561. TKIND_COCLASS = 5,
  562. TKIND_ALIAS = 6,
  563. TKIND_UNION = 7,
  564. TKIND_MAX = 8
  565. } TYPEKIND;
  566. typedef struct tagTYPEDESC {
  567. __C89_NAMELESS union {
  568. struct tagTYPEDESC *lptdesc;
  569. struct tagARRAYDESC *lpadesc;
  570. HREFTYPE hreftype;
  571. } __C89_NAMELESSUNIONNAME;
  572. VARTYPE vt;
  573. } TYPEDESC;
  574. typedef struct tagARRAYDESC {
  575. TYPEDESC tdescElem;
  576. USHORT cDims;
  577. SAFEARRAYBOUND rgbounds[1];
  578. } ARRAYDESC;
  579. typedef struct tagPARAMDESCEX {
  580. ULONG cBytes;
  581. VARIANTARG varDefaultValue;
  582. } PARAMDESCEX;
  583. typedef struct tagPARAMDESCEX *LPPARAMDESCEX;
  584. typedef struct tagPARAMDESC {
  585. LPPARAMDESCEX pparamdescex;
  586. USHORT wParamFlags;
  587. } PARAMDESC;
  588. typedef struct tagPARAMDESC *LPPARAMDESC;
  589. #define PARAMFLAG_NONE (0x0)
  590. #define PARAMFLAG_FIN (0x1)
  591. #define PARAMFLAG_FOUT (0x2)
  592. #define PARAMFLAG_FLCID (0x4)
  593. #define PARAMFLAG_FRETVAL (0x8)
  594. #define PARAMFLAG_FOPT (0x10)
  595. #define PARAMFLAG_FHASDEFAULT (0x20)
  596. #define PARAMFLAG_FHASCUSTDATA (0x40)
  597. typedef struct tagIDLDESC {
  598. ULONG_PTR dwReserved;
  599. USHORT wIDLFlags;
  600. } IDLDESC;
  601. typedef struct tagIDLDESC *LPIDLDESC;
  602. #define IDLFLAG_NONE (PARAMFLAG_NONE)
  603. #define IDLFLAG_FIN (PARAMFLAG_FIN)
  604. #define IDLFLAG_FOUT (PARAMFLAG_FOUT)
  605. #define IDLFLAG_FLCID (PARAMFLAG_FLCID)
  606. #define IDLFLAG_FRETVAL (PARAMFLAG_FRETVAL)
  607. #if 0
  608. typedef struct tagELEMDESC {
  609. TYPEDESC tdesc;
  610. PARAMDESC paramdesc;
  611. } ELEMDESC;
  612. #else
  613. typedef struct tagELEMDESC {
  614. TYPEDESC tdesc;
  615. __C89_NAMELESS union {
  616. IDLDESC idldesc;
  617. PARAMDESC paramdesc;
  618. } DUMMYUNIONNAME;
  619. } ELEMDESC,*LPELEMDESC;
  620. #endif
  621. typedef struct tagTYPEATTR {
  622. GUID guid;
  623. LCID lcid;
  624. DWORD dwReserved;
  625. MEMBERID memidConstructor;
  626. MEMBERID memidDestructor;
  627. LPOLESTR lpstrSchema;
  628. ULONG cbSizeInstance;
  629. TYPEKIND typekind;
  630. WORD cFuncs;
  631. WORD cVars;
  632. WORD cImplTypes;
  633. WORD cbSizeVft;
  634. WORD cbAlignment;
  635. WORD wTypeFlags;
  636. WORD wMajorVerNum;
  637. WORD wMinorVerNum;
  638. TYPEDESC tdescAlias;
  639. IDLDESC idldescType;
  640. } TYPEATTR;
  641. typedef struct tagTYPEATTR *LPTYPEATTR;
  642. typedef struct tagDISPPARAMS {
  643. VARIANTARG *rgvarg;
  644. DISPID *rgdispidNamedArgs;
  645. UINT cArgs;
  646. UINT cNamedArgs;
  647. } DISPPARAMS;
  648. #if 0
  649. typedef struct tagEXCEPINFO {
  650. WORD wCode;
  651. WORD wReserved;
  652. BSTR bstrSource;
  653. BSTR bstrDescription;
  654. BSTR bstrHelpFile;
  655. DWORD dwHelpContext;
  656. ULONG_PTR pvReserved;
  657. ULONG_PTR pfnDeferredFillIn;
  658. SCODE scode;
  659. } EXCEPINFO;
  660. #else
  661. typedef struct tagEXCEPINFO {
  662. WORD wCode;
  663. WORD wReserved;
  664. BSTR bstrSource;
  665. BSTR bstrDescription;
  666. BSTR bstrHelpFile;
  667. DWORD dwHelpContext;
  668. PVOID pvReserved;
  669. HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
  670. SCODE scode;
  671. } EXCEPINFO, *LPEXCEPINFO;
  672. #endif
  673. typedef enum tagCALLCONV {
  674. CC_FASTCALL = 0,
  675. CC_CDECL = 1,
  676. CC_MSCPASCAL = 2,
  677. CC_PASCAL = CC_MSCPASCAL,
  678. CC_MACPASCAL = 3,
  679. CC_STDCALL = 4,
  680. CC_FPFASTCALL = 5,
  681. CC_SYSCALL = 6,
  682. CC_MPWCDECL = 7,
  683. CC_MPWPASCAL = 8,
  684. CC_MAX = 9
  685. } CALLCONV;
  686. typedef enum tagFUNCKIND {
  687. FUNC_VIRTUAL = 0,
  688. FUNC_PUREVIRTUAL = 1,
  689. FUNC_NONVIRTUAL = 2,
  690. FUNC_STATIC = 3,
  691. FUNC_DISPATCH = 4
  692. } FUNCKIND;
  693. typedef enum tagINVOKEKIND {
  694. INVOKE_FUNC = 1,
  695. INVOKE_PROPERTYGET = 2,
  696. INVOKE_PROPERTYPUT = 4,
  697. INVOKE_PROPERTYPUTREF = 8
  698. } INVOKEKIND;
  699. typedef struct tagFUNCDESC {
  700. MEMBERID memid;
  701. SCODE *lprgscode;
  702. ELEMDESC *lprgelemdescParam;
  703. FUNCKIND funckind;
  704. INVOKEKIND invkind;
  705. CALLCONV callconv;
  706. SHORT cParams;
  707. SHORT cParamsOpt;
  708. SHORT oVft;
  709. SHORT cScodes;
  710. ELEMDESC elemdescFunc;
  711. WORD wFuncFlags;
  712. } FUNCDESC;
  713. typedef struct tagFUNCDESC *LPFUNCDESC;
  714. typedef enum tagVARKIND {
  715. VAR_PERINSTANCE = 0,
  716. VAR_STATIC = 1,
  717. VAR_CONST = 2,
  718. VAR_DISPATCH = 3
  719. } VARKIND;
  720. #define IMPLTYPEFLAG_FDEFAULT (0x1)
  721. #define IMPLTYPEFLAG_FSOURCE (0x2)
  722. #define IMPLTYPEFLAG_FRESTRICTED (0x4)
  723. #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
  724. typedef struct tagVARDESC {
  725. MEMBERID memid;
  726. LPOLESTR lpstrSchema;
  727. __C89_NAMELESS union {
  728. ULONG oInst;
  729. VARIANT *lpvarValue;
  730. } __C89_NAMELESSUNIONNAME;
  731. ELEMDESC elemdescVar;
  732. WORD wVarFlags;
  733. VARKIND varkind;
  734. } VARDESC;
  735. typedef struct tagVARDESC *LPVARDESC;
  736. typedef enum tagTYPEFLAGS {
  737. TYPEFLAG_FAPPOBJECT = 0x1,
  738. TYPEFLAG_FCANCREATE = 0x2,
  739. TYPEFLAG_FLICENSED = 0x4,
  740. TYPEFLAG_FPREDECLID = 0x8,
  741. TYPEFLAG_FHIDDEN = 0x10,
  742. TYPEFLAG_FCONTROL = 0x20,
  743. TYPEFLAG_FDUAL = 0x40,
  744. TYPEFLAG_FNONEXTENSIBLE = 0x80,
  745. TYPEFLAG_FOLEAUTOMATION = 0x100,
  746. TYPEFLAG_FRESTRICTED = 0x200,
  747. TYPEFLAG_FAGGREGATABLE = 0x400,
  748. TYPEFLAG_FREPLACEABLE = 0x800,
  749. TYPEFLAG_FDISPATCHABLE = 0x1000,
  750. TYPEFLAG_FREVERSEBIND = 0x2000,
  751. TYPEFLAG_FPROXY = 0x4000
  752. } TYPEFLAGS;
  753. typedef enum tagFUNCFLAGS {
  754. FUNCFLAG_FRESTRICTED = 0x1,
  755. FUNCFLAG_FSOURCE = 0x2,
  756. FUNCFLAG_FBINDABLE = 0x4,
  757. FUNCFLAG_FREQUESTEDIT = 0x8,
  758. FUNCFLAG_FDISPLAYBIND = 0x10,
  759. FUNCFLAG_FDEFAULTBIND = 0x20,
  760. FUNCFLAG_FHIDDEN = 0x40,
  761. FUNCFLAG_FUSESGETLASTERROR = 0x80,
  762. FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
  763. FUNCFLAG_FUIDEFAULT = 0x200,
  764. FUNCFLAG_FNONBROWSABLE = 0x400,
  765. FUNCFLAG_FREPLACEABLE = 0x800,
  766. FUNCFLAG_FIMMEDIATEBIND = 0x1000
  767. } FUNCFLAGS;
  768. typedef enum tagVARFLAGS {
  769. VARFLAG_FREADONLY = 0x1,
  770. VARFLAG_FSOURCE = 0x2,
  771. VARFLAG_FBINDABLE = 0x4,
  772. VARFLAG_FREQUESTEDIT = 0x8,
  773. VARFLAG_FDISPLAYBIND = 0x10,
  774. VARFLAG_FDEFAULTBIND = 0x20,
  775. VARFLAG_FHIDDEN = 0x40,
  776. VARFLAG_FRESTRICTED = 0x80,
  777. VARFLAG_FDEFAULTCOLLELEM = 0x100,
  778. VARFLAG_FUIDEFAULT = 0x200,
  779. VARFLAG_FNONBROWSABLE = 0x400,
  780. VARFLAG_FREPLACEABLE = 0x800,
  781. VARFLAG_FIMMEDIATEBIND = 0x1000
  782. } VARFLAGS;
  783. typedef struct tagCLEANLOCALSTORAGE {
  784. IUnknown *pInterface;
  785. PVOID pStorage;
  786. DWORD flags;
  787. } CLEANLOCALSTORAGE;
  788. typedef struct tagCUSTDATAITEM {
  789. GUID guid;
  790. VARIANTARG varValue;
  791. } CUSTDATAITEM;
  792. typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM;
  793. typedef struct tagCUSTDATA {
  794. DWORD cCustData;
  795. LPCUSTDATAITEM prgCustData;
  796. } CUSTDATA;
  797. typedef struct tagCUSTDATA *LPCUSTDATA;
  798. #endif /* __IOleAutomationTypes_INTERFACE_DEFINED__ */
  799. #endif
  800. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  801. /*****************************************************************************
  802. * ICreateTypeInfo interface
  803. */
  804. #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
  805. #define __ICreateTypeInfo_INTERFACE_DEFINED__
  806. typedef ICreateTypeInfo *LPCREATETYPEINFO;
  807. DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  808. #if defined(__cplusplus) && !defined(CINTERFACE)
  809. MIDL_INTERFACE("00020405-0000-0000-c000-000000000046")
  810. ICreateTypeInfo : public IUnknown
  811. {
  812. virtual HRESULT STDMETHODCALLTYPE SetGuid(
  813. REFGUID guid) = 0;
  814. virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
  815. UINT uTypeFlags) = 0;
  816. virtual HRESULT STDMETHODCALLTYPE SetDocString(
  817. LPOLESTR pStrDoc) = 0;
  818. virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
  819. DWORD dwHelpContext) = 0;
  820. virtual HRESULT STDMETHODCALLTYPE SetVersion(
  821. WORD wMajorVerNum,
  822. WORD wMinorVerNum) = 0;
  823. virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
  824. ITypeInfo *pTInfo,
  825. HREFTYPE *phRefType) = 0;
  826. virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
  827. UINT index,
  828. FUNCDESC *pFuncDesc) = 0;
  829. virtual HRESULT STDMETHODCALLTYPE AddImplType(
  830. UINT index,
  831. HREFTYPE hRefType) = 0;
  832. virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
  833. UINT index,
  834. INT implTypeFlags) = 0;
  835. virtual HRESULT STDMETHODCALLTYPE SetAlignment(
  836. WORD cbAlignment) = 0;
  837. virtual HRESULT STDMETHODCALLTYPE SetSchema(
  838. LPOLESTR pStrSchema) = 0;
  839. virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
  840. UINT index,
  841. VARDESC *pVarDesc) = 0;
  842. virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
  843. UINT index,
  844. LPOLESTR *rgszNames,
  845. UINT cNames) = 0;
  846. virtual HRESULT STDMETHODCALLTYPE SetVarName(
  847. UINT index,
  848. LPOLESTR szName) = 0;
  849. virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
  850. TYPEDESC *pTDescAlias) = 0;
  851. virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
  852. UINT index,
  853. LPOLESTR szDllName,
  854. LPOLESTR szProcName) = 0;
  855. virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
  856. UINT index,
  857. LPOLESTR szDocString) = 0;
  858. virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
  859. UINT index,
  860. LPOLESTR szDocString) = 0;
  861. virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
  862. UINT index,
  863. DWORD dwHelpContext) = 0;
  864. virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
  865. UINT index,
  866. DWORD dwHelpContext) = 0;
  867. virtual HRESULT STDMETHODCALLTYPE SetMops(
  868. UINT index,
  869. BSTR bstrMops) = 0;
  870. virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
  871. IDLDESC *pIdlDesc) = 0;
  872. virtual HRESULT STDMETHODCALLTYPE LayOut(
  873. ) = 0;
  874. };
  875. #ifdef __CRT_UUID_DECL
  876. __CRT_UUID_DECL(ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  877. #endif
  878. #else
  879. typedef struct ICreateTypeInfoVtbl {
  880. BEGIN_INTERFACE
  881. /*** IUnknown methods ***/
  882. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  883. ICreateTypeInfo *This,
  884. REFIID riid,
  885. void **ppvObject);
  886. ULONG (STDMETHODCALLTYPE *AddRef)(
  887. ICreateTypeInfo *This);
  888. ULONG (STDMETHODCALLTYPE *Release)(
  889. ICreateTypeInfo *This);
  890. /*** ICreateTypeInfo methods ***/
  891. HRESULT (STDMETHODCALLTYPE *SetGuid)(
  892. ICreateTypeInfo *This,
  893. REFGUID guid);
  894. HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
  895. ICreateTypeInfo *This,
  896. UINT uTypeFlags);
  897. HRESULT (STDMETHODCALLTYPE *SetDocString)(
  898. ICreateTypeInfo *This,
  899. LPOLESTR pStrDoc);
  900. HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
  901. ICreateTypeInfo *This,
  902. DWORD dwHelpContext);
  903. HRESULT (STDMETHODCALLTYPE *SetVersion)(
  904. ICreateTypeInfo *This,
  905. WORD wMajorVerNum,
  906. WORD wMinorVerNum);
  907. HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
  908. ICreateTypeInfo *This,
  909. ITypeInfo *pTInfo,
  910. HREFTYPE *phRefType);
  911. HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
  912. ICreateTypeInfo *This,
  913. UINT index,
  914. FUNCDESC *pFuncDesc);
  915. HRESULT (STDMETHODCALLTYPE *AddImplType)(
  916. ICreateTypeInfo *This,
  917. UINT index,
  918. HREFTYPE hRefType);
  919. HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
  920. ICreateTypeInfo *This,
  921. UINT index,
  922. INT implTypeFlags);
  923. HRESULT (STDMETHODCALLTYPE *SetAlignment)(
  924. ICreateTypeInfo *This,
  925. WORD cbAlignment);
  926. HRESULT (STDMETHODCALLTYPE *SetSchema)(
  927. ICreateTypeInfo *This,
  928. LPOLESTR pStrSchema);
  929. HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
  930. ICreateTypeInfo *This,
  931. UINT index,
  932. VARDESC *pVarDesc);
  933. HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
  934. ICreateTypeInfo *This,
  935. UINT index,
  936. LPOLESTR *rgszNames,
  937. UINT cNames);
  938. HRESULT (STDMETHODCALLTYPE *SetVarName)(
  939. ICreateTypeInfo *This,
  940. UINT index,
  941. LPOLESTR szName);
  942. HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
  943. ICreateTypeInfo *This,
  944. TYPEDESC *pTDescAlias);
  945. HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
  946. ICreateTypeInfo *This,
  947. UINT index,
  948. LPOLESTR szDllName,
  949. LPOLESTR szProcName);
  950. HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
  951. ICreateTypeInfo *This,
  952. UINT index,
  953. LPOLESTR szDocString);
  954. HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
  955. ICreateTypeInfo *This,
  956. UINT index,
  957. LPOLESTR szDocString);
  958. HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
  959. ICreateTypeInfo *This,
  960. UINT index,
  961. DWORD dwHelpContext);
  962. HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
  963. ICreateTypeInfo *This,
  964. UINT index,
  965. DWORD dwHelpContext);
  966. HRESULT (STDMETHODCALLTYPE *SetMops)(
  967. ICreateTypeInfo *This,
  968. UINT index,
  969. BSTR bstrMops);
  970. HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
  971. ICreateTypeInfo *This,
  972. IDLDESC *pIdlDesc);
  973. HRESULT (STDMETHODCALLTYPE *LayOut)(
  974. ICreateTypeInfo *This);
  975. END_INTERFACE
  976. } ICreateTypeInfoVtbl;
  977. interface ICreateTypeInfo {
  978. CONST_VTBL ICreateTypeInfoVtbl* lpVtbl;
  979. };
  980. #ifdef COBJMACROS
  981. #ifndef WIDL_C_INLINE_WRAPPERS
  982. /*** IUnknown methods ***/
  983. #define ICreateTypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  984. #define ICreateTypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  985. #define ICreateTypeInfo_Release(This) (This)->lpVtbl->Release(This)
  986. /*** ICreateTypeInfo methods ***/
  987. #define ICreateTypeInfo_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
  988. #define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
  989. #define ICreateTypeInfo_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
  990. #define ICreateTypeInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
  991. #define ICreateTypeInfo_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
  992. #define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
  993. #define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
  994. #define ICreateTypeInfo_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
  995. #define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
  996. #define ICreateTypeInfo_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
  997. #define ICreateTypeInfo_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
  998. #define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
  999. #define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
  1000. #define ICreateTypeInfo_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
  1001. #define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
  1002. #define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  1003. #define ICreateTypeInfo_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
  1004. #define ICreateTypeInfo_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
  1005. #define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
  1006. #define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
  1007. #define ICreateTypeInfo_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
  1008. #define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
  1009. #define ICreateTypeInfo_LayOut(This) (This)->lpVtbl->LayOut(This)
  1010. #else
  1011. /*** IUnknown methods ***/
  1012. static FORCEINLINE HRESULT ICreateTypeInfo_QueryInterface(ICreateTypeInfo* This,REFIID riid,void **ppvObject) {
  1013. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1014. }
  1015. static FORCEINLINE ULONG ICreateTypeInfo_AddRef(ICreateTypeInfo* This) {
  1016. return This->lpVtbl->AddRef(This);
  1017. }
  1018. static FORCEINLINE ULONG ICreateTypeInfo_Release(ICreateTypeInfo* This) {
  1019. return This->lpVtbl->Release(This);
  1020. }
  1021. /*** ICreateTypeInfo methods ***/
  1022. static FORCEINLINE HRESULT ICreateTypeInfo_SetGuid(ICreateTypeInfo* This,REFGUID guid) {
  1023. return This->lpVtbl->SetGuid(This,guid);
  1024. }
  1025. static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeFlags(ICreateTypeInfo* This,UINT uTypeFlags) {
  1026. return This->lpVtbl->SetTypeFlags(This,uTypeFlags);
  1027. }
  1028. static FORCEINLINE HRESULT ICreateTypeInfo_SetDocString(ICreateTypeInfo* This,LPOLESTR pStrDoc) {
  1029. return This->lpVtbl->SetDocString(This,pStrDoc);
  1030. }
  1031. static FORCEINLINE HRESULT ICreateTypeInfo_SetHelpContext(ICreateTypeInfo* This,DWORD dwHelpContext) {
  1032. return This->lpVtbl->SetHelpContext(This,dwHelpContext);
  1033. }
  1034. static FORCEINLINE HRESULT ICreateTypeInfo_SetVersion(ICreateTypeInfo* This,WORD wMajorVerNum,WORD wMinorVerNum) {
  1035. return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
  1036. }
  1037. static FORCEINLINE HRESULT ICreateTypeInfo_AddRefTypeInfo(ICreateTypeInfo* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) {
  1038. return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType);
  1039. }
  1040. static FORCEINLINE HRESULT ICreateTypeInfo_AddFuncDesc(ICreateTypeInfo* This,UINT index,FUNCDESC *pFuncDesc) {
  1041. return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc);
  1042. }
  1043. static FORCEINLINE HRESULT ICreateTypeInfo_AddImplType(ICreateTypeInfo* This,UINT index,HREFTYPE hRefType) {
  1044. return This->lpVtbl->AddImplType(This,index,hRefType);
  1045. }
  1046. static FORCEINLINE HRESULT ICreateTypeInfo_SetImplTypeFlags(ICreateTypeInfo* This,UINT index,INT implTypeFlags) {
  1047. return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags);
  1048. }
  1049. static FORCEINLINE HRESULT ICreateTypeInfo_SetAlignment(ICreateTypeInfo* This,WORD cbAlignment) {
  1050. return This->lpVtbl->SetAlignment(This,cbAlignment);
  1051. }
  1052. static FORCEINLINE HRESULT ICreateTypeInfo_SetSchema(ICreateTypeInfo* This,LPOLESTR pStrSchema) {
  1053. return This->lpVtbl->SetSchema(This,pStrSchema);
  1054. }
  1055. static FORCEINLINE HRESULT ICreateTypeInfo_AddVarDesc(ICreateTypeInfo* This,UINT index,VARDESC *pVarDesc) {
  1056. return This->lpVtbl->AddVarDesc(This,index,pVarDesc);
  1057. }
  1058. static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncAndParamNames(ICreateTypeInfo* This,UINT index,LPOLESTR *rgszNames,UINT cNames) {
  1059. return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames);
  1060. }
  1061. static FORCEINLINE HRESULT ICreateTypeInfo_SetVarName(ICreateTypeInfo* This,UINT index,LPOLESTR szName) {
  1062. return This->lpVtbl->SetVarName(This,index,szName);
  1063. }
  1064. static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeDescAlias(ICreateTypeInfo* This,TYPEDESC *pTDescAlias) {
  1065. return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias);
  1066. }
  1067. static FORCEINLINE HRESULT ICreateTypeInfo_DefineFuncAsDllEntry(ICreateTypeInfo* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) {
  1068. return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName);
  1069. }
  1070. static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
  1071. return This->lpVtbl->SetFuncDocString(This,index,szDocString);
  1072. }
  1073. static FORCEINLINE HRESULT ICreateTypeInfo_SetVarDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
  1074. return This->lpVtbl->SetVarDocString(This,index,szDocString);
  1075. }
  1076. static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
  1077. return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext);
  1078. }
  1079. static FORCEINLINE HRESULT ICreateTypeInfo_SetVarHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
  1080. return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext);
  1081. }
  1082. static FORCEINLINE HRESULT ICreateTypeInfo_SetMops(ICreateTypeInfo* This,UINT index,BSTR bstrMops) {
  1083. return This->lpVtbl->SetMops(This,index,bstrMops);
  1084. }
  1085. static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeIdldesc(ICreateTypeInfo* This,IDLDESC *pIdlDesc) {
  1086. return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc);
  1087. }
  1088. static FORCEINLINE HRESULT ICreateTypeInfo_LayOut(ICreateTypeInfo* This) {
  1089. return This->lpVtbl->LayOut(This);
  1090. }
  1091. #endif
  1092. #endif
  1093. #endif
  1094. #endif /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
  1095. /*****************************************************************************
  1096. * ICreateTypeInfo2 interface
  1097. */
  1098. #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
  1099. #define __ICreateTypeInfo2_INTERFACE_DEFINED__
  1100. typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
  1101. DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  1102. #if defined(__cplusplus) && !defined(CINTERFACE)
  1103. MIDL_INTERFACE("0002040e-0000-0000-c000-000000000046")
  1104. ICreateTypeInfo2 : public ICreateTypeInfo
  1105. {
  1106. virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc(
  1107. UINT index) = 0;
  1108. virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId(
  1109. MEMBERID memid,
  1110. INVOKEKIND invKind) = 0;
  1111. virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc(
  1112. UINT index) = 0;
  1113. virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId(
  1114. MEMBERID memid) = 0;
  1115. virtual HRESULT STDMETHODCALLTYPE DeleteImplType(
  1116. UINT index) = 0;
  1117. virtual HRESULT STDMETHODCALLTYPE SetCustData(
  1118. REFGUID guid,
  1119. VARIANT *pVarVal) = 0;
  1120. virtual HRESULT STDMETHODCALLTYPE SetFuncCustData(
  1121. UINT index,
  1122. REFGUID guid,
  1123. VARIANT *pVarVal) = 0;
  1124. virtual HRESULT STDMETHODCALLTYPE SetParamCustData(
  1125. UINT indexFunc,
  1126. UINT indexParam,
  1127. REFGUID guid,
  1128. VARIANT *pVarVal) = 0;
  1129. virtual HRESULT STDMETHODCALLTYPE SetVarCustData(
  1130. UINT index,
  1131. REFGUID guid,
  1132. VARIANT *pVarVal) = 0;
  1133. virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData(
  1134. UINT index,
  1135. REFGUID guid,
  1136. VARIANT *pVarVal) = 0;
  1137. virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
  1138. ULONG dwHelpStringContext) = 0;
  1139. virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext(
  1140. UINT index,
  1141. ULONG dwHelpStringContext) = 0;
  1142. virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext(
  1143. UINT index,
  1144. ULONG dwHelpStringContext) = 0;
  1145. virtual HRESULT STDMETHODCALLTYPE Invalidate(
  1146. ) = 0;
  1147. virtual HRESULT STDMETHODCALLTYPE SetName(
  1148. LPOLESTR szName) = 0;
  1149. };
  1150. #ifdef __CRT_UUID_DECL
  1151. __CRT_UUID_DECL(ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  1152. #endif
  1153. #else
  1154. typedef struct ICreateTypeInfo2Vtbl {
  1155. BEGIN_INTERFACE
  1156. /*** IUnknown methods ***/
  1157. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1158. ICreateTypeInfo2 *This,
  1159. REFIID riid,
  1160. void **ppvObject);
  1161. ULONG (STDMETHODCALLTYPE *AddRef)(
  1162. ICreateTypeInfo2 *This);
  1163. ULONG (STDMETHODCALLTYPE *Release)(
  1164. ICreateTypeInfo2 *This);
  1165. /*** ICreateTypeInfo methods ***/
  1166. HRESULT (STDMETHODCALLTYPE *SetGuid)(
  1167. ICreateTypeInfo2 *This,
  1168. REFGUID guid);
  1169. HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
  1170. ICreateTypeInfo2 *This,
  1171. UINT uTypeFlags);
  1172. HRESULT (STDMETHODCALLTYPE *SetDocString)(
  1173. ICreateTypeInfo2 *This,
  1174. LPOLESTR pStrDoc);
  1175. HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
  1176. ICreateTypeInfo2 *This,
  1177. DWORD dwHelpContext);
  1178. HRESULT (STDMETHODCALLTYPE *SetVersion)(
  1179. ICreateTypeInfo2 *This,
  1180. WORD wMajorVerNum,
  1181. WORD wMinorVerNum);
  1182. HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
  1183. ICreateTypeInfo2 *This,
  1184. ITypeInfo *pTInfo,
  1185. HREFTYPE *phRefType);
  1186. HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
  1187. ICreateTypeInfo2 *This,
  1188. UINT index,
  1189. FUNCDESC *pFuncDesc);
  1190. HRESULT (STDMETHODCALLTYPE *AddImplType)(
  1191. ICreateTypeInfo2 *This,
  1192. UINT index,
  1193. HREFTYPE hRefType);
  1194. HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
  1195. ICreateTypeInfo2 *This,
  1196. UINT index,
  1197. INT implTypeFlags);
  1198. HRESULT (STDMETHODCALLTYPE *SetAlignment)(
  1199. ICreateTypeInfo2 *This,
  1200. WORD cbAlignment);
  1201. HRESULT (STDMETHODCALLTYPE *SetSchema)(
  1202. ICreateTypeInfo2 *This,
  1203. LPOLESTR pStrSchema);
  1204. HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
  1205. ICreateTypeInfo2 *This,
  1206. UINT index,
  1207. VARDESC *pVarDesc);
  1208. HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
  1209. ICreateTypeInfo2 *This,
  1210. UINT index,
  1211. LPOLESTR *rgszNames,
  1212. UINT cNames);
  1213. HRESULT (STDMETHODCALLTYPE *SetVarName)(
  1214. ICreateTypeInfo2 *This,
  1215. UINT index,
  1216. LPOLESTR szName);
  1217. HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
  1218. ICreateTypeInfo2 *This,
  1219. TYPEDESC *pTDescAlias);
  1220. HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
  1221. ICreateTypeInfo2 *This,
  1222. UINT index,
  1223. LPOLESTR szDllName,
  1224. LPOLESTR szProcName);
  1225. HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
  1226. ICreateTypeInfo2 *This,
  1227. UINT index,
  1228. LPOLESTR szDocString);
  1229. HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
  1230. ICreateTypeInfo2 *This,
  1231. UINT index,
  1232. LPOLESTR szDocString);
  1233. HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
  1234. ICreateTypeInfo2 *This,
  1235. UINT index,
  1236. DWORD dwHelpContext);
  1237. HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
  1238. ICreateTypeInfo2 *This,
  1239. UINT index,
  1240. DWORD dwHelpContext);
  1241. HRESULT (STDMETHODCALLTYPE *SetMops)(
  1242. ICreateTypeInfo2 *This,
  1243. UINT index,
  1244. BSTR bstrMops);
  1245. HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
  1246. ICreateTypeInfo2 *This,
  1247. IDLDESC *pIdlDesc);
  1248. HRESULT (STDMETHODCALLTYPE *LayOut)(
  1249. ICreateTypeInfo2 *This);
  1250. /*** ICreateTypeInfo2 methods ***/
  1251. HRESULT (STDMETHODCALLTYPE *DeleteFuncDesc)(
  1252. ICreateTypeInfo2 *This,
  1253. UINT index);
  1254. HRESULT (STDMETHODCALLTYPE *DeleteFuncDescByMemId)(
  1255. ICreateTypeInfo2 *This,
  1256. MEMBERID memid,
  1257. INVOKEKIND invKind);
  1258. HRESULT (STDMETHODCALLTYPE *DeleteVarDesc)(
  1259. ICreateTypeInfo2 *This,
  1260. UINT index);
  1261. HRESULT (STDMETHODCALLTYPE *DeleteVarDescByMemId)(
  1262. ICreateTypeInfo2 *This,
  1263. MEMBERID memid);
  1264. HRESULT (STDMETHODCALLTYPE *DeleteImplType)(
  1265. ICreateTypeInfo2 *This,
  1266. UINT index);
  1267. HRESULT (STDMETHODCALLTYPE *SetCustData)(
  1268. ICreateTypeInfo2 *This,
  1269. REFGUID guid,
  1270. VARIANT *pVarVal);
  1271. HRESULT (STDMETHODCALLTYPE *SetFuncCustData)(
  1272. ICreateTypeInfo2 *This,
  1273. UINT index,
  1274. REFGUID guid,
  1275. VARIANT *pVarVal);
  1276. HRESULT (STDMETHODCALLTYPE *SetParamCustData)(
  1277. ICreateTypeInfo2 *This,
  1278. UINT indexFunc,
  1279. UINT indexParam,
  1280. REFGUID guid,
  1281. VARIANT *pVarVal);
  1282. HRESULT (STDMETHODCALLTYPE *SetVarCustData)(
  1283. ICreateTypeInfo2 *This,
  1284. UINT index,
  1285. REFGUID guid,
  1286. VARIANT *pVarVal);
  1287. HRESULT (STDMETHODCALLTYPE *SetImplTypeCustData)(
  1288. ICreateTypeInfo2 *This,
  1289. UINT index,
  1290. REFGUID guid,
  1291. VARIANT *pVarVal);
  1292. HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
  1293. ICreateTypeInfo2 *This,
  1294. ULONG dwHelpStringContext);
  1295. HRESULT (STDMETHODCALLTYPE *SetFuncHelpStringContext)(
  1296. ICreateTypeInfo2 *This,
  1297. UINT index,
  1298. ULONG dwHelpStringContext);
  1299. HRESULT (STDMETHODCALLTYPE *SetVarHelpStringContext)(
  1300. ICreateTypeInfo2 *This,
  1301. UINT index,
  1302. ULONG dwHelpStringContext);
  1303. HRESULT (STDMETHODCALLTYPE *Invalidate)(
  1304. ICreateTypeInfo2 *This);
  1305. HRESULT (STDMETHODCALLTYPE *SetName)(
  1306. ICreateTypeInfo2 *This,
  1307. LPOLESTR szName);
  1308. END_INTERFACE
  1309. } ICreateTypeInfo2Vtbl;
  1310. interface ICreateTypeInfo2 {
  1311. CONST_VTBL ICreateTypeInfo2Vtbl* lpVtbl;
  1312. };
  1313. #ifdef COBJMACROS
  1314. #ifndef WIDL_C_INLINE_WRAPPERS
  1315. /*** IUnknown methods ***/
  1316. #define ICreateTypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1317. #define ICreateTypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1318. #define ICreateTypeInfo2_Release(This) (This)->lpVtbl->Release(This)
  1319. /*** ICreateTypeInfo methods ***/
  1320. #define ICreateTypeInfo2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
  1321. #define ICreateTypeInfo2_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
  1322. #define ICreateTypeInfo2_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
  1323. #define ICreateTypeInfo2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
  1324. #define ICreateTypeInfo2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
  1325. #define ICreateTypeInfo2_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
  1326. #define ICreateTypeInfo2_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
  1327. #define ICreateTypeInfo2_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
  1328. #define ICreateTypeInfo2_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
  1329. #define ICreateTypeInfo2_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
  1330. #define ICreateTypeInfo2_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
  1331. #define ICreateTypeInfo2_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
  1332. #define ICreateTypeInfo2_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
  1333. #define ICreateTypeInfo2_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
  1334. #define ICreateTypeInfo2_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
  1335. #define ICreateTypeInfo2_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  1336. #define ICreateTypeInfo2_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
  1337. #define ICreateTypeInfo2_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
  1338. #define ICreateTypeInfo2_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
  1339. #define ICreateTypeInfo2_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
  1340. #define ICreateTypeInfo2_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
  1341. #define ICreateTypeInfo2_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
  1342. #define ICreateTypeInfo2_LayOut(This) (This)->lpVtbl->LayOut(This)
  1343. /*** ICreateTypeInfo2 methods ***/
  1344. #define ICreateTypeInfo2_DeleteFuncDesc(This,index) (This)->lpVtbl->DeleteFuncDesc(This,index)
  1345. #define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid,invKind) (This)->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind)
  1346. #define ICreateTypeInfo2_DeleteVarDesc(This,index) (This)->lpVtbl->DeleteVarDesc(This,index)
  1347. #define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid) (This)->lpVtbl->DeleteVarDescByMemId(This,memid)
  1348. #define ICreateTypeInfo2_DeleteImplType(This,index) (This)->lpVtbl->DeleteImplType(This,index)
  1349. #define ICreateTypeInfo2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
  1350. #define ICreateTypeInfo2_SetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetFuncCustData(This,index,guid,pVarVal)
  1351. #define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
  1352. #define ICreateTypeInfo2_SetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetVarCustData(This,index,guid,pVarVal)
  1353. #define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal)
  1354. #define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
  1355. #define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext)
  1356. #define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext)
  1357. #define ICreateTypeInfo2_Invalidate(This) (This)->lpVtbl->Invalidate(This)
  1358. #define ICreateTypeInfo2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
  1359. #else
  1360. /*** IUnknown methods ***/
  1361. static FORCEINLINE HRESULT ICreateTypeInfo2_QueryInterface(ICreateTypeInfo2* This,REFIID riid,void **ppvObject) {
  1362. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1363. }
  1364. static FORCEINLINE ULONG ICreateTypeInfo2_AddRef(ICreateTypeInfo2* This) {
  1365. return This->lpVtbl->AddRef(This);
  1366. }
  1367. static FORCEINLINE ULONG ICreateTypeInfo2_Release(ICreateTypeInfo2* This) {
  1368. return This->lpVtbl->Release(This);
  1369. }
  1370. /*** ICreateTypeInfo methods ***/
  1371. static FORCEINLINE HRESULT ICreateTypeInfo2_SetGuid(ICreateTypeInfo2* This,REFGUID guid) {
  1372. return This->lpVtbl->SetGuid(This,guid);
  1373. }
  1374. static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeFlags(ICreateTypeInfo2* This,UINT uTypeFlags) {
  1375. return This->lpVtbl->SetTypeFlags(This,uTypeFlags);
  1376. }
  1377. static FORCEINLINE HRESULT ICreateTypeInfo2_SetDocString(ICreateTypeInfo2* This,LPOLESTR pStrDoc) {
  1378. return This->lpVtbl->SetDocString(This,pStrDoc);
  1379. }
  1380. static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpContext(ICreateTypeInfo2* This,DWORD dwHelpContext) {
  1381. return This->lpVtbl->SetHelpContext(This,dwHelpContext);
  1382. }
  1383. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVersion(ICreateTypeInfo2* This,WORD wMajorVerNum,WORD wMinorVerNum) {
  1384. return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
  1385. }
  1386. static FORCEINLINE HRESULT ICreateTypeInfo2_AddRefTypeInfo(ICreateTypeInfo2* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) {
  1387. return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType);
  1388. }
  1389. static FORCEINLINE HRESULT ICreateTypeInfo2_AddFuncDesc(ICreateTypeInfo2* This,UINT index,FUNCDESC *pFuncDesc) {
  1390. return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc);
  1391. }
  1392. static FORCEINLINE HRESULT ICreateTypeInfo2_AddImplType(ICreateTypeInfo2* This,UINT index,HREFTYPE hRefType) {
  1393. return This->lpVtbl->AddImplType(This,index,hRefType);
  1394. }
  1395. static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeFlags(ICreateTypeInfo2* This,UINT index,INT implTypeFlags) {
  1396. return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags);
  1397. }
  1398. static FORCEINLINE HRESULT ICreateTypeInfo2_SetAlignment(ICreateTypeInfo2* This,WORD cbAlignment) {
  1399. return This->lpVtbl->SetAlignment(This,cbAlignment);
  1400. }
  1401. static FORCEINLINE HRESULT ICreateTypeInfo2_SetSchema(ICreateTypeInfo2* This,LPOLESTR pStrSchema) {
  1402. return This->lpVtbl->SetSchema(This,pStrSchema);
  1403. }
  1404. static FORCEINLINE HRESULT ICreateTypeInfo2_AddVarDesc(ICreateTypeInfo2* This,UINT index,VARDESC *pVarDesc) {
  1405. return This->lpVtbl->AddVarDesc(This,index,pVarDesc);
  1406. }
  1407. static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncAndParamNames(ICreateTypeInfo2* This,UINT index,LPOLESTR *rgszNames,UINT cNames) {
  1408. return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames);
  1409. }
  1410. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarName(ICreateTypeInfo2* This,UINT index,LPOLESTR szName) {
  1411. return This->lpVtbl->SetVarName(This,index,szName);
  1412. }
  1413. static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeDescAlias(ICreateTypeInfo2* This,TYPEDESC *pTDescAlias) {
  1414. return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias);
  1415. }
  1416. static FORCEINLINE HRESULT ICreateTypeInfo2_DefineFuncAsDllEntry(ICreateTypeInfo2* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) {
  1417. return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName);
  1418. }
  1419. static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) {
  1420. return This->lpVtbl->SetFuncDocString(This,index,szDocString);
  1421. }
  1422. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) {
  1423. return This->lpVtbl->SetVarDocString(This,index,szDocString);
  1424. }
  1425. static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) {
  1426. return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext);
  1427. }
  1428. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) {
  1429. return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext);
  1430. }
  1431. static FORCEINLINE HRESULT ICreateTypeInfo2_SetMops(ICreateTypeInfo2* This,UINT index,BSTR bstrMops) {
  1432. return This->lpVtbl->SetMops(This,index,bstrMops);
  1433. }
  1434. static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeIdldesc(ICreateTypeInfo2* This,IDLDESC *pIdlDesc) {
  1435. return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc);
  1436. }
  1437. static FORCEINLINE HRESULT ICreateTypeInfo2_LayOut(ICreateTypeInfo2* This) {
  1438. return This->lpVtbl->LayOut(This);
  1439. }
  1440. /*** ICreateTypeInfo2 methods ***/
  1441. static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDesc(ICreateTypeInfo2* This,UINT index) {
  1442. return This->lpVtbl->DeleteFuncDesc(This,index);
  1443. }
  1444. static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDescByMemId(ICreateTypeInfo2* This,MEMBERID memid,INVOKEKIND invKind) {
  1445. return This->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind);
  1446. }
  1447. static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDesc(ICreateTypeInfo2* This,UINT index) {
  1448. return This->lpVtbl->DeleteVarDesc(This,index);
  1449. }
  1450. static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDescByMemId(ICreateTypeInfo2* This,MEMBERID memid) {
  1451. return This->lpVtbl->DeleteVarDescByMemId(This,memid);
  1452. }
  1453. static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteImplType(ICreateTypeInfo2* This,UINT index) {
  1454. return This->lpVtbl->DeleteImplType(This,index);
  1455. }
  1456. static FORCEINLINE HRESULT ICreateTypeInfo2_SetCustData(ICreateTypeInfo2* This,REFGUID guid,VARIANT *pVarVal) {
  1457. return This->lpVtbl->SetCustData(This,guid,pVarVal);
  1458. }
  1459. static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  1460. return This->lpVtbl->SetFuncCustData(This,index,guid,pVarVal);
  1461. }
  1462. static FORCEINLINE HRESULT ICreateTypeInfo2_SetParamCustData(ICreateTypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) {
  1463. return This->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal);
  1464. }
  1465. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  1466. return This->lpVtbl->SetVarCustData(This,index,guid,pVarVal);
  1467. }
  1468. static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  1469. return This->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal);
  1470. }
  1471. static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpStringContext(ICreateTypeInfo2* This,ULONG dwHelpStringContext) {
  1472. return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext);
  1473. }
  1474. static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) {
  1475. return This->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext);
  1476. }
  1477. static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) {
  1478. return This->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext);
  1479. }
  1480. static FORCEINLINE HRESULT ICreateTypeInfo2_Invalidate(ICreateTypeInfo2* This) {
  1481. return This->lpVtbl->Invalidate(This);
  1482. }
  1483. static FORCEINLINE HRESULT ICreateTypeInfo2_SetName(ICreateTypeInfo2* This,LPOLESTR szName) {
  1484. return This->lpVtbl->SetName(This,szName);
  1485. }
  1486. #endif
  1487. #endif
  1488. #endif
  1489. #endif /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */
  1490. /*****************************************************************************
  1491. * ICreateTypeLib interface
  1492. */
  1493. #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
  1494. #define __ICreateTypeLib_INTERFACE_DEFINED__
  1495. typedef ICreateTypeLib *LPCREATETYPELIB;
  1496. DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  1497. #if defined(__cplusplus) && !defined(CINTERFACE)
  1498. MIDL_INTERFACE("00020406-0000-0000-c000-000000000046")
  1499. ICreateTypeLib : public IUnknown
  1500. {
  1501. virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo(
  1502. LPOLESTR szName,
  1503. TYPEKIND tkind,
  1504. ICreateTypeInfo **ppCTInfo) = 0;
  1505. virtual HRESULT STDMETHODCALLTYPE SetName(
  1506. LPOLESTR szName) = 0;
  1507. virtual HRESULT STDMETHODCALLTYPE SetVersion(
  1508. WORD wMajorVerNum,
  1509. WORD wMinorVerNum) = 0;
  1510. virtual HRESULT STDMETHODCALLTYPE SetGuid(
  1511. REFGUID guid) = 0;
  1512. virtual HRESULT STDMETHODCALLTYPE SetDocString(
  1513. LPOLESTR szDoc) = 0;
  1514. virtual HRESULT STDMETHODCALLTYPE SetHelpFileName(
  1515. LPOLESTR szHelpFileName) = 0;
  1516. virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
  1517. DWORD dwHelpContext) = 0;
  1518. virtual HRESULT STDMETHODCALLTYPE SetLcid(
  1519. LCID lcid) = 0;
  1520. virtual HRESULT STDMETHODCALLTYPE SetLibFlags(
  1521. UINT uLibFlags) = 0;
  1522. virtual HRESULT STDMETHODCALLTYPE SaveAllChanges(
  1523. ) = 0;
  1524. };
  1525. #ifdef __CRT_UUID_DECL
  1526. __CRT_UUID_DECL(ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  1527. #endif
  1528. #else
  1529. typedef struct ICreateTypeLibVtbl {
  1530. BEGIN_INTERFACE
  1531. /*** IUnknown methods ***/
  1532. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1533. ICreateTypeLib *This,
  1534. REFIID riid,
  1535. void **ppvObject);
  1536. ULONG (STDMETHODCALLTYPE *AddRef)(
  1537. ICreateTypeLib *This);
  1538. ULONG (STDMETHODCALLTYPE *Release)(
  1539. ICreateTypeLib *This);
  1540. /*** ICreateTypeLib methods ***/
  1541. HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
  1542. ICreateTypeLib *This,
  1543. LPOLESTR szName,
  1544. TYPEKIND tkind,
  1545. ICreateTypeInfo **ppCTInfo);
  1546. HRESULT (STDMETHODCALLTYPE *SetName)(
  1547. ICreateTypeLib *This,
  1548. LPOLESTR szName);
  1549. HRESULT (STDMETHODCALLTYPE *SetVersion)(
  1550. ICreateTypeLib *This,
  1551. WORD wMajorVerNum,
  1552. WORD wMinorVerNum);
  1553. HRESULT (STDMETHODCALLTYPE *SetGuid)(
  1554. ICreateTypeLib *This,
  1555. REFGUID guid);
  1556. HRESULT (STDMETHODCALLTYPE *SetDocString)(
  1557. ICreateTypeLib *This,
  1558. LPOLESTR szDoc);
  1559. HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
  1560. ICreateTypeLib *This,
  1561. LPOLESTR szHelpFileName);
  1562. HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
  1563. ICreateTypeLib *This,
  1564. DWORD dwHelpContext);
  1565. HRESULT (STDMETHODCALLTYPE *SetLcid)(
  1566. ICreateTypeLib *This,
  1567. LCID lcid);
  1568. HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
  1569. ICreateTypeLib *This,
  1570. UINT uLibFlags);
  1571. HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
  1572. ICreateTypeLib *This);
  1573. END_INTERFACE
  1574. } ICreateTypeLibVtbl;
  1575. interface ICreateTypeLib {
  1576. CONST_VTBL ICreateTypeLibVtbl* lpVtbl;
  1577. };
  1578. #ifdef COBJMACROS
  1579. #ifndef WIDL_C_INLINE_WRAPPERS
  1580. /*** IUnknown methods ***/
  1581. #define ICreateTypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1582. #define ICreateTypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
  1583. #define ICreateTypeLib_Release(This) (This)->lpVtbl->Release(This)
  1584. /*** ICreateTypeLib methods ***/
  1585. #define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
  1586. #define ICreateTypeLib_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
  1587. #define ICreateTypeLib_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
  1588. #define ICreateTypeLib_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
  1589. #define ICreateTypeLib_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
  1590. #define ICreateTypeLib_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
  1591. #define ICreateTypeLib_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
  1592. #define ICreateTypeLib_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
  1593. #define ICreateTypeLib_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
  1594. #define ICreateTypeLib_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
  1595. #else
  1596. /*** IUnknown methods ***/
  1597. static FORCEINLINE HRESULT ICreateTypeLib_QueryInterface(ICreateTypeLib* This,REFIID riid,void **ppvObject) {
  1598. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1599. }
  1600. static FORCEINLINE ULONG ICreateTypeLib_AddRef(ICreateTypeLib* This) {
  1601. return This->lpVtbl->AddRef(This);
  1602. }
  1603. static FORCEINLINE ULONG ICreateTypeLib_Release(ICreateTypeLib* This) {
  1604. return This->lpVtbl->Release(This);
  1605. }
  1606. /*** ICreateTypeLib methods ***/
  1607. static FORCEINLINE HRESULT ICreateTypeLib_CreateTypeInfo(ICreateTypeLib* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) {
  1608. return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo);
  1609. }
  1610. static FORCEINLINE HRESULT ICreateTypeLib_SetName(ICreateTypeLib* This,LPOLESTR szName) {
  1611. return This->lpVtbl->SetName(This,szName);
  1612. }
  1613. static FORCEINLINE HRESULT ICreateTypeLib_SetVersion(ICreateTypeLib* This,WORD wMajorVerNum,WORD wMinorVerNum) {
  1614. return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
  1615. }
  1616. static FORCEINLINE HRESULT ICreateTypeLib_SetGuid(ICreateTypeLib* This,REFGUID guid) {
  1617. return This->lpVtbl->SetGuid(This,guid);
  1618. }
  1619. static FORCEINLINE HRESULT ICreateTypeLib_SetDocString(ICreateTypeLib* This,LPOLESTR szDoc) {
  1620. return This->lpVtbl->SetDocString(This,szDoc);
  1621. }
  1622. static FORCEINLINE HRESULT ICreateTypeLib_SetHelpFileName(ICreateTypeLib* This,LPOLESTR szHelpFileName) {
  1623. return This->lpVtbl->SetHelpFileName(This,szHelpFileName);
  1624. }
  1625. static FORCEINLINE HRESULT ICreateTypeLib_SetHelpContext(ICreateTypeLib* This,DWORD dwHelpContext) {
  1626. return This->lpVtbl->SetHelpContext(This,dwHelpContext);
  1627. }
  1628. static FORCEINLINE HRESULT ICreateTypeLib_SetLcid(ICreateTypeLib* This,LCID lcid) {
  1629. return This->lpVtbl->SetLcid(This,lcid);
  1630. }
  1631. static FORCEINLINE HRESULT ICreateTypeLib_SetLibFlags(ICreateTypeLib* This,UINT uLibFlags) {
  1632. return This->lpVtbl->SetLibFlags(This,uLibFlags);
  1633. }
  1634. static FORCEINLINE HRESULT ICreateTypeLib_SaveAllChanges(ICreateTypeLib* This) {
  1635. return This->lpVtbl->SaveAllChanges(This);
  1636. }
  1637. #endif
  1638. #endif
  1639. #endif
  1640. #endif /* __ICreateTypeLib_INTERFACE_DEFINED__ */
  1641. /*****************************************************************************
  1642. * ICreateTypeLib2 interface
  1643. */
  1644. #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
  1645. #define __ICreateTypeLib2_INTERFACE_DEFINED__
  1646. typedef ICreateTypeLib2 *LPCREATETYPELIB2;
  1647. DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  1648. #if defined(__cplusplus) && !defined(CINTERFACE)
  1649. MIDL_INTERFACE("0002040f-0000-0000-c000-000000000046")
  1650. ICreateTypeLib2 : public ICreateTypeLib
  1651. {
  1652. virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo(
  1653. LPOLESTR szName) = 0;
  1654. virtual HRESULT STDMETHODCALLTYPE SetCustData(
  1655. REFGUID guid,
  1656. VARIANT *pVarVal) = 0;
  1657. virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
  1658. ULONG dwHelpStringContext) = 0;
  1659. virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll(
  1660. LPOLESTR szFileName) = 0;
  1661. };
  1662. #ifdef __CRT_UUID_DECL
  1663. __CRT_UUID_DECL(ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  1664. #endif
  1665. #else
  1666. typedef struct ICreateTypeLib2Vtbl {
  1667. BEGIN_INTERFACE
  1668. /*** IUnknown methods ***/
  1669. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1670. ICreateTypeLib2 *This,
  1671. REFIID riid,
  1672. void **ppvObject);
  1673. ULONG (STDMETHODCALLTYPE *AddRef)(
  1674. ICreateTypeLib2 *This);
  1675. ULONG (STDMETHODCALLTYPE *Release)(
  1676. ICreateTypeLib2 *This);
  1677. /*** ICreateTypeLib methods ***/
  1678. HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
  1679. ICreateTypeLib2 *This,
  1680. LPOLESTR szName,
  1681. TYPEKIND tkind,
  1682. ICreateTypeInfo **ppCTInfo);
  1683. HRESULT (STDMETHODCALLTYPE *SetName)(
  1684. ICreateTypeLib2 *This,
  1685. LPOLESTR szName);
  1686. HRESULT (STDMETHODCALLTYPE *SetVersion)(
  1687. ICreateTypeLib2 *This,
  1688. WORD wMajorVerNum,
  1689. WORD wMinorVerNum);
  1690. HRESULT (STDMETHODCALLTYPE *SetGuid)(
  1691. ICreateTypeLib2 *This,
  1692. REFGUID guid);
  1693. HRESULT (STDMETHODCALLTYPE *SetDocString)(
  1694. ICreateTypeLib2 *This,
  1695. LPOLESTR szDoc);
  1696. HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
  1697. ICreateTypeLib2 *This,
  1698. LPOLESTR szHelpFileName);
  1699. HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
  1700. ICreateTypeLib2 *This,
  1701. DWORD dwHelpContext);
  1702. HRESULT (STDMETHODCALLTYPE *SetLcid)(
  1703. ICreateTypeLib2 *This,
  1704. LCID lcid);
  1705. HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
  1706. ICreateTypeLib2 *This,
  1707. UINT uLibFlags);
  1708. HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
  1709. ICreateTypeLib2 *This);
  1710. /*** ICreateTypeLib2 methods ***/
  1711. HRESULT (STDMETHODCALLTYPE *DeleteTypeInfo)(
  1712. ICreateTypeLib2 *This,
  1713. LPOLESTR szName);
  1714. HRESULT (STDMETHODCALLTYPE *SetCustData)(
  1715. ICreateTypeLib2 *This,
  1716. REFGUID guid,
  1717. VARIANT *pVarVal);
  1718. HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
  1719. ICreateTypeLib2 *This,
  1720. ULONG dwHelpStringContext);
  1721. HRESULT (STDMETHODCALLTYPE *SetHelpStringDll)(
  1722. ICreateTypeLib2 *This,
  1723. LPOLESTR szFileName);
  1724. END_INTERFACE
  1725. } ICreateTypeLib2Vtbl;
  1726. interface ICreateTypeLib2 {
  1727. CONST_VTBL ICreateTypeLib2Vtbl* lpVtbl;
  1728. };
  1729. #ifdef COBJMACROS
  1730. #ifndef WIDL_C_INLINE_WRAPPERS
  1731. /*** IUnknown methods ***/
  1732. #define ICreateTypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1733. #define ICreateTypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1734. #define ICreateTypeLib2_Release(This) (This)->lpVtbl->Release(This)
  1735. /*** ICreateTypeLib methods ***/
  1736. #define ICreateTypeLib2_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
  1737. #define ICreateTypeLib2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
  1738. #define ICreateTypeLib2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
  1739. #define ICreateTypeLib2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
  1740. #define ICreateTypeLib2_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
  1741. #define ICreateTypeLib2_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
  1742. #define ICreateTypeLib2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
  1743. #define ICreateTypeLib2_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
  1744. #define ICreateTypeLib2_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
  1745. #define ICreateTypeLib2_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
  1746. /*** ICreateTypeLib2 methods ***/
  1747. #define ICreateTypeLib2_DeleteTypeInfo(This,szName) (This)->lpVtbl->DeleteTypeInfo(This,szName)
  1748. #define ICreateTypeLib2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
  1749. #define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
  1750. #define ICreateTypeLib2_SetHelpStringDll(This,szFileName) (This)->lpVtbl->SetHelpStringDll(This,szFileName)
  1751. #else
  1752. /*** IUnknown methods ***/
  1753. static FORCEINLINE HRESULT ICreateTypeLib2_QueryInterface(ICreateTypeLib2* This,REFIID riid,void **ppvObject) {
  1754. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1755. }
  1756. static FORCEINLINE ULONG ICreateTypeLib2_AddRef(ICreateTypeLib2* This) {
  1757. return This->lpVtbl->AddRef(This);
  1758. }
  1759. static FORCEINLINE ULONG ICreateTypeLib2_Release(ICreateTypeLib2* This) {
  1760. return This->lpVtbl->Release(This);
  1761. }
  1762. /*** ICreateTypeLib methods ***/
  1763. static FORCEINLINE HRESULT ICreateTypeLib2_CreateTypeInfo(ICreateTypeLib2* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) {
  1764. return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo);
  1765. }
  1766. static FORCEINLINE HRESULT ICreateTypeLib2_SetName(ICreateTypeLib2* This,LPOLESTR szName) {
  1767. return This->lpVtbl->SetName(This,szName);
  1768. }
  1769. static FORCEINLINE HRESULT ICreateTypeLib2_SetVersion(ICreateTypeLib2* This,WORD wMajorVerNum,WORD wMinorVerNum) {
  1770. return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
  1771. }
  1772. static FORCEINLINE HRESULT ICreateTypeLib2_SetGuid(ICreateTypeLib2* This,REFGUID guid) {
  1773. return This->lpVtbl->SetGuid(This,guid);
  1774. }
  1775. static FORCEINLINE HRESULT ICreateTypeLib2_SetDocString(ICreateTypeLib2* This,LPOLESTR szDoc) {
  1776. return This->lpVtbl->SetDocString(This,szDoc);
  1777. }
  1778. static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpFileName(ICreateTypeLib2* This,LPOLESTR szHelpFileName) {
  1779. return This->lpVtbl->SetHelpFileName(This,szHelpFileName);
  1780. }
  1781. static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpContext(ICreateTypeLib2* This,DWORD dwHelpContext) {
  1782. return This->lpVtbl->SetHelpContext(This,dwHelpContext);
  1783. }
  1784. static FORCEINLINE HRESULT ICreateTypeLib2_SetLcid(ICreateTypeLib2* This,LCID lcid) {
  1785. return This->lpVtbl->SetLcid(This,lcid);
  1786. }
  1787. static FORCEINLINE HRESULT ICreateTypeLib2_SetLibFlags(ICreateTypeLib2* This,UINT uLibFlags) {
  1788. return This->lpVtbl->SetLibFlags(This,uLibFlags);
  1789. }
  1790. static FORCEINLINE HRESULT ICreateTypeLib2_SaveAllChanges(ICreateTypeLib2* This) {
  1791. return This->lpVtbl->SaveAllChanges(This);
  1792. }
  1793. /*** ICreateTypeLib2 methods ***/
  1794. static FORCEINLINE HRESULT ICreateTypeLib2_DeleteTypeInfo(ICreateTypeLib2* This,LPOLESTR szName) {
  1795. return This->lpVtbl->DeleteTypeInfo(This,szName);
  1796. }
  1797. static FORCEINLINE HRESULT ICreateTypeLib2_SetCustData(ICreateTypeLib2* This,REFGUID guid,VARIANT *pVarVal) {
  1798. return This->lpVtbl->SetCustData(This,guid,pVarVal);
  1799. }
  1800. static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpStringContext(ICreateTypeLib2* This,ULONG dwHelpStringContext) {
  1801. return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext);
  1802. }
  1803. static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpStringDll(ICreateTypeLib2* This,LPOLESTR szFileName) {
  1804. return This->lpVtbl->SetHelpStringDll(This,szFileName);
  1805. }
  1806. #endif
  1807. #endif
  1808. #endif
  1809. #endif /* __ICreateTypeLib2_INTERFACE_DEFINED__ */
  1810. #endif
  1811. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  1812. /*****************************************************************************
  1813. * IDispatch interface
  1814. */
  1815. #ifndef __IDispatch_INTERFACE_DEFINED__
  1816. #define __IDispatch_INTERFACE_DEFINED__
  1817. typedef IDispatch *LPDISPATCH;
  1818. #define DISPID_UNKNOWN (-1)
  1819. #define DISPID_VALUE (0)
  1820. #define DISPID_PROPERTYPUT (-3)
  1821. #define DISPID_NEWENUM (-4)
  1822. #define DISPID_EVALUATE (-5)
  1823. #define DISPID_CONSTRUCTOR (-6)
  1824. #define DISPID_DESTRUCTOR (-7)
  1825. #define DISPID_COLLECT (-8)
  1826. DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  1827. #if defined(__cplusplus) && !defined(CINTERFACE)
  1828. MIDL_INTERFACE("00020400-0000-0000-c000-000000000046")
  1829. IDispatch : public IUnknown
  1830. {
  1831. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
  1832. UINT *pctinfo) = 0;
  1833. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  1834. UINT iTInfo,
  1835. LCID lcid,
  1836. ITypeInfo **ppTInfo) = 0;
  1837. virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
  1838. REFIID riid,
  1839. LPOLESTR *rgszNames,
  1840. UINT cNames,
  1841. LCID lcid,
  1842. DISPID *rgDispId) = 0;
  1843. virtual HRESULT STDMETHODCALLTYPE Invoke(
  1844. DISPID dispIdMember,
  1845. REFIID riid,
  1846. LCID lcid,
  1847. WORD wFlags,
  1848. DISPPARAMS *pDispParams,
  1849. VARIANT *pVarResult,
  1850. EXCEPINFO *pExcepInfo,
  1851. UINT *puArgErr) = 0;
  1852. };
  1853. #ifdef __CRT_UUID_DECL
  1854. __CRT_UUID_DECL(IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  1855. #endif
  1856. #else
  1857. typedef struct IDispatchVtbl {
  1858. BEGIN_INTERFACE
  1859. /*** IUnknown methods ***/
  1860. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1861. IDispatch *This,
  1862. REFIID riid,
  1863. void **ppvObject);
  1864. ULONG (STDMETHODCALLTYPE *AddRef)(
  1865. IDispatch *This);
  1866. ULONG (STDMETHODCALLTYPE *Release)(
  1867. IDispatch *This);
  1868. /*** IDispatch methods ***/
  1869. HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  1870. IDispatch *This,
  1871. UINT *pctinfo);
  1872. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  1873. IDispatch *This,
  1874. UINT iTInfo,
  1875. LCID lcid,
  1876. ITypeInfo **ppTInfo);
  1877. HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  1878. IDispatch *This,
  1879. REFIID riid,
  1880. LPOLESTR *rgszNames,
  1881. UINT cNames,
  1882. LCID lcid,
  1883. DISPID *rgDispId);
  1884. HRESULT (STDMETHODCALLTYPE *Invoke)(
  1885. IDispatch *This,
  1886. DISPID dispIdMember,
  1887. REFIID riid,
  1888. LCID lcid,
  1889. WORD wFlags,
  1890. DISPPARAMS *pDispParams,
  1891. VARIANT *pVarResult,
  1892. EXCEPINFO *pExcepInfo,
  1893. UINT *puArgErr);
  1894. END_INTERFACE
  1895. } IDispatchVtbl;
  1896. interface IDispatch {
  1897. CONST_VTBL IDispatchVtbl* lpVtbl;
  1898. };
  1899. #ifdef COBJMACROS
  1900. #ifndef WIDL_C_INLINE_WRAPPERS
  1901. /*** IUnknown methods ***/
  1902. #define IDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1903. #define IDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
  1904. #define IDispatch_Release(This) (This)->lpVtbl->Release(This)
  1905. /*** IDispatch methods ***/
  1906. #define IDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  1907. #define IDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1908. #define IDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1909. #define IDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1910. #else
  1911. /*** IUnknown methods ***/
  1912. static FORCEINLINE HRESULT IDispatch_QueryInterface(IDispatch* This,REFIID riid,void **ppvObject) {
  1913. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1914. }
  1915. static FORCEINLINE ULONG IDispatch_AddRef(IDispatch* This) {
  1916. return This->lpVtbl->AddRef(This);
  1917. }
  1918. static FORCEINLINE ULONG IDispatch_Release(IDispatch* This) {
  1919. return This->lpVtbl->Release(This);
  1920. }
  1921. /*** IDispatch methods ***/
  1922. static FORCEINLINE HRESULT IDispatch_GetTypeInfoCount(IDispatch* This,UINT *pctinfo) {
  1923. return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  1924. }
  1925. static FORCEINLINE HRESULT IDispatch_GetTypeInfo(IDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  1926. return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  1927. }
  1928. static FORCEINLINE HRESULT IDispatch_GetIDsOfNames(IDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  1929. return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  1930. }
  1931. static FORCEINLINE HRESULT IDispatch_Invoke(IDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  1932. return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  1933. }
  1934. #endif
  1935. #endif
  1936. #endif
  1937. HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy(
  1938. IDispatch* This,
  1939. DISPID dispIdMember,
  1940. REFIID riid,
  1941. LCID lcid,
  1942. DWORD dwFlags,
  1943. DISPPARAMS *pDispParams,
  1944. VARIANT *pVarResult,
  1945. EXCEPINFO *pExcepInfo,
  1946. UINT *pArgErr,
  1947. UINT cVarRef,
  1948. UINT *rgVarRefIdx,
  1949. VARIANTARG *rgVarRef);
  1950. void __RPC_STUB IDispatch_RemoteInvoke_Stub(
  1951. IRpcStubBuffer* This,
  1952. IRpcChannelBuffer* pRpcChannelBuffer,
  1953. PRPC_MESSAGE pRpcMessage,
  1954. DWORD* pdwStubPhase);
  1955. HRESULT CALLBACK IDispatch_Invoke_Proxy(
  1956. IDispatch* This,
  1957. DISPID dispIdMember,
  1958. REFIID riid,
  1959. LCID lcid,
  1960. WORD wFlags,
  1961. DISPPARAMS *pDispParams,
  1962. VARIANT *pVarResult,
  1963. EXCEPINFO *pExcepInfo,
  1964. UINT *puArgErr);
  1965. HRESULT __RPC_STUB IDispatch_Invoke_Stub(
  1966. IDispatch* This,
  1967. DISPID dispIdMember,
  1968. REFIID riid,
  1969. LCID lcid,
  1970. DWORD dwFlags,
  1971. DISPPARAMS *pDispParams,
  1972. VARIANT *pVarResult,
  1973. EXCEPINFO *pExcepInfo,
  1974. UINT *pArgErr,
  1975. UINT cVarRef,
  1976. UINT *rgVarRefIdx,
  1977. VARIANTARG *rgVarRef);
  1978. #endif /* __IDispatch_INTERFACE_DEFINED__ */
  1979. /*****************************************************************************
  1980. * IEnumVARIANT interface
  1981. */
  1982. #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
  1983. #define __IEnumVARIANT_INTERFACE_DEFINED__
  1984. typedef IEnumVARIANT *LPENUMVARIANT;
  1985. DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  1986. #if defined(__cplusplus) && !defined(CINTERFACE)
  1987. MIDL_INTERFACE("00020404-0000-0000-c000-000000000046")
  1988. IEnumVARIANT : public IUnknown
  1989. {
  1990. virtual HRESULT STDMETHODCALLTYPE Next(
  1991. ULONG celt,
  1992. VARIANT *rgVar,
  1993. ULONG *pCeltFetched) = 0;
  1994. virtual HRESULT STDMETHODCALLTYPE Skip(
  1995. ULONG celt) = 0;
  1996. virtual HRESULT STDMETHODCALLTYPE Reset(
  1997. ) = 0;
  1998. virtual HRESULT STDMETHODCALLTYPE Clone(
  1999. IEnumVARIANT **ppEnum) = 0;
  2000. };
  2001. #ifdef __CRT_UUID_DECL
  2002. __CRT_UUID_DECL(IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  2003. #endif
  2004. #else
  2005. typedef struct IEnumVARIANTVtbl {
  2006. BEGIN_INTERFACE
  2007. /*** IUnknown methods ***/
  2008. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2009. IEnumVARIANT *This,
  2010. REFIID riid,
  2011. void **ppvObject);
  2012. ULONG (STDMETHODCALLTYPE *AddRef)(
  2013. IEnumVARIANT *This);
  2014. ULONG (STDMETHODCALLTYPE *Release)(
  2015. IEnumVARIANT *This);
  2016. /*** IEnumVARIANT methods ***/
  2017. HRESULT (STDMETHODCALLTYPE *Next)(
  2018. IEnumVARIANT *This,
  2019. ULONG celt,
  2020. VARIANT *rgVar,
  2021. ULONG *pCeltFetched);
  2022. HRESULT (STDMETHODCALLTYPE *Skip)(
  2023. IEnumVARIANT *This,
  2024. ULONG celt);
  2025. HRESULT (STDMETHODCALLTYPE *Reset)(
  2026. IEnumVARIANT *This);
  2027. HRESULT (STDMETHODCALLTYPE *Clone)(
  2028. IEnumVARIANT *This,
  2029. IEnumVARIANT **ppEnum);
  2030. END_INTERFACE
  2031. } IEnumVARIANTVtbl;
  2032. interface IEnumVARIANT {
  2033. CONST_VTBL IEnumVARIANTVtbl* lpVtbl;
  2034. };
  2035. #ifdef COBJMACROS
  2036. #ifndef WIDL_C_INLINE_WRAPPERS
  2037. /*** IUnknown methods ***/
  2038. #define IEnumVARIANT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2039. #define IEnumVARIANT_AddRef(This) (This)->lpVtbl->AddRef(This)
  2040. #define IEnumVARIANT_Release(This) (This)->lpVtbl->Release(This)
  2041. /*** IEnumVARIANT methods ***/
  2042. #define IEnumVARIANT_Next(This,celt,rgVar,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgVar,pCeltFetched)
  2043. #define IEnumVARIANT_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  2044. #define IEnumVARIANT_Reset(This) (This)->lpVtbl->Reset(This)
  2045. #define IEnumVARIANT_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
  2046. #else
  2047. /*** IUnknown methods ***/
  2048. static FORCEINLINE HRESULT IEnumVARIANT_QueryInterface(IEnumVARIANT* This,REFIID riid,void **ppvObject) {
  2049. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2050. }
  2051. static FORCEINLINE ULONG IEnumVARIANT_AddRef(IEnumVARIANT* This) {
  2052. return This->lpVtbl->AddRef(This);
  2053. }
  2054. static FORCEINLINE ULONG IEnumVARIANT_Release(IEnumVARIANT* This) {
  2055. return This->lpVtbl->Release(This);
  2056. }
  2057. /*** IEnumVARIANT methods ***/
  2058. static FORCEINLINE HRESULT IEnumVARIANT_Next(IEnumVARIANT* This,ULONG celt,VARIANT *rgVar,ULONG *pCeltFetched) {
  2059. return This->lpVtbl->Next(This,celt,rgVar,pCeltFetched);
  2060. }
  2061. static FORCEINLINE HRESULT IEnumVARIANT_Skip(IEnumVARIANT* This,ULONG celt) {
  2062. return This->lpVtbl->Skip(This,celt);
  2063. }
  2064. static FORCEINLINE HRESULT IEnumVARIANT_Reset(IEnumVARIANT* This) {
  2065. return This->lpVtbl->Reset(This);
  2066. }
  2067. static FORCEINLINE HRESULT IEnumVARIANT_Clone(IEnumVARIANT* This,IEnumVARIANT **ppEnum) {
  2068. return This->lpVtbl->Clone(This,ppEnum);
  2069. }
  2070. #endif
  2071. #endif
  2072. #endif
  2073. HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy(
  2074. IEnumVARIANT* This,
  2075. ULONG celt,
  2076. VARIANT *rgVar,
  2077. ULONG *pCeltFetched);
  2078. void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
  2079. IRpcStubBuffer* This,
  2080. IRpcChannelBuffer* pRpcChannelBuffer,
  2081. PRPC_MESSAGE pRpcMessage,
  2082. DWORD* pdwStubPhase);
  2083. HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
  2084. IEnumVARIANT* This,
  2085. ULONG celt,
  2086. VARIANT *rgVar,
  2087. ULONG *pCeltFetched);
  2088. HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
  2089. IEnumVARIANT* This,
  2090. ULONG celt,
  2091. VARIANT *rgVar,
  2092. ULONG *pCeltFetched);
  2093. #endif /* __IEnumVARIANT_INTERFACE_DEFINED__ */
  2094. /*****************************************************************************
  2095. * ITypeComp interface
  2096. */
  2097. #ifndef __ITypeComp_INTERFACE_DEFINED__
  2098. #define __ITypeComp_INTERFACE_DEFINED__
  2099. typedef ITypeComp *LPTYPECOMP;
  2100. typedef enum tagDESCKIND {
  2101. DESCKIND_NONE = 0,
  2102. DESCKIND_FUNCDESC = 1,
  2103. DESCKIND_VARDESC = 2,
  2104. DESCKIND_TYPECOMP = 3,
  2105. DESCKIND_IMPLICITAPPOBJ = 4,
  2106. DESCKIND_MAX = 5
  2107. } DESCKIND;
  2108. typedef union tagBINDPTR {
  2109. FUNCDESC *lpfuncdesc;
  2110. VARDESC *lpvardesc;
  2111. ITypeComp *lptcomp;
  2112. } BINDPTR;
  2113. typedef union tagBINDPTR *LPBINDPTR;
  2114. DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  2115. #if defined(__cplusplus) && !defined(CINTERFACE)
  2116. MIDL_INTERFACE("00020403-0000-0000-c000-000000000046")
  2117. ITypeComp : public IUnknown
  2118. {
  2119. virtual HRESULT STDMETHODCALLTYPE Bind(
  2120. LPOLESTR szName,
  2121. ULONG lHashVal,
  2122. WORD wFlags,
  2123. ITypeInfo **ppTInfo,
  2124. DESCKIND *pDescKind,
  2125. BINDPTR *pBindPtr) = 0;
  2126. virtual HRESULT STDMETHODCALLTYPE BindType(
  2127. LPOLESTR szName,
  2128. ULONG lHashVal,
  2129. ITypeInfo **ppTInfo,
  2130. ITypeComp **ppTComp) = 0;
  2131. };
  2132. #ifdef __CRT_UUID_DECL
  2133. __CRT_UUID_DECL(ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  2134. #endif
  2135. #else
  2136. typedef struct ITypeCompVtbl {
  2137. BEGIN_INTERFACE
  2138. /*** IUnknown methods ***/
  2139. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2140. ITypeComp *This,
  2141. REFIID riid,
  2142. void **ppvObject);
  2143. ULONG (STDMETHODCALLTYPE *AddRef)(
  2144. ITypeComp *This);
  2145. ULONG (STDMETHODCALLTYPE *Release)(
  2146. ITypeComp *This);
  2147. /*** ITypeComp methods ***/
  2148. HRESULT (STDMETHODCALLTYPE *Bind)(
  2149. ITypeComp *This,
  2150. LPOLESTR szName,
  2151. ULONG lHashVal,
  2152. WORD wFlags,
  2153. ITypeInfo **ppTInfo,
  2154. DESCKIND *pDescKind,
  2155. BINDPTR *pBindPtr);
  2156. HRESULT (STDMETHODCALLTYPE *BindType)(
  2157. ITypeComp *This,
  2158. LPOLESTR szName,
  2159. ULONG lHashVal,
  2160. ITypeInfo **ppTInfo,
  2161. ITypeComp **ppTComp);
  2162. END_INTERFACE
  2163. } ITypeCompVtbl;
  2164. interface ITypeComp {
  2165. CONST_VTBL ITypeCompVtbl* lpVtbl;
  2166. };
  2167. #ifdef COBJMACROS
  2168. #ifndef WIDL_C_INLINE_WRAPPERS
  2169. /*** IUnknown methods ***/
  2170. #define ITypeComp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2171. #define ITypeComp_AddRef(This) (This)->lpVtbl->AddRef(This)
  2172. #define ITypeComp_Release(This) (This)->lpVtbl->Release(This)
  2173. /*** ITypeComp methods ***/
  2174. #define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) (This)->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr)
  2175. #define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp) (This)->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp)
  2176. #else
  2177. /*** IUnknown methods ***/
  2178. static FORCEINLINE HRESULT ITypeComp_QueryInterface(ITypeComp* This,REFIID riid,void **ppvObject) {
  2179. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2180. }
  2181. static FORCEINLINE ULONG ITypeComp_AddRef(ITypeComp* This) {
  2182. return This->lpVtbl->AddRef(This);
  2183. }
  2184. static FORCEINLINE ULONG ITypeComp_Release(ITypeComp* This) {
  2185. return This->lpVtbl->Release(This);
  2186. }
  2187. /*** ITypeComp methods ***/
  2188. static FORCEINLINE HRESULT ITypeComp_Bind(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,WORD wFlags,ITypeInfo **ppTInfo,DESCKIND *pDescKind,BINDPTR *pBindPtr) {
  2189. return This->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr);
  2190. }
  2191. static FORCEINLINE HRESULT ITypeComp_BindType(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,ITypeInfo **ppTInfo,ITypeComp **ppTComp) {
  2192. return This->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp);
  2193. }
  2194. #endif
  2195. #endif
  2196. #endif
  2197. HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy(
  2198. ITypeComp* This,
  2199. LPOLESTR szName,
  2200. ULONG lHashVal,
  2201. WORD wFlags,
  2202. ITypeInfo **ppTInfo,
  2203. DESCKIND *pDescKind,
  2204. LPFUNCDESC *ppFuncDesc,
  2205. LPVARDESC *ppVarDesc,
  2206. ITypeComp **ppTypeComp,
  2207. CLEANLOCALSTORAGE *pDummy);
  2208. void __RPC_STUB ITypeComp_RemoteBind_Stub(
  2209. IRpcStubBuffer* This,
  2210. IRpcChannelBuffer* pRpcChannelBuffer,
  2211. PRPC_MESSAGE pRpcMessage,
  2212. DWORD* pdwStubPhase);
  2213. HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy(
  2214. ITypeComp* This,
  2215. LPOLESTR szName,
  2216. ULONG lHashVal,
  2217. ITypeInfo **ppTInfo);
  2218. void __RPC_STUB ITypeComp_RemoteBindType_Stub(
  2219. IRpcStubBuffer* This,
  2220. IRpcChannelBuffer* pRpcChannelBuffer,
  2221. PRPC_MESSAGE pRpcMessage,
  2222. DWORD* pdwStubPhase);
  2223. HRESULT CALLBACK ITypeComp_Bind_Proxy(
  2224. ITypeComp* This,
  2225. LPOLESTR szName,
  2226. ULONG lHashVal,
  2227. WORD wFlags,
  2228. ITypeInfo **ppTInfo,
  2229. DESCKIND *pDescKind,
  2230. BINDPTR *pBindPtr);
  2231. HRESULT __RPC_STUB ITypeComp_Bind_Stub(
  2232. ITypeComp* This,
  2233. LPOLESTR szName,
  2234. ULONG lHashVal,
  2235. WORD wFlags,
  2236. ITypeInfo **ppTInfo,
  2237. DESCKIND *pDescKind,
  2238. LPFUNCDESC *ppFuncDesc,
  2239. LPVARDESC *ppVarDesc,
  2240. ITypeComp **ppTypeComp,
  2241. CLEANLOCALSTORAGE *pDummy);
  2242. HRESULT CALLBACK ITypeComp_BindType_Proxy(
  2243. ITypeComp* This,
  2244. LPOLESTR szName,
  2245. ULONG lHashVal,
  2246. ITypeInfo **ppTInfo,
  2247. ITypeComp **ppTComp);
  2248. HRESULT __RPC_STUB ITypeComp_BindType_Stub(
  2249. ITypeComp* This,
  2250. LPOLESTR szName,
  2251. ULONG lHashVal,
  2252. ITypeInfo **ppTInfo);
  2253. #endif /* __ITypeComp_INTERFACE_DEFINED__ */
  2254. #endif
  2255. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  2256. /*****************************************************************************
  2257. * ITypeInfo interface
  2258. */
  2259. #ifndef __ITypeInfo_INTERFACE_DEFINED__
  2260. #define __ITypeInfo_INTERFACE_DEFINED__
  2261. typedef ITypeInfo *LPTYPEINFO;
  2262. DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  2263. #if defined(__cplusplus) && !defined(CINTERFACE)
  2264. MIDL_INTERFACE("00020401-0000-0000-c000-000000000046")
  2265. ITypeInfo : public IUnknown
  2266. {
  2267. virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
  2268. TYPEATTR **ppTypeAttr) = 0;
  2269. virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
  2270. ITypeComp **ppTComp) = 0;
  2271. virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
  2272. UINT index,
  2273. FUNCDESC **ppFuncDesc) = 0;
  2274. virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
  2275. UINT index,
  2276. VARDESC **ppVarDesc) = 0;
  2277. virtual HRESULT STDMETHODCALLTYPE GetNames(
  2278. MEMBERID memid,
  2279. BSTR *rgBstrNames,
  2280. UINT cMaxNames,
  2281. UINT *pcNames) = 0;
  2282. virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
  2283. UINT index,
  2284. HREFTYPE *pRefType) = 0;
  2285. virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
  2286. UINT index,
  2287. INT *pImplTypeFlags) = 0;
  2288. virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
  2289. LPOLESTR *rgszNames,
  2290. UINT cNames,
  2291. MEMBERID *pMemId) = 0;
  2292. virtual HRESULT STDMETHODCALLTYPE Invoke(
  2293. PVOID pvInstance,
  2294. MEMBERID memid,
  2295. WORD wFlags,
  2296. DISPPARAMS *pDispParams,
  2297. VARIANT *pVarResult,
  2298. EXCEPINFO *pExcepInfo,
  2299. UINT *puArgErr) = 0;
  2300. virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
  2301. MEMBERID memid,
  2302. BSTR *pBstrName,
  2303. BSTR *pBstrDocString,
  2304. DWORD *pdwHelpContext,
  2305. BSTR *pBstrHelpFile) = 0;
  2306. virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
  2307. MEMBERID memid,
  2308. INVOKEKIND invKind,
  2309. BSTR *pBstrDllName,
  2310. BSTR *pBstrName,
  2311. WORD *pwOrdinal) = 0;
  2312. virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
  2313. HREFTYPE hRefType,
  2314. ITypeInfo **ppTInfo) = 0;
  2315. virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
  2316. MEMBERID memid,
  2317. INVOKEKIND invKind,
  2318. PVOID *ppv) = 0;
  2319. virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  2320. IUnknown *pUnkOuter,
  2321. REFIID riid,
  2322. PVOID *ppvObj) = 0;
  2323. virtual HRESULT STDMETHODCALLTYPE GetMops(
  2324. MEMBERID memid,
  2325. BSTR *pBstrMops) = 0;
  2326. virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
  2327. ITypeLib **ppTLib,
  2328. UINT *pIndex) = 0;
  2329. virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
  2330. TYPEATTR *pTypeAttr) = 0;
  2331. virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
  2332. FUNCDESC *pFuncDesc) = 0;
  2333. virtual void STDMETHODCALLTYPE ReleaseVarDesc(
  2334. VARDESC *pVarDesc) = 0;
  2335. };
  2336. #ifdef __CRT_UUID_DECL
  2337. __CRT_UUID_DECL(ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  2338. #endif
  2339. #else
  2340. typedef struct ITypeInfoVtbl {
  2341. BEGIN_INTERFACE
  2342. /*** IUnknown methods ***/
  2343. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2344. ITypeInfo *This,
  2345. REFIID riid,
  2346. void **ppvObject);
  2347. ULONG (STDMETHODCALLTYPE *AddRef)(
  2348. ITypeInfo *This);
  2349. ULONG (STDMETHODCALLTYPE *Release)(
  2350. ITypeInfo *This);
  2351. /*** ITypeInfo methods ***/
  2352. HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
  2353. ITypeInfo *This,
  2354. TYPEATTR **ppTypeAttr);
  2355. HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
  2356. ITypeInfo *This,
  2357. ITypeComp **ppTComp);
  2358. HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
  2359. ITypeInfo *This,
  2360. UINT index,
  2361. FUNCDESC **ppFuncDesc);
  2362. HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
  2363. ITypeInfo *This,
  2364. UINT index,
  2365. VARDESC **ppVarDesc);
  2366. HRESULT (STDMETHODCALLTYPE *GetNames)(
  2367. ITypeInfo *This,
  2368. MEMBERID memid,
  2369. BSTR *rgBstrNames,
  2370. UINT cMaxNames,
  2371. UINT *pcNames);
  2372. HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
  2373. ITypeInfo *This,
  2374. UINT index,
  2375. HREFTYPE *pRefType);
  2376. HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
  2377. ITypeInfo *This,
  2378. UINT index,
  2379. INT *pImplTypeFlags);
  2380. HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  2381. ITypeInfo *This,
  2382. LPOLESTR *rgszNames,
  2383. UINT cNames,
  2384. MEMBERID *pMemId);
  2385. HRESULT (STDMETHODCALLTYPE *Invoke)(
  2386. ITypeInfo *This,
  2387. PVOID pvInstance,
  2388. MEMBERID memid,
  2389. WORD wFlags,
  2390. DISPPARAMS *pDispParams,
  2391. VARIANT *pVarResult,
  2392. EXCEPINFO *pExcepInfo,
  2393. UINT *puArgErr);
  2394. HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
  2395. ITypeInfo *This,
  2396. MEMBERID memid,
  2397. BSTR *pBstrName,
  2398. BSTR *pBstrDocString,
  2399. DWORD *pdwHelpContext,
  2400. BSTR *pBstrHelpFile);
  2401. HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
  2402. ITypeInfo *This,
  2403. MEMBERID memid,
  2404. INVOKEKIND invKind,
  2405. BSTR *pBstrDllName,
  2406. BSTR *pBstrName,
  2407. WORD *pwOrdinal);
  2408. HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
  2409. ITypeInfo *This,
  2410. HREFTYPE hRefType,
  2411. ITypeInfo **ppTInfo);
  2412. HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
  2413. ITypeInfo *This,
  2414. MEMBERID memid,
  2415. INVOKEKIND invKind,
  2416. PVOID *ppv);
  2417. HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  2418. ITypeInfo *This,
  2419. IUnknown *pUnkOuter,
  2420. REFIID riid,
  2421. PVOID *ppvObj);
  2422. HRESULT (STDMETHODCALLTYPE *GetMops)(
  2423. ITypeInfo *This,
  2424. MEMBERID memid,
  2425. BSTR *pBstrMops);
  2426. HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
  2427. ITypeInfo *This,
  2428. ITypeLib **ppTLib,
  2429. UINT *pIndex);
  2430. void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
  2431. ITypeInfo *This,
  2432. TYPEATTR *pTypeAttr);
  2433. void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
  2434. ITypeInfo *This,
  2435. FUNCDESC *pFuncDesc);
  2436. void (STDMETHODCALLTYPE *ReleaseVarDesc)(
  2437. ITypeInfo *This,
  2438. VARDESC *pVarDesc);
  2439. END_INTERFACE
  2440. } ITypeInfoVtbl;
  2441. interface ITypeInfo {
  2442. CONST_VTBL ITypeInfoVtbl* lpVtbl;
  2443. };
  2444. #ifdef COBJMACROS
  2445. #ifndef WIDL_C_INLINE_WRAPPERS
  2446. /*** IUnknown methods ***/
  2447. #define ITypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2448. #define ITypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2449. #define ITypeInfo_Release(This) (This)->lpVtbl->Release(This)
  2450. /*** ITypeInfo methods ***/
  2451. #define ITypeInfo_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
  2452. #define ITypeInfo_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
  2453. #define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
  2454. #define ITypeInfo_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
  2455. #define ITypeInfo_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
  2456. #define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
  2457. #define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
  2458. #define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
  2459. #define ITypeInfo_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2460. #define ITypeInfo_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  2461. #define ITypeInfo_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
  2462. #define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
  2463. #define ITypeInfo_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
  2464. #define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
  2465. #define ITypeInfo_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
  2466. #define ITypeInfo_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
  2467. #define ITypeInfo_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
  2468. #define ITypeInfo_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
  2469. #define ITypeInfo_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
  2470. #else
  2471. /*** IUnknown methods ***/
  2472. static FORCEINLINE HRESULT ITypeInfo_QueryInterface(ITypeInfo* This,REFIID riid,void **ppvObject) {
  2473. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2474. }
  2475. static FORCEINLINE ULONG ITypeInfo_AddRef(ITypeInfo* This) {
  2476. return This->lpVtbl->AddRef(This);
  2477. }
  2478. static FORCEINLINE ULONG ITypeInfo_Release(ITypeInfo* This) {
  2479. return This->lpVtbl->Release(This);
  2480. }
  2481. /*** ITypeInfo methods ***/
  2482. static FORCEINLINE HRESULT ITypeInfo_GetTypeAttr(ITypeInfo* This,TYPEATTR **ppTypeAttr) {
  2483. return This->lpVtbl->GetTypeAttr(This,ppTypeAttr);
  2484. }
  2485. static FORCEINLINE HRESULT ITypeInfo_GetTypeComp(ITypeInfo* This,ITypeComp **ppTComp) {
  2486. return This->lpVtbl->GetTypeComp(This,ppTComp);
  2487. }
  2488. static FORCEINLINE HRESULT ITypeInfo_GetFuncDesc(ITypeInfo* This,UINT index,FUNCDESC **ppFuncDesc) {
  2489. return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc);
  2490. }
  2491. static FORCEINLINE HRESULT ITypeInfo_GetVarDesc(ITypeInfo* This,UINT index,VARDESC **ppVarDesc) {
  2492. return This->lpVtbl->GetVarDesc(This,index,ppVarDesc);
  2493. }
  2494. static FORCEINLINE HRESULT ITypeInfo_GetNames(ITypeInfo* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) {
  2495. return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames);
  2496. }
  2497. static FORCEINLINE HRESULT ITypeInfo_GetRefTypeOfImplType(ITypeInfo* This,UINT index,HREFTYPE *pRefType) {
  2498. return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType);
  2499. }
  2500. static FORCEINLINE HRESULT ITypeInfo_GetImplTypeFlags(ITypeInfo* This,UINT index,INT *pImplTypeFlags) {
  2501. return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags);
  2502. }
  2503. static FORCEINLINE HRESULT ITypeInfo_GetIDsOfNames(ITypeInfo* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) {
  2504. return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId);
  2505. }
  2506. static FORCEINLINE HRESULT ITypeInfo_Invoke(ITypeInfo* This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  2507. return This->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  2508. }
  2509. static FORCEINLINE HRESULT ITypeInfo_GetDocumentation(ITypeInfo* This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
  2510. return This->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
  2511. }
  2512. static FORCEINLINE HRESULT ITypeInfo_GetDllEntry(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal) {
  2513. return This->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal);
  2514. }
  2515. static FORCEINLINE HRESULT ITypeInfo_GetRefTypeInfo(ITypeInfo* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) {
  2516. return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo);
  2517. }
  2518. static FORCEINLINE HRESULT ITypeInfo_AddressOfMember(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) {
  2519. return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv);
  2520. }
  2521. static FORCEINLINE HRESULT ITypeInfo_CreateInstance(ITypeInfo* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) {
  2522. return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj);
  2523. }
  2524. static FORCEINLINE HRESULT ITypeInfo_GetMops(ITypeInfo* This,MEMBERID memid,BSTR *pBstrMops) {
  2525. return This->lpVtbl->GetMops(This,memid,pBstrMops);
  2526. }
  2527. static FORCEINLINE HRESULT ITypeInfo_GetContainingTypeLib(ITypeInfo* This,ITypeLib **ppTLib,UINT *pIndex) {
  2528. return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex);
  2529. }
  2530. static FORCEINLINE void ITypeInfo_ReleaseTypeAttr(ITypeInfo* This,TYPEATTR *pTypeAttr) {
  2531. This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr);
  2532. }
  2533. static FORCEINLINE void ITypeInfo_ReleaseFuncDesc(ITypeInfo* This,FUNCDESC *pFuncDesc) {
  2534. This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc);
  2535. }
  2536. static FORCEINLINE void ITypeInfo_ReleaseVarDesc(ITypeInfo* This,VARDESC *pVarDesc) {
  2537. This->lpVtbl->ReleaseVarDesc(This,pVarDesc);
  2538. }
  2539. #endif
  2540. #endif
  2541. #endif
  2542. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetTypeAttr_Proxy(
  2543. ITypeInfo* This,
  2544. LPTYPEATTR *ppTypeAttr,
  2545. CLEANLOCALSTORAGE *pDummy);
  2546. void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
  2547. IRpcStubBuffer* This,
  2548. IRpcChannelBuffer* pRpcChannelBuffer,
  2549. PRPC_MESSAGE pRpcMessage,
  2550. DWORD* pdwStubPhase);
  2551. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetFuncDesc_Proxy(
  2552. ITypeInfo* This,
  2553. UINT index,
  2554. LPFUNCDESC *ppFuncDesc,
  2555. CLEANLOCALSTORAGE *pDummy);
  2556. void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
  2557. IRpcStubBuffer* This,
  2558. IRpcChannelBuffer* pRpcChannelBuffer,
  2559. PRPC_MESSAGE pRpcMessage,
  2560. DWORD* pdwStubPhase);
  2561. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetVarDesc_Proxy(
  2562. ITypeInfo* This,
  2563. UINT index,
  2564. LPVARDESC *ppVarDesc,
  2565. CLEANLOCALSTORAGE *pDummy);
  2566. void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
  2567. IRpcStubBuffer* This,
  2568. IRpcChannelBuffer* pRpcChannelBuffer,
  2569. PRPC_MESSAGE pRpcMessage,
  2570. DWORD* pdwStubPhase);
  2571. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetNames_Proxy(
  2572. ITypeInfo* This,
  2573. MEMBERID memid,
  2574. BSTR *rgBstrNames,
  2575. UINT cMaxNames,
  2576. UINT *pcNames);
  2577. void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
  2578. IRpcStubBuffer* This,
  2579. IRpcChannelBuffer* pRpcChannelBuffer,
  2580. PRPC_MESSAGE pRpcMessage,
  2581. DWORD* pdwStubPhase);
  2582. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalGetIDsOfNames_Proxy(
  2583. ITypeInfo* This);
  2584. void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
  2585. IRpcStubBuffer* This,
  2586. IRpcChannelBuffer* pRpcChannelBuffer,
  2587. PRPC_MESSAGE pRpcMessage,
  2588. DWORD* pdwStubPhase);
  2589. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalInvoke_Proxy(
  2590. ITypeInfo* This);
  2591. void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
  2592. IRpcStubBuffer* This,
  2593. IRpcChannelBuffer* pRpcChannelBuffer,
  2594. PRPC_MESSAGE pRpcMessage,
  2595. DWORD* pdwStubPhase);
  2596. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDocumentation_Proxy(
  2597. ITypeInfo* This,
  2598. MEMBERID memid,
  2599. DWORD refPtrFlags,
  2600. BSTR *pBstrName,
  2601. BSTR *pBstrDocString,
  2602. DWORD *pdwHelpContext,
  2603. BSTR *pBstrHelpFile);
  2604. void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
  2605. IRpcStubBuffer* This,
  2606. IRpcChannelBuffer* pRpcChannelBuffer,
  2607. PRPC_MESSAGE pRpcMessage,
  2608. DWORD* pdwStubPhase);
  2609. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDllEntry_Proxy(
  2610. ITypeInfo* This,
  2611. MEMBERID memid,
  2612. INVOKEKIND invKind,
  2613. DWORD refPtrFlags,
  2614. BSTR *pBstrDllName,
  2615. BSTR *pBstrName,
  2616. WORD *pwOrdinal);
  2617. void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
  2618. IRpcStubBuffer* This,
  2619. IRpcChannelBuffer* pRpcChannelBuffer,
  2620. PRPC_MESSAGE pRpcMessage,
  2621. DWORD* pdwStubPhase);
  2622. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalAddressOfMember_Proxy(
  2623. ITypeInfo* This);
  2624. void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
  2625. IRpcStubBuffer* This,
  2626. IRpcChannelBuffer* pRpcChannelBuffer,
  2627. PRPC_MESSAGE pRpcMessage,
  2628. DWORD* pdwStubPhase);
  2629. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteCreateInstance_Proxy(
  2630. ITypeInfo* This,
  2631. REFIID riid,
  2632. IUnknown **ppvObj);
  2633. void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
  2634. IRpcStubBuffer* This,
  2635. IRpcChannelBuffer* pRpcChannelBuffer,
  2636. PRPC_MESSAGE pRpcMessage,
  2637. DWORD* pdwStubPhase);
  2638. HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetContainingTypeLib_Proxy(
  2639. ITypeInfo* This,
  2640. ITypeLib **ppTLib,
  2641. UINT *pIndex);
  2642. void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
  2643. IRpcStubBuffer* This,
  2644. IRpcChannelBuffer* pRpcChannelBuffer,
  2645. PRPC_MESSAGE pRpcMessage,
  2646. DWORD* pdwStubPhase);
  2647. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseTypeAttr_Proxy(
  2648. ITypeInfo* This);
  2649. void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
  2650. IRpcStubBuffer* This,
  2651. IRpcChannelBuffer* pRpcChannelBuffer,
  2652. PRPC_MESSAGE pRpcMessage,
  2653. DWORD* pdwStubPhase);
  2654. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseFuncDesc_Proxy(
  2655. ITypeInfo* This);
  2656. void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
  2657. IRpcStubBuffer* This,
  2658. IRpcChannelBuffer* pRpcChannelBuffer,
  2659. PRPC_MESSAGE pRpcMessage,
  2660. DWORD* pdwStubPhase);
  2661. HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseVarDesc_Proxy(
  2662. ITypeInfo* This);
  2663. void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
  2664. IRpcStubBuffer* This,
  2665. IRpcChannelBuffer* pRpcChannelBuffer,
  2666. PRPC_MESSAGE pRpcMessage,
  2667. DWORD* pdwStubPhase);
  2668. HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
  2669. ITypeInfo* This,
  2670. TYPEATTR **ppTypeAttr);
  2671. HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
  2672. ITypeInfo* This,
  2673. LPTYPEATTR *ppTypeAttr,
  2674. CLEANLOCALSTORAGE *pDummy);
  2675. HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
  2676. ITypeInfo* This,
  2677. UINT index,
  2678. FUNCDESC **ppFuncDesc);
  2679. HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
  2680. ITypeInfo* This,
  2681. UINT index,
  2682. LPFUNCDESC *ppFuncDesc,
  2683. CLEANLOCALSTORAGE *pDummy);
  2684. HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
  2685. ITypeInfo* This,
  2686. UINT index,
  2687. VARDESC **ppVarDesc);
  2688. HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
  2689. ITypeInfo* This,
  2690. UINT index,
  2691. LPVARDESC *ppVarDesc,
  2692. CLEANLOCALSTORAGE *pDummy);
  2693. HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
  2694. ITypeInfo* This,
  2695. MEMBERID memid,
  2696. BSTR *rgBstrNames,
  2697. UINT cMaxNames,
  2698. UINT *pcNames);
  2699. HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
  2700. ITypeInfo* This,
  2701. MEMBERID memid,
  2702. BSTR *rgBstrNames,
  2703. UINT cMaxNames,
  2704. UINT *pcNames);
  2705. HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
  2706. ITypeInfo* This,
  2707. LPOLESTR *rgszNames,
  2708. UINT cNames,
  2709. MEMBERID *pMemId);
  2710. HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
  2711. ITypeInfo* This);
  2712. HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
  2713. ITypeInfo* This,
  2714. PVOID pvInstance,
  2715. MEMBERID memid,
  2716. WORD wFlags,
  2717. DISPPARAMS *pDispParams,
  2718. VARIANT *pVarResult,
  2719. EXCEPINFO *pExcepInfo,
  2720. UINT *puArgErr);
  2721. HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
  2722. ITypeInfo* This);
  2723. HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
  2724. ITypeInfo* This,
  2725. MEMBERID memid,
  2726. BSTR *pBstrName,
  2727. BSTR *pBstrDocString,
  2728. DWORD *pdwHelpContext,
  2729. BSTR *pBstrHelpFile);
  2730. HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
  2731. ITypeInfo* This,
  2732. MEMBERID memid,
  2733. DWORD refPtrFlags,
  2734. BSTR *pBstrName,
  2735. BSTR *pBstrDocString,
  2736. DWORD *pdwHelpContext,
  2737. BSTR *pBstrHelpFile);
  2738. HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
  2739. ITypeInfo* This,
  2740. MEMBERID memid,
  2741. INVOKEKIND invKind,
  2742. BSTR *pBstrDllName,
  2743. BSTR *pBstrName,
  2744. WORD *pwOrdinal);
  2745. HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
  2746. ITypeInfo* This,
  2747. MEMBERID memid,
  2748. INVOKEKIND invKind,
  2749. DWORD refPtrFlags,
  2750. BSTR *pBstrDllName,
  2751. BSTR *pBstrName,
  2752. WORD *pwOrdinal);
  2753. HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
  2754. ITypeInfo* This,
  2755. MEMBERID memid,
  2756. INVOKEKIND invKind,
  2757. PVOID *ppv);
  2758. HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
  2759. ITypeInfo* This);
  2760. HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
  2761. ITypeInfo* This,
  2762. IUnknown *pUnkOuter,
  2763. REFIID riid,
  2764. PVOID *ppvObj);
  2765. HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
  2766. ITypeInfo* This,
  2767. REFIID riid,
  2768. IUnknown **ppvObj);
  2769. HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
  2770. ITypeInfo* This,
  2771. ITypeLib **ppTLib,
  2772. UINT *pIndex);
  2773. HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
  2774. ITypeInfo* This,
  2775. ITypeLib **ppTLib,
  2776. UINT *pIndex);
  2777. void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
  2778. ITypeInfo* This,
  2779. TYPEATTR *pTypeAttr);
  2780. HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
  2781. ITypeInfo* This);
  2782. void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
  2783. ITypeInfo* This,
  2784. FUNCDESC *pFuncDesc);
  2785. HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
  2786. ITypeInfo* This);
  2787. void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
  2788. ITypeInfo* This,
  2789. VARDESC *pVarDesc);
  2790. HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
  2791. ITypeInfo* This);
  2792. #endif /* __ITypeInfo_INTERFACE_DEFINED__ */
  2793. /*****************************************************************************
  2794. * ITypeInfo2 interface
  2795. */
  2796. #ifndef __ITypeInfo2_INTERFACE_DEFINED__
  2797. #define __ITypeInfo2_INTERFACE_DEFINED__
  2798. typedef ITypeInfo2 *LPTYPEINFO2;
  2799. DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  2800. #if defined(__cplusplus) && !defined(CINTERFACE)
  2801. MIDL_INTERFACE("00020412-0000-0000-c000-000000000046")
  2802. ITypeInfo2 : public ITypeInfo
  2803. {
  2804. virtual HRESULT STDMETHODCALLTYPE GetTypeKind(
  2805. TYPEKIND *pTypeKind) = 0;
  2806. virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
  2807. ULONG *pTypeFlags) = 0;
  2808. virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId(
  2809. MEMBERID memid,
  2810. INVOKEKIND invKind,
  2811. UINT *pFuncIndex) = 0;
  2812. virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId(
  2813. MEMBERID memid,
  2814. UINT *pVarIndex) = 0;
  2815. virtual HRESULT STDMETHODCALLTYPE GetCustData(
  2816. REFGUID guid,
  2817. VARIANT *pVarVal) = 0;
  2818. virtual HRESULT STDMETHODCALLTYPE GetFuncCustData(
  2819. UINT index,
  2820. REFGUID guid,
  2821. VARIANT *pVarVal) = 0;
  2822. virtual HRESULT STDMETHODCALLTYPE GetParamCustData(
  2823. UINT indexFunc,
  2824. UINT indexParam,
  2825. REFGUID guid,
  2826. VARIANT *pVarVal) = 0;
  2827. virtual HRESULT STDMETHODCALLTYPE GetVarCustData(
  2828. UINT index,
  2829. REFGUID guid,
  2830. VARIANT *pVarVal) = 0;
  2831. virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData(
  2832. UINT index,
  2833. REFGUID guid,
  2834. VARIANT *pVarVal) = 0;
  2835. virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
  2836. MEMBERID memid,
  2837. LCID lcid,
  2838. BSTR *pbstrHelpString,
  2839. DWORD *pdwHelpStringContext,
  2840. BSTR *pbstrHelpStringDll) = 0;
  2841. virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
  2842. CUSTDATA *pCustData) = 0;
  2843. virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData(
  2844. UINT index,
  2845. CUSTDATA *pCustData) = 0;
  2846. virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData(
  2847. UINT indexFunc,
  2848. UINT indexParam,
  2849. CUSTDATA *pCustData) = 0;
  2850. virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData(
  2851. UINT index,
  2852. CUSTDATA *pCustData) = 0;
  2853. virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData(
  2854. UINT index,
  2855. CUSTDATA *pCustData) = 0;
  2856. };
  2857. #ifdef __CRT_UUID_DECL
  2858. __CRT_UUID_DECL(ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  2859. #endif
  2860. #else
  2861. typedef struct ITypeInfo2Vtbl {
  2862. BEGIN_INTERFACE
  2863. /*** IUnknown methods ***/
  2864. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2865. ITypeInfo2 *This,
  2866. REFIID riid,
  2867. void **ppvObject);
  2868. ULONG (STDMETHODCALLTYPE *AddRef)(
  2869. ITypeInfo2 *This);
  2870. ULONG (STDMETHODCALLTYPE *Release)(
  2871. ITypeInfo2 *This);
  2872. /*** ITypeInfo methods ***/
  2873. HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
  2874. ITypeInfo2 *This,
  2875. TYPEATTR **ppTypeAttr);
  2876. HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
  2877. ITypeInfo2 *This,
  2878. ITypeComp **ppTComp);
  2879. HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
  2880. ITypeInfo2 *This,
  2881. UINT index,
  2882. FUNCDESC **ppFuncDesc);
  2883. HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
  2884. ITypeInfo2 *This,
  2885. UINT index,
  2886. VARDESC **ppVarDesc);
  2887. HRESULT (STDMETHODCALLTYPE *GetNames)(
  2888. ITypeInfo2 *This,
  2889. MEMBERID memid,
  2890. BSTR *rgBstrNames,
  2891. UINT cMaxNames,
  2892. UINT *pcNames);
  2893. HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
  2894. ITypeInfo2 *This,
  2895. UINT index,
  2896. HREFTYPE *pRefType);
  2897. HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
  2898. ITypeInfo2 *This,
  2899. UINT index,
  2900. INT *pImplTypeFlags);
  2901. HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  2902. ITypeInfo2 *This,
  2903. LPOLESTR *rgszNames,
  2904. UINT cNames,
  2905. MEMBERID *pMemId);
  2906. HRESULT (STDMETHODCALLTYPE *Invoke)(
  2907. ITypeInfo2 *This,
  2908. PVOID pvInstance,
  2909. MEMBERID memid,
  2910. WORD wFlags,
  2911. DISPPARAMS *pDispParams,
  2912. VARIANT *pVarResult,
  2913. EXCEPINFO *pExcepInfo,
  2914. UINT *puArgErr);
  2915. HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
  2916. ITypeInfo2 *This,
  2917. MEMBERID memid,
  2918. BSTR *pBstrName,
  2919. BSTR *pBstrDocString,
  2920. DWORD *pdwHelpContext,
  2921. BSTR *pBstrHelpFile);
  2922. HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
  2923. ITypeInfo2 *This,
  2924. MEMBERID memid,
  2925. INVOKEKIND invKind,
  2926. BSTR *pBstrDllName,
  2927. BSTR *pBstrName,
  2928. WORD *pwOrdinal);
  2929. HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
  2930. ITypeInfo2 *This,
  2931. HREFTYPE hRefType,
  2932. ITypeInfo **ppTInfo);
  2933. HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
  2934. ITypeInfo2 *This,
  2935. MEMBERID memid,
  2936. INVOKEKIND invKind,
  2937. PVOID *ppv);
  2938. HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  2939. ITypeInfo2 *This,
  2940. IUnknown *pUnkOuter,
  2941. REFIID riid,
  2942. PVOID *ppvObj);
  2943. HRESULT (STDMETHODCALLTYPE *GetMops)(
  2944. ITypeInfo2 *This,
  2945. MEMBERID memid,
  2946. BSTR *pBstrMops);
  2947. HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
  2948. ITypeInfo2 *This,
  2949. ITypeLib **ppTLib,
  2950. UINT *pIndex);
  2951. void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
  2952. ITypeInfo2 *This,
  2953. TYPEATTR *pTypeAttr);
  2954. void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
  2955. ITypeInfo2 *This,
  2956. FUNCDESC *pFuncDesc);
  2957. void (STDMETHODCALLTYPE *ReleaseVarDesc)(
  2958. ITypeInfo2 *This,
  2959. VARDESC *pVarDesc);
  2960. /*** ITypeInfo2 methods ***/
  2961. HRESULT (STDMETHODCALLTYPE *GetTypeKind)(
  2962. ITypeInfo2 *This,
  2963. TYPEKIND *pTypeKind);
  2964. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  2965. ITypeInfo2 *This,
  2966. ULONG *pTypeFlags);
  2967. HRESULT (STDMETHODCALLTYPE *GetFuncIndexOfMemId)(
  2968. ITypeInfo2 *This,
  2969. MEMBERID memid,
  2970. INVOKEKIND invKind,
  2971. UINT *pFuncIndex);
  2972. HRESULT (STDMETHODCALLTYPE *GetVarIndexOfMemId)(
  2973. ITypeInfo2 *This,
  2974. MEMBERID memid,
  2975. UINT *pVarIndex);
  2976. HRESULT (STDMETHODCALLTYPE *GetCustData)(
  2977. ITypeInfo2 *This,
  2978. REFGUID guid,
  2979. VARIANT *pVarVal);
  2980. HRESULT (STDMETHODCALLTYPE *GetFuncCustData)(
  2981. ITypeInfo2 *This,
  2982. UINT index,
  2983. REFGUID guid,
  2984. VARIANT *pVarVal);
  2985. HRESULT (STDMETHODCALLTYPE *GetParamCustData)(
  2986. ITypeInfo2 *This,
  2987. UINT indexFunc,
  2988. UINT indexParam,
  2989. REFGUID guid,
  2990. VARIANT *pVarVal);
  2991. HRESULT (STDMETHODCALLTYPE *GetVarCustData)(
  2992. ITypeInfo2 *This,
  2993. UINT index,
  2994. REFGUID guid,
  2995. VARIANT *pVarVal);
  2996. HRESULT (STDMETHODCALLTYPE *GetImplTypeCustData)(
  2997. ITypeInfo2 *This,
  2998. UINT index,
  2999. REFGUID guid,
  3000. VARIANT *pVarVal);
  3001. HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
  3002. ITypeInfo2 *This,
  3003. MEMBERID memid,
  3004. LCID lcid,
  3005. BSTR *pbstrHelpString,
  3006. DWORD *pdwHelpStringContext,
  3007. BSTR *pbstrHelpStringDll);
  3008. HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
  3009. ITypeInfo2 *This,
  3010. CUSTDATA *pCustData);
  3011. HRESULT (STDMETHODCALLTYPE *GetAllFuncCustData)(
  3012. ITypeInfo2 *This,
  3013. UINT index,
  3014. CUSTDATA *pCustData);
  3015. HRESULT (STDMETHODCALLTYPE *GetAllParamCustData)(
  3016. ITypeInfo2 *This,
  3017. UINT indexFunc,
  3018. UINT indexParam,
  3019. CUSTDATA *pCustData);
  3020. HRESULT (STDMETHODCALLTYPE *GetAllVarCustData)(
  3021. ITypeInfo2 *This,
  3022. UINT index,
  3023. CUSTDATA *pCustData);
  3024. HRESULT (STDMETHODCALLTYPE *GetAllImplTypeCustData)(
  3025. ITypeInfo2 *This,
  3026. UINT index,
  3027. CUSTDATA *pCustData);
  3028. END_INTERFACE
  3029. } ITypeInfo2Vtbl;
  3030. interface ITypeInfo2 {
  3031. CONST_VTBL ITypeInfo2Vtbl* lpVtbl;
  3032. };
  3033. #ifdef COBJMACROS
  3034. #ifndef WIDL_C_INLINE_WRAPPERS
  3035. /*** IUnknown methods ***/
  3036. #define ITypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3037. #define ITypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
  3038. #define ITypeInfo2_Release(This) (This)->lpVtbl->Release(This)
  3039. /*** ITypeInfo methods ***/
  3040. #define ITypeInfo2_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
  3041. #define ITypeInfo2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
  3042. #define ITypeInfo2_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
  3043. #define ITypeInfo2_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
  3044. #define ITypeInfo2_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
  3045. #define ITypeInfo2_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
  3046. #define ITypeInfo2_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
  3047. #define ITypeInfo2_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
  3048. #define ITypeInfo2_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  3049. #define ITypeInfo2_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  3050. #define ITypeInfo2_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
  3051. #define ITypeInfo2_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
  3052. #define ITypeInfo2_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
  3053. #define ITypeInfo2_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
  3054. #define ITypeInfo2_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
  3055. #define ITypeInfo2_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
  3056. #define ITypeInfo2_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
  3057. #define ITypeInfo2_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
  3058. #define ITypeInfo2_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
  3059. /*** ITypeInfo2 methods ***/
  3060. #define ITypeInfo2_GetTypeKind(This,pTypeKind) (This)->lpVtbl->GetTypeKind(This,pTypeKind)
  3061. #define ITypeInfo2_GetTypeFlags(This,pTypeFlags) (This)->lpVtbl->GetTypeFlags(This,pTypeFlags)
  3062. #define ITypeInfo2_GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex) (This)->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex)
  3063. #define ITypeInfo2_GetVarIndexOfMemId(This,memid,pVarIndex) (This)->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex)
  3064. #define ITypeInfo2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
  3065. #define ITypeInfo2_GetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetFuncCustData(This,index,guid,pVarVal)
  3066. #define ITypeInfo2_GetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
  3067. #define ITypeInfo2_GetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetVarCustData(This,index,guid,pVarVal)
  3068. #define ITypeInfo2_GetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal)
  3069. #define ITypeInfo2_GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
  3070. #define ITypeInfo2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
  3071. #define ITypeInfo2_GetAllFuncCustData(This,index,pCustData) (This)->lpVtbl->GetAllFuncCustData(This,index,pCustData)
  3072. #define ITypeInfo2_GetAllParamCustData(This,indexFunc,indexParam,pCustData) (This)->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData)
  3073. #define ITypeInfo2_GetAllVarCustData(This,index,pCustData) (This)->lpVtbl->GetAllVarCustData(This,index,pCustData)
  3074. #define ITypeInfo2_GetAllImplTypeCustData(This,index,pCustData) (This)->lpVtbl->GetAllImplTypeCustData(This,index,pCustData)
  3075. #else
  3076. /*** IUnknown methods ***/
  3077. static FORCEINLINE HRESULT ITypeInfo2_QueryInterface(ITypeInfo2* This,REFIID riid,void **ppvObject) {
  3078. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3079. }
  3080. static FORCEINLINE ULONG ITypeInfo2_AddRef(ITypeInfo2* This) {
  3081. return This->lpVtbl->AddRef(This);
  3082. }
  3083. static FORCEINLINE ULONG ITypeInfo2_Release(ITypeInfo2* This) {
  3084. return This->lpVtbl->Release(This);
  3085. }
  3086. /*** ITypeInfo methods ***/
  3087. static FORCEINLINE HRESULT ITypeInfo2_GetTypeAttr(ITypeInfo2* This,TYPEATTR **ppTypeAttr) {
  3088. return This->lpVtbl->GetTypeAttr(This,ppTypeAttr);
  3089. }
  3090. static FORCEINLINE HRESULT ITypeInfo2_GetTypeComp(ITypeInfo2* This,ITypeComp **ppTComp) {
  3091. return This->lpVtbl->GetTypeComp(This,ppTComp);
  3092. }
  3093. static FORCEINLINE HRESULT ITypeInfo2_GetFuncDesc(ITypeInfo2* This,UINT index,FUNCDESC **ppFuncDesc) {
  3094. return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc);
  3095. }
  3096. static FORCEINLINE HRESULT ITypeInfo2_GetVarDesc(ITypeInfo2* This,UINT index,VARDESC **ppVarDesc) {
  3097. return This->lpVtbl->GetVarDesc(This,index,ppVarDesc);
  3098. }
  3099. static FORCEINLINE HRESULT ITypeInfo2_GetNames(ITypeInfo2* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) {
  3100. return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames);
  3101. }
  3102. static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeOfImplType(ITypeInfo2* This,UINT index,HREFTYPE *pRefType) {
  3103. return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType);
  3104. }
  3105. static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeFlags(ITypeInfo2* This,UINT index,INT *pImplTypeFlags) {
  3106. return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags);
  3107. }
  3108. static FORCEINLINE HRESULT ITypeInfo2_GetIDsOfNames(ITypeInfo2* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) {
  3109. return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId);
  3110. }
  3111. static FORCEINLINE HRESULT ITypeInfo2_Invoke(ITypeInfo2* This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  3112. return This->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  3113. }
  3114. static FORCEINLINE HRESULT ITypeInfo2_GetDocumentation(ITypeInfo2* This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
  3115. return This->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
  3116. }
  3117. static FORCEINLINE HRESULT ITypeInfo2_GetDllEntry(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal) {
  3118. return This->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal);
  3119. }
  3120. static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeInfo(ITypeInfo2* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) {
  3121. return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo);
  3122. }
  3123. static FORCEINLINE HRESULT ITypeInfo2_AddressOfMember(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) {
  3124. return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv);
  3125. }
  3126. static FORCEINLINE HRESULT ITypeInfo2_CreateInstance(ITypeInfo2* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) {
  3127. return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj);
  3128. }
  3129. static FORCEINLINE HRESULT ITypeInfo2_GetMops(ITypeInfo2* This,MEMBERID memid,BSTR *pBstrMops) {
  3130. return This->lpVtbl->GetMops(This,memid,pBstrMops);
  3131. }
  3132. static FORCEINLINE HRESULT ITypeInfo2_GetContainingTypeLib(ITypeInfo2* This,ITypeLib **ppTLib,UINT *pIndex) {
  3133. return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex);
  3134. }
  3135. static FORCEINLINE void ITypeInfo2_ReleaseTypeAttr(ITypeInfo2* This,TYPEATTR *pTypeAttr) {
  3136. This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr);
  3137. }
  3138. static FORCEINLINE void ITypeInfo2_ReleaseFuncDesc(ITypeInfo2* This,FUNCDESC *pFuncDesc) {
  3139. This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc);
  3140. }
  3141. static FORCEINLINE void ITypeInfo2_ReleaseVarDesc(ITypeInfo2* This,VARDESC *pVarDesc) {
  3142. This->lpVtbl->ReleaseVarDesc(This,pVarDesc);
  3143. }
  3144. /*** ITypeInfo2 methods ***/
  3145. static FORCEINLINE HRESULT ITypeInfo2_GetTypeKind(ITypeInfo2* This,TYPEKIND *pTypeKind) {
  3146. return This->lpVtbl->GetTypeKind(This,pTypeKind);
  3147. }
  3148. static FORCEINLINE HRESULT ITypeInfo2_GetTypeFlags(ITypeInfo2* This,ULONG *pTypeFlags) {
  3149. return This->lpVtbl->GetTypeFlags(This,pTypeFlags);
  3150. }
  3151. static FORCEINLINE HRESULT ITypeInfo2_GetFuncIndexOfMemId(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex) {
  3152. return This->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex);
  3153. }
  3154. static FORCEINLINE HRESULT ITypeInfo2_GetVarIndexOfMemId(ITypeInfo2* This,MEMBERID memid,UINT *pVarIndex) {
  3155. return This->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex);
  3156. }
  3157. static FORCEINLINE HRESULT ITypeInfo2_GetCustData(ITypeInfo2* This,REFGUID guid,VARIANT *pVarVal) {
  3158. return This->lpVtbl->GetCustData(This,guid,pVarVal);
  3159. }
  3160. static FORCEINLINE HRESULT ITypeInfo2_GetFuncCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  3161. return This->lpVtbl->GetFuncCustData(This,index,guid,pVarVal);
  3162. }
  3163. static FORCEINLINE HRESULT ITypeInfo2_GetParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) {
  3164. return This->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal);
  3165. }
  3166. static FORCEINLINE HRESULT ITypeInfo2_GetVarCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  3167. return This->lpVtbl->GetVarCustData(This,index,guid,pVarVal);
  3168. }
  3169. static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
  3170. return This->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal);
  3171. }
  3172. static FORCEINLINE HRESULT ITypeInfo2_GetDocumentation2(ITypeInfo2* This,MEMBERID memid,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) {
  3173. return This->lpVtbl->GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll);
  3174. }
  3175. static FORCEINLINE HRESULT ITypeInfo2_GetAllCustData(ITypeInfo2* This,CUSTDATA *pCustData) {
  3176. return This->lpVtbl->GetAllCustData(This,pCustData);
  3177. }
  3178. static FORCEINLINE HRESULT ITypeInfo2_GetAllFuncCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
  3179. return This->lpVtbl->GetAllFuncCustData(This,index,pCustData);
  3180. }
  3181. static FORCEINLINE HRESULT ITypeInfo2_GetAllParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,CUSTDATA *pCustData) {
  3182. return This->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData);
  3183. }
  3184. static FORCEINLINE HRESULT ITypeInfo2_GetAllVarCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
  3185. return This->lpVtbl->GetAllVarCustData(This,index,pCustData);
  3186. }
  3187. static FORCEINLINE HRESULT ITypeInfo2_GetAllImplTypeCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
  3188. return This->lpVtbl->GetAllImplTypeCustData(This,index,pCustData);
  3189. }
  3190. #endif
  3191. #endif
  3192. #endif
  3193. HRESULT STDMETHODCALLTYPE ITypeInfo2_RemoteGetDocumentation2_Proxy(
  3194. ITypeInfo2* This,
  3195. MEMBERID memid,
  3196. LCID lcid,
  3197. DWORD refPtrFlags,
  3198. BSTR *pbstrHelpString,
  3199. DWORD *pdwHelpStringContext,
  3200. BSTR *pbstrHelpStringDll);
  3201. void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
  3202. IRpcStubBuffer* This,
  3203. IRpcChannelBuffer* pRpcChannelBuffer,
  3204. PRPC_MESSAGE pRpcMessage,
  3205. DWORD* pdwStubPhase);
  3206. HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
  3207. ITypeInfo2* This,
  3208. MEMBERID memid,
  3209. LCID lcid,
  3210. BSTR *pbstrHelpString,
  3211. DWORD *pdwHelpStringContext,
  3212. BSTR *pbstrHelpStringDll);
  3213. HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
  3214. ITypeInfo2* This,
  3215. MEMBERID memid,
  3216. LCID lcid,
  3217. DWORD refPtrFlags,
  3218. BSTR *pbstrHelpString,
  3219. DWORD *pdwHelpStringContext,
  3220. BSTR *pbstrHelpStringDll);
  3221. #endif /* __ITypeInfo2_INTERFACE_DEFINED__ */
  3222. #endif
  3223. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  3224. /*****************************************************************************
  3225. * ITypeLib interface
  3226. */
  3227. #ifndef __ITypeLib_INTERFACE_DEFINED__
  3228. #define __ITypeLib_INTERFACE_DEFINED__
  3229. typedef enum tagSYSKIND {
  3230. SYS_WIN16 = 0,
  3231. SYS_WIN32 = 1,
  3232. SYS_MAC = 2,
  3233. SYS_WIN64 = 3
  3234. } SYSKIND;
  3235. typedef enum tagLIBFLAGS {
  3236. LIBFLAG_FRESTRICTED = 0x1,
  3237. LIBFLAG_FCONTROL = 0x2,
  3238. LIBFLAG_FHIDDEN = 0x4,
  3239. LIBFLAG_FHASDISKIMAGE = 0x8
  3240. } LIBFLAGS;
  3241. typedef ITypeLib *LPTYPELIB;
  3242. typedef struct tagTLIBATTR {
  3243. GUID guid;
  3244. LCID lcid;
  3245. SYSKIND syskind;
  3246. WORD wMajorVerNum;
  3247. WORD wMinorVerNum;
  3248. WORD wLibFlags;
  3249. } TLIBATTR;
  3250. typedef struct tagTLIBATTR *LPTLIBATTR;
  3251. DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  3252. #if defined(__cplusplus) && !defined(CINTERFACE)
  3253. MIDL_INTERFACE("00020402-0000-0000-c000-000000000046")
  3254. ITypeLib : public IUnknown
  3255. {
  3256. virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
  3257. ) = 0;
  3258. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  3259. UINT index,
  3260. ITypeInfo **ppTInfo) = 0;
  3261. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
  3262. UINT index,
  3263. TYPEKIND *pTKind) = 0;
  3264. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
  3265. REFGUID guid,
  3266. ITypeInfo **ppTinfo) = 0;
  3267. virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
  3268. TLIBATTR **ppTLibAttr) = 0;
  3269. virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
  3270. ITypeComp **ppTComp) = 0;
  3271. virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
  3272. INT index,
  3273. BSTR *pBstrName,
  3274. BSTR *pBstrDocString,
  3275. DWORD *pdwHelpContext,
  3276. BSTR *pBstrHelpFile) = 0;
  3277. virtual HRESULT STDMETHODCALLTYPE IsName(
  3278. LPOLESTR szNameBuf,
  3279. ULONG lHashVal,
  3280. WINBOOL *pfName) = 0;
  3281. virtual HRESULT STDMETHODCALLTYPE FindName(
  3282. LPOLESTR szNameBuf,
  3283. ULONG lHashVal,
  3284. ITypeInfo **ppTInfo,
  3285. MEMBERID *rgMemId,
  3286. USHORT *pcFound) = 0;
  3287. virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
  3288. TLIBATTR *pTLibAttr) = 0;
  3289. };
  3290. #ifdef __CRT_UUID_DECL
  3291. __CRT_UUID_DECL(ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  3292. #endif
  3293. #else
  3294. typedef struct ITypeLibVtbl {
  3295. BEGIN_INTERFACE
  3296. /*** IUnknown methods ***/
  3297. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3298. ITypeLib *This,
  3299. REFIID riid,
  3300. void **ppvObject);
  3301. ULONG (STDMETHODCALLTYPE *AddRef)(
  3302. ITypeLib *This);
  3303. ULONG (STDMETHODCALLTYPE *Release)(
  3304. ITypeLib *This);
  3305. /*** ITypeLib methods ***/
  3306. UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  3307. ITypeLib *This);
  3308. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  3309. ITypeLib *This,
  3310. UINT index,
  3311. ITypeInfo **ppTInfo);
  3312. HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
  3313. ITypeLib *This,
  3314. UINT index,
  3315. TYPEKIND *pTKind);
  3316. HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
  3317. ITypeLib *This,
  3318. REFGUID guid,
  3319. ITypeInfo **ppTinfo);
  3320. HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
  3321. ITypeLib *This,
  3322. TLIBATTR **ppTLibAttr);
  3323. HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
  3324. ITypeLib *This,
  3325. ITypeComp **ppTComp);
  3326. HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
  3327. ITypeLib *This,
  3328. INT index,
  3329. BSTR *pBstrName,
  3330. BSTR *pBstrDocString,
  3331. DWORD *pdwHelpContext,
  3332. BSTR *pBstrHelpFile);
  3333. HRESULT (STDMETHODCALLTYPE *IsName)(
  3334. ITypeLib *This,
  3335. LPOLESTR szNameBuf,
  3336. ULONG lHashVal,
  3337. WINBOOL *pfName);
  3338. HRESULT (STDMETHODCALLTYPE *FindName)(
  3339. ITypeLib *This,
  3340. LPOLESTR szNameBuf,
  3341. ULONG lHashVal,
  3342. ITypeInfo **ppTInfo,
  3343. MEMBERID *rgMemId,
  3344. USHORT *pcFound);
  3345. void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
  3346. ITypeLib *This,
  3347. TLIBATTR *pTLibAttr);
  3348. END_INTERFACE
  3349. } ITypeLibVtbl;
  3350. interface ITypeLib {
  3351. CONST_VTBL ITypeLibVtbl* lpVtbl;
  3352. };
  3353. #ifdef COBJMACROS
  3354. #ifndef WIDL_C_INLINE_WRAPPERS
  3355. /*** IUnknown methods ***/
  3356. #define ITypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3357. #define ITypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
  3358. #define ITypeLib_Release(This) (This)->lpVtbl->Release(This)
  3359. /*** ITypeLib methods ***/
  3360. #define ITypeLib_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
  3361. #define ITypeLib_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
  3362. #define ITypeLib_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
  3363. #define ITypeLib_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
  3364. #define ITypeLib_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
  3365. #define ITypeLib_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
  3366. #define ITypeLib_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  3367. #define ITypeLib_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
  3368. #define ITypeLib_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
  3369. #define ITypeLib_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
  3370. #else
  3371. /*** IUnknown methods ***/
  3372. static FORCEINLINE HRESULT ITypeLib_QueryInterface(ITypeLib* This,REFIID riid,void **ppvObject) {
  3373. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3374. }
  3375. static FORCEINLINE ULONG ITypeLib_AddRef(ITypeLib* This) {
  3376. return This->lpVtbl->AddRef(This);
  3377. }
  3378. static FORCEINLINE ULONG ITypeLib_Release(ITypeLib* This) {
  3379. return This->lpVtbl->Release(This);
  3380. }
  3381. /*** ITypeLib methods ***/
  3382. static FORCEINLINE UINT ITypeLib_GetTypeInfoCount(ITypeLib* This) {
  3383. return This->lpVtbl->GetTypeInfoCount(This);
  3384. }
  3385. static FORCEINLINE HRESULT ITypeLib_GetTypeInfo(ITypeLib* This,UINT index,ITypeInfo **ppTInfo) {
  3386. return This->lpVtbl->GetTypeInfo(This,index,ppTInfo);
  3387. }
  3388. static FORCEINLINE HRESULT ITypeLib_GetTypeInfoType(ITypeLib* This,UINT index,TYPEKIND *pTKind) {
  3389. return This->lpVtbl->GetTypeInfoType(This,index,pTKind);
  3390. }
  3391. static FORCEINLINE HRESULT ITypeLib_GetTypeInfoOfGuid(ITypeLib* This,REFGUID guid,ITypeInfo **ppTinfo) {
  3392. return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo);
  3393. }
  3394. static FORCEINLINE HRESULT ITypeLib_GetLibAttr(ITypeLib* This,TLIBATTR **ppTLibAttr) {
  3395. return This->lpVtbl->GetLibAttr(This,ppTLibAttr);
  3396. }
  3397. static FORCEINLINE HRESULT ITypeLib_GetTypeComp(ITypeLib* This,ITypeComp **ppTComp) {
  3398. return This->lpVtbl->GetTypeComp(This,ppTComp);
  3399. }
  3400. static FORCEINLINE HRESULT ITypeLib_GetDocumentation(ITypeLib* This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
  3401. return This->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
  3402. }
  3403. static FORCEINLINE HRESULT ITypeLib_IsName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) {
  3404. return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName);
  3405. }
  3406. static FORCEINLINE HRESULT ITypeLib_FindName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound) {
  3407. return This->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound);
  3408. }
  3409. static FORCEINLINE void ITypeLib_ReleaseTLibAttr(ITypeLib* This,TLIBATTR *pTLibAttr) {
  3410. This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr);
  3411. }
  3412. #endif
  3413. #endif
  3414. #endif
  3415. HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetTypeInfoCount_Proxy(
  3416. ITypeLib* This,
  3417. UINT *pcTInfo);
  3418. void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
  3419. IRpcStubBuffer* This,
  3420. IRpcChannelBuffer* pRpcChannelBuffer,
  3421. PRPC_MESSAGE pRpcMessage,
  3422. DWORD* pdwStubPhase);
  3423. HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetLibAttr_Proxy(
  3424. ITypeLib* This,
  3425. LPTLIBATTR *ppTLibAttr,
  3426. CLEANLOCALSTORAGE *pDummy);
  3427. void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
  3428. IRpcStubBuffer* This,
  3429. IRpcChannelBuffer* pRpcChannelBuffer,
  3430. PRPC_MESSAGE pRpcMessage,
  3431. DWORD* pdwStubPhase);
  3432. HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetDocumentation_Proxy(
  3433. ITypeLib* This,
  3434. INT index,
  3435. DWORD refPtrFlags,
  3436. BSTR *pBstrName,
  3437. BSTR *pBstrDocString,
  3438. DWORD *pdwHelpContext,
  3439. BSTR *pBstrHelpFile);
  3440. void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
  3441. IRpcStubBuffer* This,
  3442. IRpcChannelBuffer* pRpcChannelBuffer,
  3443. PRPC_MESSAGE pRpcMessage,
  3444. DWORD* pdwStubPhase);
  3445. HRESULT STDMETHODCALLTYPE ITypeLib_RemoteIsName_Proxy(
  3446. ITypeLib* This,
  3447. LPOLESTR szNameBuf,
  3448. ULONG lHashVal,
  3449. WINBOOL *pfName,
  3450. BSTR *pBstrLibName);
  3451. void __RPC_STUB ITypeLib_RemoteIsName_Stub(
  3452. IRpcStubBuffer* This,
  3453. IRpcChannelBuffer* pRpcChannelBuffer,
  3454. PRPC_MESSAGE pRpcMessage,
  3455. DWORD* pdwStubPhase);
  3456. HRESULT STDMETHODCALLTYPE ITypeLib_RemoteFindName_Proxy(
  3457. ITypeLib* This,
  3458. LPOLESTR szNameBuf,
  3459. ULONG lHashVal,
  3460. ITypeInfo **ppTInfo,
  3461. MEMBERID *rgMemId,
  3462. USHORT *pcFound,
  3463. BSTR *pBstrLibName);
  3464. void __RPC_STUB ITypeLib_RemoteFindName_Stub(
  3465. IRpcStubBuffer* This,
  3466. IRpcChannelBuffer* pRpcChannelBuffer,
  3467. PRPC_MESSAGE pRpcMessage,
  3468. DWORD* pdwStubPhase);
  3469. HRESULT STDMETHODCALLTYPE ITypeLib_LocalReleaseTLibAttr_Proxy(
  3470. ITypeLib* This);
  3471. void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
  3472. IRpcStubBuffer* This,
  3473. IRpcChannelBuffer* pRpcChannelBuffer,
  3474. PRPC_MESSAGE pRpcMessage,
  3475. DWORD* pdwStubPhase);
  3476. UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
  3477. ITypeLib* This);
  3478. HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
  3479. ITypeLib* This,
  3480. UINT *pcTInfo);
  3481. HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
  3482. ITypeLib* This,
  3483. TLIBATTR **ppTLibAttr);
  3484. HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
  3485. ITypeLib* This,
  3486. LPTLIBATTR *ppTLibAttr,
  3487. CLEANLOCALSTORAGE *pDummy);
  3488. HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
  3489. ITypeLib* This,
  3490. INT index,
  3491. BSTR *pBstrName,
  3492. BSTR *pBstrDocString,
  3493. DWORD *pdwHelpContext,
  3494. BSTR *pBstrHelpFile);
  3495. HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
  3496. ITypeLib* This,
  3497. INT index,
  3498. DWORD refPtrFlags,
  3499. BSTR *pBstrName,
  3500. BSTR *pBstrDocString,
  3501. DWORD *pdwHelpContext,
  3502. BSTR *pBstrHelpFile);
  3503. HRESULT CALLBACK ITypeLib_IsName_Proxy(
  3504. ITypeLib* This,
  3505. LPOLESTR szNameBuf,
  3506. ULONG lHashVal,
  3507. WINBOOL *pfName);
  3508. HRESULT __RPC_STUB ITypeLib_IsName_Stub(
  3509. ITypeLib* This,
  3510. LPOLESTR szNameBuf,
  3511. ULONG lHashVal,
  3512. WINBOOL *pfName,
  3513. BSTR *pBstrLibName);
  3514. HRESULT CALLBACK ITypeLib_FindName_Proxy(
  3515. ITypeLib* This,
  3516. LPOLESTR szNameBuf,
  3517. ULONG lHashVal,
  3518. ITypeInfo **ppTInfo,
  3519. MEMBERID *rgMemId,
  3520. USHORT *pcFound);
  3521. HRESULT __RPC_STUB ITypeLib_FindName_Stub(
  3522. ITypeLib* This,
  3523. LPOLESTR szNameBuf,
  3524. ULONG lHashVal,
  3525. ITypeInfo **ppTInfo,
  3526. MEMBERID *rgMemId,
  3527. USHORT *pcFound,
  3528. BSTR *pBstrLibName);
  3529. void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
  3530. ITypeLib* This,
  3531. TLIBATTR *pTLibAttr);
  3532. HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
  3533. ITypeLib* This);
  3534. #endif /* __ITypeLib_INTERFACE_DEFINED__ */
  3535. #endif
  3536. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  3537. /*****************************************************************************
  3538. * ITypeLib2 interface
  3539. */
  3540. #ifndef __ITypeLib2_INTERFACE_DEFINED__
  3541. #define __ITypeLib2_INTERFACE_DEFINED__
  3542. typedef ITypeLib2 *LPTYPELIB2;
  3543. DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  3544. #if defined(__cplusplus) && !defined(CINTERFACE)
  3545. MIDL_INTERFACE("00020411-0000-0000-c000-000000000046")
  3546. ITypeLib2 : public ITypeLib
  3547. {
  3548. virtual HRESULT STDMETHODCALLTYPE GetCustData(
  3549. REFGUID guid,
  3550. VARIANT *pVarVal) = 0;
  3551. virtual HRESULT STDMETHODCALLTYPE GetLibStatistics(
  3552. ULONG *pcUniqueNames,
  3553. ULONG *pcchUniqueNames) = 0;
  3554. virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
  3555. INT index,
  3556. LCID lcid,
  3557. BSTR *pbstrHelpString,
  3558. DWORD *pdwHelpStringContext,
  3559. BSTR *pbstrHelpStringDll) = 0;
  3560. virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
  3561. CUSTDATA *pCustData) = 0;
  3562. };
  3563. #ifdef __CRT_UUID_DECL
  3564. __CRT_UUID_DECL(ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  3565. #endif
  3566. #else
  3567. typedef struct ITypeLib2Vtbl {
  3568. BEGIN_INTERFACE
  3569. /*** IUnknown methods ***/
  3570. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3571. ITypeLib2 *This,
  3572. REFIID riid,
  3573. void **ppvObject);
  3574. ULONG (STDMETHODCALLTYPE *AddRef)(
  3575. ITypeLib2 *This);
  3576. ULONG (STDMETHODCALLTYPE *Release)(
  3577. ITypeLib2 *This);
  3578. /*** ITypeLib methods ***/
  3579. UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  3580. ITypeLib2 *This);
  3581. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  3582. ITypeLib2 *This,
  3583. UINT index,
  3584. ITypeInfo **ppTInfo);
  3585. HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
  3586. ITypeLib2 *This,
  3587. UINT index,
  3588. TYPEKIND *pTKind);
  3589. HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
  3590. ITypeLib2 *This,
  3591. REFGUID guid,
  3592. ITypeInfo **ppTinfo);
  3593. HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
  3594. ITypeLib2 *This,
  3595. TLIBATTR **ppTLibAttr);
  3596. HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
  3597. ITypeLib2 *This,
  3598. ITypeComp **ppTComp);
  3599. HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
  3600. ITypeLib2 *This,
  3601. INT index,
  3602. BSTR *pBstrName,
  3603. BSTR *pBstrDocString,
  3604. DWORD *pdwHelpContext,
  3605. BSTR *pBstrHelpFile);
  3606. HRESULT (STDMETHODCALLTYPE *IsName)(
  3607. ITypeLib2 *This,
  3608. LPOLESTR szNameBuf,
  3609. ULONG lHashVal,
  3610. WINBOOL *pfName);
  3611. HRESULT (STDMETHODCALLTYPE *FindName)(
  3612. ITypeLib2 *This,
  3613. LPOLESTR szNameBuf,
  3614. ULONG lHashVal,
  3615. ITypeInfo **ppTInfo,
  3616. MEMBERID *rgMemId,
  3617. USHORT *pcFound);
  3618. void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
  3619. ITypeLib2 *This,
  3620. TLIBATTR *pTLibAttr);
  3621. /*** ITypeLib2 methods ***/
  3622. HRESULT (STDMETHODCALLTYPE *GetCustData)(
  3623. ITypeLib2 *This,
  3624. REFGUID guid,
  3625. VARIANT *pVarVal);
  3626. HRESULT (STDMETHODCALLTYPE *GetLibStatistics)(
  3627. ITypeLib2 *This,
  3628. ULONG *pcUniqueNames,
  3629. ULONG *pcchUniqueNames);
  3630. HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
  3631. ITypeLib2 *This,
  3632. INT index,
  3633. LCID lcid,
  3634. BSTR *pbstrHelpString,
  3635. DWORD *pdwHelpStringContext,
  3636. BSTR *pbstrHelpStringDll);
  3637. HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
  3638. ITypeLib2 *This,
  3639. CUSTDATA *pCustData);
  3640. END_INTERFACE
  3641. } ITypeLib2Vtbl;
  3642. interface ITypeLib2 {
  3643. CONST_VTBL ITypeLib2Vtbl* lpVtbl;
  3644. };
  3645. #ifdef COBJMACROS
  3646. #ifndef WIDL_C_INLINE_WRAPPERS
  3647. /*** IUnknown methods ***/
  3648. #define ITypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3649. #define ITypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
  3650. #define ITypeLib2_Release(This) (This)->lpVtbl->Release(This)
  3651. /*** ITypeLib methods ***/
  3652. #define ITypeLib2_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
  3653. #define ITypeLib2_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
  3654. #define ITypeLib2_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
  3655. #define ITypeLib2_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
  3656. #define ITypeLib2_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
  3657. #define ITypeLib2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
  3658. #define ITypeLib2_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  3659. #define ITypeLib2_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
  3660. #define ITypeLib2_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
  3661. #define ITypeLib2_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
  3662. /*** ITypeLib2 methods ***/
  3663. #define ITypeLib2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
  3664. #define ITypeLib2_GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) (This)->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames)
  3665. #define ITypeLib2_GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
  3666. #define ITypeLib2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
  3667. #else
  3668. /*** IUnknown methods ***/
  3669. static FORCEINLINE HRESULT ITypeLib2_QueryInterface(ITypeLib2* This,REFIID riid,void **ppvObject) {
  3670. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3671. }
  3672. static FORCEINLINE ULONG ITypeLib2_AddRef(ITypeLib2* This) {
  3673. return This->lpVtbl->AddRef(This);
  3674. }
  3675. static FORCEINLINE ULONG ITypeLib2_Release(ITypeLib2* This) {
  3676. return This->lpVtbl->Release(This);
  3677. }
  3678. /*** ITypeLib methods ***/
  3679. static FORCEINLINE UINT ITypeLib2_GetTypeInfoCount(ITypeLib2* This) {
  3680. return This->lpVtbl->GetTypeInfoCount(This);
  3681. }
  3682. static FORCEINLINE HRESULT ITypeLib2_GetTypeInfo(ITypeLib2* This,UINT index,ITypeInfo **ppTInfo) {
  3683. return This->lpVtbl->GetTypeInfo(This,index,ppTInfo);
  3684. }
  3685. static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoType(ITypeLib2* This,UINT index,TYPEKIND *pTKind) {
  3686. return This->lpVtbl->GetTypeInfoType(This,index,pTKind);
  3687. }
  3688. static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoOfGuid(ITypeLib2* This,REFGUID guid,ITypeInfo **ppTinfo) {
  3689. return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo);
  3690. }
  3691. static FORCEINLINE HRESULT ITypeLib2_GetLibAttr(ITypeLib2* This,TLIBATTR **ppTLibAttr) {
  3692. return This->lpVtbl->GetLibAttr(This,ppTLibAttr);
  3693. }
  3694. static FORCEINLINE HRESULT ITypeLib2_GetTypeComp(ITypeLib2* This,ITypeComp **ppTComp) {
  3695. return This->lpVtbl->GetTypeComp(This,ppTComp);
  3696. }
  3697. static FORCEINLINE HRESULT ITypeLib2_GetDocumentation(ITypeLib2* This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
  3698. return This->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
  3699. }
  3700. static FORCEINLINE HRESULT ITypeLib2_IsName(ITypeLib2* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) {
  3701. return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName);
  3702. }
  3703. static FORCEINLINE HRESULT ITypeLib2_FindName(ITypeLib2* This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound) {
  3704. return This->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound);
  3705. }
  3706. static FORCEINLINE void ITypeLib2_ReleaseTLibAttr(ITypeLib2* This,TLIBATTR *pTLibAttr) {
  3707. This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr);
  3708. }
  3709. /*** ITypeLib2 methods ***/
  3710. static FORCEINLINE HRESULT ITypeLib2_GetCustData(ITypeLib2* This,REFGUID guid,VARIANT *pVarVal) {
  3711. return This->lpVtbl->GetCustData(This,guid,pVarVal);
  3712. }
  3713. static FORCEINLINE HRESULT ITypeLib2_GetLibStatistics(ITypeLib2* This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames) {
  3714. return This->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames);
  3715. }
  3716. static FORCEINLINE HRESULT ITypeLib2_GetDocumentation2(ITypeLib2* This,INT index,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) {
  3717. return This->lpVtbl->GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll);
  3718. }
  3719. static FORCEINLINE HRESULT ITypeLib2_GetAllCustData(ITypeLib2* This,CUSTDATA *pCustData) {
  3720. return This->lpVtbl->GetAllCustData(This,pCustData);
  3721. }
  3722. #endif
  3723. #endif
  3724. #endif
  3725. HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetLibStatistics_Proxy(
  3726. ITypeLib2* This,
  3727. ULONG *pcUniqueNames,
  3728. ULONG *pcchUniqueNames);
  3729. void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
  3730. IRpcStubBuffer* This,
  3731. IRpcChannelBuffer* pRpcChannelBuffer,
  3732. PRPC_MESSAGE pRpcMessage,
  3733. DWORD* pdwStubPhase);
  3734. HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetDocumentation2_Proxy(
  3735. ITypeLib2* This,
  3736. INT index,
  3737. LCID lcid,
  3738. DWORD refPtrFlags,
  3739. BSTR *pbstrHelpString,
  3740. DWORD *pdwHelpStringContext,
  3741. BSTR *pbstrHelpStringDll);
  3742. void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
  3743. IRpcStubBuffer* This,
  3744. IRpcChannelBuffer* pRpcChannelBuffer,
  3745. PRPC_MESSAGE pRpcMessage,
  3746. DWORD* pdwStubPhase);
  3747. HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
  3748. ITypeLib2* This,
  3749. ULONG *pcUniqueNames,
  3750. ULONG *pcchUniqueNames);
  3751. HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
  3752. ITypeLib2* This,
  3753. ULONG *pcUniqueNames,
  3754. ULONG *pcchUniqueNames);
  3755. HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
  3756. ITypeLib2* This,
  3757. INT index,
  3758. LCID lcid,
  3759. BSTR *pbstrHelpString,
  3760. DWORD *pdwHelpStringContext,
  3761. BSTR *pbstrHelpStringDll);
  3762. HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
  3763. ITypeLib2* This,
  3764. INT index,
  3765. LCID lcid,
  3766. DWORD refPtrFlags,
  3767. BSTR *pbstrHelpString,
  3768. DWORD *pdwHelpStringContext,
  3769. BSTR *pbstrHelpStringDll);
  3770. #endif /* __ITypeLib2_INTERFACE_DEFINED__ */
  3771. /*****************************************************************************
  3772. * ITypeChangeEvents interface
  3773. */
  3774. #ifndef __ITypeChangeEvents_INTERFACE_DEFINED__
  3775. #define __ITypeChangeEvents_INTERFACE_DEFINED__
  3776. typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
  3777. typedef enum tagCHANGEKIND {
  3778. CHANGEKIND_ADDMEMBER = 0,
  3779. CHANGEKIND_DELETEMEMBER = 1,
  3780. CHANGEKIND_SETNAMES = 2,
  3781. CHANGEKIND_SETDOCUMENTATION = 3,
  3782. CHANGEKIND_GENERAL = 4,
  3783. CHANGEKIND_INVALIDATE = 5,
  3784. CHANGEKIND_CHANGEFAILED = 6,
  3785. CHANGEKIND_MAX = 7
  3786. } CHANGEKIND;
  3787. DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  3788. #if defined(__cplusplus) && !defined(CINTERFACE)
  3789. MIDL_INTERFACE("00020410-0000-0000-c000-000000000046")
  3790. ITypeChangeEvents : public IUnknown
  3791. {
  3792. virtual HRESULT STDMETHODCALLTYPE RequestTypeChange(
  3793. CHANGEKIND changeKind,
  3794. ITypeInfo *pTInfoBefore,
  3795. LPOLESTR pStrName,
  3796. INT *pfCancel) = 0;
  3797. virtual HRESULT STDMETHODCALLTYPE AfterTypeChange(
  3798. CHANGEKIND changeKind,
  3799. ITypeInfo *pTInfoAfter,
  3800. LPOLESTR pStrName) = 0;
  3801. };
  3802. #ifdef __CRT_UUID_DECL
  3803. __CRT_UUID_DECL(ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  3804. #endif
  3805. #else
  3806. typedef struct ITypeChangeEventsVtbl {
  3807. BEGIN_INTERFACE
  3808. /*** IUnknown methods ***/
  3809. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3810. ITypeChangeEvents *This,
  3811. REFIID riid,
  3812. void **ppvObject);
  3813. ULONG (STDMETHODCALLTYPE *AddRef)(
  3814. ITypeChangeEvents *This);
  3815. ULONG (STDMETHODCALLTYPE *Release)(
  3816. ITypeChangeEvents *This);
  3817. /*** ITypeChangeEvents methods ***/
  3818. HRESULT (STDMETHODCALLTYPE *RequestTypeChange)(
  3819. ITypeChangeEvents *This,
  3820. CHANGEKIND changeKind,
  3821. ITypeInfo *pTInfoBefore,
  3822. LPOLESTR pStrName,
  3823. INT *pfCancel);
  3824. HRESULT (STDMETHODCALLTYPE *AfterTypeChange)(
  3825. ITypeChangeEvents *This,
  3826. CHANGEKIND changeKind,
  3827. ITypeInfo *pTInfoAfter,
  3828. LPOLESTR pStrName);
  3829. END_INTERFACE
  3830. } ITypeChangeEventsVtbl;
  3831. interface ITypeChangeEvents {
  3832. CONST_VTBL ITypeChangeEventsVtbl* lpVtbl;
  3833. };
  3834. #ifdef COBJMACROS
  3835. #ifndef WIDL_C_INLINE_WRAPPERS
  3836. /*** IUnknown methods ***/
  3837. #define ITypeChangeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3838. #define ITypeChangeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  3839. #define ITypeChangeEvents_Release(This) (This)->lpVtbl->Release(This)
  3840. /*** ITypeChangeEvents methods ***/
  3841. #define ITypeChangeEvents_RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) (This)->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel)
  3842. #define ITypeChangeEvents_AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) (This)->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName)
  3843. #else
  3844. /*** IUnknown methods ***/
  3845. static FORCEINLINE HRESULT ITypeChangeEvents_QueryInterface(ITypeChangeEvents* This,REFIID riid,void **ppvObject) {
  3846. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3847. }
  3848. static FORCEINLINE ULONG ITypeChangeEvents_AddRef(ITypeChangeEvents* This) {
  3849. return This->lpVtbl->AddRef(This);
  3850. }
  3851. static FORCEINLINE ULONG ITypeChangeEvents_Release(ITypeChangeEvents* This) {
  3852. return This->lpVtbl->Release(This);
  3853. }
  3854. /*** ITypeChangeEvents methods ***/
  3855. static FORCEINLINE HRESULT ITypeChangeEvents_RequestTypeChange(ITypeChangeEvents* This,CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel) {
  3856. return This->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel);
  3857. }
  3858. static FORCEINLINE HRESULT ITypeChangeEvents_AfterTypeChange(ITypeChangeEvents* This,CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName) {
  3859. return This->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName);
  3860. }
  3861. #endif
  3862. #endif
  3863. #endif
  3864. #endif /* __ITypeChangeEvents_INTERFACE_DEFINED__ */
  3865. /*****************************************************************************
  3866. * IErrorInfo interface
  3867. */
  3868. #ifndef __IErrorInfo_INTERFACE_DEFINED__
  3869. #define __IErrorInfo_INTERFACE_DEFINED__
  3870. typedef IErrorInfo *LPERRORINFO;
  3871. DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
  3872. #if defined(__cplusplus) && !defined(CINTERFACE)
  3873. MIDL_INTERFACE("1cf2b120-547d-101b-8e65-08002b2bd119")
  3874. IErrorInfo : public IUnknown
  3875. {
  3876. virtual HRESULT STDMETHODCALLTYPE GetGUID(
  3877. GUID *pGUID) = 0;
  3878. virtual HRESULT STDMETHODCALLTYPE GetSource(
  3879. BSTR *pBstrSource) = 0;
  3880. virtual HRESULT STDMETHODCALLTYPE GetDescription(
  3881. BSTR *pBstrDescription) = 0;
  3882. virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
  3883. BSTR *pBstrHelpFile) = 0;
  3884. virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
  3885. DWORD *pdwHelpContext) = 0;
  3886. };
  3887. #ifdef __CRT_UUID_DECL
  3888. __CRT_UUID_DECL(IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
  3889. #endif
  3890. #else
  3891. typedef struct IErrorInfoVtbl {
  3892. BEGIN_INTERFACE
  3893. /*** IUnknown methods ***/
  3894. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3895. IErrorInfo *This,
  3896. REFIID riid,
  3897. void **ppvObject);
  3898. ULONG (STDMETHODCALLTYPE *AddRef)(
  3899. IErrorInfo *This);
  3900. ULONG (STDMETHODCALLTYPE *Release)(
  3901. IErrorInfo *This);
  3902. /*** IErrorInfo methods ***/
  3903. HRESULT (STDMETHODCALLTYPE *GetGUID)(
  3904. IErrorInfo *This,
  3905. GUID *pGUID);
  3906. HRESULT (STDMETHODCALLTYPE *GetSource)(
  3907. IErrorInfo *This,
  3908. BSTR *pBstrSource);
  3909. HRESULT (STDMETHODCALLTYPE *GetDescription)(
  3910. IErrorInfo *This,
  3911. BSTR *pBstrDescription);
  3912. HRESULT (STDMETHODCALLTYPE *GetHelpFile)(
  3913. IErrorInfo *This,
  3914. BSTR *pBstrHelpFile);
  3915. HRESULT (STDMETHODCALLTYPE *GetHelpContext)(
  3916. IErrorInfo *This,
  3917. DWORD *pdwHelpContext);
  3918. END_INTERFACE
  3919. } IErrorInfoVtbl;
  3920. interface IErrorInfo {
  3921. CONST_VTBL IErrorInfoVtbl* lpVtbl;
  3922. };
  3923. #ifdef COBJMACROS
  3924. #ifndef WIDL_C_INLINE_WRAPPERS
  3925. /*** IUnknown methods ***/
  3926. #define IErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3927. #define IErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  3928. #define IErrorInfo_Release(This) (This)->lpVtbl->Release(This)
  3929. /*** IErrorInfo methods ***/
  3930. #define IErrorInfo_GetGUID(This,pGUID) (This)->lpVtbl->GetGUID(This,pGUID)
  3931. #define IErrorInfo_GetSource(This,pBstrSource) (This)->lpVtbl->GetSource(This,pBstrSource)
  3932. #define IErrorInfo_GetDescription(This,pBstrDescription) (This)->lpVtbl->GetDescription(This,pBstrDescription)
  3933. #define IErrorInfo_GetHelpFile(This,pBstrHelpFile) (This)->lpVtbl->GetHelpFile(This,pBstrHelpFile)
  3934. #define IErrorInfo_GetHelpContext(This,pdwHelpContext) (This)->lpVtbl->GetHelpContext(This,pdwHelpContext)
  3935. #else
  3936. /*** IUnknown methods ***/
  3937. static FORCEINLINE HRESULT IErrorInfo_QueryInterface(IErrorInfo* This,REFIID riid,void **ppvObject) {
  3938. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3939. }
  3940. static FORCEINLINE ULONG IErrorInfo_AddRef(IErrorInfo* This) {
  3941. return This->lpVtbl->AddRef(This);
  3942. }
  3943. static FORCEINLINE ULONG IErrorInfo_Release(IErrorInfo* This) {
  3944. return This->lpVtbl->Release(This);
  3945. }
  3946. /*** IErrorInfo methods ***/
  3947. static FORCEINLINE HRESULT IErrorInfo_GetGUID(IErrorInfo* This,GUID *pGUID) {
  3948. return This->lpVtbl->GetGUID(This,pGUID);
  3949. }
  3950. static FORCEINLINE HRESULT IErrorInfo_GetSource(IErrorInfo* This,BSTR *pBstrSource) {
  3951. return This->lpVtbl->GetSource(This,pBstrSource);
  3952. }
  3953. static FORCEINLINE HRESULT IErrorInfo_GetDescription(IErrorInfo* This,BSTR *pBstrDescription) {
  3954. return This->lpVtbl->GetDescription(This,pBstrDescription);
  3955. }
  3956. static FORCEINLINE HRESULT IErrorInfo_GetHelpFile(IErrorInfo* This,BSTR *pBstrHelpFile) {
  3957. return This->lpVtbl->GetHelpFile(This,pBstrHelpFile);
  3958. }
  3959. static FORCEINLINE HRESULT IErrorInfo_GetHelpContext(IErrorInfo* This,DWORD *pdwHelpContext) {
  3960. return This->lpVtbl->GetHelpContext(This,pdwHelpContext);
  3961. }
  3962. #endif
  3963. #endif
  3964. #endif
  3965. #endif /* __IErrorInfo_INTERFACE_DEFINED__ */
  3966. /*****************************************************************************
  3967. * ICreateErrorInfo interface
  3968. */
  3969. #ifndef __ICreateErrorInfo_INTERFACE_DEFINED__
  3970. #define __ICreateErrorInfo_INTERFACE_DEFINED__
  3971. typedef ICreateErrorInfo *LPCREATEERRORINFO;
  3972. DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
  3973. #if defined(__cplusplus) && !defined(CINTERFACE)
  3974. MIDL_INTERFACE("22f03340-547d-101b-8e65-08002b2bd119")
  3975. ICreateErrorInfo : public IUnknown
  3976. {
  3977. virtual HRESULT STDMETHODCALLTYPE SetGUID(
  3978. REFGUID rguid) = 0;
  3979. virtual HRESULT STDMETHODCALLTYPE SetSource(
  3980. LPOLESTR szSource) = 0;
  3981. virtual HRESULT STDMETHODCALLTYPE SetDescription(
  3982. LPOLESTR szDescription) = 0;
  3983. virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
  3984. LPOLESTR szHelpFile) = 0;
  3985. virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
  3986. DWORD dwHelpContext) = 0;
  3987. };
  3988. #ifdef __CRT_UUID_DECL
  3989. __CRT_UUID_DECL(ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
  3990. #endif
  3991. #else
  3992. typedef struct ICreateErrorInfoVtbl {
  3993. BEGIN_INTERFACE
  3994. /*** IUnknown methods ***/
  3995. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3996. ICreateErrorInfo *This,
  3997. REFIID riid,
  3998. void **ppvObject);
  3999. ULONG (STDMETHODCALLTYPE *AddRef)(
  4000. ICreateErrorInfo *This);
  4001. ULONG (STDMETHODCALLTYPE *Release)(
  4002. ICreateErrorInfo *This);
  4003. /*** ICreateErrorInfo methods ***/
  4004. HRESULT (STDMETHODCALLTYPE *SetGUID)(
  4005. ICreateErrorInfo *This,
  4006. REFGUID rguid);
  4007. HRESULT (STDMETHODCALLTYPE *SetSource)(
  4008. ICreateErrorInfo *This,
  4009. LPOLESTR szSource);
  4010. HRESULT (STDMETHODCALLTYPE *SetDescription)(
  4011. ICreateErrorInfo *This,
  4012. LPOLESTR szDescription);
  4013. HRESULT (STDMETHODCALLTYPE *SetHelpFile)(
  4014. ICreateErrorInfo *This,
  4015. LPOLESTR szHelpFile);
  4016. HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
  4017. ICreateErrorInfo *This,
  4018. DWORD dwHelpContext);
  4019. END_INTERFACE
  4020. } ICreateErrorInfoVtbl;
  4021. interface ICreateErrorInfo {
  4022. CONST_VTBL ICreateErrorInfoVtbl* lpVtbl;
  4023. };
  4024. #ifdef COBJMACROS
  4025. #ifndef WIDL_C_INLINE_WRAPPERS
  4026. /*** IUnknown methods ***/
  4027. #define ICreateErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4028. #define ICreateErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  4029. #define ICreateErrorInfo_Release(This) (This)->lpVtbl->Release(This)
  4030. /*** ICreateErrorInfo methods ***/
  4031. #define ICreateErrorInfo_SetGUID(This,rguid) (This)->lpVtbl->SetGUID(This,rguid)
  4032. #define ICreateErrorInfo_SetSource(This,szSource) (This)->lpVtbl->SetSource(This,szSource)
  4033. #define ICreateErrorInfo_SetDescription(This,szDescription) (This)->lpVtbl->SetDescription(This,szDescription)
  4034. #define ICreateErrorInfo_SetHelpFile(This,szHelpFile) (This)->lpVtbl->SetHelpFile(This,szHelpFile)
  4035. #define ICreateErrorInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
  4036. #else
  4037. /*** IUnknown methods ***/
  4038. static FORCEINLINE HRESULT ICreateErrorInfo_QueryInterface(ICreateErrorInfo* This,REFIID riid,void **ppvObject) {
  4039. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4040. }
  4041. static FORCEINLINE ULONG ICreateErrorInfo_AddRef(ICreateErrorInfo* This) {
  4042. return This->lpVtbl->AddRef(This);
  4043. }
  4044. static FORCEINLINE ULONG ICreateErrorInfo_Release(ICreateErrorInfo* This) {
  4045. return This->lpVtbl->Release(This);
  4046. }
  4047. /*** ICreateErrorInfo methods ***/
  4048. static FORCEINLINE HRESULT ICreateErrorInfo_SetGUID(ICreateErrorInfo* This,REFGUID rguid) {
  4049. return This->lpVtbl->SetGUID(This,rguid);
  4050. }
  4051. static FORCEINLINE HRESULT ICreateErrorInfo_SetSource(ICreateErrorInfo* This,LPOLESTR szSource) {
  4052. return This->lpVtbl->SetSource(This,szSource);
  4053. }
  4054. static FORCEINLINE HRESULT ICreateErrorInfo_SetDescription(ICreateErrorInfo* This,LPOLESTR szDescription) {
  4055. return This->lpVtbl->SetDescription(This,szDescription);
  4056. }
  4057. static FORCEINLINE HRESULT ICreateErrorInfo_SetHelpFile(ICreateErrorInfo* This,LPOLESTR szHelpFile) {
  4058. return This->lpVtbl->SetHelpFile(This,szHelpFile);
  4059. }
  4060. static FORCEINLINE HRESULT ICreateErrorInfo_SetHelpContext(ICreateErrorInfo* This,DWORD dwHelpContext) {
  4061. return This->lpVtbl->SetHelpContext(This,dwHelpContext);
  4062. }
  4063. #endif
  4064. #endif
  4065. #endif
  4066. #endif /* __ICreateErrorInfo_INTERFACE_DEFINED__ */
  4067. /*****************************************************************************
  4068. * ISupportErrorInfo interface
  4069. */
  4070. #ifndef __ISupportErrorInfo_INTERFACE_DEFINED__
  4071. #define __ISupportErrorInfo_INTERFACE_DEFINED__
  4072. typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
  4073. DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
  4074. #if defined(__cplusplus) && !defined(CINTERFACE)
  4075. MIDL_INTERFACE("df0b3d60-548f-101b-8e65-08002b2bd119")
  4076. ISupportErrorInfo : public IUnknown
  4077. {
  4078. virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
  4079. REFIID riid) = 0;
  4080. };
  4081. #ifdef __CRT_UUID_DECL
  4082. __CRT_UUID_DECL(ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
  4083. #endif
  4084. #else
  4085. typedef struct ISupportErrorInfoVtbl {
  4086. BEGIN_INTERFACE
  4087. /*** IUnknown methods ***/
  4088. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4089. ISupportErrorInfo *This,
  4090. REFIID riid,
  4091. void **ppvObject);
  4092. ULONG (STDMETHODCALLTYPE *AddRef)(
  4093. ISupportErrorInfo *This);
  4094. ULONG (STDMETHODCALLTYPE *Release)(
  4095. ISupportErrorInfo *This);
  4096. /*** ISupportErrorInfo methods ***/
  4097. HRESULT (STDMETHODCALLTYPE *InterfaceSupportsErrorInfo)(
  4098. ISupportErrorInfo *This,
  4099. REFIID riid);
  4100. END_INTERFACE
  4101. } ISupportErrorInfoVtbl;
  4102. interface ISupportErrorInfo {
  4103. CONST_VTBL ISupportErrorInfoVtbl* lpVtbl;
  4104. };
  4105. #ifdef COBJMACROS
  4106. #ifndef WIDL_C_INLINE_WRAPPERS
  4107. /*** IUnknown methods ***/
  4108. #define ISupportErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4109. #define ISupportErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  4110. #define ISupportErrorInfo_Release(This) (This)->lpVtbl->Release(This)
  4111. /*** ISupportErrorInfo methods ***/
  4112. #define ISupportErrorInfo_InterfaceSupportsErrorInfo(This,riid) (This)->lpVtbl->InterfaceSupportsErrorInfo(This,riid)
  4113. #else
  4114. /*** IUnknown methods ***/
  4115. static FORCEINLINE HRESULT ISupportErrorInfo_QueryInterface(ISupportErrorInfo* This,REFIID riid,void **ppvObject) {
  4116. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4117. }
  4118. static FORCEINLINE ULONG ISupportErrorInfo_AddRef(ISupportErrorInfo* This) {
  4119. return This->lpVtbl->AddRef(This);
  4120. }
  4121. static FORCEINLINE ULONG ISupportErrorInfo_Release(ISupportErrorInfo* This) {
  4122. return This->lpVtbl->Release(This);
  4123. }
  4124. /*** ISupportErrorInfo methods ***/
  4125. static FORCEINLINE HRESULT ISupportErrorInfo_InterfaceSupportsErrorInfo(ISupportErrorInfo* This,REFIID riid) {
  4126. return This->lpVtbl->InterfaceSupportsErrorInfo(This,riid);
  4127. }
  4128. #endif
  4129. #endif
  4130. #endif
  4131. #endif /* __ISupportErrorInfo_INTERFACE_DEFINED__ */
  4132. /*****************************************************************************
  4133. * ITypeFactory interface
  4134. */
  4135. #ifndef __ITypeFactory_INTERFACE_DEFINED__
  4136. #define __ITypeFactory_INTERFACE_DEFINED__
  4137. DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  4138. #if defined(__cplusplus) && !defined(CINTERFACE)
  4139. MIDL_INTERFACE("0000002e-0000-0000-c000-000000000046")
  4140. ITypeFactory : public IUnknown
  4141. {
  4142. virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo(
  4143. ITypeInfo *pTypeInfo,
  4144. REFIID riid,
  4145. IUnknown **ppv) = 0;
  4146. };
  4147. #ifdef __CRT_UUID_DECL
  4148. __CRT_UUID_DECL(ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  4149. #endif
  4150. #else
  4151. typedef struct ITypeFactoryVtbl {
  4152. BEGIN_INTERFACE
  4153. /*** IUnknown methods ***/
  4154. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4155. ITypeFactory *This,
  4156. REFIID riid,
  4157. void **ppvObject);
  4158. ULONG (STDMETHODCALLTYPE *AddRef)(
  4159. ITypeFactory *This);
  4160. ULONG (STDMETHODCALLTYPE *Release)(
  4161. ITypeFactory *This);
  4162. /*** ITypeFactory methods ***/
  4163. HRESULT (STDMETHODCALLTYPE *CreateFromTypeInfo)(
  4164. ITypeFactory *This,
  4165. ITypeInfo *pTypeInfo,
  4166. REFIID riid,
  4167. IUnknown **ppv);
  4168. END_INTERFACE
  4169. } ITypeFactoryVtbl;
  4170. interface ITypeFactory {
  4171. CONST_VTBL ITypeFactoryVtbl* lpVtbl;
  4172. };
  4173. #ifdef COBJMACROS
  4174. #ifndef WIDL_C_INLINE_WRAPPERS
  4175. /*** IUnknown methods ***/
  4176. #define ITypeFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4177. #define ITypeFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  4178. #define ITypeFactory_Release(This) (This)->lpVtbl->Release(This)
  4179. /*** ITypeFactory methods ***/
  4180. #define ITypeFactory_CreateFromTypeInfo(This,pTypeInfo,riid,ppv) (This)->lpVtbl->CreateFromTypeInfo(This,pTypeInfo,riid,ppv)
  4181. #else
  4182. /*** IUnknown methods ***/
  4183. static FORCEINLINE HRESULT ITypeFactory_QueryInterface(ITypeFactory* This,REFIID riid,void **ppvObject) {
  4184. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4185. }
  4186. static FORCEINLINE ULONG ITypeFactory_AddRef(ITypeFactory* This) {
  4187. return This->lpVtbl->AddRef(This);
  4188. }
  4189. static FORCEINLINE ULONG ITypeFactory_Release(ITypeFactory* This) {
  4190. return This->lpVtbl->Release(This);
  4191. }
  4192. /*** ITypeFactory methods ***/
  4193. static FORCEINLINE HRESULT ITypeFactory_CreateFromTypeInfo(ITypeFactory* This,ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv) {
  4194. return This->lpVtbl->CreateFromTypeInfo(This,pTypeInfo,riid,ppv);
  4195. }
  4196. #endif
  4197. #endif
  4198. #endif
  4199. #endif /* __ITypeFactory_INTERFACE_DEFINED__ */
  4200. /*****************************************************************************
  4201. * ITypeMarshal interface
  4202. */
  4203. #ifndef __ITypeMarshal_INTERFACE_DEFINED__
  4204. #define __ITypeMarshal_INTERFACE_DEFINED__
  4205. DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  4206. #if defined(__cplusplus) && !defined(CINTERFACE)
  4207. MIDL_INTERFACE("0000002d-0000-0000-c000-000000000046")
  4208. ITypeMarshal : public IUnknown
  4209. {
  4210. virtual HRESULT STDMETHODCALLTYPE Size(
  4211. PVOID pvType,
  4212. DWORD dwDestContext,
  4213. PVOID pvDestContext,
  4214. ULONG *pSize) = 0;
  4215. virtual HRESULT STDMETHODCALLTYPE Marshal(
  4216. PVOID pvType,
  4217. DWORD dwDestContext,
  4218. PVOID pvDestContext,
  4219. ULONG cbBufferLength,
  4220. BYTE *pBuffer,
  4221. ULONG *pcbWritten) = 0;
  4222. virtual HRESULT STDMETHODCALLTYPE Unmarshal(
  4223. PVOID pvType,
  4224. DWORD dwFlags,
  4225. ULONG cbBufferLength,
  4226. BYTE *pBuffer,
  4227. ULONG *pcbRead) = 0;
  4228. virtual HRESULT STDMETHODCALLTYPE Free(
  4229. PVOID pvType) = 0;
  4230. };
  4231. #ifdef __CRT_UUID_DECL
  4232. __CRT_UUID_DECL(ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  4233. #endif
  4234. #else
  4235. typedef struct ITypeMarshalVtbl {
  4236. BEGIN_INTERFACE
  4237. /*** IUnknown methods ***/
  4238. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4239. ITypeMarshal *This,
  4240. REFIID riid,
  4241. void **ppvObject);
  4242. ULONG (STDMETHODCALLTYPE *AddRef)(
  4243. ITypeMarshal *This);
  4244. ULONG (STDMETHODCALLTYPE *Release)(
  4245. ITypeMarshal *This);
  4246. /*** ITypeMarshal methods ***/
  4247. HRESULT (STDMETHODCALLTYPE *Size)(
  4248. ITypeMarshal *This,
  4249. PVOID pvType,
  4250. DWORD dwDestContext,
  4251. PVOID pvDestContext,
  4252. ULONG *pSize);
  4253. HRESULT (STDMETHODCALLTYPE *Marshal)(
  4254. ITypeMarshal *This,
  4255. PVOID pvType,
  4256. DWORD dwDestContext,
  4257. PVOID pvDestContext,
  4258. ULONG cbBufferLength,
  4259. BYTE *pBuffer,
  4260. ULONG *pcbWritten);
  4261. HRESULT (STDMETHODCALLTYPE *Unmarshal)(
  4262. ITypeMarshal *This,
  4263. PVOID pvType,
  4264. DWORD dwFlags,
  4265. ULONG cbBufferLength,
  4266. BYTE *pBuffer,
  4267. ULONG *pcbRead);
  4268. HRESULT (STDMETHODCALLTYPE *Free)(
  4269. ITypeMarshal *This,
  4270. PVOID pvType);
  4271. END_INTERFACE
  4272. } ITypeMarshalVtbl;
  4273. interface ITypeMarshal {
  4274. CONST_VTBL ITypeMarshalVtbl* lpVtbl;
  4275. };
  4276. #ifdef COBJMACROS
  4277. #ifndef WIDL_C_INLINE_WRAPPERS
  4278. /*** IUnknown methods ***/
  4279. #define ITypeMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4280. #define ITypeMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
  4281. #define ITypeMarshal_Release(This) (This)->lpVtbl->Release(This)
  4282. /*** ITypeMarshal methods ***/
  4283. #define ITypeMarshal_Size(This,pvType,dwDestContext,pvDestContext,pSize) (This)->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize)
  4284. #define ITypeMarshal_Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten) (This)->lpVtbl->Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten)
  4285. #define ITypeMarshal_Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead) (This)->lpVtbl->Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead)
  4286. #define ITypeMarshal_Free(This,pvType) (This)->lpVtbl->Free(This,pvType)
  4287. #else
  4288. /*** IUnknown methods ***/
  4289. static FORCEINLINE HRESULT ITypeMarshal_QueryInterface(ITypeMarshal* This,REFIID riid,void **ppvObject) {
  4290. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4291. }
  4292. static FORCEINLINE ULONG ITypeMarshal_AddRef(ITypeMarshal* This) {
  4293. return This->lpVtbl->AddRef(This);
  4294. }
  4295. static FORCEINLINE ULONG ITypeMarshal_Release(ITypeMarshal* This) {
  4296. return This->lpVtbl->Release(This);
  4297. }
  4298. /*** ITypeMarshal methods ***/
  4299. static FORCEINLINE HRESULT ITypeMarshal_Size(ITypeMarshal* This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize) {
  4300. return This->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize);
  4301. }
  4302. static FORCEINLINE HRESULT ITypeMarshal_Marshal(ITypeMarshal* This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbWritten) {
  4303. return This->lpVtbl->Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten);
  4304. }
  4305. static FORCEINLINE HRESULT ITypeMarshal_Unmarshal(ITypeMarshal* This,PVOID pvType,DWORD dwFlags,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbRead) {
  4306. return This->lpVtbl->Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead);
  4307. }
  4308. static FORCEINLINE HRESULT ITypeMarshal_Free(ITypeMarshal* This,PVOID pvType) {
  4309. return This->lpVtbl->Free(This,pvType);
  4310. }
  4311. #endif
  4312. #endif
  4313. #endif
  4314. #endif /* __ITypeMarshal_INTERFACE_DEFINED__ */
  4315. /*****************************************************************************
  4316. * IRecordInfo interface
  4317. */
  4318. #ifndef __IRecordInfo_INTERFACE_DEFINED__
  4319. #define __IRecordInfo_INTERFACE_DEFINED__
  4320. typedef IRecordInfo *LPRECORDINFO;
  4321. DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  4322. #if defined(__cplusplus) && !defined(CINTERFACE)
  4323. MIDL_INTERFACE("0000002f-0000-0000-c000-000000000046")
  4324. IRecordInfo : public IUnknown
  4325. {
  4326. virtual HRESULT STDMETHODCALLTYPE RecordInit(
  4327. PVOID pvNew) = 0;
  4328. virtual HRESULT STDMETHODCALLTYPE RecordClear(
  4329. PVOID pvExisting) = 0;
  4330. virtual HRESULT STDMETHODCALLTYPE RecordCopy(
  4331. PVOID pvExisting,
  4332. PVOID pvNew) = 0;
  4333. virtual HRESULT STDMETHODCALLTYPE GetGuid(
  4334. GUID *pguid) = 0;
  4335. virtual HRESULT STDMETHODCALLTYPE GetName(
  4336. BSTR *pbstrName) = 0;
  4337. virtual HRESULT STDMETHODCALLTYPE GetSize(
  4338. ULONG *pcbSize) = 0;
  4339. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  4340. ITypeInfo **ppTypeInfo) = 0;
  4341. virtual HRESULT STDMETHODCALLTYPE GetField(
  4342. PVOID pvData,
  4343. LPCOLESTR szFieldName,
  4344. VARIANT *pvarField) = 0;
  4345. virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
  4346. PVOID pvData,
  4347. LPCOLESTR szFieldName,
  4348. VARIANT *pvarField,
  4349. PVOID *ppvDataCArray) = 0;
  4350. virtual HRESULT STDMETHODCALLTYPE PutField(
  4351. ULONG wFlags,
  4352. PVOID pvData,
  4353. LPCOLESTR szFieldName,
  4354. VARIANT *pvarField) = 0;
  4355. virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
  4356. ULONG wFlags,
  4357. PVOID pvData,
  4358. LPCOLESTR szFieldName,
  4359. VARIANT *pvarField) = 0;
  4360. virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
  4361. ULONG *pcNames,
  4362. BSTR *rgBstrNames) = 0;
  4363. virtual WINBOOL STDMETHODCALLTYPE IsMatchingType(
  4364. IRecordInfo *pRecordInfo) = 0;
  4365. virtual PVOID STDMETHODCALLTYPE RecordCreate(
  4366. ) = 0;
  4367. virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
  4368. PVOID pvSource,
  4369. PVOID *ppvDest) = 0;
  4370. virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
  4371. PVOID pvRecord) = 0;
  4372. };
  4373. #ifdef __CRT_UUID_DECL
  4374. __CRT_UUID_DECL(IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  4375. #endif
  4376. #else
  4377. typedef struct IRecordInfoVtbl {
  4378. BEGIN_INTERFACE
  4379. /*** IUnknown methods ***/
  4380. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4381. IRecordInfo *This,
  4382. REFIID riid,
  4383. void **ppvObject);
  4384. ULONG (STDMETHODCALLTYPE *AddRef)(
  4385. IRecordInfo *This);
  4386. ULONG (STDMETHODCALLTYPE *Release)(
  4387. IRecordInfo *This);
  4388. /*** IRecordInfo methods ***/
  4389. HRESULT (STDMETHODCALLTYPE *RecordInit)(
  4390. IRecordInfo *This,
  4391. PVOID pvNew);
  4392. HRESULT (STDMETHODCALLTYPE *RecordClear)(
  4393. IRecordInfo *This,
  4394. PVOID pvExisting);
  4395. HRESULT (STDMETHODCALLTYPE *RecordCopy)(
  4396. IRecordInfo *This,
  4397. PVOID pvExisting,
  4398. PVOID pvNew);
  4399. HRESULT (STDMETHODCALLTYPE *GetGuid)(
  4400. IRecordInfo *This,
  4401. GUID *pguid);
  4402. HRESULT (STDMETHODCALLTYPE *GetName)(
  4403. IRecordInfo *This,
  4404. BSTR *pbstrName);
  4405. HRESULT (STDMETHODCALLTYPE *GetSize)(
  4406. IRecordInfo *This,
  4407. ULONG *pcbSize);
  4408. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  4409. IRecordInfo *This,
  4410. ITypeInfo **ppTypeInfo);
  4411. HRESULT (STDMETHODCALLTYPE *GetField)(
  4412. IRecordInfo *This,
  4413. PVOID pvData,
  4414. LPCOLESTR szFieldName,
  4415. VARIANT *pvarField);
  4416. HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
  4417. IRecordInfo *This,
  4418. PVOID pvData,
  4419. LPCOLESTR szFieldName,
  4420. VARIANT *pvarField,
  4421. PVOID *ppvDataCArray);
  4422. HRESULT (STDMETHODCALLTYPE *PutField)(
  4423. IRecordInfo *This,
  4424. ULONG wFlags,
  4425. PVOID pvData,
  4426. LPCOLESTR szFieldName,
  4427. VARIANT *pvarField);
  4428. HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
  4429. IRecordInfo *This,
  4430. ULONG wFlags,
  4431. PVOID pvData,
  4432. LPCOLESTR szFieldName,
  4433. VARIANT *pvarField);
  4434. HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
  4435. IRecordInfo *This,
  4436. ULONG *pcNames,
  4437. BSTR *rgBstrNames);
  4438. WINBOOL (STDMETHODCALLTYPE *IsMatchingType)(
  4439. IRecordInfo *This,
  4440. IRecordInfo *pRecordInfo);
  4441. PVOID (STDMETHODCALLTYPE *RecordCreate)(
  4442. IRecordInfo *This);
  4443. HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
  4444. IRecordInfo *This,
  4445. PVOID pvSource,
  4446. PVOID *ppvDest);
  4447. HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
  4448. IRecordInfo *This,
  4449. PVOID pvRecord);
  4450. END_INTERFACE
  4451. } IRecordInfoVtbl;
  4452. interface IRecordInfo {
  4453. CONST_VTBL IRecordInfoVtbl* lpVtbl;
  4454. };
  4455. #ifdef COBJMACROS
  4456. #ifndef WIDL_C_INLINE_WRAPPERS
  4457. /*** IUnknown methods ***/
  4458. #define IRecordInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4459. #define IRecordInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  4460. #define IRecordInfo_Release(This) (This)->lpVtbl->Release(This)
  4461. /*** IRecordInfo methods ***/
  4462. #define IRecordInfo_RecordInit(This,pvNew) (This)->lpVtbl->RecordInit(This,pvNew)
  4463. #define IRecordInfo_RecordClear(This,pvExisting) (This)->lpVtbl->RecordClear(This,pvExisting)
  4464. #define IRecordInfo_RecordCopy(This,pvExisting,pvNew) (This)->lpVtbl->RecordCopy(This,pvExisting,pvNew)
  4465. #define IRecordInfo_GetGuid(This,pguid) (This)->lpVtbl->GetGuid(This,pguid)
  4466. #define IRecordInfo_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
  4467. #define IRecordInfo_GetSize(This,pcbSize) (This)->lpVtbl->GetSize(This,pcbSize)
  4468. #define IRecordInfo_GetTypeInfo(This,ppTypeInfo) (This)->lpVtbl->GetTypeInfo(This,ppTypeInfo)
  4469. #define IRecordInfo_GetField(This,pvData,szFieldName,pvarField) (This)->lpVtbl->GetField(This,pvData,szFieldName,pvarField)
  4470. #define IRecordInfo_GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray) (This)->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray)
  4471. #define IRecordInfo_PutField(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField)
  4472. #define IRecordInfo_PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField)
  4473. #define IRecordInfo_GetFieldNames(This,pcNames,rgBstrNames) (This)->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames)
  4474. #define IRecordInfo_IsMatchingType(This,pRecordInfo) (This)->lpVtbl->IsMatchingType(This,pRecordInfo)
  4475. #define IRecordInfo_RecordCreate(This) (This)->lpVtbl->RecordCreate(This)
  4476. #define IRecordInfo_RecordCreateCopy(This,pvSource,ppvDest) (This)->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest)
  4477. #define IRecordInfo_RecordDestroy(This,pvRecord) (This)->lpVtbl->RecordDestroy(This,pvRecord)
  4478. #else
  4479. /*** IUnknown methods ***/
  4480. static FORCEINLINE HRESULT IRecordInfo_QueryInterface(IRecordInfo* This,REFIID riid,void **ppvObject) {
  4481. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4482. }
  4483. static FORCEINLINE ULONG IRecordInfo_AddRef(IRecordInfo* This) {
  4484. return This->lpVtbl->AddRef(This);
  4485. }
  4486. static FORCEINLINE ULONG IRecordInfo_Release(IRecordInfo* This) {
  4487. return This->lpVtbl->Release(This);
  4488. }
  4489. /*** IRecordInfo methods ***/
  4490. static FORCEINLINE HRESULT IRecordInfo_RecordInit(IRecordInfo* This,PVOID pvNew) {
  4491. return This->lpVtbl->RecordInit(This,pvNew);
  4492. }
  4493. static FORCEINLINE HRESULT IRecordInfo_RecordClear(IRecordInfo* This,PVOID pvExisting) {
  4494. return This->lpVtbl->RecordClear(This,pvExisting);
  4495. }
  4496. static FORCEINLINE HRESULT IRecordInfo_RecordCopy(IRecordInfo* This,PVOID pvExisting,PVOID pvNew) {
  4497. return This->lpVtbl->RecordCopy(This,pvExisting,pvNew);
  4498. }
  4499. static FORCEINLINE HRESULT IRecordInfo_GetGuid(IRecordInfo* This,GUID *pguid) {
  4500. return This->lpVtbl->GetGuid(This,pguid);
  4501. }
  4502. static FORCEINLINE HRESULT IRecordInfo_GetName(IRecordInfo* This,BSTR *pbstrName) {
  4503. return This->lpVtbl->GetName(This,pbstrName);
  4504. }
  4505. static FORCEINLINE HRESULT IRecordInfo_GetSize(IRecordInfo* This,ULONG *pcbSize) {
  4506. return This->lpVtbl->GetSize(This,pcbSize);
  4507. }
  4508. static FORCEINLINE HRESULT IRecordInfo_GetTypeInfo(IRecordInfo* This,ITypeInfo **ppTypeInfo) {
  4509. return This->lpVtbl->GetTypeInfo(This,ppTypeInfo);
  4510. }
  4511. static FORCEINLINE HRESULT IRecordInfo_GetField(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
  4512. return This->lpVtbl->GetField(This,pvData,szFieldName,pvarField);
  4513. }
  4514. static FORCEINLINE HRESULT IRecordInfo_GetFieldNoCopy(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField,PVOID *ppvDataCArray) {
  4515. return This->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray);
  4516. }
  4517. static FORCEINLINE HRESULT IRecordInfo_PutField(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
  4518. return This->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField);
  4519. }
  4520. static FORCEINLINE HRESULT IRecordInfo_PutFieldNoCopy(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
  4521. return This->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField);
  4522. }
  4523. static FORCEINLINE HRESULT IRecordInfo_GetFieldNames(IRecordInfo* This,ULONG *pcNames,BSTR *rgBstrNames) {
  4524. return This->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames);
  4525. }
  4526. static FORCEINLINE WINBOOL IRecordInfo_IsMatchingType(IRecordInfo* This,IRecordInfo *pRecordInfo) {
  4527. return This->lpVtbl->IsMatchingType(This,pRecordInfo);
  4528. }
  4529. static FORCEINLINE PVOID IRecordInfo_RecordCreate(IRecordInfo* This) {
  4530. return This->lpVtbl->RecordCreate(This);
  4531. }
  4532. static FORCEINLINE HRESULT IRecordInfo_RecordCreateCopy(IRecordInfo* This,PVOID pvSource,PVOID *ppvDest) {
  4533. return This->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest);
  4534. }
  4535. static FORCEINLINE HRESULT IRecordInfo_RecordDestroy(IRecordInfo* This,PVOID pvRecord) {
  4536. return This->lpVtbl->RecordDestroy(This,pvRecord);
  4537. }
  4538. #endif
  4539. #endif
  4540. #endif
  4541. #endif /* __IRecordInfo_INTERFACE_DEFINED__ */
  4542. /*****************************************************************************
  4543. * IErrorLog interface
  4544. */
  4545. #ifndef __IErrorLog_INTERFACE_DEFINED__
  4546. #define __IErrorLog_INTERFACE_DEFINED__
  4547. typedef IErrorLog *LPERRORLOG;
  4548. DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
  4549. #if defined(__cplusplus) && !defined(CINTERFACE)
  4550. MIDL_INTERFACE("3127ca40-446e-11ce-8135-00aa004bb851")
  4551. IErrorLog : public IUnknown
  4552. {
  4553. virtual HRESULT STDMETHODCALLTYPE AddError(
  4554. LPCOLESTR pszPropName,
  4555. EXCEPINFO *pExcepInfo) = 0;
  4556. };
  4557. #ifdef __CRT_UUID_DECL
  4558. __CRT_UUID_DECL(IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
  4559. #endif
  4560. #else
  4561. typedef struct IErrorLogVtbl {
  4562. BEGIN_INTERFACE
  4563. /*** IUnknown methods ***/
  4564. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4565. IErrorLog *This,
  4566. REFIID riid,
  4567. void **ppvObject);
  4568. ULONG (STDMETHODCALLTYPE *AddRef)(
  4569. IErrorLog *This);
  4570. ULONG (STDMETHODCALLTYPE *Release)(
  4571. IErrorLog *This);
  4572. /*** IErrorLog methods ***/
  4573. HRESULT (STDMETHODCALLTYPE *AddError)(
  4574. IErrorLog *This,
  4575. LPCOLESTR pszPropName,
  4576. EXCEPINFO *pExcepInfo);
  4577. END_INTERFACE
  4578. } IErrorLogVtbl;
  4579. interface IErrorLog {
  4580. CONST_VTBL IErrorLogVtbl* lpVtbl;
  4581. };
  4582. #ifdef COBJMACROS
  4583. #ifndef WIDL_C_INLINE_WRAPPERS
  4584. /*** IUnknown methods ***/
  4585. #define IErrorLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4586. #define IErrorLog_AddRef(This) (This)->lpVtbl->AddRef(This)
  4587. #define IErrorLog_Release(This) (This)->lpVtbl->Release(This)
  4588. /*** IErrorLog methods ***/
  4589. #define IErrorLog_AddError(This,pszPropName,pExcepInfo) (This)->lpVtbl->AddError(This,pszPropName,pExcepInfo)
  4590. #else
  4591. /*** IUnknown methods ***/
  4592. static FORCEINLINE HRESULT IErrorLog_QueryInterface(IErrorLog* This,REFIID riid,void **ppvObject) {
  4593. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4594. }
  4595. static FORCEINLINE ULONG IErrorLog_AddRef(IErrorLog* This) {
  4596. return This->lpVtbl->AddRef(This);
  4597. }
  4598. static FORCEINLINE ULONG IErrorLog_Release(IErrorLog* This) {
  4599. return This->lpVtbl->Release(This);
  4600. }
  4601. /*** IErrorLog methods ***/
  4602. static FORCEINLINE HRESULT IErrorLog_AddError(IErrorLog* This,LPCOLESTR pszPropName,EXCEPINFO *pExcepInfo) {
  4603. return This->lpVtbl->AddError(This,pszPropName,pExcepInfo);
  4604. }
  4605. #endif
  4606. #endif
  4607. #endif
  4608. #endif /* __IErrorLog_INTERFACE_DEFINED__ */
  4609. /*****************************************************************************
  4610. * IPropertyBag interface
  4611. */
  4612. #ifndef __IPropertyBag_INTERFACE_DEFINED__
  4613. #define __IPropertyBag_INTERFACE_DEFINED__
  4614. typedef IPropertyBag *LPPROPERTYBAG;
  4615. DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
  4616. #if defined(__cplusplus) && !defined(CINTERFACE)
  4617. MIDL_INTERFACE("55272a00-42cb-11ce-8135-00aa004bb851")
  4618. IPropertyBag : public IUnknown
  4619. {
  4620. virtual HRESULT STDMETHODCALLTYPE Read(
  4621. LPCOLESTR pszPropName,
  4622. VARIANT *pVar,
  4623. IErrorLog *pErrorLog) = 0;
  4624. virtual HRESULT STDMETHODCALLTYPE Write(
  4625. LPCOLESTR pszPropName,
  4626. VARIANT *pVar) = 0;
  4627. };
  4628. #ifdef __CRT_UUID_DECL
  4629. __CRT_UUID_DECL(IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
  4630. #endif
  4631. #else
  4632. typedef struct IPropertyBagVtbl {
  4633. BEGIN_INTERFACE
  4634. /*** IUnknown methods ***/
  4635. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  4636. IPropertyBag *This,
  4637. REFIID riid,
  4638. void **ppvObject);
  4639. ULONG (STDMETHODCALLTYPE *AddRef)(
  4640. IPropertyBag *This);
  4641. ULONG (STDMETHODCALLTYPE *Release)(
  4642. IPropertyBag *This);
  4643. /*** IPropertyBag methods ***/
  4644. HRESULT (STDMETHODCALLTYPE *Read)(
  4645. IPropertyBag *This,
  4646. LPCOLESTR pszPropName,
  4647. VARIANT *pVar,
  4648. IErrorLog *pErrorLog);
  4649. HRESULT (STDMETHODCALLTYPE *Write)(
  4650. IPropertyBag *This,
  4651. LPCOLESTR pszPropName,
  4652. VARIANT *pVar);
  4653. END_INTERFACE
  4654. } IPropertyBagVtbl;
  4655. interface IPropertyBag {
  4656. CONST_VTBL IPropertyBagVtbl* lpVtbl;
  4657. };
  4658. #ifdef COBJMACROS
  4659. #ifndef WIDL_C_INLINE_WRAPPERS
  4660. /*** IUnknown methods ***/
  4661. #define IPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  4662. #define IPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
  4663. #define IPropertyBag_Release(This) (This)->lpVtbl->Release(This)
  4664. /*** IPropertyBag methods ***/
  4665. #define IPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
  4666. #define IPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
  4667. #else
  4668. /*** IUnknown methods ***/
  4669. static FORCEINLINE HRESULT IPropertyBag_QueryInterface(IPropertyBag* This,REFIID riid,void **ppvObject) {
  4670. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  4671. }
  4672. static FORCEINLINE ULONG IPropertyBag_AddRef(IPropertyBag* This) {
  4673. return This->lpVtbl->AddRef(This);
  4674. }
  4675. static FORCEINLINE ULONG IPropertyBag_Release(IPropertyBag* This) {
  4676. return This->lpVtbl->Release(This);
  4677. }
  4678. /*** IPropertyBag methods ***/
  4679. static FORCEINLINE HRESULT IPropertyBag_Read(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
  4680. return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
  4681. }
  4682. static FORCEINLINE HRESULT IPropertyBag_Write(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
  4683. return This->lpVtbl->Write(This,pszPropName,pVar);
  4684. }
  4685. #endif
  4686. #endif
  4687. #endif
  4688. HRESULT STDMETHODCALLTYPE IPropertyBag_RemoteRead_Proxy(
  4689. IPropertyBag* This,
  4690. LPCOLESTR pszPropName,
  4691. VARIANT *pVar,
  4692. IErrorLog *pErrorLog,
  4693. DWORD varType,
  4694. IUnknown *pUnkObj);
  4695. void __RPC_STUB IPropertyBag_RemoteRead_Stub(
  4696. IRpcStubBuffer* This,
  4697. IRpcChannelBuffer* pRpcChannelBuffer,
  4698. PRPC_MESSAGE pRpcMessage,
  4699. DWORD* pdwStubPhase);
  4700. HRESULT CALLBACK IPropertyBag_Read_Proxy(
  4701. IPropertyBag* This,
  4702. LPCOLESTR pszPropName,
  4703. VARIANT *pVar,
  4704. IErrorLog *pErrorLog);
  4705. HRESULT __RPC_STUB IPropertyBag_Read_Stub(
  4706. IPropertyBag* This,
  4707. LPCOLESTR pszPropName,
  4708. VARIANT *pVar,
  4709. IErrorLog *pErrorLog,
  4710. DWORD varType,
  4711. IUnknown *pUnkObj);
  4712. #endif /* __IPropertyBag_INTERFACE_DEFINED__ */
  4713. #endif
  4714. /* Begin additional prototypes for all interfaces */
  4715. ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *);
  4716. unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *);
  4717. unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  4718. void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *);
  4719. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  4720. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  4721. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  4722. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  4723. ULONG __RPC_USER CLEANLOCALSTORAGE_UserSize (ULONG *, ULONG, CLEANLOCALSTORAGE *);
  4724. unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal (ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
  4725. unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
  4726. void __RPC_USER CLEANLOCALSTORAGE_UserFree (ULONG *, CLEANLOCALSTORAGE *);
  4727. /* End additional prototypes */
  4728. #ifdef __cplusplus
  4729. }
  4730. #endif
  4731. #endif /* __oaidl_h__ */