|  | /*** Autogenerated by WIDL 10.4 from include/vsprov.idl - Do not edit ***/ | 
|  |  | 
|  | #ifdef _WIN32 | 
|  | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
|  | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
|  | #endif | 
|  | #include <rpc.h> | 
|  | #include <rpcndr.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef COM_NO_WINDOWS_H | 
|  | #include <windows.h> | 
|  | #include <ole2.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef __vsprov_h__ | 
|  | #define __vsprov_h__ | 
|  |  | 
|  | /* Forward declarations */ | 
|  |  | 
|  | #ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__ | 
|  | #define __IVssSoftwareSnapshotProvider_FWD_DEFINED__ | 
|  | typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider; | 
|  | #ifdef __cplusplus | 
|  | interface IVssSoftwareSnapshotProvider; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__ | 
|  | #define __IVssProviderCreateSnapshotSet_FWD_DEFINED__ | 
|  | typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet; | 
|  | #ifdef __cplusplus | 
|  | interface IVssProviderCreateSnapshotSet; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssProviderNotifications_FWD_DEFINED__ | 
|  | #define __IVssProviderNotifications_FWD_DEFINED__ | 
|  | typedef interface IVssProviderNotifications IVssProviderNotifications; | 
|  | #ifdef __cplusplus | 
|  | interface IVssProviderNotifications; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__ | 
|  | #define __IVssHardwareSnapshotProvider_FWD_DEFINED__ | 
|  | typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider; | 
|  | #ifdef __cplusplus | 
|  | interface IVssHardwareSnapshotProvider; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ | 
|  | #define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ | 
|  | typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx; | 
|  | #ifdef __cplusplus | 
|  | interface IVssHardwareSnapshotProviderEx; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__ | 
|  | #define __IVssFileShareSnapshotProvider_FWD_DEFINED__ | 
|  | typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider; | 
|  | #ifdef __cplusplus | 
|  | interface IVssFileShareSnapshotProvider; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | /* Headers for imported files */ | 
|  |  | 
|  | #include <oaidl.h> | 
|  | #include <ocidl.h> | 
|  | #include <vss.h> | 
|  | #include <vdslun.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <winapifamily.h> | 
|  | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | 
|  | #ifndef __IVssSnapshotProvider_FWD_DEFINED__ | 
|  | #define __IVssSnapshotProvider_FWD_DEFINED__ | 
|  | typedef interface IVssSnapshotProvider IVssSnapshotProvider; | 
|  | #ifdef __cplusplus | 
|  | interface IVssSnapshotProvider; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IVssProviderNotifications_FWD_DEFINED__ | 
|  | #define __IVssProviderNotifications_FWD_DEFINED__ | 
|  | typedef interface IVssProviderNotifications IVssProviderNotifications; | 
|  | #ifdef __cplusplus | 
|  | interface IVssProviderNotifications; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | typedef VSS_PWSZ *PVSS_PWSZ; | 
|  | /***************************************************************************** | 
|  | * IVssSoftwareSnapshotProvider interface | 
|  | */ | 
|  | #ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ | 
|  | #define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff") | 
|  | IVssSoftwareSnapshotProvider : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE SetContext( | 
|  | LONG lContext) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROP *pProp) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Query( | 
|  | VSS_ID QueriedObjectId, | 
|  | VSS_OBJECT_TYPE eQueriedObjectType, | 
|  | VSS_OBJECT_TYPE eReturnedObjectsType, | 
|  | IVssEnumObject **ppEnum) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( | 
|  | VSS_ID SourceObjectId, | 
|  | VSS_OBJECT_TYPE eSourceObjectType, | 
|  | WINBOOL bForceDelete, | 
|  | LONG *plDeletedSnapshots, | 
|  | VSS_ID *pNondeletedSnapshotID) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | LONG lNewContext) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported( | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | WINBOOL *pbSupportedByThisProvider) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE IsVolumeSnapshotted( | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | WINBOOL *pbSnapshotsPresent, | 
|  | LONG *plSnapshotCompatibility) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | 
|  | VARIANT vProperty) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot( | 
|  | VSS_ID SnapshotId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus( | 
|  | VSS_PWSZ pwszVolume, | 
|  | IVssAsync **ppAsync) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssSoftwareSnapshotProviderVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssSoftwareSnapshotProvider *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssSoftwareSnapshotProvider *This); | 
|  |  | 
|  | /*** IVssSoftwareSnapshotProvider methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *SetContext)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | LONG lContext); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROP *pProp); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Query)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID QueriedObjectId, | 
|  | VSS_OBJECT_TYPE eQueriedObjectType, | 
|  | VSS_OBJECT_TYPE eReturnedObjectsType, | 
|  | IVssEnumObject **ppEnum); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID SourceObjectId, | 
|  | VSS_OBJECT_TYPE eSourceObjectType, | 
|  | WINBOOL bForceDelete, | 
|  | LONG *plDeletedSnapshots, | 
|  | VSS_ID *pNondeletedSnapshotID); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | LONG lNewContext); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | WINBOOL *pbSupportedByThisProvider); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsVolumeSnapshotted)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_PWSZ pwszVolumeName, | 
|  | WINBOOL *pbSnapshotsPresent, | 
|  | LONG *plSnapshotCompatibility); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | 
|  | VARIANT vProperty); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_ID SnapshotId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( | 
|  | IVssSoftwareSnapshotProvider *This, | 
|  | VSS_PWSZ pwszVolume, | 
|  | IVssAsync **ppAsync); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssSoftwareSnapshotProviderVtbl; | 
|  |  | 
|  | interface IVssSoftwareSnapshotProvider { | 
|  | CONST_VTBL IVssSoftwareSnapshotProviderVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssSoftwareSnapshotProvider methods ***/ | 
|  | #define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) | 
|  | #define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) | 
|  | #define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) | 
|  | #define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) | 
|  | #define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) | 
|  | #define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) | 
|  | #define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) | 
|  | #define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) | 
|  | #define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId) | 
|  | #define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssSoftwareSnapshotProvider methods ***/ | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) { | 
|  | return This->lpVtbl->SetContext(This,lContext); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { | 
|  | return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_Query(IVssSoftwareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { | 
|  | return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_DeleteSnapshots(IVssSoftwareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { | 
|  | return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) { | 
|  | return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { | 
|  | return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { | 
|  | return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_SetSnapshotProperty(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { | 
|  | return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) { | 
|  | return This->lpVtbl->RevertToSnapshot(This,SnapshotId); | 
|  | } | 
|  | static inline HRESULT IVssSoftwareSnapshotProvider_QueryRevertStatus(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { | 
|  | return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IVssProviderCreateSnapshotSet interface | 
|  | */ | 
|  | #ifndef __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ | 
|  | #define __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c") | 
|  | IVssProviderCreateSnapshotSet : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE EndPrepareSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE PreCommitSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE CommitSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE PostCommitSnapshots( | 
|  | VSS_ID SnapshotSetId, | 
|  | LONG lSnapshotsCount) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE PreFinalCommitSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE PostFinalCommitSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AbortSnapshots( | 
|  | VSS_ID SnapshotSetId) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssProviderCreateSnapshotSetVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssProviderCreateSnapshotSet *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssProviderCreateSnapshotSet *This); | 
|  |  | 
|  | /*** IVssProviderCreateSnapshotSet methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *EndPrepareSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *PreCommitSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CommitSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *PostCommitSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId, | 
|  | LONG lSnapshotsCount); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *PreFinalCommitSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *PostFinalCommitSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AbortSnapshots)( | 
|  | IVssProviderCreateSnapshotSet *This, | 
|  | VSS_ID SnapshotSetId); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssProviderCreateSnapshotSetVtbl; | 
|  |  | 
|  | interface IVssProviderCreateSnapshotSet { | 
|  | CONST_VTBL IVssProviderCreateSnapshotSetVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssProviderCreateSnapshotSet methods ***/ | 
|  | #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId) | 
|  | #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId) | 
|  | #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId) | 
|  | #define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) | 
|  | #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId) | 
|  | #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId) | 
|  | #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssProviderCreateSnapshotSet methods ***/ | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->CommitSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) { | 
|  | return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | static inline HRESULT IVssProviderCreateSnapshotSet_AbortSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { | 
|  | return This->lpVtbl->AbortSnapshots(This,SnapshotSetId); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IVssProviderNotifications interface | 
|  | */ | 
|  | #ifndef __IVssProviderNotifications_INTERFACE_DEFINED__ | 
|  | #define __IVssProviderNotifications_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004") | 
|  | IVssProviderNotifications : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE OnLoad( | 
|  | IUnknown *pCallback) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE OnUnload( | 
|  | WINBOOL bForceUnload) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssProviderNotificationsVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssProviderNotifications *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssProviderNotifications *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssProviderNotifications *This); | 
|  |  | 
|  | /*** IVssProviderNotifications methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *OnLoad)( | 
|  | IVssProviderNotifications *This, | 
|  | IUnknown *pCallback); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *OnUnload)( | 
|  | IVssProviderNotifications *This, | 
|  | WINBOOL bForceUnload); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssProviderNotificationsVtbl; | 
|  |  | 
|  | interface IVssProviderNotifications { | 
|  | CONST_VTBL IVssProviderNotificationsVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssProviderNotifications methods ***/ | 
|  | #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback) | 
|  | #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssProviderNotifications methods ***/ | 
|  | static inline HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) { | 
|  | return This->lpVtbl->OnLoad(This,pCallback); | 
|  | } | 
|  | static inline HRESULT IVssProviderNotifications_OnUnload(IVssProviderNotifications* This,WINBOOL bForceUnload) { | 
|  | return This->lpVtbl->OnUnload(This,bForceUnload); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssProviderNotifications_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IVssHardwareSnapshotProvider interface | 
|  | */ | 
|  | #ifndef __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ | 
|  | #define __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10") | 
|  | IVssHardwareSnapshotProvider : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE AreLunsSupported( | 
|  | LONG lLunCount, | 
|  | LONG lContext, | 
|  | VSS_PWSZ *rgwszDevices, | 
|  | VDS_LUN_INFORMATION *pLunInformation, | 
|  | WINBOOL *pbIsSupported) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE FillInLunInfo( | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pLunInfo, | 
|  | WINBOOL *pbIsSupported) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | LONG lContext, | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgLunInformation) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetTargetLuns( | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns, | 
|  | VDS_LUN_INFORMATION *rgDestinationLuns) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE LocateLuns( | 
|  | LONG lLunCount, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE OnLunEmpty( | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pInformation) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssHardwareSnapshotProviderVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssHardwareSnapshotProvider *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssHardwareSnapshotProvider *This); | 
|  |  | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | LONG lLunCount, | 
|  | LONG lContext, | 
|  | VSS_PWSZ *rgwszDevices, | 
|  | VDS_LUN_INFORMATION *pLunInformation, | 
|  | WINBOOL *pbIsSupported); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pLunInfo, | 
|  | WINBOOL *pbIsSupported); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | LONG lContext, | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgLunInformation); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns, | 
|  | VDS_LUN_INFORMATION *rgDestinationLuns); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *LocateLuns)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | LONG lLunCount, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( | 
|  | IVssHardwareSnapshotProvider *This, | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pInformation); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssHardwareSnapshotProviderVtbl; | 
|  |  | 
|  | interface IVssHardwareSnapshotProvider { | 
|  | CONST_VTBL IVssHardwareSnapshotProviderVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | #define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) | 
|  | #define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) | 
|  | #define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) | 
|  | #define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) | 
|  | #define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) | 
|  | #define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_AreLunsSupported(IVssHardwareSnapshotProvider* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { | 
|  | return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_FillInLunInfo(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { | 
|  | return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_BeginPrepareSnapshot(IVssHardwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { | 
|  | return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_GetTargetLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { | 
|  | return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { | 
|  | return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProvider_OnLunEmpty(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { | 
|  | return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IVssHardwareSnapshotProviderEx interface | 
|  | */ | 
|  | #ifndef __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ | 
|  | #define __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd") | 
|  | IVssHardwareSnapshotProviderEx : public IVssHardwareSnapshotProvider | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetProviderCapabilities( | 
|  | ULONGLONG *pllOriginalCapabilityMask) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE OnLunStateChange( | 
|  | VDS_LUN_INFORMATION *pSnapshotLuns, | 
|  | VDS_LUN_INFORMATION *pOriginalLuns, | 
|  | DWORD dwCount, | 
|  | DWORD dwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE ResyncLuns( | 
|  | VDS_LUN_INFORMATION *pSourceLuns, | 
|  | VDS_LUN_INFORMATION *pTargetLuns, | 
|  | DWORD dwCount, | 
|  | IVssAsync **ppAsync) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE OnReuseLuns( | 
|  | VDS_LUN_INFORMATION *pSnapshotLuns, | 
|  | VDS_LUN_INFORMATION *pOriginalLuns, | 
|  | DWORD dwCount) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssHardwareSnapshotProviderExVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssHardwareSnapshotProviderEx *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssHardwareSnapshotProviderEx *This); | 
|  |  | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | LONG lLunCount, | 
|  | LONG lContext, | 
|  | VSS_PWSZ *rgwszDevices, | 
|  | VDS_LUN_INFORMATION *pLunInformation, | 
|  | WINBOOL *pbIsSupported); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pLunInfo, | 
|  | WINBOOL *pbIsSupported); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | LONG lContext, | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgLunInformation); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | LONG lLunCount, | 
|  | VSS_PWSZ *rgDeviceNames, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns, | 
|  | VDS_LUN_INFORMATION *rgDestinationLuns); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *LocateLuns)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | LONG lLunCount, | 
|  | VDS_LUN_INFORMATION *rgSourceLuns); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VSS_PWSZ wszDeviceName, | 
|  | VDS_LUN_INFORMATION *pInformation); | 
|  |  | 
|  | /*** IVssHardwareSnapshotProviderEx methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetProviderCapabilities)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | ULONGLONG *pllOriginalCapabilityMask); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *OnLunStateChange)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VDS_LUN_INFORMATION *pSnapshotLuns, | 
|  | VDS_LUN_INFORMATION *pOriginalLuns, | 
|  | DWORD dwCount, | 
|  | DWORD dwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *ResyncLuns)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VDS_LUN_INFORMATION *pSourceLuns, | 
|  | VDS_LUN_INFORMATION *pTargetLuns, | 
|  | DWORD dwCount, | 
|  | IVssAsync **ppAsync); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *OnReuseLuns)( | 
|  | IVssHardwareSnapshotProviderEx *This, | 
|  | VDS_LUN_INFORMATION *pSnapshotLuns, | 
|  | VDS_LUN_INFORMATION *pOriginalLuns, | 
|  | DWORD dwCount); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssHardwareSnapshotProviderExVtbl; | 
|  |  | 
|  | interface IVssHardwareSnapshotProviderEx { | 
|  | CONST_VTBL IVssHardwareSnapshotProviderExVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | #define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) | 
|  | #define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) | 
|  | #define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) | 
|  | #define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) | 
|  | #define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) | 
|  | #define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) | 
|  | /*** IVssHardwareSnapshotProviderEx methods ***/ | 
|  | #define IVssHardwareSnapshotProviderEx_GetProviderCapabilities(This,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask) | 
|  | #define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) | 
|  | #define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) | 
|  | #define IVssHardwareSnapshotProviderEx_OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) (This)->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssHardwareSnapshotProvider methods ***/ | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_AreLunsSupported(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { | 
|  | return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_FillInLunInfo(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { | 
|  | return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(IVssHardwareSnapshotProviderEx* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { | 
|  | return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_GetTargetLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { | 
|  | return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { | 
|  | return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunEmpty(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { | 
|  | return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); | 
|  | } | 
|  | /*** IVssHardwareSnapshotProviderEx methods ***/ | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) { | 
|  | return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunStateChange(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) { | 
|  | return This->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_ResyncLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) { | 
|  | return This->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync); | 
|  | } | 
|  | static inline HRESULT IVssHardwareSnapshotProviderEx_OnReuseLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount) { | 
|  | return This->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IVssFileShareSnapshotProvider interface | 
|  | */ | 
|  | #ifndef __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ | 
|  | #define __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66") | 
|  | IVssFileShareSnapshotProvider : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE SetContext( | 
|  | LONG lContext) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROP *pProp) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Query( | 
|  | VSS_ID QueriedObjectId, | 
|  | VSS_OBJECT_TYPE eQueriedObjectType, | 
|  | VSS_OBJECT_TYPE eReturnedObjectsType, | 
|  | IVssEnumObject **ppEnum) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( | 
|  | VSS_ID SourceObjectId, | 
|  | VSS_OBJECT_TYPE eSourceObjectType, | 
|  | WINBOOL bForceDelete, | 
|  | LONG *plDeletedSnapshots, | 
|  | VSS_ID *pNondeletedSnapshotID) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_PWSZ pwszSharePath, | 
|  | LONG lNewContext, | 
|  | VSS_ID ProviderId) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE IsPathSupported( | 
|  | VSS_PWSZ pwszSharePath, | 
|  | WINBOOL *pbSupportedByThisProvider) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE IsPathSnapshotted( | 
|  | VSS_PWSZ pwszSharePath, | 
|  | WINBOOL *pbSnapshotsPresent, | 
|  | LONG *plSnapshotCompatibility) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | 
|  | VARIANT vProperty) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IVssFileShareSnapshotProviderVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IVssFileShareSnapshotProvider *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IVssFileShareSnapshotProvider *This); | 
|  |  | 
|  | /*** IVssFileShareSnapshotProvider methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *SetContext)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | LONG lContext); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROP *pProp); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Query)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_ID QueriedObjectId, | 
|  | VSS_OBJECT_TYPE eQueriedObjectType, | 
|  | VSS_OBJECT_TYPE eReturnedObjectsType, | 
|  | IVssEnumObject **ppEnum); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_ID SourceObjectId, | 
|  | VSS_OBJECT_TYPE eSourceObjectType, | 
|  | WINBOOL bForceDelete, | 
|  | LONG *plDeletedSnapshots, | 
|  | VSS_ID *pNondeletedSnapshotID); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_ID SnapshotSetId, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_PWSZ pwszSharePath, | 
|  | LONG lNewContext, | 
|  | VSS_ID ProviderId); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsPathSupported)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_PWSZ pwszSharePath, | 
|  | WINBOOL *pbSupportedByThisProvider); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsPathSnapshotted)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_PWSZ pwszSharePath, | 
|  | WINBOOL *pbSnapshotsPresent, | 
|  | LONG *plSnapshotCompatibility); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( | 
|  | IVssFileShareSnapshotProvider *This, | 
|  | VSS_ID SnapshotId, | 
|  | VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | 
|  | VARIANT vProperty); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IVssFileShareSnapshotProviderVtbl; | 
|  |  | 
|  | interface IVssFileShareSnapshotProvider { | 
|  | CONST_VTBL IVssFileShareSnapshotProviderVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IVssFileShareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IVssFileShareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IVssFileShareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IVssFileShareSnapshotProvider methods ***/ | 
|  | #define IVssFileShareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) | 
|  | #define IVssFileShareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) | 
|  | #define IVssFileShareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) | 
|  | #define IVssFileShareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) | 
|  | #define IVssFileShareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) | 
|  | #define IVssFileShareSnapshotProvider_IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) (This)->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) | 
|  | #define IVssFileShareSnapshotProvider_IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) | 
|  | #define IVssFileShareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static inline ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static inline ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IVssFileShareSnapshotProvider methods ***/ | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) { | 
|  | return This->lpVtbl->SetContext(This,lContext); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { | 
|  | return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_Query(IVssFileShareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { | 
|  | return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_DeleteSnapshots(IVssFileShareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { | 
|  | return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_BeginPrepareSnapshot(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszSharePath,LONG lNewContext,VSS_ID ProviderId) { | 
|  | return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) { | 
|  | return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { | 
|  | return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility); | 
|  | } | 
|  | static inline HRESULT IVssFileShareSnapshotProvider_SetSnapshotProperty(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { | 
|  | return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | #ifndef __VSSProvider_LIBRARY_DEFINED__ | 
|  | #define __VSSProvider_LIBRARY_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(LIBID_VSSProvider, 0x73c8b4c1, 0x6e9d, 0x4fc2, 0xb3,0x04, 0x03,0x0e,0xc7,0x63,0xfe,0x81); | 
|  |  | 
|  | #endif /* __VSSProvider_LIBRARY_DEFINED__ */ | 
|  | #endif /* WINAPI_PARTITION_DESKTOP */ | 
|  | /* Begin additional prototypes for all interfaces */ | 
|  |  | 
|  | ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *); | 
|  | unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *); | 
|  | unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *); | 
|  | void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *); | 
|  |  | 
|  | /* End additional prototypes */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __vsprov_h__ */ |