https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3904423d8feba0006245c8...
commit 3904423d8feba0006245c89db5af461276e9eb85 Author: Oleg Dubinskiy oleg.dubinskij2013@yandex.ua AuthorDate: Wed Mar 25 21:09:17 2020 +0200 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sun Jun 7 19:45:05 2020 +0200
[PSDK] Import vsbackup.idl from Wine and enable it in CMakeLists.txt Required by vssapi stubs CORE-9511. --- sdk/include/psdk/CMakeLists.txt | 1 + sdk/include/psdk/vsbackup.idl | 108 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+)
diff --git a/sdk/include/psdk/CMakeLists.txt b/sdk/include/psdk/CMakeLists.txt index a30e7cd47cf..36540fa1317 100644 --- a/sdk/include/psdk/CMakeLists.txt +++ b/sdk/include/psdk/CMakeLists.txt @@ -126,6 +126,7 @@ list(APPEND SOURCE urlmon.idl vmr9.idl # vmrender.idl + vsbackup.idl vss.idl vswriter.idl wbemcli.idl diff --git a/sdk/include/psdk/vsbackup.idl b/sdk/include/psdk/vsbackup.idl new file mode 100644 index 00000000000..446d1f98e3d --- /dev/null +++ b/sdk/include/psdk/vsbackup.idl @@ -0,0 +1,108 @@ +/* + * Copyright 2019 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; +import "vswriter.idl"; +import "vss.idl"; + +interface IVssAsync; +interface IVssEnumObject; +interface IVssExamineWriterMetadata; +interface IVssWriterComponentsExt; + +cpp_quote("#ifdef _cplusplus") +cpp_quote("extern "C" {") +cpp_quote("#endif") +cpp_quote("HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup);") +cpp_quote("#ifdef _cplusplus") +cpp_quote("}") +cpp_quote("#endif") + +cpp_quote("static inline HRESULT CreateVssBackupComponents(IVssBackupComponents **backup)") +cpp_quote(" { return CreateVssBackupComponentsInternal(backup); }") + +[ + uuid("665c1d5f-c218-414d-a05d-7fef5f9d5c86"), + local +] +interface IVssBackupComponents : IUnknown +{ + HRESULT GetWriterComponentsCount([out] UINT *components); + HRESULT GetWriterComponents([in] UINT index, [out] IVssWriterComponentsExt **writer); + HRESULT InitializeForBackup( [in, optional, defaultvalue(NULL)] BSTR bstrXML); + HRESULT SetBackupState([in] BOOL select_components, [in] BOOL state, + [in] VSS_BACKUP_TYPE type, [in, defaultvalue(FALSE)] BOOL partial_support); + HRESULT InitializeForRestore([in] BSTR xml); + HRESULT SetRestoreState([in] VSS_RESTORE_TYPE restore); + HRESULT GatherWriterMetadata([out] IVssAsync **async); + HRESULT GetWriterMetadataCount([out] UINT *count); + HRESULT GetWriterMetadata([in] UINT index, [out] VSS_ID *instance, [out] IVssExamineWriterMetadata **metadata); + HRESULT FreeWriterMetadata(); + HRESULT AddComponent([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR wszLogicalPath, + [in] LPCWSTR name); + HRESULT PrepareForBackup([out] IVssAsync **async); + HRESULT AbortBackup(); + HRESULT GatherWriterStatus([out] IVssAsync **async); + HRESULT GetWriterStatusCount([out] UINT *count); + HRESULT FreeWriterStatus(); + HRESULT GetWriterStatus([in] UINT index, [out] VSS_ID *instance, [out] VSS_ID *id, [out] BSTR *writer, + [out] VSS_WRITER_STATE *status, [out] HRESULT *failure); + HRESULT SetBackupSucceeded([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, + [in] LPCWSTR path, [in] LPCWSTR name, [in] BOOL succeded); + HRESULT SetBackupOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, + [in] LPCWSTR name, [in] LPCWSTR options); + HRESULT SetSelectedForRestore([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, + [in] LPCWSTR name, [in] BOOL selected_restore); + HRESULT SetRestoreOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name, + [in] LPCWSTR options); + HRESULT SetAdditionalRestores([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name, + [in] BOOL additional); + HRESULT SetPreviousBackupStamp([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name, + [in] LPCWSTR stamp); + HRESULT SaveAsXML([in] BSTR *xml); + HRESULT BackupComplete([out] IVssAsync **async); + HRESULT AddAlternativeLocationMapping([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical, + [in] LPCWSTR name, [in] LPCWSTR path, [in] LPCWSTR filespec, [in] BOOL recursive, [in] LPCWSTR destination); + HRESULT AddRestoreSubcomponent([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical, [in] LPCWSTR name, + [in] LPCWSTR path, [in] LPCWSTR sub_name, [in] BOOL repair); + HRESULT SetFileRestoreStatus([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name, + [in] VSS_FILE_RESTORE_STATUS status); + HRESULT AddNewTarget([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component, + [in] LPCWSTR path, [in] LPCWSTR filename, [in] BOOL recursive, [in] LPCWSTR alternate); + HRESULT SetRangesFilePath([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component, + [in] UINT partial, [in] LPCWSTR ranges); + HRESULT PreRestore([out] IVssAsync **async); + HRESULT PostRestore([out] IVssAsync **async); + HRESULT SetContext([in] LONG context); + HRESULT StartSnapshotSet([out] VSS_ID *id); + HRESULT AddToSnapshotSet([in] VSS_PWSZ volume,[in] VSS_ID id,[out] VSS_ID *snapshot); + HRESULT DoSnapshotSet([out] IVssAsync ** async); + HRESULT DeleteSnapshots([in] VSS_ID object, [in] VSS_OBJECT_TYPE type, [in] BOOL force, [in] LONG *snapshots, [in] VSS_ID *id); + HRESULT ImportSnapshots([out] IVssAsync **async); + HRESULT BreakSnapshotSet([in] VSS_ID snapshot); + HRESULT GetSnapshotProperties([in] VSS_ID snapshot, [out] VSS_SNAPSHOT_PROP *prop); + HRESULT Query([in] VSS_ID queried, [in] VSS_OBJECT_TYPE queried_type, [in] VSS_OBJECT_TYPE returned_type, [in] IVssEnumObject **enums); + HRESULT IsVolumeSupported([in] VSS_ID provider, [in] VSS_PWSZ volume,[in] BOOL *supported); + HRESULT DisableWriterClasses([in] const VSS_ID *writer_id, [in] UINT class_id); + HRESULT EnableWriterClasses([in] const VSS_ID *classid, [in] UINT id); + HRESULT DisableWriterInstances([in] const VSS_ID *instance, [in] UINT id); + HRESULT ExposeSnapshot([in] VSS_ID snapshot, [in] VSS_PWSZ path, [in] LONG attributes, + [in] VSS_PWSZ expose, [out] VSS_PWSZ *exposed); + HRESULT RevertToSnapshot([in] VSS_ID snapshot, [in] BOOL force); + HRESULT QueryRevertStatus([in] VSS_PWSZ volume, [out] IVssAsync **async); +};