vsbackup.h 230 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442
  1. /*** Autogenerated by WIDL 7.7 from include/vsbackup.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 __vsbackup_h__
  14. #define __vsbackup_h__
  15. /* Forward declarations */
  16. #ifndef __IVssWMComponent_FWD_DEFINED__
  17. #define __IVssWMComponent_FWD_DEFINED__
  18. typedef interface IVssWMComponent IVssWMComponent;
  19. #ifdef __cplusplus
  20. interface IVssWMComponent;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IVssExamineWriterMetadata_FWD_DEFINED__
  24. #define __IVssExamineWriterMetadata_FWD_DEFINED__
  25. typedef interface IVssExamineWriterMetadata IVssExamineWriterMetadata;
  26. #ifdef __cplusplus
  27. interface IVssExamineWriterMetadata;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IVssExamineWriterMetadataEx_FWD_DEFINED__
  31. #define __IVssExamineWriterMetadataEx_FWD_DEFINED__
  32. typedef interface IVssExamineWriterMetadataEx IVssExamineWriterMetadataEx;
  33. #ifdef __cplusplus
  34. interface IVssExamineWriterMetadataEx;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IVssExamineWriterMetadataEx2_FWD_DEFINED__
  38. #define __IVssExamineWriterMetadataEx2_FWD_DEFINED__
  39. typedef interface IVssExamineWriterMetadataEx2 IVssExamineWriterMetadataEx2;
  40. #ifdef __cplusplus
  41. interface IVssExamineWriterMetadataEx2;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IVssWriterComponentsExt_FWD_DEFINED__
  45. #define __IVssWriterComponentsExt_FWD_DEFINED__
  46. typedef interface IVssWriterComponentsExt IVssWriterComponentsExt;
  47. #ifdef __cplusplus
  48. interface IVssWriterComponentsExt;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IVssBackupComponents_FWD_DEFINED__
  52. #define __IVssBackupComponents_FWD_DEFINED__
  53. typedef interface IVssBackupComponents IVssBackupComponents;
  54. #ifdef __cplusplus
  55. interface IVssBackupComponents;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IVssBackupComponentsEx_FWD_DEFINED__
  59. #define __IVssBackupComponentsEx_FWD_DEFINED__
  60. typedef interface IVssBackupComponentsEx IVssBackupComponentsEx;
  61. #ifdef __cplusplus
  62. interface IVssBackupComponentsEx;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IVssBackupComponentsEx2_FWD_DEFINED__
  66. #define __IVssBackupComponentsEx2_FWD_DEFINED__
  67. typedef interface IVssBackupComponentsEx2 IVssBackupComponentsEx2;
  68. #ifdef __cplusplus
  69. interface IVssBackupComponentsEx2;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IVssBackupComponentsEx3_FWD_DEFINED__
  73. #define __IVssBackupComponentsEx3_FWD_DEFINED__
  74. typedef interface IVssBackupComponentsEx3 IVssBackupComponentsEx3;
  75. #ifdef __cplusplus
  76. interface IVssBackupComponentsEx3;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IVssBackupComponentsEx4_FWD_DEFINED__
  80. #define __IVssBackupComponentsEx4_FWD_DEFINED__
  81. typedef interface IVssBackupComponentsEx4 IVssBackupComponentsEx4;
  82. #ifdef __cplusplus
  83. interface IVssBackupComponentsEx4;
  84. #endif /* __cplusplus */
  85. #endif
  86. /* Headers for imported files */
  87. #include <oaidl.h>
  88. #include <ocidl.h>
  89. #include <vss.h>
  90. #include <vswriter.h>
  91. #ifdef __cplusplus
  92. extern "C" {
  93. #endif
  94. #include <winapifamily.h>
  95. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  96. typedef struct _VSS_COMPONENTINFO {
  97. VSS_COMPONENT_TYPE type;
  98. BSTR bstrLogicalPath;
  99. BSTR bstrComponentName;
  100. BSTR bstrCaption;
  101. BYTE *pbIcon;
  102. UINT cbIcon;
  103. boolean bRestoreMetadata;
  104. boolean bNotifyOnBackupComplete;
  105. boolean bSelectable;
  106. boolean bSelectableForRestore;
  107. DWORD dwComponentFlags;
  108. UINT cFileCount;
  109. UINT cDatabases;
  110. UINT cLogFiles;
  111. UINT cDependencies;
  112. } VSS_COMPONENTINFO;
  113. typedef const VSS_COMPONENTINFO *PVSSCOMPONENTINFO;
  114. /*****************************************************************************
  115. * IVssWMComponent interface
  116. */
  117. #ifndef __IVssWMComponent_INTERFACE_DEFINED__
  118. #define __IVssWMComponent_INTERFACE_DEFINED__
  119. DEFINE_GUID(IID_IVssWMComponent, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
  120. #if defined(__cplusplus) && !defined(CINTERFACE)
  121. MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
  122. IVssWMComponent : public IUnknown
  123. {
  124. virtual HRESULT STDMETHODCALLTYPE GetComponentInfo(
  125. PVSSCOMPONENTINFO *ppInfo) = 0;
  126. virtual HRESULT STDMETHODCALLTYPE FreeComponentInfo(
  127. PVSSCOMPONENTINFO pInfo) = 0;
  128. virtual HRESULT STDMETHODCALLTYPE GetFile(
  129. UINT iFile,
  130. IVssWMFiledesc **ppFiledesc) = 0;
  131. virtual HRESULT STDMETHODCALLTYPE GetDatabaseFile(
  132. UINT iDBFile,
  133. IVssWMFiledesc **ppFiledesc) = 0;
  134. virtual HRESULT STDMETHODCALLTYPE GetDatabaseLogFile(
  135. UINT iDbLogFile,
  136. IVssWMFiledesc **ppFiledesc) = 0;
  137. virtual HRESULT STDMETHODCALLTYPE GetDependency(
  138. UINT iDependency,
  139. IVssWMDependency **ppDependency) = 0;
  140. };
  141. #ifdef __CRT_UUID_DECL
  142. __CRT_UUID_DECL(IVssWMComponent, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
  143. #endif
  144. #else
  145. typedef struct IVssWMComponentVtbl {
  146. BEGIN_INTERFACE
  147. /*** IUnknown methods ***/
  148. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  149. IVssWMComponent *This,
  150. REFIID riid,
  151. void **ppvObject);
  152. ULONG (STDMETHODCALLTYPE *AddRef)(
  153. IVssWMComponent *This);
  154. ULONG (STDMETHODCALLTYPE *Release)(
  155. IVssWMComponent *This);
  156. /*** IVssWMComponent methods ***/
  157. HRESULT (STDMETHODCALLTYPE *GetComponentInfo)(
  158. IVssWMComponent *This,
  159. PVSSCOMPONENTINFO *ppInfo);
  160. HRESULT (STDMETHODCALLTYPE *FreeComponentInfo)(
  161. IVssWMComponent *This,
  162. PVSSCOMPONENTINFO pInfo);
  163. HRESULT (STDMETHODCALLTYPE *GetFile)(
  164. IVssWMComponent *This,
  165. UINT iFile,
  166. IVssWMFiledesc **ppFiledesc);
  167. HRESULT (STDMETHODCALLTYPE *GetDatabaseFile)(
  168. IVssWMComponent *This,
  169. UINT iDBFile,
  170. IVssWMFiledesc **ppFiledesc);
  171. HRESULT (STDMETHODCALLTYPE *GetDatabaseLogFile)(
  172. IVssWMComponent *This,
  173. UINT iDbLogFile,
  174. IVssWMFiledesc **ppFiledesc);
  175. HRESULT (STDMETHODCALLTYPE *GetDependency)(
  176. IVssWMComponent *This,
  177. UINT iDependency,
  178. IVssWMDependency **ppDependency);
  179. END_INTERFACE
  180. } IVssWMComponentVtbl;
  181. interface IVssWMComponent {
  182. CONST_VTBL IVssWMComponentVtbl* lpVtbl;
  183. };
  184. #ifdef COBJMACROS
  185. #ifndef WIDL_C_INLINE_WRAPPERS
  186. /*** IUnknown methods ***/
  187. #define IVssWMComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  188. #define IVssWMComponent_AddRef(This) (This)->lpVtbl->AddRef(This)
  189. #define IVssWMComponent_Release(This) (This)->lpVtbl->Release(This)
  190. /*** IVssWMComponent methods ***/
  191. #define IVssWMComponent_GetComponentInfo(This,ppInfo) (This)->lpVtbl->GetComponentInfo(This,ppInfo)
  192. #define IVssWMComponent_FreeComponentInfo(This,pInfo) (This)->lpVtbl->FreeComponentInfo(This,pInfo)
  193. #define IVssWMComponent_GetFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetFile(This,iFile,ppFiledesc)
  194. #define IVssWMComponent_GetDatabaseFile(This,iDBFile,ppFiledesc) (This)->lpVtbl->GetDatabaseFile(This,iDBFile,ppFiledesc)
  195. #define IVssWMComponent_GetDatabaseLogFile(This,iDbLogFile,ppFiledesc) (This)->lpVtbl->GetDatabaseLogFile(This,iDbLogFile,ppFiledesc)
  196. #define IVssWMComponent_GetDependency(This,iDependency,ppDependency) (This)->lpVtbl->GetDependency(This,iDependency,ppDependency)
  197. #else
  198. /*** IUnknown methods ***/
  199. static FORCEINLINE HRESULT IVssWMComponent_QueryInterface(IVssWMComponent* This,REFIID riid,void **ppvObject) {
  200. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  201. }
  202. static FORCEINLINE ULONG IVssWMComponent_AddRef(IVssWMComponent* This) {
  203. return This->lpVtbl->AddRef(This);
  204. }
  205. static FORCEINLINE ULONG IVssWMComponent_Release(IVssWMComponent* This) {
  206. return This->lpVtbl->Release(This);
  207. }
  208. /*** IVssWMComponent methods ***/
  209. static FORCEINLINE HRESULT IVssWMComponent_GetComponentInfo(IVssWMComponent* This,PVSSCOMPONENTINFO *ppInfo) {
  210. return This->lpVtbl->GetComponentInfo(This,ppInfo);
  211. }
  212. static FORCEINLINE HRESULT IVssWMComponent_FreeComponentInfo(IVssWMComponent* This,PVSSCOMPONENTINFO pInfo) {
  213. return This->lpVtbl->FreeComponentInfo(This,pInfo);
  214. }
  215. static FORCEINLINE HRESULT IVssWMComponent_GetFile(IVssWMComponent* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  216. return This->lpVtbl->GetFile(This,iFile,ppFiledesc);
  217. }
  218. static FORCEINLINE HRESULT IVssWMComponent_GetDatabaseFile(IVssWMComponent* This,UINT iDBFile,IVssWMFiledesc **ppFiledesc) {
  219. return This->lpVtbl->GetDatabaseFile(This,iDBFile,ppFiledesc);
  220. }
  221. static FORCEINLINE HRESULT IVssWMComponent_GetDatabaseLogFile(IVssWMComponent* This,UINT iDbLogFile,IVssWMFiledesc **ppFiledesc) {
  222. return This->lpVtbl->GetDatabaseLogFile(This,iDbLogFile,ppFiledesc);
  223. }
  224. static FORCEINLINE HRESULT IVssWMComponent_GetDependency(IVssWMComponent* This,UINT iDependency,IVssWMDependency **ppDependency) {
  225. return This->lpVtbl->GetDependency(This,iDependency,ppDependency);
  226. }
  227. #endif
  228. #endif
  229. #endif
  230. #endif /* __IVssWMComponent_INTERFACE_DEFINED__ */
  231. /*****************************************************************************
  232. * IVssExamineWriterMetadata interface
  233. */
  234. #ifndef __IVssExamineWriterMetadata_INTERFACE_DEFINED__
  235. #define __IVssExamineWriterMetadata_INTERFACE_DEFINED__
  236. DEFINE_GUID(IID_IVssExamineWriterMetadata, 0x902fcf7f, 0xb7fd, 0x42f8, 0x81,0xf1, 0xb2,0xe4,0x00,0xb1,0xe5,0xbd);
  237. #if defined(__cplusplus) && !defined(CINTERFACE)
  238. MIDL_INTERFACE("902fcf7f-b7fd-42f8-81f1-b2e400b1e5bd")
  239. IVssExamineWriterMetadata : public IUnknown
  240. {
  241. virtual HRESULT STDMETHODCALLTYPE GetIdentity(
  242. VSS_ID *pidInstance,
  243. VSS_ID *pidWriter,
  244. BSTR *pbstrWriterName,
  245. VSS_USAGE_TYPE *pUsage,
  246. VSS_SOURCE_TYPE *pSource) = 0;
  247. virtual HRESULT STDMETHODCALLTYPE GetFileCounts(
  248. UINT *pcIncludeFiles,
  249. UINT *pcExcludeFiles,
  250. UINT *pcComponents) = 0;
  251. virtual HRESULT STDMETHODCALLTYPE GetIncludeFile(
  252. UINT iFile,
  253. IVssWMFiledesc **ppFiledesc) = 0;
  254. virtual HRESULT STDMETHODCALLTYPE GetExcludeFile(
  255. UINT iFile,
  256. IVssWMFiledesc **ppFiledesc) = 0;
  257. virtual HRESULT STDMETHODCALLTYPE GetComponent(
  258. UINT iComponent,
  259. IVssWMComponent **ppComponent) = 0;
  260. virtual HRESULT STDMETHODCALLTYPE GetRestoreMethod(
  261. VSS_RESTOREMETHOD_ENUM *pMethod,
  262. BSTR *pbstrService,
  263. BSTR *pbstrUserProcedure,
  264. VSS_WRITERRESTORE_ENUM *pwriterRestore,
  265. boolean *pbRebootRequired,
  266. UINT *pcMappings) = 0;
  267. virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMapping(
  268. UINT iMapping,
  269. IVssWMFiledesc **ppFiledesc) = 0;
  270. virtual HRESULT STDMETHODCALLTYPE GetBackupSchema(
  271. DWORD *pdwSchemaMask) = 0;
  272. virtual HRESULT STDMETHODCALLTYPE GetDocument(
  273. IXMLDOMDocument **pDoc) = 0;
  274. virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
  275. BSTR *pbstrXML) = 0;
  276. virtual HRESULT STDMETHODCALLTYPE LoadFromXML(
  277. BSTR bstrXML) = 0;
  278. };
  279. #ifdef __CRT_UUID_DECL
  280. __CRT_UUID_DECL(IVssExamineWriterMetadata, 0x902fcf7f, 0xb7fd, 0x42f8, 0x81,0xf1, 0xb2,0xe4,0x00,0xb1,0xe5,0xbd)
  281. #endif
  282. #else
  283. typedef struct IVssExamineWriterMetadataVtbl {
  284. BEGIN_INTERFACE
  285. /*** IUnknown methods ***/
  286. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  287. IVssExamineWriterMetadata *This,
  288. REFIID riid,
  289. void **ppvObject);
  290. ULONG (STDMETHODCALLTYPE *AddRef)(
  291. IVssExamineWriterMetadata *This);
  292. ULONG (STDMETHODCALLTYPE *Release)(
  293. IVssExamineWriterMetadata *This);
  294. /*** IVssExamineWriterMetadata methods ***/
  295. HRESULT (STDMETHODCALLTYPE *GetIdentity)(
  296. IVssExamineWriterMetadata *This,
  297. VSS_ID *pidInstance,
  298. VSS_ID *pidWriter,
  299. BSTR *pbstrWriterName,
  300. VSS_USAGE_TYPE *pUsage,
  301. VSS_SOURCE_TYPE *pSource);
  302. HRESULT (STDMETHODCALLTYPE *GetFileCounts)(
  303. IVssExamineWriterMetadata *This,
  304. UINT *pcIncludeFiles,
  305. UINT *pcExcludeFiles,
  306. UINT *pcComponents);
  307. HRESULT (STDMETHODCALLTYPE *GetIncludeFile)(
  308. IVssExamineWriterMetadata *This,
  309. UINT iFile,
  310. IVssWMFiledesc **ppFiledesc);
  311. HRESULT (STDMETHODCALLTYPE *GetExcludeFile)(
  312. IVssExamineWriterMetadata *This,
  313. UINT iFile,
  314. IVssWMFiledesc **ppFiledesc);
  315. HRESULT (STDMETHODCALLTYPE *GetComponent)(
  316. IVssExamineWriterMetadata *This,
  317. UINT iComponent,
  318. IVssWMComponent **ppComponent);
  319. HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)(
  320. IVssExamineWriterMetadata *This,
  321. VSS_RESTOREMETHOD_ENUM *pMethod,
  322. BSTR *pbstrService,
  323. BSTR *pbstrUserProcedure,
  324. VSS_WRITERRESTORE_ENUM *pwriterRestore,
  325. boolean *pbRebootRequired,
  326. UINT *pcMappings);
  327. HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
  328. IVssExamineWriterMetadata *This,
  329. UINT iMapping,
  330. IVssWMFiledesc **ppFiledesc);
  331. HRESULT (STDMETHODCALLTYPE *GetBackupSchema)(
  332. IVssExamineWriterMetadata *This,
  333. DWORD *pdwSchemaMask);
  334. HRESULT (STDMETHODCALLTYPE *GetDocument)(
  335. IVssExamineWriterMetadata *This,
  336. IXMLDOMDocument **pDoc);
  337. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  338. IVssExamineWriterMetadata *This,
  339. BSTR *pbstrXML);
  340. HRESULT (STDMETHODCALLTYPE *LoadFromXML)(
  341. IVssExamineWriterMetadata *This,
  342. BSTR bstrXML);
  343. END_INTERFACE
  344. } IVssExamineWriterMetadataVtbl;
  345. interface IVssExamineWriterMetadata {
  346. CONST_VTBL IVssExamineWriterMetadataVtbl* lpVtbl;
  347. };
  348. #ifdef COBJMACROS
  349. #ifndef WIDL_C_INLINE_WRAPPERS
  350. /*** IUnknown methods ***/
  351. #define IVssExamineWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  352. #define IVssExamineWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
  353. #define IVssExamineWriterMetadata_Release(This) (This)->lpVtbl->Release(This)
  354. /*** IVssExamineWriterMetadata methods ***/
  355. #define IVssExamineWriterMetadata_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource)
  356. #define IVssExamineWriterMetadata_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents)
  357. #define IVssExamineWriterMetadata_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc)
  358. #define IVssExamineWriterMetadata_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc)
  359. #define IVssExamineWriterMetadata_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent)
  360. #define IVssExamineWriterMetadata_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings)
  361. #define IVssExamineWriterMetadata_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
  362. #define IVssExamineWriterMetadata_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask)
  363. #define IVssExamineWriterMetadata_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
  364. #define IVssExamineWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  365. #define IVssExamineWriterMetadata_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML)
  366. #else
  367. /*** IUnknown methods ***/
  368. static FORCEINLINE HRESULT IVssExamineWriterMetadata_QueryInterface(IVssExamineWriterMetadata* This,REFIID riid,void **ppvObject) {
  369. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  370. }
  371. static FORCEINLINE ULONG IVssExamineWriterMetadata_AddRef(IVssExamineWriterMetadata* This) {
  372. return This->lpVtbl->AddRef(This);
  373. }
  374. static FORCEINLINE ULONG IVssExamineWriterMetadata_Release(IVssExamineWriterMetadata* This) {
  375. return This->lpVtbl->Release(This);
  376. }
  377. /*** IVssExamineWriterMetadata methods ***/
  378. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetIdentity(IVssExamineWriterMetadata* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) {
  379. return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource);
  380. }
  381. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetFileCounts(IVssExamineWriterMetadata* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) {
  382. return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents);
  383. }
  384. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetIncludeFile(IVssExamineWriterMetadata* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  385. return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc);
  386. }
  387. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetExcludeFile(IVssExamineWriterMetadata* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  388. return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc);
  389. }
  390. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetComponent(IVssExamineWriterMetadata* This,UINT iComponent,IVssWMComponent **ppComponent) {
  391. return This->lpVtbl->GetComponent(This,iComponent,ppComponent);
  392. }
  393. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetRestoreMethod(IVssExamineWriterMetadata* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) {
  394. return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings);
  395. }
  396. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetAlternateLocationMapping(IVssExamineWriterMetadata* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
  397. return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
  398. }
  399. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetBackupSchema(IVssExamineWriterMetadata* This,DWORD *pdwSchemaMask) {
  400. return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask);
  401. }
  402. static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetDocument(IVssExamineWriterMetadata* This,IXMLDOMDocument **pDoc) {
  403. return This->lpVtbl->GetDocument(This,pDoc);
  404. }
  405. static FORCEINLINE HRESULT IVssExamineWriterMetadata_SaveAsXML(IVssExamineWriterMetadata* This,BSTR *pbstrXML) {
  406. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  407. }
  408. static FORCEINLINE HRESULT IVssExamineWriterMetadata_LoadFromXML(IVssExamineWriterMetadata* This,BSTR bstrXML) {
  409. return This->lpVtbl->LoadFromXML(This,bstrXML);
  410. }
  411. #endif
  412. #endif
  413. #endif
  414. #endif /* __IVssExamineWriterMetadata_INTERFACE_DEFINED__ */
  415. /*****************************************************************************
  416. * IVssExamineWriterMetadataEx interface
  417. */
  418. #ifndef __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__
  419. #define __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__
  420. DEFINE_GUID(IID_IVssExamineWriterMetadataEx, 0x0c0e5ec0, 0xca44, 0x472b, 0xb7,0x02, 0xe6,0x52,0xdb,0x1c,0x04,0x51);
  421. #if defined(__cplusplus) && !defined(CINTERFACE)
  422. MIDL_INTERFACE("0c0e5ec0-ca44-472b-b702-e652db1c0451")
  423. IVssExamineWriterMetadataEx : public IVssExamineWriterMetadata
  424. {
  425. virtual HRESULT STDMETHODCALLTYPE GetIdentityEx(
  426. VSS_ID *pidInstance,
  427. VSS_ID *pidWriter,
  428. BSTR *pbstrWriterName,
  429. BSTR *pbstrInstanceName,
  430. VSS_USAGE_TYPE *pUsage,
  431. VSS_SOURCE_TYPE *pSource) = 0;
  432. };
  433. #ifdef __CRT_UUID_DECL
  434. __CRT_UUID_DECL(IVssExamineWriterMetadataEx, 0x0c0e5ec0, 0xca44, 0x472b, 0xb7,0x02, 0xe6,0x52,0xdb,0x1c,0x04,0x51)
  435. #endif
  436. #else
  437. typedef struct IVssExamineWriterMetadataExVtbl {
  438. BEGIN_INTERFACE
  439. /*** IUnknown methods ***/
  440. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  441. IVssExamineWriterMetadataEx *This,
  442. REFIID riid,
  443. void **ppvObject);
  444. ULONG (STDMETHODCALLTYPE *AddRef)(
  445. IVssExamineWriterMetadataEx *This);
  446. ULONG (STDMETHODCALLTYPE *Release)(
  447. IVssExamineWriterMetadataEx *This);
  448. /*** IVssExamineWriterMetadata methods ***/
  449. HRESULT (STDMETHODCALLTYPE *GetIdentity)(
  450. IVssExamineWriterMetadataEx *This,
  451. VSS_ID *pidInstance,
  452. VSS_ID *pidWriter,
  453. BSTR *pbstrWriterName,
  454. VSS_USAGE_TYPE *pUsage,
  455. VSS_SOURCE_TYPE *pSource);
  456. HRESULT (STDMETHODCALLTYPE *GetFileCounts)(
  457. IVssExamineWriterMetadataEx *This,
  458. UINT *pcIncludeFiles,
  459. UINT *pcExcludeFiles,
  460. UINT *pcComponents);
  461. HRESULT (STDMETHODCALLTYPE *GetIncludeFile)(
  462. IVssExamineWriterMetadataEx *This,
  463. UINT iFile,
  464. IVssWMFiledesc **ppFiledesc);
  465. HRESULT (STDMETHODCALLTYPE *GetExcludeFile)(
  466. IVssExamineWriterMetadataEx *This,
  467. UINT iFile,
  468. IVssWMFiledesc **ppFiledesc);
  469. HRESULT (STDMETHODCALLTYPE *GetComponent)(
  470. IVssExamineWriterMetadataEx *This,
  471. UINT iComponent,
  472. IVssWMComponent **ppComponent);
  473. HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)(
  474. IVssExamineWriterMetadataEx *This,
  475. VSS_RESTOREMETHOD_ENUM *pMethod,
  476. BSTR *pbstrService,
  477. BSTR *pbstrUserProcedure,
  478. VSS_WRITERRESTORE_ENUM *pwriterRestore,
  479. boolean *pbRebootRequired,
  480. UINT *pcMappings);
  481. HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
  482. IVssExamineWriterMetadataEx *This,
  483. UINT iMapping,
  484. IVssWMFiledesc **ppFiledesc);
  485. HRESULT (STDMETHODCALLTYPE *GetBackupSchema)(
  486. IVssExamineWriterMetadataEx *This,
  487. DWORD *pdwSchemaMask);
  488. HRESULT (STDMETHODCALLTYPE *GetDocument)(
  489. IVssExamineWriterMetadataEx *This,
  490. IXMLDOMDocument **pDoc);
  491. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  492. IVssExamineWriterMetadataEx *This,
  493. BSTR *pbstrXML);
  494. HRESULT (STDMETHODCALLTYPE *LoadFromXML)(
  495. IVssExamineWriterMetadataEx *This,
  496. BSTR bstrXML);
  497. /*** IVssExamineWriterMetadataEx methods ***/
  498. HRESULT (STDMETHODCALLTYPE *GetIdentityEx)(
  499. IVssExamineWriterMetadataEx *This,
  500. VSS_ID *pidInstance,
  501. VSS_ID *pidWriter,
  502. BSTR *pbstrWriterName,
  503. BSTR *pbstrInstanceName,
  504. VSS_USAGE_TYPE *pUsage,
  505. VSS_SOURCE_TYPE *pSource);
  506. END_INTERFACE
  507. } IVssExamineWriterMetadataExVtbl;
  508. interface IVssExamineWriterMetadataEx {
  509. CONST_VTBL IVssExamineWriterMetadataExVtbl* lpVtbl;
  510. };
  511. #ifdef COBJMACROS
  512. #ifndef WIDL_C_INLINE_WRAPPERS
  513. /*** IUnknown methods ***/
  514. #define IVssExamineWriterMetadataEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  515. #define IVssExamineWriterMetadataEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  516. #define IVssExamineWriterMetadataEx_Release(This) (This)->lpVtbl->Release(This)
  517. /*** IVssExamineWriterMetadata methods ***/
  518. #define IVssExamineWriterMetadataEx_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource)
  519. #define IVssExamineWriterMetadataEx_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents)
  520. #define IVssExamineWriterMetadataEx_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc)
  521. #define IVssExamineWriterMetadataEx_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc)
  522. #define IVssExamineWriterMetadataEx_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent)
  523. #define IVssExamineWriterMetadataEx_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings)
  524. #define IVssExamineWriterMetadataEx_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
  525. #define IVssExamineWriterMetadataEx_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask)
  526. #define IVssExamineWriterMetadataEx_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
  527. #define IVssExamineWriterMetadataEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  528. #define IVssExamineWriterMetadataEx_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML)
  529. /*** IVssExamineWriterMetadataEx methods ***/
  530. #define IVssExamineWriterMetadataEx_GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) (This)->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource)
  531. #else
  532. /*** IUnknown methods ***/
  533. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_QueryInterface(IVssExamineWriterMetadataEx* This,REFIID riid,void **ppvObject) {
  534. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  535. }
  536. static FORCEINLINE ULONG IVssExamineWriterMetadataEx_AddRef(IVssExamineWriterMetadataEx* This) {
  537. return This->lpVtbl->AddRef(This);
  538. }
  539. static FORCEINLINE ULONG IVssExamineWriterMetadataEx_Release(IVssExamineWriterMetadataEx* This) {
  540. return This->lpVtbl->Release(This);
  541. }
  542. /*** IVssExamineWriterMetadata methods ***/
  543. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIdentity(IVssExamineWriterMetadataEx* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) {
  544. return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource);
  545. }
  546. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetFileCounts(IVssExamineWriterMetadataEx* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) {
  547. return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents);
  548. }
  549. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIncludeFile(IVssExamineWriterMetadataEx* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  550. return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc);
  551. }
  552. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetExcludeFile(IVssExamineWriterMetadataEx* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  553. return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc);
  554. }
  555. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetComponent(IVssExamineWriterMetadataEx* This,UINT iComponent,IVssWMComponent **ppComponent) {
  556. return This->lpVtbl->GetComponent(This,iComponent,ppComponent);
  557. }
  558. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetRestoreMethod(IVssExamineWriterMetadataEx* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) {
  559. return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings);
  560. }
  561. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetAlternateLocationMapping(IVssExamineWriterMetadataEx* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
  562. return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
  563. }
  564. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetBackupSchema(IVssExamineWriterMetadataEx* This,DWORD *pdwSchemaMask) {
  565. return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask);
  566. }
  567. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetDocument(IVssExamineWriterMetadataEx* This,IXMLDOMDocument **pDoc) {
  568. return This->lpVtbl->GetDocument(This,pDoc);
  569. }
  570. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_SaveAsXML(IVssExamineWriterMetadataEx* This,BSTR *pbstrXML) {
  571. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  572. }
  573. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_LoadFromXML(IVssExamineWriterMetadataEx* This,BSTR bstrXML) {
  574. return This->lpVtbl->LoadFromXML(This,bstrXML);
  575. }
  576. /*** IVssExamineWriterMetadataEx methods ***/
  577. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIdentityEx(IVssExamineWriterMetadataEx* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) {
  578. return This->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource);
  579. }
  580. #endif
  581. #endif
  582. #endif
  583. #endif /* __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__ */
  584. /*****************************************************************************
  585. * IVssExamineWriterMetadataEx2 interface
  586. */
  587. #ifndef __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__
  588. #define __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__
  589. DEFINE_GUID(IID_IVssExamineWriterMetadataEx2, 0xce115780, 0xa611, 0x431b, 0xb5,0x7f, 0xc3,0x83,0x03,0xab,0x6a,0xee);
  590. #if defined(__cplusplus) && !defined(CINTERFACE)
  591. MIDL_INTERFACE("ce115780-a611-431b-b57f-c38303ab6aee")
  592. IVssExamineWriterMetadataEx2 : public IVssExamineWriterMetadataEx
  593. {
  594. virtual HRESULT STDMETHODCALLTYPE GetVersion(
  595. DWORD *pdwMajorVersion,
  596. DWORD *pdwMinorVersion) = 0;
  597. virtual HRESULT STDMETHODCALLTYPE GetExcludeFromSnapshotCount(
  598. UINT *pcExcludedFromSnapshot) = 0;
  599. virtual HRESULT STDMETHODCALLTYPE GetExcludeFromSnapshotFile(
  600. UINT iFile,
  601. IVssWMFiledesc **ppFiledesc) = 0;
  602. };
  603. #ifdef __CRT_UUID_DECL
  604. __CRT_UUID_DECL(IVssExamineWriterMetadataEx2, 0xce115780, 0xa611, 0x431b, 0xb5,0x7f, 0xc3,0x83,0x03,0xab,0x6a,0xee)
  605. #endif
  606. #else
  607. typedef struct IVssExamineWriterMetadataEx2Vtbl {
  608. BEGIN_INTERFACE
  609. /*** IUnknown methods ***/
  610. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  611. IVssExamineWriterMetadataEx2 *This,
  612. REFIID riid,
  613. void **ppvObject);
  614. ULONG (STDMETHODCALLTYPE *AddRef)(
  615. IVssExamineWriterMetadataEx2 *This);
  616. ULONG (STDMETHODCALLTYPE *Release)(
  617. IVssExamineWriterMetadataEx2 *This);
  618. /*** IVssExamineWriterMetadata methods ***/
  619. HRESULT (STDMETHODCALLTYPE *GetIdentity)(
  620. IVssExamineWriterMetadataEx2 *This,
  621. VSS_ID *pidInstance,
  622. VSS_ID *pidWriter,
  623. BSTR *pbstrWriterName,
  624. VSS_USAGE_TYPE *pUsage,
  625. VSS_SOURCE_TYPE *pSource);
  626. HRESULT (STDMETHODCALLTYPE *GetFileCounts)(
  627. IVssExamineWriterMetadataEx2 *This,
  628. UINT *pcIncludeFiles,
  629. UINT *pcExcludeFiles,
  630. UINT *pcComponents);
  631. HRESULT (STDMETHODCALLTYPE *GetIncludeFile)(
  632. IVssExamineWriterMetadataEx2 *This,
  633. UINT iFile,
  634. IVssWMFiledesc **ppFiledesc);
  635. HRESULT (STDMETHODCALLTYPE *GetExcludeFile)(
  636. IVssExamineWriterMetadataEx2 *This,
  637. UINT iFile,
  638. IVssWMFiledesc **ppFiledesc);
  639. HRESULT (STDMETHODCALLTYPE *GetComponent)(
  640. IVssExamineWriterMetadataEx2 *This,
  641. UINT iComponent,
  642. IVssWMComponent **ppComponent);
  643. HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)(
  644. IVssExamineWriterMetadataEx2 *This,
  645. VSS_RESTOREMETHOD_ENUM *pMethod,
  646. BSTR *pbstrService,
  647. BSTR *pbstrUserProcedure,
  648. VSS_WRITERRESTORE_ENUM *pwriterRestore,
  649. boolean *pbRebootRequired,
  650. UINT *pcMappings);
  651. HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
  652. IVssExamineWriterMetadataEx2 *This,
  653. UINT iMapping,
  654. IVssWMFiledesc **ppFiledesc);
  655. HRESULT (STDMETHODCALLTYPE *GetBackupSchema)(
  656. IVssExamineWriterMetadataEx2 *This,
  657. DWORD *pdwSchemaMask);
  658. HRESULT (STDMETHODCALLTYPE *GetDocument)(
  659. IVssExamineWriterMetadataEx2 *This,
  660. IXMLDOMDocument **pDoc);
  661. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  662. IVssExamineWriterMetadataEx2 *This,
  663. BSTR *pbstrXML);
  664. HRESULT (STDMETHODCALLTYPE *LoadFromXML)(
  665. IVssExamineWriterMetadataEx2 *This,
  666. BSTR bstrXML);
  667. /*** IVssExamineWriterMetadataEx methods ***/
  668. HRESULT (STDMETHODCALLTYPE *GetIdentityEx)(
  669. IVssExamineWriterMetadataEx2 *This,
  670. VSS_ID *pidInstance,
  671. VSS_ID *pidWriter,
  672. BSTR *pbstrWriterName,
  673. BSTR *pbstrInstanceName,
  674. VSS_USAGE_TYPE *pUsage,
  675. VSS_SOURCE_TYPE *pSource);
  676. /*** IVssExamineWriterMetadataEx2 methods ***/
  677. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  678. IVssExamineWriterMetadataEx2 *This,
  679. DWORD *pdwMajorVersion,
  680. DWORD *pdwMinorVersion);
  681. HRESULT (STDMETHODCALLTYPE *GetExcludeFromSnapshotCount)(
  682. IVssExamineWriterMetadataEx2 *This,
  683. UINT *pcExcludedFromSnapshot);
  684. HRESULT (STDMETHODCALLTYPE *GetExcludeFromSnapshotFile)(
  685. IVssExamineWriterMetadataEx2 *This,
  686. UINT iFile,
  687. IVssWMFiledesc **ppFiledesc);
  688. END_INTERFACE
  689. } IVssExamineWriterMetadataEx2Vtbl;
  690. interface IVssExamineWriterMetadataEx2 {
  691. CONST_VTBL IVssExamineWriterMetadataEx2Vtbl* lpVtbl;
  692. };
  693. #ifdef COBJMACROS
  694. #ifndef WIDL_C_INLINE_WRAPPERS
  695. /*** IUnknown methods ***/
  696. #define IVssExamineWriterMetadataEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  697. #define IVssExamineWriterMetadataEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
  698. #define IVssExamineWriterMetadataEx2_Release(This) (This)->lpVtbl->Release(This)
  699. /*** IVssExamineWriterMetadata methods ***/
  700. #define IVssExamineWriterMetadataEx2_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource)
  701. #define IVssExamineWriterMetadataEx2_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents)
  702. #define IVssExamineWriterMetadataEx2_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc)
  703. #define IVssExamineWriterMetadataEx2_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc)
  704. #define IVssExamineWriterMetadataEx2_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent)
  705. #define IVssExamineWriterMetadataEx2_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings)
  706. #define IVssExamineWriterMetadataEx2_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
  707. #define IVssExamineWriterMetadataEx2_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask)
  708. #define IVssExamineWriterMetadataEx2_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
  709. #define IVssExamineWriterMetadataEx2_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  710. #define IVssExamineWriterMetadataEx2_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML)
  711. /*** IVssExamineWriterMetadataEx methods ***/
  712. #define IVssExamineWriterMetadataEx2_GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) (This)->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource)
  713. /*** IVssExamineWriterMetadataEx2 methods ***/
  714. #define IVssExamineWriterMetadataEx2_GetVersion(This,pdwMajorVersion,pdwMinorVersion) (This)->lpVtbl->GetVersion(This,pdwMajorVersion,pdwMinorVersion)
  715. #define IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot) (This)->lpVtbl->GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot)
  716. #define IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFromSnapshotFile(This,iFile,ppFiledesc)
  717. #else
  718. /*** IUnknown methods ***/
  719. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_QueryInterface(IVssExamineWriterMetadataEx2* This,REFIID riid,void **ppvObject) {
  720. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  721. }
  722. static FORCEINLINE ULONG IVssExamineWriterMetadataEx2_AddRef(IVssExamineWriterMetadataEx2* This) {
  723. return This->lpVtbl->AddRef(This);
  724. }
  725. static FORCEINLINE ULONG IVssExamineWriterMetadataEx2_Release(IVssExamineWriterMetadataEx2* This) {
  726. return This->lpVtbl->Release(This);
  727. }
  728. /*** IVssExamineWriterMetadata methods ***/
  729. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIdentity(IVssExamineWriterMetadataEx2* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) {
  730. return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource);
  731. }
  732. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetFileCounts(IVssExamineWriterMetadataEx2* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) {
  733. return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents);
  734. }
  735. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIncludeFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  736. return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc);
  737. }
  738. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  739. return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc);
  740. }
  741. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetComponent(IVssExamineWriterMetadataEx2* This,UINT iComponent,IVssWMComponent **ppComponent) {
  742. return This->lpVtbl->GetComponent(This,iComponent,ppComponent);
  743. }
  744. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetRestoreMethod(IVssExamineWriterMetadataEx2* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) {
  745. return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings);
  746. }
  747. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetAlternateLocationMapping(IVssExamineWriterMetadataEx2* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
  748. return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
  749. }
  750. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetBackupSchema(IVssExamineWriterMetadataEx2* This,DWORD *pdwSchemaMask) {
  751. return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask);
  752. }
  753. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetDocument(IVssExamineWriterMetadataEx2* This,IXMLDOMDocument **pDoc) {
  754. return This->lpVtbl->GetDocument(This,pDoc);
  755. }
  756. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_SaveAsXML(IVssExamineWriterMetadataEx2* This,BSTR *pbstrXML) {
  757. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  758. }
  759. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_LoadFromXML(IVssExamineWriterMetadataEx2* This,BSTR bstrXML) {
  760. return This->lpVtbl->LoadFromXML(This,bstrXML);
  761. }
  762. /*** IVssExamineWriterMetadataEx methods ***/
  763. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIdentityEx(IVssExamineWriterMetadataEx2* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) {
  764. return This->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource);
  765. }
  766. /*** IVssExamineWriterMetadataEx2 methods ***/
  767. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetVersion(IVssExamineWriterMetadataEx2* This,DWORD *pdwMajorVersion,DWORD *pdwMinorVersion) {
  768. return This->lpVtbl->GetVersion(This,pdwMajorVersion,pdwMinorVersion);
  769. }
  770. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotCount(IVssExamineWriterMetadataEx2* This,UINT *pcExcludedFromSnapshot) {
  771. return This->lpVtbl->GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot);
  772. }
  773. static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) {
  774. return This->lpVtbl->GetExcludeFromSnapshotFile(This,iFile,ppFiledesc);
  775. }
  776. #endif
  777. #endif
  778. #endif
  779. #endif /* __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__ */
  780. /*****************************************************************************
  781. * IVssWriterComponentsExt interface
  782. */
  783. #ifndef __IVssWriterComponentsExt_INTERFACE_DEFINED__
  784. #define __IVssWriterComponentsExt_INTERFACE_DEFINED__
  785. DEFINE_GUID(IID_IVssWriterComponentsExt, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
  786. #if defined(__cplusplus) && !defined(CINTERFACE)
  787. MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
  788. IVssWriterComponentsExt : public IVssWriterComponents
  789. {
  790. };
  791. #ifdef __CRT_UUID_DECL
  792. __CRT_UUID_DECL(IVssWriterComponentsExt, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
  793. #endif
  794. #else
  795. typedef struct IVssWriterComponentsExtVtbl {
  796. BEGIN_INTERFACE
  797. /*** IVssWriterComponents methods ***/
  798. HRESULT (STDMETHODCALLTYPE *GetComponentCount)(
  799. IVssWriterComponentsExt *This,
  800. UINT *pcComponents);
  801. HRESULT (STDMETHODCALLTYPE *GetWriterInfo)(
  802. IVssWriterComponentsExt *This,
  803. VSS_ID *pidInstance,
  804. VSS_ID *pidWriter);
  805. HRESULT (STDMETHODCALLTYPE *GetComponent)(
  806. IVssWriterComponentsExt *This,
  807. UINT iComponent,
  808. IVssComponent **ppComponent);
  809. END_INTERFACE
  810. } IVssWriterComponentsExtVtbl;
  811. interface IVssWriterComponentsExt {
  812. CONST_VTBL IVssWriterComponentsExtVtbl* lpVtbl;
  813. };
  814. #ifdef COBJMACROS
  815. #ifndef WIDL_C_INLINE_WRAPPERS
  816. /*** IVssWriterComponents methods ***/
  817. #define IVssWriterComponentsExt_GetComponentCount(This,pcComponents) (This)->lpVtbl->GetComponentCount(This,pcComponents)
  818. #define IVssWriterComponentsExt_GetWriterInfo(This,pidInstance,pidWriter) (This)->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter)
  819. #define IVssWriterComponentsExt_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent)
  820. #else
  821. /*** IVssWriterComponents methods ***/
  822. static FORCEINLINE HRESULT IVssWriterComponentsExt_GetComponentCount(IVssWriterComponentsExt* This,UINT *pcComponents) {
  823. return This->lpVtbl->GetComponentCount(This,pcComponents);
  824. }
  825. static FORCEINLINE HRESULT IVssWriterComponentsExt_GetWriterInfo(IVssWriterComponentsExt* This,VSS_ID *pidInstance,VSS_ID *pidWriter) {
  826. return This->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter);
  827. }
  828. static FORCEINLINE HRESULT IVssWriterComponentsExt_GetComponent(IVssWriterComponentsExt* This,UINT iComponent,IVssComponent **ppComponent) {
  829. return This->lpVtbl->GetComponent(This,iComponent,ppComponent);
  830. }
  831. #endif
  832. #endif
  833. #endif
  834. #endif /* __IVssWriterComponentsExt_INTERFACE_DEFINED__ */
  835. /*****************************************************************************
  836. * IVssBackupComponents interface
  837. */
  838. #ifndef __IVssBackupComponents_INTERFACE_DEFINED__
  839. #define __IVssBackupComponents_INTERFACE_DEFINED__
  840. DEFINE_GUID(IID_IVssBackupComponents, 0x665c1d5f, 0xc218, 0x414d, 0xa0,0x5d, 0x7f,0xef,0x5f,0x9d,0x5c,0x86);
  841. #if defined(__cplusplus) && !defined(CINTERFACE)
  842. MIDL_INTERFACE("665c1d5f-c218-414d-a05d-7fef5f9d5c86")
  843. IVssBackupComponents : public IUnknown
  844. {
  845. virtual HRESULT STDMETHODCALLTYPE GetWriterComponentsCount(
  846. UINT *pcComponents) = 0;
  847. virtual HRESULT STDMETHODCALLTYPE GetWriterComponents(
  848. UINT iWriter,
  849. IVssWriterComponentsExt **ppWriter) = 0;
  850. virtual HRESULT STDMETHODCALLTYPE InitializeForBackup(
  851. BSTR bstrXML = 0) = 0;
  852. virtual HRESULT STDMETHODCALLTYPE SetBackupState(
  853. boolean bSelectComponents,
  854. boolean bBackupBootableSystemState,
  855. VSS_BACKUP_TYPE backupType,
  856. boolean bPartialFileSupport = 0) = 0;
  857. virtual HRESULT STDMETHODCALLTYPE InitializeForRestore(
  858. BSTR bstrXML) = 0;
  859. virtual HRESULT STDMETHODCALLTYPE SetRestoreState(
  860. VSS_RESTORE_TYPE restoreType) = 0;
  861. virtual HRESULT STDMETHODCALLTYPE GatherWriterMetadata(
  862. IVssAsync **pAsync) = 0;
  863. virtual HRESULT STDMETHODCALLTYPE GetWriterMetadataCount(
  864. UINT *pcWriters) = 0;
  865. virtual HRESULT STDMETHODCALLTYPE GetWriterMetadata(
  866. UINT iWriter,
  867. VSS_ID *pidInstance,
  868. IVssExamineWriterMetadata **ppMetadata) = 0;
  869. virtual HRESULT STDMETHODCALLTYPE FreeWriterMetadata(
  870. ) = 0;
  871. virtual HRESULT STDMETHODCALLTYPE AddComponent(
  872. VSS_ID instanceId,
  873. VSS_ID writerId,
  874. VSS_COMPONENT_TYPE ct,
  875. LPCWSTR wszLogicalPath,
  876. LPCWSTR wszComponentName) = 0;
  877. virtual HRESULT STDMETHODCALLTYPE PrepareForBackup(
  878. IVssAsync **ppAsync) = 0;
  879. virtual HRESULT STDMETHODCALLTYPE AbortBackup(
  880. ) = 0;
  881. virtual HRESULT STDMETHODCALLTYPE GatherWriterStatus(
  882. IVssAsync **pAsync) = 0;
  883. virtual HRESULT STDMETHODCALLTYPE GetWriterStatusCount(
  884. UINT *pcWriters) = 0;
  885. virtual HRESULT STDMETHODCALLTYPE FreeWriterStatus(
  886. ) = 0;
  887. virtual HRESULT STDMETHODCALLTYPE GetWriterStatus(
  888. UINT iWriter,
  889. VSS_ID *pidInstance,
  890. VSS_ID *pidWriter,
  891. BSTR *pbstrWriter,
  892. VSS_WRITER_STATE *pnStatus,
  893. HRESULT *phResultFailure) = 0;
  894. virtual HRESULT STDMETHODCALLTYPE SetBackupSucceeded(
  895. VSS_ID instanceId,
  896. VSS_ID writerId,
  897. VSS_COMPONENT_TYPE ct,
  898. LPCWSTR wszLogicalPath,
  899. LPCWSTR wszComponentName,
  900. boolean bSucceded) = 0;
  901. virtual HRESULT STDMETHODCALLTYPE SetBackupOptions(
  902. VSS_ID writerId,
  903. VSS_COMPONENT_TYPE ct,
  904. LPCWSTR wszLogicalPath,
  905. LPCWSTR wszComponentName,
  906. LPCWSTR wszBackupOptions) = 0;
  907. virtual HRESULT STDMETHODCALLTYPE SetSelectedForRestore(
  908. VSS_ID writerId,
  909. VSS_COMPONENT_TYPE ct,
  910. LPCWSTR wszLogicalPath,
  911. LPCWSTR wszComponentName,
  912. boolean bSelectedForRestore) = 0;
  913. virtual HRESULT STDMETHODCALLTYPE SetRestoreOptions(
  914. VSS_ID writerId,
  915. VSS_COMPONENT_TYPE ct,
  916. LPCWSTR wszLogicalPath,
  917. LPCWSTR wszComponentName,
  918. LPCWSTR wszRestoreOptions) = 0;
  919. virtual HRESULT STDMETHODCALLTYPE SetAdditionalRestores(
  920. VSS_ID writerId,
  921. VSS_COMPONENT_TYPE ct,
  922. LPCWSTR wszLogicalPath,
  923. LPCWSTR wszComponentName,
  924. boolean bAdditionalRestores) = 0;
  925. virtual HRESULT STDMETHODCALLTYPE SetPreviousBackupStamp(
  926. VSS_ID writerId,
  927. VSS_COMPONENT_TYPE ct,
  928. LPCWSTR wszLogicalPath,
  929. LPCWSTR wszComponentName,
  930. LPCWSTR wszPreviousBackupStamp) = 0;
  931. virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
  932. BSTR *pbstrXML) = 0;
  933. virtual HRESULT STDMETHODCALLTYPE BackupComplete(
  934. IVssAsync **ppAsync) = 0;
  935. virtual HRESULT STDMETHODCALLTYPE AddAlternativeLocationMapping(
  936. VSS_ID writerId,
  937. VSS_COMPONENT_TYPE componentType,
  938. LPCWSTR wszLogicalPath,
  939. LPCWSTR wszComponentName,
  940. LPCWSTR wszPath,
  941. LPCWSTR wszFilespec,
  942. boolean bRecursive,
  943. LPCWSTR wszDestination) = 0;
  944. virtual HRESULT STDMETHODCALLTYPE AddRestoreSubcomponent(
  945. VSS_ID writerId,
  946. VSS_COMPONENT_TYPE componentType,
  947. LPCWSTR wszLogicalPath,
  948. LPCWSTR wszComponentName,
  949. LPCWSTR wszSubComponentLogicalPath,
  950. LPCWSTR wszSubComponentName,
  951. boolean bRepair) = 0;
  952. virtual HRESULT STDMETHODCALLTYPE SetFileRestoreStatus(
  953. VSS_ID writerId,
  954. VSS_COMPONENT_TYPE ct,
  955. LPCWSTR wszLogicalPath,
  956. LPCWSTR wszComponentName,
  957. VSS_FILE_RESTORE_STATUS status) = 0;
  958. virtual HRESULT STDMETHODCALLTYPE AddNewTarget(
  959. VSS_ID writerId,
  960. VSS_COMPONENT_TYPE ct,
  961. LPCWSTR wszLogicalPath,
  962. LPCWSTR wszComponentName,
  963. LPCWSTR wszPath,
  964. LPCWSTR wszFileName,
  965. boolean bRecursive,
  966. LPCWSTR wszAlternatePath) = 0;
  967. virtual HRESULT STDMETHODCALLTYPE SetRangesFilePath(
  968. VSS_ID writerId,
  969. VSS_COMPONENT_TYPE ct,
  970. LPCWSTR wszLogicalPath,
  971. LPCWSTR wszComponentName,
  972. UINT iPartialFile,
  973. LPCWSTR wszRangesFile) = 0;
  974. virtual HRESULT STDMETHODCALLTYPE PreRestore(
  975. IVssAsync **ppAsync) = 0;
  976. virtual HRESULT STDMETHODCALLTYPE PostRestore(
  977. IVssAsync **ppAsync) = 0;
  978. virtual HRESULT STDMETHODCALLTYPE SetContext(
  979. LONG lContext) = 0;
  980. virtual HRESULT STDMETHODCALLTYPE StartSnapshotSet(
  981. VSS_ID *pSnapshotSetId) = 0;
  982. virtual HRESULT STDMETHODCALLTYPE AddToSnapshotSet(
  983. VSS_PWSZ pwszVolumeName,
  984. VSS_ID ProviderId,
  985. VSS_ID *pidSnapshot) = 0;
  986. virtual HRESULT STDMETHODCALLTYPE DoSnapshotSet(
  987. IVssAsync **ppAsync) = 0;
  988. virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots(
  989. VSS_ID SourceObjectId,
  990. VSS_OBJECT_TYPE eSourceObjectType,
  991. WINBOOL bForceDelete,
  992. LONG *plDeletedSnapshots,
  993. VSS_ID *pNondeletedSnapshotID) = 0;
  994. virtual HRESULT STDMETHODCALLTYPE ImportSnapshots(
  995. IVssAsync **ppAsync) = 0;
  996. virtual HRESULT STDMETHODCALLTYPE BreakSnapshotSet(
  997. VSS_ID SnapshotSetId) = 0;
  998. virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties(
  999. VSS_ID SnapshotId,
  1000. VSS_SNAPSHOT_PROP *pProp) = 0;
  1001. virtual HRESULT STDMETHODCALLTYPE Query(
  1002. VSS_ID QueriedObjectId,
  1003. VSS_OBJECT_TYPE eQueriedObjectType,
  1004. VSS_OBJECT_TYPE eReturnedObjectsType,
  1005. IVssEnumObject **ppEnum) = 0;
  1006. virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported(
  1007. VSS_ID ProviderId,
  1008. VSS_PWSZ pwszVolumeName,
  1009. WINBOOL *pbSupportedByThisProvider) = 0;
  1010. virtual HRESULT STDMETHODCALLTYPE DisableWriterClasses(
  1011. const VSS_ID *rgWriterClassId,
  1012. UINT cClassId) = 0;
  1013. virtual HRESULT STDMETHODCALLTYPE EnableWriterClasses(
  1014. const VSS_ID *rgWriterClassId,
  1015. UINT cClassId) = 0;
  1016. virtual HRESULT STDMETHODCALLTYPE DisableWriterInstances(
  1017. const VSS_ID *rgWriterInstanceId,
  1018. UINT cInstanceId) = 0;
  1019. virtual HRESULT STDMETHODCALLTYPE ExposeSnapshot(
  1020. VSS_ID SnapshotId,
  1021. VSS_PWSZ wszPathFromRoot,
  1022. LONG lAttributes,
  1023. VSS_PWSZ wszExpose,
  1024. VSS_PWSZ *pwszExposed) = 0;
  1025. virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot(
  1026. VSS_ID SnapshotId,
  1027. WINBOOL bForceDismount) = 0;
  1028. virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus(
  1029. VSS_PWSZ pwszVolume,
  1030. IVssAsync **ppAsync) = 0;
  1031. };
  1032. #ifdef __CRT_UUID_DECL
  1033. __CRT_UUID_DECL(IVssBackupComponents, 0x665c1d5f, 0xc218, 0x414d, 0xa0,0x5d, 0x7f,0xef,0x5f,0x9d,0x5c,0x86)
  1034. #endif
  1035. #else
  1036. typedef struct IVssBackupComponentsVtbl {
  1037. BEGIN_INTERFACE
  1038. /*** IUnknown methods ***/
  1039. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1040. IVssBackupComponents *This,
  1041. REFIID riid,
  1042. void **ppvObject);
  1043. ULONG (STDMETHODCALLTYPE *AddRef)(
  1044. IVssBackupComponents *This);
  1045. ULONG (STDMETHODCALLTYPE *Release)(
  1046. IVssBackupComponents *This);
  1047. /*** IVssBackupComponents methods ***/
  1048. HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
  1049. IVssBackupComponents *This,
  1050. UINT *pcComponents);
  1051. HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
  1052. IVssBackupComponents *This,
  1053. UINT iWriter,
  1054. IVssWriterComponentsExt **ppWriter);
  1055. HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
  1056. IVssBackupComponents *This,
  1057. BSTR bstrXML);
  1058. HRESULT (STDMETHODCALLTYPE *SetBackupState)(
  1059. IVssBackupComponents *This,
  1060. boolean bSelectComponents,
  1061. boolean bBackupBootableSystemState,
  1062. VSS_BACKUP_TYPE backupType,
  1063. boolean bPartialFileSupport);
  1064. HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
  1065. IVssBackupComponents *This,
  1066. BSTR bstrXML);
  1067. HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
  1068. IVssBackupComponents *This,
  1069. VSS_RESTORE_TYPE restoreType);
  1070. HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
  1071. IVssBackupComponents *This,
  1072. IVssAsync **pAsync);
  1073. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
  1074. IVssBackupComponents *This,
  1075. UINT *pcWriters);
  1076. HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
  1077. IVssBackupComponents *This,
  1078. UINT iWriter,
  1079. VSS_ID *pidInstance,
  1080. IVssExamineWriterMetadata **ppMetadata);
  1081. HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
  1082. IVssBackupComponents *This);
  1083. HRESULT (STDMETHODCALLTYPE *AddComponent)(
  1084. IVssBackupComponents *This,
  1085. VSS_ID instanceId,
  1086. VSS_ID writerId,
  1087. VSS_COMPONENT_TYPE ct,
  1088. LPCWSTR wszLogicalPath,
  1089. LPCWSTR wszComponentName);
  1090. HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
  1091. IVssBackupComponents *This,
  1092. IVssAsync **ppAsync);
  1093. HRESULT (STDMETHODCALLTYPE *AbortBackup)(
  1094. IVssBackupComponents *This);
  1095. HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
  1096. IVssBackupComponents *This,
  1097. IVssAsync **pAsync);
  1098. HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
  1099. IVssBackupComponents *This,
  1100. UINT *pcWriters);
  1101. HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
  1102. IVssBackupComponents *This);
  1103. HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
  1104. IVssBackupComponents *This,
  1105. UINT iWriter,
  1106. VSS_ID *pidInstance,
  1107. VSS_ID *pidWriter,
  1108. BSTR *pbstrWriter,
  1109. VSS_WRITER_STATE *pnStatus,
  1110. HRESULT *phResultFailure);
  1111. HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
  1112. IVssBackupComponents *This,
  1113. VSS_ID instanceId,
  1114. VSS_ID writerId,
  1115. VSS_COMPONENT_TYPE ct,
  1116. LPCWSTR wszLogicalPath,
  1117. LPCWSTR wszComponentName,
  1118. boolean bSucceded);
  1119. HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
  1120. IVssBackupComponents *This,
  1121. VSS_ID writerId,
  1122. VSS_COMPONENT_TYPE ct,
  1123. LPCWSTR wszLogicalPath,
  1124. LPCWSTR wszComponentName,
  1125. LPCWSTR wszBackupOptions);
  1126. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
  1127. IVssBackupComponents *This,
  1128. VSS_ID writerId,
  1129. VSS_COMPONENT_TYPE ct,
  1130. LPCWSTR wszLogicalPath,
  1131. LPCWSTR wszComponentName,
  1132. boolean bSelectedForRestore);
  1133. HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
  1134. IVssBackupComponents *This,
  1135. VSS_ID writerId,
  1136. VSS_COMPONENT_TYPE ct,
  1137. LPCWSTR wszLogicalPath,
  1138. LPCWSTR wszComponentName,
  1139. LPCWSTR wszRestoreOptions);
  1140. HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
  1141. IVssBackupComponents *This,
  1142. VSS_ID writerId,
  1143. VSS_COMPONENT_TYPE ct,
  1144. LPCWSTR wszLogicalPath,
  1145. LPCWSTR wszComponentName,
  1146. boolean bAdditionalRestores);
  1147. HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
  1148. IVssBackupComponents *This,
  1149. VSS_ID writerId,
  1150. VSS_COMPONENT_TYPE ct,
  1151. LPCWSTR wszLogicalPath,
  1152. LPCWSTR wszComponentName,
  1153. LPCWSTR wszPreviousBackupStamp);
  1154. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  1155. IVssBackupComponents *This,
  1156. BSTR *pbstrXML);
  1157. HRESULT (STDMETHODCALLTYPE *BackupComplete)(
  1158. IVssBackupComponents *This,
  1159. IVssAsync **ppAsync);
  1160. HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
  1161. IVssBackupComponents *This,
  1162. VSS_ID writerId,
  1163. VSS_COMPONENT_TYPE componentType,
  1164. LPCWSTR wszLogicalPath,
  1165. LPCWSTR wszComponentName,
  1166. LPCWSTR wszPath,
  1167. LPCWSTR wszFilespec,
  1168. boolean bRecursive,
  1169. LPCWSTR wszDestination);
  1170. HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
  1171. IVssBackupComponents *This,
  1172. VSS_ID writerId,
  1173. VSS_COMPONENT_TYPE componentType,
  1174. LPCWSTR wszLogicalPath,
  1175. LPCWSTR wszComponentName,
  1176. LPCWSTR wszSubComponentLogicalPath,
  1177. LPCWSTR wszSubComponentName,
  1178. boolean bRepair);
  1179. HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
  1180. IVssBackupComponents *This,
  1181. VSS_ID writerId,
  1182. VSS_COMPONENT_TYPE ct,
  1183. LPCWSTR wszLogicalPath,
  1184. LPCWSTR wszComponentName,
  1185. VSS_FILE_RESTORE_STATUS status);
  1186. HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
  1187. IVssBackupComponents *This,
  1188. VSS_ID writerId,
  1189. VSS_COMPONENT_TYPE ct,
  1190. LPCWSTR wszLogicalPath,
  1191. LPCWSTR wszComponentName,
  1192. LPCWSTR wszPath,
  1193. LPCWSTR wszFileName,
  1194. boolean bRecursive,
  1195. LPCWSTR wszAlternatePath);
  1196. HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
  1197. IVssBackupComponents *This,
  1198. VSS_ID writerId,
  1199. VSS_COMPONENT_TYPE ct,
  1200. LPCWSTR wszLogicalPath,
  1201. LPCWSTR wszComponentName,
  1202. UINT iPartialFile,
  1203. LPCWSTR wszRangesFile);
  1204. HRESULT (STDMETHODCALLTYPE *PreRestore)(
  1205. IVssBackupComponents *This,
  1206. IVssAsync **ppAsync);
  1207. HRESULT (STDMETHODCALLTYPE *PostRestore)(
  1208. IVssBackupComponents *This,
  1209. IVssAsync **ppAsync);
  1210. HRESULT (STDMETHODCALLTYPE *SetContext)(
  1211. IVssBackupComponents *This,
  1212. LONG lContext);
  1213. HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
  1214. IVssBackupComponents *This,
  1215. VSS_ID *pSnapshotSetId);
  1216. HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
  1217. IVssBackupComponents *This,
  1218. VSS_PWSZ pwszVolumeName,
  1219. VSS_ID ProviderId,
  1220. VSS_ID *pidSnapshot);
  1221. HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
  1222. IVssBackupComponents *This,
  1223. IVssAsync **ppAsync);
  1224. HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
  1225. IVssBackupComponents *This,
  1226. VSS_ID SourceObjectId,
  1227. VSS_OBJECT_TYPE eSourceObjectType,
  1228. WINBOOL bForceDelete,
  1229. LONG *plDeletedSnapshots,
  1230. VSS_ID *pNondeletedSnapshotID);
  1231. HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
  1232. IVssBackupComponents *This,
  1233. IVssAsync **ppAsync);
  1234. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
  1235. IVssBackupComponents *This,
  1236. VSS_ID SnapshotSetId);
  1237. HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
  1238. IVssBackupComponents *This,
  1239. VSS_ID SnapshotId,
  1240. VSS_SNAPSHOT_PROP *pProp);
  1241. HRESULT (STDMETHODCALLTYPE *Query)(
  1242. IVssBackupComponents *This,
  1243. VSS_ID QueriedObjectId,
  1244. VSS_OBJECT_TYPE eQueriedObjectType,
  1245. VSS_OBJECT_TYPE eReturnedObjectsType,
  1246. IVssEnumObject **ppEnum);
  1247. HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
  1248. IVssBackupComponents *This,
  1249. VSS_ID ProviderId,
  1250. VSS_PWSZ pwszVolumeName,
  1251. WINBOOL *pbSupportedByThisProvider);
  1252. HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
  1253. IVssBackupComponents *This,
  1254. const VSS_ID *rgWriterClassId,
  1255. UINT cClassId);
  1256. HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
  1257. IVssBackupComponents *This,
  1258. const VSS_ID *rgWriterClassId,
  1259. UINT cClassId);
  1260. HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
  1261. IVssBackupComponents *This,
  1262. const VSS_ID *rgWriterInstanceId,
  1263. UINT cInstanceId);
  1264. HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
  1265. IVssBackupComponents *This,
  1266. VSS_ID SnapshotId,
  1267. VSS_PWSZ wszPathFromRoot,
  1268. LONG lAttributes,
  1269. VSS_PWSZ wszExpose,
  1270. VSS_PWSZ *pwszExposed);
  1271. HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
  1272. IVssBackupComponents *This,
  1273. VSS_ID SnapshotId,
  1274. WINBOOL bForceDismount);
  1275. HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
  1276. IVssBackupComponents *This,
  1277. VSS_PWSZ pwszVolume,
  1278. IVssAsync **ppAsync);
  1279. END_INTERFACE
  1280. } IVssBackupComponentsVtbl;
  1281. interface IVssBackupComponents {
  1282. CONST_VTBL IVssBackupComponentsVtbl* lpVtbl;
  1283. };
  1284. #ifdef COBJMACROS
  1285. #ifndef WIDL_C_INLINE_WRAPPERS
  1286. /*** IUnknown methods ***/
  1287. #define IVssBackupComponents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1288. #define IVssBackupComponents_AddRef(This) (This)->lpVtbl->AddRef(This)
  1289. #define IVssBackupComponents_Release(This) (This)->lpVtbl->Release(This)
  1290. /*** IVssBackupComponents methods ***/
  1291. #define IVssBackupComponents_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
  1292. #define IVssBackupComponents_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
  1293. #define IVssBackupComponents_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
  1294. #define IVssBackupComponents_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
  1295. #define IVssBackupComponents_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
  1296. #define IVssBackupComponents_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
  1297. #define IVssBackupComponents_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
  1298. #define IVssBackupComponents_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
  1299. #define IVssBackupComponents_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
  1300. #define IVssBackupComponents_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
  1301. #define IVssBackupComponents_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
  1302. #define IVssBackupComponents_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
  1303. #define IVssBackupComponents_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
  1304. #define IVssBackupComponents_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
  1305. #define IVssBackupComponents_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
  1306. #define IVssBackupComponents_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
  1307. #define IVssBackupComponents_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
  1308. #define IVssBackupComponents_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
  1309. #define IVssBackupComponents_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
  1310. #define IVssBackupComponents_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
  1311. #define IVssBackupComponents_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
  1312. #define IVssBackupComponents_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
  1313. #define IVssBackupComponents_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
  1314. #define IVssBackupComponents_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  1315. #define IVssBackupComponents_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
  1316. #define IVssBackupComponents_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
  1317. #define IVssBackupComponents_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
  1318. #define IVssBackupComponents_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
  1319. #define IVssBackupComponents_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
  1320. #define IVssBackupComponents_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
  1321. #define IVssBackupComponents_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
  1322. #define IVssBackupComponents_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
  1323. #define IVssBackupComponents_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
  1324. #define IVssBackupComponents_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
  1325. #define IVssBackupComponents_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
  1326. #define IVssBackupComponents_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
  1327. #define IVssBackupComponents_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
  1328. #define IVssBackupComponents_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
  1329. #define IVssBackupComponents_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
  1330. #define IVssBackupComponents_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
  1331. #define IVssBackupComponents_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
  1332. #define IVssBackupComponents_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
  1333. #define IVssBackupComponents_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
  1334. #define IVssBackupComponents_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
  1335. #define IVssBackupComponents_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
  1336. #define IVssBackupComponents_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
  1337. #define IVssBackupComponents_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
  1338. #define IVssBackupComponents_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
  1339. #else
  1340. /*** IUnknown methods ***/
  1341. static FORCEINLINE HRESULT IVssBackupComponents_QueryInterface(IVssBackupComponents* This,REFIID riid,void **ppvObject) {
  1342. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1343. }
  1344. static FORCEINLINE ULONG IVssBackupComponents_AddRef(IVssBackupComponents* This) {
  1345. return This->lpVtbl->AddRef(This);
  1346. }
  1347. static FORCEINLINE ULONG IVssBackupComponents_Release(IVssBackupComponents* This) {
  1348. return This->lpVtbl->Release(This);
  1349. }
  1350. /*** IVssBackupComponents methods ***/
  1351. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponentsCount(IVssBackupComponents* This,UINT *pcComponents) {
  1352. return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
  1353. }
  1354. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponents(IVssBackupComponents* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
  1355. return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
  1356. }
  1357. static FORCEINLINE HRESULT IVssBackupComponents_InitializeForBackup(IVssBackupComponents* This,BSTR bstrXML) {
  1358. return This->lpVtbl->InitializeForBackup(This,bstrXML);
  1359. }
  1360. static FORCEINLINE HRESULT IVssBackupComponents_SetBackupState(IVssBackupComponents* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
  1361. return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
  1362. }
  1363. static FORCEINLINE HRESULT IVssBackupComponents_InitializeForRestore(IVssBackupComponents* This,BSTR bstrXML) {
  1364. return This->lpVtbl->InitializeForRestore(This,bstrXML);
  1365. }
  1366. static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreState(IVssBackupComponents* This,VSS_RESTORE_TYPE restoreType) {
  1367. return This->lpVtbl->SetRestoreState(This,restoreType);
  1368. }
  1369. static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterMetadata(IVssBackupComponents* This,IVssAsync **pAsync) {
  1370. return This->lpVtbl->GatherWriterMetadata(This,pAsync);
  1371. }
  1372. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadataCount(IVssBackupComponents* This,UINT *pcWriters) {
  1373. return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
  1374. }
  1375. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadata(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
  1376. return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
  1377. }
  1378. static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterMetadata(IVssBackupComponents* This) {
  1379. return This->lpVtbl->FreeWriterMetadata(This);
  1380. }
  1381. static FORCEINLINE HRESULT IVssBackupComponents_AddComponent(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
  1382. return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
  1383. }
  1384. static FORCEINLINE HRESULT IVssBackupComponents_PrepareForBackup(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1385. return This->lpVtbl->PrepareForBackup(This,ppAsync);
  1386. }
  1387. static FORCEINLINE HRESULT IVssBackupComponents_AbortBackup(IVssBackupComponents* This) {
  1388. return This->lpVtbl->AbortBackup(This);
  1389. }
  1390. static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterStatus(IVssBackupComponents* This,IVssAsync **pAsync) {
  1391. return This->lpVtbl->GatherWriterStatus(This,pAsync);
  1392. }
  1393. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatusCount(IVssBackupComponents* This,UINT *pcWriters) {
  1394. return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
  1395. }
  1396. static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterStatus(IVssBackupComponents* This) {
  1397. return This->lpVtbl->FreeWriterStatus(This);
  1398. }
  1399. static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatus(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
  1400. return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
  1401. }
  1402. static FORCEINLINE HRESULT IVssBackupComponents_SetBackupSucceeded(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
  1403. return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
  1404. }
  1405. static FORCEINLINE HRESULT IVssBackupComponents_SetBackupOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
  1406. return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
  1407. }
  1408. static FORCEINLINE HRESULT IVssBackupComponents_SetSelectedForRestore(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
  1409. return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
  1410. }
  1411. static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
  1412. return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
  1413. }
  1414. static FORCEINLINE HRESULT IVssBackupComponents_SetAdditionalRestores(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
  1415. return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
  1416. }
  1417. static FORCEINLINE HRESULT IVssBackupComponents_SetPreviousBackupStamp(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
  1418. return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
  1419. }
  1420. static FORCEINLINE HRESULT IVssBackupComponents_SaveAsXML(IVssBackupComponents* This,BSTR *pbstrXML) {
  1421. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  1422. }
  1423. static FORCEINLINE HRESULT IVssBackupComponents_BackupComplete(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1424. return This->lpVtbl->BackupComplete(This,ppAsync);
  1425. }
  1426. static FORCEINLINE HRESULT IVssBackupComponents_AddAlternativeLocationMapping(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
  1427. return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
  1428. }
  1429. static FORCEINLINE HRESULT IVssBackupComponents_AddRestoreSubcomponent(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
  1430. return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
  1431. }
  1432. static FORCEINLINE HRESULT IVssBackupComponents_SetFileRestoreStatus(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
  1433. return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
  1434. }
  1435. static FORCEINLINE HRESULT IVssBackupComponents_AddNewTarget(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
  1436. return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
  1437. }
  1438. static FORCEINLINE HRESULT IVssBackupComponents_SetRangesFilePath(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
  1439. return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
  1440. }
  1441. static FORCEINLINE HRESULT IVssBackupComponents_PreRestore(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1442. return This->lpVtbl->PreRestore(This,ppAsync);
  1443. }
  1444. static FORCEINLINE HRESULT IVssBackupComponents_PostRestore(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1445. return This->lpVtbl->PostRestore(This,ppAsync);
  1446. }
  1447. static FORCEINLINE HRESULT IVssBackupComponents_SetContext(IVssBackupComponents* This,LONG lContext) {
  1448. return This->lpVtbl->SetContext(This,lContext);
  1449. }
  1450. static FORCEINLINE HRESULT IVssBackupComponents_StartSnapshotSet(IVssBackupComponents* This,VSS_ID *pSnapshotSetId) {
  1451. return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
  1452. }
  1453. static FORCEINLINE HRESULT IVssBackupComponents_AddToSnapshotSet(IVssBackupComponents* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
  1454. return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
  1455. }
  1456. static FORCEINLINE HRESULT IVssBackupComponents_DoSnapshotSet(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1457. return This->lpVtbl->DoSnapshotSet(This,ppAsync);
  1458. }
  1459. static FORCEINLINE HRESULT IVssBackupComponents_DeleteSnapshots(IVssBackupComponents* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
  1460. return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
  1461. }
  1462. static FORCEINLINE HRESULT IVssBackupComponents_ImportSnapshots(IVssBackupComponents* This,IVssAsync **ppAsync) {
  1463. return This->lpVtbl->ImportSnapshots(This,ppAsync);
  1464. }
  1465. static FORCEINLINE HRESULT IVssBackupComponents_BreakSnapshotSet(IVssBackupComponents* This,VSS_ID SnapshotSetId) {
  1466. return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
  1467. }
  1468. static FORCEINLINE HRESULT IVssBackupComponents_GetSnapshotProperties(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
  1469. return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
  1470. }
  1471. static FORCEINLINE HRESULT IVssBackupComponents_Query(IVssBackupComponents* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
  1472. return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
  1473. }
  1474. static FORCEINLINE HRESULT IVssBackupComponents_IsVolumeSupported(IVssBackupComponents* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
  1475. return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
  1476. }
  1477. static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  1478. return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
  1479. }
  1480. static FORCEINLINE HRESULT IVssBackupComponents_EnableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  1481. return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
  1482. }
  1483. static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterInstances(IVssBackupComponents* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
  1484. return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
  1485. }
  1486. static FORCEINLINE HRESULT IVssBackupComponents_ExposeSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
  1487. return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
  1488. }
  1489. static FORCEINLINE HRESULT IVssBackupComponents_RevertToSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
  1490. return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
  1491. }
  1492. static FORCEINLINE HRESULT IVssBackupComponents_QueryRevertStatus(IVssBackupComponents* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
  1493. return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
  1494. }
  1495. #endif
  1496. #endif
  1497. #endif
  1498. #endif /* __IVssBackupComponents_INTERFACE_DEFINED__ */
  1499. /*****************************************************************************
  1500. * IVssBackupComponentsEx interface
  1501. */
  1502. #ifndef __IVssBackupComponentsEx_INTERFACE_DEFINED__
  1503. #define __IVssBackupComponentsEx_INTERFACE_DEFINED__
  1504. DEFINE_GUID(IID_IVssBackupComponentsEx, 0x963f03ad, 0x9e4c, 0x4a34, 0xac,0x15, 0xe4,0xb6,0x17,0x4e,0x50,0x36);
  1505. #if defined(__cplusplus) && !defined(CINTERFACE)
  1506. MIDL_INTERFACE("963f03ad-9e4c-4a34-ac15-e4b6174e5036")
  1507. IVssBackupComponentsEx : public IVssBackupComponents
  1508. {
  1509. virtual HRESULT STDMETHODCALLTYPE GetWriterMetadataEx(
  1510. UINT iWriter,
  1511. VSS_ID *pidInstance,
  1512. IVssExamineWriterMetadataEx **ppMetadata) = 0;
  1513. virtual HRESULT STDMETHODCALLTYPE SetSelectedForRestoreEx(
  1514. VSS_ID writerId,
  1515. VSS_COMPONENT_TYPE ct,
  1516. LPCWSTR wszLogicalPath,
  1517. LPCWSTR wszComponentName,
  1518. boolean bSelectedForRestore,
  1519. VSS_ID instanceId) = 0;
  1520. };
  1521. #ifdef __CRT_UUID_DECL
  1522. __CRT_UUID_DECL(IVssBackupComponentsEx, 0x963f03ad, 0x9e4c, 0x4a34, 0xac,0x15, 0xe4,0xb6,0x17,0x4e,0x50,0x36)
  1523. #endif
  1524. #else
  1525. typedef struct IVssBackupComponentsExVtbl {
  1526. BEGIN_INTERFACE
  1527. /*** IUnknown methods ***/
  1528. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1529. IVssBackupComponentsEx *This,
  1530. REFIID riid,
  1531. void **ppvObject);
  1532. ULONG (STDMETHODCALLTYPE *AddRef)(
  1533. IVssBackupComponentsEx *This);
  1534. ULONG (STDMETHODCALLTYPE *Release)(
  1535. IVssBackupComponentsEx *This);
  1536. /*** IVssBackupComponents methods ***/
  1537. HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
  1538. IVssBackupComponentsEx *This,
  1539. UINT *pcComponents);
  1540. HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
  1541. IVssBackupComponentsEx *This,
  1542. UINT iWriter,
  1543. IVssWriterComponentsExt **ppWriter);
  1544. HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
  1545. IVssBackupComponentsEx *This,
  1546. BSTR bstrXML);
  1547. HRESULT (STDMETHODCALLTYPE *SetBackupState)(
  1548. IVssBackupComponentsEx *This,
  1549. boolean bSelectComponents,
  1550. boolean bBackupBootableSystemState,
  1551. VSS_BACKUP_TYPE backupType,
  1552. boolean bPartialFileSupport);
  1553. HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
  1554. IVssBackupComponentsEx *This,
  1555. BSTR bstrXML);
  1556. HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
  1557. IVssBackupComponentsEx *This,
  1558. VSS_RESTORE_TYPE restoreType);
  1559. HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
  1560. IVssBackupComponentsEx *This,
  1561. IVssAsync **pAsync);
  1562. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
  1563. IVssBackupComponentsEx *This,
  1564. UINT *pcWriters);
  1565. HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
  1566. IVssBackupComponentsEx *This,
  1567. UINT iWriter,
  1568. VSS_ID *pidInstance,
  1569. IVssExamineWriterMetadata **ppMetadata);
  1570. HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
  1571. IVssBackupComponentsEx *This);
  1572. HRESULT (STDMETHODCALLTYPE *AddComponent)(
  1573. IVssBackupComponentsEx *This,
  1574. VSS_ID instanceId,
  1575. VSS_ID writerId,
  1576. VSS_COMPONENT_TYPE ct,
  1577. LPCWSTR wszLogicalPath,
  1578. LPCWSTR wszComponentName);
  1579. HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
  1580. IVssBackupComponentsEx *This,
  1581. IVssAsync **ppAsync);
  1582. HRESULT (STDMETHODCALLTYPE *AbortBackup)(
  1583. IVssBackupComponentsEx *This);
  1584. HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
  1585. IVssBackupComponentsEx *This,
  1586. IVssAsync **pAsync);
  1587. HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
  1588. IVssBackupComponentsEx *This,
  1589. UINT *pcWriters);
  1590. HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
  1591. IVssBackupComponentsEx *This);
  1592. HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
  1593. IVssBackupComponentsEx *This,
  1594. UINT iWriter,
  1595. VSS_ID *pidInstance,
  1596. VSS_ID *pidWriter,
  1597. BSTR *pbstrWriter,
  1598. VSS_WRITER_STATE *pnStatus,
  1599. HRESULT *phResultFailure);
  1600. HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
  1601. IVssBackupComponentsEx *This,
  1602. VSS_ID instanceId,
  1603. VSS_ID writerId,
  1604. VSS_COMPONENT_TYPE ct,
  1605. LPCWSTR wszLogicalPath,
  1606. LPCWSTR wszComponentName,
  1607. boolean bSucceded);
  1608. HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
  1609. IVssBackupComponentsEx *This,
  1610. VSS_ID writerId,
  1611. VSS_COMPONENT_TYPE ct,
  1612. LPCWSTR wszLogicalPath,
  1613. LPCWSTR wszComponentName,
  1614. LPCWSTR wszBackupOptions);
  1615. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
  1616. IVssBackupComponentsEx *This,
  1617. VSS_ID writerId,
  1618. VSS_COMPONENT_TYPE ct,
  1619. LPCWSTR wszLogicalPath,
  1620. LPCWSTR wszComponentName,
  1621. boolean bSelectedForRestore);
  1622. HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
  1623. IVssBackupComponentsEx *This,
  1624. VSS_ID writerId,
  1625. VSS_COMPONENT_TYPE ct,
  1626. LPCWSTR wszLogicalPath,
  1627. LPCWSTR wszComponentName,
  1628. LPCWSTR wszRestoreOptions);
  1629. HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
  1630. IVssBackupComponentsEx *This,
  1631. VSS_ID writerId,
  1632. VSS_COMPONENT_TYPE ct,
  1633. LPCWSTR wszLogicalPath,
  1634. LPCWSTR wszComponentName,
  1635. boolean bAdditionalRestores);
  1636. HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
  1637. IVssBackupComponentsEx *This,
  1638. VSS_ID writerId,
  1639. VSS_COMPONENT_TYPE ct,
  1640. LPCWSTR wszLogicalPath,
  1641. LPCWSTR wszComponentName,
  1642. LPCWSTR wszPreviousBackupStamp);
  1643. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  1644. IVssBackupComponentsEx *This,
  1645. BSTR *pbstrXML);
  1646. HRESULT (STDMETHODCALLTYPE *BackupComplete)(
  1647. IVssBackupComponentsEx *This,
  1648. IVssAsync **ppAsync);
  1649. HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
  1650. IVssBackupComponentsEx *This,
  1651. VSS_ID writerId,
  1652. VSS_COMPONENT_TYPE componentType,
  1653. LPCWSTR wszLogicalPath,
  1654. LPCWSTR wszComponentName,
  1655. LPCWSTR wszPath,
  1656. LPCWSTR wszFilespec,
  1657. boolean bRecursive,
  1658. LPCWSTR wszDestination);
  1659. HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
  1660. IVssBackupComponentsEx *This,
  1661. VSS_ID writerId,
  1662. VSS_COMPONENT_TYPE componentType,
  1663. LPCWSTR wszLogicalPath,
  1664. LPCWSTR wszComponentName,
  1665. LPCWSTR wszSubComponentLogicalPath,
  1666. LPCWSTR wszSubComponentName,
  1667. boolean bRepair);
  1668. HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
  1669. IVssBackupComponentsEx *This,
  1670. VSS_ID writerId,
  1671. VSS_COMPONENT_TYPE ct,
  1672. LPCWSTR wszLogicalPath,
  1673. LPCWSTR wszComponentName,
  1674. VSS_FILE_RESTORE_STATUS status);
  1675. HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
  1676. IVssBackupComponentsEx *This,
  1677. VSS_ID writerId,
  1678. VSS_COMPONENT_TYPE ct,
  1679. LPCWSTR wszLogicalPath,
  1680. LPCWSTR wszComponentName,
  1681. LPCWSTR wszPath,
  1682. LPCWSTR wszFileName,
  1683. boolean bRecursive,
  1684. LPCWSTR wszAlternatePath);
  1685. HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
  1686. IVssBackupComponentsEx *This,
  1687. VSS_ID writerId,
  1688. VSS_COMPONENT_TYPE ct,
  1689. LPCWSTR wszLogicalPath,
  1690. LPCWSTR wszComponentName,
  1691. UINT iPartialFile,
  1692. LPCWSTR wszRangesFile);
  1693. HRESULT (STDMETHODCALLTYPE *PreRestore)(
  1694. IVssBackupComponentsEx *This,
  1695. IVssAsync **ppAsync);
  1696. HRESULT (STDMETHODCALLTYPE *PostRestore)(
  1697. IVssBackupComponentsEx *This,
  1698. IVssAsync **ppAsync);
  1699. HRESULT (STDMETHODCALLTYPE *SetContext)(
  1700. IVssBackupComponentsEx *This,
  1701. LONG lContext);
  1702. HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
  1703. IVssBackupComponentsEx *This,
  1704. VSS_ID *pSnapshotSetId);
  1705. HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
  1706. IVssBackupComponentsEx *This,
  1707. VSS_PWSZ pwszVolumeName,
  1708. VSS_ID ProviderId,
  1709. VSS_ID *pidSnapshot);
  1710. HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
  1711. IVssBackupComponentsEx *This,
  1712. IVssAsync **ppAsync);
  1713. HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
  1714. IVssBackupComponentsEx *This,
  1715. VSS_ID SourceObjectId,
  1716. VSS_OBJECT_TYPE eSourceObjectType,
  1717. WINBOOL bForceDelete,
  1718. LONG *plDeletedSnapshots,
  1719. VSS_ID *pNondeletedSnapshotID);
  1720. HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
  1721. IVssBackupComponentsEx *This,
  1722. IVssAsync **ppAsync);
  1723. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
  1724. IVssBackupComponentsEx *This,
  1725. VSS_ID SnapshotSetId);
  1726. HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
  1727. IVssBackupComponentsEx *This,
  1728. VSS_ID SnapshotId,
  1729. VSS_SNAPSHOT_PROP *pProp);
  1730. HRESULT (STDMETHODCALLTYPE *Query)(
  1731. IVssBackupComponentsEx *This,
  1732. VSS_ID QueriedObjectId,
  1733. VSS_OBJECT_TYPE eQueriedObjectType,
  1734. VSS_OBJECT_TYPE eReturnedObjectsType,
  1735. IVssEnumObject **ppEnum);
  1736. HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
  1737. IVssBackupComponentsEx *This,
  1738. VSS_ID ProviderId,
  1739. VSS_PWSZ pwszVolumeName,
  1740. WINBOOL *pbSupportedByThisProvider);
  1741. HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
  1742. IVssBackupComponentsEx *This,
  1743. const VSS_ID *rgWriterClassId,
  1744. UINT cClassId);
  1745. HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
  1746. IVssBackupComponentsEx *This,
  1747. const VSS_ID *rgWriterClassId,
  1748. UINT cClassId);
  1749. HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
  1750. IVssBackupComponentsEx *This,
  1751. const VSS_ID *rgWriterInstanceId,
  1752. UINT cInstanceId);
  1753. HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
  1754. IVssBackupComponentsEx *This,
  1755. VSS_ID SnapshotId,
  1756. VSS_PWSZ wszPathFromRoot,
  1757. LONG lAttributes,
  1758. VSS_PWSZ wszExpose,
  1759. VSS_PWSZ *pwszExposed);
  1760. HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
  1761. IVssBackupComponentsEx *This,
  1762. VSS_ID SnapshotId,
  1763. WINBOOL bForceDismount);
  1764. HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
  1765. IVssBackupComponentsEx *This,
  1766. VSS_PWSZ pwszVolume,
  1767. IVssAsync **ppAsync);
  1768. /*** IVssBackupComponentsEx methods ***/
  1769. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
  1770. IVssBackupComponentsEx *This,
  1771. UINT iWriter,
  1772. VSS_ID *pidInstance,
  1773. IVssExamineWriterMetadataEx **ppMetadata);
  1774. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
  1775. IVssBackupComponentsEx *This,
  1776. VSS_ID writerId,
  1777. VSS_COMPONENT_TYPE ct,
  1778. LPCWSTR wszLogicalPath,
  1779. LPCWSTR wszComponentName,
  1780. boolean bSelectedForRestore,
  1781. VSS_ID instanceId);
  1782. END_INTERFACE
  1783. } IVssBackupComponentsExVtbl;
  1784. interface IVssBackupComponentsEx {
  1785. CONST_VTBL IVssBackupComponentsExVtbl* lpVtbl;
  1786. };
  1787. #ifdef COBJMACROS
  1788. #ifndef WIDL_C_INLINE_WRAPPERS
  1789. /*** IUnknown methods ***/
  1790. #define IVssBackupComponentsEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1791. #define IVssBackupComponentsEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  1792. #define IVssBackupComponentsEx_Release(This) (This)->lpVtbl->Release(This)
  1793. /*** IVssBackupComponents methods ***/
  1794. #define IVssBackupComponentsEx_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
  1795. #define IVssBackupComponentsEx_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
  1796. #define IVssBackupComponentsEx_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
  1797. #define IVssBackupComponentsEx_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
  1798. #define IVssBackupComponentsEx_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
  1799. #define IVssBackupComponentsEx_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
  1800. #define IVssBackupComponentsEx_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
  1801. #define IVssBackupComponentsEx_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
  1802. #define IVssBackupComponentsEx_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
  1803. #define IVssBackupComponentsEx_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
  1804. #define IVssBackupComponentsEx_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
  1805. #define IVssBackupComponentsEx_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
  1806. #define IVssBackupComponentsEx_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
  1807. #define IVssBackupComponentsEx_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
  1808. #define IVssBackupComponentsEx_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
  1809. #define IVssBackupComponentsEx_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
  1810. #define IVssBackupComponentsEx_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
  1811. #define IVssBackupComponentsEx_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
  1812. #define IVssBackupComponentsEx_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
  1813. #define IVssBackupComponentsEx_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
  1814. #define IVssBackupComponentsEx_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
  1815. #define IVssBackupComponentsEx_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
  1816. #define IVssBackupComponentsEx_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
  1817. #define IVssBackupComponentsEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  1818. #define IVssBackupComponentsEx_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
  1819. #define IVssBackupComponentsEx_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
  1820. #define IVssBackupComponentsEx_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
  1821. #define IVssBackupComponentsEx_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
  1822. #define IVssBackupComponentsEx_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
  1823. #define IVssBackupComponentsEx_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
  1824. #define IVssBackupComponentsEx_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
  1825. #define IVssBackupComponentsEx_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
  1826. #define IVssBackupComponentsEx_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
  1827. #define IVssBackupComponentsEx_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
  1828. #define IVssBackupComponentsEx_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
  1829. #define IVssBackupComponentsEx_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
  1830. #define IVssBackupComponentsEx_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
  1831. #define IVssBackupComponentsEx_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
  1832. #define IVssBackupComponentsEx_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
  1833. #define IVssBackupComponentsEx_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
  1834. #define IVssBackupComponentsEx_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
  1835. #define IVssBackupComponentsEx_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
  1836. #define IVssBackupComponentsEx_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
  1837. #define IVssBackupComponentsEx_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
  1838. #define IVssBackupComponentsEx_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
  1839. #define IVssBackupComponentsEx_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
  1840. #define IVssBackupComponentsEx_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
  1841. #define IVssBackupComponentsEx_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
  1842. /*** IVssBackupComponentsEx methods ***/
  1843. #define IVssBackupComponentsEx_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
  1844. #define IVssBackupComponentsEx_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
  1845. #else
  1846. /*** IUnknown methods ***/
  1847. static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryInterface(IVssBackupComponentsEx* This,REFIID riid,void **ppvObject) {
  1848. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1849. }
  1850. static FORCEINLINE ULONG IVssBackupComponentsEx_AddRef(IVssBackupComponentsEx* This) {
  1851. return This->lpVtbl->AddRef(This);
  1852. }
  1853. static FORCEINLINE ULONG IVssBackupComponentsEx_Release(IVssBackupComponentsEx* This) {
  1854. return This->lpVtbl->Release(This);
  1855. }
  1856. /*** IVssBackupComponents methods ***/
  1857. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponentsCount(IVssBackupComponentsEx* This,UINT *pcComponents) {
  1858. return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
  1859. }
  1860. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponents(IVssBackupComponentsEx* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
  1861. return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
  1862. }
  1863. static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForBackup(IVssBackupComponentsEx* This,BSTR bstrXML) {
  1864. return This->lpVtbl->InitializeForBackup(This,bstrXML);
  1865. }
  1866. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupState(IVssBackupComponentsEx* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
  1867. return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
  1868. }
  1869. static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForRestore(IVssBackupComponentsEx* This,BSTR bstrXML) {
  1870. return This->lpVtbl->InitializeForRestore(This,bstrXML);
  1871. }
  1872. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreState(IVssBackupComponentsEx* This,VSS_RESTORE_TYPE restoreType) {
  1873. return This->lpVtbl->SetRestoreState(This,restoreType);
  1874. }
  1875. static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterMetadata(IVssBackupComponentsEx* This,IVssAsync **pAsync) {
  1876. return This->lpVtbl->GatherWriterMetadata(This,pAsync);
  1877. }
  1878. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataCount(IVssBackupComponentsEx* This,UINT *pcWriters) {
  1879. return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
  1880. }
  1881. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadata(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
  1882. return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
  1883. }
  1884. static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterMetadata(IVssBackupComponentsEx* This) {
  1885. return This->lpVtbl->FreeWriterMetadata(This);
  1886. }
  1887. static FORCEINLINE HRESULT IVssBackupComponentsEx_AddComponent(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
  1888. return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
  1889. }
  1890. static FORCEINLINE HRESULT IVssBackupComponentsEx_PrepareForBackup(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1891. return This->lpVtbl->PrepareForBackup(This,ppAsync);
  1892. }
  1893. static FORCEINLINE HRESULT IVssBackupComponentsEx_AbortBackup(IVssBackupComponentsEx* This) {
  1894. return This->lpVtbl->AbortBackup(This);
  1895. }
  1896. static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterStatus(IVssBackupComponentsEx* This,IVssAsync **pAsync) {
  1897. return This->lpVtbl->GatherWriterStatus(This,pAsync);
  1898. }
  1899. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatusCount(IVssBackupComponentsEx* This,UINT *pcWriters) {
  1900. return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
  1901. }
  1902. static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterStatus(IVssBackupComponentsEx* This) {
  1903. return This->lpVtbl->FreeWriterStatus(This);
  1904. }
  1905. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatus(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
  1906. return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
  1907. }
  1908. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupSucceeded(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
  1909. return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
  1910. }
  1911. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
  1912. return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
  1913. }
  1914. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestore(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
  1915. return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
  1916. }
  1917. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
  1918. return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
  1919. }
  1920. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetAdditionalRestores(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
  1921. return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
  1922. }
  1923. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetPreviousBackupStamp(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
  1924. return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
  1925. }
  1926. static FORCEINLINE HRESULT IVssBackupComponentsEx_SaveAsXML(IVssBackupComponentsEx* This,BSTR *pbstrXML) {
  1927. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  1928. }
  1929. static FORCEINLINE HRESULT IVssBackupComponentsEx_BackupComplete(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1930. return This->lpVtbl->BackupComplete(This,ppAsync);
  1931. }
  1932. static FORCEINLINE HRESULT IVssBackupComponentsEx_AddAlternativeLocationMapping(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
  1933. return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
  1934. }
  1935. static FORCEINLINE HRESULT IVssBackupComponentsEx_AddRestoreSubcomponent(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
  1936. return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
  1937. }
  1938. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetFileRestoreStatus(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
  1939. return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
  1940. }
  1941. static FORCEINLINE HRESULT IVssBackupComponentsEx_AddNewTarget(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
  1942. return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
  1943. }
  1944. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRangesFilePath(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
  1945. return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
  1946. }
  1947. static FORCEINLINE HRESULT IVssBackupComponentsEx_PreRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1948. return This->lpVtbl->PreRestore(This,ppAsync);
  1949. }
  1950. static FORCEINLINE HRESULT IVssBackupComponentsEx_PostRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1951. return This->lpVtbl->PostRestore(This,ppAsync);
  1952. }
  1953. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetContext(IVssBackupComponentsEx* This,LONG lContext) {
  1954. return This->lpVtbl->SetContext(This,lContext);
  1955. }
  1956. static FORCEINLINE HRESULT IVssBackupComponentsEx_StartSnapshotSet(IVssBackupComponentsEx* This,VSS_ID *pSnapshotSetId) {
  1957. return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
  1958. }
  1959. static FORCEINLINE HRESULT IVssBackupComponentsEx_AddToSnapshotSet(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
  1960. return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
  1961. }
  1962. static FORCEINLINE HRESULT IVssBackupComponentsEx_DoSnapshotSet(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1963. return This->lpVtbl->DoSnapshotSet(This,ppAsync);
  1964. }
  1965. static FORCEINLINE HRESULT IVssBackupComponentsEx_DeleteSnapshots(IVssBackupComponentsEx* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
  1966. return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
  1967. }
  1968. static FORCEINLINE HRESULT IVssBackupComponentsEx_ImportSnapshots(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
  1969. return This->lpVtbl->ImportSnapshots(This,ppAsync);
  1970. }
  1971. static FORCEINLINE HRESULT IVssBackupComponentsEx_BreakSnapshotSet(IVssBackupComponentsEx* This,VSS_ID SnapshotSetId) {
  1972. return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
  1973. }
  1974. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetSnapshotProperties(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
  1975. return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
  1976. }
  1977. static FORCEINLINE HRESULT IVssBackupComponentsEx_Query(IVssBackupComponentsEx* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
  1978. return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
  1979. }
  1980. static FORCEINLINE HRESULT IVssBackupComponentsEx_IsVolumeSupported(IVssBackupComponentsEx* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
  1981. return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
  1982. }
  1983. static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  1984. return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
  1985. }
  1986. static FORCEINLINE HRESULT IVssBackupComponentsEx_EnableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  1987. return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
  1988. }
  1989. static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterInstances(IVssBackupComponentsEx* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
  1990. return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
  1991. }
  1992. static FORCEINLINE HRESULT IVssBackupComponentsEx_ExposeSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
  1993. return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
  1994. }
  1995. static FORCEINLINE HRESULT IVssBackupComponentsEx_RevertToSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
  1996. return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
  1997. }
  1998. static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryRevertStatus(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
  1999. return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
  2000. }
  2001. /*** IVssBackupComponentsEx methods ***/
  2002. static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataEx(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
  2003. return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
  2004. }
  2005. static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestoreEx(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
  2006. return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
  2007. }
  2008. #endif
  2009. #endif
  2010. #endif
  2011. #endif /* __IVssBackupComponentsEx_INTERFACE_DEFINED__ */
  2012. /*****************************************************************************
  2013. * IVssBackupComponentsEx2 interface
  2014. */
  2015. #ifndef __IVssBackupComponentsEx2_INTERFACE_DEFINED__
  2016. #define __IVssBackupComponentsEx2_INTERFACE_DEFINED__
  2017. DEFINE_GUID(IID_IVssBackupComponentsEx2, 0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd,0x03, 0x2f,0x9c,0xa2,0x30,0x08,0x4e);
  2018. #if defined(__cplusplus) && !defined(CINTERFACE)
  2019. MIDL_INTERFACE("acfe2b3a-22c9-4ef8-bd03-2f9ca230084e")
  2020. IVssBackupComponentsEx2 : public IVssBackupComponentsEx
  2021. {
  2022. virtual HRESULT STDMETHODCALLTYPE UnexposeSnapshot(
  2023. VSS_ID snapshotId) = 0;
  2024. virtual HRESULT STDMETHODCALLTYPE SetAuthoritativeRestore(
  2025. VSS_ID writerId,
  2026. VSS_COMPONENT_TYPE ct,
  2027. LPCWSTR wszLogicalPath,
  2028. LPCWSTR wszComponentName,
  2029. boolean bAuth) = 0;
  2030. virtual HRESULT STDMETHODCALLTYPE SetRollForward(
  2031. VSS_ID writerId,
  2032. VSS_COMPONENT_TYPE ct,
  2033. LPCWSTR wszLogicalPath,
  2034. LPCWSTR wszComponentName,
  2035. VSS_ROLLFORWARD_TYPE rollType,
  2036. LPCWSTR wszRollForwardPoint) = 0;
  2037. virtual HRESULT STDMETHODCALLTYPE SetRestoreName(
  2038. VSS_ID writerId,
  2039. VSS_COMPONENT_TYPE ct,
  2040. LPCWSTR wszLogicalPath,
  2041. LPCWSTR wszComponentName,
  2042. LPCWSTR wszRestoreName) = 0;
  2043. virtual HRESULT STDMETHODCALLTYPE BreakSnapshotSetEx(
  2044. VSS_ID SnapshotSetID,
  2045. DWORD dwBreakFlags,
  2046. IVssAsync **ppAsync) = 0;
  2047. virtual HRESULT STDMETHODCALLTYPE PreFastRecovery(
  2048. VSS_ID SnapshotSetID,
  2049. DWORD dwPreFastRecoveryFlags,
  2050. IVssAsync **ppAsync) = 0;
  2051. virtual HRESULT STDMETHODCALLTYPE FastRecovery(
  2052. VSS_ID SnapshotSetID,
  2053. DWORD dwFastRecoveryFlags,
  2054. IVssAsync **ppAsync) = 0;
  2055. };
  2056. #ifdef __CRT_UUID_DECL
  2057. __CRT_UUID_DECL(IVssBackupComponentsEx2, 0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd,0x03, 0x2f,0x9c,0xa2,0x30,0x08,0x4e)
  2058. #endif
  2059. #else
  2060. typedef struct IVssBackupComponentsEx2Vtbl {
  2061. BEGIN_INTERFACE
  2062. /*** IUnknown methods ***/
  2063. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2064. IVssBackupComponentsEx2 *This,
  2065. REFIID riid,
  2066. void **ppvObject);
  2067. ULONG (STDMETHODCALLTYPE *AddRef)(
  2068. IVssBackupComponentsEx2 *This);
  2069. ULONG (STDMETHODCALLTYPE *Release)(
  2070. IVssBackupComponentsEx2 *This);
  2071. /*** IVssBackupComponents methods ***/
  2072. HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
  2073. IVssBackupComponentsEx2 *This,
  2074. UINT *pcComponents);
  2075. HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
  2076. IVssBackupComponentsEx2 *This,
  2077. UINT iWriter,
  2078. IVssWriterComponentsExt **ppWriter);
  2079. HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
  2080. IVssBackupComponentsEx2 *This,
  2081. BSTR bstrXML);
  2082. HRESULT (STDMETHODCALLTYPE *SetBackupState)(
  2083. IVssBackupComponentsEx2 *This,
  2084. boolean bSelectComponents,
  2085. boolean bBackupBootableSystemState,
  2086. VSS_BACKUP_TYPE backupType,
  2087. boolean bPartialFileSupport);
  2088. HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
  2089. IVssBackupComponentsEx2 *This,
  2090. BSTR bstrXML);
  2091. HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
  2092. IVssBackupComponentsEx2 *This,
  2093. VSS_RESTORE_TYPE restoreType);
  2094. HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
  2095. IVssBackupComponentsEx2 *This,
  2096. IVssAsync **pAsync);
  2097. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
  2098. IVssBackupComponentsEx2 *This,
  2099. UINT *pcWriters);
  2100. HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
  2101. IVssBackupComponentsEx2 *This,
  2102. UINT iWriter,
  2103. VSS_ID *pidInstance,
  2104. IVssExamineWriterMetadata **ppMetadata);
  2105. HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
  2106. IVssBackupComponentsEx2 *This);
  2107. HRESULT (STDMETHODCALLTYPE *AddComponent)(
  2108. IVssBackupComponentsEx2 *This,
  2109. VSS_ID instanceId,
  2110. VSS_ID writerId,
  2111. VSS_COMPONENT_TYPE ct,
  2112. LPCWSTR wszLogicalPath,
  2113. LPCWSTR wszComponentName);
  2114. HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
  2115. IVssBackupComponentsEx2 *This,
  2116. IVssAsync **ppAsync);
  2117. HRESULT (STDMETHODCALLTYPE *AbortBackup)(
  2118. IVssBackupComponentsEx2 *This);
  2119. HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
  2120. IVssBackupComponentsEx2 *This,
  2121. IVssAsync **pAsync);
  2122. HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
  2123. IVssBackupComponentsEx2 *This,
  2124. UINT *pcWriters);
  2125. HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
  2126. IVssBackupComponentsEx2 *This);
  2127. HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
  2128. IVssBackupComponentsEx2 *This,
  2129. UINT iWriter,
  2130. VSS_ID *pidInstance,
  2131. VSS_ID *pidWriter,
  2132. BSTR *pbstrWriter,
  2133. VSS_WRITER_STATE *pnStatus,
  2134. HRESULT *phResultFailure);
  2135. HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
  2136. IVssBackupComponentsEx2 *This,
  2137. VSS_ID instanceId,
  2138. VSS_ID writerId,
  2139. VSS_COMPONENT_TYPE ct,
  2140. LPCWSTR wszLogicalPath,
  2141. LPCWSTR wszComponentName,
  2142. boolean bSucceded);
  2143. HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
  2144. IVssBackupComponentsEx2 *This,
  2145. VSS_ID writerId,
  2146. VSS_COMPONENT_TYPE ct,
  2147. LPCWSTR wszLogicalPath,
  2148. LPCWSTR wszComponentName,
  2149. LPCWSTR wszBackupOptions);
  2150. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
  2151. IVssBackupComponentsEx2 *This,
  2152. VSS_ID writerId,
  2153. VSS_COMPONENT_TYPE ct,
  2154. LPCWSTR wszLogicalPath,
  2155. LPCWSTR wszComponentName,
  2156. boolean bSelectedForRestore);
  2157. HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
  2158. IVssBackupComponentsEx2 *This,
  2159. VSS_ID writerId,
  2160. VSS_COMPONENT_TYPE ct,
  2161. LPCWSTR wszLogicalPath,
  2162. LPCWSTR wszComponentName,
  2163. LPCWSTR wszRestoreOptions);
  2164. HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
  2165. IVssBackupComponentsEx2 *This,
  2166. VSS_ID writerId,
  2167. VSS_COMPONENT_TYPE ct,
  2168. LPCWSTR wszLogicalPath,
  2169. LPCWSTR wszComponentName,
  2170. boolean bAdditionalRestores);
  2171. HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
  2172. IVssBackupComponentsEx2 *This,
  2173. VSS_ID writerId,
  2174. VSS_COMPONENT_TYPE ct,
  2175. LPCWSTR wszLogicalPath,
  2176. LPCWSTR wszComponentName,
  2177. LPCWSTR wszPreviousBackupStamp);
  2178. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  2179. IVssBackupComponentsEx2 *This,
  2180. BSTR *pbstrXML);
  2181. HRESULT (STDMETHODCALLTYPE *BackupComplete)(
  2182. IVssBackupComponentsEx2 *This,
  2183. IVssAsync **ppAsync);
  2184. HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
  2185. IVssBackupComponentsEx2 *This,
  2186. VSS_ID writerId,
  2187. VSS_COMPONENT_TYPE componentType,
  2188. LPCWSTR wszLogicalPath,
  2189. LPCWSTR wszComponentName,
  2190. LPCWSTR wszPath,
  2191. LPCWSTR wszFilespec,
  2192. boolean bRecursive,
  2193. LPCWSTR wszDestination);
  2194. HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
  2195. IVssBackupComponentsEx2 *This,
  2196. VSS_ID writerId,
  2197. VSS_COMPONENT_TYPE componentType,
  2198. LPCWSTR wszLogicalPath,
  2199. LPCWSTR wszComponentName,
  2200. LPCWSTR wszSubComponentLogicalPath,
  2201. LPCWSTR wszSubComponentName,
  2202. boolean bRepair);
  2203. HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
  2204. IVssBackupComponentsEx2 *This,
  2205. VSS_ID writerId,
  2206. VSS_COMPONENT_TYPE ct,
  2207. LPCWSTR wszLogicalPath,
  2208. LPCWSTR wszComponentName,
  2209. VSS_FILE_RESTORE_STATUS status);
  2210. HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
  2211. IVssBackupComponentsEx2 *This,
  2212. VSS_ID writerId,
  2213. VSS_COMPONENT_TYPE ct,
  2214. LPCWSTR wszLogicalPath,
  2215. LPCWSTR wszComponentName,
  2216. LPCWSTR wszPath,
  2217. LPCWSTR wszFileName,
  2218. boolean bRecursive,
  2219. LPCWSTR wszAlternatePath);
  2220. HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
  2221. IVssBackupComponentsEx2 *This,
  2222. VSS_ID writerId,
  2223. VSS_COMPONENT_TYPE ct,
  2224. LPCWSTR wszLogicalPath,
  2225. LPCWSTR wszComponentName,
  2226. UINT iPartialFile,
  2227. LPCWSTR wszRangesFile);
  2228. HRESULT (STDMETHODCALLTYPE *PreRestore)(
  2229. IVssBackupComponentsEx2 *This,
  2230. IVssAsync **ppAsync);
  2231. HRESULT (STDMETHODCALLTYPE *PostRestore)(
  2232. IVssBackupComponentsEx2 *This,
  2233. IVssAsync **ppAsync);
  2234. HRESULT (STDMETHODCALLTYPE *SetContext)(
  2235. IVssBackupComponentsEx2 *This,
  2236. LONG lContext);
  2237. HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
  2238. IVssBackupComponentsEx2 *This,
  2239. VSS_ID *pSnapshotSetId);
  2240. HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
  2241. IVssBackupComponentsEx2 *This,
  2242. VSS_PWSZ pwszVolumeName,
  2243. VSS_ID ProviderId,
  2244. VSS_ID *pidSnapshot);
  2245. HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
  2246. IVssBackupComponentsEx2 *This,
  2247. IVssAsync **ppAsync);
  2248. HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
  2249. IVssBackupComponentsEx2 *This,
  2250. VSS_ID SourceObjectId,
  2251. VSS_OBJECT_TYPE eSourceObjectType,
  2252. WINBOOL bForceDelete,
  2253. LONG *plDeletedSnapshots,
  2254. VSS_ID *pNondeletedSnapshotID);
  2255. HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
  2256. IVssBackupComponentsEx2 *This,
  2257. IVssAsync **ppAsync);
  2258. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
  2259. IVssBackupComponentsEx2 *This,
  2260. VSS_ID SnapshotSetId);
  2261. HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
  2262. IVssBackupComponentsEx2 *This,
  2263. VSS_ID SnapshotId,
  2264. VSS_SNAPSHOT_PROP *pProp);
  2265. HRESULT (STDMETHODCALLTYPE *Query)(
  2266. IVssBackupComponentsEx2 *This,
  2267. VSS_ID QueriedObjectId,
  2268. VSS_OBJECT_TYPE eQueriedObjectType,
  2269. VSS_OBJECT_TYPE eReturnedObjectsType,
  2270. IVssEnumObject **ppEnum);
  2271. HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
  2272. IVssBackupComponentsEx2 *This,
  2273. VSS_ID ProviderId,
  2274. VSS_PWSZ pwszVolumeName,
  2275. WINBOOL *pbSupportedByThisProvider);
  2276. HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
  2277. IVssBackupComponentsEx2 *This,
  2278. const VSS_ID *rgWriterClassId,
  2279. UINT cClassId);
  2280. HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
  2281. IVssBackupComponentsEx2 *This,
  2282. const VSS_ID *rgWriterClassId,
  2283. UINT cClassId);
  2284. HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
  2285. IVssBackupComponentsEx2 *This,
  2286. const VSS_ID *rgWriterInstanceId,
  2287. UINT cInstanceId);
  2288. HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
  2289. IVssBackupComponentsEx2 *This,
  2290. VSS_ID SnapshotId,
  2291. VSS_PWSZ wszPathFromRoot,
  2292. LONG lAttributes,
  2293. VSS_PWSZ wszExpose,
  2294. VSS_PWSZ *pwszExposed);
  2295. HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
  2296. IVssBackupComponentsEx2 *This,
  2297. VSS_ID SnapshotId,
  2298. WINBOOL bForceDismount);
  2299. HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
  2300. IVssBackupComponentsEx2 *This,
  2301. VSS_PWSZ pwszVolume,
  2302. IVssAsync **ppAsync);
  2303. /*** IVssBackupComponentsEx methods ***/
  2304. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
  2305. IVssBackupComponentsEx2 *This,
  2306. UINT iWriter,
  2307. VSS_ID *pidInstance,
  2308. IVssExamineWriterMetadataEx **ppMetadata);
  2309. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
  2310. IVssBackupComponentsEx2 *This,
  2311. VSS_ID writerId,
  2312. VSS_COMPONENT_TYPE ct,
  2313. LPCWSTR wszLogicalPath,
  2314. LPCWSTR wszComponentName,
  2315. boolean bSelectedForRestore,
  2316. VSS_ID instanceId);
  2317. /*** IVssBackupComponentsEx2 methods ***/
  2318. HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)(
  2319. IVssBackupComponentsEx2 *This,
  2320. VSS_ID snapshotId);
  2321. HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)(
  2322. IVssBackupComponentsEx2 *This,
  2323. VSS_ID writerId,
  2324. VSS_COMPONENT_TYPE ct,
  2325. LPCWSTR wszLogicalPath,
  2326. LPCWSTR wszComponentName,
  2327. boolean bAuth);
  2328. HRESULT (STDMETHODCALLTYPE *SetRollForward)(
  2329. IVssBackupComponentsEx2 *This,
  2330. VSS_ID writerId,
  2331. VSS_COMPONENT_TYPE ct,
  2332. LPCWSTR wszLogicalPath,
  2333. LPCWSTR wszComponentName,
  2334. VSS_ROLLFORWARD_TYPE rollType,
  2335. LPCWSTR wszRollForwardPoint);
  2336. HRESULT (STDMETHODCALLTYPE *SetRestoreName)(
  2337. IVssBackupComponentsEx2 *This,
  2338. VSS_ID writerId,
  2339. VSS_COMPONENT_TYPE ct,
  2340. LPCWSTR wszLogicalPath,
  2341. LPCWSTR wszComponentName,
  2342. LPCWSTR wszRestoreName);
  2343. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)(
  2344. IVssBackupComponentsEx2 *This,
  2345. VSS_ID SnapshotSetID,
  2346. DWORD dwBreakFlags,
  2347. IVssAsync **ppAsync);
  2348. HRESULT (STDMETHODCALLTYPE *PreFastRecovery)(
  2349. IVssBackupComponentsEx2 *This,
  2350. VSS_ID SnapshotSetID,
  2351. DWORD dwPreFastRecoveryFlags,
  2352. IVssAsync **ppAsync);
  2353. HRESULT (STDMETHODCALLTYPE *FastRecovery)(
  2354. IVssBackupComponentsEx2 *This,
  2355. VSS_ID SnapshotSetID,
  2356. DWORD dwFastRecoveryFlags,
  2357. IVssAsync **ppAsync);
  2358. END_INTERFACE
  2359. } IVssBackupComponentsEx2Vtbl;
  2360. interface IVssBackupComponentsEx2 {
  2361. CONST_VTBL IVssBackupComponentsEx2Vtbl* lpVtbl;
  2362. };
  2363. #ifdef COBJMACROS
  2364. #ifndef WIDL_C_INLINE_WRAPPERS
  2365. /*** IUnknown methods ***/
  2366. #define IVssBackupComponentsEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2367. #define IVssBackupComponentsEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
  2368. #define IVssBackupComponentsEx2_Release(This) (This)->lpVtbl->Release(This)
  2369. /*** IVssBackupComponents methods ***/
  2370. #define IVssBackupComponentsEx2_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
  2371. #define IVssBackupComponentsEx2_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
  2372. #define IVssBackupComponentsEx2_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
  2373. #define IVssBackupComponentsEx2_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
  2374. #define IVssBackupComponentsEx2_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
  2375. #define IVssBackupComponentsEx2_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
  2376. #define IVssBackupComponentsEx2_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
  2377. #define IVssBackupComponentsEx2_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
  2378. #define IVssBackupComponentsEx2_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
  2379. #define IVssBackupComponentsEx2_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
  2380. #define IVssBackupComponentsEx2_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
  2381. #define IVssBackupComponentsEx2_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
  2382. #define IVssBackupComponentsEx2_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
  2383. #define IVssBackupComponentsEx2_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
  2384. #define IVssBackupComponentsEx2_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
  2385. #define IVssBackupComponentsEx2_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
  2386. #define IVssBackupComponentsEx2_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
  2387. #define IVssBackupComponentsEx2_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
  2388. #define IVssBackupComponentsEx2_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
  2389. #define IVssBackupComponentsEx2_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
  2390. #define IVssBackupComponentsEx2_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
  2391. #define IVssBackupComponentsEx2_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
  2392. #define IVssBackupComponentsEx2_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
  2393. #define IVssBackupComponentsEx2_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  2394. #define IVssBackupComponentsEx2_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
  2395. #define IVssBackupComponentsEx2_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
  2396. #define IVssBackupComponentsEx2_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
  2397. #define IVssBackupComponentsEx2_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
  2398. #define IVssBackupComponentsEx2_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
  2399. #define IVssBackupComponentsEx2_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
  2400. #define IVssBackupComponentsEx2_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
  2401. #define IVssBackupComponentsEx2_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
  2402. #define IVssBackupComponentsEx2_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
  2403. #define IVssBackupComponentsEx2_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
  2404. #define IVssBackupComponentsEx2_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
  2405. #define IVssBackupComponentsEx2_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
  2406. #define IVssBackupComponentsEx2_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
  2407. #define IVssBackupComponentsEx2_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
  2408. #define IVssBackupComponentsEx2_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
  2409. #define IVssBackupComponentsEx2_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
  2410. #define IVssBackupComponentsEx2_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
  2411. #define IVssBackupComponentsEx2_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
  2412. #define IVssBackupComponentsEx2_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
  2413. #define IVssBackupComponentsEx2_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
  2414. #define IVssBackupComponentsEx2_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
  2415. #define IVssBackupComponentsEx2_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
  2416. #define IVssBackupComponentsEx2_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
  2417. #define IVssBackupComponentsEx2_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
  2418. /*** IVssBackupComponentsEx methods ***/
  2419. #define IVssBackupComponentsEx2_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
  2420. #define IVssBackupComponentsEx2_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
  2421. /*** IVssBackupComponentsEx2 methods ***/
  2422. #define IVssBackupComponentsEx2_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
  2423. #define IVssBackupComponentsEx2_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
  2424. #define IVssBackupComponentsEx2_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
  2425. #define IVssBackupComponentsEx2_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
  2426. #define IVssBackupComponentsEx2_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
  2427. #define IVssBackupComponentsEx2_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
  2428. #define IVssBackupComponentsEx2_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
  2429. #else
  2430. /*** IUnknown methods ***/
  2431. static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryInterface(IVssBackupComponentsEx2* This,REFIID riid,void **ppvObject) {
  2432. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2433. }
  2434. static FORCEINLINE ULONG IVssBackupComponentsEx2_AddRef(IVssBackupComponentsEx2* This) {
  2435. return This->lpVtbl->AddRef(This);
  2436. }
  2437. static FORCEINLINE ULONG IVssBackupComponentsEx2_Release(IVssBackupComponentsEx2* This) {
  2438. return This->lpVtbl->Release(This);
  2439. }
  2440. /*** IVssBackupComponents methods ***/
  2441. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponentsCount(IVssBackupComponentsEx2* This,UINT *pcComponents) {
  2442. return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
  2443. }
  2444. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponents(IVssBackupComponentsEx2* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
  2445. return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
  2446. }
  2447. static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForBackup(IVssBackupComponentsEx2* This,BSTR bstrXML) {
  2448. return This->lpVtbl->InitializeForBackup(This,bstrXML);
  2449. }
  2450. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupState(IVssBackupComponentsEx2* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
  2451. return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
  2452. }
  2453. static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForRestore(IVssBackupComponentsEx2* This,BSTR bstrXML) {
  2454. return This->lpVtbl->InitializeForRestore(This,bstrXML);
  2455. }
  2456. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreState(IVssBackupComponentsEx2* This,VSS_RESTORE_TYPE restoreType) {
  2457. return This->lpVtbl->SetRestoreState(This,restoreType);
  2458. }
  2459. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterMetadata(IVssBackupComponentsEx2* This,IVssAsync **pAsync) {
  2460. return This->lpVtbl->GatherWriterMetadata(This,pAsync);
  2461. }
  2462. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataCount(IVssBackupComponentsEx2* This,UINT *pcWriters) {
  2463. return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
  2464. }
  2465. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadata(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
  2466. return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
  2467. }
  2468. static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterMetadata(IVssBackupComponentsEx2* This) {
  2469. return This->lpVtbl->FreeWriterMetadata(This);
  2470. }
  2471. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddComponent(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
  2472. return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
  2473. }
  2474. static FORCEINLINE HRESULT IVssBackupComponentsEx2_PrepareForBackup(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2475. return This->lpVtbl->PrepareForBackup(This,ppAsync);
  2476. }
  2477. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AbortBackup(IVssBackupComponentsEx2* This) {
  2478. return This->lpVtbl->AbortBackup(This);
  2479. }
  2480. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterStatus(IVssBackupComponentsEx2* This,IVssAsync **pAsync) {
  2481. return This->lpVtbl->GatherWriterStatus(This,pAsync);
  2482. }
  2483. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatusCount(IVssBackupComponentsEx2* This,UINT *pcWriters) {
  2484. return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
  2485. }
  2486. static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterStatus(IVssBackupComponentsEx2* This) {
  2487. return This->lpVtbl->FreeWriterStatus(This);
  2488. }
  2489. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatus(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
  2490. return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
  2491. }
  2492. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupSucceeded(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
  2493. return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
  2494. }
  2495. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
  2496. return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
  2497. }
  2498. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
  2499. return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
  2500. }
  2501. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
  2502. return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
  2503. }
  2504. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAdditionalRestores(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
  2505. return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
  2506. }
  2507. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetPreviousBackupStamp(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
  2508. return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
  2509. }
  2510. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SaveAsXML(IVssBackupComponentsEx2* This,BSTR *pbstrXML) {
  2511. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  2512. }
  2513. static FORCEINLINE HRESULT IVssBackupComponentsEx2_BackupComplete(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2514. return This->lpVtbl->BackupComplete(This,ppAsync);
  2515. }
  2516. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddAlternativeLocationMapping(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
  2517. return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
  2518. }
  2519. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddRestoreSubcomponent(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
  2520. return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
  2521. }
  2522. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetFileRestoreStatus(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
  2523. return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
  2524. }
  2525. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddNewTarget(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
  2526. return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
  2527. }
  2528. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRangesFilePath(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
  2529. return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
  2530. }
  2531. static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2532. return This->lpVtbl->PreRestore(This,ppAsync);
  2533. }
  2534. static FORCEINLINE HRESULT IVssBackupComponentsEx2_PostRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2535. return This->lpVtbl->PostRestore(This,ppAsync);
  2536. }
  2537. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetContext(IVssBackupComponentsEx2* This,LONG lContext) {
  2538. return This->lpVtbl->SetContext(This,lContext);
  2539. }
  2540. static FORCEINLINE HRESULT IVssBackupComponentsEx2_StartSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID *pSnapshotSetId) {
  2541. return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
  2542. }
  2543. static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddToSnapshotSet(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
  2544. return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
  2545. }
  2546. static FORCEINLINE HRESULT IVssBackupComponentsEx2_DoSnapshotSet(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2547. return This->lpVtbl->DoSnapshotSet(This,ppAsync);
  2548. }
  2549. static FORCEINLINE HRESULT IVssBackupComponentsEx2_DeleteSnapshots(IVssBackupComponentsEx2* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
  2550. return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
  2551. }
  2552. static FORCEINLINE HRESULT IVssBackupComponentsEx2_ImportSnapshots(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
  2553. return This->lpVtbl->ImportSnapshots(This,ppAsync);
  2554. }
  2555. static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetId) {
  2556. return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
  2557. }
  2558. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetSnapshotProperties(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
  2559. return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
  2560. }
  2561. static FORCEINLINE HRESULT IVssBackupComponentsEx2_Query(IVssBackupComponentsEx2* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
  2562. return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
  2563. }
  2564. static FORCEINLINE HRESULT IVssBackupComponentsEx2_IsVolumeSupported(IVssBackupComponentsEx2* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
  2565. return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
  2566. }
  2567. static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  2568. return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
  2569. }
  2570. static FORCEINLINE HRESULT IVssBackupComponentsEx2_EnableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  2571. return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
  2572. }
  2573. static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterInstances(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
  2574. return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
  2575. }
  2576. static FORCEINLINE HRESULT IVssBackupComponentsEx2_ExposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
  2577. return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
  2578. }
  2579. static FORCEINLINE HRESULT IVssBackupComponentsEx2_RevertToSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
  2580. return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
  2581. }
  2582. static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryRevertStatus(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
  2583. return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
  2584. }
  2585. /*** IVssBackupComponentsEx methods ***/
  2586. static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataEx(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
  2587. return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
  2588. }
  2589. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestoreEx(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
  2590. return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
  2591. }
  2592. /*** IVssBackupComponentsEx2 methods ***/
  2593. static FORCEINLINE HRESULT IVssBackupComponentsEx2_UnexposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID snapshotId) {
  2594. return This->lpVtbl->UnexposeSnapshot(This,snapshotId);
  2595. }
  2596. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAuthoritativeRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) {
  2597. return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth);
  2598. }
  2599. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRollForward(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) {
  2600. return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint);
  2601. }
  2602. static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreName(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) {
  2603. return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName);
  2604. }
  2605. static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSetEx(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) {
  2606. return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync);
  2607. }
  2608. static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreFastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) {
  2609. return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync);
  2610. }
  2611. static FORCEINLINE HRESULT IVssBackupComponentsEx2_FastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) {
  2612. return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync);
  2613. }
  2614. #endif
  2615. #endif
  2616. #endif
  2617. #endif /* __IVssBackupComponentsEx2_INTERFACE_DEFINED__ */
  2618. /*****************************************************************************
  2619. * IVssBackupComponentsEx3 interface
  2620. */
  2621. #ifndef __IVssBackupComponentsEx3_INTERFACE_DEFINED__
  2622. #define __IVssBackupComponentsEx3_INTERFACE_DEFINED__
  2623. DEFINE_GUID(IID_IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5);
  2624. #if defined(__cplusplus) && !defined(CINTERFACE)
  2625. MIDL_INTERFACE("c191bfbc-b602-4675-8bd1-67d642f529d5")
  2626. IVssBackupComponentsEx3 : public IVssBackupComponentsEx2
  2627. {
  2628. virtual HRESULT STDMETHODCALLTYPE GetWriterStatusEx(
  2629. UINT iWriter,
  2630. VSS_ID *pidInstance,
  2631. VSS_ID *pidWriter,
  2632. BSTR *pbstrWriter,
  2633. VSS_WRITER_STATE *pnStatus,
  2634. HRESULT *phrFailureWriter,
  2635. HRESULT *phrApplication = 0,
  2636. BSTR *pbstrApplicationMessage = 0) = 0;
  2637. virtual HRESULT STDMETHODCALLTYPE AddSnapshotToRecoverySet(
  2638. VSS_ID snapshotId,
  2639. DWORD dwFlags,
  2640. VSS_PWSZ pwszDestinationVolume = 0) = 0;
  2641. virtual HRESULT STDMETHODCALLTYPE RecoverSet(
  2642. DWORD dwFlags,
  2643. IVssAsync **ppAsync) = 0;
  2644. virtual HRESULT STDMETHODCALLTYPE GetSessionId(
  2645. VSS_ID *idSession) = 0;
  2646. };
  2647. #ifdef __CRT_UUID_DECL
  2648. __CRT_UUID_DECL(IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5)
  2649. #endif
  2650. #else
  2651. typedef struct IVssBackupComponentsEx3Vtbl {
  2652. BEGIN_INTERFACE
  2653. /*** IUnknown methods ***/
  2654. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2655. IVssBackupComponentsEx3 *This,
  2656. REFIID riid,
  2657. void **ppvObject);
  2658. ULONG (STDMETHODCALLTYPE *AddRef)(
  2659. IVssBackupComponentsEx3 *This);
  2660. ULONG (STDMETHODCALLTYPE *Release)(
  2661. IVssBackupComponentsEx3 *This);
  2662. /*** IVssBackupComponents methods ***/
  2663. HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
  2664. IVssBackupComponentsEx3 *This,
  2665. UINT *pcComponents);
  2666. HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
  2667. IVssBackupComponentsEx3 *This,
  2668. UINT iWriter,
  2669. IVssWriterComponentsExt **ppWriter);
  2670. HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
  2671. IVssBackupComponentsEx3 *This,
  2672. BSTR bstrXML);
  2673. HRESULT (STDMETHODCALLTYPE *SetBackupState)(
  2674. IVssBackupComponentsEx3 *This,
  2675. boolean bSelectComponents,
  2676. boolean bBackupBootableSystemState,
  2677. VSS_BACKUP_TYPE backupType,
  2678. boolean bPartialFileSupport);
  2679. HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
  2680. IVssBackupComponentsEx3 *This,
  2681. BSTR bstrXML);
  2682. HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
  2683. IVssBackupComponentsEx3 *This,
  2684. VSS_RESTORE_TYPE restoreType);
  2685. HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
  2686. IVssBackupComponentsEx3 *This,
  2687. IVssAsync **pAsync);
  2688. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
  2689. IVssBackupComponentsEx3 *This,
  2690. UINT *pcWriters);
  2691. HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
  2692. IVssBackupComponentsEx3 *This,
  2693. UINT iWriter,
  2694. VSS_ID *pidInstance,
  2695. IVssExamineWriterMetadata **ppMetadata);
  2696. HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
  2697. IVssBackupComponentsEx3 *This);
  2698. HRESULT (STDMETHODCALLTYPE *AddComponent)(
  2699. IVssBackupComponentsEx3 *This,
  2700. VSS_ID instanceId,
  2701. VSS_ID writerId,
  2702. VSS_COMPONENT_TYPE ct,
  2703. LPCWSTR wszLogicalPath,
  2704. LPCWSTR wszComponentName);
  2705. HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
  2706. IVssBackupComponentsEx3 *This,
  2707. IVssAsync **ppAsync);
  2708. HRESULT (STDMETHODCALLTYPE *AbortBackup)(
  2709. IVssBackupComponentsEx3 *This);
  2710. HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
  2711. IVssBackupComponentsEx3 *This,
  2712. IVssAsync **pAsync);
  2713. HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
  2714. IVssBackupComponentsEx3 *This,
  2715. UINT *pcWriters);
  2716. HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
  2717. IVssBackupComponentsEx3 *This);
  2718. HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
  2719. IVssBackupComponentsEx3 *This,
  2720. UINT iWriter,
  2721. VSS_ID *pidInstance,
  2722. VSS_ID *pidWriter,
  2723. BSTR *pbstrWriter,
  2724. VSS_WRITER_STATE *pnStatus,
  2725. HRESULT *phResultFailure);
  2726. HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
  2727. IVssBackupComponentsEx3 *This,
  2728. VSS_ID instanceId,
  2729. VSS_ID writerId,
  2730. VSS_COMPONENT_TYPE ct,
  2731. LPCWSTR wszLogicalPath,
  2732. LPCWSTR wszComponentName,
  2733. boolean bSucceded);
  2734. HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
  2735. IVssBackupComponentsEx3 *This,
  2736. VSS_ID writerId,
  2737. VSS_COMPONENT_TYPE ct,
  2738. LPCWSTR wszLogicalPath,
  2739. LPCWSTR wszComponentName,
  2740. LPCWSTR wszBackupOptions);
  2741. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
  2742. IVssBackupComponentsEx3 *This,
  2743. VSS_ID writerId,
  2744. VSS_COMPONENT_TYPE ct,
  2745. LPCWSTR wszLogicalPath,
  2746. LPCWSTR wszComponentName,
  2747. boolean bSelectedForRestore);
  2748. HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
  2749. IVssBackupComponentsEx3 *This,
  2750. VSS_ID writerId,
  2751. VSS_COMPONENT_TYPE ct,
  2752. LPCWSTR wszLogicalPath,
  2753. LPCWSTR wszComponentName,
  2754. LPCWSTR wszRestoreOptions);
  2755. HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
  2756. IVssBackupComponentsEx3 *This,
  2757. VSS_ID writerId,
  2758. VSS_COMPONENT_TYPE ct,
  2759. LPCWSTR wszLogicalPath,
  2760. LPCWSTR wszComponentName,
  2761. boolean bAdditionalRestores);
  2762. HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
  2763. IVssBackupComponentsEx3 *This,
  2764. VSS_ID writerId,
  2765. VSS_COMPONENT_TYPE ct,
  2766. LPCWSTR wszLogicalPath,
  2767. LPCWSTR wszComponentName,
  2768. LPCWSTR wszPreviousBackupStamp);
  2769. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  2770. IVssBackupComponentsEx3 *This,
  2771. BSTR *pbstrXML);
  2772. HRESULT (STDMETHODCALLTYPE *BackupComplete)(
  2773. IVssBackupComponentsEx3 *This,
  2774. IVssAsync **ppAsync);
  2775. HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
  2776. IVssBackupComponentsEx3 *This,
  2777. VSS_ID writerId,
  2778. VSS_COMPONENT_TYPE componentType,
  2779. LPCWSTR wszLogicalPath,
  2780. LPCWSTR wszComponentName,
  2781. LPCWSTR wszPath,
  2782. LPCWSTR wszFilespec,
  2783. boolean bRecursive,
  2784. LPCWSTR wszDestination);
  2785. HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
  2786. IVssBackupComponentsEx3 *This,
  2787. VSS_ID writerId,
  2788. VSS_COMPONENT_TYPE componentType,
  2789. LPCWSTR wszLogicalPath,
  2790. LPCWSTR wszComponentName,
  2791. LPCWSTR wszSubComponentLogicalPath,
  2792. LPCWSTR wszSubComponentName,
  2793. boolean bRepair);
  2794. HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
  2795. IVssBackupComponentsEx3 *This,
  2796. VSS_ID writerId,
  2797. VSS_COMPONENT_TYPE ct,
  2798. LPCWSTR wszLogicalPath,
  2799. LPCWSTR wszComponentName,
  2800. VSS_FILE_RESTORE_STATUS status);
  2801. HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
  2802. IVssBackupComponentsEx3 *This,
  2803. VSS_ID writerId,
  2804. VSS_COMPONENT_TYPE ct,
  2805. LPCWSTR wszLogicalPath,
  2806. LPCWSTR wszComponentName,
  2807. LPCWSTR wszPath,
  2808. LPCWSTR wszFileName,
  2809. boolean bRecursive,
  2810. LPCWSTR wszAlternatePath);
  2811. HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
  2812. IVssBackupComponentsEx3 *This,
  2813. VSS_ID writerId,
  2814. VSS_COMPONENT_TYPE ct,
  2815. LPCWSTR wszLogicalPath,
  2816. LPCWSTR wszComponentName,
  2817. UINT iPartialFile,
  2818. LPCWSTR wszRangesFile);
  2819. HRESULT (STDMETHODCALLTYPE *PreRestore)(
  2820. IVssBackupComponentsEx3 *This,
  2821. IVssAsync **ppAsync);
  2822. HRESULT (STDMETHODCALLTYPE *PostRestore)(
  2823. IVssBackupComponentsEx3 *This,
  2824. IVssAsync **ppAsync);
  2825. HRESULT (STDMETHODCALLTYPE *SetContext)(
  2826. IVssBackupComponentsEx3 *This,
  2827. LONG lContext);
  2828. HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
  2829. IVssBackupComponentsEx3 *This,
  2830. VSS_ID *pSnapshotSetId);
  2831. HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
  2832. IVssBackupComponentsEx3 *This,
  2833. VSS_PWSZ pwszVolumeName,
  2834. VSS_ID ProviderId,
  2835. VSS_ID *pidSnapshot);
  2836. HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
  2837. IVssBackupComponentsEx3 *This,
  2838. IVssAsync **ppAsync);
  2839. HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
  2840. IVssBackupComponentsEx3 *This,
  2841. VSS_ID SourceObjectId,
  2842. VSS_OBJECT_TYPE eSourceObjectType,
  2843. WINBOOL bForceDelete,
  2844. LONG *plDeletedSnapshots,
  2845. VSS_ID *pNondeletedSnapshotID);
  2846. HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
  2847. IVssBackupComponentsEx3 *This,
  2848. IVssAsync **ppAsync);
  2849. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
  2850. IVssBackupComponentsEx3 *This,
  2851. VSS_ID SnapshotSetId);
  2852. HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
  2853. IVssBackupComponentsEx3 *This,
  2854. VSS_ID SnapshotId,
  2855. VSS_SNAPSHOT_PROP *pProp);
  2856. HRESULT (STDMETHODCALLTYPE *Query)(
  2857. IVssBackupComponentsEx3 *This,
  2858. VSS_ID QueriedObjectId,
  2859. VSS_OBJECT_TYPE eQueriedObjectType,
  2860. VSS_OBJECT_TYPE eReturnedObjectsType,
  2861. IVssEnumObject **ppEnum);
  2862. HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
  2863. IVssBackupComponentsEx3 *This,
  2864. VSS_ID ProviderId,
  2865. VSS_PWSZ pwszVolumeName,
  2866. WINBOOL *pbSupportedByThisProvider);
  2867. HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
  2868. IVssBackupComponentsEx3 *This,
  2869. const VSS_ID *rgWriterClassId,
  2870. UINT cClassId);
  2871. HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
  2872. IVssBackupComponentsEx3 *This,
  2873. const VSS_ID *rgWriterClassId,
  2874. UINT cClassId);
  2875. HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
  2876. IVssBackupComponentsEx3 *This,
  2877. const VSS_ID *rgWriterInstanceId,
  2878. UINT cInstanceId);
  2879. HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
  2880. IVssBackupComponentsEx3 *This,
  2881. VSS_ID SnapshotId,
  2882. VSS_PWSZ wszPathFromRoot,
  2883. LONG lAttributes,
  2884. VSS_PWSZ wszExpose,
  2885. VSS_PWSZ *pwszExposed);
  2886. HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
  2887. IVssBackupComponentsEx3 *This,
  2888. VSS_ID SnapshotId,
  2889. WINBOOL bForceDismount);
  2890. HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
  2891. IVssBackupComponentsEx3 *This,
  2892. VSS_PWSZ pwszVolume,
  2893. IVssAsync **ppAsync);
  2894. /*** IVssBackupComponentsEx methods ***/
  2895. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
  2896. IVssBackupComponentsEx3 *This,
  2897. UINT iWriter,
  2898. VSS_ID *pidInstance,
  2899. IVssExamineWriterMetadataEx **ppMetadata);
  2900. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
  2901. IVssBackupComponentsEx3 *This,
  2902. VSS_ID writerId,
  2903. VSS_COMPONENT_TYPE ct,
  2904. LPCWSTR wszLogicalPath,
  2905. LPCWSTR wszComponentName,
  2906. boolean bSelectedForRestore,
  2907. VSS_ID instanceId);
  2908. /*** IVssBackupComponentsEx2 methods ***/
  2909. HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)(
  2910. IVssBackupComponentsEx3 *This,
  2911. VSS_ID snapshotId);
  2912. HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)(
  2913. IVssBackupComponentsEx3 *This,
  2914. VSS_ID writerId,
  2915. VSS_COMPONENT_TYPE ct,
  2916. LPCWSTR wszLogicalPath,
  2917. LPCWSTR wszComponentName,
  2918. boolean bAuth);
  2919. HRESULT (STDMETHODCALLTYPE *SetRollForward)(
  2920. IVssBackupComponentsEx3 *This,
  2921. VSS_ID writerId,
  2922. VSS_COMPONENT_TYPE ct,
  2923. LPCWSTR wszLogicalPath,
  2924. LPCWSTR wszComponentName,
  2925. VSS_ROLLFORWARD_TYPE rollType,
  2926. LPCWSTR wszRollForwardPoint);
  2927. HRESULT (STDMETHODCALLTYPE *SetRestoreName)(
  2928. IVssBackupComponentsEx3 *This,
  2929. VSS_ID writerId,
  2930. VSS_COMPONENT_TYPE ct,
  2931. LPCWSTR wszLogicalPath,
  2932. LPCWSTR wszComponentName,
  2933. LPCWSTR wszRestoreName);
  2934. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)(
  2935. IVssBackupComponentsEx3 *This,
  2936. VSS_ID SnapshotSetID,
  2937. DWORD dwBreakFlags,
  2938. IVssAsync **ppAsync);
  2939. HRESULT (STDMETHODCALLTYPE *PreFastRecovery)(
  2940. IVssBackupComponentsEx3 *This,
  2941. VSS_ID SnapshotSetID,
  2942. DWORD dwPreFastRecoveryFlags,
  2943. IVssAsync **ppAsync);
  2944. HRESULT (STDMETHODCALLTYPE *FastRecovery)(
  2945. IVssBackupComponentsEx3 *This,
  2946. VSS_ID SnapshotSetID,
  2947. DWORD dwFastRecoveryFlags,
  2948. IVssAsync **ppAsync);
  2949. /*** IVssBackupComponentsEx3 methods ***/
  2950. HRESULT (STDMETHODCALLTYPE *GetWriterStatusEx)(
  2951. IVssBackupComponentsEx3 *This,
  2952. UINT iWriter,
  2953. VSS_ID *pidInstance,
  2954. VSS_ID *pidWriter,
  2955. BSTR *pbstrWriter,
  2956. VSS_WRITER_STATE *pnStatus,
  2957. HRESULT *phrFailureWriter,
  2958. HRESULT *phrApplication,
  2959. BSTR *pbstrApplicationMessage);
  2960. HRESULT (STDMETHODCALLTYPE *AddSnapshotToRecoverySet)(
  2961. IVssBackupComponentsEx3 *This,
  2962. VSS_ID snapshotId,
  2963. DWORD dwFlags,
  2964. VSS_PWSZ pwszDestinationVolume);
  2965. HRESULT (STDMETHODCALLTYPE *RecoverSet)(
  2966. IVssBackupComponentsEx3 *This,
  2967. DWORD dwFlags,
  2968. IVssAsync **ppAsync);
  2969. HRESULT (STDMETHODCALLTYPE *GetSessionId)(
  2970. IVssBackupComponentsEx3 *This,
  2971. VSS_ID *idSession);
  2972. END_INTERFACE
  2973. } IVssBackupComponentsEx3Vtbl;
  2974. interface IVssBackupComponentsEx3 {
  2975. CONST_VTBL IVssBackupComponentsEx3Vtbl* lpVtbl;
  2976. };
  2977. #ifdef COBJMACROS
  2978. #ifndef WIDL_C_INLINE_WRAPPERS
  2979. /*** IUnknown methods ***/
  2980. #define IVssBackupComponentsEx3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2981. #define IVssBackupComponentsEx3_AddRef(This) (This)->lpVtbl->AddRef(This)
  2982. #define IVssBackupComponentsEx3_Release(This) (This)->lpVtbl->Release(This)
  2983. /*** IVssBackupComponents methods ***/
  2984. #define IVssBackupComponentsEx3_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
  2985. #define IVssBackupComponentsEx3_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
  2986. #define IVssBackupComponentsEx3_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
  2987. #define IVssBackupComponentsEx3_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
  2988. #define IVssBackupComponentsEx3_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
  2989. #define IVssBackupComponentsEx3_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
  2990. #define IVssBackupComponentsEx3_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
  2991. #define IVssBackupComponentsEx3_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
  2992. #define IVssBackupComponentsEx3_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
  2993. #define IVssBackupComponentsEx3_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
  2994. #define IVssBackupComponentsEx3_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
  2995. #define IVssBackupComponentsEx3_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
  2996. #define IVssBackupComponentsEx3_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
  2997. #define IVssBackupComponentsEx3_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
  2998. #define IVssBackupComponentsEx3_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
  2999. #define IVssBackupComponentsEx3_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
  3000. #define IVssBackupComponentsEx3_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
  3001. #define IVssBackupComponentsEx3_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
  3002. #define IVssBackupComponentsEx3_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
  3003. #define IVssBackupComponentsEx3_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
  3004. #define IVssBackupComponentsEx3_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
  3005. #define IVssBackupComponentsEx3_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
  3006. #define IVssBackupComponentsEx3_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
  3007. #define IVssBackupComponentsEx3_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  3008. #define IVssBackupComponentsEx3_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
  3009. #define IVssBackupComponentsEx3_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
  3010. #define IVssBackupComponentsEx3_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
  3011. #define IVssBackupComponentsEx3_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
  3012. #define IVssBackupComponentsEx3_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
  3013. #define IVssBackupComponentsEx3_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
  3014. #define IVssBackupComponentsEx3_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
  3015. #define IVssBackupComponentsEx3_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
  3016. #define IVssBackupComponentsEx3_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
  3017. #define IVssBackupComponentsEx3_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
  3018. #define IVssBackupComponentsEx3_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
  3019. #define IVssBackupComponentsEx3_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
  3020. #define IVssBackupComponentsEx3_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
  3021. #define IVssBackupComponentsEx3_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
  3022. #define IVssBackupComponentsEx3_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
  3023. #define IVssBackupComponentsEx3_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
  3024. #define IVssBackupComponentsEx3_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
  3025. #define IVssBackupComponentsEx3_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
  3026. #define IVssBackupComponentsEx3_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
  3027. #define IVssBackupComponentsEx3_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
  3028. #define IVssBackupComponentsEx3_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
  3029. #define IVssBackupComponentsEx3_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
  3030. #define IVssBackupComponentsEx3_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
  3031. #define IVssBackupComponentsEx3_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
  3032. /*** IVssBackupComponentsEx methods ***/
  3033. #define IVssBackupComponentsEx3_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
  3034. #define IVssBackupComponentsEx3_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
  3035. /*** IVssBackupComponentsEx2 methods ***/
  3036. #define IVssBackupComponentsEx3_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
  3037. #define IVssBackupComponentsEx3_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
  3038. #define IVssBackupComponentsEx3_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
  3039. #define IVssBackupComponentsEx3_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
  3040. #define IVssBackupComponentsEx3_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
  3041. #define IVssBackupComponentsEx3_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
  3042. #define IVssBackupComponentsEx3_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
  3043. /*** IVssBackupComponentsEx3 methods ***/
  3044. #define IVssBackupComponentsEx3_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage)
  3045. #define IVssBackupComponentsEx3_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume)
  3046. #define IVssBackupComponentsEx3_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync)
  3047. #define IVssBackupComponentsEx3_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession)
  3048. #else
  3049. /*** IUnknown methods ***/
  3050. static FORCEINLINE HRESULT IVssBackupComponentsEx3_QueryInterface(IVssBackupComponentsEx3* This,REFIID riid,void **ppvObject) {
  3051. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3052. }
  3053. static FORCEINLINE ULONG IVssBackupComponentsEx3_AddRef(IVssBackupComponentsEx3* This) {
  3054. return This->lpVtbl->AddRef(This);
  3055. }
  3056. static FORCEINLINE ULONG IVssBackupComponentsEx3_Release(IVssBackupComponentsEx3* This) {
  3057. return This->lpVtbl->Release(This);
  3058. }
  3059. /*** IVssBackupComponents methods ***/
  3060. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterComponentsCount(IVssBackupComponentsEx3* This,UINT *pcComponents) {
  3061. return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
  3062. }
  3063. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterComponents(IVssBackupComponentsEx3* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
  3064. return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
  3065. }
  3066. static FORCEINLINE HRESULT IVssBackupComponentsEx3_InitializeForBackup(IVssBackupComponentsEx3* This,BSTR bstrXML) {
  3067. return This->lpVtbl->InitializeForBackup(This,bstrXML);
  3068. }
  3069. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupState(IVssBackupComponentsEx3* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
  3070. return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
  3071. }
  3072. static FORCEINLINE HRESULT IVssBackupComponentsEx3_InitializeForRestore(IVssBackupComponentsEx3* This,BSTR bstrXML) {
  3073. return This->lpVtbl->InitializeForRestore(This,bstrXML);
  3074. }
  3075. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreState(IVssBackupComponentsEx3* This,VSS_RESTORE_TYPE restoreType) {
  3076. return This->lpVtbl->SetRestoreState(This,restoreType);
  3077. }
  3078. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GatherWriterMetadata(IVssBackupComponentsEx3* This,IVssAsync **pAsync) {
  3079. return This->lpVtbl->GatherWriterMetadata(This,pAsync);
  3080. }
  3081. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadataCount(IVssBackupComponentsEx3* This,UINT *pcWriters) {
  3082. return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
  3083. }
  3084. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadata(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
  3085. return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
  3086. }
  3087. static FORCEINLINE HRESULT IVssBackupComponentsEx3_FreeWriterMetadata(IVssBackupComponentsEx3* This) {
  3088. return This->lpVtbl->FreeWriterMetadata(This);
  3089. }
  3090. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddComponent(IVssBackupComponentsEx3* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
  3091. return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
  3092. }
  3093. static FORCEINLINE HRESULT IVssBackupComponentsEx3_PrepareForBackup(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3094. return This->lpVtbl->PrepareForBackup(This,ppAsync);
  3095. }
  3096. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AbortBackup(IVssBackupComponentsEx3* This) {
  3097. return This->lpVtbl->AbortBackup(This);
  3098. }
  3099. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GatherWriterStatus(IVssBackupComponentsEx3* This,IVssAsync **pAsync) {
  3100. return This->lpVtbl->GatherWriterStatus(This,pAsync);
  3101. }
  3102. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatusCount(IVssBackupComponentsEx3* This,UINT *pcWriters) {
  3103. return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
  3104. }
  3105. static FORCEINLINE HRESULT IVssBackupComponentsEx3_FreeWriterStatus(IVssBackupComponentsEx3* This) {
  3106. return This->lpVtbl->FreeWriterStatus(This);
  3107. }
  3108. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatus(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
  3109. return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
  3110. }
  3111. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupSucceeded(IVssBackupComponentsEx3* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
  3112. return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
  3113. }
  3114. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupOptions(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
  3115. return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
  3116. }
  3117. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetSelectedForRestore(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
  3118. return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
  3119. }
  3120. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreOptions(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
  3121. return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
  3122. }
  3123. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetAdditionalRestores(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
  3124. return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
  3125. }
  3126. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetPreviousBackupStamp(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
  3127. return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
  3128. }
  3129. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SaveAsXML(IVssBackupComponentsEx3* This,BSTR *pbstrXML) {
  3130. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  3131. }
  3132. static FORCEINLINE HRESULT IVssBackupComponentsEx3_BackupComplete(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3133. return This->lpVtbl->BackupComplete(This,ppAsync);
  3134. }
  3135. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddAlternativeLocationMapping(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
  3136. return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
  3137. }
  3138. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddRestoreSubcomponent(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
  3139. return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
  3140. }
  3141. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetFileRestoreStatus(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
  3142. return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
  3143. }
  3144. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddNewTarget(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
  3145. return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
  3146. }
  3147. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRangesFilePath(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
  3148. return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
  3149. }
  3150. static FORCEINLINE HRESULT IVssBackupComponentsEx3_PreRestore(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3151. return This->lpVtbl->PreRestore(This,ppAsync);
  3152. }
  3153. static FORCEINLINE HRESULT IVssBackupComponentsEx3_PostRestore(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3154. return This->lpVtbl->PostRestore(This,ppAsync);
  3155. }
  3156. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetContext(IVssBackupComponentsEx3* This,LONG lContext) {
  3157. return This->lpVtbl->SetContext(This,lContext);
  3158. }
  3159. static FORCEINLINE HRESULT IVssBackupComponentsEx3_StartSnapshotSet(IVssBackupComponentsEx3* This,VSS_ID *pSnapshotSetId) {
  3160. return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
  3161. }
  3162. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddToSnapshotSet(IVssBackupComponentsEx3* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
  3163. return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
  3164. }
  3165. static FORCEINLINE HRESULT IVssBackupComponentsEx3_DoSnapshotSet(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3166. return This->lpVtbl->DoSnapshotSet(This,ppAsync);
  3167. }
  3168. static FORCEINLINE HRESULT IVssBackupComponentsEx3_DeleteSnapshots(IVssBackupComponentsEx3* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
  3169. return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
  3170. }
  3171. static FORCEINLINE HRESULT IVssBackupComponentsEx3_ImportSnapshots(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) {
  3172. return This->lpVtbl->ImportSnapshots(This,ppAsync);
  3173. }
  3174. static FORCEINLINE HRESULT IVssBackupComponentsEx3_BreakSnapshotSet(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetId) {
  3175. return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
  3176. }
  3177. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetSnapshotProperties(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
  3178. return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
  3179. }
  3180. static FORCEINLINE HRESULT IVssBackupComponentsEx3_Query(IVssBackupComponentsEx3* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
  3181. return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
  3182. }
  3183. static FORCEINLINE HRESULT IVssBackupComponentsEx3_IsVolumeSupported(IVssBackupComponentsEx3* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
  3184. return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
  3185. }
  3186. static FORCEINLINE HRESULT IVssBackupComponentsEx3_DisableWriterClasses(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  3187. return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
  3188. }
  3189. static FORCEINLINE HRESULT IVssBackupComponentsEx3_EnableWriterClasses(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  3190. return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
  3191. }
  3192. static FORCEINLINE HRESULT IVssBackupComponentsEx3_DisableWriterInstances(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
  3193. return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
  3194. }
  3195. static FORCEINLINE HRESULT IVssBackupComponentsEx3_ExposeSnapshot(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
  3196. return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
  3197. }
  3198. static FORCEINLINE HRESULT IVssBackupComponentsEx3_RevertToSnapshot(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
  3199. return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
  3200. }
  3201. static FORCEINLINE HRESULT IVssBackupComponentsEx3_QueryRevertStatus(IVssBackupComponentsEx3* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
  3202. return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
  3203. }
  3204. /*** IVssBackupComponentsEx methods ***/
  3205. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadataEx(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
  3206. return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
  3207. }
  3208. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetSelectedForRestoreEx(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
  3209. return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
  3210. }
  3211. /*** IVssBackupComponentsEx2 methods ***/
  3212. static FORCEINLINE HRESULT IVssBackupComponentsEx3_UnexposeSnapshot(IVssBackupComponentsEx3* This,VSS_ID snapshotId) {
  3213. return This->lpVtbl->UnexposeSnapshot(This,snapshotId);
  3214. }
  3215. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetAuthoritativeRestore(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) {
  3216. return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth);
  3217. }
  3218. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRollForward(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) {
  3219. return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint);
  3220. }
  3221. static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreName(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) {
  3222. return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName);
  3223. }
  3224. static FORCEINLINE HRESULT IVssBackupComponentsEx3_BreakSnapshotSetEx(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) {
  3225. return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync);
  3226. }
  3227. static FORCEINLINE HRESULT IVssBackupComponentsEx3_PreFastRecovery(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) {
  3228. return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync);
  3229. }
  3230. static FORCEINLINE HRESULT IVssBackupComponentsEx3_FastRecovery(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) {
  3231. return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync);
  3232. }
  3233. /*** IVssBackupComponentsEx3 methods ***/
  3234. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatusEx(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,HRESULT *phrApplication,BSTR *pbstrApplicationMessage) {
  3235. return This->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage);
  3236. }
  3237. static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddSnapshotToRecoverySet(IVssBackupComponentsEx3* This,VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) {
  3238. return This->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume);
  3239. }
  3240. static FORCEINLINE HRESULT IVssBackupComponentsEx3_RecoverSet(IVssBackupComponentsEx3* This,DWORD dwFlags,IVssAsync **ppAsync) {
  3241. return This->lpVtbl->RecoverSet(This,dwFlags,ppAsync);
  3242. }
  3243. static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetSessionId(IVssBackupComponentsEx3* This,VSS_ID *idSession) {
  3244. return This->lpVtbl->GetSessionId(This,idSession);
  3245. }
  3246. #endif
  3247. #endif
  3248. #endif
  3249. #endif /* __IVssBackupComponentsEx3_INTERFACE_DEFINED__ */
  3250. /*****************************************************************************
  3251. * IVssBackupComponentsEx4 interface
  3252. */
  3253. #ifndef __IVssBackupComponentsEx4_INTERFACE_DEFINED__
  3254. #define __IVssBackupComponentsEx4_INTERFACE_DEFINED__
  3255. DEFINE_GUID(IID_IVssBackupComponentsEx4, 0xf434c2fd, 0xb553, 0x4961, 0xa9,0xf9, 0xa8,0xe9,0x0b,0x67,0x3e,0x53);
  3256. #if defined(__cplusplus) && !defined(CINTERFACE)
  3257. MIDL_INTERFACE("f434c2fd-b553-4961-a9f9-a8e90b673e53")
  3258. IVssBackupComponentsEx4 : public IVssBackupComponentsEx3
  3259. {
  3260. virtual HRESULT STDMETHODCALLTYPE GetRootAndLogicalPrefixPaths(
  3261. VSS_PWSZ pwszFilePath,
  3262. VSS_PWSZ *ppwszRootPath,
  3263. VSS_PWSZ *ppwszLogicalPrefix,
  3264. WINBOOL bNormalizeFQDNforRootPath = FALSE) = 0;
  3265. };
  3266. #ifdef __CRT_UUID_DECL
  3267. __CRT_UUID_DECL(IVssBackupComponentsEx4, 0xf434c2fd, 0xb553, 0x4961, 0xa9,0xf9, 0xa8,0xe9,0x0b,0x67,0x3e,0x53)
  3268. #endif
  3269. #else
  3270. typedef struct IVssBackupComponentsEx4Vtbl {
  3271. BEGIN_INTERFACE
  3272. /*** IUnknown methods ***/
  3273. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3274. IVssBackupComponentsEx4 *This,
  3275. REFIID riid,
  3276. void **ppvObject);
  3277. ULONG (STDMETHODCALLTYPE *AddRef)(
  3278. IVssBackupComponentsEx4 *This);
  3279. ULONG (STDMETHODCALLTYPE *Release)(
  3280. IVssBackupComponentsEx4 *This);
  3281. /*** IVssBackupComponents methods ***/
  3282. HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
  3283. IVssBackupComponentsEx4 *This,
  3284. UINT *pcComponents);
  3285. HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
  3286. IVssBackupComponentsEx4 *This,
  3287. UINT iWriter,
  3288. IVssWriterComponentsExt **ppWriter);
  3289. HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
  3290. IVssBackupComponentsEx4 *This,
  3291. BSTR bstrXML);
  3292. HRESULT (STDMETHODCALLTYPE *SetBackupState)(
  3293. IVssBackupComponentsEx4 *This,
  3294. boolean bSelectComponents,
  3295. boolean bBackupBootableSystemState,
  3296. VSS_BACKUP_TYPE backupType,
  3297. boolean bPartialFileSupport);
  3298. HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
  3299. IVssBackupComponentsEx4 *This,
  3300. BSTR bstrXML);
  3301. HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
  3302. IVssBackupComponentsEx4 *This,
  3303. VSS_RESTORE_TYPE restoreType);
  3304. HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
  3305. IVssBackupComponentsEx4 *This,
  3306. IVssAsync **pAsync);
  3307. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
  3308. IVssBackupComponentsEx4 *This,
  3309. UINT *pcWriters);
  3310. HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
  3311. IVssBackupComponentsEx4 *This,
  3312. UINT iWriter,
  3313. VSS_ID *pidInstance,
  3314. IVssExamineWriterMetadata **ppMetadata);
  3315. HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
  3316. IVssBackupComponentsEx4 *This);
  3317. HRESULT (STDMETHODCALLTYPE *AddComponent)(
  3318. IVssBackupComponentsEx4 *This,
  3319. VSS_ID instanceId,
  3320. VSS_ID writerId,
  3321. VSS_COMPONENT_TYPE ct,
  3322. LPCWSTR wszLogicalPath,
  3323. LPCWSTR wszComponentName);
  3324. HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
  3325. IVssBackupComponentsEx4 *This,
  3326. IVssAsync **ppAsync);
  3327. HRESULT (STDMETHODCALLTYPE *AbortBackup)(
  3328. IVssBackupComponentsEx4 *This);
  3329. HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
  3330. IVssBackupComponentsEx4 *This,
  3331. IVssAsync **pAsync);
  3332. HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
  3333. IVssBackupComponentsEx4 *This,
  3334. UINT *pcWriters);
  3335. HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
  3336. IVssBackupComponentsEx4 *This);
  3337. HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
  3338. IVssBackupComponentsEx4 *This,
  3339. UINT iWriter,
  3340. VSS_ID *pidInstance,
  3341. VSS_ID *pidWriter,
  3342. BSTR *pbstrWriter,
  3343. VSS_WRITER_STATE *pnStatus,
  3344. HRESULT *phResultFailure);
  3345. HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
  3346. IVssBackupComponentsEx4 *This,
  3347. VSS_ID instanceId,
  3348. VSS_ID writerId,
  3349. VSS_COMPONENT_TYPE ct,
  3350. LPCWSTR wszLogicalPath,
  3351. LPCWSTR wszComponentName,
  3352. boolean bSucceded);
  3353. HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
  3354. IVssBackupComponentsEx4 *This,
  3355. VSS_ID writerId,
  3356. VSS_COMPONENT_TYPE ct,
  3357. LPCWSTR wszLogicalPath,
  3358. LPCWSTR wszComponentName,
  3359. LPCWSTR wszBackupOptions);
  3360. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
  3361. IVssBackupComponentsEx4 *This,
  3362. VSS_ID writerId,
  3363. VSS_COMPONENT_TYPE ct,
  3364. LPCWSTR wszLogicalPath,
  3365. LPCWSTR wszComponentName,
  3366. boolean bSelectedForRestore);
  3367. HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
  3368. IVssBackupComponentsEx4 *This,
  3369. VSS_ID writerId,
  3370. VSS_COMPONENT_TYPE ct,
  3371. LPCWSTR wszLogicalPath,
  3372. LPCWSTR wszComponentName,
  3373. LPCWSTR wszRestoreOptions);
  3374. HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
  3375. IVssBackupComponentsEx4 *This,
  3376. VSS_ID writerId,
  3377. VSS_COMPONENT_TYPE ct,
  3378. LPCWSTR wszLogicalPath,
  3379. LPCWSTR wszComponentName,
  3380. boolean bAdditionalRestores);
  3381. HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
  3382. IVssBackupComponentsEx4 *This,
  3383. VSS_ID writerId,
  3384. VSS_COMPONENT_TYPE ct,
  3385. LPCWSTR wszLogicalPath,
  3386. LPCWSTR wszComponentName,
  3387. LPCWSTR wszPreviousBackupStamp);
  3388. HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
  3389. IVssBackupComponentsEx4 *This,
  3390. BSTR *pbstrXML);
  3391. HRESULT (STDMETHODCALLTYPE *BackupComplete)(
  3392. IVssBackupComponentsEx4 *This,
  3393. IVssAsync **ppAsync);
  3394. HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
  3395. IVssBackupComponentsEx4 *This,
  3396. VSS_ID writerId,
  3397. VSS_COMPONENT_TYPE componentType,
  3398. LPCWSTR wszLogicalPath,
  3399. LPCWSTR wszComponentName,
  3400. LPCWSTR wszPath,
  3401. LPCWSTR wszFilespec,
  3402. boolean bRecursive,
  3403. LPCWSTR wszDestination);
  3404. HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
  3405. IVssBackupComponentsEx4 *This,
  3406. VSS_ID writerId,
  3407. VSS_COMPONENT_TYPE componentType,
  3408. LPCWSTR wszLogicalPath,
  3409. LPCWSTR wszComponentName,
  3410. LPCWSTR wszSubComponentLogicalPath,
  3411. LPCWSTR wszSubComponentName,
  3412. boolean bRepair);
  3413. HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
  3414. IVssBackupComponentsEx4 *This,
  3415. VSS_ID writerId,
  3416. VSS_COMPONENT_TYPE ct,
  3417. LPCWSTR wszLogicalPath,
  3418. LPCWSTR wszComponentName,
  3419. VSS_FILE_RESTORE_STATUS status);
  3420. HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
  3421. IVssBackupComponentsEx4 *This,
  3422. VSS_ID writerId,
  3423. VSS_COMPONENT_TYPE ct,
  3424. LPCWSTR wszLogicalPath,
  3425. LPCWSTR wszComponentName,
  3426. LPCWSTR wszPath,
  3427. LPCWSTR wszFileName,
  3428. boolean bRecursive,
  3429. LPCWSTR wszAlternatePath);
  3430. HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
  3431. IVssBackupComponentsEx4 *This,
  3432. VSS_ID writerId,
  3433. VSS_COMPONENT_TYPE ct,
  3434. LPCWSTR wszLogicalPath,
  3435. LPCWSTR wszComponentName,
  3436. UINT iPartialFile,
  3437. LPCWSTR wszRangesFile);
  3438. HRESULT (STDMETHODCALLTYPE *PreRestore)(
  3439. IVssBackupComponentsEx4 *This,
  3440. IVssAsync **ppAsync);
  3441. HRESULT (STDMETHODCALLTYPE *PostRestore)(
  3442. IVssBackupComponentsEx4 *This,
  3443. IVssAsync **ppAsync);
  3444. HRESULT (STDMETHODCALLTYPE *SetContext)(
  3445. IVssBackupComponentsEx4 *This,
  3446. LONG lContext);
  3447. HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
  3448. IVssBackupComponentsEx4 *This,
  3449. VSS_ID *pSnapshotSetId);
  3450. HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
  3451. IVssBackupComponentsEx4 *This,
  3452. VSS_PWSZ pwszVolumeName,
  3453. VSS_ID ProviderId,
  3454. VSS_ID *pidSnapshot);
  3455. HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
  3456. IVssBackupComponentsEx4 *This,
  3457. IVssAsync **ppAsync);
  3458. HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
  3459. IVssBackupComponentsEx4 *This,
  3460. VSS_ID SourceObjectId,
  3461. VSS_OBJECT_TYPE eSourceObjectType,
  3462. WINBOOL bForceDelete,
  3463. LONG *plDeletedSnapshots,
  3464. VSS_ID *pNondeletedSnapshotID);
  3465. HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
  3466. IVssBackupComponentsEx4 *This,
  3467. IVssAsync **ppAsync);
  3468. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
  3469. IVssBackupComponentsEx4 *This,
  3470. VSS_ID SnapshotSetId);
  3471. HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
  3472. IVssBackupComponentsEx4 *This,
  3473. VSS_ID SnapshotId,
  3474. VSS_SNAPSHOT_PROP *pProp);
  3475. HRESULT (STDMETHODCALLTYPE *Query)(
  3476. IVssBackupComponentsEx4 *This,
  3477. VSS_ID QueriedObjectId,
  3478. VSS_OBJECT_TYPE eQueriedObjectType,
  3479. VSS_OBJECT_TYPE eReturnedObjectsType,
  3480. IVssEnumObject **ppEnum);
  3481. HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
  3482. IVssBackupComponentsEx4 *This,
  3483. VSS_ID ProviderId,
  3484. VSS_PWSZ pwszVolumeName,
  3485. WINBOOL *pbSupportedByThisProvider);
  3486. HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
  3487. IVssBackupComponentsEx4 *This,
  3488. const VSS_ID *rgWriterClassId,
  3489. UINT cClassId);
  3490. HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
  3491. IVssBackupComponentsEx4 *This,
  3492. const VSS_ID *rgWriterClassId,
  3493. UINT cClassId);
  3494. HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
  3495. IVssBackupComponentsEx4 *This,
  3496. const VSS_ID *rgWriterInstanceId,
  3497. UINT cInstanceId);
  3498. HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
  3499. IVssBackupComponentsEx4 *This,
  3500. VSS_ID SnapshotId,
  3501. VSS_PWSZ wszPathFromRoot,
  3502. LONG lAttributes,
  3503. VSS_PWSZ wszExpose,
  3504. VSS_PWSZ *pwszExposed);
  3505. HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
  3506. IVssBackupComponentsEx4 *This,
  3507. VSS_ID SnapshotId,
  3508. WINBOOL bForceDismount);
  3509. HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
  3510. IVssBackupComponentsEx4 *This,
  3511. VSS_PWSZ pwszVolume,
  3512. IVssAsync **ppAsync);
  3513. /*** IVssBackupComponentsEx methods ***/
  3514. HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
  3515. IVssBackupComponentsEx4 *This,
  3516. UINT iWriter,
  3517. VSS_ID *pidInstance,
  3518. IVssExamineWriterMetadataEx **ppMetadata);
  3519. HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
  3520. IVssBackupComponentsEx4 *This,
  3521. VSS_ID writerId,
  3522. VSS_COMPONENT_TYPE ct,
  3523. LPCWSTR wszLogicalPath,
  3524. LPCWSTR wszComponentName,
  3525. boolean bSelectedForRestore,
  3526. VSS_ID instanceId);
  3527. /*** IVssBackupComponentsEx2 methods ***/
  3528. HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)(
  3529. IVssBackupComponentsEx4 *This,
  3530. VSS_ID snapshotId);
  3531. HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)(
  3532. IVssBackupComponentsEx4 *This,
  3533. VSS_ID writerId,
  3534. VSS_COMPONENT_TYPE ct,
  3535. LPCWSTR wszLogicalPath,
  3536. LPCWSTR wszComponentName,
  3537. boolean bAuth);
  3538. HRESULT (STDMETHODCALLTYPE *SetRollForward)(
  3539. IVssBackupComponentsEx4 *This,
  3540. VSS_ID writerId,
  3541. VSS_COMPONENT_TYPE ct,
  3542. LPCWSTR wszLogicalPath,
  3543. LPCWSTR wszComponentName,
  3544. VSS_ROLLFORWARD_TYPE rollType,
  3545. LPCWSTR wszRollForwardPoint);
  3546. HRESULT (STDMETHODCALLTYPE *SetRestoreName)(
  3547. IVssBackupComponentsEx4 *This,
  3548. VSS_ID writerId,
  3549. VSS_COMPONENT_TYPE ct,
  3550. LPCWSTR wszLogicalPath,
  3551. LPCWSTR wszComponentName,
  3552. LPCWSTR wszRestoreName);
  3553. HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)(
  3554. IVssBackupComponentsEx4 *This,
  3555. VSS_ID SnapshotSetID,
  3556. DWORD dwBreakFlags,
  3557. IVssAsync **ppAsync);
  3558. HRESULT (STDMETHODCALLTYPE *PreFastRecovery)(
  3559. IVssBackupComponentsEx4 *This,
  3560. VSS_ID SnapshotSetID,
  3561. DWORD dwPreFastRecoveryFlags,
  3562. IVssAsync **ppAsync);
  3563. HRESULT (STDMETHODCALLTYPE *FastRecovery)(
  3564. IVssBackupComponentsEx4 *This,
  3565. VSS_ID SnapshotSetID,
  3566. DWORD dwFastRecoveryFlags,
  3567. IVssAsync **ppAsync);
  3568. /*** IVssBackupComponentsEx3 methods ***/
  3569. HRESULT (STDMETHODCALLTYPE *GetWriterStatusEx)(
  3570. IVssBackupComponentsEx4 *This,
  3571. UINT iWriter,
  3572. VSS_ID *pidInstance,
  3573. VSS_ID *pidWriter,
  3574. BSTR *pbstrWriter,
  3575. VSS_WRITER_STATE *pnStatus,
  3576. HRESULT *phrFailureWriter,
  3577. HRESULT *phrApplication,
  3578. BSTR *pbstrApplicationMessage);
  3579. HRESULT (STDMETHODCALLTYPE *AddSnapshotToRecoverySet)(
  3580. IVssBackupComponentsEx4 *This,
  3581. VSS_ID snapshotId,
  3582. DWORD dwFlags,
  3583. VSS_PWSZ pwszDestinationVolume);
  3584. HRESULT (STDMETHODCALLTYPE *RecoverSet)(
  3585. IVssBackupComponentsEx4 *This,
  3586. DWORD dwFlags,
  3587. IVssAsync **ppAsync);
  3588. HRESULT (STDMETHODCALLTYPE *GetSessionId)(
  3589. IVssBackupComponentsEx4 *This,
  3590. VSS_ID *idSession);
  3591. /*** IVssBackupComponentsEx4 methods ***/
  3592. HRESULT (STDMETHODCALLTYPE *GetRootAndLogicalPrefixPaths)(
  3593. IVssBackupComponentsEx4 *This,
  3594. VSS_PWSZ pwszFilePath,
  3595. VSS_PWSZ *ppwszRootPath,
  3596. VSS_PWSZ *ppwszLogicalPrefix,
  3597. WINBOOL bNormalizeFQDNforRootPath);
  3598. END_INTERFACE
  3599. } IVssBackupComponentsEx4Vtbl;
  3600. interface IVssBackupComponentsEx4 {
  3601. CONST_VTBL IVssBackupComponentsEx4Vtbl* lpVtbl;
  3602. };
  3603. #ifdef COBJMACROS
  3604. #ifndef WIDL_C_INLINE_WRAPPERS
  3605. /*** IUnknown methods ***/
  3606. #define IVssBackupComponentsEx4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3607. #define IVssBackupComponentsEx4_AddRef(This) (This)->lpVtbl->AddRef(This)
  3608. #define IVssBackupComponentsEx4_Release(This) (This)->lpVtbl->Release(This)
  3609. /*** IVssBackupComponents methods ***/
  3610. #define IVssBackupComponentsEx4_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
  3611. #define IVssBackupComponentsEx4_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
  3612. #define IVssBackupComponentsEx4_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
  3613. #define IVssBackupComponentsEx4_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
  3614. #define IVssBackupComponentsEx4_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
  3615. #define IVssBackupComponentsEx4_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
  3616. #define IVssBackupComponentsEx4_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
  3617. #define IVssBackupComponentsEx4_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
  3618. #define IVssBackupComponentsEx4_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
  3619. #define IVssBackupComponentsEx4_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
  3620. #define IVssBackupComponentsEx4_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
  3621. #define IVssBackupComponentsEx4_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
  3622. #define IVssBackupComponentsEx4_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
  3623. #define IVssBackupComponentsEx4_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
  3624. #define IVssBackupComponentsEx4_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
  3625. #define IVssBackupComponentsEx4_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
  3626. #define IVssBackupComponentsEx4_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
  3627. #define IVssBackupComponentsEx4_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
  3628. #define IVssBackupComponentsEx4_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
  3629. #define IVssBackupComponentsEx4_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
  3630. #define IVssBackupComponentsEx4_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
  3631. #define IVssBackupComponentsEx4_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
  3632. #define IVssBackupComponentsEx4_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
  3633. #define IVssBackupComponentsEx4_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
  3634. #define IVssBackupComponentsEx4_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
  3635. #define IVssBackupComponentsEx4_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
  3636. #define IVssBackupComponentsEx4_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
  3637. #define IVssBackupComponentsEx4_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
  3638. #define IVssBackupComponentsEx4_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
  3639. #define IVssBackupComponentsEx4_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
  3640. #define IVssBackupComponentsEx4_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
  3641. #define IVssBackupComponentsEx4_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
  3642. #define IVssBackupComponentsEx4_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
  3643. #define IVssBackupComponentsEx4_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
  3644. #define IVssBackupComponentsEx4_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
  3645. #define IVssBackupComponentsEx4_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
  3646. #define IVssBackupComponentsEx4_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
  3647. #define IVssBackupComponentsEx4_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
  3648. #define IVssBackupComponentsEx4_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
  3649. #define IVssBackupComponentsEx4_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
  3650. #define IVssBackupComponentsEx4_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
  3651. #define IVssBackupComponentsEx4_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
  3652. #define IVssBackupComponentsEx4_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
  3653. #define IVssBackupComponentsEx4_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
  3654. #define IVssBackupComponentsEx4_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
  3655. #define IVssBackupComponentsEx4_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
  3656. #define IVssBackupComponentsEx4_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
  3657. #define IVssBackupComponentsEx4_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
  3658. /*** IVssBackupComponentsEx methods ***/
  3659. #define IVssBackupComponentsEx4_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
  3660. #define IVssBackupComponentsEx4_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
  3661. /*** IVssBackupComponentsEx2 methods ***/
  3662. #define IVssBackupComponentsEx4_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
  3663. #define IVssBackupComponentsEx4_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
  3664. #define IVssBackupComponentsEx4_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
  3665. #define IVssBackupComponentsEx4_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
  3666. #define IVssBackupComponentsEx4_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
  3667. #define IVssBackupComponentsEx4_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
  3668. #define IVssBackupComponentsEx4_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
  3669. /*** IVssBackupComponentsEx3 methods ***/
  3670. #define IVssBackupComponentsEx4_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage)
  3671. #define IVssBackupComponentsEx4_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume)
  3672. #define IVssBackupComponentsEx4_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync)
  3673. #define IVssBackupComponentsEx4_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession)
  3674. /*** IVssBackupComponentsEx4 methods ***/
  3675. #define IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath) (This)->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath)
  3676. #else
  3677. /*** IUnknown methods ***/
  3678. static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryInterface(IVssBackupComponentsEx4* This,REFIID riid,void **ppvObject) {
  3679. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3680. }
  3681. static FORCEINLINE ULONG IVssBackupComponentsEx4_AddRef(IVssBackupComponentsEx4* This) {
  3682. return This->lpVtbl->AddRef(This);
  3683. }
  3684. static FORCEINLINE ULONG IVssBackupComponentsEx4_Release(IVssBackupComponentsEx4* This) {
  3685. return This->lpVtbl->Release(This);
  3686. }
  3687. /*** IVssBackupComponents methods ***/
  3688. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponentsCount(IVssBackupComponentsEx4* This,UINT *pcComponents) {
  3689. return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
  3690. }
  3691. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponents(IVssBackupComponentsEx4* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
  3692. return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
  3693. }
  3694. static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForBackup(IVssBackupComponentsEx4* This,BSTR bstrXML) {
  3695. return This->lpVtbl->InitializeForBackup(This,bstrXML);
  3696. }
  3697. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupState(IVssBackupComponentsEx4* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
  3698. return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
  3699. }
  3700. static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForRestore(IVssBackupComponentsEx4* This,BSTR bstrXML) {
  3701. return This->lpVtbl->InitializeForRestore(This,bstrXML);
  3702. }
  3703. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreState(IVssBackupComponentsEx4* This,VSS_RESTORE_TYPE restoreType) {
  3704. return This->lpVtbl->SetRestoreState(This,restoreType);
  3705. }
  3706. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterMetadata(IVssBackupComponentsEx4* This,IVssAsync **pAsync) {
  3707. return This->lpVtbl->GatherWriterMetadata(This,pAsync);
  3708. }
  3709. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataCount(IVssBackupComponentsEx4* This,UINT *pcWriters) {
  3710. return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
  3711. }
  3712. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadata(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
  3713. return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
  3714. }
  3715. static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterMetadata(IVssBackupComponentsEx4* This) {
  3716. return This->lpVtbl->FreeWriterMetadata(This);
  3717. }
  3718. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddComponent(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
  3719. return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
  3720. }
  3721. static FORCEINLINE HRESULT IVssBackupComponentsEx4_PrepareForBackup(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3722. return This->lpVtbl->PrepareForBackup(This,ppAsync);
  3723. }
  3724. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AbortBackup(IVssBackupComponentsEx4* This) {
  3725. return This->lpVtbl->AbortBackup(This);
  3726. }
  3727. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterStatus(IVssBackupComponentsEx4* This,IVssAsync **pAsync) {
  3728. return This->lpVtbl->GatherWriterStatus(This,pAsync);
  3729. }
  3730. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusCount(IVssBackupComponentsEx4* This,UINT *pcWriters) {
  3731. return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
  3732. }
  3733. static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterStatus(IVssBackupComponentsEx4* This) {
  3734. return This->lpVtbl->FreeWriterStatus(This);
  3735. }
  3736. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatus(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
  3737. return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
  3738. }
  3739. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupSucceeded(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
  3740. return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
  3741. }
  3742. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
  3743. return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
  3744. }
  3745. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
  3746. return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
  3747. }
  3748. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
  3749. return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
  3750. }
  3751. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAdditionalRestores(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
  3752. return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
  3753. }
  3754. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetPreviousBackupStamp(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
  3755. return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
  3756. }
  3757. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SaveAsXML(IVssBackupComponentsEx4* This,BSTR *pbstrXML) {
  3758. return This->lpVtbl->SaveAsXML(This,pbstrXML);
  3759. }
  3760. static FORCEINLINE HRESULT IVssBackupComponentsEx4_BackupComplete(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3761. return This->lpVtbl->BackupComplete(This,ppAsync);
  3762. }
  3763. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddAlternativeLocationMapping(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
  3764. return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
  3765. }
  3766. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddRestoreSubcomponent(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
  3767. return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
  3768. }
  3769. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetFileRestoreStatus(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
  3770. return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
  3771. }
  3772. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddNewTarget(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
  3773. return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
  3774. }
  3775. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRangesFilePath(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
  3776. return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
  3777. }
  3778. static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3779. return This->lpVtbl->PreRestore(This,ppAsync);
  3780. }
  3781. static FORCEINLINE HRESULT IVssBackupComponentsEx4_PostRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3782. return This->lpVtbl->PostRestore(This,ppAsync);
  3783. }
  3784. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetContext(IVssBackupComponentsEx4* This,LONG lContext) {
  3785. return This->lpVtbl->SetContext(This,lContext);
  3786. }
  3787. static FORCEINLINE HRESULT IVssBackupComponentsEx4_StartSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID *pSnapshotSetId) {
  3788. return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
  3789. }
  3790. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddToSnapshotSet(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
  3791. return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
  3792. }
  3793. static FORCEINLINE HRESULT IVssBackupComponentsEx4_DoSnapshotSet(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3794. return This->lpVtbl->DoSnapshotSet(This,ppAsync);
  3795. }
  3796. static FORCEINLINE HRESULT IVssBackupComponentsEx4_DeleteSnapshots(IVssBackupComponentsEx4* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
  3797. return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
  3798. }
  3799. static FORCEINLINE HRESULT IVssBackupComponentsEx4_ImportSnapshots(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
  3800. return This->lpVtbl->ImportSnapshots(This,ppAsync);
  3801. }
  3802. static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetId) {
  3803. return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
  3804. }
  3805. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSnapshotProperties(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
  3806. return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
  3807. }
  3808. static FORCEINLINE HRESULT IVssBackupComponentsEx4_Query(IVssBackupComponentsEx4* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
  3809. return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
  3810. }
  3811. static FORCEINLINE HRESULT IVssBackupComponentsEx4_IsVolumeSupported(IVssBackupComponentsEx4* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
  3812. return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
  3813. }
  3814. static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  3815. return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
  3816. }
  3817. static FORCEINLINE HRESULT IVssBackupComponentsEx4_EnableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
  3818. return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
  3819. }
  3820. static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterInstances(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
  3821. return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
  3822. }
  3823. static FORCEINLINE HRESULT IVssBackupComponentsEx4_ExposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
  3824. return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
  3825. }
  3826. static FORCEINLINE HRESULT IVssBackupComponentsEx4_RevertToSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
  3827. return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
  3828. }
  3829. static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryRevertStatus(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
  3830. return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
  3831. }
  3832. /*** IVssBackupComponentsEx methods ***/
  3833. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
  3834. return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
  3835. }
  3836. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestoreEx(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
  3837. return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
  3838. }
  3839. /*** IVssBackupComponentsEx2 methods ***/
  3840. static FORCEINLINE HRESULT IVssBackupComponentsEx4_UnexposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID snapshotId) {
  3841. return This->lpVtbl->UnexposeSnapshot(This,snapshotId);
  3842. }
  3843. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAuthoritativeRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) {
  3844. return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth);
  3845. }
  3846. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRollForward(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) {
  3847. return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint);
  3848. }
  3849. static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreName(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) {
  3850. return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName);
  3851. }
  3852. static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSetEx(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) {
  3853. return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync);
  3854. }
  3855. static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreFastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) {
  3856. return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync);
  3857. }
  3858. static FORCEINLINE HRESULT IVssBackupComponentsEx4_FastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) {
  3859. return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync);
  3860. }
  3861. /*** IVssBackupComponentsEx3 methods ***/
  3862. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,HRESULT *phrApplication,BSTR *pbstrApplicationMessage) {
  3863. return This->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage);
  3864. }
  3865. static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddSnapshotToRecoverySet(IVssBackupComponentsEx4* This,VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) {
  3866. return This->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume);
  3867. }
  3868. static FORCEINLINE HRESULT IVssBackupComponentsEx4_RecoverSet(IVssBackupComponentsEx4* This,DWORD dwFlags,IVssAsync **ppAsync) {
  3869. return This->lpVtbl->RecoverSet(This,dwFlags,ppAsync);
  3870. }
  3871. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSessionId(IVssBackupComponentsEx4* This,VSS_ID *idSession) {
  3872. return This->lpVtbl->GetSessionId(This,idSession);
  3873. }
  3874. /*** IVssBackupComponentsEx4 methods ***/
  3875. static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(IVssBackupComponentsEx4* This,VSS_PWSZ pwszFilePath,VSS_PWSZ *ppwszRootPath,VSS_PWSZ *ppwszLogicalPrefix,WINBOOL bNormalizeFQDNforRootPath) {
  3876. return This->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath);
  3877. }
  3878. #endif
  3879. #endif
  3880. #endif
  3881. #endif /* __IVssBackupComponentsEx4_INTERFACE_DEFINED__ */
  3882. #define VSS_SW_BOOTABLE_STATE (1 << 0)
  3883. HRESULT STDAPICALLTYPE CreateVssBackupComponentsInternal(IVssBackupComponents **ppBackup);
  3884. HRESULT STDAPICALLTYPE CreateVssExamineWriterMetadataInternal(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata);
  3885. HRESULT APIENTRY IsVolumeSnapshottedInternal(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability);
  3886. void APIENTRY VssFreeSnapshotPropertiesInternal(VSS_SNAPSHOT_PROP *pProp);
  3887. HRESULT APIENTRY GetProviderMgmtInterfaceInternal(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf);
  3888. HRESULT APIENTRY ShouldBlockRevertInternal(LPCWSTR wszVolumeName, boolean *pbBlock);
  3889. static __inline HRESULT CreateVssBackupComponents(IVssBackupComponents **ppBackup) { return CreateVssBackupComponentsInternal(ppBackup); }
  3890. static __inline HRESULT CreateVssExamineWriterMetadata(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata) { return CreateVssExamineWriterMetadataInternal(bstrXML, ppMetadata); }
  3891. static __inline HRESULT IsVolumeSnapshotted(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability) { return IsVolumeSnapshottedInternal(pwszVolumeName, pbSnapshotsPresent, plSnapshotCapability); }
  3892. static __inline void VssFreeSnapshotProperties(VSS_SNAPSHOT_PROP *pProp) { return VssFreeSnapshotPropertiesInternal(pProp); }
  3893. static __inline HRESULT GetProviderMgmtInterface(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf) { return GetProviderMgmtInterfaceInternal(ProviderId, InterfaceId, ppItf); }
  3894. static __inline HRESULT ShouldBlockRevert(LPCWSTR wszVolumeName, boolean *pbBlock) { return ShouldBlockRevertInternal(wszVolumeName, pbBlock); }
  3895. #endif /* WINAPI_PARTITION_DESKTOP */
  3896. /* Begin additional prototypes for all interfaces */
  3897. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  3898. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  3899. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  3900. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  3901. /* End additional prototypes */
  3902. #ifdef __cplusplus
  3903. }
  3904. #endif
  3905. #endif /* __vsbackup_h__ */