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