123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- /**
- * C++ interfaces, which are not COM interface, are declared with
- * uuid(00000000-0000-0000-0000-000000000000) to make widl happy
- */
- import "oaidl.idl";
- import "ocidl.idl";
- import "vss.idl";
- cpp_quote("#include <winapifamily.h>")
- cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
- cpp_quote("#include \"vsserror.h\" ")
- typedef enum VSS_USAGE_TYPE {
- VSS_UT_UNDEFINED = 0,
- VSS_UT_BOOTABLESYSTEMSTATE,
- VSS_UT_SYSTEMSERVICE,
- VSS_UT_USERDATA,
- VSS_UT_OTHER,
- } VSS_USAGE_TYPE;
- typedef enum VSS_SOURCE_TYPE {
- VSS_ST_UNDEFINED = 0,
- VSS_ST_TRANSACTEDDB,
- VSS_ST_NONTRANSACTEDDB,
- VSS_ST_OTHER,
- } VSS_SOURCE_TYPE;
- typedef enum VSS_RESTOREMETHOD_ENUM {
- VSS_RME_UNDEFINED = 0,
- VSS_RME_RESTORE_IF_NOT_THERE,
- VSS_RME_RESTORE_IF_CAN_REPLACE,
- VSS_RME_STOP_RESTORE_START,
- VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
- VSS_RME_RESTORE_AT_REBOOT,
- VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
- VSS_RME_CUSTOM,
- VSS_RME_RESTORE_STOP_START,
- } VSS_RESTOREMETHOD_ENUM;
- typedef enum VSS_WRITERRESTORE_ENUM {
- VSS_WRE_UNDEFINED = 0,
- VSS_WRE_NEVER,
- VSS_WRE_IF_REPLACE_FAILS,
- VSS_WRE_ALWAYS,
- } VSS_WRITERRESTORE_ENUM;
- typedef enum VSS_COMPONENT_TYPE {
- VSS_CT_UNDEFINED = 0,
- VSS_CT_DATABASE,
- VSS_CT_FILEGROUP,
- } VSS_COMPONENT_TYPE;
- typedef enum VSS_ALTERNATE_WRITER_STATE {
- VSS_AWS_UNDEFINED = 0,
- VSS_AWS_NO_ALTERNATE_WRITER,
- VSS_AWS_ALTERNATE_WRITER_EXISTS,
- VSS_AWS_THIS_IS_ALTERNATE_WRITER,
- } VSS_ALTERNATE_WRITER_STATE;
- typedef enum VSS_SUBSCRIBE_MASK {
- VSS_SM_POST_SNAPSHOT_FLAG = 0x00000001,
- VSS_SM_BACKUP_EVENTS_FLAG = 0x00000002,
- VSS_SM_RESTORE_EVENTS_FLAG = 0x00000004,
- VSS_SM_IO_THROTTLING_FLAG = 0x00000008,
- VSS_SM_ALL_FLAGS = 0xffffffff,
- } VSS_SUBSCRIBE_MASK;
- typedef enum VSS_RESTORE_TARGET {
- VSS_RT_UNDEFINED = 0,
- VSS_RT_ORIGINAL,
- VSS_RT_ALTERNATE,
- VSS_RT_DIRECTED,
- VSS_RT_ORIGINAL_LOCATION,
- } VSS_RESTORE_TARGET;
- typedef enum VSS_FILE_RESTORE_STATUS {
- VSS_RS_UNDEFINED = 0,
- VSS_RS_NONE,
- VSS_RS_ALL,
- VSS_RS_FAILED,
- } VSS_FILE_RESTORE_STATUS;
- typedef enum VSS_COMPONENT_FLAGS {
- VSS_CF_BACKUP_RECOVERY = 0x00000001,
- VSS_CF_APP_ROLLBACK_RECOVERY = 0x00000002,
- VSS_CF_NOT_SYSTEM_STATE = 0x00000004,
- } VSS_COMPONENT_FLAGS;
- interface IVssExamineWriterMetadata;
- [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)]
- interface IVssWMFiledesc : IUnknown
- {
- HRESULT GetPath(
- [out] BSTR *pbstrPath);
- HRESULT GetFilespec(
- [out] BSTR *pbstrFilespec);
- HRESULT GetRecursive(
- [out] boolean *pbRecursive);
- HRESULT GetAlternateLocation(
- [out] BSTR *pbstrAlternateLocation);
- HRESULT GetBackupTypeMask(
- [out] DWORD *pdwTypeMask);
- }
- [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)]
- interface IVssWMDependency : IUnknown
- {
- HRESULT GetWriterId(
- [out] VSS_ID *pWriterId);
- HRESULT GetLogicalPath(
- [out] BSTR *pbstrLogicalPath);
- HRESULT GetComponentName(
- [out] BSTR *pbstrComponentName);
- };
- [object, uuid(d2c72c96-c121-4518-b627-e5a93d010ead), pointer_default(unique)]
- interface IVssComponent : IUnknown
- {
- HRESULT GetLogicalPath(
- [out] BSTR *pbstrPath);
- HRESULT GetComponentType(
- [out] VSS_COMPONENT_TYPE *pct);
- HRESULT GetComponentName(
- [out] BSTR *pbstrName);
- HRESULT GetBackupSucceeded(
- [out] boolean *pbSucceeded);
- HRESULT GetAlternateLocationMappingCount(
- [out] UINT *pcMappings);
- HRESULT GetAlternateLocationMapping(
- [in] UINT iMapping,
- [out] IVssWMFiledesc **ppFiledesc);
- HRESULT SetBackupMetadata(
- [in] LPCWSTR wszData);
- HRESULT GetBackupMetadata(
- [out] BSTR *pbstrData);
- HRESULT AddPartialFile(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilename,
- [in] LPCWSTR wszRanges,
- [in] LPCWSTR wszMetadata);
- HRESULT GetPartialFileCount(
- [out] UINT *pcPartialFiles);
- HRESULT GetPartialFile(
- [in] UINT iPartialFile,
- [out] BSTR *pbstrPath,
- [out] BSTR *pbstrFilename,
- [out] BSTR *pbstrRange,
- [out] BSTR *pbstrMetadata);
- HRESULT IsSelectedForRestore(
- [out] boolean *pbSelectedForRestore);
- HRESULT GetAdditionalRestores(
- [out] boolean *pbAdditionalRestores);
- HRESULT GetNewTargetCount(
- [out] UINT *pcNewTarget);
- HRESULT GetNewTarget(
- [in] UINT iNewTarget,
- [out] IVssWMFiledesc **ppFiledesc);
- HRESULT AddDirectedTarget(
- [in] LPCWSTR wszSourcePath,
- [in] LPCWSTR wszSourceFilename,
- [in] LPCWSTR wszSourceRangeList,
- [in] LPCWSTR wszDestinationPath,
- [in] LPCWSTR wszDestinationFilename,
- [in] LPCWSTR wszDestinationRangeList);
- HRESULT GetDirectedTargetCount(
- [out] UINT *pcDirectedTarget);
- HRESULT GetDirectedTarget(
- [in] UINT iDirectedTarget,
- [out] BSTR *pbstrSourcePath,
- [out] BSTR *pbstrSourceFileName,
- [out] BSTR *pbstrSourceRangeList,
- [out] BSTR *pbstrDestinationPath,
- [out] BSTR *pbstrDestinationFilename,
- [out] BSTR *pbstrDestinationRangeList);
- HRESULT SetRestoreMetadata(
- [in] LPCWSTR wszRestoreMetadata);
- HRESULT GetRestoreMetadata(
- [out] BSTR *pbstrRestoreMetadata);
- HRESULT SetRestoreTarget(
- [in] VSS_RESTORE_TARGET target);
- HRESULT GetRestoreTarget(
- [out] VSS_RESTORE_TARGET *pTarget);
- HRESULT SetPreRestoreFailureMsg(
- [in] LPCWSTR wszPreRestoreFailureMsg);
- HRESULT GetPreRestoreFailureMsg(
- [out] BSTR *pbstrPreRestoreFailureMsg);
- HRESULT SetPostRestoreFailureMsg(
- [in] LPCWSTR wszPostRestoreFailureMsg);
- HRESULT GetPostRestoreFailureMsg(
- [out] BSTR *pbstrPostRestoreFailureMsg);
- HRESULT SetBackupStamp(
- [in] LPCWSTR wszBackupStamp);
- HRESULT GetBackupStamp(
- [out] BSTR *pbstrBackupStamp);
- HRESULT GetPreviousBackupStamp(
- [out] BSTR *pbstrBackupStamp);
- HRESULT GetBackupOptions(
- [out] BSTR *pbstrBackupOptions);
- HRESULT GetRestoreOptions(
- [out] BSTR *pbstrRestoreOptions);
- HRESULT GetRestoreSubcomponentCount(
- [out] UINT *pcRestoreSubcomponent);
- HRESULT GetRestoreSubcomponent(
- [in] UINT iComponent,
- [out] BSTR *pbstrLogicalPath,
- [out] BSTR *pbstrComponentName,
- [out] boolean *pbRepair);
- HRESULT GetFileRestoreStatus(
- [out] VSS_FILE_RESTORE_STATUS *pStatus);
- HRESULT AddDifferencedFilesByLastModifyTime(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] WINBOOL bRecursive,
- [in] FILETIME ftLastModifyTime);
- HRESULT AddDifferencedFilesByLastModifyLSN(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] WINBOOL bRecursive,
- [in] BSTR bstrLsnString);
- HRESULT GetDifferencedFilesCount(
- [out] UINT *pcDifferencedFiles);
- HRESULT GetDifferencedFile(
- [in] UINT iDifferencedFile,
- [out] BSTR *pbstrPath,
- [out] BSTR *pbstrFilespec,
- [out] WINBOOL *pbRecursive,
- [out] BSTR *pbstrLsnString,
- [out] FILETIME *pftLastModifyTime);
- }
- [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)]
- interface IVssWriterComponents
- {
- HRESULT GetComponentCount(
- [out] UINT *pcComponents);
- HRESULT GetWriterInfo(
- [out] VSS_ID *pidInstance,
- [out] VSS_ID *pidWriter);
- HRESULT GetComponent(
- [in] UINT iComponent,
- [out] IVssComponent **ppComponent);
- }
- [object, uuid(156c8b5e-f131-4bd7-9c97-d1923be7e1fa), pointer_default(unique)]
- interface IVssComponentEx : IVssComponent
- {
- HRESULT SetPrepareForBackupFailureMsg(
- [in] LPCWSTR wszFailureMsg);
- HRESULT SetPostSnapshotFailureMsg(
- [in] LPCWSTR wszFailureMsg);
- HRESULT GetPrepareForBackupFailureMsg(
- [out] BSTR *pbstrFailureMsg);
- HRESULT GetPostSnapshotFailureMsg(
- [out] BSTR *pbstrFailureMsg);
- HRESULT GetAuthoritativeRestore(
- [out] boolean *pbAuth);
- HRESULT GetRollForward(
- [out] VSS_ROLLFORWARD_TYPE *pRollType,
- [out] BSTR *pbstrPoint);
- HRESULT GetRestoreName(
- [out] BSTR *pbstrName);
- }
- [object, uuid(3b5be0f2-07a9-4e4b-bdd3-cfdc8e2c0d2d), pointer_default(unique)]
- interface IVssComponentEx2 : IVssComponentEx
- {
- HRESULT SetFailure(
- [in] HRESULT hr,
- [in] HRESULT hrApplication,
- [in] LPCWSTR wszApplicationMessage,
- [in] DWORD dwReserved);
- HRESULT GetFailure(
- [out] HRESULT *phr,
- [out] HRESULT *phrApplication,
- [out] BSTR *pbstrApplicationMessage,
- [out] DWORD *pdwReserved);
- }
- interface IXMLDOMDocument;
- [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)]
- interface IVssCreateWriterMetadata
- {
- HRESULT AddIncludeFiles(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive,
- [in] LPCWSTR wszAlternateLocation);
- HRESULT AddExcludeFiles(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive);
- HRESULT AddComponent(
- [in] VSS_COMPONENT_TYPE ct,
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszComponentName,
- [in] LPCWSTR wszCaption,
- [in] const BYTE *pbIcon,
- [in] UINT cbIcon,
- [in] boolean bRestoreMetadata,
- [in] boolean bNotifyOnBackupComplete,
- [in] boolean bSelectable,
- [in, defaultvalue(0)] boolean bSelectableForRestore,
- [in, defaultvalue(0)] DWORD dwComponentFlags);
- HRESULT AddDatabaseFiles(
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszDatabaseName,
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in, defaultvalue(VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED)] DWORD dwBackupTypeMask);
- HRESULT AddDatabaseLogFiles(
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszDatabaseName,
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in, defaultvalue(VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED)] DWORD dwBackupTypeMask);
- HRESULT AddFilesToFileGroup(
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszGroupName,
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive,
- [in] LPCWSTR wszAlternateLocation,
- [in, defaultvalue(VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED)] DWORD dwBackupTypeMask);
- HRESULT SetRestoreMethod(
- [in] VSS_RESTOREMETHOD_ENUM method,
- [in] LPCWSTR wszService,
- [in] LPCWSTR wszUserProcedure,
- [in] VSS_WRITERRESTORE_ENUM writerRestore,
- [in] boolean bRebootRequired);
- HRESULT AddAlternateLocationMapping(
- [in] LPCWSTR wszSourcePath,
- [in] LPCWSTR wszSourceFilespec,
- [in] boolean bRecursive,
- [in] LPCWSTR wszDestination);
- HRESULT AddComponentDependency(
- [in] LPCWSTR wszForLogicalPath,
- [in] LPCWSTR wszForComponentName,
- [in] VSS_ID onWriterId,
- [in] LPCWSTR wszOnLogicalPath,
- [in] LPCWSTR wszOnComponentName);
- HRESULT SetBackupSchema(
- [in] DWORD dwSchemaMask);
- HRESULT GetDocument(
- [out] IXMLDOMDocument **pDoc);
- HRESULT SaveAsXML(
- [in] BSTR *pbstrXML);
- }
- [object, uuid(9f21981d-d469-4349-b807-39e64e4674e1), pointer_default(unique)]
- interface IVssCreateWriterMetadataEx : IVssCreateWriterMetadata /* , IUnknown */
- {
- HRESULT AddExcludeFilesFromSnapshot(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive);
- }
- [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)]
- interface IVssWriterImpl : IUnknown
- {
- HRESULT Initialize(
- [in] VSS_ID writerId,
- [in] LPCWSTR wszWriterName,
- [in] LPCWSTR wszWriterInstanceName,
- [in] DWORD dwMajorVersion,
- [in] DWORD dwMinorVersion,
- [in] VSS_USAGE_TYPE ut,
- [in] VSS_SOURCE_TYPE st,
- [in] VSS_APPLICATION_LEVEL nLevel,
- [in] DWORD dwTimeout,
- [in] VSS_ALTERNATE_WRITER_STATE aws,
- [in] boolean bIOThrottlingOnly);
- HRESULT Subscribe(
- [in] DWORD dwSubscribeTimeout,
- [in] DWORD dwEventFlags);
- HRESULT Unsubscribe();
- void Uninitialize();
- LPCWSTR *GetCurrentVolumeArray();
- UINT GetCurrentVolumeCount();
- HRESULT GetSnapshotDeviceName(
- [in] LPCWSTR wszOriginalVolume,
- [out] LPCWSTR *ppwszSnapshotDevice);
- VSS_ID GetCurrentSnapshotSetId();
- LONG GetContext();
- VSS_APPLICATION_LEVEL GetCurrentLevel();
- boolean IsPathAffected(
- [in] LPCWSTR wszPath);
- boolean IsBootableSystemStateBackedUp();
- boolean AreComponentsSelected();
- VSS_BACKUP_TYPE GetBackupType();
- VSS_RESTORE_TYPE GetRestoreType();
- HRESULT SetWriterFailure(
- [in] HRESULT hr);
- boolean IsPartialFileSupportEnabled();
- HRESULT InstallAlternateWriter(
- [in] VSS_ID idWriter,
- [in] CLSID clsid);
- IVssExamineWriterMetadata* GetIdentityInformation();
- HRESULT SetWriterFailureEx(
- [in] HRESULT hr,
- [in] HRESULT hrApplication,
- [in] LPCWSTR wszApplicationMessage);
- HRESULT GetSessionId(
- [out] VSS_ID *idSession);
- boolean IsWriterShuttingDown();
- }
- [object, uuid(9c772e77-b26e-427f-92dd-c996f41ea5e3), pointer_default(unique)]
- interface IVssCreateExpressWriterMetadata : IUnknown
- {
- HRESULT AddExcludeFiles(
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive);
- HRESULT AddComponent(
- [in] VSS_COMPONENT_TYPE ct,
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszComponentName,
- [in] LPCWSTR wszCaption,
- [in] const BYTE *pbIcon,
- [in] UINT cbIcon,
- [in] boolean bRestoreMetadata,
- [in] boolean bNotifyOnBackupComplete,
- [in] boolean bSelectable,
- [in, defaultvalue(0)] boolean bSelectableForRestore,
- [in, defaultvalue(0)] DWORD dwComponentFlags);
- HRESULT AddFilesToFileGroup(
- [in] LPCWSTR wszLogicalPath,
- [in] LPCWSTR wszGroupName,
- [in] LPCWSTR wszPath,
- [in] LPCWSTR wszFilespec,
- [in] boolean bRecursive,
- [in] LPCWSTR wszAlternateLocation,
- [in, defaultvalue(VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED)] DWORD dwBackupTypeMask);
- HRESULT SetRestoreMethod(
- [in] VSS_RESTOREMETHOD_ENUM method,
- [in] LPCWSTR wszService,
- [in] LPCWSTR wszUserProcedure,
- [in] VSS_WRITERRESTORE_ENUM writerRestore,
- [in] boolean bRebootRequired);
- HRESULT AddComponentDependency(
- [in] LPCWSTR wszForLogicalPath,
- [in] LPCWSTR wszForComponentName,
- [in] VSS_ID onWriterId,
- [in] LPCWSTR wszOnLogicalPath,
- [in] LPCWSTR wszOnComponentName);
- HRESULT SetBackupSchema(
- [in] DWORD dwSchemaMask);
- HRESULT SaveAsXML(
- [out] BSTR *pbstrXML);
- }
- [object, uuid(e33affdc-59c7-47b1-97d5-4266598f6235), pointer_default(unique)]
- interface IVssExpressWriter : IUnknown
- {
- HRESULT CreateMetadata(
- [in] VSS_ID writerId,
- [in] LPCWSTR writerName,
- [in] VSS_USAGE_TYPE usageType,
- [in] DWORD versionMajor,
- [in] DWORD versionMinor,
- [in] DWORD reserved,
- [out] IVssCreateExpressWriterMetadata **ppMetadata);
- HRESULT LoadMetadata(
- [in] LPCWSTR metadata,
- [in] DWORD reserved);
- HRESULT Register();
- HRESULT Unregister(
- [in] VSS_ID writerId);
- }
- cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */")
|