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