widl: Always check the runtimeclass interfaces presence.
[wine/zf.git] / include / vsbackup.idl
blob8cc7aa36e1c2c3f06a0c313f09a230f92f784b2f
1 /*
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
19 import "oaidl.idl";
20 import "vswriter.idl";
21 import "vss.idl";
23 interface IVssAsync;
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"),
35 local
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,
51 [in] LPCWSTR name);
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,
70 [in] LPCWSTR stamp);
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);