/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000 Microsoft Corporation // /////////////////////////////////////////////////////////////////////////////// // Imports // import "oaidl.idl"; import "ocidl.idl"; import "vss.idl"; /////////////////////////////////////////////////////////////////////////////// // Interfaces // [ object, uuid(93BA4344-AA56-403e-87F2-819650FEDACD), helpstring("IVssCoordinator interface"), pointer_default(unique) ] interface IVssCoordinator : IUnknown { [helpstring("method SetContext")] HRESULT SetContext( [in] LONG lContext ); [helpstring("method StartSnapshotSet")] HRESULT StartSnapshotSet( [out] VSS_ID* pSnapshotSetId ); [helpstring("method AddToSnapshotSet")] HRESULT AddToSnapshotSet( [in] VSS_PWSZ pwszVolumeName, [in] VSS_ID ProviderId, [out] VSS_ID *pSnapshotId ); [helpstring("method DoSnapshotSet")] HRESULT DoSnapshotSet( [in] IDispatch *pWriterCallback, [out] IVssAsync** ppAsync ); [helpstring("method GetSnapshotProperties")] HRESULT GetSnapshotProperties( [in] VSS_ID SnapshotId, [out] VSS_SNAPSHOT_PROP *pProp ); [helpstring("method ExposeSnapshot")] HRESULT ExposeSnapshot( [in] VSS_ID SnapshotId, [in] VSS_PWSZ wszPathFromRoot, [in] LONG lAttributes, [in] VSS_PWSZ wszExpose, [out] VSS_PWSZ *pwszExposed ); [helpstring("method RemountReadWrite")] HRESULT RemountReadWrite( [in] VSS_ID SnapshotId, [out] IVssAsync** ppAsync ); [helpstring("method ImportSnapshots")] HRESULT ImportSnapshots( [in] BSTR bstrXMLSnapshotSet, [out] IVssAsync** ppAsync ); [helpstring("method Query")] HRESULT Query( [in] VSS_ID QueriedObjectId, [in] VSS_OBJECT_TYPE eQueriedObjectType, [in] VSS_OBJECT_TYPE eReturnedObjectsType, [out] IVssEnumObject **ppEnum ); [helpstring("method DeleteSnapshots")] HRESULT DeleteSnapshots( [in] VSS_ID SourceObjectId, [in] VSS_OBJECT_TYPE eSourceObjectType, [in] BOOL bForceDelete, [out] LONG* plDeletedSnapshots, [out] VSS_ID* pNondeletedSnapshotID ); [helpstring("method BreakSnapshotSet")] HRESULT BreakSnapshotSet( [in] VSS_ID SnapshotSetId ); [helpstring("method IsVolumeSupported")] HRESULT IsVolumeSupported( [in] VSS_ID ProviderId, [in] VSS_PWSZ pwszVolumeName, [out] BOOL * pbSupportedByThisProvider ); [helpstring("method IsVolumeSnapshotted")] HRESULT IsVolumeSnapshotted( [in] VSS_ID ProviderId, [in] VSS_PWSZ pwszVolumeName, [out] BOOL * pbSnapshotsPresent, [out] LONG * plSnapshotCompatibility ); [helpstring("method SetWriterInstances")] HRESULT SetWriterInstances( [in] LONG lWriterInstanceIdCount, [in, unique, size_is(lWriterInstanceIdCount)] VSS_ID *rgWriterInstanceId ); }; [ object, uuid(D6222095-05C3-42f3-81D9-A4A0CEC05C26), helpstring("IVssShim interface"), pointer_default(unique) ] interface IVssShim : IUnknown { [helpstring("method SimulateSnapshotFreeze")] HRESULT SimulateSnapshotFreeze( [in] VSS_ID guidSnapshotSetId, [in] ULONG ulOptionFlags, [in] ULONG ulVolumeCount, [in, unique, size_is(ulVolumeCount, ) ] VSS_PWSZ* ppwszVolumeNamesArray, [out] IVssAsync** ppAsync ); [helpstring("method SimulateSnapshotThaw")] HRESULT SimulateSnapshotThaw( [in] VSS_ID guidSnapshotSetId ); [helpstring("method WaitForSubscribingCompletion")] HRESULT WaitForSubscribingCompletion(); }; [ object, uuid(77ED5996-2F63-11d3-8A39-00C04F72D8E3), helpstring("IVssAdmin interface"), pointer_default(unique) ] interface IVssAdmin : IUnknown { [helpstring("method RegisterProvider")] HRESULT RegisterProvider( [in] VSS_ID pProviderId, [in] CLSID ClassId, [in] VSS_PWSZ pwszProviderName, [in] VSS_PROVIDER_TYPE eProviderType, [in] VSS_PWSZ pwszProviderVersion, [in] VSS_ID ProviderVersionId ); [helpstring("method UnregisterProvider")] HRESULT UnregisterProvider( [in] VSS_ID ProviderId ); [helpstring("method QueryProviders")] HRESULT QueryProviders( [out] IVssEnumObject**ppEnum ); [helpstring("method AbortAllSnapshotsInProgress")] HRESULT AbortAllSnapshotsInProgress( ); }; //////////////////////////////////////////////////////// // VSS Type Library [ uuid(97AEFDD8-2F60-11d3-8A39-00C04F72D8E3), version(1.0), helpstring("Volume Shadow Copy Service 1.0 Type Library") ] library VSS { importlib("stdole2.tlb"); [ uuid(E579AB5F-1CC4-44b4-BED9-DE0991FF0623), helpstring("VSSCoordinator Class") ] coclass VSSCoordinator { [default] interface IVssCoordinator; interface IVssAdmin; } }