master
1/*** Autogenerated by WIDL 10.4 from include/vswriter.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 __vswriter_h__
17#define __vswriter_h__
18
19/* Forward declarations */
20
21#ifndef __IVssWMFiledesc_FWD_DEFINED__
22#define __IVssWMFiledesc_FWD_DEFINED__
23typedef interface IVssWMFiledesc IVssWMFiledesc;
24#ifdef __cplusplus
25interface IVssWMFiledesc;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IVssWMDependency_FWD_DEFINED__
30#define __IVssWMDependency_FWD_DEFINED__
31typedef interface IVssWMDependency IVssWMDependency;
32#ifdef __cplusplus
33interface IVssWMDependency;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IVssComponent_FWD_DEFINED__
38#define __IVssComponent_FWD_DEFINED__
39typedef interface IVssComponent IVssComponent;
40#ifdef __cplusplus
41interface IVssComponent;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IVssWriterComponents_FWD_DEFINED__
46#define __IVssWriterComponents_FWD_DEFINED__
47typedef interface IVssWriterComponents IVssWriterComponents;
48#ifdef __cplusplus
49interface IVssWriterComponents;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IVssComponentEx_FWD_DEFINED__
54#define __IVssComponentEx_FWD_DEFINED__
55typedef interface IVssComponentEx IVssComponentEx;
56#ifdef __cplusplus
57interface IVssComponentEx;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IVssComponentEx2_FWD_DEFINED__
62#define __IVssComponentEx2_FWD_DEFINED__
63typedef interface IVssComponentEx2 IVssComponentEx2;
64#ifdef __cplusplus
65interface IVssComponentEx2;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IVssCreateWriterMetadata_FWD_DEFINED__
70#define __IVssCreateWriterMetadata_FWD_DEFINED__
71typedef interface IVssCreateWriterMetadata IVssCreateWriterMetadata;
72#ifdef __cplusplus
73interface IVssCreateWriterMetadata;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IVssCreateWriterMetadataEx_FWD_DEFINED__
78#define __IVssCreateWriterMetadataEx_FWD_DEFINED__
79typedef interface IVssCreateWriterMetadataEx IVssCreateWriterMetadataEx;
80#ifdef __cplusplus
81interface IVssCreateWriterMetadataEx;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IVssWriterImpl_FWD_DEFINED__
86#define __IVssWriterImpl_FWD_DEFINED__
87typedef interface IVssWriterImpl IVssWriterImpl;
88#ifdef __cplusplus
89interface IVssWriterImpl;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IVssCreateExpressWriterMetadata_FWD_DEFINED__
94#define __IVssCreateExpressWriterMetadata_FWD_DEFINED__
95typedef interface IVssCreateExpressWriterMetadata IVssCreateExpressWriterMetadata;
96#ifdef __cplusplus
97interface IVssCreateExpressWriterMetadata;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IVssExpressWriter_FWD_DEFINED__
102#define __IVssExpressWriter_FWD_DEFINED__
103typedef interface IVssExpressWriter IVssExpressWriter;
104#ifdef __cplusplus
105interface IVssExpressWriter;
106#endif /* __cplusplus */
107#endif
108
109/* Headers for imported files */
110
111#include <oaidl.h>
112#include <ocidl.h>
113#include <vss.h>
114
115#ifdef __cplusplus
116extern "C" {
117#endif
118
119#include <winapifamily.h>
120#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
121#include "vsserror.h"
122typedef enum VSS_USAGE_TYPE {
123 VSS_UT_UNDEFINED = 0,
124 VSS_UT_BOOTABLESYSTEMSTATE = 1,
125 VSS_UT_SYSTEMSERVICE = 2,
126 VSS_UT_USERDATA = 3,
127 VSS_UT_OTHER = 4
128} VSS_USAGE_TYPE;
129typedef enum VSS_SOURCE_TYPE {
130 VSS_ST_UNDEFINED = 0,
131 VSS_ST_TRANSACTEDDB = 1,
132 VSS_ST_NONTRANSACTEDDB = 2,
133 VSS_ST_OTHER = 3
134} VSS_SOURCE_TYPE;
135typedef enum VSS_RESTOREMETHOD_ENUM {
136 VSS_RME_UNDEFINED = 0,
137 VSS_RME_RESTORE_IF_NOT_THERE = 1,
138 VSS_RME_RESTORE_IF_CAN_REPLACE = 2,
139 VSS_RME_STOP_RESTORE_START = 3,
140 VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4,
141 VSS_RME_RESTORE_AT_REBOOT = 5,
142 VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6,
143 VSS_RME_CUSTOM = 7,
144 VSS_RME_RESTORE_STOP_START = 8
145} VSS_RESTOREMETHOD_ENUM;
146typedef enum VSS_WRITERRESTORE_ENUM {
147 VSS_WRE_UNDEFINED = 0,
148 VSS_WRE_NEVER = 1,
149 VSS_WRE_IF_REPLACE_FAILS = 2,
150 VSS_WRE_ALWAYS = 3
151} VSS_WRITERRESTORE_ENUM;
152typedef enum VSS_COMPONENT_TYPE {
153 VSS_CT_UNDEFINED = 0,
154 VSS_CT_DATABASE = 1,
155 VSS_CT_FILEGROUP = 2
156} VSS_COMPONENT_TYPE;
157typedef enum VSS_ALTERNATE_WRITER_STATE {
158 VSS_AWS_UNDEFINED = 0,
159 VSS_AWS_NO_ALTERNATE_WRITER = 1,
160 VSS_AWS_ALTERNATE_WRITER_EXISTS = 2,
161 VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3
162} VSS_ALTERNATE_WRITER_STATE;
163typedef enum VSS_SUBSCRIBE_MASK {
164 VSS_SM_POST_SNAPSHOT_FLAG = 0x1,
165 VSS_SM_BACKUP_EVENTS_FLAG = 0x2,
166 VSS_SM_RESTORE_EVENTS_FLAG = 0x4,
167 VSS_SM_IO_THROTTLING_FLAG = 0x8,
168 VSS_SM_ALL_FLAGS = 0xffffffff
169} VSS_SUBSCRIBE_MASK;
170typedef enum VSS_RESTORE_TARGET {
171 VSS_RT_UNDEFINED = 0,
172 VSS_RT_ORIGINAL = 1,
173 VSS_RT_ALTERNATE = 2,
174 VSS_RT_DIRECTED = 3,
175 VSS_RT_ORIGINAL_LOCATION = 4
176} VSS_RESTORE_TARGET;
177typedef enum VSS_FILE_RESTORE_STATUS {
178 VSS_RS_UNDEFINED = 0,
179 VSS_RS_NONE = 1,
180 VSS_RS_ALL = 2,
181 VSS_RS_FAILED = 3
182} VSS_FILE_RESTORE_STATUS;
183typedef enum VSS_COMPONENT_FLAGS {
184 VSS_CF_BACKUP_RECOVERY = 0x1,
185 VSS_CF_APP_ROLLBACK_RECOVERY = 0x2,
186 VSS_CF_NOT_SYSTEM_STATE = 0x4
187} VSS_COMPONENT_FLAGS;
188#ifndef __IVssExamineWriterMetadata_FWD_DEFINED__
189#define __IVssExamineWriterMetadata_FWD_DEFINED__
190typedef interface IVssExamineWriterMetadata IVssExamineWriterMetadata;
191#ifdef __cplusplus
192interface IVssExamineWriterMetadata;
193#endif /* __cplusplus */
194#endif
195
196/*****************************************************************************
197 * IVssWMFiledesc interface
198 */
199#ifndef __IVssWMFiledesc_INTERFACE_DEFINED__
200#define __IVssWMFiledesc_INTERFACE_DEFINED__
201
202DEFINE_GUID(IID_IVssWMFiledesc, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
203#if defined(__cplusplus) && !defined(CINTERFACE)
204MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
205IVssWMFiledesc : public IUnknown
206{
207 virtual HRESULT STDMETHODCALLTYPE GetPath(
208 BSTR *pbstrPath) = 0;
209
210 virtual HRESULT STDMETHODCALLTYPE GetFilespec(
211 BSTR *pbstrFilespec) = 0;
212
213 virtual HRESULT STDMETHODCALLTYPE GetRecursive(
214 boolean *pbRecursive) = 0;
215
216 virtual HRESULT STDMETHODCALLTYPE GetAlternateLocation(
217 BSTR *pbstrAlternateLocation) = 0;
218
219 virtual HRESULT STDMETHODCALLTYPE GetBackupTypeMask(
220 DWORD *pdwTypeMask) = 0;
221
222};
223#ifdef __CRT_UUID_DECL
224__CRT_UUID_DECL(IVssWMFiledesc, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
225#endif
226#else
227typedef struct IVssWMFiledescVtbl {
228 BEGIN_INTERFACE
229
230 /*** IUnknown methods ***/
231 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
232 IVssWMFiledesc *This,
233 REFIID riid,
234 void **ppvObject);
235
236 ULONG (STDMETHODCALLTYPE *AddRef)(
237 IVssWMFiledesc *This);
238
239 ULONG (STDMETHODCALLTYPE *Release)(
240 IVssWMFiledesc *This);
241
242 /*** IVssWMFiledesc methods ***/
243 HRESULT (STDMETHODCALLTYPE *GetPath)(
244 IVssWMFiledesc *This,
245 BSTR *pbstrPath);
246
247 HRESULT (STDMETHODCALLTYPE *GetFilespec)(
248 IVssWMFiledesc *This,
249 BSTR *pbstrFilespec);
250
251 HRESULT (STDMETHODCALLTYPE *GetRecursive)(
252 IVssWMFiledesc *This,
253 boolean *pbRecursive);
254
255 HRESULT (STDMETHODCALLTYPE *GetAlternateLocation)(
256 IVssWMFiledesc *This,
257 BSTR *pbstrAlternateLocation);
258
259 HRESULT (STDMETHODCALLTYPE *GetBackupTypeMask)(
260 IVssWMFiledesc *This,
261 DWORD *pdwTypeMask);
262
263 END_INTERFACE
264} IVssWMFiledescVtbl;
265
266interface IVssWMFiledesc {
267 CONST_VTBL IVssWMFiledescVtbl* lpVtbl;
268};
269
270#ifdef COBJMACROS
271#ifndef WIDL_C_INLINE_WRAPPERS
272/*** IUnknown methods ***/
273#define IVssWMFiledesc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
274#define IVssWMFiledesc_AddRef(This) (This)->lpVtbl->AddRef(This)
275#define IVssWMFiledesc_Release(This) (This)->lpVtbl->Release(This)
276/*** IVssWMFiledesc methods ***/
277#define IVssWMFiledesc_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
278#define IVssWMFiledesc_GetFilespec(This,pbstrFilespec) (This)->lpVtbl->GetFilespec(This,pbstrFilespec)
279#define IVssWMFiledesc_GetRecursive(This,pbRecursive) (This)->lpVtbl->GetRecursive(This,pbRecursive)
280#define IVssWMFiledesc_GetAlternateLocation(This,pbstrAlternateLocation) (This)->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation)
281#define IVssWMFiledesc_GetBackupTypeMask(This,pdwTypeMask) (This)->lpVtbl->GetBackupTypeMask(This,pdwTypeMask)
282#else
283/*** IUnknown methods ***/
284static inline HRESULT IVssWMFiledesc_QueryInterface(IVssWMFiledesc* This,REFIID riid,void **ppvObject) {
285 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
286}
287static inline ULONG IVssWMFiledesc_AddRef(IVssWMFiledesc* This) {
288 return This->lpVtbl->AddRef(This);
289}
290static inline ULONG IVssWMFiledesc_Release(IVssWMFiledesc* This) {
291 return This->lpVtbl->Release(This);
292}
293/*** IVssWMFiledesc methods ***/
294static inline HRESULT IVssWMFiledesc_GetPath(IVssWMFiledesc* This,BSTR *pbstrPath) {
295 return This->lpVtbl->GetPath(This,pbstrPath);
296}
297static inline HRESULT IVssWMFiledesc_GetFilespec(IVssWMFiledesc* This,BSTR *pbstrFilespec) {
298 return This->lpVtbl->GetFilespec(This,pbstrFilespec);
299}
300static inline HRESULT IVssWMFiledesc_GetRecursive(IVssWMFiledesc* This,boolean *pbRecursive) {
301 return This->lpVtbl->GetRecursive(This,pbRecursive);
302}
303static inline HRESULT IVssWMFiledesc_GetAlternateLocation(IVssWMFiledesc* This,BSTR *pbstrAlternateLocation) {
304 return This->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation);
305}
306static inline HRESULT IVssWMFiledesc_GetBackupTypeMask(IVssWMFiledesc* This,DWORD *pdwTypeMask) {
307 return This->lpVtbl->GetBackupTypeMask(This,pdwTypeMask);
308}
309#endif
310#endif
311
312#endif
313
314
315#endif /* __IVssWMFiledesc_INTERFACE_DEFINED__ */
316
317/*****************************************************************************
318 * IVssWMDependency interface
319 */
320#ifndef __IVssWMDependency_INTERFACE_DEFINED__
321#define __IVssWMDependency_INTERFACE_DEFINED__
322
323DEFINE_GUID(IID_IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
324#if defined(__cplusplus) && !defined(CINTERFACE)
325MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
326IVssWMDependency : public IUnknown
327{
328 virtual HRESULT STDMETHODCALLTYPE GetWriterId(
329 VSS_ID *pWriterId) = 0;
330
331 virtual HRESULT STDMETHODCALLTYPE GetLogicalPath(
332 BSTR *pbstrLogicalPath) = 0;
333
334 virtual HRESULT STDMETHODCALLTYPE GetComponentName(
335 BSTR *pbstrComponentName) = 0;
336
337};
338#ifdef __CRT_UUID_DECL
339__CRT_UUID_DECL(IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
340#endif
341#else
342typedef struct IVssWMDependencyVtbl {
343 BEGIN_INTERFACE
344
345 /*** IUnknown methods ***/
346 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
347 IVssWMDependency *This,
348 REFIID riid,
349 void **ppvObject);
350
351 ULONG (STDMETHODCALLTYPE *AddRef)(
352 IVssWMDependency *This);
353
354 ULONG (STDMETHODCALLTYPE *Release)(
355 IVssWMDependency *This);
356
357 /*** IVssWMDependency methods ***/
358 HRESULT (STDMETHODCALLTYPE *GetWriterId)(
359 IVssWMDependency *This,
360 VSS_ID *pWriterId);
361
362 HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
363 IVssWMDependency *This,
364 BSTR *pbstrLogicalPath);
365
366 HRESULT (STDMETHODCALLTYPE *GetComponentName)(
367 IVssWMDependency *This,
368 BSTR *pbstrComponentName);
369
370 END_INTERFACE
371} IVssWMDependencyVtbl;
372
373interface IVssWMDependency {
374 CONST_VTBL IVssWMDependencyVtbl* lpVtbl;
375};
376
377#ifdef COBJMACROS
378#ifndef WIDL_C_INLINE_WRAPPERS
379/*** IUnknown methods ***/
380#define IVssWMDependency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
381#define IVssWMDependency_AddRef(This) (This)->lpVtbl->AddRef(This)
382#define IVssWMDependency_Release(This) (This)->lpVtbl->Release(This)
383/*** IVssWMDependency methods ***/
384#define IVssWMDependency_GetWriterId(This,pWriterId) (This)->lpVtbl->GetWriterId(This,pWriterId)
385#define IVssWMDependency_GetLogicalPath(This,pbstrLogicalPath) (This)->lpVtbl->GetLogicalPath(This,pbstrLogicalPath)
386#define IVssWMDependency_GetComponentName(This,pbstrComponentName) (This)->lpVtbl->GetComponentName(This,pbstrComponentName)
387#else
388/*** IUnknown methods ***/
389static inline HRESULT IVssWMDependency_QueryInterface(IVssWMDependency* This,REFIID riid,void **ppvObject) {
390 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
391}
392static inline ULONG IVssWMDependency_AddRef(IVssWMDependency* This) {
393 return This->lpVtbl->AddRef(This);
394}
395static inline ULONG IVssWMDependency_Release(IVssWMDependency* This) {
396 return This->lpVtbl->Release(This);
397}
398/*** IVssWMDependency methods ***/
399static inline HRESULT IVssWMDependency_GetWriterId(IVssWMDependency* This,VSS_ID *pWriterId) {
400 return This->lpVtbl->GetWriterId(This,pWriterId);
401}
402static inline HRESULT IVssWMDependency_GetLogicalPath(IVssWMDependency* This,BSTR *pbstrLogicalPath) {
403 return This->lpVtbl->GetLogicalPath(This,pbstrLogicalPath);
404}
405static inline HRESULT IVssWMDependency_GetComponentName(IVssWMDependency* This,BSTR *pbstrComponentName) {
406 return This->lpVtbl->GetComponentName(This,pbstrComponentName);
407}
408#endif
409#endif
410
411#endif
412
413
414#endif /* __IVssWMDependency_INTERFACE_DEFINED__ */
415
416/*****************************************************************************
417 * IVssComponent interface
418 */
419#ifndef __IVssComponent_INTERFACE_DEFINED__
420#define __IVssComponent_INTERFACE_DEFINED__
421
422DEFINE_GUID(IID_IVssComponent, 0xd2c72c96, 0xc121, 0x4518, 0xb6,0x27, 0xe5,0xa9,0x3d,0x01,0x0e,0xad);
423#if defined(__cplusplus) && !defined(CINTERFACE)
424MIDL_INTERFACE("d2c72c96-c121-4518-b627-e5a93d010ead")
425IVssComponent : public IUnknown
426{
427 virtual HRESULT STDMETHODCALLTYPE GetLogicalPath(
428 BSTR *pbstrPath) = 0;
429
430 virtual HRESULT STDMETHODCALLTYPE GetComponentType(
431 VSS_COMPONENT_TYPE *pct) = 0;
432
433 virtual HRESULT STDMETHODCALLTYPE GetComponentName(
434 BSTR *pbstrName) = 0;
435
436 virtual HRESULT STDMETHODCALLTYPE GetBackupSucceeded(
437 boolean *pbSucceeded) = 0;
438
439 virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMappingCount(
440 UINT *pcMappings) = 0;
441
442 virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMapping(
443 UINT iMapping,
444 IVssWMFiledesc **ppFiledesc) = 0;
445
446 virtual HRESULT STDMETHODCALLTYPE SetBackupMetadata(
447 LPCWSTR wszData) = 0;
448
449 virtual HRESULT STDMETHODCALLTYPE GetBackupMetadata(
450 BSTR *pbstrData) = 0;
451
452 virtual HRESULT STDMETHODCALLTYPE AddPartialFile(
453 LPCWSTR wszPath,
454 LPCWSTR wszFilename,
455 LPCWSTR wszRanges,
456 LPCWSTR wszMetadata) = 0;
457
458 virtual HRESULT STDMETHODCALLTYPE GetPartialFileCount(
459 UINT *pcPartialFiles) = 0;
460
461 virtual HRESULT STDMETHODCALLTYPE GetPartialFile(
462 UINT iPartialFile,
463 BSTR *pbstrPath,
464 BSTR *pbstrFilename,
465 BSTR *pbstrRange,
466 BSTR *pbstrMetadata) = 0;
467
468 virtual HRESULT STDMETHODCALLTYPE IsSelectedForRestore(
469 boolean *pbSelectedForRestore) = 0;
470
471 virtual HRESULT STDMETHODCALLTYPE GetAdditionalRestores(
472 boolean *pbAdditionalRestores) = 0;
473
474 virtual HRESULT STDMETHODCALLTYPE GetNewTargetCount(
475 UINT *pcNewTarget) = 0;
476
477 virtual HRESULT STDMETHODCALLTYPE GetNewTarget(
478 UINT iNewTarget,
479 IVssWMFiledesc **ppFiledesc) = 0;
480
481 virtual HRESULT STDMETHODCALLTYPE AddDirectedTarget(
482 LPCWSTR wszSourcePath,
483 LPCWSTR wszSourceFilename,
484 LPCWSTR wszSourceRangeList,
485 LPCWSTR wszDestinationPath,
486 LPCWSTR wszDestinationFilename,
487 LPCWSTR wszDestinationRangeList) = 0;
488
489 virtual HRESULT STDMETHODCALLTYPE GetDirectedTargetCount(
490 UINT *pcDirectedTarget) = 0;
491
492 virtual HRESULT STDMETHODCALLTYPE GetDirectedTarget(
493 UINT iDirectedTarget,
494 BSTR *pbstrSourcePath,
495 BSTR *pbstrSourceFileName,
496 BSTR *pbstrSourceRangeList,
497 BSTR *pbstrDestinationPath,
498 BSTR *pbstrDestinationFilename,
499 BSTR *pbstrDestinationRangeList) = 0;
500
501 virtual HRESULT STDMETHODCALLTYPE SetRestoreMetadata(
502 LPCWSTR wszRestoreMetadata) = 0;
503
504 virtual HRESULT STDMETHODCALLTYPE GetRestoreMetadata(
505 BSTR *pbstrRestoreMetadata) = 0;
506
507 virtual HRESULT STDMETHODCALLTYPE SetRestoreTarget(
508 VSS_RESTORE_TARGET target) = 0;
509
510 virtual HRESULT STDMETHODCALLTYPE GetRestoreTarget(
511 VSS_RESTORE_TARGET *pTarget) = 0;
512
513 virtual HRESULT STDMETHODCALLTYPE SetPreRestoreFailureMsg(
514 LPCWSTR wszPreRestoreFailureMsg) = 0;
515
516 virtual HRESULT STDMETHODCALLTYPE GetPreRestoreFailureMsg(
517 BSTR *pbstrPreRestoreFailureMsg) = 0;
518
519 virtual HRESULT STDMETHODCALLTYPE SetPostRestoreFailureMsg(
520 LPCWSTR wszPostRestoreFailureMsg) = 0;
521
522 virtual HRESULT STDMETHODCALLTYPE GetPostRestoreFailureMsg(
523 BSTR *pbstrPostRestoreFailureMsg) = 0;
524
525 virtual HRESULT STDMETHODCALLTYPE SetBackupStamp(
526 LPCWSTR wszBackupStamp) = 0;
527
528 virtual HRESULT STDMETHODCALLTYPE GetBackupStamp(
529 BSTR *pbstrBackupStamp) = 0;
530
531 virtual HRESULT STDMETHODCALLTYPE GetPreviousBackupStamp(
532 BSTR *pbstrBackupStamp) = 0;
533
534 virtual HRESULT STDMETHODCALLTYPE GetBackupOptions(
535 BSTR *pbstrBackupOptions) = 0;
536
537 virtual HRESULT STDMETHODCALLTYPE GetRestoreOptions(
538 BSTR *pbstrRestoreOptions) = 0;
539
540 virtual HRESULT STDMETHODCALLTYPE GetRestoreSubcomponentCount(
541 UINT *pcRestoreSubcomponent) = 0;
542
543 virtual HRESULT STDMETHODCALLTYPE GetRestoreSubcomponent(
544 UINT iComponent,
545 BSTR *pbstrLogicalPath,
546 BSTR *pbstrComponentName,
547 boolean *pbRepair) = 0;
548
549 virtual HRESULT STDMETHODCALLTYPE GetFileRestoreStatus(
550 VSS_FILE_RESTORE_STATUS *pStatus) = 0;
551
552 virtual HRESULT STDMETHODCALLTYPE AddDifferencedFilesByLastModifyTime(
553 LPCWSTR wszPath,
554 LPCWSTR wszFilespec,
555 WINBOOL bRecursive,
556 FILETIME ftLastModifyTime) = 0;
557
558 virtual HRESULT STDMETHODCALLTYPE AddDifferencedFilesByLastModifyLSN(
559 LPCWSTR wszPath,
560 LPCWSTR wszFilespec,
561 WINBOOL bRecursive,
562 BSTR bstrLsnString) = 0;
563
564 virtual HRESULT STDMETHODCALLTYPE GetDifferencedFilesCount(
565 UINT *pcDifferencedFiles) = 0;
566
567 virtual HRESULT STDMETHODCALLTYPE GetDifferencedFile(
568 UINT iDifferencedFile,
569 BSTR *pbstrPath,
570 BSTR *pbstrFilespec,
571 WINBOOL *pbRecursive,
572 BSTR *pbstrLsnString,
573 FILETIME *pftLastModifyTime) = 0;
574
575};
576#ifdef __CRT_UUID_DECL
577__CRT_UUID_DECL(IVssComponent, 0xd2c72c96, 0xc121, 0x4518, 0xb6,0x27, 0xe5,0xa9,0x3d,0x01,0x0e,0xad)
578#endif
579#else
580typedef struct IVssComponentVtbl {
581 BEGIN_INTERFACE
582
583 /*** IUnknown methods ***/
584 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
585 IVssComponent *This,
586 REFIID riid,
587 void **ppvObject);
588
589 ULONG (STDMETHODCALLTYPE *AddRef)(
590 IVssComponent *This);
591
592 ULONG (STDMETHODCALLTYPE *Release)(
593 IVssComponent *This);
594
595 /*** IVssComponent methods ***/
596 HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
597 IVssComponent *This,
598 BSTR *pbstrPath);
599
600 HRESULT (STDMETHODCALLTYPE *GetComponentType)(
601 IVssComponent *This,
602 VSS_COMPONENT_TYPE *pct);
603
604 HRESULT (STDMETHODCALLTYPE *GetComponentName)(
605 IVssComponent *This,
606 BSTR *pbstrName);
607
608 HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)(
609 IVssComponent *This,
610 boolean *pbSucceeded);
611
612 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)(
613 IVssComponent *This,
614 UINT *pcMappings);
615
616 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
617 IVssComponent *This,
618 UINT iMapping,
619 IVssWMFiledesc **ppFiledesc);
620
621 HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)(
622 IVssComponent *This,
623 LPCWSTR wszData);
624
625 HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)(
626 IVssComponent *This,
627 BSTR *pbstrData);
628
629 HRESULT (STDMETHODCALLTYPE *AddPartialFile)(
630 IVssComponent *This,
631 LPCWSTR wszPath,
632 LPCWSTR wszFilename,
633 LPCWSTR wszRanges,
634 LPCWSTR wszMetadata);
635
636 HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)(
637 IVssComponent *This,
638 UINT *pcPartialFiles);
639
640 HRESULT (STDMETHODCALLTYPE *GetPartialFile)(
641 IVssComponent *This,
642 UINT iPartialFile,
643 BSTR *pbstrPath,
644 BSTR *pbstrFilename,
645 BSTR *pbstrRange,
646 BSTR *pbstrMetadata);
647
648 HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)(
649 IVssComponent *This,
650 boolean *pbSelectedForRestore);
651
652 HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)(
653 IVssComponent *This,
654 boolean *pbAdditionalRestores);
655
656 HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)(
657 IVssComponent *This,
658 UINT *pcNewTarget);
659
660 HRESULT (STDMETHODCALLTYPE *GetNewTarget)(
661 IVssComponent *This,
662 UINT iNewTarget,
663 IVssWMFiledesc **ppFiledesc);
664
665 HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)(
666 IVssComponent *This,
667 LPCWSTR wszSourcePath,
668 LPCWSTR wszSourceFilename,
669 LPCWSTR wszSourceRangeList,
670 LPCWSTR wszDestinationPath,
671 LPCWSTR wszDestinationFilename,
672 LPCWSTR wszDestinationRangeList);
673
674 HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)(
675 IVssComponent *This,
676 UINT *pcDirectedTarget);
677
678 HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)(
679 IVssComponent *This,
680 UINT iDirectedTarget,
681 BSTR *pbstrSourcePath,
682 BSTR *pbstrSourceFileName,
683 BSTR *pbstrSourceRangeList,
684 BSTR *pbstrDestinationPath,
685 BSTR *pbstrDestinationFilename,
686 BSTR *pbstrDestinationRangeList);
687
688 HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)(
689 IVssComponent *This,
690 LPCWSTR wszRestoreMetadata);
691
692 HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)(
693 IVssComponent *This,
694 BSTR *pbstrRestoreMetadata);
695
696 HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)(
697 IVssComponent *This,
698 VSS_RESTORE_TARGET target);
699
700 HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)(
701 IVssComponent *This,
702 VSS_RESTORE_TARGET *pTarget);
703
704 HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)(
705 IVssComponent *This,
706 LPCWSTR wszPreRestoreFailureMsg);
707
708 HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)(
709 IVssComponent *This,
710 BSTR *pbstrPreRestoreFailureMsg);
711
712 HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)(
713 IVssComponent *This,
714 LPCWSTR wszPostRestoreFailureMsg);
715
716 HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)(
717 IVssComponent *This,
718 BSTR *pbstrPostRestoreFailureMsg);
719
720 HRESULT (STDMETHODCALLTYPE *SetBackupStamp)(
721 IVssComponent *This,
722 LPCWSTR wszBackupStamp);
723
724 HRESULT (STDMETHODCALLTYPE *GetBackupStamp)(
725 IVssComponent *This,
726 BSTR *pbstrBackupStamp);
727
728 HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)(
729 IVssComponent *This,
730 BSTR *pbstrBackupStamp);
731
732 HRESULT (STDMETHODCALLTYPE *GetBackupOptions)(
733 IVssComponent *This,
734 BSTR *pbstrBackupOptions);
735
736 HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)(
737 IVssComponent *This,
738 BSTR *pbstrRestoreOptions);
739
740 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)(
741 IVssComponent *This,
742 UINT *pcRestoreSubcomponent);
743
744 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)(
745 IVssComponent *This,
746 UINT iComponent,
747 BSTR *pbstrLogicalPath,
748 BSTR *pbstrComponentName,
749 boolean *pbRepair);
750
751 HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)(
752 IVssComponent *This,
753 VSS_FILE_RESTORE_STATUS *pStatus);
754
755 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)(
756 IVssComponent *This,
757 LPCWSTR wszPath,
758 LPCWSTR wszFilespec,
759 WINBOOL bRecursive,
760 FILETIME ftLastModifyTime);
761
762 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)(
763 IVssComponent *This,
764 LPCWSTR wszPath,
765 LPCWSTR wszFilespec,
766 WINBOOL bRecursive,
767 BSTR bstrLsnString);
768
769 HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)(
770 IVssComponent *This,
771 UINT *pcDifferencedFiles);
772
773 HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)(
774 IVssComponent *This,
775 UINT iDifferencedFile,
776 BSTR *pbstrPath,
777 BSTR *pbstrFilespec,
778 WINBOOL *pbRecursive,
779 BSTR *pbstrLsnString,
780 FILETIME *pftLastModifyTime);
781
782 END_INTERFACE
783} IVssComponentVtbl;
784
785interface IVssComponent {
786 CONST_VTBL IVssComponentVtbl* lpVtbl;
787};
788
789#ifdef COBJMACROS
790#ifndef WIDL_C_INLINE_WRAPPERS
791/*** IUnknown methods ***/
792#define IVssComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
793#define IVssComponent_AddRef(This) (This)->lpVtbl->AddRef(This)
794#define IVssComponent_Release(This) (This)->lpVtbl->Release(This)
795/*** IVssComponent methods ***/
796#define IVssComponent_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath)
797#define IVssComponent_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct)
798#define IVssComponent_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName)
799#define IVssComponent_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded)
800#define IVssComponent_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings)
801#define IVssComponent_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
802#define IVssComponent_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData)
803#define IVssComponent_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData)
804#define IVssComponent_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata)
805#define IVssComponent_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles)
806#define IVssComponent_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata)
807#define IVssComponent_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore)
808#define IVssComponent_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores)
809#define IVssComponent_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget)
810#define IVssComponent_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc)
811#define IVssComponent_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList)
812#define IVssComponent_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget)
813#define IVssComponent_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList)
814#define IVssComponent_SetRestoreMetadata(This,wszRestoreMetadata) (This)->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata)
815#define IVssComponent_GetRestoreMetadata(This,pbstrRestoreMetadata) (This)->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata)
816#define IVssComponent_SetRestoreTarget(This,target) (This)->lpVtbl->SetRestoreTarget(This,target)
817#define IVssComponent_GetRestoreTarget(This,pTarget) (This)->lpVtbl->GetRestoreTarget(This,pTarget)
818#define IVssComponent_SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg) (This)->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg)
819#define IVssComponent_GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg) (This)->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg)
820#define IVssComponent_SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg) (This)->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg)
821#define IVssComponent_GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg) (This)->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg)
822#define IVssComponent_SetBackupStamp(This,wszBackupStamp) (This)->lpVtbl->SetBackupStamp(This,wszBackupStamp)
823#define IVssComponent_GetBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetBackupStamp(This,pbstrBackupStamp)
824#define IVssComponent_GetPreviousBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp)
825#define IVssComponent_GetBackupOptions(This,pbstrBackupOptions) (This)->lpVtbl->GetBackupOptions(This,pbstrBackupOptions)
826#define IVssComponent_GetRestoreOptions(This,pbstrRestoreOptions) (This)->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions)
827#define IVssComponent_GetRestoreSubcomponentCount(This,pcRestoreSubcomponent) (This)->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent)
828#define IVssComponent_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
829#define IVssComponent_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
830#define IVssComponent_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
831#define IVssComponent_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
832#define IVssComponent_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
833#define IVssComponent_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
834#else
835/*** IUnknown methods ***/
836static inline HRESULT IVssComponent_QueryInterface(IVssComponent* This,REFIID riid,void **ppvObject) {
837 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
838}
839static inline ULONG IVssComponent_AddRef(IVssComponent* This) {
840 return This->lpVtbl->AddRef(This);
841}
842static inline ULONG IVssComponent_Release(IVssComponent* This) {
843 return This->lpVtbl->Release(This);
844}
845/*** IVssComponent methods ***/
846static inline HRESULT IVssComponent_GetLogicalPath(IVssComponent* This,BSTR *pbstrPath) {
847 return This->lpVtbl->GetLogicalPath(This,pbstrPath);
848}
849static inline HRESULT IVssComponent_GetComponentType(IVssComponent* This,VSS_COMPONENT_TYPE *pct) {
850 return This->lpVtbl->GetComponentType(This,pct);
851}
852static inline HRESULT IVssComponent_GetComponentName(IVssComponent* This,BSTR *pbstrName) {
853 return This->lpVtbl->GetComponentName(This,pbstrName);
854}
855static inline HRESULT IVssComponent_GetBackupSucceeded(IVssComponent* This,boolean *pbSucceeded) {
856 return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
857}
858static inline HRESULT IVssComponent_GetAlternateLocationMappingCount(IVssComponent* This,UINT *pcMappings) {
859 return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
860}
861static inline HRESULT IVssComponent_GetAlternateLocationMapping(IVssComponent* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
862 return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
863}
864static inline HRESULT IVssComponent_SetBackupMetadata(IVssComponent* This,LPCWSTR wszData) {
865 return This->lpVtbl->SetBackupMetadata(This,wszData);
866}
867static inline HRESULT IVssComponent_GetBackupMetadata(IVssComponent* This,BSTR *pbstrData) {
868 return This->lpVtbl->GetBackupMetadata(This,pbstrData);
869}
870static inline HRESULT IVssComponent_AddPartialFile(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
871 return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
872}
873static inline HRESULT IVssComponent_GetPartialFileCount(IVssComponent* This,UINT *pcPartialFiles) {
874 return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
875}
876static inline HRESULT IVssComponent_GetPartialFile(IVssComponent* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
877 return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
878}
879static inline HRESULT IVssComponent_IsSelectedForRestore(IVssComponent* This,boolean *pbSelectedForRestore) {
880 return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
881}
882static inline HRESULT IVssComponent_GetAdditionalRestores(IVssComponent* This,boolean *pbAdditionalRestores) {
883 return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
884}
885static inline HRESULT IVssComponent_GetNewTargetCount(IVssComponent* This,UINT *pcNewTarget) {
886 return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
887}
888static inline HRESULT IVssComponent_GetNewTarget(IVssComponent* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
889 return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
890}
891static inline HRESULT IVssComponent_AddDirectedTarget(IVssComponent* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
892 return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
893}
894static inline HRESULT IVssComponent_GetDirectedTargetCount(IVssComponent* This,UINT *pcDirectedTarget) {
895 return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
896}
897static inline HRESULT IVssComponent_GetDirectedTarget(IVssComponent* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
898 return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
899}
900static inline HRESULT IVssComponent_SetRestoreMetadata(IVssComponent* This,LPCWSTR wszRestoreMetadata) {
901 return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
902}
903static inline HRESULT IVssComponent_GetRestoreMetadata(IVssComponent* This,BSTR *pbstrRestoreMetadata) {
904 return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
905}
906static inline HRESULT IVssComponent_SetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET target) {
907 return This->lpVtbl->SetRestoreTarget(This,target);
908}
909static inline HRESULT IVssComponent_GetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET *pTarget) {
910 return This->lpVtbl->GetRestoreTarget(This,pTarget);
911}
912static inline HRESULT IVssComponent_SetPreRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPreRestoreFailureMsg) {
913 return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
914}
915static inline HRESULT IVssComponent_GetPreRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPreRestoreFailureMsg) {
916 return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
917}
918static inline HRESULT IVssComponent_SetPostRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPostRestoreFailureMsg) {
919 return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
920}
921static inline HRESULT IVssComponent_GetPostRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPostRestoreFailureMsg) {
922 return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
923}
924static inline HRESULT IVssComponent_SetBackupStamp(IVssComponent* This,LPCWSTR wszBackupStamp) {
925 return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
926}
927static inline HRESULT IVssComponent_GetBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) {
928 return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
929}
930static inline HRESULT IVssComponent_GetPreviousBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) {
931 return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
932}
933static inline HRESULT IVssComponent_GetBackupOptions(IVssComponent* This,BSTR *pbstrBackupOptions) {
934 return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
935}
936static inline HRESULT IVssComponent_GetRestoreOptions(IVssComponent* This,BSTR *pbstrRestoreOptions) {
937 return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
938}
939static inline HRESULT IVssComponent_GetRestoreSubcomponentCount(IVssComponent* This,UINT *pcRestoreSubcomponent) {
940 return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
941}
942static inline HRESULT IVssComponent_GetRestoreSubcomponent(IVssComponent* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
943 return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
944}
945static inline HRESULT IVssComponent_GetFileRestoreStatus(IVssComponent* This,VSS_FILE_RESTORE_STATUS *pStatus) {
946 return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
947}
948static inline HRESULT IVssComponent_AddDifferencedFilesByLastModifyTime(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
949 return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
950}
951static inline HRESULT IVssComponent_AddDifferencedFilesByLastModifyLSN(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
952 return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
953}
954static inline HRESULT IVssComponent_GetDifferencedFilesCount(IVssComponent* This,UINT *pcDifferencedFiles) {
955 return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
956}
957static inline HRESULT IVssComponent_GetDifferencedFile(IVssComponent* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
958 return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
959}
960#endif
961#endif
962
963#endif
964
965
966#endif /* __IVssComponent_INTERFACE_DEFINED__ */
967
968/*****************************************************************************
969 * IVssWriterComponents interface
970 */
971#ifndef __IVssWriterComponents_INTERFACE_DEFINED__
972#define __IVssWriterComponents_INTERFACE_DEFINED__
973
974DEFINE_GUID(IID_IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
975#if defined(__cplusplus) && !defined(CINTERFACE)
976MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
977IVssWriterComponents
978{
979
980 BEGIN_INTERFACE
981
982 virtual HRESULT STDMETHODCALLTYPE GetComponentCount(
983 UINT *pcComponents) = 0;
984
985 virtual HRESULT STDMETHODCALLTYPE GetWriterInfo(
986 VSS_ID *pidInstance,
987 VSS_ID *pidWriter) = 0;
988
989 virtual HRESULT STDMETHODCALLTYPE GetComponent(
990 UINT iComponent,
991 IVssComponent **ppComponent) = 0;
992
993 END_INTERFACE
994
995};
996#ifdef __CRT_UUID_DECL
997__CRT_UUID_DECL(IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
998#endif
999#else
1000typedef struct IVssWriterComponentsVtbl {
1001 BEGIN_INTERFACE
1002
1003 /*** IVssWriterComponents methods ***/
1004 HRESULT (STDMETHODCALLTYPE *GetComponentCount)(
1005 IVssWriterComponents *This,
1006 UINT *pcComponents);
1007
1008 HRESULT (STDMETHODCALLTYPE *GetWriterInfo)(
1009 IVssWriterComponents *This,
1010 VSS_ID *pidInstance,
1011 VSS_ID *pidWriter);
1012
1013 HRESULT (STDMETHODCALLTYPE *GetComponent)(
1014 IVssWriterComponents *This,
1015 UINT iComponent,
1016 IVssComponent **ppComponent);
1017
1018 END_INTERFACE
1019} IVssWriterComponentsVtbl;
1020
1021interface IVssWriterComponents {
1022 CONST_VTBL IVssWriterComponentsVtbl* lpVtbl;
1023};
1024
1025#ifdef COBJMACROS
1026#ifndef WIDL_C_INLINE_WRAPPERS
1027/*** IVssWriterComponents methods ***/
1028#define IVssWriterComponents_GetComponentCount(This,pcComponents) (This)->lpVtbl->GetComponentCount(This,pcComponents)
1029#define IVssWriterComponents_GetWriterInfo(This,pidInstance,pidWriter) (This)->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter)
1030#define IVssWriterComponents_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent)
1031#else
1032/*** IVssWriterComponents methods ***/
1033static inline HRESULT IVssWriterComponents_GetComponentCount(IVssWriterComponents* This,UINT *pcComponents) {
1034 return This->lpVtbl->GetComponentCount(This,pcComponents);
1035}
1036static inline HRESULT IVssWriterComponents_GetWriterInfo(IVssWriterComponents* This,VSS_ID *pidInstance,VSS_ID *pidWriter) {
1037 return This->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter);
1038}
1039static inline HRESULT IVssWriterComponents_GetComponent(IVssWriterComponents* This,UINT iComponent,IVssComponent **ppComponent) {
1040 return This->lpVtbl->GetComponent(This,iComponent,ppComponent);
1041}
1042#endif
1043#endif
1044
1045#endif
1046
1047
1048#endif /* __IVssWriterComponents_INTERFACE_DEFINED__ */
1049
1050/*****************************************************************************
1051 * IVssComponentEx interface
1052 */
1053#ifndef __IVssComponentEx_INTERFACE_DEFINED__
1054#define __IVssComponentEx_INTERFACE_DEFINED__
1055
1056DEFINE_GUID(IID_IVssComponentEx, 0x156c8b5e, 0xf131, 0x4bd7, 0x9c,0x97, 0xd1,0x92,0x3b,0xe7,0xe1,0xfa);
1057#if defined(__cplusplus) && !defined(CINTERFACE)
1058MIDL_INTERFACE("156c8b5e-f131-4bd7-9c97-d1923be7e1fa")
1059IVssComponentEx : public IVssComponent
1060{
1061 virtual HRESULT STDMETHODCALLTYPE SetPrepareForBackupFailureMsg(
1062 LPCWSTR wszFailureMsg) = 0;
1063
1064 virtual HRESULT STDMETHODCALLTYPE SetPostSnapshotFailureMsg(
1065 LPCWSTR wszFailureMsg) = 0;
1066
1067 virtual HRESULT STDMETHODCALLTYPE GetPrepareForBackupFailureMsg(
1068 BSTR *pbstrFailureMsg) = 0;
1069
1070 virtual HRESULT STDMETHODCALLTYPE GetPostSnapshotFailureMsg(
1071 BSTR *pbstrFailureMsg) = 0;
1072
1073 virtual HRESULT STDMETHODCALLTYPE GetAuthoritativeRestore(
1074 boolean *pbAuth) = 0;
1075
1076 virtual HRESULT STDMETHODCALLTYPE GetRollForward(
1077 VSS_ROLLFORWARD_TYPE *pRollType,
1078 BSTR *pbstrPoint) = 0;
1079
1080 virtual HRESULT STDMETHODCALLTYPE GetRestoreName(
1081 BSTR *pbstrName) = 0;
1082
1083};
1084#ifdef __CRT_UUID_DECL
1085__CRT_UUID_DECL(IVssComponentEx, 0x156c8b5e, 0xf131, 0x4bd7, 0x9c,0x97, 0xd1,0x92,0x3b,0xe7,0xe1,0xfa)
1086#endif
1087#else
1088typedef struct IVssComponentExVtbl {
1089 BEGIN_INTERFACE
1090
1091 /*** IUnknown methods ***/
1092 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1093 IVssComponentEx *This,
1094 REFIID riid,
1095 void **ppvObject);
1096
1097 ULONG (STDMETHODCALLTYPE *AddRef)(
1098 IVssComponentEx *This);
1099
1100 ULONG (STDMETHODCALLTYPE *Release)(
1101 IVssComponentEx *This);
1102
1103 /*** IVssComponent methods ***/
1104 HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
1105 IVssComponentEx *This,
1106 BSTR *pbstrPath);
1107
1108 HRESULT (STDMETHODCALLTYPE *GetComponentType)(
1109 IVssComponentEx *This,
1110 VSS_COMPONENT_TYPE *pct);
1111
1112 HRESULT (STDMETHODCALLTYPE *GetComponentName)(
1113 IVssComponentEx *This,
1114 BSTR *pbstrName);
1115
1116 HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)(
1117 IVssComponentEx *This,
1118 boolean *pbSucceeded);
1119
1120 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)(
1121 IVssComponentEx *This,
1122 UINT *pcMappings);
1123
1124 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
1125 IVssComponentEx *This,
1126 UINT iMapping,
1127 IVssWMFiledesc **ppFiledesc);
1128
1129 HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)(
1130 IVssComponentEx *This,
1131 LPCWSTR wszData);
1132
1133 HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)(
1134 IVssComponentEx *This,
1135 BSTR *pbstrData);
1136
1137 HRESULT (STDMETHODCALLTYPE *AddPartialFile)(
1138 IVssComponentEx *This,
1139 LPCWSTR wszPath,
1140 LPCWSTR wszFilename,
1141 LPCWSTR wszRanges,
1142 LPCWSTR wszMetadata);
1143
1144 HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)(
1145 IVssComponentEx *This,
1146 UINT *pcPartialFiles);
1147
1148 HRESULT (STDMETHODCALLTYPE *GetPartialFile)(
1149 IVssComponentEx *This,
1150 UINT iPartialFile,
1151 BSTR *pbstrPath,
1152 BSTR *pbstrFilename,
1153 BSTR *pbstrRange,
1154 BSTR *pbstrMetadata);
1155
1156 HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)(
1157 IVssComponentEx *This,
1158 boolean *pbSelectedForRestore);
1159
1160 HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)(
1161 IVssComponentEx *This,
1162 boolean *pbAdditionalRestores);
1163
1164 HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)(
1165 IVssComponentEx *This,
1166 UINT *pcNewTarget);
1167
1168 HRESULT (STDMETHODCALLTYPE *GetNewTarget)(
1169 IVssComponentEx *This,
1170 UINT iNewTarget,
1171 IVssWMFiledesc **ppFiledesc);
1172
1173 HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)(
1174 IVssComponentEx *This,
1175 LPCWSTR wszSourcePath,
1176 LPCWSTR wszSourceFilename,
1177 LPCWSTR wszSourceRangeList,
1178 LPCWSTR wszDestinationPath,
1179 LPCWSTR wszDestinationFilename,
1180 LPCWSTR wszDestinationRangeList);
1181
1182 HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)(
1183 IVssComponentEx *This,
1184 UINT *pcDirectedTarget);
1185
1186 HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)(
1187 IVssComponentEx *This,
1188 UINT iDirectedTarget,
1189 BSTR *pbstrSourcePath,
1190 BSTR *pbstrSourceFileName,
1191 BSTR *pbstrSourceRangeList,
1192 BSTR *pbstrDestinationPath,
1193 BSTR *pbstrDestinationFilename,
1194 BSTR *pbstrDestinationRangeList);
1195
1196 HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)(
1197 IVssComponentEx *This,
1198 LPCWSTR wszRestoreMetadata);
1199
1200 HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)(
1201 IVssComponentEx *This,
1202 BSTR *pbstrRestoreMetadata);
1203
1204 HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)(
1205 IVssComponentEx *This,
1206 VSS_RESTORE_TARGET target);
1207
1208 HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)(
1209 IVssComponentEx *This,
1210 VSS_RESTORE_TARGET *pTarget);
1211
1212 HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)(
1213 IVssComponentEx *This,
1214 LPCWSTR wszPreRestoreFailureMsg);
1215
1216 HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)(
1217 IVssComponentEx *This,
1218 BSTR *pbstrPreRestoreFailureMsg);
1219
1220 HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)(
1221 IVssComponentEx *This,
1222 LPCWSTR wszPostRestoreFailureMsg);
1223
1224 HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)(
1225 IVssComponentEx *This,
1226 BSTR *pbstrPostRestoreFailureMsg);
1227
1228 HRESULT (STDMETHODCALLTYPE *SetBackupStamp)(
1229 IVssComponentEx *This,
1230 LPCWSTR wszBackupStamp);
1231
1232 HRESULT (STDMETHODCALLTYPE *GetBackupStamp)(
1233 IVssComponentEx *This,
1234 BSTR *pbstrBackupStamp);
1235
1236 HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)(
1237 IVssComponentEx *This,
1238 BSTR *pbstrBackupStamp);
1239
1240 HRESULT (STDMETHODCALLTYPE *GetBackupOptions)(
1241 IVssComponentEx *This,
1242 BSTR *pbstrBackupOptions);
1243
1244 HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)(
1245 IVssComponentEx *This,
1246 BSTR *pbstrRestoreOptions);
1247
1248 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)(
1249 IVssComponentEx *This,
1250 UINT *pcRestoreSubcomponent);
1251
1252 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)(
1253 IVssComponentEx *This,
1254 UINT iComponent,
1255 BSTR *pbstrLogicalPath,
1256 BSTR *pbstrComponentName,
1257 boolean *pbRepair);
1258
1259 HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)(
1260 IVssComponentEx *This,
1261 VSS_FILE_RESTORE_STATUS *pStatus);
1262
1263 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)(
1264 IVssComponentEx *This,
1265 LPCWSTR wszPath,
1266 LPCWSTR wszFilespec,
1267 WINBOOL bRecursive,
1268 FILETIME ftLastModifyTime);
1269
1270 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)(
1271 IVssComponentEx *This,
1272 LPCWSTR wszPath,
1273 LPCWSTR wszFilespec,
1274 WINBOOL bRecursive,
1275 BSTR bstrLsnString);
1276
1277 HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)(
1278 IVssComponentEx *This,
1279 UINT *pcDifferencedFiles);
1280
1281 HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)(
1282 IVssComponentEx *This,
1283 UINT iDifferencedFile,
1284 BSTR *pbstrPath,
1285 BSTR *pbstrFilespec,
1286 WINBOOL *pbRecursive,
1287 BSTR *pbstrLsnString,
1288 FILETIME *pftLastModifyTime);
1289
1290 /*** IVssComponentEx methods ***/
1291 HRESULT (STDMETHODCALLTYPE *SetPrepareForBackupFailureMsg)(
1292 IVssComponentEx *This,
1293 LPCWSTR wszFailureMsg);
1294
1295 HRESULT (STDMETHODCALLTYPE *SetPostSnapshotFailureMsg)(
1296 IVssComponentEx *This,
1297 LPCWSTR wszFailureMsg);
1298
1299 HRESULT (STDMETHODCALLTYPE *GetPrepareForBackupFailureMsg)(
1300 IVssComponentEx *This,
1301 BSTR *pbstrFailureMsg);
1302
1303 HRESULT (STDMETHODCALLTYPE *GetPostSnapshotFailureMsg)(
1304 IVssComponentEx *This,
1305 BSTR *pbstrFailureMsg);
1306
1307 HRESULT (STDMETHODCALLTYPE *GetAuthoritativeRestore)(
1308 IVssComponentEx *This,
1309 boolean *pbAuth);
1310
1311 HRESULT (STDMETHODCALLTYPE *GetRollForward)(
1312 IVssComponentEx *This,
1313 VSS_ROLLFORWARD_TYPE *pRollType,
1314 BSTR *pbstrPoint);
1315
1316 HRESULT (STDMETHODCALLTYPE *GetRestoreName)(
1317 IVssComponentEx *This,
1318 BSTR *pbstrName);
1319
1320 END_INTERFACE
1321} IVssComponentExVtbl;
1322
1323interface IVssComponentEx {
1324 CONST_VTBL IVssComponentExVtbl* lpVtbl;
1325};
1326
1327#ifdef COBJMACROS
1328#ifndef WIDL_C_INLINE_WRAPPERS
1329/*** IUnknown methods ***/
1330#define IVssComponentEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1331#define IVssComponentEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1332#define IVssComponentEx_Release(This) (This)->lpVtbl->Release(This)
1333/*** IVssComponent methods ***/
1334#define IVssComponentEx_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath)
1335#define IVssComponentEx_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct)
1336#define IVssComponentEx_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName)
1337#define IVssComponentEx_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded)
1338#define IVssComponentEx_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings)
1339#define IVssComponentEx_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
1340#define IVssComponentEx_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData)
1341#define IVssComponentEx_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData)
1342#define IVssComponentEx_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata)
1343#define IVssComponentEx_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles)
1344#define IVssComponentEx_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata)
1345#define IVssComponentEx_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore)
1346#define IVssComponentEx_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores)
1347#define IVssComponentEx_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget)
1348#define IVssComponentEx_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc)
1349#define IVssComponentEx_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList)
1350#define IVssComponentEx_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget)
1351#define IVssComponentEx_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList)
1352#define IVssComponentEx_SetRestoreMetadata(This,wszRestoreMetadata) (This)->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata)
1353#define IVssComponentEx_GetRestoreMetadata(This,pbstrRestoreMetadata) (This)->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata)
1354#define IVssComponentEx_SetRestoreTarget(This,target) (This)->lpVtbl->SetRestoreTarget(This,target)
1355#define IVssComponentEx_GetRestoreTarget(This,pTarget) (This)->lpVtbl->GetRestoreTarget(This,pTarget)
1356#define IVssComponentEx_SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg) (This)->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg)
1357#define IVssComponentEx_GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg) (This)->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg)
1358#define IVssComponentEx_SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg) (This)->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg)
1359#define IVssComponentEx_GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg) (This)->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg)
1360#define IVssComponentEx_SetBackupStamp(This,wszBackupStamp) (This)->lpVtbl->SetBackupStamp(This,wszBackupStamp)
1361#define IVssComponentEx_GetBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetBackupStamp(This,pbstrBackupStamp)
1362#define IVssComponentEx_GetPreviousBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp)
1363#define IVssComponentEx_GetBackupOptions(This,pbstrBackupOptions) (This)->lpVtbl->GetBackupOptions(This,pbstrBackupOptions)
1364#define IVssComponentEx_GetRestoreOptions(This,pbstrRestoreOptions) (This)->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions)
1365#define IVssComponentEx_GetRestoreSubcomponentCount(This,pcRestoreSubcomponent) (This)->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent)
1366#define IVssComponentEx_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
1367#define IVssComponentEx_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
1368#define IVssComponentEx_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
1369#define IVssComponentEx_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
1370#define IVssComponentEx_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
1371#define IVssComponentEx_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
1372/*** IVssComponentEx methods ***/
1373#define IVssComponentEx_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg)
1374#define IVssComponentEx_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg)
1375#define IVssComponentEx_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg)
1376#define IVssComponentEx_GetPostSnapshotFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg)
1377#define IVssComponentEx_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth)
1378#define IVssComponentEx_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint)
1379#define IVssComponentEx_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName)
1380#else
1381/*** IUnknown methods ***/
1382static inline HRESULT IVssComponentEx_QueryInterface(IVssComponentEx* This,REFIID riid,void **ppvObject) {
1383 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1384}
1385static inline ULONG IVssComponentEx_AddRef(IVssComponentEx* This) {
1386 return This->lpVtbl->AddRef(This);
1387}
1388static inline ULONG IVssComponentEx_Release(IVssComponentEx* This) {
1389 return This->lpVtbl->Release(This);
1390}
1391/*** IVssComponent methods ***/
1392static inline HRESULT IVssComponentEx_GetLogicalPath(IVssComponentEx* This,BSTR *pbstrPath) {
1393 return This->lpVtbl->GetLogicalPath(This,pbstrPath);
1394}
1395static inline HRESULT IVssComponentEx_GetComponentType(IVssComponentEx* This,VSS_COMPONENT_TYPE *pct) {
1396 return This->lpVtbl->GetComponentType(This,pct);
1397}
1398static inline HRESULT IVssComponentEx_GetComponentName(IVssComponentEx* This,BSTR *pbstrName) {
1399 return This->lpVtbl->GetComponentName(This,pbstrName);
1400}
1401static inline HRESULT IVssComponentEx_GetBackupSucceeded(IVssComponentEx* This,boolean *pbSucceeded) {
1402 return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
1403}
1404static inline HRESULT IVssComponentEx_GetAlternateLocationMappingCount(IVssComponentEx* This,UINT *pcMappings) {
1405 return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
1406}
1407static inline HRESULT IVssComponentEx_GetAlternateLocationMapping(IVssComponentEx* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
1408 return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
1409}
1410static inline HRESULT IVssComponentEx_SetBackupMetadata(IVssComponentEx* This,LPCWSTR wszData) {
1411 return This->lpVtbl->SetBackupMetadata(This,wszData);
1412}
1413static inline HRESULT IVssComponentEx_GetBackupMetadata(IVssComponentEx* This,BSTR *pbstrData) {
1414 return This->lpVtbl->GetBackupMetadata(This,pbstrData);
1415}
1416static inline HRESULT IVssComponentEx_AddPartialFile(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
1417 return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
1418}
1419static inline HRESULT IVssComponentEx_GetPartialFileCount(IVssComponentEx* This,UINT *pcPartialFiles) {
1420 return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
1421}
1422static inline HRESULT IVssComponentEx_GetPartialFile(IVssComponentEx* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
1423 return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
1424}
1425static inline HRESULT IVssComponentEx_IsSelectedForRestore(IVssComponentEx* This,boolean *pbSelectedForRestore) {
1426 return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
1427}
1428static inline HRESULT IVssComponentEx_GetAdditionalRestores(IVssComponentEx* This,boolean *pbAdditionalRestores) {
1429 return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
1430}
1431static inline HRESULT IVssComponentEx_GetNewTargetCount(IVssComponentEx* This,UINT *pcNewTarget) {
1432 return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
1433}
1434static inline HRESULT IVssComponentEx_GetNewTarget(IVssComponentEx* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
1435 return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
1436}
1437static inline HRESULT IVssComponentEx_AddDirectedTarget(IVssComponentEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
1438 return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
1439}
1440static inline HRESULT IVssComponentEx_GetDirectedTargetCount(IVssComponentEx* This,UINT *pcDirectedTarget) {
1441 return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
1442}
1443static inline HRESULT IVssComponentEx_GetDirectedTarget(IVssComponentEx* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
1444 return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
1445}
1446static inline HRESULT IVssComponentEx_SetRestoreMetadata(IVssComponentEx* This,LPCWSTR wszRestoreMetadata) {
1447 return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
1448}
1449static inline HRESULT IVssComponentEx_GetRestoreMetadata(IVssComponentEx* This,BSTR *pbstrRestoreMetadata) {
1450 return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
1451}
1452static inline HRESULT IVssComponentEx_SetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET target) {
1453 return This->lpVtbl->SetRestoreTarget(This,target);
1454}
1455static inline HRESULT IVssComponentEx_GetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET *pTarget) {
1456 return This->lpVtbl->GetRestoreTarget(This,pTarget);
1457}
1458static inline HRESULT IVssComponentEx_SetPreRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPreRestoreFailureMsg) {
1459 return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
1460}
1461static inline HRESULT IVssComponentEx_GetPreRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPreRestoreFailureMsg) {
1462 return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
1463}
1464static inline HRESULT IVssComponentEx_SetPostRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPostRestoreFailureMsg) {
1465 return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
1466}
1467static inline HRESULT IVssComponentEx_GetPostRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPostRestoreFailureMsg) {
1468 return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
1469}
1470static inline HRESULT IVssComponentEx_SetBackupStamp(IVssComponentEx* This,LPCWSTR wszBackupStamp) {
1471 return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
1472}
1473static inline HRESULT IVssComponentEx_GetBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) {
1474 return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
1475}
1476static inline HRESULT IVssComponentEx_GetPreviousBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) {
1477 return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
1478}
1479static inline HRESULT IVssComponentEx_GetBackupOptions(IVssComponentEx* This,BSTR *pbstrBackupOptions) {
1480 return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
1481}
1482static inline HRESULT IVssComponentEx_GetRestoreOptions(IVssComponentEx* This,BSTR *pbstrRestoreOptions) {
1483 return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
1484}
1485static inline HRESULT IVssComponentEx_GetRestoreSubcomponentCount(IVssComponentEx* This,UINT *pcRestoreSubcomponent) {
1486 return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
1487}
1488static inline HRESULT IVssComponentEx_GetRestoreSubcomponent(IVssComponentEx* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
1489 return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
1490}
1491static inline HRESULT IVssComponentEx_GetFileRestoreStatus(IVssComponentEx* This,VSS_FILE_RESTORE_STATUS *pStatus) {
1492 return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
1493}
1494static inline HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyTime(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
1495 return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
1496}
1497static inline HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyLSN(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
1498 return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
1499}
1500static inline HRESULT IVssComponentEx_GetDifferencedFilesCount(IVssComponentEx* This,UINT *pcDifferencedFiles) {
1501 return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
1502}
1503static inline HRESULT IVssComponentEx_GetDifferencedFile(IVssComponentEx* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
1504 return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
1505}
1506/*** IVssComponentEx methods ***/
1507static inline HRESULT IVssComponentEx_SetPrepareForBackupFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) {
1508 return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg);
1509}
1510static inline HRESULT IVssComponentEx_SetPostSnapshotFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) {
1511 return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg);
1512}
1513static inline HRESULT IVssComponentEx_GetPrepareForBackupFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) {
1514 return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg);
1515}
1516static inline HRESULT IVssComponentEx_GetPostSnapshotFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) {
1517 return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg);
1518}
1519static inline HRESULT IVssComponentEx_GetAuthoritativeRestore(IVssComponentEx* This,boolean *pbAuth) {
1520 return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth);
1521}
1522static inline HRESULT IVssComponentEx_GetRollForward(IVssComponentEx* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) {
1523 return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint);
1524}
1525static inline HRESULT IVssComponentEx_GetRestoreName(IVssComponentEx* This,BSTR *pbstrName) {
1526 return This->lpVtbl->GetRestoreName(This,pbstrName);
1527}
1528#endif
1529#endif
1530
1531#endif
1532
1533
1534#endif /* __IVssComponentEx_INTERFACE_DEFINED__ */
1535
1536/*****************************************************************************
1537 * IVssComponentEx2 interface
1538 */
1539#ifndef __IVssComponentEx2_INTERFACE_DEFINED__
1540#define __IVssComponentEx2_INTERFACE_DEFINED__
1541
1542DEFINE_GUID(IID_IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d);
1543#if defined(__cplusplus) && !defined(CINTERFACE)
1544MIDL_INTERFACE("3b5be0f2-07a9-4e4b-bdd3-cfdc8e2c0d2d")
1545IVssComponentEx2 : public IVssComponentEx
1546{
1547 virtual HRESULT STDMETHODCALLTYPE SetFailure(
1548 HRESULT hr,
1549 HRESULT hrApplication,
1550 LPCWSTR wszApplicationMessage,
1551 DWORD dwReserved) = 0;
1552
1553 virtual HRESULT STDMETHODCALLTYPE GetFailure(
1554 HRESULT *phr,
1555 HRESULT *phrApplication,
1556 BSTR *pbstrApplicationMessage,
1557 DWORD *pdwReserved) = 0;
1558
1559};
1560#ifdef __CRT_UUID_DECL
1561__CRT_UUID_DECL(IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d)
1562#endif
1563#else
1564typedef struct IVssComponentEx2Vtbl {
1565 BEGIN_INTERFACE
1566
1567 /*** IUnknown methods ***/
1568 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1569 IVssComponentEx2 *This,
1570 REFIID riid,
1571 void **ppvObject);
1572
1573 ULONG (STDMETHODCALLTYPE *AddRef)(
1574 IVssComponentEx2 *This);
1575
1576 ULONG (STDMETHODCALLTYPE *Release)(
1577 IVssComponentEx2 *This);
1578
1579 /*** IVssComponent methods ***/
1580 HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
1581 IVssComponentEx2 *This,
1582 BSTR *pbstrPath);
1583
1584 HRESULT (STDMETHODCALLTYPE *GetComponentType)(
1585 IVssComponentEx2 *This,
1586 VSS_COMPONENT_TYPE *pct);
1587
1588 HRESULT (STDMETHODCALLTYPE *GetComponentName)(
1589 IVssComponentEx2 *This,
1590 BSTR *pbstrName);
1591
1592 HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)(
1593 IVssComponentEx2 *This,
1594 boolean *pbSucceeded);
1595
1596 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)(
1597 IVssComponentEx2 *This,
1598 UINT *pcMappings);
1599
1600 HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
1601 IVssComponentEx2 *This,
1602 UINT iMapping,
1603 IVssWMFiledesc **ppFiledesc);
1604
1605 HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)(
1606 IVssComponentEx2 *This,
1607 LPCWSTR wszData);
1608
1609 HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)(
1610 IVssComponentEx2 *This,
1611 BSTR *pbstrData);
1612
1613 HRESULT (STDMETHODCALLTYPE *AddPartialFile)(
1614 IVssComponentEx2 *This,
1615 LPCWSTR wszPath,
1616 LPCWSTR wszFilename,
1617 LPCWSTR wszRanges,
1618 LPCWSTR wszMetadata);
1619
1620 HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)(
1621 IVssComponentEx2 *This,
1622 UINT *pcPartialFiles);
1623
1624 HRESULT (STDMETHODCALLTYPE *GetPartialFile)(
1625 IVssComponentEx2 *This,
1626 UINT iPartialFile,
1627 BSTR *pbstrPath,
1628 BSTR *pbstrFilename,
1629 BSTR *pbstrRange,
1630 BSTR *pbstrMetadata);
1631
1632 HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)(
1633 IVssComponentEx2 *This,
1634 boolean *pbSelectedForRestore);
1635
1636 HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)(
1637 IVssComponentEx2 *This,
1638 boolean *pbAdditionalRestores);
1639
1640 HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)(
1641 IVssComponentEx2 *This,
1642 UINT *pcNewTarget);
1643
1644 HRESULT (STDMETHODCALLTYPE *GetNewTarget)(
1645 IVssComponentEx2 *This,
1646 UINT iNewTarget,
1647 IVssWMFiledesc **ppFiledesc);
1648
1649 HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)(
1650 IVssComponentEx2 *This,
1651 LPCWSTR wszSourcePath,
1652 LPCWSTR wszSourceFilename,
1653 LPCWSTR wszSourceRangeList,
1654 LPCWSTR wszDestinationPath,
1655 LPCWSTR wszDestinationFilename,
1656 LPCWSTR wszDestinationRangeList);
1657
1658 HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)(
1659 IVssComponentEx2 *This,
1660 UINT *pcDirectedTarget);
1661
1662 HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)(
1663 IVssComponentEx2 *This,
1664 UINT iDirectedTarget,
1665 BSTR *pbstrSourcePath,
1666 BSTR *pbstrSourceFileName,
1667 BSTR *pbstrSourceRangeList,
1668 BSTR *pbstrDestinationPath,
1669 BSTR *pbstrDestinationFilename,
1670 BSTR *pbstrDestinationRangeList);
1671
1672 HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)(
1673 IVssComponentEx2 *This,
1674 LPCWSTR wszRestoreMetadata);
1675
1676 HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)(
1677 IVssComponentEx2 *This,
1678 BSTR *pbstrRestoreMetadata);
1679
1680 HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)(
1681 IVssComponentEx2 *This,
1682 VSS_RESTORE_TARGET target);
1683
1684 HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)(
1685 IVssComponentEx2 *This,
1686 VSS_RESTORE_TARGET *pTarget);
1687
1688 HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)(
1689 IVssComponentEx2 *This,
1690 LPCWSTR wszPreRestoreFailureMsg);
1691
1692 HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)(
1693 IVssComponentEx2 *This,
1694 BSTR *pbstrPreRestoreFailureMsg);
1695
1696 HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)(
1697 IVssComponentEx2 *This,
1698 LPCWSTR wszPostRestoreFailureMsg);
1699
1700 HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)(
1701 IVssComponentEx2 *This,
1702 BSTR *pbstrPostRestoreFailureMsg);
1703
1704 HRESULT (STDMETHODCALLTYPE *SetBackupStamp)(
1705 IVssComponentEx2 *This,
1706 LPCWSTR wszBackupStamp);
1707
1708 HRESULT (STDMETHODCALLTYPE *GetBackupStamp)(
1709 IVssComponentEx2 *This,
1710 BSTR *pbstrBackupStamp);
1711
1712 HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)(
1713 IVssComponentEx2 *This,
1714 BSTR *pbstrBackupStamp);
1715
1716 HRESULT (STDMETHODCALLTYPE *GetBackupOptions)(
1717 IVssComponentEx2 *This,
1718 BSTR *pbstrBackupOptions);
1719
1720 HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)(
1721 IVssComponentEx2 *This,
1722 BSTR *pbstrRestoreOptions);
1723
1724 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)(
1725 IVssComponentEx2 *This,
1726 UINT *pcRestoreSubcomponent);
1727
1728 HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)(
1729 IVssComponentEx2 *This,
1730 UINT iComponent,
1731 BSTR *pbstrLogicalPath,
1732 BSTR *pbstrComponentName,
1733 boolean *pbRepair);
1734
1735 HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)(
1736 IVssComponentEx2 *This,
1737 VSS_FILE_RESTORE_STATUS *pStatus);
1738
1739 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)(
1740 IVssComponentEx2 *This,
1741 LPCWSTR wszPath,
1742 LPCWSTR wszFilespec,
1743 WINBOOL bRecursive,
1744 FILETIME ftLastModifyTime);
1745
1746 HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)(
1747 IVssComponentEx2 *This,
1748 LPCWSTR wszPath,
1749 LPCWSTR wszFilespec,
1750 WINBOOL bRecursive,
1751 BSTR bstrLsnString);
1752
1753 HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)(
1754 IVssComponentEx2 *This,
1755 UINT *pcDifferencedFiles);
1756
1757 HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)(
1758 IVssComponentEx2 *This,
1759 UINT iDifferencedFile,
1760 BSTR *pbstrPath,
1761 BSTR *pbstrFilespec,
1762 WINBOOL *pbRecursive,
1763 BSTR *pbstrLsnString,
1764 FILETIME *pftLastModifyTime);
1765
1766 /*** IVssComponentEx methods ***/
1767 HRESULT (STDMETHODCALLTYPE *SetPrepareForBackupFailureMsg)(
1768 IVssComponentEx2 *This,
1769 LPCWSTR wszFailureMsg);
1770
1771 HRESULT (STDMETHODCALLTYPE *SetPostSnapshotFailureMsg)(
1772 IVssComponentEx2 *This,
1773 LPCWSTR wszFailureMsg);
1774
1775 HRESULT (STDMETHODCALLTYPE *GetPrepareForBackupFailureMsg)(
1776 IVssComponentEx2 *This,
1777 BSTR *pbstrFailureMsg);
1778
1779 HRESULT (STDMETHODCALLTYPE *GetPostSnapshotFailureMsg)(
1780 IVssComponentEx2 *This,
1781 BSTR *pbstrFailureMsg);
1782
1783 HRESULT (STDMETHODCALLTYPE *GetAuthoritativeRestore)(
1784 IVssComponentEx2 *This,
1785 boolean *pbAuth);
1786
1787 HRESULT (STDMETHODCALLTYPE *GetRollForward)(
1788 IVssComponentEx2 *This,
1789 VSS_ROLLFORWARD_TYPE *pRollType,
1790 BSTR *pbstrPoint);
1791
1792 HRESULT (STDMETHODCALLTYPE *GetRestoreName)(
1793 IVssComponentEx2 *This,
1794 BSTR *pbstrName);
1795
1796 /*** IVssComponentEx2 methods ***/
1797 HRESULT (STDMETHODCALLTYPE *SetFailure)(
1798 IVssComponentEx2 *This,
1799 HRESULT hr,
1800 HRESULT hrApplication,
1801 LPCWSTR wszApplicationMessage,
1802 DWORD dwReserved);
1803
1804 HRESULT (STDMETHODCALLTYPE *GetFailure)(
1805 IVssComponentEx2 *This,
1806 HRESULT *phr,
1807 HRESULT *phrApplication,
1808 BSTR *pbstrApplicationMessage,
1809 DWORD *pdwReserved);
1810
1811 END_INTERFACE
1812} IVssComponentEx2Vtbl;
1813
1814interface IVssComponentEx2 {
1815 CONST_VTBL IVssComponentEx2Vtbl* lpVtbl;
1816};
1817
1818#ifdef COBJMACROS
1819#ifndef WIDL_C_INLINE_WRAPPERS
1820/*** IUnknown methods ***/
1821#define IVssComponentEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1822#define IVssComponentEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
1823#define IVssComponentEx2_Release(This) (This)->lpVtbl->Release(This)
1824/*** IVssComponent methods ***/
1825#define IVssComponentEx2_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath)
1826#define IVssComponentEx2_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct)
1827#define IVssComponentEx2_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName)
1828#define IVssComponentEx2_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded)
1829#define IVssComponentEx2_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings)
1830#define IVssComponentEx2_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
1831#define IVssComponentEx2_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData)
1832#define IVssComponentEx2_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData)
1833#define IVssComponentEx2_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata)
1834#define IVssComponentEx2_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles)
1835#define IVssComponentEx2_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata)
1836#define IVssComponentEx2_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore)
1837#define IVssComponentEx2_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores)
1838#define IVssComponentEx2_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget)
1839#define IVssComponentEx2_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc)
1840#define IVssComponentEx2_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList)
1841#define IVssComponentEx2_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget)
1842#define IVssComponentEx2_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList)
1843#define IVssComponentEx2_SetRestoreMetadata(This,wszRestoreMetadata) (This)->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata)
1844#define IVssComponentEx2_GetRestoreMetadata(This,pbstrRestoreMetadata) (This)->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata)
1845#define IVssComponentEx2_SetRestoreTarget(This,target) (This)->lpVtbl->SetRestoreTarget(This,target)
1846#define IVssComponentEx2_GetRestoreTarget(This,pTarget) (This)->lpVtbl->GetRestoreTarget(This,pTarget)
1847#define IVssComponentEx2_SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg) (This)->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg)
1848#define IVssComponentEx2_GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg) (This)->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg)
1849#define IVssComponentEx2_SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg) (This)->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg)
1850#define IVssComponentEx2_GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg) (This)->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg)
1851#define IVssComponentEx2_SetBackupStamp(This,wszBackupStamp) (This)->lpVtbl->SetBackupStamp(This,wszBackupStamp)
1852#define IVssComponentEx2_GetBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetBackupStamp(This,pbstrBackupStamp)
1853#define IVssComponentEx2_GetPreviousBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp)
1854#define IVssComponentEx2_GetBackupOptions(This,pbstrBackupOptions) (This)->lpVtbl->GetBackupOptions(This,pbstrBackupOptions)
1855#define IVssComponentEx2_GetRestoreOptions(This,pbstrRestoreOptions) (This)->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions)
1856#define IVssComponentEx2_GetRestoreSubcomponentCount(This,pcRestoreSubcomponent) (This)->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent)
1857#define IVssComponentEx2_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
1858#define IVssComponentEx2_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
1859#define IVssComponentEx2_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
1860#define IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
1861#define IVssComponentEx2_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
1862#define IVssComponentEx2_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
1863/*** IVssComponentEx methods ***/
1864#define IVssComponentEx2_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg)
1865#define IVssComponentEx2_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg)
1866#define IVssComponentEx2_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg)
1867#define IVssComponentEx2_GetPostSnapshotFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg)
1868#define IVssComponentEx2_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth)
1869#define IVssComponentEx2_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint)
1870#define IVssComponentEx2_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName)
1871/*** IVssComponentEx2 methods ***/
1872#define IVssComponentEx2_SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved) (This)->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved)
1873#define IVssComponentEx2_GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) (This)->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved)
1874#else
1875/*** IUnknown methods ***/
1876static inline HRESULT IVssComponentEx2_QueryInterface(IVssComponentEx2* This,REFIID riid,void **ppvObject) {
1877 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1878}
1879static inline ULONG IVssComponentEx2_AddRef(IVssComponentEx2* This) {
1880 return This->lpVtbl->AddRef(This);
1881}
1882static inline ULONG IVssComponentEx2_Release(IVssComponentEx2* This) {
1883 return This->lpVtbl->Release(This);
1884}
1885/*** IVssComponent methods ***/
1886static inline HRESULT IVssComponentEx2_GetLogicalPath(IVssComponentEx2* This,BSTR *pbstrPath) {
1887 return This->lpVtbl->GetLogicalPath(This,pbstrPath);
1888}
1889static inline HRESULT IVssComponentEx2_GetComponentType(IVssComponentEx2* This,VSS_COMPONENT_TYPE *pct) {
1890 return This->lpVtbl->GetComponentType(This,pct);
1891}
1892static inline HRESULT IVssComponentEx2_GetComponentName(IVssComponentEx2* This,BSTR *pbstrName) {
1893 return This->lpVtbl->GetComponentName(This,pbstrName);
1894}
1895static inline HRESULT IVssComponentEx2_GetBackupSucceeded(IVssComponentEx2* This,boolean *pbSucceeded) {
1896 return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
1897}
1898static inline HRESULT IVssComponentEx2_GetAlternateLocationMappingCount(IVssComponentEx2* This,UINT *pcMappings) {
1899 return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
1900}
1901static inline HRESULT IVssComponentEx2_GetAlternateLocationMapping(IVssComponentEx2* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
1902 return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
1903}
1904static inline HRESULT IVssComponentEx2_SetBackupMetadata(IVssComponentEx2* This,LPCWSTR wszData) {
1905 return This->lpVtbl->SetBackupMetadata(This,wszData);
1906}
1907static inline HRESULT IVssComponentEx2_GetBackupMetadata(IVssComponentEx2* This,BSTR *pbstrData) {
1908 return This->lpVtbl->GetBackupMetadata(This,pbstrData);
1909}
1910static inline HRESULT IVssComponentEx2_AddPartialFile(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
1911 return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
1912}
1913static inline HRESULT IVssComponentEx2_GetPartialFileCount(IVssComponentEx2* This,UINT *pcPartialFiles) {
1914 return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
1915}
1916static inline HRESULT IVssComponentEx2_GetPartialFile(IVssComponentEx2* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
1917 return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
1918}
1919static inline HRESULT IVssComponentEx2_IsSelectedForRestore(IVssComponentEx2* This,boolean *pbSelectedForRestore) {
1920 return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
1921}
1922static inline HRESULT IVssComponentEx2_GetAdditionalRestores(IVssComponentEx2* This,boolean *pbAdditionalRestores) {
1923 return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
1924}
1925static inline HRESULT IVssComponentEx2_GetNewTargetCount(IVssComponentEx2* This,UINT *pcNewTarget) {
1926 return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
1927}
1928static inline HRESULT IVssComponentEx2_GetNewTarget(IVssComponentEx2* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
1929 return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
1930}
1931static inline HRESULT IVssComponentEx2_AddDirectedTarget(IVssComponentEx2* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
1932 return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
1933}
1934static inline HRESULT IVssComponentEx2_GetDirectedTargetCount(IVssComponentEx2* This,UINT *pcDirectedTarget) {
1935 return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
1936}
1937static inline HRESULT IVssComponentEx2_GetDirectedTarget(IVssComponentEx2* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
1938 return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
1939}
1940static inline HRESULT IVssComponentEx2_SetRestoreMetadata(IVssComponentEx2* This,LPCWSTR wszRestoreMetadata) {
1941 return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
1942}
1943static inline HRESULT IVssComponentEx2_GetRestoreMetadata(IVssComponentEx2* This,BSTR *pbstrRestoreMetadata) {
1944 return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
1945}
1946static inline HRESULT IVssComponentEx2_SetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET target) {
1947 return This->lpVtbl->SetRestoreTarget(This,target);
1948}
1949static inline HRESULT IVssComponentEx2_GetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET *pTarget) {
1950 return This->lpVtbl->GetRestoreTarget(This,pTarget);
1951}
1952static inline HRESULT IVssComponentEx2_SetPreRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPreRestoreFailureMsg) {
1953 return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
1954}
1955static inline HRESULT IVssComponentEx2_GetPreRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPreRestoreFailureMsg) {
1956 return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
1957}
1958static inline HRESULT IVssComponentEx2_SetPostRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPostRestoreFailureMsg) {
1959 return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
1960}
1961static inline HRESULT IVssComponentEx2_GetPostRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPostRestoreFailureMsg) {
1962 return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
1963}
1964static inline HRESULT IVssComponentEx2_SetBackupStamp(IVssComponentEx2* This,LPCWSTR wszBackupStamp) {
1965 return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
1966}
1967static inline HRESULT IVssComponentEx2_GetBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) {
1968 return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
1969}
1970static inline HRESULT IVssComponentEx2_GetPreviousBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) {
1971 return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
1972}
1973static inline HRESULT IVssComponentEx2_GetBackupOptions(IVssComponentEx2* This,BSTR *pbstrBackupOptions) {
1974 return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
1975}
1976static inline HRESULT IVssComponentEx2_GetRestoreOptions(IVssComponentEx2* This,BSTR *pbstrRestoreOptions) {
1977 return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
1978}
1979static inline HRESULT IVssComponentEx2_GetRestoreSubcomponentCount(IVssComponentEx2* This,UINT *pcRestoreSubcomponent) {
1980 return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
1981}
1982static inline HRESULT IVssComponentEx2_GetRestoreSubcomponent(IVssComponentEx2* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
1983 return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
1984}
1985static inline HRESULT IVssComponentEx2_GetFileRestoreStatus(IVssComponentEx2* This,VSS_FILE_RESTORE_STATUS *pStatus) {
1986 return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
1987}
1988static inline HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyTime(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
1989 return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
1990}
1991static inline HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
1992 return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
1993}
1994static inline HRESULT IVssComponentEx2_GetDifferencedFilesCount(IVssComponentEx2* This,UINT *pcDifferencedFiles) {
1995 return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
1996}
1997static inline HRESULT IVssComponentEx2_GetDifferencedFile(IVssComponentEx2* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
1998 return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
1999}
2000/*** IVssComponentEx methods ***/
2001static inline HRESULT IVssComponentEx2_SetPrepareForBackupFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) {
2002 return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg);
2003}
2004static inline HRESULT IVssComponentEx2_SetPostSnapshotFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) {
2005 return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg);
2006}
2007static inline HRESULT IVssComponentEx2_GetPrepareForBackupFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) {
2008 return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg);
2009}
2010static inline HRESULT IVssComponentEx2_GetPostSnapshotFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) {
2011 return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg);
2012}
2013static inline HRESULT IVssComponentEx2_GetAuthoritativeRestore(IVssComponentEx2* This,boolean *pbAuth) {
2014 return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth);
2015}
2016static inline HRESULT IVssComponentEx2_GetRollForward(IVssComponentEx2* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) {
2017 return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint);
2018}
2019static inline HRESULT IVssComponentEx2_GetRestoreName(IVssComponentEx2* This,BSTR *pbstrName) {
2020 return This->lpVtbl->GetRestoreName(This,pbstrName);
2021}
2022/*** IVssComponentEx2 methods ***/
2023static inline HRESULT IVssComponentEx2_SetFailure(IVssComponentEx2* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage,DWORD dwReserved) {
2024 return This->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved);
2025}
2026static inline HRESULT IVssComponentEx2_GetFailure(IVssComponentEx2* This,HRESULT *phr,HRESULT *phrApplication,BSTR *pbstrApplicationMessage,DWORD *pdwReserved) {
2027 return This->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved);
2028}
2029#endif
2030#endif
2031
2032#endif
2033
2034
2035#endif /* __IVssComponentEx2_INTERFACE_DEFINED__ */
2036
2037#ifndef __IXMLDOMDocument_FWD_DEFINED__
2038#define __IXMLDOMDocument_FWD_DEFINED__
2039typedef interface IXMLDOMDocument IXMLDOMDocument;
2040#ifdef __cplusplus
2041interface IXMLDOMDocument;
2042#endif /* __cplusplus */
2043#endif
2044
2045/*****************************************************************************
2046 * IVssCreateWriterMetadata interface
2047 */
2048#ifndef __IVssCreateWriterMetadata_INTERFACE_DEFINED__
2049#define __IVssCreateWriterMetadata_INTERFACE_DEFINED__
2050
2051DEFINE_GUID(IID_IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
2052#if defined(__cplusplus) && !defined(CINTERFACE)
2053MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
2054IVssCreateWriterMetadata
2055{
2056
2057 BEGIN_INTERFACE
2058
2059 virtual HRESULT STDMETHODCALLTYPE AddIncludeFiles(
2060 LPCWSTR wszPath,
2061 LPCWSTR wszFilespec,
2062 boolean bRecursive,
2063 LPCWSTR wszAlternateLocation) = 0;
2064
2065 virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles(
2066 LPCWSTR wszPath,
2067 LPCWSTR wszFilespec,
2068 boolean bRecursive) = 0;
2069
2070 virtual HRESULT STDMETHODCALLTYPE AddComponent(
2071 VSS_COMPONENT_TYPE ct,
2072 LPCWSTR wszLogicalPath,
2073 LPCWSTR wszComponentName,
2074 LPCWSTR wszCaption,
2075 const BYTE *pbIcon,
2076 UINT cbIcon,
2077 boolean bRestoreMetadata,
2078 boolean bNotifyOnBackupComplete,
2079 boolean bSelectable,
2080 boolean bSelectableForRestore = 0,
2081 DWORD dwComponentFlags = 0) = 0;
2082
2083 virtual HRESULT STDMETHODCALLTYPE AddDatabaseFiles(
2084 LPCWSTR wszLogicalPath,
2085 LPCWSTR wszDatabaseName,
2086 LPCWSTR wszPath,
2087 LPCWSTR wszFilespec,
2088 DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
2089
2090 virtual HRESULT STDMETHODCALLTYPE AddDatabaseLogFiles(
2091 LPCWSTR wszLogicalPath,
2092 LPCWSTR wszDatabaseName,
2093 LPCWSTR wszPath,
2094 LPCWSTR wszFilespec,
2095 DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
2096
2097 virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup(
2098 LPCWSTR wszLogicalPath,
2099 LPCWSTR wszGroupName,
2100 LPCWSTR wszPath,
2101 LPCWSTR wszFilespec,
2102 boolean bRecursive,
2103 LPCWSTR wszAlternateLocation,
2104 DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
2105
2106 virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod(
2107 VSS_RESTOREMETHOD_ENUM method,
2108 LPCWSTR wszService,
2109 LPCWSTR wszUserProcedure,
2110 VSS_WRITERRESTORE_ENUM writerRestore,
2111 boolean bRebootRequired) = 0;
2112
2113 virtual HRESULT STDMETHODCALLTYPE AddAlternateLocationMapping(
2114 LPCWSTR wszSourcePath,
2115 LPCWSTR wszSourceFilespec,
2116 boolean bRecursive,
2117 LPCWSTR wszDestination) = 0;
2118
2119 virtual HRESULT STDMETHODCALLTYPE AddComponentDependency(
2120 LPCWSTR wszForLogicalPath,
2121 LPCWSTR wszForComponentName,
2122 VSS_ID onWriterId,
2123 LPCWSTR wszOnLogicalPath,
2124 LPCWSTR wszOnComponentName) = 0;
2125
2126 virtual HRESULT STDMETHODCALLTYPE SetBackupSchema(
2127 DWORD dwSchemaMask) = 0;
2128
2129 virtual HRESULT STDMETHODCALLTYPE GetDocument(
2130 IXMLDOMDocument **pDoc) = 0;
2131
2132 virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
2133 BSTR *pbstrXML) = 0;
2134
2135 END_INTERFACE
2136
2137};
2138#ifdef __CRT_UUID_DECL
2139__CRT_UUID_DECL(IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
2140#endif
2141#else
2142typedef struct IVssCreateWriterMetadataVtbl {
2143 BEGIN_INTERFACE
2144
2145 /*** IVssCreateWriterMetadata methods ***/
2146 HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)(
2147 IVssCreateWriterMetadata *This,
2148 LPCWSTR wszPath,
2149 LPCWSTR wszFilespec,
2150 boolean bRecursive,
2151 LPCWSTR wszAlternateLocation);
2152
2153 HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
2154 IVssCreateWriterMetadata *This,
2155 LPCWSTR wszPath,
2156 LPCWSTR wszFilespec,
2157 boolean bRecursive);
2158
2159 HRESULT (STDMETHODCALLTYPE *AddComponent)(
2160 IVssCreateWriterMetadata *This,
2161 VSS_COMPONENT_TYPE ct,
2162 LPCWSTR wszLogicalPath,
2163 LPCWSTR wszComponentName,
2164 LPCWSTR wszCaption,
2165 const BYTE *pbIcon,
2166 UINT cbIcon,
2167 boolean bRestoreMetadata,
2168 boolean bNotifyOnBackupComplete,
2169 boolean bSelectable,
2170 boolean bSelectableForRestore,
2171 DWORD dwComponentFlags);
2172
2173 HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)(
2174 IVssCreateWriterMetadata *This,
2175 LPCWSTR wszLogicalPath,
2176 LPCWSTR wszDatabaseName,
2177 LPCWSTR wszPath,
2178 LPCWSTR wszFilespec,
2179 DWORD dwBackupTypeMask);
2180
2181 HRESULT (STDMETHODCALLTYPE *AddDatabaseLogFiles)(
2182 IVssCreateWriterMetadata *This,
2183 LPCWSTR wszLogicalPath,
2184 LPCWSTR wszDatabaseName,
2185 LPCWSTR wszPath,
2186 LPCWSTR wszFilespec,
2187 DWORD dwBackupTypeMask);
2188
2189 HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)(
2190 IVssCreateWriterMetadata *This,
2191 LPCWSTR wszLogicalPath,
2192 LPCWSTR wszGroupName,
2193 LPCWSTR wszPath,
2194 LPCWSTR wszFilespec,
2195 boolean bRecursive,
2196 LPCWSTR wszAlternateLocation,
2197 DWORD dwBackupTypeMask);
2198
2199 HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)(
2200 IVssCreateWriterMetadata *This,
2201 VSS_RESTOREMETHOD_ENUM method,
2202 LPCWSTR wszService,
2203 LPCWSTR wszUserProcedure,
2204 VSS_WRITERRESTORE_ENUM writerRestore,
2205 boolean bRebootRequired);
2206
2207 HRESULT (STDMETHODCALLTYPE *AddAlternateLocationMapping)(
2208 IVssCreateWriterMetadata *This,
2209 LPCWSTR wszSourcePath,
2210 LPCWSTR wszSourceFilespec,
2211 boolean bRecursive,
2212 LPCWSTR wszDestination);
2213
2214 HRESULT (STDMETHODCALLTYPE *AddComponentDependency)(
2215 IVssCreateWriterMetadata *This,
2216 LPCWSTR wszForLogicalPath,
2217 LPCWSTR wszForComponentName,
2218 VSS_ID onWriterId,
2219 LPCWSTR wszOnLogicalPath,
2220 LPCWSTR wszOnComponentName);
2221
2222 HRESULT (STDMETHODCALLTYPE *SetBackupSchema)(
2223 IVssCreateWriterMetadata *This,
2224 DWORD dwSchemaMask);
2225
2226 HRESULT (STDMETHODCALLTYPE *GetDocument)(
2227 IVssCreateWriterMetadata *This,
2228 IXMLDOMDocument **pDoc);
2229
2230 HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
2231 IVssCreateWriterMetadata *This,
2232 BSTR *pbstrXML);
2233
2234 END_INTERFACE
2235} IVssCreateWriterMetadataVtbl;
2236
2237interface IVssCreateWriterMetadata {
2238 CONST_VTBL IVssCreateWriterMetadataVtbl* lpVtbl;
2239};
2240
2241#ifdef COBJMACROS
2242#ifndef WIDL_C_INLINE_WRAPPERS
2243/*** IVssCreateWriterMetadata methods ***/
2244#define IVssCreateWriterMetadata_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation)
2245#define IVssCreateWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
2246#define IVssCreateWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
2247#define IVssCreateWriterMetadata_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
2248#define IVssCreateWriterMetadata_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
2249#define IVssCreateWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
2250#define IVssCreateWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
2251#define IVssCreateWriterMetadata_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination)
2252#define IVssCreateWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
2253#define IVssCreateWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
2254#define IVssCreateWriterMetadata_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
2255#define IVssCreateWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
2256#else
2257/*** IVssCreateWriterMetadata methods ***/
2258static inline HRESULT IVssCreateWriterMetadata_AddIncludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) {
2259 return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation);
2260}
2261static inline HRESULT IVssCreateWriterMetadata_AddExcludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
2262 return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
2263}
2264static inline HRESULT IVssCreateWriterMetadata_AddComponent(IVssCreateWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
2265 return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
2266}
2267static inline HRESULT IVssCreateWriterMetadata_AddDatabaseFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
2268 return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
2269}
2270static inline HRESULT IVssCreateWriterMetadata_AddDatabaseLogFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
2271 return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
2272}
2273static inline HRESULT IVssCreateWriterMetadata_AddFilesToFileGroup(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
2274 return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
2275}
2276static inline HRESULT IVssCreateWriterMetadata_SetRestoreMethod(IVssCreateWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
2277 return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
2278}
2279static inline HRESULT IVssCreateWriterMetadata_AddAlternateLocationMapping(IVssCreateWriterMetadata* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) {
2280 return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination);
2281}
2282static inline HRESULT IVssCreateWriterMetadata_AddComponentDependency(IVssCreateWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
2283 return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
2284}
2285static inline HRESULT IVssCreateWriterMetadata_SetBackupSchema(IVssCreateWriterMetadata* This,DWORD dwSchemaMask) {
2286 return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
2287}
2288static inline HRESULT IVssCreateWriterMetadata_GetDocument(IVssCreateWriterMetadata* This,IXMLDOMDocument **pDoc) {
2289 return This->lpVtbl->GetDocument(This,pDoc);
2290}
2291static inline HRESULT IVssCreateWriterMetadata_SaveAsXML(IVssCreateWriterMetadata* This,BSTR *pbstrXML) {
2292 return This->lpVtbl->SaveAsXML(This,pbstrXML);
2293}
2294#endif
2295#endif
2296
2297#endif
2298
2299
2300#endif /* __IVssCreateWriterMetadata_INTERFACE_DEFINED__ */
2301
2302/*****************************************************************************
2303 * IVssCreateWriterMetadataEx interface
2304 */
2305#ifndef __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__
2306#define __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__
2307
2308DEFINE_GUID(IID_IVssCreateWriterMetadataEx, 0x9f21981d, 0xd469, 0x4349, 0xb8,0x07, 0x39,0xe6,0x4e,0x46,0x74,0xe1);
2309#if defined(__cplusplus) && !defined(CINTERFACE)
2310MIDL_INTERFACE("9f21981d-d469-4349-b807-39e64e4674e1")
2311IVssCreateWriterMetadataEx : public IVssCreateWriterMetadata
2312{
2313 virtual HRESULT STDMETHODCALLTYPE AddExcludeFilesFromSnapshot(
2314 LPCWSTR wszPath,
2315 LPCWSTR wszFilespec,
2316 boolean bRecursive) = 0;
2317
2318};
2319#ifdef __CRT_UUID_DECL
2320__CRT_UUID_DECL(IVssCreateWriterMetadataEx, 0x9f21981d, 0xd469, 0x4349, 0xb8,0x07, 0x39,0xe6,0x4e,0x46,0x74,0xe1)
2321#endif
2322#else
2323typedef struct IVssCreateWriterMetadataExVtbl {
2324 BEGIN_INTERFACE
2325
2326 /*** IVssCreateWriterMetadata methods ***/
2327 HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)(
2328 IVssCreateWriterMetadataEx *This,
2329 LPCWSTR wszPath,
2330 LPCWSTR wszFilespec,
2331 boolean bRecursive,
2332 LPCWSTR wszAlternateLocation);
2333
2334 HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
2335 IVssCreateWriterMetadataEx *This,
2336 LPCWSTR wszPath,
2337 LPCWSTR wszFilespec,
2338 boolean bRecursive);
2339
2340 HRESULT (STDMETHODCALLTYPE *AddComponent)(
2341 IVssCreateWriterMetadataEx *This,
2342 VSS_COMPONENT_TYPE ct,
2343 LPCWSTR wszLogicalPath,
2344 LPCWSTR wszComponentName,
2345 LPCWSTR wszCaption,
2346 const BYTE *pbIcon,
2347 UINT cbIcon,
2348 boolean bRestoreMetadata,
2349 boolean bNotifyOnBackupComplete,
2350 boolean bSelectable,
2351 boolean bSelectableForRestore,
2352 DWORD dwComponentFlags);
2353
2354 HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)(
2355 IVssCreateWriterMetadataEx *This,
2356 LPCWSTR wszLogicalPath,
2357 LPCWSTR wszDatabaseName,
2358 LPCWSTR wszPath,
2359 LPCWSTR wszFilespec,
2360 DWORD dwBackupTypeMask);
2361
2362 HRESULT (STDMETHODCALLTYPE *AddDatabaseLogFiles)(
2363 IVssCreateWriterMetadataEx *This,
2364 LPCWSTR wszLogicalPath,
2365 LPCWSTR wszDatabaseName,
2366 LPCWSTR wszPath,
2367 LPCWSTR wszFilespec,
2368 DWORD dwBackupTypeMask);
2369
2370 HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)(
2371 IVssCreateWriterMetadataEx *This,
2372 LPCWSTR wszLogicalPath,
2373 LPCWSTR wszGroupName,
2374 LPCWSTR wszPath,
2375 LPCWSTR wszFilespec,
2376 boolean bRecursive,
2377 LPCWSTR wszAlternateLocation,
2378 DWORD dwBackupTypeMask);
2379
2380 HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)(
2381 IVssCreateWriterMetadataEx *This,
2382 VSS_RESTOREMETHOD_ENUM method,
2383 LPCWSTR wszService,
2384 LPCWSTR wszUserProcedure,
2385 VSS_WRITERRESTORE_ENUM writerRestore,
2386 boolean bRebootRequired);
2387
2388 HRESULT (STDMETHODCALLTYPE *AddAlternateLocationMapping)(
2389 IVssCreateWriterMetadataEx *This,
2390 LPCWSTR wszSourcePath,
2391 LPCWSTR wszSourceFilespec,
2392 boolean bRecursive,
2393 LPCWSTR wszDestination);
2394
2395 HRESULT (STDMETHODCALLTYPE *AddComponentDependency)(
2396 IVssCreateWriterMetadataEx *This,
2397 LPCWSTR wszForLogicalPath,
2398 LPCWSTR wszForComponentName,
2399 VSS_ID onWriterId,
2400 LPCWSTR wszOnLogicalPath,
2401 LPCWSTR wszOnComponentName);
2402
2403 HRESULT (STDMETHODCALLTYPE *SetBackupSchema)(
2404 IVssCreateWriterMetadataEx *This,
2405 DWORD dwSchemaMask);
2406
2407 HRESULT (STDMETHODCALLTYPE *GetDocument)(
2408 IVssCreateWriterMetadataEx *This,
2409 IXMLDOMDocument **pDoc);
2410
2411 HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
2412 IVssCreateWriterMetadataEx *This,
2413 BSTR *pbstrXML);
2414
2415 /*** IVssCreateWriterMetadataEx methods ***/
2416 HRESULT (STDMETHODCALLTYPE *AddExcludeFilesFromSnapshot)(
2417 IVssCreateWriterMetadataEx *This,
2418 LPCWSTR wszPath,
2419 LPCWSTR wszFilespec,
2420 boolean bRecursive);
2421
2422 END_INTERFACE
2423} IVssCreateWriterMetadataExVtbl;
2424
2425interface IVssCreateWriterMetadataEx {
2426 CONST_VTBL IVssCreateWriterMetadataExVtbl* lpVtbl;
2427};
2428
2429#ifdef COBJMACROS
2430#ifndef WIDL_C_INLINE_WRAPPERS
2431/*** IVssCreateWriterMetadata methods ***/
2432#define IVssCreateWriterMetadataEx_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation)
2433#define IVssCreateWriterMetadataEx_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
2434#define IVssCreateWriterMetadataEx_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
2435#define IVssCreateWriterMetadataEx_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
2436#define IVssCreateWriterMetadataEx_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
2437#define IVssCreateWriterMetadataEx_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
2438#define IVssCreateWriterMetadataEx_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
2439#define IVssCreateWriterMetadataEx_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination)
2440#define IVssCreateWriterMetadataEx_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
2441#define IVssCreateWriterMetadataEx_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
2442#define IVssCreateWriterMetadataEx_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
2443#define IVssCreateWriterMetadataEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
2444/*** IVssCreateWriterMetadataEx methods ***/
2445#define IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive)
2446#else
2447/*** IVssCreateWriterMetadata methods ***/
2448static inline HRESULT IVssCreateWriterMetadataEx_AddIncludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) {
2449 return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation);
2450}
2451static inline HRESULT IVssCreateWriterMetadataEx_AddExcludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
2452 return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
2453}
2454static inline HRESULT IVssCreateWriterMetadataEx_AddComponent(IVssCreateWriterMetadataEx* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
2455 return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
2456}
2457static inline HRESULT IVssCreateWriterMetadataEx_AddDatabaseFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
2458 return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
2459}
2460static inline HRESULT IVssCreateWriterMetadataEx_AddDatabaseLogFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
2461 return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
2462}
2463static inline HRESULT IVssCreateWriterMetadataEx_AddFilesToFileGroup(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
2464 return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
2465}
2466static inline HRESULT IVssCreateWriterMetadataEx_SetRestoreMethod(IVssCreateWriterMetadataEx* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
2467 return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
2468}
2469static inline HRESULT IVssCreateWriterMetadataEx_AddAlternateLocationMapping(IVssCreateWriterMetadataEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) {
2470 return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination);
2471}
2472static inline HRESULT IVssCreateWriterMetadataEx_AddComponentDependency(IVssCreateWriterMetadataEx* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
2473 return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
2474}
2475static inline HRESULT IVssCreateWriterMetadataEx_SetBackupSchema(IVssCreateWriterMetadataEx* This,DWORD dwSchemaMask) {
2476 return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
2477}
2478static inline HRESULT IVssCreateWriterMetadataEx_GetDocument(IVssCreateWriterMetadataEx* This,IXMLDOMDocument **pDoc) {
2479 return This->lpVtbl->GetDocument(This,pDoc);
2480}
2481static inline HRESULT IVssCreateWriterMetadataEx_SaveAsXML(IVssCreateWriterMetadataEx* This,BSTR *pbstrXML) {
2482 return This->lpVtbl->SaveAsXML(This,pbstrXML);
2483}
2484/*** IVssCreateWriterMetadataEx methods ***/
2485static inline HRESULT IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
2486 return This->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive);
2487}
2488#endif
2489#endif
2490
2491#endif
2492
2493
2494#endif /* __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__ */
2495
2496/*****************************************************************************
2497 * IVssWriterImpl interface
2498 */
2499#ifndef __IVssWriterImpl_INTERFACE_DEFINED__
2500#define __IVssWriterImpl_INTERFACE_DEFINED__
2501
2502DEFINE_GUID(IID_IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
2503#if defined(__cplusplus) && !defined(CINTERFACE)
2504MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
2505IVssWriterImpl : public IUnknown
2506{
2507 virtual HRESULT STDMETHODCALLTYPE Initialize(
2508 VSS_ID writerId,
2509 LPCWSTR wszWriterName,
2510 LPCWSTR wszWriterInstanceName,
2511 DWORD dwMajorVersion,
2512 DWORD dwMinorVersion,
2513 VSS_USAGE_TYPE ut,
2514 VSS_SOURCE_TYPE st,
2515 VSS_APPLICATION_LEVEL nLevel,
2516 DWORD dwTimeout,
2517 VSS_ALTERNATE_WRITER_STATE aws,
2518 boolean bIOThrottlingOnly) = 0;
2519
2520 virtual HRESULT STDMETHODCALLTYPE Subscribe(
2521 DWORD dwSubscribeTimeout,
2522 DWORD dwEventFlags) = 0;
2523
2524 virtual HRESULT STDMETHODCALLTYPE Unsubscribe(
2525 ) = 0;
2526
2527 virtual void STDMETHODCALLTYPE Uninitialize(
2528 ) = 0;
2529
2530 virtual LPCWSTR * STDMETHODCALLTYPE GetCurrentVolumeArray(
2531 ) = 0;
2532
2533 virtual UINT STDMETHODCALLTYPE GetCurrentVolumeCount(
2534 ) = 0;
2535
2536 virtual HRESULT STDMETHODCALLTYPE GetSnapshotDeviceName(
2537 LPCWSTR wszOriginalVolume,
2538 LPCWSTR *ppwszSnapshotDevice) = 0;
2539
2540#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
2541 virtual VSS_ID* STDMETHODCALLTYPE GetCurrentSnapshotSetId(
2542 VSS_ID *__ret) = 0;
2543 VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId(
2544 )
2545 {
2546 VSS_ID __ret;
2547 return *GetCurrentSnapshotSetId(&__ret);
2548 }
2549#else
2550 virtual VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId(
2551 ) = 0;
2552#endif
2553
2554 virtual LONG STDMETHODCALLTYPE GetContext(
2555 ) = 0;
2556
2557 virtual VSS_APPLICATION_LEVEL STDMETHODCALLTYPE GetCurrentLevel(
2558 ) = 0;
2559
2560 virtual boolean STDMETHODCALLTYPE IsPathAffected(
2561 LPCWSTR wszPath) = 0;
2562
2563 virtual boolean STDMETHODCALLTYPE IsBootableSystemStateBackedUp(
2564 ) = 0;
2565
2566 virtual boolean STDMETHODCALLTYPE AreComponentsSelected(
2567 ) = 0;
2568
2569 virtual VSS_BACKUP_TYPE STDMETHODCALLTYPE GetBackupType(
2570 ) = 0;
2571
2572 virtual VSS_RESTORE_TYPE STDMETHODCALLTYPE GetRestoreType(
2573 ) = 0;
2574
2575 virtual HRESULT STDMETHODCALLTYPE SetWriterFailure(
2576 HRESULT hr) = 0;
2577
2578 virtual boolean STDMETHODCALLTYPE IsPartialFileSupportEnabled(
2579 ) = 0;
2580
2581 virtual HRESULT STDMETHODCALLTYPE InstallAlternateWriter(
2582 VSS_ID idWriter,
2583 CLSID clsid) = 0;
2584
2585 virtual IVssExamineWriterMetadata * STDMETHODCALLTYPE GetIdentityInformation(
2586 ) = 0;
2587
2588 virtual HRESULT STDMETHODCALLTYPE SetWriterFailureEx(
2589 HRESULT hr,
2590 HRESULT hrApplication,
2591 LPCWSTR wszApplicationMessage) = 0;
2592
2593 virtual HRESULT STDMETHODCALLTYPE GetSessionId(
2594 VSS_ID *idSession) = 0;
2595
2596 virtual boolean STDMETHODCALLTYPE IsWriterShuttingDown(
2597 ) = 0;
2598
2599};
2600#ifdef __CRT_UUID_DECL
2601__CRT_UUID_DECL(IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
2602#endif
2603#else
2604typedef struct IVssWriterImplVtbl {
2605 BEGIN_INTERFACE
2606
2607 /*** IUnknown methods ***/
2608 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2609 IVssWriterImpl *This,
2610 REFIID riid,
2611 void **ppvObject);
2612
2613 ULONG (STDMETHODCALLTYPE *AddRef)(
2614 IVssWriterImpl *This);
2615
2616 ULONG (STDMETHODCALLTYPE *Release)(
2617 IVssWriterImpl *This);
2618
2619 /*** IVssWriterImpl methods ***/
2620 HRESULT (STDMETHODCALLTYPE *Initialize)(
2621 IVssWriterImpl *This,
2622 VSS_ID writerId,
2623 LPCWSTR wszWriterName,
2624 LPCWSTR wszWriterInstanceName,
2625 DWORD dwMajorVersion,
2626 DWORD dwMinorVersion,
2627 VSS_USAGE_TYPE ut,
2628 VSS_SOURCE_TYPE st,
2629 VSS_APPLICATION_LEVEL nLevel,
2630 DWORD dwTimeout,
2631 VSS_ALTERNATE_WRITER_STATE aws,
2632 boolean bIOThrottlingOnly);
2633
2634 HRESULT (STDMETHODCALLTYPE *Subscribe)(
2635 IVssWriterImpl *This,
2636 DWORD dwSubscribeTimeout,
2637 DWORD dwEventFlags);
2638
2639 HRESULT (STDMETHODCALLTYPE *Unsubscribe)(
2640 IVssWriterImpl *This);
2641
2642 void (STDMETHODCALLTYPE *Uninitialize)(
2643 IVssWriterImpl *This);
2644
2645 LPCWSTR * (STDMETHODCALLTYPE *GetCurrentVolumeArray)(
2646 IVssWriterImpl *This);
2647
2648 UINT (STDMETHODCALLTYPE *GetCurrentVolumeCount)(
2649 IVssWriterImpl *This);
2650
2651 HRESULT (STDMETHODCALLTYPE *GetSnapshotDeviceName)(
2652 IVssWriterImpl *This,
2653 LPCWSTR wszOriginalVolume,
2654 LPCWSTR *ppwszSnapshotDevice);
2655
2656 VSS_ID * (STDMETHODCALLTYPE *GetCurrentSnapshotSetId)(
2657 IVssWriterImpl *This,
2658 VSS_ID *__ret);
2659
2660 LONG (STDMETHODCALLTYPE *GetContext)(
2661 IVssWriterImpl *This);
2662
2663 VSS_APPLICATION_LEVEL (STDMETHODCALLTYPE *GetCurrentLevel)(
2664 IVssWriterImpl *This);
2665
2666 boolean (STDMETHODCALLTYPE *IsPathAffected)(
2667 IVssWriterImpl *This,
2668 LPCWSTR wszPath);
2669
2670 boolean (STDMETHODCALLTYPE *IsBootableSystemStateBackedUp)(
2671 IVssWriterImpl *This);
2672
2673 boolean (STDMETHODCALLTYPE *AreComponentsSelected)(
2674 IVssWriterImpl *This);
2675
2676 VSS_BACKUP_TYPE (STDMETHODCALLTYPE *GetBackupType)(
2677 IVssWriterImpl *This);
2678
2679 VSS_RESTORE_TYPE (STDMETHODCALLTYPE *GetRestoreType)(
2680 IVssWriterImpl *This);
2681
2682 HRESULT (STDMETHODCALLTYPE *SetWriterFailure)(
2683 IVssWriterImpl *This,
2684 HRESULT hr);
2685
2686 boolean (STDMETHODCALLTYPE *IsPartialFileSupportEnabled)(
2687 IVssWriterImpl *This);
2688
2689 HRESULT (STDMETHODCALLTYPE *InstallAlternateWriter)(
2690 IVssWriterImpl *This,
2691 VSS_ID idWriter,
2692 CLSID clsid);
2693
2694 IVssExamineWriterMetadata * (STDMETHODCALLTYPE *GetIdentityInformation)(
2695 IVssWriterImpl *This);
2696
2697 HRESULT (STDMETHODCALLTYPE *SetWriterFailureEx)(
2698 IVssWriterImpl *This,
2699 HRESULT hr,
2700 HRESULT hrApplication,
2701 LPCWSTR wszApplicationMessage);
2702
2703 HRESULT (STDMETHODCALLTYPE *GetSessionId)(
2704 IVssWriterImpl *This,
2705 VSS_ID *idSession);
2706
2707 boolean (STDMETHODCALLTYPE *IsWriterShuttingDown)(
2708 IVssWriterImpl *This);
2709
2710 END_INTERFACE
2711} IVssWriterImplVtbl;
2712
2713interface IVssWriterImpl {
2714 CONST_VTBL IVssWriterImplVtbl* lpVtbl;
2715};
2716
2717#ifdef COBJMACROS
2718#ifndef WIDL_C_INLINE_WRAPPERS
2719/*** IUnknown methods ***/
2720#define IVssWriterImpl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2721#define IVssWriterImpl_AddRef(This) (This)->lpVtbl->AddRef(This)
2722#define IVssWriterImpl_Release(This) (This)->lpVtbl->Release(This)
2723/*** IVssWriterImpl methods ***/
2724#define IVssWriterImpl_Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly) (This)->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly)
2725#define IVssWriterImpl_Subscribe(This,dwSubscribeTimeout,dwEventFlags) (This)->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags)
2726#define IVssWriterImpl_Unsubscribe(This) (This)->lpVtbl->Unsubscribe(This)
2727#define IVssWriterImpl_Uninitialize(This) (This)->lpVtbl->Uninitialize(This)
2728#define IVssWriterImpl_GetCurrentVolumeArray(This) (This)->lpVtbl->GetCurrentVolumeArray(This)
2729#define IVssWriterImpl_GetCurrentVolumeCount(This) (This)->lpVtbl->GetCurrentVolumeCount(This)
2730#define IVssWriterImpl_GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice) (This)->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice)
2731#define IVssWriterImpl_GetCurrentSnapshotSetId(This) IVssWriterImpl_GetCurrentSnapshotSetId_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
2732#define IVssWriterImpl_GetContext(This) (This)->lpVtbl->GetContext(This)
2733#define IVssWriterImpl_GetCurrentLevel(This) (This)->lpVtbl->GetCurrentLevel(This)
2734#define IVssWriterImpl_IsPathAffected(This,wszPath) (This)->lpVtbl->IsPathAffected(This,wszPath)
2735#define IVssWriterImpl_IsBootableSystemStateBackedUp(This) (This)->lpVtbl->IsBootableSystemStateBackedUp(This)
2736#define IVssWriterImpl_AreComponentsSelected(This) (This)->lpVtbl->AreComponentsSelected(This)
2737#define IVssWriterImpl_GetBackupType(This) (This)->lpVtbl->GetBackupType(This)
2738#define IVssWriterImpl_GetRestoreType(This) (This)->lpVtbl->GetRestoreType(This)
2739#define IVssWriterImpl_SetWriterFailure(This,hr) (This)->lpVtbl->SetWriterFailure(This,hr)
2740#define IVssWriterImpl_IsPartialFileSupportEnabled(This) (This)->lpVtbl->IsPartialFileSupportEnabled(This)
2741#define IVssWriterImpl_InstallAlternateWriter(This,idWriter,clsid) (This)->lpVtbl->InstallAlternateWriter(This,idWriter,clsid)
2742#define IVssWriterImpl_GetIdentityInformation(This) (This)->lpVtbl->GetIdentityInformation(This)
2743#define IVssWriterImpl_SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage) (This)->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage)
2744#define IVssWriterImpl_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession)
2745#define IVssWriterImpl_IsWriterShuttingDown(This) (This)->lpVtbl->IsWriterShuttingDown(This)
2746#else
2747/*** IUnknown methods ***/
2748static inline HRESULT IVssWriterImpl_QueryInterface(IVssWriterImpl* This,REFIID riid,void **ppvObject) {
2749 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2750}
2751static inline ULONG IVssWriterImpl_AddRef(IVssWriterImpl* This) {
2752 return This->lpVtbl->AddRef(This);
2753}
2754static inline ULONG IVssWriterImpl_Release(IVssWriterImpl* This) {
2755 return This->lpVtbl->Release(This);
2756}
2757/*** IVssWriterImpl methods ***/
2758static inline HRESULT IVssWriterImpl_Initialize(IVssWriterImpl* This,VSS_ID writerId,LPCWSTR wszWriterName,LPCWSTR wszWriterInstanceName,DWORD dwMajorVersion,DWORD dwMinorVersion,VSS_USAGE_TYPE ut,VSS_SOURCE_TYPE st,VSS_APPLICATION_LEVEL nLevel,DWORD dwTimeout,VSS_ALTERNATE_WRITER_STATE aws,boolean bIOThrottlingOnly) {
2759 return This->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly);
2760}
2761static inline HRESULT IVssWriterImpl_Subscribe(IVssWriterImpl* This,DWORD dwSubscribeTimeout,DWORD dwEventFlags) {
2762 return This->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags);
2763}
2764static inline HRESULT IVssWriterImpl_Unsubscribe(IVssWriterImpl* This) {
2765 return This->lpVtbl->Unsubscribe(This);
2766}
2767static inline void IVssWriterImpl_Uninitialize(IVssWriterImpl* This) {
2768 This->lpVtbl->Uninitialize(This);
2769}
2770static inline LPCWSTR * IVssWriterImpl_GetCurrentVolumeArray(IVssWriterImpl* This) {
2771 return This->lpVtbl->GetCurrentVolumeArray(This);
2772}
2773static inline UINT IVssWriterImpl_GetCurrentVolumeCount(IVssWriterImpl* This) {
2774 return This->lpVtbl->GetCurrentVolumeCount(This);
2775}
2776static inline HRESULT IVssWriterImpl_GetSnapshotDeviceName(IVssWriterImpl* This,LPCWSTR wszOriginalVolume,LPCWSTR *ppwszSnapshotDevice) {
2777 return This->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice);
2778}
2779static inline VSS_ID IVssWriterImpl_GetCurrentSnapshotSetId(IVssWriterImpl* This) {
2780 VSS_ID __ret;
2781 return *This->lpVtbl->GetCurrentSnapshotSetId(This,&__ret);
2782}
2783static inline LONG IVssWriterImpl_GetContext(IVssWriterImpl* This) {
2784 return This->lpVtbl->GetContext(This);
2785}
2786static inline VSS_APPLICATION_LEVEL IVssWriterImpl_GetCurrentLevel(IVssWriterImpl* This) {
2787 return This->lpVtbl->GetCurrentLevel(This);
2788}
2789static inline boolean IVssWriterImpl_IsPathAffected(IVssWriterImpl* This,LPCWSTR wszPath) {
2790 return This->lpVtbl->IsPathAffected(This,wszPath);
2791}
2792static inline boolean IVssWriterImpl_IsBootableSystemStateBackedUp(IVssWriterImpl* This) {
2793 return This->lpVtbl->IsBootableSystemStateBackedUp(This);
2794}
2795static inline boolean IVssWriterImpl_AreComponentsSelected(IVssWriterImpl* This) {
2796 return This->lpVtbl->AreComponentsSelected(This);
2797}
2798static inline VSS_BACKUP_TYPE IVssWriterImpl_GetBackupType(IVssWriterImpl* This) {
2799 return This->lpVtbl->GetBackupType(This);
2800}
2801static inline VSS_RESTORE_TYPE IVssWriterImpl_GetRestoreType(IVssWriterImpl* This) {
2802 return This->lpVtbl->GetRestoreType(This);
2803}
2804static inline HRESULT IVssWriterImpl_SetWriterFailure(IVssWriterImpl* This,HRESULT hr) {
2805 return This->lpVtbl->SetWriterFailure(This,hr);
2806}
2807static inline boolean IVssWriterImpl_IsPartialFileSupportEnabled(IVssWriterImpl* This) {
2808 return This->lpVtbl->IsPartialFileSupportEnabled(This);
2809}
2810static inline HRESULT IVssWriterImpl_InstallAlternateWriter(IVssWriterImpl* This,VSS_ID idWriter,CLSID clsid) {
2811 return This->lpVtbl->InstallAlternateWriter(This,idWriter,clsid);
2812}
2813static inline IVssExamineWriterMetadata * IVssWriterImpl_GetIdentityInformation(IVssWriterImpl* This) {
2814 return This->lpVtbl->GetIdentityInformation(This);
2815}
2816static inline HRESULT IVssWriterImpl_SetWriterFailureEx(IVssWriterImpl* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage) {
2817 return This->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage);
2818}
2819static inline HRESULT IVssWriterImpl_GetSessionId(IVssWriterImpl* This,VSS_ID *idSession) {
2820 return This->lpVtbl->GetSessionId(This,idSession);
2821}
2822static inline boolean IVssWriterImpl_IsWriterShuttingDown(IVssWriterImpl* This) {
2823 return This->lpVtbl->IsWriterShuttingDown(This);
2824}
2825#endif
2826#endif
2827
2828#endif
2829
2830
2831#endif /* __IVssWriterImpl_INTERFACE_DEFINED__ */
2832
2833/*****************************************************************************
2834 * IVssCreateExpressWriterMetadata interface
2835 */
2836#ifndef __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__
2837#define __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__
2838
2839DEFINE_GUID(IID_IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3);
2840#if defined(__cplusplus) && !defined(CINTERFACE)
2841MIDL_INTERFACE("9c772e77-b26e-427f-92dd-c996f41ea5e3")
2842IVssCreateExpressWriterMetadata : public IUnknown
2843{
2844 virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles(
2845 LPCWSTR wszPath,
2846 LPCWSTR wszFilespec,
2847 boolean bRecursive) = 0;
2848
2849 virtual HRESULT STDMETHODCALLTYPE AddComponent(
2850 VSS_COMPONENT_TYPE ct,
2851 LPCWSTR wszLogicalPath,
2852 LPCWSTR wszComponentName,
2853 LPCWSTR wszCaption,
2854 const BYTE *pbIcon,
2855 UINT cbIcon,
2856 boolean bRestoreMetadata,
2857 boolean bNotifyOnBackupComplete,
2858 boolean bSelectable,
2859 boolean bSelectableForRestore = 0,
2860 DWORD dwComponentFlags = 0) = 0;
2861
2862 virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup(
2863 LPCWSTR wszLogicalPath,
2864 LPCWSTR wszGroupName,
2865 LPCWSTR wszPath,
2866 LPCWSTR wszFilespec,
2867 boolean bRecursive,
2868 LPCWSTR wszAlternateLocation,
2869 DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
2870
2871 virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod(
2872 VSS_RESTOREMETHOD_ENUM method,
2873 LPCWSTR wszService,
2874 LPCWSTR wszUserProcedure,
2875 VSS_WRITERRESTORE_ENUM writerRestore,
2876 boolean bRebootRequired) = 0;
2877
2878 virtual HRESULT STDMETHODCALLTYPE AddComponentDependency(
2879 LPCWSTR wszForLogicalPath,
2880 LPCWSTR wszForComponentName,
2881 VSS_ID onWriterId,
2882 LPCWSTR wszOnLogicalPath,
2883 LPCWSTR wszOnComponentName) = 0;
2884
2885 virtual HRESULT STDMETHODCALLTYPE SetBackupSchema(
2886 DWORD dwSchemaMask) = 0;
2887
2888 virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
2889 BSTR *pbstrXML) = 0;
2890
2891};
2892#ifdef __CRT_UUID_DECL
2893__CRT_UUID_DECL(IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3)
2894#endif
2895#else
2896typedef struct IVssCreateExpressWriterMetadataVtbl {
2897 BEGIN_INTERFACE
2898
2899 /*** IUnknown methods ***/
2900 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2901 IVssCreateExpressWriterMetadata *This,
2902 REFIID riid,
2903 void **ppvObject);
2904
2905 ULONG (STDMETHODCALLTYPE *AddRef)(
2906 IVssCreateExpressWriterMetadata *This);
2907
2908 ULONG (STDMETHODCALLTYPE *Release)(
2909 IVssCreateExpressWriterMetadata *This);
2910
2911 /*** IVssCreateExpressWriterMetadata methods ***/
2912 HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
2913 IVssCreateExpressWriterMetadata *This,
2914 LPCWSTR wszPath,
2915 LPCWSTR wszFilespec,
2916 boolean bRecursive);
2917
2918 HRESULT (STDMETHODCALLTYPE *AddComponent)(
2919 IVssCreateExpressWriterMetadata *This,
2920 VSS_COMPONENT_TYPE ct,
2921 LPCWSTR wszLogicalPath,
2922 LPCWSTR wszComponentName,
2923 LPCWSTR wszCaption,
2924 const BYTE *pbIcon,
2925 UINT cbIcon,
2926 boolean bRestoreMetadata,
2927 boolean bNotifyOnBackupComplete,
2928 boolean bSelectable,
2929 boolean bSelectableForRestore,
2930 DWORD dwComponentFlags);
2931
2932 HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)(
2933 IVssCreateExpressWriterMetadata *This,
2934 LPCWSTR wszLogicalPath,
2935 LPCWSTR wszGroupName,
2936 LPCWSTR wszPath,
2937 LPCWSTR wszFilespec,
2938 boolean bRecursive,
2939 LPCWSTR wszAlternateLocation,
2940 DWORD dwBackupTypeMask);
2941
2942 HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)(
2943 IVssCreateExpressWriterMetadata *This,
2944 VSS_RESTOREMETHOD_ENUM method,
2945 LPCWSTR wszService,
2946 LPCWSTR wszUserProcedure,
2947 VSS_WRITERRESTORE_ENUM writerRestore,
2948 boolean bRebootRequired);
2949
2950 HRESULT (STDMETHODCALLTYPE *AddComponentDependency)(
2951 IVssCreateExpressWriterMetadata *This,
2952 LPCWSTR wszForLogicalPath,
2953 LPCWSTR wszForComponentName,
2954 VSS_ID onWriterId,
2955 LPCWSTR wszOnLogicalPath,
2956 LPCWSTR wszOnComponentName);
2957
2958 HRESULT (STDMETHODCALLTYPE *SetBackupSchema)(
2959 IVssCreateExpressWriterMetadata *This,
2960 DWORD dwSchemaMask);
2961
2962 HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
2963 IVssCreateExpressWriterMetadata *This,
2964 BSTR *pbstrXML);
2965
2966 END_INTERFACE
2967} IVssCreateExpressWriterMetadataVtbl;
2968
2969interface IVssCreateExpressWriterMetadata {
2970 CONST_VTBL IVssCreateExpressWriterMetadataVtbl* lpVtbl;
2971};
2972
2973#ifdef COBJMACROS
2974#ifndef WIDL_C_INLINE_WRAPPERS
2975/*** IUnknown methods ***/
2976#define IVssCreateExpressWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2977#define IVssCreateExpressWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
2978#define IVssCreateExpressWriterMetadata_Release(This) (This)->lpVtbl->Release(This)
2979/*** IVssCreateExpressWriterMetadata methods ***/
2980#define IVssCreateExpressWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
2981#define IVssCreateExpressWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
2982#define IVssCreateExpressWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
2983#define IVssCreateExpressWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
2984#define IVssCreateExpressWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
2985#define IVssCreateExpressWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
2986#define IVssCreateExpressWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
2987#else
2988/*** IUnknown methods ***/
2989static inline HRESULT IVssCreateExpressWriterMetadata_QueryInterface(IVssCreateExpressWriterMetadata* This,REFIID riid,void **ppvObject) {
2990 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2991}
2992static inline ULONG IVssCreateExpressWriterMetadata_AddRef(IVssCreateExpressWriterMetadata* This) {
2993 return This->lpVtbl->AddRef(This);
2994}
2995static inline ULONG IVssCreateExpressWriterMetadata_Release(IVssCreateExpressWriterMetadata* This) {
2996 return This->lpVtbl->Release(This);
2997}
2998/*** IVssCreateExpressWriterMetadata methods ***/
2999static inline HRESULT IVssCreateExpressWriterMetadata_AddExcludeFiles(IVssCreateExpressWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
3000 return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
3001}
3002static inline HRESULT IVssCreateExpressWriterMetadata_AddComponent(IVssCreateExpressWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
3003 return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
3004}
3005static inline HRESULT IVssCreateExpressWriterMetadata_AddFilesToFileGroup(IVssCreateExpressWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
3006 return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
3007}
3008static inline HRESULT IVssCreateExpressWriterMetadata_SetRestoreMethod(IVssCreateExpressWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
3009 return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
3010}
3011static inline HRESULT IVssCreateExpressWriterMetadata_AddComponentDependency(IVssCreateExpressWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
3012 return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
3013}
3014static inline HRESULT IVssCreateExpressWriterMetadata_SetBackupSchema(IVssCreateExpressWriterMetadata* This,DWORD dwSchemaMask) {
3015 return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
3016}
3017static inline HRESULT IVssCreateExpressWriterMetadata_SaveAsXML(IVssCreateExpressWriterMetadata* This,BSTR *pbstrXML) {
3018 return This->lpVtbl->SaveAsXML(This,pbstrXML);
3019}
3020#endif
3021#endif
3022
3023#endif
3024
3025
3026#endif /* __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__ */
3027
3028/*****************************************************************************
3029 * IVssExpressWriter interface
3030 */
3031#ifndef __IVssExpressWriter_INTERFACE_DEFINED__
3032#define __IVssExpressWriter_INTERFACE_DEFINED__
3033
3034DEFINE_GUID(IID_IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35);
3035#if defined(__cplusplus) && !defined(CINTERFACE)
3036MIDL_INTERFACE("e33affdc-59c7-47b1-97d5-4266598f6235")
3037IVssExpressWriter : public IUnknown
3038{
3039 virtual HRESULT STDMETHODCALLTYPE CreateMetadata(
3040 VSS_ID writerId,
3041 LPCWSTR writerName,
3042 VSS_USAGE_TYPE usageType,
3043 DWORD versionMajor,
3044 DWORD versionMinor,
3045 DWORD reserved,
3046 IVssCreateExpressWriterMetadata **ppMetadata) = 0;
3047
3048 virtual HRESULT STDMETHODCALLTYPE LoadMetadata(
3049 LPCWSTR metadata,
3050 DWORD reserved) = 0;
3051
3052 virtual HRESULT STDMETHODCALLTYPE Register(
3053 ) = 0;
3054
3055 virtual HRESULT STDMETHODCALLTYPE Unregister(
3056 VSS_ID writerId) = 0;
3057
3058};
3059#ifdef __CRT_UUID_DECL
3060__CRT_UUID_DECL(IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35)
3061#endif
3062#else
3063typedef struct IVssExpressWriterVtbl {
3064 BEGIN_INTERFACE
3065
3066 /*** IUnknown methods ***/
3067 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3068 IVssExpressWriter *This,
3069 REFIID riid,
3070 void **ppvObject);
3071
3072 ULONG (STDMETHODCALLTYPE *AddRef)(
3073 IVssExpressWriter *This);
3074
3075 ULONG (STDMETHODCALLTYPE *Release)(
3076 IVssExpressWriter *This);
3077
3078 /*** IVssExpressWriter methods ***/
3079 HRESULT (STDMETHODCALLTYPE *CreateMetadata)(
3080 IVssExpressWriter *This,
3081 VSS_ID writerId,
3082 LPCWSTR writerName,
3083 VSS_USAGE_TYPE usageType,
3084 DWORD versionMajor,
3085 DWORD versionMinor,
3086 DWORD reserved,
3087 IVssCreateExpressWriterMetadata **ppMetadata);
3088
3089 HRESULT (STDMETHODCALLTYPE *LoadMetadata)(
3090 IVssExpressWriter *This,
3091 LPCWSTR metadata,
3092 DWORD reserved);
3093
3094 HRESULT (STDMETHODCALLTYPE *Register)(
3095 IVssExpressWriter *This);
3096
3097 HRESULT (STDMETHODCALLTYPE *Unregister)(
3098 IVssExpressWriter *This,
3099 VSS_ID writerId);
3100
3101 END_INTERFACE
3102} IVssExpressWriterVtbl;
3103
3104interface IVssExpressWriter {
3105 CONST_VTBL IVssExpressWriterVtbl* lpVtbl;
3106};
3107
3108#ifdef COBJMACROS
3109#ifndef WIDL_C_INLINE_WRAPPERS
3110/*** IUnknown methods ***/
3111#define IVssExpressWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3112#define IVssExpressWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
3113#define IVssExpressWriter_Release(This) (This)->lpVtbl->Release(This)
3114/*** IVssExpressWriter methods ***/
3115#define IVssExpressWriter_CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) (This)->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata)
3116#define IVssExpressWriter_LoadMetadata(This,metadata,reserved) (This)->lpVtbl->LoadMetadata(This,metadata,reserved)
3117#define IVssExpressWriter_Register(This) (This)->lpVtbl->Register(This)
3118#define IVssExpressWriter_Unregister(This,writerId) (This)->lpVtbl->Unregister(This,writerId)
3119#else
3120/*** IUnknown methods ***/
3121static inline HRESULT IVssExpressWriter_QueryInterface(IVssExpressWriter* This,REFIID riid,void **ppvObject) {
3122 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3123}
3124static inline ULONG IVssExpressWriter_AddRef(IVssExpressWriter* This) {
3125 return This->lpVtbl->AddRef(This);
3126}
3127static inline ULONG IVssExpressWriter_Release(IVssExpressWriter* This) {
3128 return This->lpVtbl->Release(This);
3129}
3130/*** IVssExpressWriter methods ***/
3131static inline HRESULT IVssExpressWriter_CreateMetadata(IVssExpressWriter* This,VSS_ID writerId,LPCWSTR writerName,VSS_USAGE_TYPE usageType,DWORD versionMajor,DWORD versionMinor,DWORD reserved,IVssCreateExpressWriterMetadata **ppMetadata) {
3132 return This->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata);
3133}
3134static inline HRESULT IVssExpressWriter_LoadMetadata(IVssExpressWriter* This,LPCWSTR metadata,DWORD reserved) {
3135 return This->lpVtbl->LoadMetadata(This,metadata,reserved);
3136}
3137static inline HRESULT IVssExpressWriter_Register(IVssExpressWriter* This) {
3138 return This->lpVtbl->Register(This);
3139}
3140static inline HRESULT IVssExpressWriter_Unregister(IVssExpressWriter* This,VSS_ID writerId) {
3141 return This->lpVtbl->Unregister(This,writerId);
3142}
3143#endif
3144#endif
3145
3146#endif
3147
3148
3149#endif /* __IVssExpressWriter_INTERFACE_DEFINED__ */
3150
3151#endif /* WINAPI_PARTITION_DESKTOP */
3152/* Begin additional prototypes for all interfaces */
3153
3154ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
3155unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
3156unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
3157void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
3158
3159/* End additional prototypes */
3160
3161#ifdef __cplusplus
3162}
3163#endif
3164
3165#endif /* __vswriter_h__ */