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