| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef _INC_VSPROV | 
 
 
 
 
 | 7 | #define _INC_VSPROV | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #include <vss.h> | 
 
 
 
 
 | 10 | #include <vds.h> | 
 
 
 
 
 | 11 | #undef  INTERFACE | 
 
 
 
 
 | 12 | #define INTERFACE IVssHardwareSnapshotProvider | 
 
 
 
 
 | 13 | #ifdef __GNUC__ | 
 
 
 
 
 | 14 | #warning COM interfaces layout in this header has not been verified. | 
 
 
 
 
 | 15 | #warning COM interfaces with incorrect layout may not work at all. | 
 
 
 
 
 | 16 | __MINGW_BROKEN_INTERFACE(INTERFACE) | 
 
 
 
 
 | 17 | #endif | 
 
 
 
 
 | 18 | DECLARE_INTERFACE_(IVssHardwareSnapshotProvider,IUnknown) | 
 
 
 
 
 | 19 | { | 
 
 
 
 
 | 20 | BEGIN_INTERFACE | 
 
 
 
 
 | 21 |  | 
 
 
 
 
 | 22 | /* IUnknown methods */ | 
 
 
 
 
 | 23 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 | 24 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 | 25 | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 | 26 |  | 
 
 
 
 
 | 27 | /* IVssHardwareSnapshotProvider methods */ | 
 
 
 
 
 | 28 | STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE; | 
 
 
 
 
 | 29 | STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE; | 
 
 
 
 
 | 30 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE; | 
 
 
 
 
 | 31 | STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE; | 
 
 
 
 
 | 32 | STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE; | 
 
 
 
 
 | 33 | STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE; | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | END_INTERFACE | 
 
 
 
 
 | 36 | }; | 
 
 
 
 
 | 37 | #ifdef COBJMACROS | 
 
 
 
 
 | 38 | #define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 39 | #define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 40 | #define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 41 | #define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) | 
 
 
 
 
 | 42 | #define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) | 
 
 
 
 
 | 43 | #define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) | 
 
 
 
 
 | 44 | #define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) | 
 
 
 
 
 | 45 | #define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) | 
 
 
 
 
 | 46 | #define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) | 
 
 
 
 
 | 47 | #endif /*COBJMACROS*/ | 
 
 
 
 
 | 48 |  | 
 
 
 
 
 | 49 | #undef  INTERFACE | 
 
 
 
 
 | 50 | #define INTERFACE IVssHardwareSnapshotProviderEx | 
 
 
 
 
 | 51 | #ifdef __GNUC__ | 
 
 
 
 
 | 52 | #warning COM interfaces layout in this header has not been verified. | 
 
 
 
 
 | 53 | #warning COM interfaces with incorrect layout may not work at all. | 
 
 
 
 
 | 54 | __MINGW_BROKEN_INTERFACE(INTERFACE) | 
 
 
 
 
 | 55 | #endif | 
 
 
 
 
 | 56 | DECLARE_INTERFACE_(IVssHardwareSnapshotProviderEx,IVssHardwareSnapshotProvider) | 
 
 
 
 
 | 57 | { | 
 
 
 
 
 | 58 | BEGIN_INTERFACE | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | /* IUnknown methods */ | 
 
 
 
 
 | 61 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 | 62 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 | 63 | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | /* IVssHardwareSnapshotProvider methods */ | 
 
 
 
 
 | 66 | STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE; | 
 
 
 
 
 | 67 | STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE; | 
 
 
 
 
 | 68 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE; | 
 
 
 
 
 | 69 | STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE; | 
 
 
 
 
 | 70 | STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE; | 
 
 
 
 
 | 71 | STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE; | 
 
 
 
 
 | 72 |  | 
 
 
 
 
 | 73 | /* IVssHardwareSnapshotProviderEx methods */ | 
 
 
 
 
 | 74 | STDMETHOD_(HRESULT,GetProviderCapabilities)(THIS) PURE; | 
 
 
 
 
 | 75 | STDMETHOD_(HRESULT,OnLunStateChange)(THIS_ VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) PURE; | 
 
 
 
 
 | 76 | STDMETHOD_(HRESULT,OnReuseLuns)(THIS) PURE; | 
 
 
 
 
 | 77 | STDMETHOD_(HRESULT,ResyncLuns)(THIS_ VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) PURE; | 
 
 
 
 
 | 78 |  | 
 
 
 
 
 | 79 | END_INTERFACE | 
 
 
 
 
 | 80 | }; | 
 
 
 
 
 | 81 | #ifdef COBJMACROS | 
 
 
 
 
 | 82 | #define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 83 | #define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 84 | #define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 85 | #define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) | 
 
 
 
 
 | 86 | #define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) | 
 
 
 
 
 | 87 | #define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) | 
 
 
 
 
 | 88 | #define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) | 
 
 
 
 
 | 89 | #define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) | 
 
 
 
 
 | 90 | #define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) | 
 
 
 
 
 | 91 | #define IVssHardwareSnapshotProviderEx_GetProviderCapabilities() (This)->lpVtbl->GetProviderCapabilities(This) | 
 
 
 
 
 | 92 | #define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) | 
 
 
 
 
 | 93 | #define IVssHardwareSnapshotProviderEx_OnReuseLuns() (This)->lpVtbl->OnReuseLuns(This) | 
 
 
 
 
 | 94 | #define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) | 
 
 
 
 
 | 95 | #endif /*COBJMACROS*/ | 
 
 
 
 
 | 96 |  | 
 
 
 
 
 | 97 | #undef  INTERFACE | 
 
 
 
 
 | 98 | #define INTERFACE IVssProviderCreateSnapshotSet | 
 
 
 
 
 | 99 | #ifdef __GNUC__ | 
 
 
 
 
 | 100 | #warning COM interfaces layout in this header has not been verified. | 
 
 
 
 
 | 101 | #warning COM interfaces with incorrect layout may not work at all. | 
 
 
 
 
 | 102 | __MINGW_BROKEN_INTERFACE(INTERFACE) | 
 
 
 
 
 | 103 | #endif | 
 
 
 
 
 | 104 | DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown) | 
 
 
 
 
 | 105 | { | 
 
 
 
 
 | 106 | BEGIN_INTERFACE | 
 
 
 
 
 | 107 |  | 
 
 
 
 
 | 108 | /* IUnknown methods */ | 
 
 
 
 
 | 109 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 | 110 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 | 111 | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 | 112 |  | 
 
 
 
 
 | 113 | /* IVssProviderCreateSnapshotSet methods */ | 
 
 
 
 
 | 114 | STDMETHOD_(HRESULT,EndPrepareSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 115 | STDMETHOD_(HRESULT,PreCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 116 | STDMETHOD_(HRESULT,CommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 117 | STDMETHOD_(HRESULT,PostCommitSnapshots)(THIS_ VSS_ID SnapshotSetId,LONG lSnapshotsCount) PURE; | 
 
 
 
 
 | 118 | STDMETHOD_(HRESULT,PreFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 119 | STDMETHOD_(HRESULT,PostFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 120 | STDMETHOD_(HRESULT,AbortSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; | 
 
 
 
 
 | 121 |  | 
 
 
 
 
 | 122 | END_INTERFACE | 
 
 
 
 
 | 123 | }; | 
 
 
 
 
 | 124 | #ifdef COBJMACROS | 
 
 
 
 
 | 125 | #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 126 | #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 127 | #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 128 | #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 129 | #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 130 | #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 131 | #define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) | 
 
 
 
 
 | 132 | #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 133 | #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 134 | #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId) | 
 
 
 
 
 | 135 | #endif /*COBJMACROS*/ | 
 
 
 
 
 | 136 |  | 
 
 
 
 
 | 137 | #undef  INTERFACE | 
 
 
 
 
 | 138 | #define INTERFACE IVssProviderNotifications | 
 
 
 
 
 | 139 | DECLARE_INTERFACE_(IVssProviderNotifications,IUnknown) | 
 
 
 
 
 | 140 | { | 
 
 
 
 
 | 141 | BEGIN_INTERFACE | 
 
 
 
 
 | 142 |  | 
 
 
 
 
 | 143 | /* IUnknown methods */ | 
 
 
 
 
 | 144 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 | 145 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 | 146 | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 | 147 |  | 
 
 
 
 
 | 148 | /* IVssProviderNotifications methods */ | 
 
 
 
 
 | 149 | STDMETHOD_(HRESULT,OnLoad)(THIS_ IUnknown *pCallback) PURE; | 
 
 
 
 
 | 150 | STDMETHOD_(HRESULT,OnUnload)(THIS_ WINBOOL bForceUnload) PURE; | 
 
 
 
 
 | 151 |  | 
 
 
 
 
 | 152 | END_INTERFACE | 
 
 
 
 
 | 153 | }; | 
 
 
 
 
 | 154 | #ifdef COBJMACROS | 
 
 
 
 
 | 155 | #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 156 | #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 157 | #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 158 | #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback) | 
 
 
 
 
 | 159 | #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload) | 
 
 
 
 
 | 160 | #endif /*COBJMACROS*/ | 
 
 
 
 
 | 161 |  | 
 
 
 
 
 | 162 | #undef  INTERFACE | 
 
 
 
 
 | 163 | #define INTERFACE IVssSoftwareSnapshotProvider | 
 
 
 
 
 | 164 | #ifdef __GNUC__ | 
 
 
 
 
 | 165 | #warning COM interfaces layout in this header has not been verified. | 
 
 
 
 
 | 166 | #warning COM interfaces with incorrect layout may not work at all. | 
 
 
 
 
 | 167 | __MINGW_BROKEN_INTERFACE(INTERFACE) | 
 
 
 
 
 | 168 | #endif | 
 
 
 
 
 | 169 | DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown) | 
 
 
 
 
 | 170 | { | 
 
 
 
 
 | 171 | BEGIN_INTERFACE | 
 
 
 
 
 | 172 |  | 
 
 
 
 
 | 173 | /* IUnknown methods */ | 
 
 
 
 
 | 174 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 | 175 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 | 176 | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 | 177 |  | 
 
 
 
 
 | 178 | /* IVssSoftwareSnapshotProvider methods */ | 
 
 
 
 
 | 179 | STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; | 
 
 
 
 
 | 180 | STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; | 
 
 
 
 
 | 181 | STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; | 
 
 
 
 
 | 182 | STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; | 
 
 
 
 
 | 183 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) PURE; | 
 
 
 
 
 | 184 | STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) PURE; | 
 
 
 
 
 | 185 | STDMETHOD_(HRESULT,IsVolumeSnapshotted)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) PURE; | 
 
 
 
 
 | 186 | STDMETHOD_(HRESULT,SetSnapshotProperty)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) PURE; | 
 
 
 
 
 | 187 | STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId) PURE; | 
 
 
 
 
 | 188 | STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; | 
 
 
 
 
 | 189 |  | 
 
 
 
 
 | 190 | END_INTERFACE | 
 
 
 
 
 | 191 | }; | 
 
 
 
 
 | 192 | #ifdef COBJMACROS | 
 
 
 
 
 | 193 | #define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 194 | #define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 195 | #define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 196 | #define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) | 
 
 
 
 
 | 197 | #define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) | 
 
 
 
 
 | 198 | #define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) | 
 
 
 
 
 | 199 | #define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) | 
 
 
 
 
 | 200 | #define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) | 
 
 
 
 
 | 201 | #define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) | 
 
 
 
 
 | 202 | #define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) | 
 
 
 
 
 | 203 | #define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) | 
 
 
 
 
 | 204 | #define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId) | 
 
 
 
 
 | 205 | #define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) | 
 
 
 
 
 | 206 | #endif /*COBJMACROS*/ | 
 
 
 
 
 | 207 |  | 
 
 
 
 
 | 208 | #endif /*_INC_VSPROV*/ |