2 * Copyright 2019 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 import
"vswriter.idl";
24 interface IVssEnumObject
;
25 interface IVssExamineWriterMetadata
;
26 interface IVssWriterComponentsExt
;
28 cpp_quote
("HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup);")
30 cpp_quote
("static inline HRESULT CreateVssBackupComponents(IVssBackupComponents **backup)")
31 cpp_quote
(" { return CreateVssBackupComponentsInternal(backup); }")
34 uuid("665c1d5f-c218-414d-a05d-7fef5f9d5c86"),
37 interface IVssBackupComponents
: IUnknown
39 HRESULT GetWriterComponentsCount
([out] UINT
*components
);
40 HRESULT GetWriterComponents
([in] UINT index
, [out] IVssWriterComponentsExt
**writer
);
41 HRESULT InitializeForBackup
( [in, optional, defaultvalue(NULL
)] BSTR bstrXML
);
42 HRESULT SetBackupState
([in] BOOL select_components
, [in] BOOL state
,
43 [in] VSS_BACKUP_TYPE type
, [in, defaultvalue(FALSE
)] BOOL partial_support
);
44 HRESULT InitializeForRestore
([in] BSTR xml
);
45 HRESULT SetRestoreState
([in] VSS_RESTORE_TYPE restore
);
46 HRESULT GatherWriterMetadata
([out] IVssAsync
**async
);
47 HRESULT GetWriterMetadataCount
([out] UINT
*count
);
48 HRESULT GetWriterMetadata
([in] UINT index
, [out] VSS_ID
*instance
, [out] IVssExamineWriterMetadata
**metadata
);
49 HRESULT FreeWriterMetadata
();
50 HRESULT AddComponent
([in] VSS_ID instance
, [in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR wszLogicalPath
,
52 HRESULT PrepareForBackup
([out] IVssAsync
**async
);
53 HRESULT AbortBackup
();
54 HRESULT GatherWriterStatus
([out] IVssAsync
**async
);
55 HRESULT GetWriterStatusCount
([out] UINT
*count
);
56 HRESULT FreeWriterStatus
();
57 HRESULT GetWriterStatus
([in] UINT index
, [out] VSS_ID
*instance
, [out] VSS_ID
*id, [out] BSTR *writer
,
58 [out] VSS_WRITER_STATE
*status
, [out] HRESULT *failure
);
59 HRESULT SetBackupSucceeded
([in] VSS_ID instance
, [in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
,
60 [in] LPCWSTR path
, [in] LPCWSTR name
, [in] BOOL succeeded
);
61 HRESULT SetBackupOptions
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
,
62 [in] LPCWSTR name
, [in] LPCWSTR options
);
63 HRESULT SetSelectedForRestore
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
,
64 [in] LPCWSTR name
, [in] BOOL selected_restore
);
65 HRESULT SetRestoreOptions
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
, [in] LPCWSTR name
,
66 [in] LPCWSTR options
);
67 HRESULT SetAdditionalRestores
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
, [in] LPCWSTR name
,
68 [in] BOOL additional
);
69 HRESULT SetPreviousBackupStamp
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
, [in] LPCWSTR name
,
71 HRESULT SaveAsXML
([in] BSTR *xml
);
72 HRESULT BackupComplete
([out] IVssAsync
**async
);
73 HRESULT AddAlternativeLocationMapping
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE type
, [in] LPCWSTR logical
,
74 [in] LPCWSTR name
, [in] LPCWSTR path
, [in] LPCWSTR filespec
, [in] BOOL recursive
, [in] LPCWSTR destination
);
75 HRESULT AddRestoreSubcomponent
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE type
, [in] LPCWSTR logical
, [in] LPCWSTR name
,
76 [in] LPCWSTR path
, [in] LPCWSTR sub_name
, [in] BOOL repair
);
77 HRESULT SetFileRestoreStatus
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR path
, [in] LPCWSTR name
,
78 [in] VSS_FILE_RESTORE_STATUS status
);
79 HRESULT AddNewTarget
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR logical
, [in] LPCWSTR component
,
80 [in] LPCWSTR path
, [in] LPCWSTR filename
, [in] BOOL recursive
, [in] LPCWSTR alternate
);
81 HRESULT SetRangesFilePath
([in] VSS_ID
id, [in] VSS_COMPONENT_TYPE ct
, [in] LPCWSTR logical
, [in] LPCWSTR component
,
82 [in] UINT partial
, [in] LPCWSTR ranges
);
83 HRESULT PreRestore
([out] IVssAsync
**async
);
84 HRESULT PostRestore
([out] IVssAsync
**async
);
85 HRESULT SetContext
([in] LONG context
);
86 HRESULT StartSnapshotSet
([out] VSS_ID
*id);
87 HRESULT AddToSnapshotSet
([in] VSS_PWSZ volume
,[in] VSS_ID
id,[out] VSS_ID
*snapshot
);
88 HRESULT DoSnapshotSet
([out] IVssAsync
** async
);
89 HRESULT DeleteSnapshots
([in] VSS_ID
object, [in] VSS_OBJECT_TYPE type
, [in] BOOL force
, [in] LONG *snapshots
, [in] VSS_ID
*id);
90 HRESULT ImportSnapshots
([out] IVssAsync
**async
);
91 HRESULT BreakSnapshotSet
([in] VSS_ID snapshot
);
92 HRESULT GetSnapshotProperties
([in] VSS_ID snapshot
, [out] VSS_SNAPSHOT_PROP
*prop
);
93 HRESULT Query
([in] VSS_ID queried
, [in] VSS_OBJECT_TYPE queried_type
, [in] VSS_OBJECT_TYPE returned_type
, [in] IVssEnumObject
**enums
);
94 HRESULT IsVolumeSupported
([in] VSS_ID provider
, [in] VSS_PWSZ volume
,[in] BOOL
*supported
);
95 HRESULT DisableWriterClasses
([in] const VSS_ID
*writer_id
, [in] UINT class_id
);
96 HRESULT EnableWriterClasses
([in] const VSS_ID
*classid
, [in] UINT
id);
97 HRESULT DisableWriterInstances
([in] const VSS_ID
*instance
, [in] UINT
id);
98 HRESULT ExposeSnapshot
([in] VSS_ID snapshot
, [in] VSS_PWSZ path
, [in] LONG attributes
,
99 [in] VSS_PWSZ expose
, [out] VSS_PWSZ
*exposed
);
100 HRESULT RevertToSnapshot
([in] VSS_ID snapshot
, [in] BOOL force
);
101 HRESULT QueryRevertStatus
([in] VSS_PWSZ volume
, [out] IVssAsync
**async
);