| /** | |
| * 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 */") |