vsmgmt.h 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088
  1. /*** Autogenerated by WIDL 7.7 from include/vsmgmt.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __vsmgmt_h__
  14. #define __vsmgmt_h__
  15. /* Forward declarations */
  16. #ifndef __IVssSnapshotMgmt_FWD_DEFINED__
  17. #define __IVssSnapshotMgmt_FWD_DEFINED__
  18. typedef interface IVssSnapshotMgmt IVssSnapshotMgmt;
  19. #ifdef __cplusplus
  20. interface IVssSnapshotMgmt;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IVssSnapshotMgmt2_FWD_DEFINED__
  24. #define __IVssSnapshotMgmt2_FWD_DEFINED__
  25. typedef interface IVssSnapshotMgmt2 IVssSnapshotMgmt2;
  26. #ifdef __cplusplus
  27. interface IVssSnapshotMgmt2;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
  31. #define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
  32. typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt;
  33. #ifdef __cplusplus
  34. interface IVssDifferentialSoftwareSnapshotMgmt;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__
  38. #define __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__
  39. typedef interface IVssDifferentialSoftwareSnapshotMgmt2 IVssDifferentialSoftwareSnapshotMgmt2;
  40. #ifdef __cplusplus
  41. interface IVssDifferentialSoftwareSnapshotMgmt2;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__
  45. #define __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__
  46. typedef interface IVssDifferentialSoftwareSnapshotMgmt3 IVssDifferentialSoftwareSnapshotMgmt3;
  47. #ifdef __cplusplus
  48. interface IVssDifferentialSoftwareSnapshotMgmt3;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IVssEnumMgmtObject_FWD_DEFINED__
  52. #define __IVssEnumMgmtObject_FWD_DEFINED__
  53. typedef interface IVssEnumMgmtObject IVssEnumMgmtObject;
  54. #ifdef __cplusplus
  55. interface IVssEnumMgmtObject;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __VssSnapshotMgmt_FWD_DEFINED__
  59. #define __VssSnapshotMgmt_FWD_DEFINED__
  60. #ifdef __cplusplus
  61. typedef class VssSnapshotMgmt VssSnapshotMgmt;
  62. #else
  63. typedef struct VssSnapshotMgmt VssSnapshotMgmt;
  64. #endif /* defined __cplusplus */
  65. #endif /* defined __VssSnapshotMgmt_FWD_DEFINED__ */
  66. /* Headers for imported files */
  67. #include <oaidl.h>
  68. #include <ocidl.h>
  69. #include <vss.h>
  70. #ifdef __cplusplus
  71. extern "C" {
  72. #endif
  73. #include <winapifamily.h>
  74. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  75. typedef enum _VSS_MGMT_OBJECT_TYPE {
  76. VSS_MGMT_OBJECT_UNKNOWN = 0,
  77. VSS_MGMT_OBJECT_VOLUME = 1,
  78. VSS_MGMT_OBJECT_DIFF_VOLUME = 2,
  79. VSS_MGMT_OBJECT_DIFF_AREA = 3
  80. } VSS_MGMT_OBJECT_TYPE;
  81. typedef enum _VSS_MGMT_OBJECT_TYPE *PVSS_MGMT_OBJECT_TYPE;
  82. #define VSS_ASSOC_NO_MAX_SPACE (-1)
  83. #define VSS_ASSOC_REMOVE (0)
  84. typedef struct _VSS_VOLUME_PROP {
  85. VSS_PWSZ m_pwszVolumeName;
  86. VSS_PWSZ m_pwszVolumeDisplayName;
  87. } VSS_VOLUME_PROP;
  88. typedef struct _VSS_VOLUME_PROP *PVSS_VOLUME_PROP;
  89. typedef struct _VSS_DIFF_VOLUME_PROP {
  90. VSS_PWSZ m_pwszVolumeName;
  91. VSS_PWSZ m_pwszVolumeDisplayName;
  92. LONGLONG m_llVolumeFreeSpace;
  93. LONGLONG m_llVolumeTotalSpace;
  94. } VSS_DIFF_VOLUME_PROP;
  95. typedef struct _VSS_DIFF_VOLUME_PROP *PVSS_DIFF_VOLUME_PROP;
  96. typedef struct _VSS_DIFF_AREA_PROP {
  97. VSS_PWSZ m_pwszVolumeName;
  98. VSS_PWSZ m_pwszDiffAreaVolumeName;
  99. LONGLONG m_llMaximumDiffSpace;
  100. LONGLONG m_llAllocatedDiffSpace;
  101. LONGLONG m_llUsedDiffSpace;
  102. } VSS_DIFF_AREA_PROP;
  103. typedef struct _VSS_DIFF_AREA_PROP *PVSS_DIFF_AREA_PROP;
  104. typedef union __WIDL_vsmgmt_generated_name_00000021 {
  105. VSS_VOLUME_PROP Vol;
  106. VSS_DIFF_VOLUME_PROP DiffVol;
  107. VSS_DIFF_AREA_PROP DiffArea;
  108. } VSS_MGMT_OBJECT_UNION;
  109. typedef union __WIDL_vsmgmt_generated_name_00000021 *PVSS_MGMT_OBJECT_UNION;
  110. typedef struct _VSS_MGMT_OBJECT_PROP {
  111. VSS_MGMT_OBJECT_TYPE Type;
  112. VSS_MGMT_OBJECT_UNION Obj;
  113. } VSS_MGMT_OBJECT_PROP;
  114. typedef struct _VSS_MGMT_OBJECT_PROP *PVSS_MGMT_OBJECT_PROP;
  115. typedef enum _VSS_PROTECTION_LEVEL {
  116. VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0,
  117. VSS_PROTECTION_LEVEL_SNAPSHOT = 1
  118. } VSS_PROTECTION_LEVEL;
  119. typedef enum _VSS_PROTECTION_LEVEL *PVSS_PROTECTION_LEVEL;
  120. typedef enum _VSS_PROTECTION_FAULT {
  121. VSS_PROTECTION_FAULT_NONE = 0,
  122. VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = 1,
  123. VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = 2,
  124. VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = 3,
  125. VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = 4,
  126. VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = 5,
  127. VSS_PROTECTION_FAULT_COW_READ_FAILURE = 6,
  128. VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = 7,
  129. VSS_PROTECTION_FAULT_DIFF_AREA_FULL = 8,
  130. VSS_PROTECTION_FAULT_GROW_TOO_SLOW = 9,
  131. VSS_PROTECTION_FAULT_GROW_FAILED = 10,
  132. VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = 11,
  133. VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = 12,
  134. VSS_PROTECTION_FAULT_IO_FAILURE = 13,
  135. VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = 14,
  136. VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = 15,
  137. VSS_PROTECTION_FAULT_MOUNT_DURING_CLUSTER_OFFLINE = 16
  138. } VSS_PROTECTION_FAULT;
  139. typedef enum _VSS_PROTECTION_FAULT *PVSS_PROTECTION_FAULT;
  140. typedef struct _VSS_VOLUME_PROTECTION_INFO {
  141. VSS_PROTECTION_LEVEL m_protectionLevel;
  142. WINBOOL m_volumeIsOfflineForProtection;
  143. VSS_PROTECTION_FAULT m_protectionFault;
  144. LONG m_failureStatus;
  145. WINBOOL m_volumeHasUnusedDiffArea;
  146. DWORD m_reserved;
  147. } VSS_VOLUME_PROTECTION_INFO;
  148. typedef struct _VSS_VOLUME_PROTECTION_INFO *PVSS_VOLUME_PROTECTION_INFO;
  149. #ifndef __IVssSnapshotMgmt_FWD_DEFINED__
  150. #define __IVssSnapshotMgmt_FWD_DEFINED__
  151. typedef interface IVssSnapshotMgmt IVssSnapshotMgmt;
  152. #ifdef __cplusplus
  153. interface IVssSnapshotMgmt;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
  157. #define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
  158. typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt;
  159. #ifdef __cplusplus
  160. interface IVssDifferentialSoftwareSnapshotMgmt;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __IVssEnumMgmtObject_FWD_DEFINED__
  164. #define __IVssEnumMgmtObject_FWD_DEFINED__
  165. typedef interface IVssEnumMgmtObject IVssEnumMgmtObject;
  166. #ifdef __cplusplus
  167. interface IVssEnumMgmtObject;
  168. #endif /* __cplusplus */
  169. #endif
  170. /*****************************************************************************
  171. * IVssSnapshotMgmt interface
  172. */
  173. #ifndef __IVssSnapshotMgmt_INTERFACE_DEFINED__
  174. #define __IVssSnapshotMgmt_INTERFACE_DEFINED__
  175. DEFINE_GUID(IID_IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72);
  176. #if defined(__cplusplus) && !defined(CINTERFACE)
  177. MIDL_INTERFACE("fa7df749-66e7-4986-a27f-e2f04ae53772")
  178. IVssSnapshotMgmt : public IUnknown
  179. {
  180. virtual HRESULT STDMETHODCALLTYPE GetProviderMgmtInterface(
  181. VSS_ID ProviderId,
  182. REFIID InterfaceId,
  183. IUnknown **ppItf) = 0;
  184. virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForSnapshots(
  185. VSS_ID ProviderId,
  186. LONG lContext,
  187. IVssEnumMgmtObject **ppEnum) = 0;
  188. virtual HRESULT STDMETHODCALLTYPE QuerySnapshotsByVolume(
  189. VSS_PWSZ pwszVolumeName,
  190. VSS_ID ProviderId,
  191. IVssEnumObject **ppEnum) = 0;
  192. };
  193. #ifdef __CRT_UUID_DECL
  194. __CRT_UUID_DECL(IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72)
  195. #endif
  196. #else
  197. typedef struct IVssSnapshotMgmtVtbl {
  198. BEGIN_INTERFACE
  199. /*** IUnknown methods ***/
  200. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  201. IVssSnapshotMgmt *This,
  202. REFIID riid,
  203. void **ppvObject);
  204. ULONG (STDMETHODCALLTYPE *AddRef)(
  205. IVssSnapshotMgmt *This);
  206. ULONG (STDMETHODCALLTYPE *Release)(
  207. IVssSnapshotMgmt *This);
  208. /*** IVssSnapshotMgmt methods ***/
  209. HRESULT (STDMETHODCALLTYPE *GetProviderMgmtInterface)(
  210. IVssSnapshotMgmt *This,
  211. VSS_ID ProviderId,
  212. REFIID InterfaceId,
  213. IUnknown **ppItf);
  214. HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForSnapshots)(
  215. IVssSnapshotMgmt *This,
  216. VSS_ID ProviderId,
  217. LONG lContext,
  218. IVssEnumMgmtObject **ppEnum);
  219. HRESULT (STDMETHODCALLTYPE *QuerySnapshotsByVolume)(
  220. IVssSnapshotMgmt *This,
  221. VSS_PWSZ pwszVolumeName,
  222. VSS_ID ProviderId,
  223. IVssEnumObject **ppEnum);
  224. END_INTERFACE
  225. } IVssSnapshotMgmtVtbl;
  226. interface IVssSnapshotMgmt {
  227. CONST_VTBL IVssSnapshotMgmtVtbl* lpVtbl;
  228. };
  229. #ifdef COBJMACROS
  230. #ifndef WIDL_C_INLINE_WRAPPERS
  231. /*** IUnknown methods ***/
  232. #define IVssSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  233. #define IVssSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This)
  234. #define IVssSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This)
  235. /*** IVssSnapshotMgmt methods ***/
  236. #define IVssSnapshotMgmt_GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) (This)->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf)
  237. #define IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum)
  238. #define IVssSnapshotMgmt_QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum) (This)->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum)
  239. #else
  240. /*** IUnknown methods ***/
  241. static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryInterface(IVssSnapshotMgmt* This,REFIID riid,void **ppvObject) {
  242. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  243. }
  244. static FORCEINLINE ULONG IVssSnapshotMgmt_AddRef(IVssSnapshotMgmt* This) {
  245. return This->lpVtbl->AddRef(This);
  246. }
  247. static FORCEINLINE ULONG IVssSnapshotMgmt_Release(IVssSnapshotMgmt* This) {
  248. return This->lpVtbl->Release(This);
  249. }
  250. /*** IVssSnapshotMgmt methods ***/
  251. static FORCEINLINE HRESULT IVssSnapshotMgmt_GetProviderMgmtInterface(IVssSnapshotMgmt* This,VSS_ID ProviderId,REFIID InterfaceId,IUnknown **ppItf) {
  252. return This->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf);
  253. }
  254. static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(IVssSnapshotMgmt* This,VSS_ID ProviderId,LONG lContext,IVssEnumMgmtObject **ppEnum) {
  255. return This->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum);
  256. }
  257. static FORCEINLINE HRESULT IVssSnapshotMgmt_QuerySnapshotsByVolume(IVssSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,IVssEnumObject **ppEnum) {
  258. return This->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum);
  259. }
  260. #endif
  261. #endif
  262. #endif
  263. #endif /* __IVssSnapshotMgmt_INTERFACE_DEFINED__ */
  264. /*****************************************************************************
  265. * IVssSnapshotMgmt2 interface
  266. */
  267. #ifndef __IVssSnapshotMgmt2_INTERFACE_DEFINED__
  268. #define __IVssSnapshotMgmt2_INTERFACE_DEFINED__
  269. DEFINE_GUID(IID_IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02);
  270. #if defined(__cplusplus) && !defined(CINTERFACE)
  271. MIDL_INTERFACE("0f61ec39-fe82-45f2-a3f0-768b5d427102")
  272. IVssSnapshotMgmt2 : public IUnknown
  273. {
  274. virtual HRESULT STDMETHODCALLTYPE GetMinDiffAreaSize(
  275. LONGLONG *pllMinDiffAreaSize) = 0;
  276. };
  277. #ifdef __CRT_UUID_DECL
  278. __CRT_UUID_DECL(IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02)
  279. #endif
  280. #else
  281. typedef struct IVssSnapshotMgmt2Vtbl {
  282. BEGIN_INTERFACE
  283. /*** IUnknown methods ***/
  284. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  285. IVssSnapshotMgmt2 *This,
  286. REFIID riid,
  287. void **ppvObject);
  288. ULONG (STDMETHODCALLTYPE *AddRef)(
  289. IVssSnapshotMgmt2 *This);
  290. ULONG (STDMETHODCALLTYPE *Release)(
  291. IVssSnapshotMgmt2 *This);
  292. /*** IVssSnapshotMgmt2 methods ***/
  293. HRESULT (STDMETHODCALLTYPE *GetMinDiffAreaSize)(
  294. IVssSnapshotMgmt2 *This,
  295. LONGLONG *pllMinDiffAreaSize);
  296. END_INTERFACE
  297. } IVssSnapshotMgmt2Vtbl;
  298. interface IVssSnapshotMgmt2 {
  299. CONST_VTBL IVssSnapshotMgmt2Vtbl* lpVtbl;
  300. };
  301. #ifdef COBJMACROS
  302. #ifndef WIDL_C_INLINE_WRAPPERS
  303. /*** IUnknown methods ***/
  304. #define IVssSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  305. #define IVssSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This)
  306. #define IVssSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This)
  307. /*** IVssSnapshotMgmt2 methods ***/
  308. #define IVssSnapshotMgmt2_GetMinDiffAreaSize(This,pllMinDiffAreaSize) (This)->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize)
  309. #else
  310. /*** IUnknown methods ***/
  311. static FORCEINLINE HRESULT IVssSnapshotMgmt2_QueryInterface(IVssSnapshotMgmt2* This,REFIID riid,void **ppvObject) {
  312. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  313. }
  314. static FORCEINLINE ULONG IVssSnapshotMgmt2_AddRef(IVssSnapshotMgmt2* This) {
  315. return This->lpVtbl->AddRef(This);
  316. }
  317. static FORCEINLINE ULONG IVssSnapshotMgmt2_Release(IVssSnapshotMgmt2* This) {
  318. return This->lpVtbl->Release(This);
  319. }
  320. /*** IVssSnapshotMgmt2 methods ***/
  321. static FORCEINLINE HRESULT IVssSnapshotMgmt2_GetMinDiffAreaSize(IVssSnapshotMgmt2* This,LONGLONG *pllMinDiffAreaSize) {
  322. return This->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize);
  323. }
  324. #endif
  325. #endif
  326. #endif
  327. #endif /* __IVssSnapshotMgmt2_INTERFACE_DEFINED__ */
  328. /*****************************************************************************
  329. * IVssDifferentialSoftwareSnapshotMgmt interface
  330. */
  331. #ifndef __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__
  332. #define __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__
  333. DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29);
  334. #if defined(__cplusplus) && !defined(CINTERFACE)
  335. MIDL_INTERFACE("214a0f28-b737-4026-b847-4f9e37d79529")
  336. IVssDifferentialSoftwareSnapshotMgmt : public IUnknown
  337. {
  338. virtual HRESULT STDMETHODCALLTYPE AddDiffArea(
  339. VSS_PWSZ pwszVolumeName,
  340. VSS_PWSZ pwszDiffAreaVolumeName,
  341. LONGLONG llMaximumDiffSpace) = 0;
  342. virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSize(
  343. VSS_PWSZ pwszVolumeName,
  344. VSS_PWSZ pwszDiffAreaVolumeName,
  345. LONGLONG llMaximumDiffSpace) = 0;
  346. virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForDiffAreas(
  347. VSS_PWSZ pwszOriginalVolumeName,
  348. IVssEnumMgmtObject **ppEnum) = 0;
  349. virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForVolume(
  350. VSS_PWSZ pwszVolumeName,
  351. IVssEnumMgmtObject **ppEnum) = 0;
  352. virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasOnVolume(
  353. VSS_PWSZ pwszVolumeName,
  354. IVssEnumMgmtObject **ppEnum) = 0;
  355. virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForSnapshot(
  356. VSS_ID SnapshotId,
  357. IVssEnumMgmtObject **ppEnum) = 0;
  358. };
  359. #ifdef __CRT_UUID_DECL
  360. __CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29)
  361. #endif
  362. #else
  363. typedef struct IVssDifferentialSoftwareSnapshotMgmtVtbl {
  364. BEGIN_INTERFACE
  365. /*** IUnknown methods ***/
  366. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  367. IVssDifferentialSoftwareSnapshotMgmt *This,
  368. REFIID riid,
  369. void **ppvObject);
  370. ULONG (STDMETHODCALLTYPE *AddRef)(
  371. IVssDifferentialSoftwareSnapshotMgmt *This);
  372. ULONG (STDMETHODCALLTYPE *Release)(
  373. IVssDifferentialSoftwareSnapshotMgmt *This);
  374. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  375. HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
  376. IVssDifferentialSoftwareSnapshotMgmt *This,
  377. VSS_PWSZ pwszVolumeName,
  378. VSS_PWSZ pwszDiffAreaVolumeName,
  379. LONGLONG llMaximumDiffSpace);
  380. HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
  381. IVssDifferentialSoftwareSnapshotMgmt *This,
  382. VSS_PWSZ pwszVolumeName,
  383. VSS_PWSZ pwszDiffAreaVolumeName,
  384. LONGLONG llMaximumDiffSpace);
  385. HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
  386. IVssDifferentialSoftwareSnapshotMgmt *This,
  387. VSS_PWSZ pwszOriginalVolumeName,
  388. IVssEnumMgmtObject **ppEnum);
  389. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
  390. IVssDifferentialSoftwareSnapshotMgmt *This,
  391. VSS_PWSZ pwszVolumeName,
  392. IVssEnumMgmtObject **ppEnum);
  393. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
  394. IVssDifferentialSoftwareSnapshotMgmt *This,
  395. VSS_PWSZ pwszVolumeName,
  396. IVssEnumMgmtObject **ppEnum);
  397. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
  398. IVssDifferentialSoftwareSnapshotMgmt *This,
  399. VSS_ID SnapshotId,
  400. IVssEnumMgmtObject **ppEnum);
  401. END_INTERFACE
  402. } IVssDifferentialSoftwareSnapshotMgmtVtbl;
  403. interface IVssDifferentialSoftwareSnapshotMgmt {
  404. CONST_VTBL IVssDifferentialSoftwareSnapshotMgmtVtbl* lpVtbl;
  405. };
  406. #ifdef COBJMACROS
  407. #ifndef WIDL_C_INLINE_WRAPPERS
  408. /*** IUnknown methods ***/
  409. #define IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  410. #define IVssDifferentialSoftwareSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This)
  411. #define IVssDifferentialSoftwareSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This)
  412. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  413. #define IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  414. #define IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  415. #define IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
  416. #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
  417. #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
  418. #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
  419. #else
  420. /*** IUnknown methods ***/
  421. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt* This,REFIID riid,void **ppvObject) {
  422. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  423. }
  424. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_AddRef(IVssDifferentialSoftwareSnapshotMgmt* This) {
  425. return This->lpVtbl->AddRef(This);
  426. }
  427. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_Release(IVssDifferentialSoftwareSnapshotMgmt* This) {
  428. return This->lpVtbl->Release(This);
  429. }
  430. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  431. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  432. return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  433. }
  434. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  435. return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  436. }
  437. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
  438. return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
  439. }
  440. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  441. return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
  442. }
  443. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  444. return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
  445. }
  446. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
  447. return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
  448. }
  449. #endif
  450. #endif
  451. #endif
  452. #endif /* __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__ */
  453. /*****************************************************************************
  454. * IVssDifferentialSoftwareSnapshotMgmt2 interface
  455. */
  456. #ifndef __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__
  457. #define __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__
  458. DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15);
  459. #if defined(__cplusplus) && !defined(CINTERFACE)
  460. MIDL_INTERFACE("949d7353-675f-4275-8969-f044c6277815")
  461. IVssDifferentialSoftwareSnapshotMgmt2 : public IVssDifferentialSoftwareSnapshotMgmt
  462. {
  463. virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSizeEx(
  464. VSS_PWSZ pwszVolumeName,
  465. VSS_PWSZ pwszDiffAreaVolumeName,
  466. LONGLONG llMaximumDiffSpace,
  467. WINBOOL bVolatile) = 0;
  468. virtual HRESULT STDMETHODCALLTYPE MigrateDiffAreas(
  469. VSS_PWSZ pwszVolumeName,
  470. VSS_PWSZ pwszDiffAreaVolumeName,
  471. VSS_PWSZ pwszNewDiffAreaVolumeName) = 0;
  472. virtual HRESULT STDMETHODCALLTYPE QueryMigrationStatus(
  473. VSS_PWSZ pwszVolumeName,
  474. VSS_PWSZ pwszDiffAreaVolumeName,
  475. IVssAsync **ppAsync) = 0;
  476. virtual HRESULT STDMETHODCALLTYPE SetSnapshotPriority(
  477. VSS_ID idSnapshot,
  478. BYTE priority) = 0;
  479. };
  480. #ifdef __CRT_UUID_DECL
  481. __CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15)
  482. #endif
  483. #else
  484. typedef struct IVssDifferentialSoftwareSnapshotMgmt2Vtbl {
  485. BEGIN_INTERFACE
  486. /*** IUnknown methods ***/
  487. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  488. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  489. REFIID riid,
  490. void **ppvObject);
  491. ULONG (STDMETHODCALLTYPE *AddRef)(
  492. IVssDifferentialSoftwareSnapshotMgmt2 *This);
  493. ULONG (STDMETHODCALLTYPE *Release)(
  494. IVssDifferentialSoftwareSnapshotMgmt2 *This);
  495. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  496. HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
  497. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  498. VSS_PWSZ pwszVolumeName,
  499. VSS_PWSZ pwszDiffAreaVolumeName,
  500. LONGLONG llMaximumDiffSpace);
  501. HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
  502. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  503. VSS_PWSZ pwszVolumeName,
  504. VSS_PWSZ pwszDiffAreaVolumeName,
  505. LONGLONG llMaximumDiffSpace);
  506. HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
  507. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  508. VSS_PWSZ pwszOriginalVolumeName,
  509. IVssEnumMgmtObject **ppEnum);
  510. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
  511. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  512. VSS_PWSZ pwszVolumeName,
  513. IVssEnumMgmtObject **ppEnum);
  514. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
  515. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  516. VSS_PWSZ pwszVolumeName,
  517. IVssEnumMgmtObject **ppEnum);
  518. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
  519. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  520. VSS_ID SnapshotId,
  521. IVssEnumMgmtObject **ppEnum);
  522. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  523. HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)(
  524. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  525. VSS_PWSZ pwszVolumeName,
  526. VSS_PWSZ pwszDiffAreaVolumeName,
  527. LONGLONG llMaximumDiffSpace,
  528. WINBOOL bVolatile);
  529. HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)(
  530. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  531. VSS_PWSZ pwszVolumeName,
  532. VSS_PWSZ pwszDiffAreaVolumeName,
  533. VSS_PWSZ pwszNewDiffAreaVolumeName);
  534. HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)(
  535. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  536. VSS_PWSZ pwszVolumeName,
  537. VSS_PWSZ pwszDiffAreaVolumeName,
  538. IVssAsync **ppAsync);
  539. HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)(
  540. IVssDifferentialSoftwareSnapshotMgmt2 *This,
  541. VSS_ID idSnapshot,
  542. BYTE priority);
  543. END_INTERFACE
  544. } IVssDifferentialSoftwareSnapshotMgmt2Vtbl;
  545. interface IVssDifferentialSoftwareSnapshotMgmt2 {
  546. CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt2Vtbl* lpVtbl;
  547. };
  548. #ifdef COBJMACROS
  549. #ifndef WIDL_C_INLINE_WRAPPERS
  550. /*** IUnknown methods ***/
  551. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  552. #define IVssDifferentialSoftwareSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This)
  553. #define IVssDifferentialSoftwareSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This)
  554. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  555. #define IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  556. #define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  557. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
  558. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
  559. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
  560. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
  561. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  562. #define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile)
  563. #define IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName)
  564. #define IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync)
  565. #define IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority)
  566. #else
  567. /*** IUnknown methods ***/
  568. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt2* This,REFIID riid,void **ppvObject) {
  569. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  570. }
  571. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_AddRef(IVssDifferentialSoftwareSnapshotMgmt2* This) {
  572. return This->lpVtbl->AddRef(This);
  573. }
  574. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_Release(IVssDifferentialSoftwareSnapshotMgmt2* This) {
  575. return This->lpVtbl->Release(This);
  576. }
  577. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  578. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  579. return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  580. }
  581. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  582. return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  583. }
  584. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
  585. return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
  586. }
  587. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  588. return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
  589. }
  590. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  591. return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
  592. }
  593. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
  594. return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
  595. }
  596. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  597. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) {
  598. return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile);
  599. }
  600. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) {
  601. return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName);
  602. }
  603. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) {
  604. return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync);
  605. }
  606. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID idSnapshot,BYTE priority) {
  607. return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority);
  608. }
  609. #endif
  610. #endif
  611. #endif
  612. #endif /* __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__ */
  613. /*****************************************************************************
  614. * IVssDifferentialSoftwareSnapshotMgmt3 interface
  615. */
  616. #ifndef __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__
  617. #define __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__
  618. DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58);
  619. #if defined(__cplusplus) && !defined(CINTERFACE)
  620. MIDL_INTERFACE("383f7e71-a4c5-401f-b27f-f826289f8458")
  621. IVssDifferentialSoftwareSnapshotMgmt3 : public IVssDifferentialSoftwareSnapshotMgmt2
  622. {
  623. virtual HRESULT STDMETHODCALLTYPE SetVolumeProtectLevel(
  624. VSS_PWSZ pwszVolumeName,
  625. VSS_PROTECTION_LEVEL protectionLevel) = 0;
  626. virtual HRESULT STDMETHODCALLTYPE GetVolumeProtectLevel(
  627. VSS_PWSZ pwszVolumeName,
  628. VSS_VOLUME_PROTECTION_INFO *protectionLevel) = 0;
  629. virtual HRESULT STDMETHODCALLTYPE ClearVolumeProtectFault(
  630. VSS_PWSZ pwszVolumeName) = 0;
  631. virtual HRESULT STDMETHODCALLTYPE DeleteUnusedDiffAreas(
  632. VSS_PWSZ pwszDiffAreaVolumeName) = 0;
  633. virtual HRESULT STDMETHODCALLTYPE QuerySnapshotDeltaBitmap(
  634. VSS_ID idSnapshotOlder,
  635. VSS_ID idSnapshotYounger,
  636. ULONG *pcBlockSizePerBit,
  637. ULONG *pcBitmapLength,
  638. BYTE **ppbBitmap) = 0;
  639. };
  640. #ifdef __CRT_UUID_DECL
  641. __CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58)
  642. #endif
  643. #else
  644. typedef struct IVssDifferentialSoftwareSnapshotMgmt3Vtbl {
  645. BEGIN_INTERFACE
  646. /*** IUnknown methods ***/
  647. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  648. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  649. REFIID riid,
  650. void **ppvObject);
  651. ULONG (STDMETHODCALLTYPE *AddRef)(
  652. IVssDifferentialSoftwareSnapshotMgmt3 *This);
  653. ULONG (STDMETHODCALLTYPE *Release)(
  654. IVssDifferentialSoftwareSnapshotMgmt3 *This);
  655. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  656. HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
  657. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  658. VSS_PWSZ pwszVolumeName,
  659. VSS_PWSZ pwszDiffAreaVolumeName,
  660. LONGLONG llMaximumDiffSpace);
  661. HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
  662. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  663. VSS_PWSZ pwszVolumeName,
  664. VSS_PWSZ pwszDiffAreaVolumeName,
  665. LONGLONG llMaximumDiffSpace);
  666. HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
  667. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  668. VSS_PWSZ pwszOriginalVolumeName,
  669. IVssEnumMgmtObject **ppEnum);
  670. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
  671. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  672. VSS_PWSZ pwszVolumeName,
  673. IVssEnumMgmtObject **ppEnum);
  674. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
  675. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  676. VSS_PWSZ pwszVolumeName,
  677. IVssEnumMgmtObject **ppEnum);
  678. HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
  679. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  680. VSS_ID SnapshotId,
  681. IVssEnumMgmtObject **ppEnum);
  682. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  683. HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)(
  684. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  685. VSS_PWSZ pwszVolumeName,
  686. VSS_PWSZ pwszDiffAreaVolumeName,
  687. LONGLONG llMaximumDiffSpace,
  688. WINBOOL bVolatile);
  689. HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)(
  690. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  691. VSS_PWSZ pwszVolumeName,
  692. VSS_PWSZ pwszDiffAreaVolumeName,
  693. VSS_PWSZ pwszNewDiffAreaVolumeName);
  694. HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)(
  695. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  696. VSS_PWSZ pwszVolumeName,
  697. VSS_PWSZ pwszDiffAreaVolumeName,
  698. IVssAsync **ppAsync);
  699. HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)(
  700. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  701. VSS_ID idSnapshot,
  702. BYTE priority);
  703. /*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
  704. HRESULT (STDMETHODCALLTYPE *SetVolumeProtectLevel)(
  705. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  706. VSS_PWSZ pwszVolumeName,
  707. VSS_PROTECTION_LEVEL protectionLevel);
  708. HRESULT (STDMETHODCALLTYPE *GetVolumeProtectLevel)(
  709. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  710. VSS_PWSZ pwszVolumeName,
  711. VSS_VOLUME_PROTECTION_INFO *protectionLevel);
  712. HRESULT (STDMETHODCALLTYPE *ClearVolumeProtectFault)(
  713. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  714. VSS_PWSZ pwszVolumeName);
  715. HRESULT (STDMETHODCALLTYPE *DeleteUnusedDiffAreas)(
  716. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  717. VSS_PWSZ pwszDiffAreaVolumeName);
  718. HRESULT (STDMETHODCALLTYPE *QuerySnapshotDeltaBitmap)(
  719. IVssDifferentialSoftwareSnapshotMgmt3 *This,
  720. VSS_ID idSnapshotOlder,
  721. VSS_ID idSnapshotYounger,
  722. ULONG *pcBlockSizePerBit,
  723. ULONG *pcBitmapLength,
  724. BYTE **ppbBitmap);
  725. END_INTERFACE
  726. } IVssDifferentialSoftwareSnapshotMgmt3Vtbl;
  727. interface IVssDifferentialSoftwareSnapshotMgmt3 {
  728. CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt3Vtbl* lpVtbl;
  729. };
  730. #ifdef COBJMACROS
  731. #ifndef WIDL_C_INLINE_WRAPPERS
  732. /*** IUnknown methods ***/
  733. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  734. #define IVssDifferentialSoftwareSnapshotMgmt3_AddRef(This) (This)->lpVtbl->AddRef(This)
  735. #define IVssDifferentialSoftwareSnapshotMgmt3_Release(This) (This)->lpVtbl->Release(This)
  736. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  737. #define IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  738. #define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
  739. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
  740. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
  741. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
  742. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
  743. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  744. #define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile)
  745. #define IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName)
  746. #define IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync)
  747. #define IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority)
  748. /*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
  749. #define IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel)
  750. #define IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel)
  751. #define IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(This,pwszVolumeName) (This)->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName)
  752. #define IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName) (This)->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName)
  753. #define IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap) (This)->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap)
  754. #else
  755. /*** IUnknown methods ***/
  756. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt3* This,REFIID riid,void **ppvObject) {
  757. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  758. }
  759. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_AddRef(IVssDifferentialSoftwareSnapshotMgmt3* This) {
  760. return This->lpVtbl->AddRef(This);
  761. }
  762. static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_Release(IVssDifferentialSoftwareSnapshotMgmt3* This) {
  763. return This->lpVtbl->Release(This);
  764. }
  765. /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
  766. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  767. return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  768. }
  769. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
  770. return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
  771. }
  772. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
  773. return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
  774. }
  775. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  776. return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
  777. }
  778. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
  779. return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
  780. }
  781. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
  782. return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
  783. }
  784. /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
  785. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) {
  786. return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile);
  787. }
  788. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) {
  789. return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName);
  790. }
  791. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) {
  792. return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync);
  793. }
  794. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshot,BYTE priority) {
  795. return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority);
  796. }
  797. /*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
  798. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PROTECTION_LEVEL protectionLevel) {
  799. return This->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel);
  800. }
  801. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_VOLUME_PROTECTION_INFO *protectionLevel) {
  802. return This->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel);
  803. }
  804. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName) {
  805. return This->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName);
  806. }
  807. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszDiffAreaVolumeName) {
  808. return This->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName);
  809. }
  810. static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshotOlder,VSS_ID idSnapshotYounger,ULONG *pcBlockSizePerBit,ULONG *pcBitmapLength,BYTE **ppbBitmap) {
  811. return This->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap);
  812. }
  813. #endif
  814. #endif
  815. #endif
  816. #endif /* __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__ */
  817. /*****************************************************************************
  818. * IVssEnumMgmtObject interface
  819. */
  820. #ifndef __IVssEnumMgmtObject_INTERFACE_DEFINED__
  821. #define __IVssEnumMgmtObject_INTERFACE_DEFINED__
  822. DEFINE_GUID(IID_IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96);
  823. #if defined(__cplusplus) && !defined(CINTERFACE)
  824. MIDL_INTERFACE("01954e6b-9254-4e6e-808c-c9e05d007696")
  825. IVssEnumMgmtObject : public IUnknown
  826. {
  827. virtual HRESULT STDMETHODCALLTYPE Next(
  828. ULONG celt,
  829. VSS_MGMT_OBJECT_PROP *rgelt,
  830. ULONG *pceltFetched) = 0;
  831. virtual HRESULT STDMETHODCALLTYPE Skip(
  832. ULONG celt) = 0;
  833. virtual HRESULT STDMETHODCALLTYPE Reset(
  834. ) = 0;
  835. virtual HRESULT STDMETHODCALLTYPE Clone(
  836. IVssEnumMgmtObject **ppenum) = 0;
  837. };
  838. #ifdef __CRT_UUID_DECL
  839. __CRT_UUID_DECL(IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96)
  840. #endif
  841. #else
  842. typedef struct IVssEnumMgmtObjectVtbl {
  843. BEGIN_INTERFACE
  844. /*** IUnknown methods ***/
  845. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  846. IVssEnumMgmtObject *This,
  847. REFIID riid,
  848. void **ppvObject);
  849. ULONG (STDMETHODCALLTYPE *AddRef)(
  850. IVssEnumMgmtObject *This);
  851. ULONG (STDMETHODCALLTYPE *Release)(
  852. IVssEnumMgmtObject *This);
  853. /*** IVssEnumMgmtObject methods ***/
  854. HRESULT (STDMETHODCALLTYPE *Next)(
  855. IVssEnumMgmtObject *This,
  856. ULONG celt,
  857. VSS_MGMT_OBJECT_PROP *rgelt,
  858. ULONG *pceltFetched);
  859. HRESULT (STDMETHODCALLTYPE *Skip)(
  860. IVssEnumMgmtObject *This,
  861. ULONG celt);
  862. HRESULT (STDMETHODCALLTYPE *Reset)(
  863. IVssEnumMgmtObject *This);
  864. HRESULT (STDMETHODCALLTYPE *Clone)(
  865. IVssEnumMgmtObject *This,
  866. IVssEnumMgmtObject **ppenum);
  867. END_INTERFACE
  868. } IVssEnumMgmtObjectVtbl;
  869. interface IVssEnumMgmtObject {
  870. CONST_VTBL IVssEnumMgmtObjectVtbl* lpVtbl;
  871. };
  872. #ifdef COBJMACROS
  873. #ifndef WIDL_C_INLINE_WRAPPERS
  874. /*** IUnknown methods ***/
  875. #define IVssEnumMgmtObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  876. #define IVssEnumMgmtObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  877. #define IVssEnumMgmtObject_Release(This) (This)->lpVtbl->Release(This)
  878. /*** IVssEnumMgmtObject methods ***/
  879. #define IVssEnumMgmtObject_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  880. #define IVssEnumMgmtObject_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  881. #define IVssEnumMgmtObject_Reset(This) (This)->lpVtbl->Reset(This)
  882. #define IVssEnumMgmtObject_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  883. #else
  884. /*** IUnknown methods ***/
  885. static FORCEINLINE HRESULT IVssEnumMgmtObject_QueryInterface(IVssEnumMgmtObject* This,REFIID riid,void **ppvObject) {
  886. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  887. }
  888. static FORCEINLINE ULONG IVssEnumMgmtObject_AddRef(IVssEnumMgmtObject* This) {
  889. return This->lpVtbl->AddRef(This);
  890. }
  891. static FORCEINLINE ULONG IVssEnumMgmtObject_Release(IVssEnumMgmtObject* This) {
  892. return This->lpVtbl->Release(This);
  893. }
  894. /*** IVssEnumMgmtObject methods ***/
  895. static FORCEINLINE HRESULT IVssEnumMgmtObject_Next(IVssEnumMgmtObject* This,ULONG celt,VSS_MGMT_OBJECT_PROP *rgelt,ULONG *pceltFetched) {
  896. return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
  897. }
  898. static FORCEINLINE HRESULT IVssEnumMgmtObject_Skip(IVssEnumMgmtObject* This,ULONG celt) {
  899. return This->lpVtbl->Skip(This,celt);
  900. }
  901. static FORCEINLINE HRESULT IVssEnumMgmtObject_Reset(IVssEnumMgmtObject* This) {
  902. return This->lpVtbl->Reset(This);
  903. }
  904. static FORCEINLINE HRESULT IVssEnumMgmtObject_Clone(IVssEnumMgmtObject* This,IVssEnumMgmtObject **ppenum) {
  905. return This->lpVtbl->Clone(This,ppenum);
  906. }
  907. #endif
  908. #endif
  909. #endif
  910. #endif /* __IVssEnumMgmtObject_INTERFACE_DEFINED__ */
  911. #ifndef __VSMGMT_LIBRARY_DEFINED__
  912. #define __VSMGMT_LIBRARY_DEFINED__
  913. DEFINE_GUID(LIBID_VSMGMT, 0x84015c41, 0x291d, 0x49e6, 0xbf,0x7f, 0xdd,0x40,0xae,0x93,0x63,0x2b);
  914. /*****************************************************************************
  915. * VssSnapshotMgmt coclass
  916. */
  917. DEFINE_GUID(CLSID_VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f);
  918. #ifdef __cplusplus
  919. class DECLSPEC_UUID("0b5a2c52-3eb9-470a-96e2-6c6d4570e40f") VssSnapshotMgmt;
  920. #ifdef __CRT_UUID_DECL
  921. __CRT_UUID_DECL(VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f)
  922. #endif
  923. #endif
  924. #endif /* __VSMGMT_LIBRARY_DEFINED__ */
  925. #endif /* WINAPI_PARTITION_DESKTOP */
  926. /* Begin additional prototypes for all interfaces */
  927. /* End additional prototypes */
  928. #ifdef __cplusplus
  929. }
  930. #endif
  931. #endif /* __vsmgmt_h__ */