/*++ Copyright (c) 1999 Microsoft Corporation Module Name: vs_idl.hxx Abstract: Includes the VSS IDLs Author: Adi Oltean [aoltean] 04/11/2001 Revision History: Name Date Comments aoltean 04/11/2001 Created --*/ #ifndef __VSS_IDL_HXX__ #define __VSS_IDL_HXX__ #if _MSC_VER > 1000 #pragma once #endif #include #include "vss.h" #include "vdslun.h" #include "vscoordint.h" #include "vsevent.h" #include "vsprov.h" #include "vsswprv.h" #include "vsmgmt.h" // Declaring the IVssSnapshotProvider // This needs to be used only from VSS, as a wrapper around software and hardware providers interface IVssSnapshotProvider: public IUnknown { // Internal methods STDMETHOD(QueryInternalInterface)( IN REFIID iid, OUT void** pp ) PURE; // IVssSoftwareSnapshotProvider STDMETHOD(SetContext)( IN LONG lContext ) PURE; STDMETHOD(GetSnapshotProperties)( IN VSS_ID SnapshotId, OUT VSS_SNAPSHOT_PROP *pProp ) PURE; STDMETHOD(Query)( IN VSS_ID QueriedObjectId, IN VSS_OBJECT_TYPE eQueriedObjectType, IN VSS_OBJECT_TYPE eReturnedObjectsType, OUT IVssEnumObject**ppEnum ) PURE; STDMETHOD(DeleteSnapshots)( IN VSS_ID SourceObjectId, IN VSS_OBJECT_TYPE eSourceObjectType, IN BOOL bForceDelete, OUT LONG* plDeletedSnapshots, OUT VSS_ID* pNondeletedSnapshotID ) PURE; STDMETHOD(BeginPrepareSnapshot)( IN VSS_ID SnapshotSetId, IN VSS_ID SnapshotId, IN VSS_PWSZ pwszVolumeName, IN LONG lNewContext ) PURE; STDMETHOD(IsVolumeSupported)( IN VSS_PWSZ pwszVolumeName, OUT BOOL * pbSupportedByThisProvider ) PURE; STDMETHOD(IsVolumeSnapshotted)( IN VSS_PWSZ pwszVolumeName, OUT BOOL * pbSnapshotsPresent, OUT LONG * plSnapshotCompatibility ) PURE; STDMETHOD(SetSnapshotProperty)( IN VSS_ID SnapshotId, IN VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, IN VARIANT vProperty ) PURE; STDMETHOD(RevertToSnapshot)( IN VSS_ID SnapshotId ) PURE; STDMETHOD(QueryRevertStatus)( IN VSS_PWSZ pwszVolume, OUT IVssAsync** ppAsync ) PURE; // IVssProviderCreateSnapshotSet STDMETHOD(EndPrepareSnapshots)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(PreCommitSnapshots)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(CommitSnapshots)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(PostCommitSnapshots)( IN VSS_ID SnapshotSetId, IN LONG lSnapshotsCount ) PURE; STDMETHOD(PreFinalCommitSnapshots)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(PostFinalCommitSnapshots)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(PostSnapshot)( IN IDispatch *pCallback, IN bool *pbCancelled ) PURE; STDMETHOD(AbortSnapshots)( IN VSS_ID SnapshotSetId ) PURE; // miscellaneous methods STDMETHOD(BreakSnapshotSet)( IN VSS_ID SnapshotSetId ) PURE; STDMETHOD(SetExposureProperties) ( IN VSS_ID SnapshotId, IN LONG lAttributes, IN LPCWSTR wszExposed, IN LPCWSTR wszExposedPath ) PURE; STDMETHOD(ImportSnapshotSet)( IN LPCWSTR wszXMLSnapshotSet, IN bool *pbCancel ) PURE; // IVssProviderNotifications STDMETHOD(OnLoad)( IN IUnknown* pCallback ) PURE; STDMETHOD(OnUnload)( IN BOOL bForceUnload ) PURE; }; #endif // __VSS_IDL_HXX__