Skip to content

Commit 3904423

Browse files
oleg-dubinskiylearn-more
authored andcommitted
[PSDK] Import vsbackup.idl from Wine and enable it in CMakeLists.txt
Required by vssapi stubs CORE-9511.
1 parent 9994a43 commit 3904423

File tree

2 files changed

+109
-0
lines changed

2 files changed

+109
-0
lines changed

sdk/include/psdk/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ list(APPEND SOURCE
126126
urlmon.idl
127127
vmr9.idl
128128
# vmrender.idl
129+
vsbackup.idl
129130
vss.idl
130131
vswriter.idl
131132
wbemcli.idl

sdk/include/psdk/vsbackup.idl

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/*
2+
* Copyright 2019 Alistair Leslie-Hughes
3+
*
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.
8+
*
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.
13+
*
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
17+
*/
18+
19+
import "oaidl.idl";
20+
import "vswriter.idl";
21+
import "vss.idl";
22+
23+
interface IVssAsync;
24+
interface IVssEnumObject;
25+
interface IVssExamineWriterMetadata;
26+
interface IVssWriterComponentsExt;
27+
28+
cpp_quote("#ifdef _cplusplus")
29+
cpp_quote("extern \"C\" {")
30+
cpp_quote("#endif")
31+
cpp_quote("HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup);")
32+
cpp_quote("#ifdef _cplusplus")
33+
cpp_quote("}")
34+
cpp_quote("#endif")
35+
36+
cpp_quote("static inline HRESULT CreateVssBackupComponents(IVssBackupComponents **backup)")
37+
cpp_quote(" { return CreateVssBackupComponentsInternal(backup); }")
38+
39+
[
40+
uuid("665c1d5f-c218-414d-a05d-7fef5f9d5c86"),
41+
local
42+
]
43+
interface IVssBackupComponents : IUnknown
44+
{
45+
HRESULT GetWriterComponentsCount([out] UINT *components);
46+
HRESULT GetWriterComponents([in] UINT index, [out] IVssWriterComponentsExt **writer);
47+
HRESULT InitializeForBackup( [in, optional, defaultvalue(NULL)] BSTR bstrXML);
48+
HRESULT SetBackupState([in] BOOL select_components, [in] BOOL state,
49+
[in] VSS_BACKUP_TYPE type, [in, defaultvalue(FALSE)] BOOL partial_support);
50+
HRESULT InitializeForRestore([in] BSTR xml);
51+
HRESULT SetRestoreState([in] VSS_RESTORE_TYPE restore);
52+
HRESULT GatherWriterMetadata([out] IVssAsync **async);
53+
HRESULT GetWriterMetadataCount([out] UINT *count);
54+
HRESULT GetWriterMetadata([in] UINT index, [out] VSS_ID *instance, [out] IVssExamineWriterMetadata **metadata);
55+
HRESULT FreeWriterMetadata();
56+
HRESULT AddComponent([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR wszLogicalPath,
57+
[in] LPCWSTR name);
58+
HRESULT PrepareForBackup([out] IVssAsync **async);
59+
HRESULT AbortBackup();
60+
HRESULT GatherWriterStatus([out] IVssAsync **async);
61+
HRESULT GetWriterStatusCount([out] UINT *count);
62+
HRESULT FreeWriterStatus();
63+
HRESULT GetWriterStatus([in] UINT index, [out] VSS_ID *instance, [out] VSS_ID *id, [out] BSTR *writer,
64+
[out] VSS_WRITER_STATE *status, [out] HRESULT *failure);
65+
HRESULT SetBackupSucceeded([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct,
66+
[in] LPCWSTR path, [in] LPCWSTR name, [in] BOOL succeded);
67+
HRESULT SetBackupOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path,
68+
[in] LPCWSTR name, [in] LPCWSTR options);
69+
HRESULT SetSelectedForRestore([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path,
70+
[in] LPCWSTR name, [in] BOOL selected_restore);
71+
HRESULT SetRestoreOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
72+
[in] LPCWSTR options);
73+
HRESULT SetAdditionalRestores([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
74+
[in] BOOL additional);
75+
HRESULT SetPreviousBackupStamp([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
76+
[in] LPCWSTR stamp);
77+
HRESULT SaveAsXML([in] BSTR *xml);
78+
HRESULT BackupComplete([out] IVssAsync **async);
79+
HRESULT AddAlternativeLocationMapping([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical,
80+
[in] LPCWSTR name, [in] LPCWSTR path, [in] LPCWSTR filespec, [in] BOOL recursive, [in] LPCWSTR destination);
81+
HRESULT AddRestoreSubcomponent([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical, [in] LPCWSTR name,
82+
[in] LPCWSTR path, [in] LPCWSTR sub_name, [in] BOOL repair);
83+
HRESULT SetFileRestoreStatus([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
84+
[in] VSS_FILE_RESTORE_STATUS status);
85+
HRESULT AddNewTarget([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component,
86+
[in] LPCWSTR path, [in] LPCWSTR filename, [in] BOOL recursive, [in] LPCWSTR alternate);
87+
HRESULT SetRangesFilePath([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component,
88+
[in] UINT partial, [in] LPCWSTR ranges);
89+
HRESULT PreRestore([out] IVssAsync **async);
90+
HRESULT PostRestore([out] IVssAsync **async);
91+
HRESULT SetContext([in] LONG context);
92+
HRESULT StartSnapshotSet([out] VSS_ID *id);
93+
HRESULT AddToSnapshotSet([in] VSS_PWSZ volume,[in] VSS_ID id,[out] VSS_ID *snapshot);
94+
HRESULT DoSnapshotSet([out] IVssAsync ** async);
95+
HRESULT DeleteSnapshots([in] VSS_ID object, [in] VSS_OBJECT_TYPE type, [in] BOOL force, [in] LONG *snapshots, [in] VSS_ID *id);
96+
HRESULT ImportSnapshots([out] IVssAsync **async);
97+
HRESULT BreakSnapshotSet([in] VSS_ID snapshot);
98+
HRESULT GetSnapshotProperties([in] VSS_ID snapshot, [out] VSS_SNAPSHOT_PROP *prop);
99+
HRESULT Query([in] VSS_ID queried, [in] VSS_OBJECT_TYPE queried_type, [in] VSS_OBJECT_TYPE returned_type, [in] IVssEnumObject **enums);
100+
HRESULT IsVolumeSupported([in] VSS_ID provider, [in] VSS_PWSZ volume,[in] BOOL *supported);
101+
HRESULT DisableWriterClasses([in] const VSS_ID *writer_id, [in] UINT class_id);
102+
HRESULT EnableWriterClasses([in] const VSS_ID *classid, [in] UINT id);
103+
HRESULT DisableWriterInstances([in] const VSS_ID *instance, [in] UINT id);
104+
HRESULT ExposeSnapshot([in] VSS_ID snapshot, [in] VSS_PWSZ path, [in] LONG attributes,
105+
[in] VSS_PWSZ expose, [out] VSS_PWSZ *exposed);
106+
HRESULT RevertToSnapshot([in] VSS_ID snapshot, [in] BOOL force);
107+
HRESULT QueryRevertStatus([in] VSS_PWSZ volume, [out] IVssAsync **async);
108+
};

0 commit comments

Comments
 (0)