| /** |
| * 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"; |
| import "vswriter.idl"; |
| |
| cpp_quote("#include <winapifamily.h>") |
| |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| |
| typedef struct _VSS_COMPONENTINFO { |
| VSS_COMPONENT_TYPE type; |
| BSTR bstrLogicalPath; |
| BSTR bstrComponentName; |
| BSTR bstrCaption; |
| BYTE *pbIcon; |
| UINT cbIcon; |
| boolean bRestoreMetadata; |
| boolean bNotifyOnBackupComplete; |
| boolean bSelectable; |
| boolean bSelectableForRestore; |
| DWORD dwComponentFlags; |
| UINT cFileCount; |
| UINT cDatabases; |
| UINT cLogFiles; |
| UINT cDependencies; |
| } VSS_COMPONENTINFO; |
| |
| typedef const VSS_COMPONENTINFO *PVSSCOMPONENTINFO; |
| |
| [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)] |
| interface IVssWMComponent : IUnknown |
| { |
| HRESULT GetComponentInfo( |
| [out] PVSSCOMPONENTINFO *ppInfo); |
| |
| HRESULT FreeComponentInfo( |
| [in] PVSSCOMPONENTINFO pInfo); |
| |
| HRESULT GetFile( |
| [in] UINT iFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetDatabaseFile( |
| [in] UINT iDBFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetDatabaseLogFile( |
| [in] UINT iDbLogFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetDependency( |
| [in] UINT iDependency, |
| [out] IVssWMDependency **ppDependency); |
| } |
| |
| [object, uuid(902fcf7f-b7fd-42f8-81f1-b2e400b1e5bd), pointer_default(unique)] |
| interface IVssExamineWriterMetadata : IUnknown |
| { |
| HRESULT GetIdentity( |
| [out] VSS_ID *pidInstance, |
| [out] VSS_ID *pidWriter, |
| [out] BSTR *pbstrWriterName, |
| [out] VSS_USAGE_TYPE *pUsage, |
| [out] VSS_SOURCE_TYPE *pSource); |
| |
| HRESULT GetFileCounts( |
| [out] UINT *pcIncludeFiles, |
| [out] UINT *pcExcludeFiles, |
| [out] UINT *pcComponents); |
| |
| HRESULT GetIncludeFile( |
| [in] UINT iFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetExcludeFile( |
| [in] UINT iFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetComponent( |
| [in] UINT iComponent, |
| [out] IVssWMComponent **ppComponent); |
| |
| HRESULT GetRestoreMethod( |
| [out] VSS_RESTOREMETHOD_ENUM *pMethod, |
| [out] BSTR *pbstrService, |
| [out] BSTR *pbstrUserProcedure, |
| [out] VSS_WRITERRESTORE_ENUM *pwriterRestore, |
| [out] boolean *pbRebootRequired, |
| [out] UINT *pcMappings); |
| |
| HRESULT GetAlternateLocationMapping( |
| [in] UINT iMapping, |
| [out] IVssWMFiledesc **ppFiledesc); |
| |
| HRESULT GetBackupSchema( |
| [out] DWORD *pdwSchemaMask); |
| |
| HRESULT GetDocument( |
| [out] IXMLDOMDocument **pDoc); |
| |
| HRESULT SaveAsXML( |
| [in] BSTR *pbstrXML); |
| |
| HRESULT LoadFromXML( |
| [in] BSTR bstrXML); |
| } |
| |
| [object, uuid(0c0e5ec0-ca44-472b-b702-e652db1c0451), pointer_default(unique)] |
| interface IVssExamineWriterMetadataEx : IVssExamineWriterMetadata |
| { |
| HRESULT GetIdentityEx( |
| [out] VSS_ID *pidInstance, |
| [out] VSS_ID *pidWriter, |
| [out] BSTR *pbstrWriterName, |
| [out] BSTR* pbstrInstanceName, |
| [out] VSS_USAGE_TYPE *pUsage, |
| [out] VSS_SOURCE_TYPE *pSource); |
| } |
| |
| [object, uuid(ce115780-a611-431b-b57f-c38303ab6aee), pointer_default(unique)] |
| interface IVssExamineWriterMetadataEx2 : IVssExamineWriterMetadataEx |
| { |
| HRESULT GetVersion( |
| [out] DWORD* pdwMajorVersion, |
| [out] DWORD* pdwMinorVersion); |
| |
| HRESULT GetExcludeFromSnapshotCount( |
| [out] UINT* pcExcludedFromSnapshot); |
| |
| HRESULT GetExcludeFromSnapshotFile( |
| [in] UINT iFile, |
| [out] IVssWMFiledesc **ppFiledesc); |
| } |
| |
| [object, uuid(00000000-0000-0000-0000-000000000000), pointer_default(unique)] |
| interface IVssWriterComponentsExt : IVssWriterComponents {} /* , IUnknown {} */ |
| |
| [object, uuid(665c1d5f-c218-414d-a05d-7fef5f9d5c86), pointer_default(unique)] |
| interface IVssBackupComponents : IUnknown |
| { |
| HRESULT GetWriterComponentsCount( |
| [out] UINT *pcComponents); |
| |
| HRESULT GetWriterComponents( |
| [in] UINT iWriter, |
| [out] IVssWriterComponentsExt **ppWriter); |
| |
| HRESULT InitializeForBackup( |
| [in, defaultvalue(NULL)] BSTR bstrXML); |
| |
| HRESULT SetBackupState( |
| [in] boolean bSelectComponents, |
| [in] boolean bBackupBootableSystemState, |
| [in] VSS_BACKUP_TYPE backupType, |
| [in, defaultvalue(0)] boolean bPartialFileSupport); |
| |
| HRESULT InitializeForRestore( |
| [in] BSTR bstrXML); |
| |
| HRESULT SetRestoreState( |
| [in] VSS_RESTORE_TYPE restoreType); |
| |
| HRESULT GatherWriterMetadata( |
| [out] IVssAsync **pAsync); |
| |
| HRESULT GetWriterMetadataCount( |
| [out] UINT *pcWriters); |
| |
| HRESULT GetWriterMetadata( |
| [in] UINT iWriter, |
| [out] VSS_ID *pidInstance, |
| [out] IVssExamineWriterMetadata **ppMetadata); |
| |
| HRESULT FreeWriterMetadata(); |
| |
| HRESULT AddComponent( |
| [in] VSS_ID instanceId, |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName); |
| |
| HRESULT PrepareForBackup( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT AbortBackup(); |
| |
| HRESULT GatherWriterStatus( |
| [out] IVssAsync **pAsync); |
| |
| HRESULT GetWriterStatusCount( |
| [out] UINT *pcWriters); |
| |
| HRESULT FreeWriterStatus(); |
| |
| HRESULT GetWriterStatus( |
| [in] UINT iWriter, |
| [out] VSS_ID *pidInstance, |
| [out] VSS_ID *pidWriter, |
| [out] BSTR *pbstrWriter, |
| [out] VSS_WRITER_STATE *pnStatus, |
| [out] HRESULT *phResultFailure); |
| |
| HRESULT SetBackupSucceeded( |
| [in] VSS_ID instanceId, |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] boolean bSucceded); |
| |
| HRESULT SetBackupOptions( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszBackupOptions); |
| |
| HRESULT SetSelectedForRestore( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] boolean bSelectedForRestore); |
| |
| HRESULT SetRestoreOptions( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszRestoreOptions); |
| |
| HRESULT SetAdditionalRestores( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] boolean bAdditionalRestores); |
| |
| HRESULT SetPreviousBackupStamp( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszPreviousBackupStamp); |
| |
| HRESULT SaveAsXML( |
| [in] BSTR *pbstrXML); |
| |
| HRESULT BackupComplete( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT AddAlternativeLocationMapping( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE componentType, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszPath, |
| [in] LPCWSTR wszFilespec, |
| [in] boolean bRecursive, |
| [in] LPCWSTR wszDestination); |
| |
| HRESULT AddRestoreSubcomponent( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE componentType, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszSubComponentLogicalPath, |
| [in] LPCWSTR wszSubComponentName, |
| [in] boolean bRepair); |
| |
| HRESULT SetFileRestoreStatus( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] VSS_FILE_RESTORE_STATUS status); |
| |
| HRESULT AddNewTarget( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszPath, |
| [in] LPCWSTR wszFileName, |
| [in] boolean bRecursive, |
| [in] LPCWSTR wszAlternatePath); |
| |
| HRESULT SetRangesFilePath( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] UINT iPartialFile, |
| [in] LPCWSTR wszRangesFile); |
| |
| HRESULT PreRestore( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT PostRestore( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT SetContext( |
| [in] LONG lContext); |
| |
| HRESULT StartSnapshotSet( |
| [out] VSS_ID *pSnapshotSetId); |
| |
| HRESULT AddToSnapshotSet( |
| [in] VSS_PWSZ pwszVolumeName, |
| [in] VSS_ID ProviderId, |
| [out] VSS_ID *pidSnapshot); |
| |
| HRESULT DoSnapshotSet( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT DeleteSnapshots( |
| [in] VSS_ID SourceObjectId, |
| [in] VSS_OBJECT_TYPE eSourceObjectType, |
| [in] WINBOOL bForceDelete, |
| [in] LONG *plDeletedSnapshots, |
| [in] VSS_ID *pNondeletedSnapshotID); |
| |
| HRESULT ImportSnapshots( |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT BreakSnapshotSet( |
| [in] VSS_ID SnapshotSetId); |
| |
| HRESULT GetSnapshotProperties( |
| [in] VSS_ID SnapshotId, |
| [out] VSS_SNAPSHOT_PROP *pProp); |
| |
| HRESULT Query( |
| [in] VSS_ID QueriedObjectId, |
| [in] VSS_OBJECT_TYPE eQueriedObjectType, |
| [in] VSS_OBJECT_TYPE eReturnedObjectsType, |
| [in] IVssEnumObject **ppEnum); |
| |
| HRESULT IsVolumeSupported( |
| [in] VSS_ID ProviderId, |
| [in] VSS_PWSZ pwszVolumeName, |
| [in] WINBOOL *pbSupportedByThisProvider); |
| |
| HRESULT DisableWriterClasses( |
| [in] const VSS_ID *rgWriterClassId, |
| [in] UINT cClassId); |
| |
| HRESULT EnableWriterClasses( |
| [in] const VSS_ID *rgWriterClassId, |
| [in] UINT cClassId); |
| |
| HRESULT DisableWriterInstances( |
| [in] const VSS_ID *rgWriterInstanceId, |
| [in] UINT cInstanceId); |
| |
| HRESULT ExposeSnapshot( |
| [in] VSS_ID SnapshotId, |
| [in] VSS_PWSZ wszPathFromRoot, |
| [in] LONG lAttributes, |
| [in] VSS_PWSZ wszExpose, |
| [out] VSS_PWSZ *pwszExposed); |
| |
| HRESULT RevertToSnapshot( |
| [in] VSS_ID SnapshotId, |
| [in] WINBOOL bForceDismount); |
| |
| HRESULT QueryRevertStatus( |
| [in] VSS_PWSZ pwszVolume, |
| [out] IVssAsync **ppAsync); |
| } |
| |
| [object, uuid(963f03ad-9e4c-4a34-ac15-e4b6174e5036), pointer_default(unique)] |
| interface IVssBackupComponentsEx : IVssBackupComponents |
| { |
| HRESULT GetWriterMetadataEx( |
| [in] UINT iWriter, |
| [out] VSS_ID *pidInstance, |
| [out] IVssExamineWriterMetadataEx **ppMetadata); |
| |
| HRESULT SetSelectedForRestoreEx( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] boolean bSelectedForRestore, |
| [in] VSS_ID instanceId); |
| } |
| |
| [object, uuid(acfe2b3a-22c9-4ef8-bd03-2f9ca230084e), pointer_default(unique)] |
| interface IVssBackupComponentsEx2 : IVssBackupComponentsEx |
| { |
| HRESULT UnexposeSnapshot( |
| [in] VSS_ID snapshotId); |
| |
| HRESULT SetAuthoritativeRestore( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] boolean bAuth); |
| |
| HRESULT SetRollForward( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] VSS_ROLLFORWARD_TYPE rollType, |
| [in] LPCWSTR wszRollForwardPoint); |
| |
| HRESULT SetRestoreName( |
| [in] VSS_ID writerId, |
| [in] VSS_COMPONENT_TYPE ct, |
| [in] LPCWSTR wszLogicalPath, |
| [in] LPCWSTR wszComponentName, |
| [in] LPCWSTR wszRestoreName); |
| |
| HRESULT BreakSnapshotSetEx( |
| [in] VSS_ID SnapshotSetID, |
| [in] DWORD dwBreakFlags, |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT PreFastRecovery( |
| [in] VSS_ID SnapshotSetID, |
| [in] DWORD dwPreFastRecoveryFlags, |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT FastRecovery( |
| [in] VSS_ID SnapshotSetID, |
| [in] DWORD dwFastRecoveryFlags, |
| [out] IVssAsync **ppAsync); |
| } |
| |
| [object, uuid(c191bfbc-b602-4675-8bd1-67d642f529d5), pointer_default(unique)] |
| interface IVssBackupComponentsEx3 : IVssBackupComponentsEx2 |
| { |
| HRESULT GetWriterStatusEx( |
| [in] UINT iWriter, |
| [out] VSS_ID *pidInstance, |
| [out] VSS_ID *pidWriter, |
| [out] BSTR *pbstrWriter, |
| [out] VSS_WRITER_STATE *pnStatus, |
| [out] HRESULT *phrFailureWriter, |
| [out, defaultvalue(NULL)] HRESULT *phrApplication, |
| [out, defaultvalue(NULL)] BSTR *pbstrApplicationMessage); |
| |
| HRESULT AddSnapshotToRecoverySet( |
| [in] VSS_ID snapshotId, |
| [in] DWORD dwFlags, |
| [in, defaultvalue(NULL)] VSS_PWSZ pwszDestinationVolume); |
| |
| HRESULT RecoverSet( |
| [in] DWORD dwFlags, |
| [out] IVssAsync **ppAsync); |
| |
| HRESULT GetSessionId( |
| [out] VSS_ID *idSession); |
| } |
| |
| [object, uuid(f434c2fd-b553-4961-a9f9-a8e90b673e53), pointer_default(unique)] |
| interface IVssBackupComponentsEx4 : IVssBackupComponentsEx3 |
| { |
| HRESULT GetRootAndLogicalPrefixPaths( |
| [in] VSS_PWSZ pwszFilePath, |
| [out] VSS_PWSZ *ppwszRootPath, |
| [out] VSS_PWSZ *ppwszLogicalPrefix, |
| [in, defaultvalue(FALSE)] WINBOOL bNormalizeFQDNforRootPath); |
| } |
| |
| cpp_quote("#define VSS_SW_BOOTABLE_STATE (1 << 0)") |
| |
| cpp_quote("HRESULT STDAPICALLTYPE CreateVssBackupComponentsInternal(IVssBackupComponents **ppBackup);") |
| cpp_quote("HRESULT STDAPICALLTYPE CreateVssExamineWriterMetadataInternal(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata);") |
| cpp_quote("HRESULT APIENTRY IsVolumeSnapshottedInternal(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability);") |
| cpp_quote("void APIENTRY VssFreeSnapshotPropertiesInternal(VSS_SNAPSHOT_PROP *pProp);") |
| cpp_quote("HRESULT APIENTRY GetProviderMgmtInterfaceInternal(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf);") |
| cpp_quote("HRESULT APIENTRY ShouldBlockRevertInternal(LPCWSTR wszVolumeName, boolean *pbBlock);") |
| cpp_quote("static __inline HRESULT CreateVssBackupComponents(IVssBackupComponents **ppBackup) { return CreateVssBackupComponentsInternal(ppBackup); }") |
| cpp_quote("static __inline HRESULT CreateVssExamineWriterMetadata(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata) { return CreateVssExamineWriterMetadataInternal(bstrXML, ppMetadata); }") |
| cpp_quote("static __inline HRESULT IsVolumeSnapshotted(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability) { return IsVolumeSnapshottedInternal(pwszVolumeName, pbSnapshotsPresent, plSnapshotCapability); }") |
| cpp_quote("static __inline void VssFreeSnapshotProperties(VSS_SNAPSHOT_PROP *pProp) { return VssFreeSnapshotPropertiesInternal(pProp); }") |
| cpp_quote("static __inline HRESULT GetProviderMgmtInterface(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf) { return GetProviderMgmtInterfaceInternal(ProviderId, InterfaceId, ppItf); }") |
| cpp_quote("static __inline HRESULT ShouldBlockRevert(LPCWSTR wszVolumeName, boolean *pbBlock) { return ShouldBlockRevertInternal(wszVolumeName, pbBlock); }") |
| |
| cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */") |